Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
5.1 KiB
id, title, status, date, parent
| id | title | status | date | parent |
|---|---|---|---|---|
| 24-6 | 24-6 Booking Page and Booking Success | Done | 2026-10-31 | 24 |
Description
Restyle /booking (the non-compact rendering of resources/views/livewire/pages/booking.blade.php)
and /booking/success (resources/views/livewire/pages/booking-success.blade.php) to the
redesign. Behaviour does not change: the month calendar, the guest fields, the captcha, the
confirm step, the one-per-day rule, the logged-in message, and the redirect to /booking/success.
Task 24-5 already added $compact, the strip variant and the .book, .book-l, .book-r,
input and label styles in resources/css/public.css; reuse them.
/booking (non-compact branch of booking.blade.php)
Replace the page markup (keeping every wire: binding, error output, and the
@if($isLoggedIn) / step logic) with:
<section class="sec" style="padding-top:56px"><div class="wrap"> →
<x-site.section-head :label="__('site.art_booking')" :title="__('booking.request_consultation')" :lede="__('site.booking_lede')" /> →
<div class="book">:
.book-l.on-dark:.contactlist (phonetel:+970599353502with<span dir="ltr">{{ __('footer.phone') }}</span>,mailto:footer.email, addressfooter.address, same 20px gold icons as the home card) and<x-site.balance mode="static" style="width:190px;height:190px;margin-top:22px" />..book-r(cream inset): for a logged-in visitor, the existing logged-in title, message andbooking.go_to_dashboardlink (route('client.consultations.book')) asbtn btn-gold. For a guest: step 1 —booking.select_date_timethen<livewire:availability-calendar />(month variant); step 2 — the selected date/time summary with the existing "change" action, the fields name, email, phone, case summary, captcha, the gold submit; step 3 — the existing confirmation summary with Confirm (btn-gold) and Back (btn-ghost). The existingsession('success')callout stays at the top of.book-r.
Below the card, inside the same .wrap, keep <x-booking-expectations class="mt-10" />
unchanged.
Month calendar restyle (CSS only, scoped to the public site)
In resources/css/public.css, under body.site, style the month grid rendered by
resources/views/livewire/availability-calendar.blade.php (month variant) without editing its
markup: day cells min 44×44px, radius 10px; available and partial days white with a 6px gold dot
below the number (::after, background:var(--gold)); the selected day background:var(--forest)
with cream text; unavailable, closed, blocked and past days --muted text at 50% opacity, no
hover; month navigation buttons as 44px pills with 1.5px solid var(--line). Read the template
to find the exact classes or wire:click attributes the selectors must target; if the template
has no class to hook onto, add a class attribute only (e.g. site-cal-day, plus
is-available, is-selected) without changing structure or behaviour, so the client dashboard
(which has no body.site) renders as before.
/booking/success — booking-success.blade.php
<section class="sec"><div class="wrap"> → a centred cream card (max-width 560px, margin-inline auto,
background:var(--cream), 1px solid var(--line) border, radius 20px, --shadow-2, padding
48px 40px, text-align center) containing
<x-site.balance mode="static" style="width:120px;height:120px;margin:0 auto 18px" />, <h1>
booking.success_title (display font, clamp(2rem,3.4vw,2.6rem)), <p>
booking.success_message (muted), and <a class="btn btn-ghost" href="{{ route('home') }}" wire:navigate>
site.nav_home. Remove the flux:icon check-circle, flux:heading and flux:button.
Files
- Modify:
resources/views/livewire/pages/booking.blade.php,resources/views/livewire/pages/booking-success.blade.php,resources/css/public.css, and (class attributes only, if needed)resources/views/livewire/availability-calendar.blade.php.
Acceptance Criteria
/bookingas a guest shows the section head, the forest card with contact details and a level balance, and the month calendar inside the cream panel; selecting an available day and a slot reveals the fields; completing the form and confirming creates one guest consultation and redirects to/booking/success.- Every validation rule behaves as before this task (required fields, 20-character summary, captcha, one booking per email per day), each error rendered under its field.
/bookinglogged in as a client shows the logged-in message and the link to/client/consultations/book, and no form.- In the month calendar on
/booking, available days show a gold dot, the selected day is forest with cream text, and unavailable days are dimmed; day cells are at least 44×44px. /client/consultations/book(logged in as a client) renders the calendar as before (nobody.sitestyles apply there)./booking/successshows the balance, title, message and a Home button, and contains noflux:markup output (data-flux-attributes) in its main content./bookingand/booking/successhave no horizontal scroll at 1440, 768 and 390px.
Sub-tasks
None.