# ADM-04 — Admin Settings — CMS Groups

**Category:** admin_ui  
**Status:** ok

---

## Verified ✓
- Single reusable `settings/edit.blade.php` handles all groups ✓
- Tab navigation antar group (general, homepage, about, contact, seo, integrations) ✓
- `admin-form-card` layout structure ✓
- Type-aware rendering: text, textarea, boolean (toggle), image (preview), json, color ✓
- Image fields show current preview ✓
- `@csrf @method('PUT')` present ✓
- `SiteSettingController::edit()` queries by group and sorts by `sort_order` ✓
- `SiteSettingController::update()` uses `updateOrCreate()` per key ✓

## [LOW] GA4 / API Key Fields — Input Type
Integrations page should use `type="password"` for API keys so they don't leak on screen:
```blade
@if(str_contains($setting->key, 'api_key') || str_contains($setting->key, 'secret'))
    <input type="password" ...>
@else
    <input type="text" ...>
@endif
```
