"use client"
import * as React from "react"
import { Link } from "react-router-dom"
import { Button } from "@/components/ui/button"
import { ButtonGroup } from "@/components/ui/button-group"
import { ButtonSegmentedControl } from "@/components/ui/button-segmented-control"
import { Toggle } from "@/components/ui/toggle"
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"
const VARIANTS = [
{ variant: "default" as const, label: "Default" },
{ variant: "outline" as const, label: "Outline" },
{ variant: "secondary" as const, label: "Secondary" },
{ variant: "ghost" as const, label: "Ghost" },
{ variant: "destructive" as const, label: "Destructive" },
{ variant: "link" as const, label: "Link" },
]
export function ButtonVariantsPreview() {
return (
{VARIANTS.map(({ variant, label }) => (
))}
)
}
export function ButtonSizesPreview() {
return (
{(
[
{ size: "xs" as const, iconSize: "icon-xs" as const, label: "Extra Small" },
{ size: "sm" as const, iconSize: "icon-sm" as const, label: "Small" },
{ size: "default" as const, iconSize: "icon" as const, label: "Default" },
{ size: "lg" as const, iconSize: "icon-lg" as const, label: "Large" },
] as const
).map(({ size, iconSize, label }) => (
))}
)
}
export function ButtonIconPreview() {
return (
)
}
/** Toolbar ghost icon — filter bars, search chrome, breadcrumb utility menus. */
export function ButtonGhostIconToolbarPreview() {
return (
)
}
export function ButtonWithIconPreview() {
return (
)
}
export function ButtonLoadingPreview() {
return (
)
}
export function ButtonGroupPreview() {
return (
)
}
export function ButtonGroupSegmentedPreview() {
const [mode, setMode] = React.useState<"list" | "grid" | "board">("list")
return (
)
}
export function TogglePreview() {
const [pressed, setPressed] = React.useState(false)
return (
)
}
export function ToggleGroupPreview() {
const [alignment, setAlignment] = React.useState("left")
return (
value && setAlignment(value)}
aria-label="Text alignment"
>
)
}
export function ButtonAsChildPreview() {
return (
)
}