Commit Graph

191 Commits

Author SHA1 Message Date
ae1e344a8a Add MapPopup molecule — floating card for map pin click context
Compact provider/venue preview anchored to a MapPin. Image + name +
price + meta row + "View details" link. Downward nub connects to pin.
Drop-shadow filter for floating appearance. Verified badge inside image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:51:02 +10:00
4fecb81853 Add MapPin atom — price-pill map markers with verified/unverified distinction
Airbnb-style markers: pill variant (price label + nub) and dot variant
(no price). Verified = brand palette, unverified = neutral grey.
Active state inverts colours + scale-up. Pure CSS for map overlay use.
Keyboard accessible with role="button" and focus ring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:49:08 +10:00
f7efa7165c Add MiniCard molecule and component tokens for MiniCard + MapPin
MiniCard: compact vertical card for grids, recommendations, and map
popups. Image + title + optional price/badges/chips/meta. Lighter
than ProviderCard — no verified tiers, no logo. Audit: 20/20.

MapPin tokens added (build next): price-pill markers for map views.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:47:26 +10:00
2843bf289f Complete retroactive review: all phases done, only typeset deferred
Phase 1-3 audits and normalizations complete. ServiceSelector
aria-required fixed (P0). Badge/AddOnOption/ProviderCard flagged
issues analyzed and determined false positives. Preflight clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:29:32 +10:00
abdbf56c87 Add aria-required to ServiceSelector radiogroup for screen reader clarity
When a continue button is present (selection gates forward progress),
the radiogroup now communicates that a selection is mandatory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:28:15 +10:00
9f5848b8a3 Add plain-English guide for Claude Code + Antigravity workflow
Human-readable reference for day-to-day use: when to use which tool,
typical flows for page tweaking and component building, workflow quick
reference, and how things change when backend work starts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 12:17:18 +10:00
4af684ec8f Add cross-tool workflow: AGENTS.md, Antigravity workflows, documentation
- Create AGENTS.md (90 lines) as shared foundation for Claude Code + Antigravity
- Slim CLAUDE.md from 113 to 45 lines (Claude-specific only, references AGENTS.md)
- Slim GEMINI.md from 58 to 26 lines (Antigravity-specific only, references AGENTS.md)
- Add 6 Antigravity workflows in .agent/workflows/ (session-start, preflight, token-sync, visual-qa, build-component, page-review)
- Add docs/reference/cross-tool-workflow.md with task routing, quality gates, file ownership, error mitigation
- Zero content overlap between CLAUDE.md and GEMINI.md (was ~80%)
- File ownership boundaries defined for current phase and future backend work

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 11:10:32 +10:00
68889af9c2 Add UnverifiedPackageT2/T3 pages, FuneralFinder pre-planning timeframe, PackageDetail variants
- UnverifiedPackageT3: package step for unverified providers (no image,
  estimated pricing disclaimer, "Make an enquiry" CTA, nearby verified
  providers section)
- UnverifiedPackageT2: same but with "Itemised Pricing Unavailable" notice
  replacing the line-item breakdown
