import type { Meta, StoryObj } from '@storybook/react' import { useState } from 'react' import { DashboardPage } from './DashboardPage' import { AppShell } from '@/components/templates/AppShell/AppShell' import { TopBar } from '@/components/organisms/TopBar/TopBar' import { SideNav, SideNavItem, SideNavDivider } from '@/components/organisms/SideNav/SideNav' import { PageHeader } from '@/components/organisms/PageHeader/PageHeader' import { Card, CardHeader, CardTitle, CardContent } from '@/components/molecules/Card/Card' import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from '@/components/molecules/Accordion/Accordion' import { Badge } from '@/components/atoms/Badge/Badge' import { Avatar } from '@/components/atoms/Avatar/Avatar' import { NswLogo, TopBarAction } from '@/components/templates/_story-helpers' import { Menu, Bell, Home, FileText, LayoutGrid, Users, CheckCircle, Clock, BarChart3 } from 'lucide-react' const meta: Meta = { title: 'Templates/DashboardPage', component: DashboardPage, tags: ['autodocs', 'template'], parameters: { layout: 'fullscreen', docs: { description: { component: 'Dashboard page template with stat summary row and a responsive 2-column content grid. Use inside AppShell for the full page layout.', }, }, }, } export default meta type Story = StoryObj export const WithAppShell: Story = { name: 'Full page', render: () => { const [collapsed, setCollapsed] = useState(false) return ( } label="Menu" onClick={() => setCollapsed(!collapsed)} />} logo={} > } label="Notifications" /> } sideNav={ } active>Overview }>Team }>Projects }>Reports }>Analytics } sideNavCollapsed={collapsed} > } stats={ <>

142

Hours logged

Target 200h

24

Tasks completed

This month

8

Active projects

} > Pending actions Complete onboarding checklist Review and complete all required onboarding items. Submit quarterly report Your Q2 report is due by end of month. Review team permissions Audit team member access levels.
Compliance status
Security training }>Complete
Data privacy certification Due soon

Welcome to the team! Here are some resources to help you get started.

) }, } export const Standalone: Story = { name: 'Content only', render: () => ( } stats={ <>

21h

Hours logged

5

Activities

} > Left column Right column
), }