Commit Graph

21 Commits

Author SHA1 Message Date
8a5a4dc128 Archive FuneralFinder V1/V2, set V3 as production (D032)
- V1 stories → Archive/FuneralFinder V1
- V2 stories → Archive/FuneralFinder V2
- V3 stories → Organisms/FuneralFinder (primary)
- Component registry updated (V3 = done, V1/V2 = archived)
- Retroactive review plan confirmed: P0/P1 only, interleaved (D033)
- CLAUDE.md: added proactive session startup review procedure
- Build skills updated with internal QA stages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 21:22:06 +11:00
047d913960 format: Apply Prettier to existing codebase
Formatting-only changes across all component and story files.
No logic or behaviour changes — only whitespace, line breaks, and trailing commas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 16:42:16 +11:00
0a309a0240 Polish FuneralFinderV3 — copy, spacing, defaults, label tweaks
- Section labels use text.secondary instead of brand-800
- Rename "Current Status" → "How Can We Help" (warmer, less programmatic)
- Revise copy: "A recent loss or one expected soon" (clarifies imminent vs pre-plan)
- Pre-planning: "Planning ahead for yourself or a loved one"
- Default selection: Immediate Need selected on load
- Fix spacing: remove minHeight from error containers so gap is consistent
- Add divider between location section and CTA
- Mobile: status cards already stack (xs: 1fr)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:47:01 +11:00
b15c96fa44 Restyle FuneralFinderV3 to standard design system palette
- Container: opaque white (surface.raised), standard card shadow/radius
- Status cards: white bg + neutral border, brand border + warm bg when selected
- Fields: white bg, neutral-200 border, brand border on focus, no focus ring
- CTA: standard Button contained, no custom shadows
- Keep: overline labels in brand-800, layout structure, form logic, a11y

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:34:56 +11:00
2690a231f6 Add FuneralFinder v3 — clean form with status cards + glassmorphism
- Two side-by-side StatusCards (Immediate Need / Pre-planning) with warm fills
- Glassmorphism container (backdrop-blur, semi-transparent white, deep shadow)
- Overline section labels, warm tonal field backgrounds (brand-100, no border)
- Funeral type Select + location Input with pin icon, no focus ring per design
- CTA always active — validates on click, scrolls to first missing field
- WAI-ARIA roving tabindex on radiogroup, aria-labelledby via useId()
- Semantic tokens throughout (border-brand, surface-warm, text-brand, etc.)
- Critique: 33/40 (Good), Audit: 18/20 (Excellent)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:32:26 +11:00
cb7ba5dcdb Step 1 circle uses primary fill + align Input with Select styling
- StepCircle gets `active` prop — brand-500 fill with white number (used on step 1)
- Input in step 4 now matches selectSx: bgcolor, disabled (opacity + dashed),
  error border, hover, focus — all consistent with steps 1-3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:39:44 +11:00
d5f0a584e0 Fix location input styling to match select fields
- Add neutral-200 default border and brand-400 hover border overrides
- Input now matches selects: same border color, hover, focus, font size
- Previously inherited theme defaults (neutral-300 border, neutral-400 hover)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:33:06 +11:00
cc87827c39 Add FuneralFinder v2 — quick-form stepped search widget
- 4-step vertical form: intent, planning-for, type, location
- Sequential unlock: each step enables when the previous is filled
- Step circles (48px, brand-200) transition to brand-500 check on completion
- Connector lines between circles for visual progression
- Conditional logic: arrange-now auto-sets step 2 to "Someone else"
- CTA disabled until location filled, trust signal below
- Display serif heading + subheading with divider
- Critique 33/40 (Good), Audit 18/20 (Excellent)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:27:18 +11:00
a655245842 Refine FuneralFinder v1 — full stepped flow, always-visible CTA
- Extend one-question-at-a-time pattern through all steps (type, service, location)
- CTA + location always visible at bottom; smart defaults for missing optional fields
- Minimum search requirements: intent + location; type/service/themes default to "all"
- Funeral types: Cremation, Burial, Water Burial (QLD only) + Explore All as TypeCard
- Service preference step (conditional): With a service / No service / I'm flexible
- Theme preferences (eco-friendly, budget-friendly, religious specialisation) as optional
  sub-option within type step
