- TallStackUI 4 (MIT) statt Flux; Komponenten mit Präfix ts- (<x-ts-…>) - Layouts, Login-, Passwort-, 2FA- und Einstellungsseiten neu aufgebaut - Livewire-Skripte explizit in beiden Layouts, damit Alpine auch auf den Fortify-Seiten ohne Livewire-Komponente läuft - Dark Mode über tallstackui_darkTheme(), ohne Aufblitzen beim Laden - Registrierungs-View und ungenutzte Layout-Varianten entfernt - Test: Seiten laden keine Ressourcen von fremden Hosts (Vorgabe "alles lokal") Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
1.7 KiB
PHP
34 lines
1.7 KiB
PHP
<div>
|
|
<x-ts-dropdown position="bottom-end">
|
|
<x-slot:action>
|
|
<button type="button"
|
|
x-on:click="show = !show"
|
|
class="flex shrink-0 cursor-pointer items-center gap-2 rounded-md p-1 text-sm hover:bg-gray-100 dark:hover:bg-dark-700"
|
|
data-test="user-menu-button">
|
|
{{-- Nur Initialen: ohne image/model lädt ts-avatar nichts von externen Diensten. --}}
|
|
<x-ts-avatar :text="auth()->user()->initials()" sm />
|
|
<span class="hidden whitespace-nowrap font-medium text-gray-700 sm:inline dark:text-dark-200">{{ auth()->user()->name }}</span>
|
|
<x-ts-icon name="chevron-down" class="size-4 shrink-0 text-gray-500 dark:text-dark-400" />
|
|
</button>
|
|
</x-slot:action>
|
|
|
|
<x-slot:header>
|
|
<div class="px-2 py-1 text-sm">
|
|
<p class="truncate font-medium text-gray-900 dark:text-dark-50">{{ auth()->user()->name }}</p>
|
|
<p class="truncate text-gray-500 dark:text-dark-300">{{ auth()->user()->email }}</p>
|
|
</div>
|
|
</x-slot:header>
|
|
|
|
<x-ts-dropdown.items :text="__('Settings')" icon="cog-6-tooth" :href="route('profile.edit')" navigate />
|
|
<x-ts-dropdown.items :text="__('Log out')"
|
|
icon="arrow-right-start-on-rectangle"
|
|
separator
|
|
x-on:click="document.getElementById('logout-form').submit()"
|
|
data-test="logout-button" />
|
|
</x-ts-dropdown>
|
|
|
|
<form id="logout-form" method="POST" action="{{ route('logout') }}" class="hidden">
|
|
@csrf
|
|
</form>
|
|
</div>
|