import type { Meta, StoryObj } from '@storybook/react'; import { WizardLayout } from './WizardLayout'; import Box from '@mui/material/Box'; import { Typography } from '../../atoms/Typography'; import { Button } from '../../atoms/Button'; import { Divider } from '../../atoms/Divider'; import { Navigation } from '../../organisms/Navigation'; import { StepIndicator } from '../../molecules/StepIndicator'; // ─── Helpers ───────────────────────────────────────────────────────────────── const FALogo = () => ( ); const nav = ( } items={[ { label: 'FAQ', href: '/faq' }, { label: 'Contact Us', href: '/contact' }, { label: 'Log in', href: '/login' }, ]} /> ); const stepper = ( ); const runningTotal = ( Your plan $3,600 ); const PlaceholderCard: React.FC<{ title: string; height?: number }> = ({ title, height = 100 }) => ( {title} Placeholder content for layout demonstration. ); // ─── Meta ──────────────────────────────────────────────────────────────────── const meta: Meta = { title: 'Templates/WizardLayout', component: WizardLayout, tags: ['autodocs'], parameters: { layout: 'fullscreen', }, argTypes: { variant: { control: 'select', options: ['centered-form', 'list-map', 'list-detail', 'grid-sidebar', 'detail-toggles'], description: 'Layout variant', table: { defaultValue: { summary: 'centered-form' } }, }, showBackLink: { control: 'boolean' }, hideHelpBar: { control: 'boolean' }, backLabel: { control: 'text' }, helpPhone: { control: 'text' }, }, }; export default meta; type Story = StoryObj; // ─── Centered Form ────────────────────────────────────────────────────────── /** Step 1 (Intro) style — single centered column, no back link, no progress stepper */ export const CenteredForm: Story = { args: { variant: 'centered-form', navigation: nav, }, render: (args) => ( Let's get started We'll guide you through arranging a funeral, step by step. Who is this funeral being arranged for? ), }; // ─── Centered Form with Back ──────────────────────────────────────────────── /** Form step with back link (e.g. date/time, payment) */ export const CenteredFormWithBack: Story = { args: { variant: 'centered-form', navigation: nav, showBackLink: true, backLabel: 'Back', }, render: (args) => ( Date and time When would you like the service to take place? ), }; // ─── List + Map ────────────────────────────────────────────────────────────── /** Provider search — scrollable card list with map panel */ export const ListMap: Story = { args: { variant: 'list-map', navigation: nav, showBackLink: true, }, render: (args) => ( Map placeholder } > Choose a funeral provider Explore providers near you Showing results from 5 providers {Array.from({ length: 4 }).map((_, i) => ( ))} ), }; // ─── List + Detail ─────────────────────────────────────────────────────────── /** Package selection — list left, detail panel right */ export const ListDetail: Story = { args: { variant: 'list-detail', navigation: nav, showBackLink: true, }, render: (args) => ( Everyday Funeral Package $2,700 {['Essentials', 'Complimentary Items', 'Extras'].map((section) => ( {section} {Array.from({ length: 3 }).map((_, i) => ( ))} ))} } > Packages {Array.from({ length: 4 }).map((_, i) => ( ))} ), }; // ─── Grid + Sidebar ────────────────────────────────────────────────────────── /** Coffin selection — filter sidebar + responsive card grid */ export const GridSidebar: Story = { args: { variant: 'grid-sidebar', navigation: nav, showBackLink: true, progressStepper: stepper, runningTotal: runningTotal, }, render: (args) => ( Coffins Browse our selection of bespoke designer coffins. {Array.from({ length: 6 }).map((_, i) => ( ))} } > Categories {['Materials', 'Colour', 'Environmental', 'Religious'].map((cat) => ( ))} Price ), }; // ─── Detail + Toggles ─────────────────────────────────────────────────────── /** Venue/coffin detail — hero image + product info */ export const DetailToggles: Story = { args: { variant: 'detail-toggles', navigation: nav, showBackLink: true, progressStepper: stepper, runningTotal: runningTotal, }, render: (args) => ( West Chapel Wentworth, NSW Capacity: 120 guests A beautiful heritage chapel set in peaceful gardens, offering a serene setting for farewell services. $900 } > Venue image placeholder {Array.from({ length: 5 }).map((_, i) => ( ))} ), }; // ─── No Navigation ────────────────────────────────────────────────────────── /** Minimal — no nav, no help bar (for embedded use) */ export const Minimal: Story = { args: { variant: 'centered-form', hideHelpBar: true, }, render: (args) => ( Embedded form No navigation or help bar — for iframe or modal contexts. ), };