- StepHeading sub-component: bodyLg centered, distinct from card labels
- CompletedRows: generous py:1.5 spacing, caption-size "Change" with aria-label
- Loading prop on CTA button, location validation (3+ chars)
- Divider under subheading for visual structure
- Main heading upgraded to h2 with display font
- Audit: 14/20 (Good), Critique: 29/40 (Good)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:39:57 +11:00
1e8cd96648 Redesign FuneralFinder — conversational flow, not bureaucratic form
Complete rewrite of the interaction model:

Before: numbered steps + uppercase overline labels + cramped option cards
  → felt like a government form, not gentle guidance

After: conversational questions with generous choice cards
  → "How can we help you today?" not "1. I'M HERE TO"

Key changes:
- Questions as warm sentences, not uppercase labels
- ChoiceCards: generous padding (20px × 16px), descriptions explaining
  each option, check icon on selection
- TypePills: pill-shaped buttons with proper touch targets for funeral types
- CompletedRow: "I'm here to: **Arrange a funeral now** · Change"
  — explicit, accessible, no hidden pencil icon
- Only shows one question at a time — true progressive disclosure
- CTA only appears once location step is reached
- No step numbers, no badges — the vertical flow IS the progression

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:19:29 +11:00
d7dddb0773 Add FuneralFinder organism — hero search with stepped flow
Procedural stepped search widget for the homepage:
1. "I'm here to" — Arrange now / Pre-plan (radiogroup)
2. "I'm planning for" — Myself / Someone else (conditional, pre-plan only)
3. "Type of funeral" — dynamic Chip list from prop
4. Location — suburb or postcode input
5. CTA: "Find funeral directors" (disabled until complete)

Features:
- Progressive disclosure: steps unlock sequentially
- Brand checkmarks + edit icon on completed steps
- Click completed value to revert (only resets dependents)
- Step numbering adjusts when conditional step hidden
- Trust signal: "Free to use · No obligation"

Audit: 17/20 (Good). P1/P2 fixes applied:
- Location input aria-label for screen readers
- Option groups wrapped in role="radiogroup"
- Completed values have edit icon affordance
- Heading uses display font CSS variable
- CheckCircleIcon aria-hidden

5 stories: Default, FewerTypes, CustomHeading, InHeroDesktop, InHeroMobile

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:15:07 +11:00
ab1134eac0 Refine PackageDetail header + section hierarchy from review
PackageDetail:
- Warm header band (surface.warm) with "Package" overline, h3 name,
  h5 price in brand colour — creates distinct decision zone
- Section headings bumped to h6 (16px/600) — clear hierarchy vs
  LineItem body2 (14px/500)
- Divider + subtext before Extras: "These items can be added to your
  package at additional cost"
- Top padding increased, content padding increased (py: 3)
- Remove redundant textTransform/letterSpacing on overline (P2 fix)

LineItem:
- Item gap increased in PackageContents story (12px → 16px)

Audit: 19/20 (Excellent). 0 P0, 0 P1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 08:49:01 +11:00
0ed0adc835 Refine LineItem + PackageDetail from review feedback
LineItem:
- Bump font weight 400 → 500 (D019: Montserrat Regular too light)
- Price text now text.secondary for readability hierarchy (name primary, price quieter)
- Total row stays fully prominent (primary colour)
- Item gap increased 12px → 16px in stories

PackageDetail:
- Restructure: sections (before total) + extras (after total)
  Essentials + Complimentary → Total → Extras (additional cost)
