Files
Parsons/src/components/organisms/Navigation/Navigation.stories.tsx
Richie 9ac8e31516 Refine HomePage layout and add Locations dropdown to Navigation
- Navigation: add NavItem.children support for desktop dropdown + mobile collapsible sections. Wire Locations (Melbourne, Brisbane, Sydney, South Coast NSW, Central Coast NSW) before FAQ in all HomePage stories.
- HomePage hero: add italic "Trusted by thousands of families across Australia" tagline above h1, widen text container to 990px, use hero-couple.jpg background.
- HomePage features: rename "How it works" to "4 Reasons to use Funeral Arranger", add "Why Use Funeral Arranger" overline, remove placeholder body copy.
- HomePage testimonials: add "Funeral Arranger Reviews" overline above "What families are saying".
- HomePage CTA: promote "Start planning" to primary contained button (medium).
- FuneralFinderV3: remove header + divider so the form starts directly at "How can we help".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 16:00:28 +10:00

171 lines
4.9 KiB
TypeScript

import type { Meta, StoryObj } from '@storybook/react';
import { Navigation } from './Navigation';
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
// Real FA logo — full wordmark for desktop, short icon for mobile
const FALogo = () => (
<Box sx={{ display: 'flex', alignItems: 'center' }}>
{/* Full logo for desktop */}
<Box
component="img"
src="/brandlogo/logo-full.svg"
alt="Funeral Arranger"
sx={{ height: 28, display: { xs: 'none', md: 'block' } }}
/>
{/* Short icon for mobile */}
<Box
component="img"
src="/brandlogo/logo-short.svg"
alt="Funeral Arranger"
sx={{ height: 28, display: { xs: 'block', md: 'none' } }}
/>
</Box>
);
const defaultItems = [
{ label: 'Provider Portal', href: '/provider-portal' },
{ label: 'FAQ', href: '/faq' },
{ label: 'Contact Us', href: '/contact' },
{ label: 'Log in', href: '/login' },
];
const meta: Meta<typeof Navigation> = {
title: 'Organisms/Navigation',
component: Navigation,
tags: ['autodocs'],
parameters: {
layout: 'fullscreen',
design: {
type: 'figma',
url: 'https://www.figma.com/design/XUDUrw4yMkEexBCCYHXUvT/Parsons?node-id=14-108',
},
},
argTypes: {
ctaLabel: { control: 'text' },
},
};
export default meta;
type Story = StoryObj<typeof Navigation>;
// --- Default -----------------------------------------------------------------
/** Desktop — logo left, navigation links right */
export const Default: Story = {
args: {
logo: <FALogo />,
items: defaultItems,
},
};
// --- With CTA ----------------------------------------------------------------
/** Desktop with a primary call-to-action button */
export const WithCTA: Story = {
args: {
logo: <FALogo />,
items: defaultItems,
ctaLabel: 'Start planning',
onCtaClick: () => alert('Navigate to arrangement flow'),
},
};
// --- With Page Content -------------------------------------------------------
/** Full page layout — sticky header with scrollable content */
export const WithPageContent: Story = {
render: () => (
<Box>
<Navigation logo={<FALogo />} items={defaultItems} ctaLabel="Start planning" />
<Box
sx={{
maxWidth: 'lg',
mx: 'auto',
px: { xs: 2, md: 4 },
py: 6,
}}
>
<Typography variant="h2" sx={{ mb: 3 }}>
Find a funeral director
</Typography>
<Typography variant="body1" color="text.secondary" sx={{ mb: 4, maxWidth: 600 }}>
Compare trusted funeral directors in your area. View services, pricing, and reviews to
find the right support for your family.
</Typography>
{Array.from({ length: 8 }).map((_, i) => (
<Box
key={i}
sx={{
p: 3,
mb: 2,
bgcolor: 'background.paper',
borderRadius: 1,
border: '1px solid',
borderColor: 'divider',
}}
>
<Typography variant="h6">Provider {i + 1}</Typography>
<Typography variant="body2" color="text.secondary">
Placeholder content to demonstrate scroll behaviour with sticky header.
</Typography>
</Box>
))}
</Box>
</Box>
),
};
// --- Minimal -----------------------------------------------------------------
/** Minimal — logo only, no navigation items */
export const Minimal: Story = {
args: {
logo: <FALogo />,
},
};
// --- Extended Navigation -----------------------------------------------------
/** More nav items for arrangements flow context */
export const ExtendedNavigation: Story = {
args: {
logo: <FALogo />,
items: [
{ label: 'Directors', href: '/directors' },
{ label: 'Venues', href: '/venues' },
{ label: 'Pricing', href: '/pricing' },
{ label: 'Provider Portal', href: '/provider-portal' },
{ label: 'FAQ', href: '/faq' },
{ label: 'Contact Us', href: '/contact' },
{ label: 'Log in', href: '/login' },
],
ctaLabel: 'Start planning',
},
};
// --- With Dropdown -----------------------------------------------------------
/** Items with `children` render as a dropdown on desktop and a collapsible
* section in the mobile drawer */
export const WithDropdown: Story = {
args: {
logo: <FALogo />,
items: [
{
label: 'Locations',
children: [
{ label: 'Melbourne', href: '/locations/melbourne' },
{ label: 'Brisbane', href: '/locations/brisbane' },
{ label: 'Sydney', href: '/locations/sydney' },
{ label: 'South Coast NSW', href: '/locations/south-coast-nsw' },
{ label: 'Central Coast NSW', href: '/locations/central-coast-nsw' },
],
},
{ label: 'FAQ', href: '/faq' },
{ label: 'Contact Us', href: '/contact' },
{ label: 'Log in', href: '/login' },
],
},
};