# Core-Admin TODO ## Form Authorization Components **Priority:** Medium **Context:** Authorization checks scattered throughout views with `@can` directives. ### Solution Build authorization into form components themselves. ### Implementation ```blade {{-- resources/views/components/forms/input.blade.php --}} @props([ 'id', 'label' => null, 'canGate' => null, 'canResource' => null, ]) @php $disabled = $attributes->get('disabled', false); if ($canGate && $canResource && !$disabled) { $disabled = !auth()->user()?->can($canGate, $canResource); } @endphp merge(['disabled' => $disabled]) }} /> ``` ### Usage ```blade Save ``` ### Components to Create - `input.blade.php` - `textarea.blade.php` - `select.blade.php` - `checkbox.blade.php` - `button.blade.php` - `toggle.blade.php` --- ## Global Search (⌘K) **Priority:** Medium **Context:** No unified search across resources. ### Implementation ```php class GlobalSearch extends Component { public bool $open = false; public string $query = ''; public array $results = []; public function updatedQuery() { if (strlen($this->query) < 2) return; $this->results = $this->searchProviders(); } } ``` ### Features - ⌘K keyboard shortcut - Arrow key navigation - Enter to select - Module-provided search providers - Recent searches ### Requirements - `SearchProvider` interface for modules to implement - Auto-discover providers from registered modules - Fuzzy matching support --- ## Real-time WebSocket (Soketi) **Priority:** Low **Context:** No real-time updates. Users must refresh. ### Implementation Self-hosted Soketi + Laravel Echo. ```yaml # docker-compose.yml soketi: image: 'quay.io/soketi/soketi:latest' ports: - '6001:6001' ``` ```php // Broadcasting events broadcast(new ResourceUpdated($resource)); // Livewire listening protected function getListeners() { return [ "echo-private:workspace.{$this->workspace->id},resource.updated" => 'refresh', ]; } ``` ### Notes - DO NOT route through Bunny CDN (charges per connection) - Use private channels for workspace-scoped events --- ## Enhanced Form Components **Priority:** Medium **Context:** Extend Flux Pro components with additional features. ### Features to Add - Dark mode consistency - Automatic error display - Helper text support - Disabled states from authorization - `instantSave` for real-time persistence ### Components ```blade ```