import type { Meta, StoryObj } from "@storybook/react-vite"; import { ListRow } from "@shared/components/ListRow"; import { Card } from "@shared/components/Card"; import { StatusBadge } from "@shared/components/StatusBadge"; const meta: Meta = { title: "Primitives/ListRow", component: ListRow, tags: ["autodocs"], parameters: { layout: "padded" }, decorators: [ (S) => (
), ], }; export default meta; type Story = StoryObj; function Dot({ ch }: { ch: string }) { return {ch}; } export const Default: Story = { args: { leading: , leadingTone: "success", title: "MSA_Acme_2026.pdf", description: "Classified as Contract • 3 tables extracted", meta: "2h ago", }, }; /** A divided list inside a padding-none Card — the canonical usage. */ export const InCard: Story = { render: () => ( } leadingTone="success" title="MSA_Acme_2026.pdf" description="Classified as Contract • 3 tables extracted" meta="2h ago" /> } leadingTone="warning" title="scan_002.pdf" description="Low confidence (62%) • flagged for review" meta="Yesterday" trailing={ Flagged } /> } leadingTone="success" title="Invoice_4471.pdf" description="Classified as Invoice • renamed to standard" meta="5h ago" /> ), }; export const Interactive: Story = { args: { leading: , leadingTone: "info", title: "Clickable row", description: "The whole row is a button", onClick: () => {}, }, };