Update project dependencies and enhance documentation
- Added `barryvdh/laravel-dompdf` to `composer.json` for PDF generation capabilities. - Updated `boost.json` to include `tailwindcss-development` in skills. - Modified `package.json` and `package-lock.json` to upgrade Tailwind CSS and related packages. - Improved README.md for clarity and corrected French language errors. - Created design system documentation for Filament components. - Added new Filament pages for Dashboard and Documentation with dynamic content loading. - Enhanced TablesExplorer functionality with improved table and column management.
This commit is contained in:
5
resources/views/components/logistics/card.blade.php
Normal file
5
resources/views/components/logistics/card.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@props(['class' => ''])
|
||||
|
||||
<div {{ $attributes->class(['rounded-xl bg-white shadow-sm ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10', $class]) }}>
|
||||
{{ $slot }}
|
||||
</div>
|
||||
40
resources/views/components/logistics/data-table.blade.php
Normal file
40
resources/views/components/logistics/data-table.blade.php
Normal file
@@ -0,0 +1,40 @@
|
||||
@props(['data', 'metadata' => null, 'emptyMessage' => 'Aucun resultat.', 'emptyIcon' => 'heroicon-o-inbox'])
|
||||
|
||||
@if (count($data) > 0)
|
||||
@php
|
||||
$firstRow = reset($data);
|
||||
$isAssociative = is_array($firstRow);
|
||||
$headers = $isAssociative ? array_keys($firstRow) : [];
|
||||
@endphp
|
||||
|
||||
<div class="overflow-x-auto">
|
||||
<table class="w-full text-left text-sm">
|
||||
<thead>
|
||||
<tr class="border-b border-gray-200 dark:border-white/10">
|
||||
@if ($isAssociative)
|
||||
@foreach ($headers as $key)
|
||||
<th class="px-3 py-2.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400">{{ $key }}</th>
|
||||
@endforeach
|
||||
@else
|
||||
<th class="px-3 py-2.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400">Valeur</th>
|
||||
@endif
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="divide-y divide-gray-100 dark:divide-white/5">
|
||||
@foreach ($data as $row)
|
||||
<tr class="transition-colors hover:bg-gray-50 dark:hover:bg-white/5">
|
||||
@if ($isAssociative)
|
||||
@foreach ($row as $value)
|
||||
<td class="px-3 py-2.5 text-sm text-gray-700 dark:text-gray-300">{{ is_array($value) ? json_encode($value) : $value }}</td>
|
||||
@endforeach
|
||||
@else
|
||||
<td class="px-3 py-2.5 text-sm text-gray-700 dark:text-gray-300">{{ $row }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@else
|
||||
<x-logistics.empty-state :icon="$emptyIcon" :title="$emptyMessage" />
|
||||
@endif
|
||||
@@ -0,0 +1,9 @@
|
||||
@props(['icon' => 'heroicon-o-inbox', 'title', 'description' => null])
|
||||
|
||||
<div class="flex flex-col items-center justify-center py-12 text-center">
|
||||
<x-filament::icon :icon="$icon" class="h-10 w-10 text-gray-300 dark:text-gray-600" />
|
||||
<p class="mt-3 text-sm font-medium text-gray-900 dark:text-white">{{ $title }}</p>
|
||||
@if ($description)
|
||||
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">{{ $description }}</p>
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
@props(['message'])
|
||||
|
||||
@if ($message)
|
||||
<div class="rounded-lg bg-danger-50 p-4 text-sm text-danger-600 dark:bg-danger-400/10 dark:text-danger-400">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@endif
|
||||
11
resources/views/components/logistics/form-field.blade.php
Normal file
11
resources/views/components/logistics/form-field.blade.php
Normal file
@@ -0,0 +1,11 @@
|
||||
@props(['label', 'id', 'type' => 'text', 'placeholder' => ''])
|
||||
|
||||
<div>
|
||||
<label for="{{ $id }}" class="block text-sm font-medium text-gray-700 dark:text-gray-300">{{ $label }}</label>
|
||||
<input
|
||||
{{ $attributes->class(['mt-1.5 w-full rounded-lg border-gray-300 py-2 text-sm shadow-sm focus:border-primary-500 focus:ring-primary-500 dark:border-white/10 dark:bg-white/5 dark:text-white']) }}
|
||||
type="{{ $type }}"
|
||||
id="{{ $id }}"
|
||||
placeholder="{{ $placeholder }}"
|
||||
/>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
@props(['data'])
|
||||
|
||||
@if (! empty($data))
|
||||
<div class="overflow-x-auto">
|
||||
<pre class="rounded-lg border border-gray-200 bg-gray-50 p-4 text-xs font-mono leading-relaxed text-gray-700 dark:border-white/10 dark:bg-gray-800 dark:text-gray-300">{{ json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}</pre>
|
||||
</div>
|
||||
@endif
|
||||
10
resources/views/components/logistics/search-input.blade.php
Normal file
10
resources/views/components/logistics/search-input.blade.php
Normal file
@@ -0,0 +1,10 @@
|
||||
@props(['placeholder' => 'Rechercher...'])
|
||||
|
||||
<div class="relative">
|
||||
<x-filament::icon icon="heroicon-o-magnifying-glass" class="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
||||
<input
|
||||
{{ $attributes->class(['w-full rounded-lg border-gray-300 py-2 pl-9 pr-3 text-sm shadow-sm focus:border-primary-500 focus:ring-primary-500 dark:border-white/10 dark:bg-white/5 dark:text-white']) }}
|
||||
type="text"
|
||||
placeholder="{{ $placeholder }}"
|
||||
/>
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
@props(['title', 'description' => null])
|
||||
|
||||
<div class="border-b border-gray-200 px-6 py-4 dark:border-white/10">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<h3 class="text-base font-semibold text-gray-950 dark:text-white">{{ $title }}</h3>
|
||||
@if ($description)
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">{{ $description }}</p>
|
||||
@endif
|
||||
</div>
|
||||
@isset($actions)
|
||||
<div class="flex items-center gap-2">{{ $actions }}</div>
|
||||
@endisset
|
||||
</div>
|
||||
</div>
|
||||
5
resources/views/components/logistics/stat-bar.blade.php
Normal file
5
resources/views/components/logistics/stat-bar.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<x-logistics.card>
|
||||
<div class="flex flex-wrap items-center gap-x-6 gap-y-2 px-6 py-3">
|
||||
{{ $slot }}
|
||||
</div>
|
||||
</x-logistics.card>
|
||||
12
resources/views/components/logistics/stat-item.blade.php
Normal file
12
resources/views/components/logistics/stat-item.blade.php
Normal file
@@ -0,0 +1,12 @@
|
||||
@props(['icon' => null, 'label' => null, 'value'])
|
||||
|
||||
<div class="flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400">
|
||||
@if ($icon)
|
||||
<x-filament::icon :icon="$icon" class="h-4 w-4 shrink-0" />
|
||||
@endif
|
||||
@if ($label)
|
||||
<span>{{ $label }} <span class="font-medium text-gray-700 dark:text-gray-200">{{ $value }}</span></span>
|
||||
@else
|
||||
<span class="font-medium text-gray-700 dark:text-gray-200">{{ $value }}</span>
|
||||
@endif
|
||||
</div>
|
||||
Reference in New Issue
Block a user