nimuli/resources/views/components
boban fa9985cc33 feat: modal infrastructure + 11 modals (links, team, settings, workspace)
wire-elements/modal v3 integration:
- Replace custom Alpine modal-container with <livewire:livewire-ui-modal />
- Customize vendor modal view with design tokens (bg-s1, dark overlay, smooth transitions)
- All modals extend ModalComponent, use $this->closeModal()

Modals built (PHP + Blade view + tests):
- ConfirmAction — reusable danger confirm with custom event dispatch
- CreateLink, EditLink, DeleteLink — full CRUD with workspace isolation
- InviteMember, EditMemberRole, RemoveMember — team management
- CreateApiToken, RevokeApiToken — Sanctum token lifecycle
- CreateWebhook, DeleteWebhook — webhook CRUD
- CreateWorkspace (uses CreateWorkspaceAction), DeleteWorkspace (confirmation input)

Fixes:
- Remove SoftDeletes from Webhook model (table has no deleted_at column)
- Auto-generate webhook secret when user leaves field empty
- Use correct role enum: owner/admin/editor/viewer (not member)
- Protected Livewire model properties replaced with re-query pattern
- Sidebar "New Workspace" button now dispatches openModal

Tests: 105/105 passing, 211 assertions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 12:41:14 +02:00
..
action-message.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
application-logo.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
auth-session-status.blade.php feat: vollständiges Nimuli-Frontend Phase 1 2026-05-16 10:52:52 +02:00
danger-button.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
dropdown-link.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
dropdown.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
input-error.blade.php feat: vollständiges Nimuli-Frontend Phase 1 2026-05-16 10:52:52 +02:00
input-label.blade.php feat: vollständiges Nimuli-Frontend Phase 1 2026-05-16 10:52:52 +02:00
modal-container.blade.php feat: modal infrastructure + 11 modals (links, team, settings, workspace) 2026-05-16 12:41:14 +02:00
modal.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
nav-link.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
primary-button.blade.php feat: vollständiges Nimuli-Frontend Phase 1 2026-05-16 10:52:52 +02:00
responsive-nav-link.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
secondary-button.blade.php feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker 2026-05-15 23:51:57 +02:00
sidebar.blade.php feat: modal infrastructure + 11 modals (links, team, settings, workspace) 2026-05-16 12:41:14 +02:00
text-input.blade.php feat: vollständiges Nimuli-Frontend Phase 1 2026-05-16 10:52:52 +02:00
topbar.blade.php feat: add profile, team, settings subpages 2026-05-16 11:07:31 +02:00