From 22f944fde223c16998fdd7a1e2dc7fa8a7891006 Mon Sep 17 00:00:00 2001 From: Matt Ciaccio Date: Tue, 28 Apr 2026 12:09:47 +0200 Subject: [PATCH] style(detail): apply gradient header strip to client/interest/yacht/company/berth/residential/invoice details Adds shared wrapper (rounded-xl + gradient-brand-soft + shadow-xs) and applies it to every legacy domain detail header. Residential client/interest and invoice detail get an inline gradient strip with eyebrow ('Residential Client', 'Residential Interest', 'Invoice'). Residential bodies normalized to lg:grid-cols-[2fr_1fr] per spec. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/components/berths/berth-detail-header.tsx | 23 +++++------- .../clients/client-detail-header.tsx | 5 +-- .../companies/company-detail-header.tsx | 5 +-- .../interests/interest-detail-header.tsx | 18 +++++----- src/components/invoices/invoice-detail.tsx | 13 ++++--- .../residential/residential-client-detail.tsx | 15 ++++---- .../residential-interest-detail.tsx | 36 +++++++++---------- src/components/shared/detail-header-strip.tsx | 20 +++++++++++ src/components/yachts/yacht-detail-header.tsx | 5 +-- 9 files changed, 81 insertions(+), 59 deletions(-) create mode 100644 src/components/shared/detail-header-strip.tsx diff --git a/src/components/berths/berth-detail-header.tsx b/src/components/berths/berth-detail-header.tsx index 1d857ea..cd635b3 100644 --- a/src/components/berths/berth-detail-header.tsx +++ b/src/components/berths/berth-detail-header.tsx @@ -24,6 +24,7 @@ import { SelectValue, } from '@/components/ui/select'; import { Textarea } from '@/components/ui/textarea'; +import { DetailHeaderStrip } from '@/components/shared/detail-header-strip'; import { PermissionGate } from '@/components/shared/permission-gate'; import { BerthForm } from './berth-form'; import { apiFetch } from '@/lib/api/client'; @@ -94,7 +95,7 @@ function StatusChangeDialog({ formState: { isSubmitting }, } = useForm({ resolver: zodResolver(updateBerthStatusSchema), - defaultValues: { status: currentStatus as typeof BERTH_STATUSES[number], reason: '' }, + defaultValues: { status: currentStatus as (typeof BERTH_STATUSES)[number], reason: '' }, }); const status = watch('status'); @@ -127,7 +128,7 @@ function StatusChangeDialog({