- PackageDetail: new props — arrangeLabel, priceDisclaimer, itemizedUnavailable
- FuneralFinderV3: pre-planning follow-up question ("How soon might you
  need this?"), responsive sizing fixes, compulsory validation
- HomePage: fix finder container width (flex stretch + 500px cap)
- .gitignore: exclude Claude/Playwright artifacts, working docs, screenshots

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 10:35:28 +11:00
eb6cf6a185 Add FuneralFinder V4, HomePage V3/V4, restyle Footer to light grey
- FuneralFinder V4: 3 numbered steps (48px circles), ungated location,
  no heading, inline copper errors, "Search" CTA. Archived.
- FuneralFinderV3: heading weight 600, "Find your local providers",
  "Search Local Providers" CTA, optional subheading
- HomePage V1/V2: split into separate archived stories
- HomePage V3: hero-3.png, updated copy, venue photos, map placeholder,
  scrolling partner logo bar, warm gradient CTA, increased spacing
- HomePage V4: same as V3 with FuneralFinderV4 via new finderSlot prop
- Footer: surface.subtle bg (matches header), dark-on-light text
- All versions archived in Storybook

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:02:52 +11:00
aaa4f80a05 Update session log + component registry for 2026-03-31d
Added: UnverifiedProviderStep, HomePage V2, filter panels, control bars,
sort/view toggle, Phase 4 adapt fixes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 21:27:02 +11:00
90f47580ca Strip template feel from features + simplify CTA section
Features: remove Card containers and circular icon backgrounds.
Clean icon (brand colour) + heading + description in open grid.
Feels authentic, not template-generated.

CTA: remove warm bg, use default surface with subtle divider above.
Heading in display3, understated placement between testimonials and FAQ.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 21:18:54 +11:00
ad589b9870 Increase hero gradient for text readability
Top: 35% → 55% opacity (darker reading zone for white text)
Middle: 15% → 10% at 60% (landscape stays vibrant)
Bottom: 40% → 30% (lighter, less needed with dark landscape)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:49:07 +11:00
f255e8f26e Add top padding to discover section to clear FuneralFinder overlap
pt: 6→20 (xs), 10→24 (md) so "See what you'll discover" heading
sits below the finder card, not underneath it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:45:24 +11:00
b2f0d8af5c Stack hero content vertically: heading → subheading → finder
Hero flex-direction: row → column so finder sits below the text,
centred, with bottom half overlapping into the white section.
Matches reference layout: text on image, finder straddles boundary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:42:25 +11:00
ecf7a13e1d Move FuneralFinder inside hero section, overlapping into white below
- FuneralFinder now renders inside the hero Box (V2 only)
- mb: -18 pulls the next section up so finder straddles hero/content
- No more white gap between hero image and finder
- V1 standalone finder preserved with conditional render

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:31:53 +11:00
73aaa71644 Hero layout: text top-aligned, FuneralFinder overlaps into hero image
- Hero text: alignItems center → flex-start, pt 8 (top of image)
- FuneralFinder: mt -10 → -22 (sits on the hero image, not white bg)
- Heading + subheading + finder all visible above the fold

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:27:41 +11:00
b9e0d9ad13 HomePage V2 refinements: taller hero, compact cards, warm testimonials
- Hero: minHeight 520→640px, extends further below FuneralFinder
- FuneralFinder: mt -6→-10 (closer to hero text), maxWidth 620→520px
- Stats bar: removed entirely
- Typo: fixed "See what you'll discover"
- Discover cards: ProviderCard → ProviderCardCompact (horizontal, teaser)
- Testimonials: warm surface background for section contrast

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:23:09 +11:00
44f159a453 HomePage V2: full-bleed hero, stats bar, discover section, editorial testimonials
New layout inspired by reference designs:
- Full-bleed hero with parsonshero.png + gradient overlay (heroImageUrl prop)
- Trust stats bar: 1,500+ families, 4.9 rating, 300+ directors
- "See what you'll discover" section: map placeholder + featured ProviderCards
- Editorial testimonials: alternating left/right with quote marks (no cards)
- Minimal FAQ: borderless accordion with divider lines
- V1 split hero preserved when heroImage prop used instead

New types: TrustStat, FeaturedProvider.
New props: heroImageUrl, stats, featuredProviders, discoverMapSlot,
  onSelectFeaturedProvider.
V1 stories unchanged, new V2 story added.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:08:53 +11:00
51918ea503 Switch UnverifiedProviderStep to list-detail layout for consistency
Matches PackagesStep pattern:
- Left panel: ProviderCardCompact + badge + details + recommendations
- Right panel: warm header band + available info + enquiry CTA
  (mirrors PackageDetail structure)

Users navigating between verified/unverified providers see the same
page structure — left panel for browsing, right panel for action.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:59:48 +11:00
abb7f46a33 New UnverifiedProviderStep page for scraped provider listings
Page shown when user selects an unverified provider from ProvidersStep.
Displays whatever data we have, offers enquiry CTA, recommends verified
alternatives.

Sections (all conditional based on available data):
- Provider header: ProviderCardCompact + "Listing" info badge
- What we know: definition list grid (pricing, services, area)
- Enquiry CTA: warm-bg card with "Make an Enquiry" button
- Verified recommendations: 2-col grid of ProviderCards

4 story variants: Default (full data), MinimalData, NoData, NoRecommendations.
Uses centered-form WizardLayout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:54:33 +11:00
a127a50dea Update session log for 2026-03-31d (VenueStep filters, control bar, view toggle)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:27:20 +11:00
02510caf18 Match sort button size to filters, more spacing above results count
- Sort button: remove fontSize override so it inherits Button small size
- Results count: mt 2 → 3 for more breathing room below controls

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:24:11 +11:00
7b8cb65a63 Move List/Map toggle to floating overlay on map panel
- View toggle: floating in top-left of map panel with shadow + paper bg
- Control bar: just Filters + Sort (consistent heights, no overflow)
- Results count: bumped mt from 1 to 2 for more breathing room
- Both ProvidersStep and VenueStep updated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:21:06 +11:00
e67c6342e9 Refine control bar: single-line layout, compact sort, labelled toggle
- All controls on one line: [List|Map] [Filters] [↕ Recommended]
- Sort: compact menu button replaces bulky TextField select
- View toggle: "List" / "Map" text labels alongside icons
- Results count: own line below controls
- Sort pushed right with ml:auto for visual separation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:09:52 +11:00
e3090e6aed Add sort dropdown + list/map view toggle to ProvidersStep & VenueStep
New control bar below search on both listing pages:
- Left: results count (passive)
- Right: sort select (Recommended/Nearest/Price), list/map toggle, filters

Sort: compact TextField select with 4 options, 0.813rem font.
View toggle: MUI ToggleButtonGroup with list/map icons, brand highlight.
Control bar wraps gracefully on narrow panels (flex-wrap).

New types: ProviderSortBy, VenueSortBy, ListViewMode.
Stories updated with interactive sort + view state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:47:50 +11:00
a3069b2ee6 VenueStep structured filters: venue type, services, tradition
Replace generic chip filters with structured VenueFilterValues:
- Location: chip-in-input (same pattern as ProvidersStep)
- Venue type: wrapping chip multi-select (Chapel, Church, Cathedral,
  Outdoor Venue, Hall/Room, Mosque, Temple)
- Additional services: switches (Video Streaming, Photo Display)
- Service tradition: autocomplete with type-to-search (21 options)

New VenueFilterValues interface, EMPTY_VENUE_FILTERS export.
New story: WithActiveFilters (Chapel + video + Catholic).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:29:30 +11:00
f541926cb9 Update session log and retroactive review plan for 2026-03-31d
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:23:09 +11:00
b2c5fc2cbf Fix chip and slider overflow in filter panel
- Funeral type chips: wrap instead of horizontal scroll (stacks to 2 rows)
- Price slider: px 1 → 2.5 to accommodate MUI thumb radius (10px)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:20:55 +11:00
477da7d801 Fix filter overflow + location chip-in-input pattern
- Price slider: overflow hidden on container prevents horizontal scrollbar
- Funeral type chips: overflow hidden on parent prevents clipping through
- Location: chip-in-input using Autocomplete multiple+freeSolo (real estate
  site pattern — chip with X sits inside the search field)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:16:39 +11:00
89ba86565a Filter panel UX refinements: headings, layout, location chip, padding
- DialogShell: bump px from 3 to 5 (20px) for more breathing room
- FilterPanel: "Done" → "Apply", move "Clear all" to footer as "Reset filters"
- ProvidersStep filters:
  - Section headings: labelLg + fontWeight 600 for visual hierarchy
  - Funeral type chips: horizontal scroll instead of wrap
  - Location section: chip showing current search + editable input
  - Price inputs: compact fontSize 0.875rem + tighter padding
  - Service tradition: 'None' added as first option
  - Active count includes location search
  - Reset clears search query too

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:07:32 +11:00
7dea9f5855 ProvidersStep structured filters: tradition, type, verified, online, price
Replace generic ProviderFilter[] chip array with structured filter state:
- Service tradition: Autocomplete with type-to-search (20 options)
- Funeral type: Chip multi-select (6 types from spec)
- Verified providers only: Switch toggle
- Online arrangements available: Switch toggle
- Price range: Dual-knob slider with editable inputs (matches CoffinsStep)

New ProviderFilterValues interface, EMPTY_FILTER_VALUES export.
New story: WithActiveFilters (pre-applied Catholic + cremation + $0-2k).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:56:31 +11:00
23bcf31c87 Fix mobile touch targets in Navigation + Footer (Phase 4 /adapt)
- Navigation: hamburger minWidth/minHeight 44px, drawer items minHeight 44px
- Footer: contact links, link group links, legal links all minHeight 44px
- Footer: tagline maxWidth responsive (100% on xs, 280 on md)
- ProviderCard/VenueCard: no changes needed (card is the touch target, not meta items)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:43:50 +11:00
cbd33daf3a Update session log and component registry for 2026-03-31c
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:36:20 +11:00
49b49e2113 Progress bar layout refinement + step label readability
- StepperBar: stepper centred at 700px max-width, cart hugs right edge
- StepIndicator: bump desktop label fontSize to 0.875rem for readability
- DateTimeStep story: demo progress bar + cart in context

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:34:35 +11:00
e73ccf36dd CartButton molecule + progress bar on all wizard layouts
- New CartButton molecule: outlined pill trigger with receipt icon,
  "Your Plan" label + formatted total in brand colour. Click opens
  DialogShell with items grouped by section via LineItem, total row,
  empty state. Mobile collapses to icon + price.
- WizardLayout: remove STEPPER_VARIANTS whitelist — stepper bar now
  renders on any layout variant when progressStepper/runningTotal props
  are provided (StepperBar already returns null when both empty)
- Thread progressStepper + runningTotal props to DateTimeStep, VenueStep,
  SummaryStep, PaymentStep (joins 8 pages that already had them)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:19:20 +11:00
7a06f89e84 ConfirmationStep redesign, page tweaks across wizard
- ConfirmationStep: animated SVG tick, "What happens next" warm card,
  bullet-point layout, contactPhone prop, link-based secondary actions
- VenueStep + ProvidersStep: sticky search bar padding fix, off-white
  bg behind card lists
- IntroStep, CemeteryStep, CrematoriumStep, DateTimeStep: add divider
  under subheading for visual separation
- CoffinsStep: h4 heading (matches VenueStep/ProvidersStep list layout),
  sidebar headings h5 → h6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:09:12 +11:00
9b75aa7ef3 Normalize organisms, PaymentStep feedback, cross-page spacing fix
- Organism normalize pass: fix FuneralFinderV3 transition timing
  (200ms → 150ms ease-in-out), add autodocs tag to V3 stories
- Navigation: fix logo a11y — div with role="link" → proper <a> tag
- ToggleButtonGroup: add align (start/center) and direction (row/column)
  props, bump description text from text.secondary to text.primary
- PaymentStep: divider under subheading, lock icon alignment, centre-
  aligned payment options, vertical payment method stack, checkbox align
- SummaryStep: save button → text variant (matches other pages), centred
- All wizard pages: heading mb: 1 → mb: 2 for better breathing room
- Style Dictionary: auto-generate tokens.d.ts, fix TS unused imports
- tokens.d.ts: generated type declarations for 398 token exports

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:13:40 +11:00
8c42000692 Update session log: next steps are PaymentStep + ConfirmationStep
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:05:31 +11:00
f33a1e1d42 SummaryStep: fix share button position + save button visibility
- Share this plan: right-aligned below divider, clear spacing before content
- Save and continue later: outlined button, full width, under confirm CTA

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:03:33 +11:00
0254022b07 Update session log and component registry for SummaryStep rewrite
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 12:59:16 +11:00
59f4eb46db SummaryStep: visual cart layout with arrangement details and share dialog
- Visual cart-style cards with image thumbnails for provider, venue,
  crematorium, coffin (replaces accordion text lists)
- Arrangement details section at top: arranger name, deceased name,
  service tradition, preferred dates/times
- Location pin icons on all location-based cards
- Allowance display: fully covered shows "Included in your package",
  partially covered shows price/allowance/remaining breakdown
- Share dialog: "Share this plan" button opens DialogShell with multi-email
  input, add/remove recipients, send confirmation state
- Included services as checkmark list, extras as priced list (consistent
  tick logic — only in sections with no priced items)
- Full-width CTA, deposit deferred to payment step
- Edit buttons with pencil icon in secondary colour

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 12:58:25 +11:00
6cb3184130 Split AdditionalServicesStep into IncludedServicesStep + ExtrasStep
- IncludedServicesStep: package inclusions at no cost (dressing, viewing,
  prayers, funeral announcement). Sub-options render inside parent card.
- ExtrasStep: optional paid extras for lead generation (catering, music,
  coffin bearing, newspaper notice). POA support, tally of priced items.
- AddOnOption: children prop (sub-options inside card), priceLabel prop
  (custom text like "Price on application" in brand copper italic)
- Flattened sub-option pattern: inline toggle rows inside parent card
  instead of nested card-in-card ("Russian doll") pattern
- Coffin bearing now uses toggle + bearer type radio (consistent UX)
- Removed old AdditionalServicesStep (replaced by two new pages)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 12:10:26 +11:00
c7a8d9e906 CoffinDetailsStep: rewrite to match VenueDetailStep layout
- Two-panel detail-toggles: gallery + specs (left), product info + CTA (right)
- Colour swatch picker (circular buttons, controlled selection, no price impact)
- Allowance-aware pricing: fully covered shows "no change to plan total",
  partially covered shows breakdown with additional cost to plan
- Product details as semantic dl list (bold label above value)
- Removed: old specs grid, termsText prop, priceNote prop, info bubble
- Added: CoffinColour type, allowanceAmount prop, onAddCoffin callback
- Fixed heading hierarchy (h1 → h2, price as p not h5) — 0 a11y violations
- Stories: FullyCovered, PartiallyCovered, NoAllowance, NoColours, Minimal,
  PrePlanning, Loading

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:26:29 +11:00
89d6652935 Update session log and component registry for CoffinsStep rewrite
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:37:46 +11:00
34cd87c85a CoffinsStep: rewrite to grid-sidebar ecommerce layout
- Switch from wide-form to grid-sidebar (viewport-locked, independent scroll)
- Sidebar: heading, allowance info bubble (conditional), category menu with
  expandable subcategories, dual-knob price slider with editable inputs,
  sort by dropdown, clear all filters, save-and-exit link
- Grid: coffin cards with thumbnail hover preview, equal-height cards,
  subtle bg for white-bg product photos, colour count, Most Popular badge
- Card click navigates to CoffinDetailsStep (no Continue button)
- 20 coffins per page max before pagination
- WizardLayout grid-sidebar: wider sidebar (28%), overflowX hidden,
  vertical scroll at all breakpoints, viewport-lock on desktop only

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:36:23 +11:00
6041ca2504 Update session log for 2026-03-30e (full session)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:21:13 +11:00
42a2802998 CemeteryStep: freetext search input replaces static dropdown
- MUI Autocomplete with static list replaced by Input atom with
  search icon — parent wires to Google Places or geocoding API
- Optional searchSlot prop for custom autocomplete integration
- Removed CemeteryOption type and cemeteries prop
- cemeterySearch field stores freetext, not a selected ID

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:19:35 +11:00
7b126ac9df CemeteryStep: autocomplete search replaces dropdown, lighter labels
- Select dropdown replaced with MUI Autocomplete (type-to-search
  with search icon) — scalable for large cemetery lists
- Heavy h5 headings replaced with body1 contextual text
- In production, parent can wire this to Google Places API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:15:25 +11:00
14af8d1f5a CemeteryStep: rewrite to match live site
- ToggleButtonGroups (Yes/No/Not sure) replace RadioGroups
- Select dropdown replaces card selection grid
- Progressive disclosure: own plot → locate it; no plot → preference?
- "Not sure" option on both questions for grief-sensitive escape hatch
- Component registry updated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:09:40 +11:00
52e42c3415 CrematoriumStep stories: cleaner address/distance data
Drop state/postcode from addresses, round distances to whole numbers,
use generic "from service venue" instead of provider name in distance.

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