import { Button, Link } from "@radix-ui/themes" import { dataListLabelPropDefs, dataListRootPropDefs } from "@radix-ui/themes/props" import type { Meta, StoryObj } from "@storybook/react" import { DataList } from "./DataList" /** * The DataList component displays key-value pairs in a structured format. * It's perfect for showing details, specifications, or metadata. */ const meta = { title: "base/containment/DataList", component: DataList.Root, parameters: { layout: "centered", }, tags: ["autodocs"], argTypes: { orientation: { control: { type: "select" }, options: dataListRootPropDefs.orientation.values, }, size: { control: { type: "select" }, options: dataListRootPropDefs.size.values, }, }, } satisfies Meta export default meta type Story = StoryObj /** * Default data list with user information. */ export const Default: Story = { render: () => ( Name John Doe Email john.doe@example.com Status Bio Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac nisl et libero ultricies viverra quis vitae quam. Proin a feugiat metus. Organization WorkOS ), } /** * Data lists can have horizontal or vertical orientations. */ export const Orientations: Story = { render: args => (
{dataListRootPropDefs.orientation.values.map(orientation => (

{orientation}

Name Susan Kare Email susan.kare@apple.com
))}
), } /** * Data lists can have different sizes. */ export const Sizes: Story = { render: args => (
{dataListRootPropDefs.size.values.map(size => (

{`Size ${size}`}

Name Susan Kare Email susan.kare@apple.com
))}
), } /** * Data list labels can have different colors. */ export const LabelColors: Story = { render: args => (
{dataListLabelPropDefs.color.values.map(color => (

{color}

Name Susan Kare Email susan.kare@apple.com
))}
), } /** * Data list labels can have different minimum widths. */ export const LabelWidths: Story = { render: args => (
{["64px", "80px", "128px"].map(width => (

{`Min-width: ${width}`}

Name Susan Kare Email susan.kare@apple.com
))}
), }