Upgrade to React 19, MUI v7, Storybook 9

- React 18 → 19, MUI v5 → v7, Storybook 8 → 9
- Fix Grid v2 API in Footer (remove item prop, use size prop)
- Inline provider fixtures (was importing from excluded demo dir)
- Remove consolidated SB addons (essentials, storysource, blocks)
- Update addon-designs to SB9-compatible version
- Add autodocs via tags in preview config
- Add Tailwind v3, PostCSS, autoprefixer dev deps (config next)
- Zero TypeScript errors, Storybook starts clean

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 13:21:52 +10:00
parent 4cafd84142
commit fcc69446f3
7 changed files with 12398 additions and 49 deletions

View File

@@ -99,7 +99,7 @@ export const Footer = React.forwardRef<HTMLDivElement, FooterProps>(
{/* Main footer content */}
<Grid container spacing={{ xs: 4, md: 6 }}>
{/* Logo + tagline column */}
<Grid item xs={12} md={4}>
<Grid size={{ xs: 12, md: 4 }}>
<Box sx={{ mb: 2 }}>{logo}</Box>
{tagline && (
<Typography
@@ -157,10 +157,7 @@ export const Footer = React.forwardRef<HTMLDivElement, FooterProps>(
{/* Link group columns */}
{linkGroups.map((group) => (
<Grid
item
xs={6}
sm={4}
md
size={{ xs: 6, sm: 4, md: 'grow' }}
key={group.heading}
component="nav"
aria-label={group.heading}

View File

@@ -2,8 +2,7 @@ import { useState } from 'react';
import type { Meta, StoryObj } from '@storybook/react';
import Box from '@mui/material/Box';
import { ProviderMap } from './ProviderMap';
import { providers as demoProviders } from '../../../demo/shared/fixtures/providers';
import type { ProviderData } from '../../pages/ProvidersStep';
import { providers } from '../../../fixtures/providers';
const meta: Meta<typeof ProviderMap> = {
title: 'Organisms/ProviderMap',
@@ -29,9 +28,6 @@ const meta: Meta<typeof ProviderMap> = {
export default meta;
type Story = StoryObj<typeof ProviderMap>;
// Cast: DemoProvider adds `tier` over ProviderData, structural subset for the map
const providers = demoProviders as ProviderData[];
// ────────────────────────────────────────────────────────────────────────────
/** All 7 demo providers with real NSW/QLD coordinates. Map fits bounds across them. */

94
src/fixtures/providers.ts Normal file
View File

@@ -0,0 +1,94 @@
import type { ProviderData } from '../components/pages/ProvidersStep';
import { assetUrl } from '../utils/assetUrl';
export const providers: ProviderData[] = [
{
id: 'parsons',
name: 'H.Parsons Funeral Directors',
location: 'Wentworth, NSW',
verified: true,
imageUrl: assetUrl('/images/venues/hparsons-funeral-home-wollongong/01.jpg'),
logoUrl: assetUrl('/images/providers/hparsons-funeral-directors/logo.png'),
rating: 4.6,
reviewCount: 7,
startingPrice: 1800,
distanceKm: 2.3,
coords: { lat: -34.1074, lng: 141.9166 },
description:
'H.Parsons delivers premium funeral services with exceptional care and support, guiding families through every step with empathy and expertise.',
},
{
id: 'rankins',
name: 'Rankins Funeral Services',
location: 'Wollongong, NSW',
verified: true,
imageUrl: assetUrl('/images/venues/rankins-funeral-home-warrawong/01.jpg'),
logoUrl: assetUrl('/images/providers/rankins-funerals/logo.png'),
rating: 4.8,
reviewCount: 23,
startingPrice: 2450,
distanceKm: 5.1,
coords: { lat: -34.487, lng: 150.897 },
},
{
id: 'wollongong-city',
name: 'Wollongong City Funerals',
location: 'Wollongong, NSW',
verified: false,
rating: 4.2,
reviewCount: 15,
startingPrice: 3400,
distanceKm: 6.8,
coords: { lat: -34.4278, lng: 150.8931 },
},
{
id: 'killick',
name: 'Killick Family Funerals',
location: 'Kingaroy, QLD',
verified: true,
imageUrl: assetUrl('/images/venues/killick-family-funerals-chapel-kingaroy/01.jpg'),
logoUrl: assetUrl('/images/providers/killick-family-funerals/logo.png'),
rating: 4.9,
reviewCount: 15,
startingPrice: 3100,
distanceKm: 8.4,
coords: { lat: -26.5408, lng: 151.8388 },
},
{
id: 'mackay',
name: 'Mackay Family Funeral Directors',
location: 'Ourimbah, NSW',
verified: true,
imageUrl: assetUrl('/images/venues/mackay-family-garden-estate/01.jpg'),
logoUrl: assetUrl('/images/providers/mackay-family-funerals/logo.webp'),
rating: 4.6,
reviewCount: 87,
startingPrice: 2800,
distanceKm: 18.2,
coords: { lat: -33.3644, lng: 151.3728 },
},
{
id: 'mannings',
name: 'Mannings Funerals',
location: 'Bega, NSW',
verified: true,
imageUrl: assetUrl('/images/venues/mannings-chapel/01.jpg'),
logoUrl: assetUrl('/images/providers/mannings-funerals/logo.png'),
rating: 4.7,
reviewCount: 31,
startingPrice: 2600,
distanceKm: 22.0,
coords: { lat: -36.6742, lng: 149.8417 },
},
{
id: 'botanical',
name: 'Botanical Funerals',
location: 'Newtown, NSW',
verified: false,
rating: 4.9,
reviewCount: 8,
startingPrice: 5200,
distanceKm: 15.0,
coords: { lat: -33.8988, lng: 151.1794 },
},
];