- Add compareLoading prop — loading spinner on Compare button
- Add CompareLoading story with simulated 1.5s load
- T&C line height reduced 1.5 → 1.3
- Section gap increased for breathing room
- Complimentary items now correctly shown before total
- Default story includes onArrange + onCompare handlers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 08:42:16 +11:00
cd44f0c992 Fix P1/P2 audit issues on LineItem + PackageDetail
- LineItem: add aria-label to info icon for screen readers (P1)
- PackageDetail: stack CTA buttons vertically on narrow screens (P2)
- PackageDetail: section headings use component="h3" for hierarchy (P2)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:58:39 +11:00
377ff41aac Add LineItem, ProviderCardCompact, PackageDetail for Package Select page
LineItem (molecule):
- Name + optional info tooltip + optional price
- Allowance asterisk, total variant (bold + top border)
- Reusable for package contents, order summaries, invoices

ProviderCardCompact (molecule):
- Horizontal layout: image left, name + location + rating right
- Used at top of Package Select page to show selected provider

PackageDetail (organism):
- Right-side detail panel for Package Select page
- Name/price header, Make Arrangement + Compare CTAs
- Grouped LineItem sections, total row, T&C footer
- PackageSelectPage story: full page with filter chips, package
  list (ServiceOption), sticky detail panel, and Navigation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:51:40 +11:00
6f59468057 Remove ArrangementForm (premature) + fix Footer P2s from audit
- ArrangementForm reverted to planned — need more building blocks first
- Footer: extract shared overline + contact link sx, use overlineSm variant
- Footer: remove hardcoded fontSize/fontWeight on contact links

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:15:38 +11:00
92157242d2 Add ArrangementForm organism — multi-step arrangement wizard
- Composes StepIndicator + arbitrary step content + Back/Continue buttons
- Controlled component: parent manages currentStep, onNext, onBack, onComplete
- canContinue per step auto-disables Continue when selection required
- 5 stories: Default, InteractiveFlow (full 4-step with real data),
  MidFlow, TwoSteps, InPageContext (with Navigation)
- InteractiveFlow demo: Service → Coffin → Extras → Review with running total

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:10:31 +11:00
e775658f65 ServiceSelector: rename truncation story to WithLineLimit, clamp to 1 line
Makes the line-clamp + "View more" toggle clearly visible in the story.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:07:06 +11:00
9ce8a7e120 Add Footer + ServiceSelector organisms
Footer:
- Dark espresso (brand.950) bg, inverse white text
- Logo, tagline, contact (phone/email), link group columns, legal bar
- Semantic HTML: <footer>, <nav> per group, <ul> for lists
- Critique 38/40, P2 fixes applied (legal link size, nav landmarks)

ServiceSelector:
- Single-select panel for arrangement flow
- Composes ServiceOption × n + Typography + Button (radiogroup)
- Auto-disables continue when nothing selected
- 7 stories incl. InArrangementFlow with StepIndicator

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:04:30 +11:00
d52fb0c4ee Complete reviews + fix Navigation from user feedback
- Promote all 11 atoms, 6 molecules, 1 organism from review → done
- Navigation: grey bg (surface.subtle), real FA logo SVGs, add Provider Portal
- Navigation: remove mobileTrailing prop and MobilePriceTracker story
- Add staticDirs to Storybook config for brand assets

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:49:59 +11:00
177c3b20e3 Add Navigation organism — responsive site header with mobile drawer
- Maps to Figma Main Nav (14:108) desktop + Mobile Header (2391:41508)
- Desktop: logo left, nav links right, optional CTA button
- Mobile: hamburger + drawer with nav items, CTA, and help footer
- Sticky header with warm surface background and border
- Composes AppBar, Link, IconButton, Button, Divider, Drawer
- 6 stories: Default, WithCTA, WithPageContent (sticky scroll demo),
  Minimal, ExtendedNavigation, MobilePriceTracker

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:03:34 +11:00