|
1 | 1 | <x-app-layout> |
2 | 2 | <x-slot name="header"> |
3 | | - <div class="flex flex-wrap"> |
4 | | - <div class="w-full"> |
5 | | - <flux:heading size="xl"> |
6 | | - {{ __('Dashboard') }} |
7 | | - </flux:heading> |
8 | | - </div> |
9 | | - </div> |
| 3 | + <flux:heading size="xl"> |
| 4 | + {{ __('Dashboard') }} |
| 5 | + </flux:heading> |
10 | 6 | </x-slot> |
11 | 7 |
|
12 | 8 | <div class="py-12"> |
13 | | - <div class="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-10"> |
14 | | - <div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-4"> |
| 9 | + <div class="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6"> |
| 10 | + <!-- Next Practice --> |
| 11 | + <flux:card> |
15 | 12 | <flux:heading size="lg" class="mb-4">{{ __('Next Practice') }}</flux:heading> |
16 | 13 | @if(!$nextPractice) |
17 | | - <flux:text class="text-zinc-600">{{ __('No upcoming practices scheduled.') }}</flux:text> |
| 14 | + <flux:text class="text-zinc-500">{{ __('No upcoming practices scheduled.') }}</flux:text> |
18 | 15 | @else |
19 | | - <flux:link href="{{ route('practices.show', $nextPractice) }}"> |
20 | | - {{ $nextPractice->date->format('d.m.Y') }} - {{ $nextPractice->topic }} |
21 | | - </flux:link> |
| 16 | + <div class="flex items-center gap-3"> |
| 17 | + <flux:icon.calendar class="size-5 text-zinc-400" /> |
| 18 | + <flux:link href="{{ route('practices.show', $nextPractice) }}"> |
| 19 | + {{ $nextPractice->date->format('d.m.Y') }} - {{ $nextPractice->topic }} |
| 20 | + </flux:link> |
| 21 | + </div> |
22 | 22 | @endif |
23 | | - </div> |
| 23 | + </flux:card> |
24 | 24 |
|
25 | | - <div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-4"> |
| 25 | + <!-- Common Actions --> |
| 26 | + <flux:card> |
26 | 27 | <flux:heading size="lg" class="mb-4">{{ __('Common actions') }}</flux:heading> |
27 | 28 | <div class="flex flex-wrap gap-2"> |
28 | | - <flux:button href="{{ route('players.create') }}" variant="primary"> |
| 29 | + <flux:button href="{{ route('players.create') }}" variant="primary" icon="user-plus"> |
29 | 30 | {{ __('Create Player') }} |
30 | 31 | </flux:button> |
31 | | - <flux:button href="{{ route('exercises.create') }}" variant="primary"> |
| 32 | + <flux:button href="{{ route('exercises.create') }}" variant="primary" icon="clipboard-document-list"> |
32 | 33 | {{ __('Create Exercise') }} |
33 | 34 | </flux:button> |
34 | | - <flux:button href="{{ route('practices.create') }}" variant="primary"> |
| 35 | + <flux:button href="{{ route('practices.create') }}" variant="primary" icon="calendar-days"> |
35 | 36 | {{ __('Create Practice') }} |
36 | 37 | </flux:button> |
37 | 38 | </div> |
38 | | - </div> |
| 39 | + </flux:card> |
39 | 40 |
|
| 41 | + <!-- Onboarding Guide --> |
40 | 42 | @if(!$player OR !$exercise OR !$practice) |
41 | | - <div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-4"> |
42 | | - <flux:heading size="lg" class="mb-4">{{ __('Onboarding Guide') }}</flux:heading> |
| 43 | + <flux:card> |
| 44 | + <flux:heading size="lg" class="mb-4">{{ __('Onboarding Guide') }}</flux:heading> |
| 45 | + |
| 46 | + <div class="space-y-3"> |
| 47 | + <div class="flex items-center gap-3"> |
| 48 | + @if($player) |
| 49 | + <flux:icon.check-circle variant="solid" class="size-5 text-green-500" /> |
| 50 | + <flux:text class="text-zinc-600 dark:text-zinc-400">{{ __('Create your first player') }}</flux:text> |
| 51 | + @else |
| 52 | + <flux:icon.check-circle class="size-5 text-zinc-300 dark:text-zinc-600" /> |
| 53 | + <flux:link href="{{ route('players.create') }}">{{ __('Create your first player') }}</flux:link> |
| 54 | + @endif |
| 55 | + </div> |
| 56 | + |
| 57 | + <div class="flex items-center gap-3"> |
| 58 | + @if($exercise) |
| 59 | + <flux:icon.check-circle variant="solid" class="size-5 text-green-500" /> |
| 60 | + <flux:text class="text-zinc-600 dark:text-zinc-400">{{ __('Create your first exercise') }}</flux:text> |
| 61 | + @else |
| 62 | + <flux:icon.check-circle class="size-5 text-zinc-300 dark:text-zinc-600" /> |
| 63 | + <flux:link href="{{ route('exercises.create') }}">{{ __('Create your first exercise') }}</flux:link> |
| 64 | + @endif |
| 65 | + </div> |
43 | 66 |
|
44 | | - <ul class="space-y-1 text-zinc-500 list-inside text-lg"> |
45 | | - <li class="flex items-center"> |
46 | | - <svg @class(['text-zinc-400' => ! $player, 'text-green-500' => $player, 'w-3.5', 'h-3.5', 'me-2', 'flex-shrink-0']) aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"> |
47 | | - <path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5Zm3.707 8.207-4 4a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L9 10.586l3.293-3.293a1 1 0 0 1 1.414 1.414Z"/> |
48 | | - </svg> |
49 | | - {{ __('Create your first player') }} |
50 | | - </li> |
51 | | - <li class="flex items-center"> |
52 | | - <svg @class(['text-zinc-400' => ! $exercise, 'text-green-500' => $exercise, 'w-3.5', 'h-3.5', 'me-2', 'flex-shrink-0']) aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"> |
53 | | - <path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5Zm3.707 8.207-4 4a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L9 10.586l3.293-3.293a1 1 0 0 1 1.414 1.414Z"/> |
54 | | - </svg> |
55 | | - {{ __('Create your first exercise') }} |
56 | | - </li> |
57 | | - <li class="flex items-center"> |
58 | | - <svg @class(['text-zinc-400' => ! $practice, 'text-green-500' => $practice, 'w-3.5', 'h-3.5', 'me-2', 'flex-shrink-0']) aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"> |
59 | | - <path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5Zm3.707 8.207-4 4a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L9 10.586l3.293-3.293a1 1 0 0 1 1.414 1.414Z"/> |
60 | | - </svg> |
61 | | - {{ __('Create your first practice') }} |
62 | | - </li> |
63 | | - </ul> |
64 | | - </div> |
| 67 | + <div class="flex items-center gap-3"> |
| 68 | + @if($practice) |
| 69 | + <flux:icon.check-circle variant="solid" class="size-5 text-green-500" /> |
| 70 | + <flux:text class="text-zinc-600 dark:text-zinc-400">{{ __('Create your first practice') }}</flux:text> |
| 71 | + @else |
| 72 | + <flux:icon.check-circle class="size-5 text-zinc-300 dark:text-zinc-600" /> |
| 73 | + <flux:link href="{{ route('practices.create') }}">{{ __('Create your first practice') }}</flux:link> |
| 74 | + @endif |
| 75 | + </div> |
| 76 | + </div> |
| 77 | + </flux:card> |
65 | 78 | @endif |
66 | 79 | </div> |
67 | 80 | </div> |
|
0 commit comments