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.
),
};