Première grosse version fonctionnel

This commit is contained in:
2026-04-22 23:30:31 +02:00
commit ccbe5ad801
329 changed files with 29518 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title', 'CESIZen') | Ministère de la Santé</title>
@vite(['resources/css/app.css', 'resources/js/app.js'])
<style>
:root {
--fr-blue: #000091;
--cz-navy: #000074;
--cz-mustard: #715200;
--cz-mustard-bg: #F8B803;
--cz-jade: #00635B;
}
</style>
</head>
@include('layouts.header')
<body class="bg-[#F6F6F6] text-[#161616] min-h-screen font-sans">
<div class="flex min-h-screen">
<!-- Sidebar Simplifiée pour les sous-pages -->
@include('layouts.sidebar')
<main class="flex-1">
<!-- <header class="bg-white border-b border-slate-200 px-8 py-4 flex items-center justify-between">
<h1 class="text-xl font-bold">@yield('header_title')</h1>
@auth
<span class="text-sm font-bold text-slate-600">{{ Auth::user()->name }}</span>
@endauth
</header> -->
<div class="p-8">
@yield('content')
</div>
</main>
</div>
</body>
</html>
@@ -0,0 +1,21 @@
<footer class="mt-auto bg-white border-t border-slate-200 pt-12 pb-8" role="contentinfo">
<div class="container mx-auto px-8">
<div class="flex flex-col lg:flex-row justify-between gap-10 mb-10 border-b border-slate-100 pb-10">
<div class="flex items-center gap-6">
<img src="img/ministere.png" alt="Logo du Ministère de la Santé et de la Prévention" class="w-24 h-auto">
</div>
<div class="flex flex-wrap gap-6 text-xs font-bold text-slate-600">
<a href="#" class="hover:text-[--fr-blue] underline">legifrance.gouv.fr</a>
<a href="#" class="hover:text-[--fr-blue] underline">service-public.fr</a>
<a href="#" class="hover:text-[--fr-blue] underline">data.gouv.fr</a>
</div>
</div>
<div class="flex flex-wrap gap-6 text-[11px] font-bold text-slate-500 uppercase tracking-wider">
<a href="#" class="hover:underline">Mentions légales</a>
<a href="#" class="hover:underline">Accessibilité : partiellement conforme</a>
<a href="#" class="hover:underline">Données personnelles</a>
<a href="#" class="hover:underline">Cookies</a>
<span class="ml-auto text-slate-400 font-normal">&copy; {{ date('Y') }} Ministère de la Santé - CESIZen</span>
</div>
</div>
</footer>
@@ -0,0 +1,41 @@
<header role="banner" class="bg-white border-b-2 border-[--fr-blue] sticky top-0 z-50 shadow-sm">
<div class="container mx-auto px-4 lg:px-8 py-3 flex items-center justify-between">
<div class="flex items-start justify-start gap-8">
<div class="flex flex-col border-r-2 border-slate-200 pr-8" aria-hidden="true">
<img src="img/ministere.png" alt="Logo du Ministère de la Santé et de la Prévention" class="w-24 h-auto">
</div>
<div class="flex flex-col">
<h1 class="text-2xl font-black text-[--fr-blue] tracking-tight">
<a href="{{ route('home') }}"><img src="img/CesiZen.png" alt="Logo CesiZen" class="w-32 h-auto"></a>
</h1>
</div>
</div>
<nav class="flex items-center gap-6" role="navigation" aria-label="Menu utilisateur">
@auth
<a href="{{ route('profile.index') }}" class="flex items-center gap-3 px-4 py-1.5 bg-slate-50 rounded-lg border border-slate-200 shadow-sm hover:border-[#000091] transition-all group">
<div class="text-right">
<p class="text-sm font-bold leading-none text-slate-900 group-hover:text-[#000091]">{{ Auth::user()->name }}</p>
<p class="text-[10px] text-slate-500 font-bold uppercase tracking-tighter">Mon Profil</p>
</div>
<img src="https://ui-avatars.com/api/?name={{ urlencode(Auth::user()->name) }}&background=000091&color=fff" class="w-9 h-9 rounded-lg border border-slate-200" alt="Avatar de {{ Auth::user()->name }}">
</a>
<form action="{{ route('logout') }}" method="POST" class="inline">
@csrf
<button type="submit" class="text-xs font-bold text-slate-500 hover:text-[#E1000F] uppercase tracking-tighter flex items-center gap-1">
<x-heroicon-o-arrow-left-on-rectangle class="h-4 w-4" />
Quitter
</button>
</form>
@else
<div class="flex items-center gap-4">
<a href="/login" class="text-sm font-bold text-[#000091] hover:underline px-2 py-2">Se connecter</a>
<a href="/register" class="px-6 py-2.5 bg-[#000091] text-white text-sm font-bold rounded-sm shadow-md hover:bg-blue-800 transition-all">
Créer un compte
</a>
</div>
@endauth
</nav>
</div>
</header>
@@ -0,0 +1,67 @@
<aside class="hidden lg:flex w-80 flex-col bg-white border-r border-slate-200 overflow-y-auto" role="navigation" aria-label="Menu latéral">
<nav class="flex-1 px-6 py-10 space-y-1">
<p class="text-[10px] font-bold text-slate-500 uppercase tracking-[0.2em] mb-4 px-4">Navigation</p>
<!-- Tableau de bord -->
<a href="{{ route('home') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all {{ request()->routeIs('home') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium' }}"
{!! request()->routeIs('home') ? 'aria-current="page"' : '' !!}>
<x-heroicon-o-home class="h-5 w-5" aria-hidden="true" />
Tableau de bord
</a>
<!-- Mon Journal Émotionnel -->
<a href="{{ route('emotions.index') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('emotions.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('emotions.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('emotions.*') ? 'bg-white/20 text-white' : 'bg-teal-50 text-[--cz-jade]' }}" aria-hidden="true">
<x-heroicon-o-clock class="h-4 w-4" />
</div>
Mon Journal Émotionnel
</a>
<!-- Diagnostics Stress -->
<a href="{{ route('diagnostics.index') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('diagnostics.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('diagnostics.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('diagnostics.*') ? 'bg-white/20 text-white' : 'bg-orange-50 text-[--cz-mustard]' }}" aria-hidden="true">
<x-heroicon-o-chart-bar class="h-4 w-4" />
</div>
Diagnostics Stress
</a>
<!-- Exercices de Respiration -->
<a href="{{ route('relaxation.index') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('relaxation.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('relaxation.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('relaxation.*') ? 'bg-white/20 text-white' : 'bg-indigo-50 text-indigo-700' }}" aria-hidden="true">
<x-heroicon-o-heart class="h-4 w-4" />
</div>
Exercices de Respiration
</a>
<div class="pt-10 space-y-1">
<p class="text-[10px] font-bold text-slate-500 uppercase tracking-[0.2em] mb-4 px-4">Services de l'État</p>
<a href="#" class="flex items-center justify-between px-4 py-2 text-sm text-slate-600 hover:text-[--fr-blue] font-medium transition-colors">
<span>Guide Santé Étudiante</span>
<x-heroicon-o-document-text class="h-4 w-4" aria-hidden="true" />
</a>
<a href="#" class="flex items-center justify-between px-4 py-2 text-sm text-slate-600 hover:text-[--fr-blue] font-medium transition-colors">
<span>Ligne d'Urgence</span>
<x-heroicon-o-phone class="h-4 w-4" aria-hidden="true" />
</a>
</div>
</nav>
<!-- Alert Block -->
<div class="p-6">
<div class="bg-slate-900 rounded-sm p-6 text-white relative overflow-hidden">
<p class="text-[10px] font-bold uppercase tracking-widest text-slate-400 mb-2">Besoin d'aide ?</p>
<p class="text-xs font-medium leading-relaxed mb-4">Une ligne d'écoute gratuite est disponible pour tous les étudiants.</p>
<a href="tel:0800130000" class="flex items-center justify-center gap-2 w-full py-2.5 bg-white text-slate-900 text-sm font-bold rounded-sm hover:bg-slate-100 transition-colors">
<x-heroicon-o-phone class="h-4 w-4" aria-hidden="true" />
0 800 130 000
</a>
</div>
</div>
</aside>