Add legal policy pages and shared layout component
- Add Cookie Policy view documenting essential cookies (session, CSRF, remember_me, fa_location) and cookieless Umami analytics - Add Privacy Policy view covering UK GDPR compliance, data categories, lawful bases, processors, retention, and user rights - Add Refund & Cancellation Policy view explaining 14-day cooling-off period under Consumer Contracts Regulations 2013 and express-consent flow - Add Terms of Service view defining account rules, subscription billing, and governing law - Create shared legal layout component with FuelAlert header, footer with cross-links, and consistent typography - Add feature tests covering all four legal pages and their cross-links - All policies include placeholders for ICO registration number, email, and hosting/email providers pending production config
This commit is contained in:
53
resources/views/components/layouts/legal.blade.php
Normal file
53
resources/views/components/layouts/legal.blade.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
@include('partials.head', ['title' => $title ?? null])
|
||||
@isset($metaDescription)
|
||||
<meta name="description" content="{{ $metaDescription }}">
|
||||
@endisset
|
||||
</head>
|
||||
<body class="min-h-screen bg-[#f5ede5] text-zinc-900 antialiased">
|
||||
<header class="border-b border-zinc-300 bg-white/70 backdrop-blur">
|
||||
<div class="mx-auto flex max-w-3xl items-center justify-between px-6 py-4">
|
||||
<a href="/" class="flex items-center gap-2">
|
||||
<span class="flex h-8 w-8 items-center justify-center rounded bg-accent text-white">
|
||||
<iconify-icon icon="lucide:fuel"></iconify-icon>
|
||||
</span>
|
||||
<span class="font-display text-xl font-black tracking-tighter text-accent">FuelAlert</span>
|
||||
</a>
|
||||
<a href="/" class="text-sm text-zinc-600 hover:text-accent">← Back to site</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="mx-auto max-w-3xl px-6 py-12">
|
||||
<article class="space-y-6 leading-relaxed text-zinc-800">
|
||||
<header class="space-y-3 border-b border-zinc-300 pb-6">
|
||||
<h1 class="font-display text-3xl font-black tracking-tight text-zinc-900 md:text-4xl">
|
||||
{{ $heading }}
|
||||
</h1>
|
||||
@isset($lastUpdated)
|
||||
<p class="text-sm text-zinc-500">Last updated: {{ $lastUpdated }}</p>
|
||||
@endisset
|
||||
</header>
|
||||
|
||||
{{ $slot }}
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="mt-16 border-t border-zinc-300 bg-white/50">
|
||||
<div class="mx-auto max-w-3xl px-6 py-10 text-sm text-zinc-600">
|
||||
<nav class="flex flex-wrap gap-x-6 gap-y-2">
|
||||
<a class="hover:text-accent" href="{{ route('legal.privacy') }}">Privacy Policy</a>
|
||||
<a class="hover:text-accent" href="{{ route('legal.terms') }}">Terms of Service</a>
|
||||
<a class="hover:text-accent" href="{{ route('legal.refund') }}">Refund & Cancellation</a>
|
||||
<a class="hover:text-accent" href="{{ route('legal.cookies') }}">Cookie Policy</a>
|
||||
</nav>
|
||||
<p class="mt-6 text-xs text-zinc-500">
|
||||
© {{ date('Y') }} FuelAlert. A trading name of Ovidiu Ungureanu, sole trader, Peterborough, United Kingdom.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user