style(storybook): refine search and date story layout

This commit is contained in:
shkim4 committed 2026-11-09 16:09:01 +09:00
1 parent 8827eb2681
commit 0ea5b46f74
4 files changed
+117 -79

No files matched your search

+21 -12
View File
@@ -80,20 +80,21 @@ function Long() {
)
}
const sections = [
{ id: "basic", label: "Search", node: <Basic showValue={false} /> },
{ id: "grouped", label: "Groups", node: <Grouped /> },
{ id: "long", label: "Long list", node: <Long /> },
]
// Same 3-column track as the Form pages (1 column on narrow screens). Each cell is a one-specimen StateBoard so subtitles, dividers and
// command boxes line up; sections with fewer specimens leave the remaining tracks empty.
const Grid = ({ children }: { children: ReactNode }) => (
<div className="grid items-start gap-6 [grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))] min-[1000px]:grid-cols-3">{children}</div>
)
const Cell = ({ id, label, children }: { id: string; label: string; children: ReactNode }) => (
<div className="min-w-0">
<StateBoard min={10000} states={[{ id, label, children }]} />
</div>
)
const meta = { title: "Components/Search & Date/Command", component: Command, parameters: { layout: "padded" } } satisfies Meta<typeof Command>
export default meta
type Story = StoryObj<typeof meta>
const board = (...ids: string[]) => (
<StateBoard min={360} states={sections.filter((s) => ids.includes(s.id)).map((s) => ({ id: s.id, label: s.label, children: s.node }))} />
)
// Representative Story: the common Story page; the sections group the same specimens.
export const All: Story = {
name: "Command",
@@ -101,9 +102,17 @@ export const All: Story = {
render: () => (
<StoryPage>
<StoryPageHeader title="Command" />
<StorySection title="Overview">{board("basic")}</StorySection>
<StorySection title="Variants">{board("grouped")}</StorySection>
<StorySection title="Usage">{board("long")}</StorySection>
<StorySection title="Variants">
<Grid>
<Cell id="basic" label="Search"><Basic showValue={false} /></Cell>
<Cell id="grouped" label="Groups"><Grouped /></Cell>
</Grid>
</StorySection>
<StorySection title="Usage">
<Grid>
<Cell id="long" label="Long list"><Long /></Cell>
</Grid>
</StorySection>
</StoryPage>
),
}