import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters" import type { Meta, StoryObj } from "@storybook/react" import { useState } from "react" import { intentArgType } from "../argTypes.storyHelpers.ts" import { Button } from "../Button/Button.tsx" import { ContainerBoard, StoryCell, StoryGrid, } from "../board.storyHelpers.tsx" import { ProgressCard } from "./ProgressCard.tsx" const metrics = [ { label: "Speed", value: "17.2 MB/s" }, { label: "Remaining", value: "9m" }, { label: "Finishes", value: "4:44 AM" }, ] const meta = { title: "Components/Feedback/ProgressCard", component: ProgressCard, parameters: { layout: "padded" }, argTypes: { intent: intentArgType, progressIntent: intentArgType, }, args: { "aria-label": "Archive transfer", header: "Archive transfer", layout: "band", metrics, progressLabel: "Transfer progress", status: "Transferring", value: 82.5, valueText: "82.5%", }, } satisfies Meta export default meta type Story = StoryObj export const Playground: Story = { parameters: playgroundParameters, } export const AllVariants: Story = { render: (props) => ( {(["band", "hierarchy"] as const).map((layout) => ( ))} ), } export const AllStates: Story = { render: (props) => (

The source stopped responding.

), } export const Responsive: Story = { render: (props) => ( {(width) => ( 07 } actions={ } /> )} ), } const ControlledProgressCard = () => { const [isCanceled, setIsCanceled] = useState(false) return ( setIsCanceled(true)} > Cancel } isValueEmphasized={!isCanceled} metrics={isCanceled ? [] : metrics} progressLabel="Transfer progress" status={isCanceled ? undefined : "Transferring"} value={82.5} valueText={isCanceled ? "Canceled" : "82.5%"} /> ) } export const Interactive: Story = { render: () => , }