import React from 'react'; import { PageContainer } from './PageContainer'; import type { Meta, StoryObj } from '@storybook/react'; const meta: Meta = { title: 'components/Page/PageContainer', component: PageContainer, parameters: { layout: 'fullscreen', }, tags: ['autodocs'], argTypes: { width: { control: 'select', options: ['slim', 'default', 'wide', 'full'], }, paddingX: { control: 'select', options: ['none', 'small', 'medium', 'large'], }, paddingY: { control: 'select', options: ['none', 'small', 'medium', 'large'], }, centerVertically: { control: 'boolean', }, }, }; export default meta; type Story = StoryObj; const Box = ({ children, className }: { children: React.ReactNode; className?: string }) => (
{children}
); /** * Standard container with default width and padding. */ export const Default: Story = { args: { children: Default Container Content, width: 'default', paddingY: 'medium', }, }; /** * Narrower slim container, ideal for articles. */ export const Slim: Story = { args: { children: Slim Container Content (1100px Max-Width), width: 'slim', paddingY: 'medium', }, }; /** * Wider wide container, useful for dashboards. */ export const Wide: Story = { args: { children: Wide Container Content (1920px Max-Width), width: 'wide', paddingY: 'medium', }, }; /** * Vertically centered container. */ export const VerticallyCentered: Story = { render: (args) => (
I am vertically centered!
), }; /** * Demonstration of different horizontal padding scales. */ export const PaddingScales: Story = { render: () => (

paddingX: small

Small Padding Content

paddingX: medium (Default)

Medium Padding Content

paddingX: large

Large Padding Content
), };