barua-ui 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/provider.tsx","../src/toast.tsx","../src/cn.ts","../src/actions.tsx","../src/forms.tsx","../src/content.tsx","../src/feedback.tsx","../src/overlays.tsx","../src/nav.tsx","../src/icon.tsx","../src/primitive.tsx","../src/layout.tsx","../src/typography.tsx","../src/data.tsx","../src/navigation.tsx","../src/forms-extra.tsx","../src/productivity.tsx","../src/marketing.tsx","../src/system.tsx","../src/command.tsx","../src/extras.tsx","../src/media.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useEffect, type ReactNode } from \"react\";\nimport { ToastProvider } from \"./toast\";\n\nexport type BaruaTheme = \"auto\" | \"light\" | \"dark\";\nexport type BaruaAccent = \"blue\" | \"indigo\" | \"purple\" | \"pink\" | \"teal\" | \"green\";\n\nexport interface BaruaProviderProps {\n children: ReactNode;\n /** Explicit theme; \"auto\" follows the system. */\n theme?: BaruaTheme;\n /** Re-tint the whole system from one attribute. */\n accent?: BaruaAccent;\n /** Liquid Glass mode — re-skins every component. */\n glass?: boolean;\n /** Tier-2 refraction (SVG displacement in backdrop-filter, Blink only). */\n refraction?: boolean;\n}\n\nconst ThemeContext = createContext<{ theme: BaruaTheme } | null>(null);\n\nconst MAP_URI =\n \"data:image/svg+xml,\" +\n encodeURIComponent(\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\">' +\n '<defs>' +\n '<linearGradient id=\"x\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"0\">' +\n '<stop offset=\"0\" stop-color=\"#ff0000\" stop-opacity=\"0\"/>' +\n '<stop offset=\"1\" stop-color=\"#ff0000\"/></linearGradient>' +\n '<linearGradient id=\"y\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">' +\n '<stop offset=\"0\" stop-color=\"#00ff00\" stop-opacity=\"0\"/>' +\n '<stop offset=\"1\" stop-color=\"#00ff00\"/></linearGradient>' +\n '<radialGradient id=\"c\">' +\n '<stop offset=\"0\" stop-color=\"#808000\"/>' +\n '<stop offset=\"0.68\" stop-color=\"#808000\"/>' +\n '<stop offset=\"1\" stop-color=\"#808000\" stop-opacity=\"0\"/></radialGradient>' +\n \"</defs>\" +\n '<rect width=\"256\" height=\"256\" fill=\"#000\"/>' +\n '<rect width=\"256\" height=\"256\" fill=\"url(#x)\" style=\"mix-blend-mode:screen\"/>' +\n '<rect width=\"256\" height=\"256\" fill=\"url(#y)\" style=\"mix-blend-mode:screen\"/>' +\n '<rect width=\"256\" height=\"256\" fill=\"url(#c)\"/>' +\n \"</svg>\"\n );\n\nfunction enableRefraction() {\n if (typeof document === \"undefined\") return;\n if (document.getElementById(\"b-refract\")) {\n document.documentElement.classList.add(\"b-refract\");\n return;\n }\n if (!(\"chrome\" in window) || !CSS.supports(\"backdrop-filter\", \"url(#x)\")) return;\n const host = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n host.setAttribute(\"width\", \"0\");\n host.setAttribute(\"height\", \"0\");\n host.setAttribute(\"aria-hidden\", \"true\");\n host.style.position = \"absolute\";\n host.innerHTML =\n '<filter id=\"b-refract\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" color-interpolation-filters=\"sRGB\">' +\n `<feImage href=\"${MAP_URI}\" preserveAspectRatio=\"none\" result=\"m\"/>` +\n '<feDisplacementMap in=\"SourceGraphic\" in2=\"m\" scale=\"-32\" xChannelSelector=\"R\" yChannelSelector=\"G\"/>' +\n \"</filter>\";\n document.body.appendChild(host);\n document.documentElement.classList.add(\"b-refract\");\n}\n\n/**\n * Mount once at the app root. Applies theme/accent/glass attributes to\n * <html>, enables refraction where supported, and provides the toast region.\n *\n * import \"barua-ui/css\";\n * <BaruaProvider theme=\"auto\" glass><App /></BaruaProvider>\n */\nexport function BaruaProvider({\n children,\n theme = \"auto\",\n accent,\n glass = false,\n refraction = true,\n}: BaruaProviderProps) {\n useEffect(() => {\n const root = document.documentElement;\n if (theme === \"auto\") delete root.dataset.theme;\n else root.dataset.theme = theme;\n if (accent && accent !== \"blue\") root.dataset.accent = accent;\n else delete root.dataset.accent;\n if (glass) root.dataset.glass = \"liquid\";\n else delete root.dataset.glass;\n }, [theme, accent, glass]);\n\n useEffect(() => {\n if (refraction) enableRefraction();\n else document.documentElement.classList.remove(\"b-refract\");\n }, [refraction]);\n\n return (\n <ThemeContext.Provider value={{ theme }}>\n <ToastProvider>{children}</ToastProvider>\n </ThemeContext.Provider>\n );\n}\n\nexport function useBaruaTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useBaruaTheme must be used within <BaruaProvider>\");\n return ctx;\n}\n\n/**\n * Inline no-flash script for SSR frameworks — render inside <head> so the\n * stored theme applies before first paint.\n */\nexport function ThemeScript() {\n const js =\n 'try{const t=localStorage.getItem(\"barua-theme\");if(t)document.documentElement.dataset.theme=t;' +\n 'if(localStorage.getItem(\"barua-glass\"))document.documentElement.dataset.glass=\"liquid\"}catch(e){}';\n return <script dangerouslySetInnerHTML={{ __html: js }} />;\n}\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { cn } from \"./cn\";\n\nexport type ToastVariant = \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport interface ToastOptions {\n title?: string;\n description?: string;\n variant?: ToastVariant;\n /** ms before auto-dismiss; 0 disables */\n duration?: number;\n action?: { label: string; onClick: () => void };\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\n leaving?: boolean;\n}\n\nconst ToastContext = createContext<((opts: ToastOptions) => void) | null>(null);\n\nconst ICONS: Record<ToastVariant, ReactNode> = {\n success: (\n <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" /><path d=\"m6.5 10.3 2.3 2.3 4.7-5.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" /></svg>\n ),\n danger: (\n <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" /><path d=\"M10 6v5m0 3v.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" /></svg>\n ),\n warning: (\n <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 3.5 18 17H2L10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" /><path d=\"M10 8.5v3.5m0 2.2v.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" /></svg>\n ),\n info: (\n <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" /><path d=\"M10 9v5m0-8v.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" /></svg>\n ),\n};\n\n/** Imperative toast API. Must be used inside <BaruaProvider> (or <ToastProvider>). */\nexport function useToast() {\n const push = useContext(ToastContext);\n if (!push) throw new Error(\"useToast must be used within <BaruaProvider>\");\n return push;\n}\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [items, setItems] = useState<ToastItem[]>([]);\n const nextId = useRef(1);\n\n const dismiss = useCallback((id: number) => {\n setItems((list) => list.map((t) => (t.id === id ? { ...t, leaving: true } : t)));\n setTimeout(() => setItems((list) => list.filter((t) => t.id !== id)), 260);\n }, []);\n\n const push = useCallback(\n (opts: ToastOptions) => {\n const id = nextId.current++;\n setItems((list) => [...list, { id, variant: \"info\", duration: 4000, ...opts }]);\n const duration = opts.duration ?? 4000;\n if (duration > 0) setTimeout(() => dismiss(id), duration);\n },\n [dismiss]\n );\n\n /*\n * The region is portalled only after mounting. Creating it during render\n * meant the first client render disagreed with the server's markup —\n * React discarded the tree and re-ran every effect, which is a hydration\n * error in production and duplicated one-time setup in development.\n */\n const [container, setContainer] = useState<HTMLElement | null>(null);\n useEffect(() => setContainer(document.body), []);\n\n const region = useMemo(\n () =>\n container === null\n ? null\n : createPortal(\n <div className=\"b-toast-region\" aria-live=\"polite\">\n {items.map((t) => (\n <div\n key={t.id}\n role=\"status\"\n className={cn(\"b-toast\", `b-toast--${t.variant}`, t.leaving && \"is-leaving\")}\n >\n <span className=\"b-toast__icon\">{ICONS[t.variant ?? \"info\"]}</span>\n <div className=\"b-toast__content\">\n {t.title && <div className=\"b-toast__title\">{t.title}</div>}\n {t.description && <div className=\"b-toast__desc\">{t.description}</div>}\n </div>\n {t.action && (\n <button\n className=\"b-toast__action\"\n onClick={() => {\n t.action?.onClick();\n dismiss(t.id);\n }}\n >\n {t.action.label}\n </button>\n )}\n </div>\n ))}\n </div>,\n container\n ),\n [items, dismiss, container]\n );\n\n return (\n <ToastContext.Provider value={push}>\n {children}\n {region}\n </ToastContext.Provider>\n );\n}\n","/** Join class names, skipping falsy values. */\nexport function cn(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(\" \");\n}\n","\"use client\";\n\nimport { forwardRef, type ButtonHTMLAttributes, type AnchorHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\nexport type ButtonVariant =\n | \"default\"\n | \"primary\"\n | \"tinted\"\n | \"outline\"\n | \"ghost\"\n | \"glass\"\n | \"danger\"\n | \"danger-tinted\"\n | \"success\"\n | \"provider\"\n | \"liquid\";\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\ninterface ButtonOwnProps {\n variant?: ButtonVariant;\n size?: ButtonSize;\n pill?: boolean;\n block?: boolean;\n loading?: boolean;\n /** Square icon-only button (pair with aria-label). */\n icon?: boolean;\n active?: boolean;\n}\n\nexport type ButtonProps = ButtonOwnProps & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function buttonClasses(p: ButtonOwnProps, extra?: string): string {\n return cn(\n \"b-btn\",\n p.variant === \"liquid\"\n ? \"b-btn--primary b-btn--liquid\"\n : p.variant && p.variant !== \"default\" && `b-btn--${p.variant}`,\n p.size && p.size !== \"md\" && `b-btn--${p.size}`,\n p.pill && \"b-btn--pill\",\n p.block && \"b-btn--block\",\n p.loading && \"is-loading\",\n p.active && \"is-active\",\n p.icon && \"b-icon-btn\",\n extra\n );\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n { variant, size, pill, block, loading, icon, active, className, children, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n className={buttonClasses({ variant, size, pill, block, loading, icon, active }, className)}\n aria-busy={loading || undefined}\n {...rest}\n >\n {children}\n </button>\n );\n});\n\nexport type ButtonLinkProps = ButtonOwnProps & AnchorHTMLAttributes<HTMLAnchorElement>;\n\n/** Anchor styled as a button. */\nexport const ButtonLink = forwardRef<HTMLAnchorElement, ButtonLinkProps>(function ButtonLink(\n { variant, size, pill, block, loading, icon, active, className, children, ...rest },\n ref\n) {\n return (\n <a\n ref={ref}\n className={buttonClasses({ variant, size, pill, block, loading, icon, active }, className)}\n {...rest}\n >\n {children}\n </a>\n );\n});\n\nexport interface FabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n extended?: boolean;\n /** Render inline instead of fixed to the corner. */\n inline?: boolean;\n children: ReactNode;\n}\n\nexport const Fab = forwardRef<HTMLButtonElement, FabProps>(function Fab(\n { extended, inline, className, style, children, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n className={cn(\"b-btn\", !extended && \"b-icon-btn\", \"b-fab\", extended && \"b-fab--extended\", className)}\n style={inline ? { position: \"static\", ...style } : style}\n {...rest}\n >\n {children}\n </button>\n );\n});\n\nexport function Toolbar({\n glass,\n className,\n children,\n ...rest\n}: { glass?: boolean; children: ReactNode } & React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div role=\"toolbar\" className={cn(\"b-toolbar\", glass && \"b-toolbar--glass\", className)} {...rest}>\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport {\n forwardRef,\n useId,\n useRef,\n type InputHTMLAttributes,\n type ReactNode,\n type SelectHTMLAttributes,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { cn } from \"./cn\";\n\n/* ---- Field scaffolding ---------------------------------------------------- */\n\nexport interface FieldProps {\n label?: ReactNode;\n help?: ReactNode;\n error?: ReactNode;\n required?: boolean;\n /** id passed to the control; generated when omitted. */\n htmlFor?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport function Field({ label, help, error, required, htmlFor, className, children }: FieldProps) {\n return (\n <div className={cn(\"b-field\", error ? \"is-invalid\" : undefined, className)}>\n {label && (\n <label className={cn(\"b-label\", required && \"b-label--required\")} htmlFor={htmlFor}>\n {label}\n </label>\n )}\n {children}\n {help && !error && <p className=\"b-help\">{help}</p>}\n {error && (\n <p className=\"b-error\" role=\"alert\">\n {error}\n </p>\n )}\n </div>\n );\n}\n\n/* ---- Controls -------------------------------------------------------------- */\n\ntype Density = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n filled?: boolean;\n density?: Density;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n { filled, density, className, ...rest },\n ref\n) {\n return (\n <input\n ref={ref}\n className={cn(\n \"b-input\",\n filled && \"b-input--filled\",\n density && density !== \"md\" && `b-input--${density}`,\n className\n )}\n {...rest}\n />\n );\n});\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>(\n function Textarea({ className, ...rest }, ref) {\n return <textarea ref={ref} className={cn(\"b-textarea\", className)} {...rest} />;\n }\n);\n\nexport const Select = forwardRef<HTMLSelectElement, SelectHTMLAttributes<HTMLSelectElement>>(\n function Select({ className, ...rest }, ref) {\n return <select ref={ref} className={cn(\"b-select\", className)} {...rest} />;\n }\n);\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"label\"> {\n label?: ReactNode;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(\n { label, className, ...rest },\n ref\n) {\n return (\n <label className={cn(\"b-checkbox\", className)}>\n <input ref={ref} type=\"checkbox\" {...rest} />\n {label && <span>{label}</span>}\n </label>\n );\n});\n\nexport const Radio = forwardRef<HTMLInputElement, CheckboxProps>(function Radio(\n { label, className, ...rest },\n ref\n) {\n return (\n <label className={cn(\"b-radio\", className)}>\n <input ref={ref} type=\"radio\" {...rest} />\n {label && <span>{label}</span>}\n </label>\n );\n});\n\nexport interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"label\"> {\n label?: ReactNode;\n small?: boolean;\n}\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n { label, small, className, ...rest },\n ref\n) {\n return (\n <label className={cn(\"b-switch\", small && \"b-switch--sm\", className)}>\n <input ref={ref} type=\"checkbox\" role=\"switch\" {...rest} />\n {label && <span>{label}</span>}\n </label>\n );\n});\n\n/** Range input with the accent fill synced to its value. */\nexport const Slider = forwardRef<HTMLInputElement, InputHTMLAttributes<HTMLInputElement>>(\n function Slider({ className, onInput, ...rest }, ref) {\n return (\n <input\n ref={ref}\n type=\"range\"\n className={cn(\"b-slider\", className)}\n onInput={(e) => {\n const el = e.currentTarget;\n const min = Number(el.min) || 0;\n const max = Number(el.max) || 100;\n el.style.setProperty(\"--b-slider-fill\", `${((Number(el.value) - min) / (max - min)) * 100}%`);\n onInput?.(e);\n }}\n {...rest}\n />\n );\n }\n);\n\n/* ---- OTP ------------------------------------------------------------------- */\n\nexport interface OtpInputProps {\n length?: number;\n value?: string;\n onChange?: (code: string) => void;\n invalid?: boolean;\n \"aria-label\"?: string;\n className?: string;\n}\n\nexport function OtpInput({\n length = 6,\n value = \"\",\n onChange,\n invalid,\n className,\n \"aria-label\": ariaLabel = \"One-time code\",\n}: OtpInputProps) {\n const refs = useRef<Array<HTMLInputElement | null>>([]);\n const id = useId();\n\n const emit = (chars: string[]) => onChange?.(chars.join(\"\"));\n\n const setChar = (i: number, ch: string) => {\n const chars = Array.from({ length }, (_, j) => value[j] ?? \"\");\n chars[i] = ch;\n emit(chars);\n };\n\n return (\n <div className={cn(\"b-otp\", invalid && \"is-invalid\", className)} role=\"group\" aria-label={ariaLabel}>\n {Array.from({ length }, (_, i) => (\n <input\n key={i}\n id={`${id}-${i}`}\n ref={(el) => {\n refs.current[i] = el;\n }}\n inputMode=\"numeric\"\n autoComplete={i === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n aria-label={`Digit ${i + 1}`}\n className={value[i] ? \"is-filled\" : undefined}\n value={value[i] ?? \"\"}\n onChange={(e) => {\n const ch = e.target.value.replace(/\\D/g, \"\").slice(-1);\n setChar(i, ch);\n if (ch) refs.current[i + 1]?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"Backspace\" && !value[i]) refs.current[i - 1]?.focus();\n }}\n onPaste={(e) => {\n const digits = e.clipboardData.getData(\"text\").replace(/\\D/g, \"\");\n if (!digits) return;\n e.preventDefault();\n emit(Array.from({ length }, (_, j) => digits[j] ?? \"\"));\n refs.current[Math.min(digits.length, length - 1)]?.focus();\n }}\n />\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\ntype DivProps = HTMLAttributes<HTMLDivElement>;\n\n/* ---- Card family ----------------------------------------------------------- */\n\nexport interface CardProps extends DivProps {\n variant?: \"default\" | \"glass\" | \"elevated\" | \"flat\" | \"accent\";\n interactive?: boolean;\n /** iOS Settings group: zero body padding for flush lists. */\n flush?: boolean;\n}\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(function Card(\n { variant = \"default\", interactive, flush, className, ...rest },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(\n \"b-card\",\n variant !== \"default\" && `b-card--${variant}`,\n interactive && \"b-card--interactive\",\n flush && \"b-card--flush\",\n className\n )}\n {...rest}\n />\n );\n});\n\nexport const CardHeader = (p: DivProps) => <div {...p} className={cn(\"b-card__header\", p.className)} />;\nexport const CardBody = (p: DivProps) => <div {...p} className={cn(\"b-card__body\", p.className)} />;\nexport const CardFooter = (p: DivProps) => <div {...p} className={cn(\"b-card__footer\", p.className)} />;\nexport const CardTitle = (p: DivProps) => <div {...p} className={cn(\"b-card__title\", p.className)} />;\nexport const CardSubtitle = (p: DivProps) => <div {...p} className={cn(\"b-card__subtitle\", p.className)} />;\nexport const CardEyebrow = (p: DivProps) => <div {...p} className={cn(\"b-card__eyebrow\", p.className)} />;\n\n/** App-Store \"Today\" story card. Provide media via style backgroundImage or children. */\nexport function StoryCard({\n media,\n eyebrow,\n title,\n subtitle,\n className,\n ...rest\n}: {\n media?: ReactNode;\n eyebrow?: ReactNode;\n title: ReactNode;\n subtitle?: ReactNode;\n} & DivProps) {\n return (\n <div className={cn(\"b-card b-card--media-overlay\", className)} {...rest}>\n <div className=\"b-card__media\">{media}</div>\n <div className=\"b-card__overlay\">\n {eyebrow && <div className=\"b-card__eyebrow\">{eyebrow}</div>}\n <div className=\"b-card__title\">{title}</div>\n {subtitle && <div className=\"b-card__subtitle\">{subtitle}</div>}\n </div>\n </div>\n );\n}\n\n/* ---- Badges / chips --------------------------------------------------------- */\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: \"default\" | \"accent\" | \"success\" | \"warning\" | \"danger\" | \"solid\" | \"count\";\n dot?: boolean;\n}\n\nexport function Badge({ variant = \"default\", dot, className, ...rest }: BadgeProps) {\n return (\n <span\n className={cn(\"b-badge\", variant !== \"default\" && `b-badge--${variant}`, dot && \"b-badge--dot\", className)}\n {...rest}\n />\n );\n}\n\nexport function Tag(p: HTMLAttributes<HTMLSpanElement>) {\n return <span {...p} className={cn(\"b-tag\", p.className)} />;\n}\n\nexport interface ChipProps extends HTMLAttributes<HTMLButtonElement> {\n selected?: boolean;\n onRemove?: () => void;\n}\n\nexport function Chip({ selected, onRemove, className, children, ...rest }: ChipProps) {\n return (\n <button type=\"button\" className={cn(\"b-chip\", selected && \"is-selected\", className)} aria-pressed={selected} {...rest}>\n {children}\n {onRemove && (\n <span\n role=\"button\"\n aria-label=\"Remove\"\n className=\"b-chip__remove\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n >\n ✕\n </span>\n )}\n </button>\n );\n}\n\n/* ---- Avatar ------------------------------------------------------------------ */\n\nexport interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n src?: string;\n alt?: string;\n online?: boolean;\n square?: boolean;\n children?: ReactNode;\n}\n\nexport function Avatar({ size = \"md\", src, alt, online, square, className, children, ...rest }: AvatarProps) {\n return (\n <span\n className={cn(\n \"b-avatar\",\n size !== \"md\" && `b-avatar--${size}`,\n online && \"b-avatar--online\",\n square && \"b-avatar--square\",\n className\n )}\n {...rest}\n >\n {src ? <img src={src} alt={alt ?? \"\"} /> : children}\n </span>\n );\n}\n\nexport function AvatarGroup(p: HTMLAttributes<HTMLSpanElement>) {\n return <span {...p} className={cn(\"b-avatar-group\", p.className)} />;\n}\n\n/* ---- Icon tile ---------------------------------------------------------------- */\n\nexport interface IconTileProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"color\"> {\n color?: \"accent\" | \"solid\" | \"green\" | \"orange\" | \"red\" | \"purple\" | \"teal\" | \"indigo\" | \"gray\";\n small?: boolean;\n}\n\nexport function IconTile({ color = \"accent\", small, className, ...rest }: IconTileProps) {\n return (\n <span\n className={cn(\n \"b-icon-tile\",\n small && \"b-icon-tile--sm\",\n color !== \"accent\" && `b-icon-tile--${color}`,\n className\n )}\n {...rest}\n />\n );\n}\n\n/* ---- List --------------------------------------------------------------------- */\n\nexport interface ListProps extends HTMLAttributes<HTMLUListElement> {\n plain?: boolean;\n insetDividers?: boolean;\n}\n\nexport function List({ plain, insetDividers, className, ...rest }: ListProps) {\n return (\n <ul\n className={cn(\"b-list\", plain && \"b-list--plain\", insetDividers && \"b-list--inset-divider\", className)}\n {...rest}\n />\n );\n}\n\nexport interface ListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, \"title\"> {\n leading?: ReactNode;\n title?: ReactNode;\n subtitle?: ReactNode;\n trailing?: ReactNode;\n chevron?: boolean;\n interactive?: boolean;\n selected?: boolean;\n}\n\nexport function ListItem({\n leading,\n title,\n subtitle,\n trailing,\n chevron,\n interactive,\n selected,\n className,\n children,\n ...rest\n}: ListItemProps) {\n return (\n <li\n className={cn(\"b-list-item\", interactive && \"b-list-item--interactive\", selected && \"is-selected\", className)}\n {...rest}\n >\n {leading && <span className=\"b-list-item__leading\">{leading}</span>}\n <span className=\"b-list-item__content\">\n {title && <span className=\"b-list-item__title\">{title}</span>}\n {subtitle && <span className=\"b-list-item__subtitle\">{subtitle}</span>}\n {children}\n </span>\n {(trailing || chevron) && (\n <span className=\"b-list-item__trailing\">\n {trailing}\n {chevron && <span className=\"b-list-item__chevron\">›</span>}\n </span>\n )}\n </li>\n );\n}\n\n/* ---- Stat / Empty state --------------------------------------------------------- */\n\nexport function Stat({\n label,\n value,\n delta,\n direction,\n className,\n ...rest\n}: {\n label: ReactNode;\n value: ReactNode;\n delta?: ReactNode;\n direction?: \"up\" | \"down\";\n} & DivProps) {\n return (\n <div className={cn(\"b-stat\", className)} {...rest}>\n <span className=\"b-stat__label\">{label}</span>\n <span className=\"b-stat__value\">{value}</span>\n {delta && (\n <span className={cn(\"b-stat__delta\", direction === \"up\" && \"is-up\", direction === \"down\" && \"is-down\")}>\n {delta}\n </span>\n )}\n </div>\n );\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...rest\n}: {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n} & DivProps) {\n return (\n <div className={cn(\"b-empty\", className)} {...rest}>\n {icon && <span className=\"b-empty__icon\">{icon}</span>}\n <div className=\"b-empty__title\">{title}</div>\n {description && <p className=\"b-empty__desc\">{description}</p>}\n {action}\n </div>\n );\n}\n\n/* ---- GroupBox / LabeledContent (SwiftUI) ------------------------------------ */\n\nexport function GroupBox({\n label,\n icon,\n className,\n children,\n ...rest\n}: { label?: ReactNode; icon?: ReactNode } & DivProps) {\n return (\n <div className={cn(\"b-groupbox\", className)} {...rest}>\n {label && (\n <div className=\"b-groupbox__label\">\n {icon}\n {label}\n </div>\n )}\n {children}\n </div>\n );\n}\n\nexport function Labeled({\n label,\n sublabel,\n className,\n children,\n ...rest\n}: { label: ReactNode; sublabel?: ReactNode } & DivProps) {\n return (\n <div className={cn(\"b-labeled\", className)} {...rest}>\n <span className=\"b-labeled__label\">\n {label}\n {sublabel && <small>{sublabel}</small>}\n </span>\n <span className=\"b-labeled__value\">{children}</span>\n </div>\n );\n}\n\nexport const ListHeader = (p: DivProps) => <div {...p} className={cn(\"b-list__header\", p.className)} />;\nexport const ListFooter = (p: DivProps) => <div {...p} className={cn(\"b-list__footer\", p.className)} />;\n","\"use client\";\n\nimport type { CSSProperties, HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\ntype DivProps = HTMLAttributes<HTMLDivElement>;\n\nexport interface AlertProps extends Omit<DivProps, \"title\"> {\n variant?: \"info\" | \"success\" | \"warning\" | \"danger\";\n title?: ReactNode;\n icon?: ReactNode;\n onClose?: () => void;\n}\n\nexport function Alert({ variant = \"info\", title, icon, onClose, className, children, ...rest }: AlertProps) {\n return (\n <div\n role={variant === \"danger\" ? \"alert\" : \"status\"}\n className={cn(\"b-alert\", variant !== \"info\" && `b-alert--${variant}`, className)}\n {...rest}\n >\n {icon && <span className=\"b-alert__icon\">{icon}</span>}\n <div className=\"b-alert__content\">\n {title && <div className=\"b-alert__title\">{title}</div>}\n {children && <div className=\"b-alert__desc\">{children}</div>}\n </div>\n {onClose && (\n <button className=\"b-alert__close\" aria-label=\"Dismiss\" onClick={onClose}>\n ✕\n </button>\n )}\n </div>\n );\n}\n\nexport interface ProgressProps extends DivProps {\n /** 0–100. Omit for indeterminate. */\n value?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"accent\" | \"success\" | \"warning\" | \"danger\";\n label?: string;\n}\n\nexport function Progress({ value, size = \"md\", variant = \"accent\", label, className, ...rest }: ProgressProps) {\n const indeterminate = value == null;\n return (\n <div\n role=\"progressbar\"\n aria-label={label}\n aria-valuenow={indeterminate ? undefined : Math.round(value)}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\n \"b-progress\",\n size !== \"md\" && `b-progress--${size}`,\n variant !== \"accent\" && `b-progress--${variant}`,\n indeterminate && \"b-progress--indeterminate\",\n className\n )}\n {...rest}\n >\n <div className=\"b-progress__fill\" style={indeterminate ? undefined : { width: `${value}%` }} />\n </div>\n );\n}\n\nexport function Spinner({ size = \"md\", className, ...rest }: { size?: \"sm\" | \"md\" | \"lg\" } & DivProps) {\n return (\n <span\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"b-spinner\", size !== \"md\" && `b-spinner--${size}`, className)}\n {...rest}\n />\n );\n}\n\nexport function Skeleton({\n kind = \"text\",\n className,\n ...rest\n}: { kind?: \"text\" | \"title\" | \"circle\" | \"card\" } & DivProps) {\n return <div aria-hidden=\"true\" className={cn(\"b-skeleton\", `b-skeleton--${kind}`, className)} {...rest} />;\n}\n\nexport function StatusDot({\n state = \"neutral\",\n pulse,\n className,\n children,\n ...rest\n}: { state?: \"neutral\" | \"online\" | \"busy\" | \"away\"; pulse?: boolean } & HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\"b-status\", state !== \"neutral\" && `b-status--${state}`, pulse && \"b-status--pulse\", className)}\n {...rest}\n >\n {children}\n </span>\n );\n}\n\n/* ---- Tip (TipKit-style callout) ---------------------------------------------- */\n\nexport function Tip({\n icon,\n title,\n description,\n actions,\n onClose,\n className,\n ...rest\n}: {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n onClose?: () => void;\n} & Omit<DivProps, \"title\">) {\n return (\n <div className={cn(\"b-tip\", className)} {...rest}>\n {icon && <span className=\"b-tip__icon\">{icon}</span>}\n <span className=\"b-tip__content\">\n <span className=\"b-tip__title\">{title}</span>\n {description && <span className=\"b-tip__desc\">{description}</span>}\n {actions && <span className=\"b-tip__actions\">{actions}</span>}\n </span>\n {onClose && (\n <button className=\"b-tip__close\" aria-label=\"Dismiss tip\" onClick={onClose}>\n ✕\n </button>\n )}\n </div>\n );\n}\n\n/* ---- Linear gauge (SwiftUI Gauge, linear) ------------------------------------ */\n\nexport function LinearGauge({\n value,\n minLabel,\n maxLabel,\n plain,\n label,\n className,\n ...rest\n}: {\n /** 0–100 position of the marker. */\n value: number;\n minLabel?: ReactNode;\n maxLabel?: ReactNode;\n plain?: boolean;\n label?: string;\n} & DivProps) {\n return (\n <div\n role=\"meter\"\n aria-label={label}\n aria-valuenow={Math.round(value)}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"b-gauge-linear\", className)}\n {...rest}\n >\n <div className={cn(\"b-gauge-linear__track\", plain && \"b-gauge-linear__track--plain\")}>\n <span className=\"b-gauge-linear__marker\" style={{ \"--v\": `${value}%` } as CSSProperties} />\n </div>\n {(minLabel != null || maxLabel != null) && (\n <div className=\"b-gauge-linear__labels\">\n <span>{minLabel}</span>\n <span>{maxLabel}</span>\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { useEffect, useRef, type DialogHTMLAttributes, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\n/* ---- Modal ------------------------------------------------------------------ */\n\ninterface DialogBaseProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, \"title\"> {\n open: boolean;\n onClose?: () => void;\n /** Close when the backdrop is clicked (default true). */\n dismissable?: boolean;\n}\n\nfunction useDialog(open: boolean) {\n const ref = useRef<HTMLDialogElement>(null);\n useEffect(() => {\n const d = ref.current;\n if (!d) return;\n if (open && !d.open) d.showModal();\n else if (!open && d.open) d.close();\n }, [open]);\n return ref;\n}\n\nfunction backdropClose(onClose?: () => void, dismissable = true) {\n return (e: React.MouseEvent<HTMLDialogElement>) => {\n if (!dismissable || !onClose) return;\n if (e.target === e.currentTarget) onClose();\n };\n}\n\nexport interface ModalProps extends DialogBaseProps {\n title?: ReactNode;\n footer?: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n glass?: boolean;\n children: ReactNode;\n}\n\nexport function Modal({\n open,\n onClose,\n dismissable = true,\n title,\n footer,\n size = \"md\",\n glass,\n className,\n children,\n ...rest\n}: ModalProps) {\n const ref = useDialog(open);\n return (\n <dialog\n ref={ref}\n onClose={() => onClose?.()}\n onClick={backdropClose(onClose, dismissable)}\n className={cn(\"b-modal\", size !== \"md\" && `b-modal--${size}`, glass && \"b-modal--glass\", className)}\n {...rest}\n >\n {title != null && (\n <header className=\"b-modal__header\">\n <h2 className=\"b-modal__title\">{title}</h2>\n <button className=\"b-modal__close\" aria-label=\"Close\" onClick={() => onClose?.()}>\n ✕\n </button>\n </header>\n )}\n <div className=\"b-modal__body\">{children}</div>\n {footer && <footer className=\"b-modal__footer\">{footer}</footer>}\n </dialog>\n );\n}\n\n/* ---- Alert dialog ------------------------------------------------------------ */\n\nexport interface AlertDialogAction {\n label: ReactNode;\n onClick: () => void;\n destructive?: boolean;\n primary?: boolean;\n}\n\nexport function AlertDialog({\n open,\n onClose,\n title,\n description,\n actions,\n row,\n className,\n ...rest\n}: DialogBaseProps & {\n title: ReactNode;\n description?: ReactNode;\n actions: AlertDialogAction[];\n /** Lay actions side by side (two-action Apple style). */\n row?: boolean;\n}) {\n const ref = useDialog(open);\n return (\n <dialog\n ref={ref}\n onClose={() => onClose?.()}\n className={cn(\"b-modal b-alert-dialog\", className)}\n {...rest}\n >\n <div className=\"b-modal__body\">\n <div className=\"b-alert-dialog__title\">{title}</div>\n {description && <p className=\"b-alert-dialog__desc\">{description}</p>}\n </div>\n <div className={cn(\"b-alert-dialog__actions\", row && \"b-alert-dialog__actions--row\")}>\n {actions.map((a, i) => (\n <button\n key={i}\n className={cn(a.destructive && \"is-destructive\", a.primary && \"is-primary\")}\n onClick={a.onClick}\n >\n {a.label}\n </button>\n ))}\n </div>\n </dialog>\n );\n}\n\n/* ---- Sheets ------------------------------------------------------------------- */\n\nexport function Sheet({\n open,\n onClose,\n dismissable = true,\n title,\n className,\n children,\n ...rest\n}: DialogBaseProps & { title?: ReactNode; children: ReactNode }) {\n const ref = useDialog(open);\n return (\n <dialog\n ref={ref}\n onClose={() => onClose?.()}\n onClick={backdropClose(onClose, dismissable)}\n className={cn(\"b-sheet\", className)}\n {...rest}\n >\n {title != null && (\n <header className=\"b-sheet__header\">\n <h2 className=\"b-modal__title\">{title}</h2>\n <button className=\"b-modal__close\" aria-label=\"Close\" onClick={() => onClose?.()}>\n ✕\n </button>\n </header>\n )}\n <div className=\"b-sheet__body\">{children}</div>\n </dialog>\n );\n}\n\nexport function BottomSheet({\n open,\n onClose,\n dismissable = true,\n detent,\n className,\n children,\n ...rest\n}: DialogBaseProps & { detent?: \"medium\" | \"large\"; children: ReactNode }) {\n const ref = useDialog(open);\n return (\n <dialog\n ref={ref}\n onClose={() => onClose?.()}\n onClick={backdropClose(onClose, dismissable)}\n className={cn(\"b-bottom-sheet\", detent && `b-bottom-sheet--${detent}`, className)}\n {...rest}\n >\n <div className=\"b-bottom-sheet__grabber\" aria-hidden=\"true\" />\n <div className=\"b-bottom-sheet__body\">{children}</div>\n </dialog>\n );\n}\n\n/* ---- Popover / Tooltip --------------------------------------------------------- */\n\nexport interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n title?: ReactNode;\n /** Apple-style caret pointing at the anchor. */\n arrow?: \"top\" | \"bottom\" | \"start\" | \"end\";\n /** Structured header/body/footer card. */\n card?: boolean;\n anchored?: boolean;\n children: ReactNode;\n}\n\n/** Presentation-only popover panel — pair with the native Popover API or\n * render inside a relatively positioned wrapper. */\nexport function Popover({ title, arrow, card, anchored, className, children, ...rest }: PopoverProps) {\n return (\n <div\n className={cn(\n \"b-popover\",\n arrow && `b-popover--arrow-${arrow}`,\n card && \"b-popover--card\",\n anchored && \"b-popover--anchored\",\n className\n )}\n {...rest}\n >\n {title && !card && <div className=\"b-popover__title\">{title}</div>}\n {children}\n </div>\n );\n}\n\nexport function Tooltip({\n label,\n below,\n className,\n children,\n ...rest\n}: { label: string; below?: boolean } & HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-tooltip={label}\n className={cn(\"b-tooltip-host\", below && \"b-tooltip-host--bottom\", className)}\n {...rest}\n >\n {children}\n </span>\n );\n}\n\n/* ---- Action sheet (SwiftUI confirmationDialog) -------------------------------- */\n\nexport interface ActionSheetAction {\n label: ReactNode;\n onClick: () => void;\n destructive?: boolean;\n}\n\nexport function ActionSheet({\n open,\n onClose,\n title,\n actions,\n cancelLabel = \"Cancel\",\n className,\n ...rest\n}: DialogBaseProps & {\n title?: ReactNode;\n actions: ActionSheetAction[];\n cancelLabel?: ReactNode;\n}) {\n const ref = useDialog(open);\n return (\n <dialog ref={ref} onClose={() => onClose?.()} className={cn(\"b-action-sheet\", className)} {...rest}>\n <div className=\"b-action-sheet__group\">\n {title && <p className=\"b-action-sheet__title\">{title}</p>}\n {actions.map((a, i) => (\n <button key={i} className={cn(a.destructive && \"is-destructive\")} onClick={a.onClick}>\n {a.label}\n </button>\n ))}\n </div>\n <div className=\"b-action-sheet__group b-action-sheet__cancel\">\n <button onClick={() => onClose?.()}>{cancelLabel}</button>\n </div>\n </dialog>\n );\n}\n","\"use client\";\n\nimport { useId, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\n/* ---- Segmented control -------------------------------------------------------- */\n\nexport interface SegmentedOption<T extends string> {\n label: ReactNode;\n value: T;\n}\n\nexport function Segmented<T extends string>({\n options,\n value,\n onChange,\n block,\n label,\n className,\n ...rest\n}: {\n options: SegmentedOption<T>[];\n value: T;\n onChange: (value: T) => void;\n block?: boolean;\n label?: string;\n} & Omit<HTMLAttributes<HTMLDivElement>, \"onChange\">) {\n return (\n <div\n role=\"group\"\n aria-label={label}\n className={cn(\"b-segmented\", block && \"b-segmented--block\", className)}\n {...rest}\n >\n {options.map((o) => (\n <button\n key={o.value}\n type=\"button\"\n className={cn(\"b-segmented__item\", o.value === value && \"is-active\")}\n aria-pressed={o.value === value}\n onClick={() => onChange(o.value)}\n >\n {o.label}\n </button>\n ))}\n </div>\n );\n}\n\n/* ---- Tabs ----------------------------------------------------------------------- */\n\nexport interface TabItem<T extends string> {\n id: T;\n label: ReactNode;\n}\n\nexport function Tabs<T extends string>({\n items,\n value,\n onChange,\n className,\n ...rest\n}: {\n items: TabItem<T>[];\n value: T;\n onChange: (id: T) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, \"onChange\">) {\n const id = useId();\n return (\n <div role=\"tablist\" className={cn(\"b-tabs\", className)} {...rest}>\n {items.map((t, i) => (\n <button\n key={t.id}\n role=\"tab\"\n id={`${id}-tab-${t.id}`}\n aria-selected={t.id === value}\n aria-controls={`${id}-panel-${t.id}`}\n tabIndex={t.id === value ? 0 : -1}\n className=\"b-tab\"\n onClick={() => onChange(t.id)}\n onKeyDown={(e) => {\n const dir = e.key === \"ArrowRight\" ? 1 : e.key === \"ArrowLeft\" ? -1 : 0;\n if (!dir) return;\n e.preventDefault();\n const next = items[(i + dir + items.length) % items.length];\n onChange(next.id);\n }}\n >\n {t.label}\n </button>\n ))}\n </div>\n );\n}\n\nexport function TabPanel({\n active,\n className,\n ...rest\n}: { active: boolean } & HTMLAttributes<HTMLDivElement>) {\n return <div role=\"tabpanel\" hidden={!active} className={cn(\"b-tabpanel\", className)} {...rest} />;\n}\n\n/* ---- Breadcrumbs ------------------------------------------------------------------ */\n\nexport interface Crumb {\n label: ReactNode;\n href?: string;\n}\n\nexport function Breadcrumbs({\n items,\n className,\n ...rest\n}: { items: Crumb[] } & HTMLAttributes<HTMLElement>) {\n return (\n <nav aria-label=\"Breadcrumb\" {...rest}>\n <ol className={cn(\"b-breadcrumbs\", className)}>\n {items.map((c, i) => {\n const last = i === items.length - 1;\n return (\n <li key={i}>\n {c.href && !last ? (\n <a href={c.href}>{c.label}</a>\n ) : (\n <span aria-current={last ? \"page\" : undefined}>{c.label}</span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n","\"use client\";\n\n/* Generated by tools/build-react-icons.py from docs/icons.html — do not edit.\n 59 glyphs. To add one, put it in the docs first and re-run the script. */\n\nimport { forwardRef, type SVGProps } from \"react\";\nimport { cn } from \"./cn\";\n\nexport const iconNames = [\n \"arrow-up-right\",\n \"backward\",\n \"bell\",\n \"bolt\",\n \"bookmark\",\n \"calendar\",\n \"camera\",\n \"check\",\n \"chevron-down\",\n \"chevron-left\",\n \"chevron-right\",\n \"chevron-up\",\n \"clock\",\n \"close\",\n \"doc\",\n \"download\",\n \"drop\",\n \"filter\",\n \"flame\",\n \"folder\",\n \"forward\",\n \"garage\",\n \"gear\",\n \"grid\",\n \"heart\",\n \"house\",\n \"info\",\n \"lightbulb\",\n \"link\",\n \"lock\",\n \"mail\",\n \"message\",\n \"mic\",\n \"moon-stars\",\n \"music-note\",\n \"newspaper\",\n \"pause\",\n \"pencil\",\n \"people\",\n \"person\",\n \"photo\",\n \"pin\",\n \"play\",\n \"plus\",\n \"refresh\",\n \"repeat\",\n \"search\",\n \"send\",\n \"share\",\n \"shield\",\n \"sliders\",\n \"sparkles\",\n \"speaker\",\n \"star\",\n \"sun\",\n \"trash\",\n \"warning\",\n \"waveform\",\n \"wifi\",\n] as const;\n\nexport type IconName = (typeof iconNames)[number];\n\nconst GLYPHS: Record<IconName, JSX.Element> = {\n \"arrow-up-right\": <><path d=\"M6 14 14 6M7.5 6H14v6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"backward\": <><path d=\"M5.5 4.5v11\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\"/><path d=\"M15 5.6v8.8a.6.6 0 0 1-.93.5L7.6 10.5a.6.6 0 0 1 0-1l6.47-4.4a.6.6 0 0 1 .93.5Z\" fill=\"currentColor\"/></>,\n \"bell\": <><path d=\"M10 3.5A4.5 4.5 0 0 1 14.5 8c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"M8.5 15.5a1.6 1.6 0 0 0 3 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"bolt\": <><path d=\"M11 3 5 11h4l-1 6 6-8h-4l1-6Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"bookmark\": <><path d=\"M5.5 5A1.5 1.5 0 0 1 7 3.5h6A1.5 1.5 0 0 1 14.5 5v11.5L10 13l-4.5 3.5V5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"calendar\": <><rect x=\"3.5\" y=\"4.5\" width=\"13\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M7 3v3M13 3v3M3.5 8.5h13\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"camera\": <><path d=\"M3.5 7A1.5 1.5 0 0 1 5 5.5h1.5L8 3.5h4l1.5 2H15A1.5 1.5 0 0 1 16.5 7v7a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V7Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><circle cx=\"10\" cy=\"10.5\" r=\"2.8\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"check\": <><path d=\"M4 10.5 8.5 15 16 5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"chevron-down\": <><path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"chevron-left\": <><path d=\"M12 5l-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"chevron-right\": <><path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"chevron-up\": <><path d=\"m5 12 5-5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"clock\": <><circle cx=\"10\" cy=\"10\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M10 6.5V10l2.5 2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"close\": <><path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"doc\": <><path d=\"M5.5 3.5h6L15 7v9.5H5.5V3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"M11.5 3.5V7H15M8 10.5h4M8 13h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"download\": <><path d=\"M10 3.5v9M6.5 9.5l3.5 3 3.5-3M4 16.5h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"drop\": <><path d=\"M10 2.8C7.7 6 5.5 8.6 5.5 11.4a4.5 4.5 0 0 0 9 0c0-2.8-2.2-5.4-4.5-8.6Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"filter\": <><path d=\"M3.5 5.5h13M6 10h8M8.5 14.5h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"flame\": <><path d=\"M10 3c-2.5 3-4.5 5.2-4.5 7.4a4.5 4.5 0 0 0 9 0C14.5 8.2 12.5 6 10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"folder\": <><path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"forward\": <><path d=\"M14.5 4.5v11\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\"/><path d=\"M5 5.6v8.8a.6.6 0 0 0 .93.5l6.47-4.4a.6.6 0 0 0 0-1L5.93 5.1a.6.6 0 0 0-.93.5Z\" fill=\"currentColor\"/></>,\n \"garage\": <><path d=\"M3 9.5 10 4l7 5.5M5 8.5V16h10V8.5M7 11h6M7 13.5h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"gear\": <><circle cx=\"10\" cy=\"10\" r=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M10 2.5v3M10 14.5v3M2.5 10h3M14.5 10h3M4.7 4.7l2.1 2.1M13.2 13.2l2.1 2.1M15.3 4.7l-2.1 2.1M6.8 13.2l-2.1 2.1\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinecap=\"round\"/></>,\n \"grid\": <><rect x=\"3.5\" y=\"3.5\" width=\"5.5\" height=\"5.5\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><rect x=\"11\" y=\"3.5\" width=\"5.5\" height=\"5.5\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><rect x=\"3.5\" y=\"11\" width=\"5.5\" height=\"5.5\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><rect x=\"11\" y=\"11\" width=\"5.5\" height=\"5.5\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"heart\": <><path d=\"M10 16.5S3.5 12.5 3.5 8.2A3.6 3.6 0 0 1 10 6a3.6 3.6 0 0 1 6.5 2.2c0 4.3-6.5 8.3-6.5 8.3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"house\": <><path d=\"M3 9.5 10 4l7 5.5M5 8.5V16h10V8.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"info\": <><circle cx=\"10\" cy=\"10\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M10 9v4M10 6.4h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"lightbulb\": <><path d=\"M10 3a5 5 0 0 0-2.5 9.3V14a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1.7A5 5 0 0 0 10 3ZM8.5 17h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"link\": <><path d=\"M8.5 11.5a3 3 0 0 0 4.2 0l2.5-2.5a3 3 0 1 0-4.2-4.2l-1 1M11.5 8.5a3 3 0 0 0-4.2 0L4.8 11a3 3 0 1 0 4.2 4.2l1-1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"lock\": <><rect x=\"5\" y=\"9\" width=\"10\" height=\"7\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M7 9V6.5a3 3 0 0 1 6 0V9\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"mail\": <><rect x=\"3\" y=\"4.5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"message\": <><path d=\"M5.5 4h9a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H8.5l-3 3v-3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"mic\": <><rect x=\"7.5\" y=\"3.5\" width=\"5\" height=\"9\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M5.5 10a4.5 4.5 0 0 0 9 0M10 14.5v2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"moon-stars\": <><path d=\"M14.5 12.5A6 6 0 0 1 7.5 5.5 6 6 0 1 0 14.5 12.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"m14 3.5.6 1.4 1.4.6-1.4.6-.6 1.4-.6-1.4-1.4-.6 1.4-.6.6-1.4Z\" fill=\"currentColor\"/></>,\n \"music-note\": <><path d=\"M8 15.5V5l7-1.5V13\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/><circle cx=\"6\" cy=\"15.5\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><circle cx=\"13\" cy=\"13\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"newspaper\": <><rect x=\"3\" y=\"4\" width=\"14\" height=\"12\" rx=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M6 7.5h4.5v3.5H6zM13 7.5h1M13 11h1M6 13.5h8\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"pause\": <><path d=\"M6 4.5h2.5v11H6zM11.5 4.5H14v11h-2.5z\"/></>,\n \"pencil\": <><path d=\"m4 16 .8-3.2 8.8-8.8a1.4 1.4 0 0 1 2 0l.4.4a1.4 1.4 0 0 1 0 2l-8.8 8.8L4 16Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"m12.5 5.5 2 2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"people\": <><circle cx=\"7.5\" cy=\"7\" r=\"2.6\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M2.5 16a5 5 0 0 1 10 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/><path d=\"M13 4.6a2.6 2.6 0 0 1 0 4.9M14.5 11.6a5 5 0 0 1 3 4.4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"person\": <><circle cx=\"10\" cy=\"6.5\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M4 16.5a6 6 0 0 1 12 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"photo\": <><rect x=\"3.5\" y=\"4.5\" width=\"13\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><circle cx=\"7.5\" cy=\"8\" r=\"1.2\" fill=\"currentColor\"/><path d=\"m5 14 3.5-3.5 2 2L14 9l2.5 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"pin\": <><path d=\"M10 17s-5-4.3-5-8a5 5 0 0 1 10 0c0 3.7-5 8-5 8Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><circle cx=\"10\" cy=\"9\" r=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"play\": <><path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\"/></>,\n \"plus\": <><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"refresh\": <><path d=\"M15.8 10A5.8 5.8 0 1 1 13 5.1M15.8 3.5v3.2h-3.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"repeat\": <><path d=\"M5.5 8V7A2.5 2.5 0 0 1 8 4.5h6.5M12.5 2.5l2 2-2 2M14.5 12v1a2.5 2.5 0 0 1-2.5 2.5H5.5M7.5 17.5l-2-2 2-2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"search\": <><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"m13.5 13.5 3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"send\": <><path d=\"m3.5 10 13-6-3.5 13-3.5-4.5L3.5 10Zm6 2.5L13 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"share\": <><path d=\"M10 12.5v-9M7 6l3-2.8L13 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/><path d=\"M5.5 9.5H5A1.5 1.5 0 0 0 3.5 11v4A1.5 1.5 0 0 0 5 16.5h10a1.5 1.5 0 0 0 1.5-1.5v-4A1.5 1.5 0 0 0 15 9.5h-.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"shield\": <><path d=\"M10 3l6 2v5c0 3.5-2.5 5.8-6 7-3.5-1.2-6-3.5-6-7V5l6-2Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"m7.5 10 1.8 1.8L13 8.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"sliders\": <><path d=\"M3.5 6.5h5M12 6.5h4.5M3.5 13.5h3M10 13.5h6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/><circle cx=\"10.2\" cy=\"6.5\" r=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><circle cx=\"8.2\" cy=\"13.5\" r=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\"/></>,\n \"sparkles\": <><path d=\"M10 3l1.2 3.3 3.3 1.2-3.3 1.2L10 12 8.8 8.7 5.5 7.5l3.3-1.2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"m14.8 11.5.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7.7-1.8Z\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinejoin=\"round\"/></>,\n \"speaker\": <><path d=\"M4 8v4h2.5L10 15V5L6.5 8H4Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"M12.5 7.5a3.5 3.5 0 0 1 0 5M14.5 5.5a6 6 0 0 1 0 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"star\": <><path d=\"m10 3 2 4.4 4.8.5-3.6 3.2 1 4.7L10 13.4l-4.2 2.4 1-4.7L3.2 7.9 8 7.4 10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/></>,\n \"sun\": <><circle cx=\"10\" cy=\"10\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\"/><path d=\"M10 1.5v2m0 13v2M18.5 10h-2m-13 0h-2m14.5-6-1.4 1.4M4.9 15.1 3.5 16.5m0-13 1.4 1.4m10.2 10.2 1.4 1.4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"trash\": <><path d=\"M4 6h12M8 6V4.5h4V6M6.5 6l.5 10h6l.5-10M8.5 9v4M11.5 9v4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></>,\n \"warning\": <><path d=\"M10 3.5 18 17H2L10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\"/><path d=\"M10 8.5V12M10 14.5h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"waveform\": <><path d=\"M4 8.5v3M7 6v8M10 4v12M13 6.5v7M16 8.5v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/></>,\n \"wifi\": <><path d=\"M2.5 8a11 11 0 0 1 15 0M5 11a7.3 7.3 0 0 1 10 0M7.6 13.8a3.6 3.6 0 0 1 4.8 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/><circle cx=\"10\" cy=\"16.2\" r=\"1.1\" fill=\"currentColor\"/></>,\n};\n\nexport interface IconProps extends Omit<SVGProps<SVGSVGElement>, \"name\"> {\n name: IconName;\n /** Matches the .b-icon size scale. */\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Give the icon a label when it carries meaning on its own. */\n title?: string;\n}\n\n/**\n * A glyph from the Barua icon library: 20x20, 1.5px stroke, currentColor.\n * Decorative by default — pass `title` when the icon is the only label.\n */\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n { name, size, title, className, ...rest },\n ref\n) {\n const glyph = GLYPHS[name];\n if (!glyph) return null;\n return (\n <svg\n ref={ref}\n className={cn(\"b-icon\", size && size !== \"md\" && `b-icon--${size}`, className)}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n role={title ? \"img\" : undefined}\n aria-hidden={title ? undefined : true}\n {...rest}\n >\n {title ? <title>{title}</title> : null}\n {glyph}\n </svg>\n );\n});\n","\"use client\";\n\nimport { createElement, forwardRef, type ElementType, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\n\nexport interface BlockProps extends HTMLAttributes<HTMLElement> {\n /** Render a different element without losing the class. */\n as?: ElementType;\n children?: ReactNode;\n}\n\n/**\n * Most of this system is a class on an element. `block` binds one of those to a\n * component so the class name never has to be typed by hand — and so the wrong\n * one cannot be typed at all.\n */\nexport function block(defaultTag: ElementType, base: string, displayName: string) {\n const Component = forwardRef<HTMLElement, BlockProps>(function Block(\n { as, className, ...rest },\n ref\n ) {\n return createElement(as ?? defaultTag, { ref, className: cn(base, className), ...rest });\n });\n Component.displayName = displayName;\n return Component;\n}\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type ElementType, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block, type BlockProps } from \"./primitive\";\n\ntype Align = \"start\" | \"center\" | \"end\" | \"between\" | \"stretch\";\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n as?: ElementType;\n /** Token gap: 0–4, 6 or 8. Anything else is a margin, and margins are not the system. */\n gap?: 0 | 1 | 2 | 3 | 4 | 6 | 8;\n align?: Align;\n wrap?: boolean;\n children?: ReactNode;\n}\n\nfunction stackClasses(base: string, p: StackProps, className?: string) {\n return cn(\n base,\n p.gap !== undefined && `b-gap-${p.gap}`,\n p.align && `b-stack--${p.align}`,\n p.wrap && \"b-stack--wrap\",\n className\n );\n}\n\n/** Vertical flow — the default building block for any view. */\nexport const Stack = forwardRef<HTMLElement, StackProps>(function Stack(\n { as: Tag = \"div\", gap, align, wrap, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component ref={ref} className={stackClasses(\"b-stack\", { gap, align, wrap }, className)} {...rest}>\n {children}\n </Component>\n );\n});\n\nexport const VStack = Stack;\n\n/** Horizontal flow. Same gap scale, same alignment vocabulary. */\nexport const HStack = forwardRef<HTMLElement, StackProps>(function HStack(\n { as: Tag = \"div\", gap, align, wrap, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component ref={ref} className={stackClasses(\"b-hstack\", { gap, align, wrap }, className)} {...rest}>\n {children}\n </Component>\n );\n});\n\nexport interface GridProps extends HTMLAttributes<HTMLElement> {\n as?: ElementType;\n /** Fixed track count, or \"auto\" to fit as many as the width allows. */\n cols?: 2 | 3 | 4 | 6 | \"auto\";\n gap?: 0 | 1 | 2 | 3 | 4 | 6 | 8;\n children?: ReactNode;\n}\n\nexport const Grid = forwardRef<HTMLElement, GridProps>(function Grid(\n { as: Tag = \"div\", cols, gap, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component\n ref={ref}\n className={cn(\"b-grid\", cols && `b-grid--${cols}`, gap !== undefined && `b-gap-${gap}`, className)}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n\nexport interface ContainerProps extends BlockProps {\n size?: \"sm\" | \"md\" | \"xl\" | \"fluid\";\n}\n\n/** Centred measure with the page gutters already applied. */\nexport const Container = forwardRef<HTMLElement, ContainerProps>(function Container(\n { as: Tag = \"div\", size, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component ref={ref} className={cn(\"b-container\", size && `b-container--${size}`, className)} {...rest}>\n {children}\n </Component>\n );\n});\n\nexport interface ScrollAreaProps extends BlockProps {\n axis?: \"x\" | \"y\";\n /** Fade the clipped edge, so cut-off content looks deliberate. */\n fade?: boolean;\n}\n\n/**\n * The only element allowed to scroll. Everything outside one of these is a\n * screen: it fits, or it is redesigned until it does.\n */\nexport const ScrollArea = forwardRef<HTMLElement, ScrollAreaProps>(function ScrollArea(\n { as: Tag = \"div\", axis, fade, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component\n ref={ref}\n className={cn(\"b-scroll-area\", axis && `b-scroll-area--${axis}`, fade && \"b-scroll-area--fade\", className)}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n\nexport interface DividerProps extends BlockProps {\n vertical?: boolean;\n inset?: boolean;\n /** Centres a caption in the rule — pass the text as children. */\n label?: boolean;\n}\n\nexport const Divider = forwardRef<HTMLElement, DividerProps>(function Divider(\n { as: Tag = \"div\", vertical, inset, label, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component\n ref={ref}\n role={children ? undefined : \"separator\"}\n className={cn(\n \"b-divider\",\n vertical && \"b-divider--vertical\",\n inset && \"b-divider--inset\",\n label && \"b-divider--label\",\n className\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n\n/** Holds the viewport still: the app is a screen, not a document. */\nexport const Stage = block(\"div\", \"b-stage\", \"Stage\");\n/** Pushes siblings apart in a flex row. */\nexport const Spacer = block(\"span\", \"b-spacer\", \"Spacer\");\n/** Takes the leftover space in a flex row. */\nexport const Grow = block(\"div\", \"b-grow\", \"Grow\");\nexport const Split = block(\"div\", \"b-split\", \"Split\");\nexport const Section = block(\"section\", \"b-section\", \"Section\");\nexport const SafeArea = block(\"div\", \"b-safe-area\", \"SafeArea\");\nexport const CardGrid = block(\"div\", \"b-card-grid\", \"CardGrid\");\nexport const Bento = block(\"div\", \"b-bento\", \"Bento\");\n/** 12-column dashboard grid; children claim width with span={n}. */\nexport const Dashboard = block(\"div\", \"b-dashboard\", \"Dashboard\");\n/** App frame: chrome that stays put, with one scrolling main. */\nexport const Workspace = block(\"div\", \"b-workspace\", \"Workspace\");\nexport const WorkspaceMain = block(\"main\", \"b-workspace__main\", \"WorkspaceMain\");\nexport const Inspector = block(\"aside\", \"b-inspector\", \"Inspector\");\nexport const SkipLink = block(\"a\", \"b-skip-link\", \"SkipLink\");\n\nexport interface SpanProps extends BlockProps {\n /** Columns to claim inside a Dashboard — 2 through 12. */\n span: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n}\n\n/** Width claim for a dashboard child. Spans in one row should total twelve. */\nexport const Span = forwardRef<HTMLElement, SpanProps>(function Span(\n { as: Tag = \"div\", span, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component ref={ref} className={cn(`b-span-${span}`, className)} {...rest}>\n {children}\n </Component>\n );\n});\n\nexport interface SidebarProps extends BlockProps {\n material?: \"glass\" | \"surface\";\n}\n\nexport const Sidebar = forwardRef<HTMLElement, SidebarProps>(function Sidebar(\n { as: Tag = \"nav\", material, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component ref={ref} className={cn(\"b-sidebar\", material && `b-sidebar--${material}`, className)} {...rest}>\n {children}\n </Component>\n );\n});\n\nexport const SidebarHeading = block(\"div\", \"b-sidebar__heading\", \"SidebarHeading\");\nexport const SidebarGroup = block(\"div\", \"b-sidebar__group\", \"SidebarGroup\");\n\nexport interface SidebarItemProps extends HTMLAttributes<HTMLElement> {\n as?: ElementType;\n active?: boolean;\n href?: string;\n children?: ReactNode;\n}\n\nexport const SidebarItem = forwardRef<HTMLElement, SidebarItemProps>(function SidebarItem(\n { as: Tag = \"a\", active, className, children, ...rest },\n ref\n) {\n const Component = Tag as ElementType;\n return (\n <Component\n ref={ref}\n className={cn(\"b-sidebar__item\", active && \"is-active\", className)}\n aria-current={active ? \"page\" : undefined}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n","\"use client\";\n\nimport { Fragment, forwardRef, type ElementType, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport type TextRole =\n | \"large-title\" | \"title1\" | \"title2\" | \"title3\"\n | \"headline\" | \"subheadline\" | \"body\" | \"callout\"\n | \"caption\" | \"caption2\" | \"overline\";\n\n/** Each role carries its own size, weight, line-height and tracking. */\nconst ROLE_TAG: Record<TextRole, ElementType> = {\n \"large-title\": \"h1\", title1: \"h1\", title2: \"h2\", title3: \"h3\",\n headline: \"h4\", subheadline: \"p\", body: \"p\", callout: \"p\",\n caption: \"span\", caption2: \"span\", overline: \"span\",\n};\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n role?: TextRole;\n as?: ElementType;\n tone?: \"secondary\" | \"tertiary\" | \"quaternary\" | \"accent\" | \"danger\" | \"success\" | \"warning\";\n align?: \"start\" | \"center\" | \"end\";\n truncate?: boolean;\n /** Clamp to a fixed number of lines. */\n clamp?: 2 | 3;\n /** Line up digits in columns — use for money and any table of numbers. */\n tabularNums?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Type is a role, not a size. Pick the role that describes the job and the\n * metrics follow — never restate a font-size in a product.\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(function Text(\n { role = \"body\", as, tone, align, truncate, clamp, tabularNums, className, children, ...rest },\n ref\n) {\n const Component = (as ?? ROLE_TAG[role]) as ElementType;\n return (\n <Component\n ref={ref}\n className={cn(\n `b-${role}`,\n tone && `b-text-${tone}`,\n align && `b-text-${align}`,\n truncate && \"b-truncate\",\n clamp && `b-line-clamp-${clamp}`,\n tabularNums && \"b-tabular-nums\",\n className\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n\nexport const Link = block(\"a\", \"b-link\", \"Link\");\nexport const LinkGroup = block(\"div\", \"b-link-group\", \"LinkGroup\");\nexport const Kbd = block(\"span\", \"b-kbd\", \"Kbd\");\nexport const Overline = block(\"span\", \"b-overline\", \"Overline\");\nexport const Footnote = block(\"p\", \"b-footnote\", \"Footnote\");\nexport const Footnotes = block(\"div\", \"b-footnotes\", \"Footnotes\");\n\nexport interface QuoteProps extends HTMLAttributes<HTMLElement> {\n /** Attribution — rendered as the <cite>. */\n cite?: ReactNode;\n children?: ReactNode;\n}\n\nexport const Quote = forwardRef<HTMLQuoteElement, QuoteProps>(function Quote(\n { cite, className, children, ...rest },\n ref\n) {\n return (\n <blockquote ref={ref} className={cn(\"b-quote\", className)} {...rest}>\n <p>{children}</p>\n {cite ? <cite>{cite}</cite> : null}\n </blockquote>\n );\n});\n\nexport interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n /** Caption in the header strip. */\n title?: ReactNode;\n /** Renders a copy button that lifts the code out of the block. */\n copy?: boolean;\n copyLabel?: string;\n children?: ReactNode;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock(\n { title, copy, copyLabel = \"Copy\", className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-code\", className)} {...rest}>\n {title || copy ? (\n <div className=\"b-code__header\">\n <span>{title}</span>\n {copy ? (\n <button\n type=\"button\"\n className=\"b-code__copy\"\n onClick={(event) => {\n const pre = event.currentTarget.closest(\".b-code\")?.querySelector(\"code\");\n if (pre?.textContent) void navigator.clipboard.writeText(pre.textContent);\n }}\n >\n {copyLabel}\n </button>\n ) : null}\n </div>\n ) : null}\n <pre>\n <code>{children}</code>\n </pre>\n </div>\n );\n});\n\nexport interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {\n /** Label above value instead of beside it — better in narrow columns. */\n stacked?: boolean;\n items?: Array<{ term: ReactNode; description: ReactNode }>;\n children?: ReactNode;\n}\n\n/** Term-and-value pairs: the shape of every detail panel and receipt. */\nexport const DescriptionList = forwardRef<HTMLDListElement, DescriptionListProps>(\n function DescriptionList({ stacked, items, className, children, ...rest }, ref) {\n return (\n <dl ref={ref} className={cn(\"b-dl\", stacked && \"b-dl--stacked\", className)} {...rest}>\n {items\n ? items.map((item, i) => (\n <Fragment key={i}>\n <dt>{item.term}</dt>\n <dd>{item.description}</dd>\n </Fragment>\n ))\n : children}\n </dl>\n );\n }\n);\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type TableHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport interface TableProps extends TableHTMLAttributes<HTMLTableElement> {\n striped?: boolean;\n hover?: boolean;\n compact?: boolean;\n /** Wrap in the scroll container that keeps a wide table from breaking the page. */\n wrap?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Tables are the one place horizontal scrolling is allowed, and only inside\n * the wrapper — never the page itself.\n */\nexport const Table = forwardRef<HTMLTableElement, TableProps>(function Table(\n { striped, hover, compact, wrap = true, className, children, ...rest },\n ref\n) {\n const table = (\n <table\n ref={ref}\n className={cn(\n \"b-table\",\n striped && \"b-table--striped\",\n hover && \"b-table--hover\",\n compact && \"b-table--compact\",\n className\n )}\n {...rest}\n >\n {children}\n </table>\n );\n return wrap ? <div className=\"b-table-wrap\">{table}</div> : table;\n});\n\nexport const TableWrap = block(\"div\", \"b-table-wrap\", \"TableWrap\");\n\n/** Right-aligned, tabular figures. Every number column wants this. */\nexport const TableNum = block(\"td\", \"b-table__num\", \"TableNum\");\n\nexport interface SortHeaderProps extends HTMLAttributes<HTMLTableCellElement> {\n direction?: \"asc\" | \"desc\" | null;\n children?: ReactNode;\n}\n\nexport const TableSortHeader = forwardRef<HTMLTableCellElement, SortHeaderProps>(\n function TableSortHeader({ direction = null, className, children, ...rest }, ref) {\n return (\n <th\n ref={ref}\n className={cn(\"b-table__sort\", direction && `is-${direction}`, className)}\n aria-sort={direction === \"asc\" ? \"ascending\" : direction === \"desc\" ? \"descending\" : \"none\"}\n {...rest}\n >\n {children}\n </th>\n );\n }\n);\n\nexport interface GaugeProps extends Omit<HTMLAttributes<HTMLDivElement>, \"label\" | \"value\"> {\n /** 0–100. */\n value: number;\n label?: ReactNode;\n /** Text in the middle; defaults to the value as a percentage. */\n display?: ReactNode;\n}\n\nexport const Gauge = forwardRef<HTMLDivElement, GaugeProps>(function Gauge(\n { value, label, display, className, style, ...rest },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(\"b-gauge\", className)}\n style={{ [\"--b-progress\" as string]: value, ...style }}\n role=\"img\"\n aria-label={typeof label === \"string\" ? `${label}: ${value}%` : `${value}%`}\n {...rest}\n >\n <div className=\"b-gauge__value\">{display ?? `${value}%`}</div>\n {label ? <div className=\"b-gauge__label\">{label}</div> : null}\n </div>\n );\n});\n\nexport interface DonutSlice {\n /** Chart token index 1–8, or any CSS colour. */\n color: string;\n /** Share of the whole, 0–100. */\n value: number;\n label?: string;\n}\n\nexport interface DonutProps extends Omit<HTMLAttributes<HTMLDivElement>, \"label\" | \"value\"> {\n slices: DonutSlice[];\n /** Big figure in the hole. */\n value?: ReactNode;\n label?: ReactNode;\n /** States the takeaway for assistive tech. */\n description?: string;\n}\n\n/** Composition over parts: a donut is a pie with a labelled hole. */\nexport const Donut = forwardRef<HTMLDivElement, DonutProps>(function Donut(\n { slices, value, label, description, className, ...rest },\n ref\n) {\n let at = 0;\n const stops = slices\n .map((s) => {\n const from = at;\n at += s.value;\n const color = /^\\d$/.test(s.color) ? `var(--b-chart-${s.color})` : s.color;\n return `${color} ${from}% ${at}%`;\n })\n .join(\", \");\n return (\n <div ref={ref} className={cn(\"b-donut\", className)} {...rest}>\n <div\n className=\"b-pie\"\n style={{ [\"--b-pie\" as string]: stops }}\n role=\"img\"\n aria-label={description ?? slices.map((s) => `${s.label}: ${s.value}%`).join(\", \")}\n />\n <div className=\"b-donut__center\">\n {value ? <div className=\"b-stat__value\">{value}</div> : null}\n {label ? <div className=\"b-stat__label\">{label}</div> : null}\n </div>\n </div>\n );\n});\n\nexport interface SparklineProps extends HTMLAttributes<SVGSVGElement> {\n /** Raw numbers — scaled to the box for you. */\n points: number[];\n}\n\n/** A word-sized trend, for stat cards and table rows. */\nexport const Sparkline = forwardRef<SVGSVGElement, SparklineProps>(function Sparkline(\n { points, className, ...rest },\n ref\n) {\n const max = Math.max(...points, 1);\n const min = Math.min(...points, 0);\n const span = max - min || 1;\n const d = points\n .map((p, i) => {\n const x = (i / Math.max(points.length - 1, 1)) * 100;\n const y = 22 - ((p - min) / span) * 20;\n return `${i === 0 ? \"M\" : \"L\"}${x.toFixed(1)} ${y.toFixed(1)}`;\n })\n .join(\" \");\n return (\n <svg\n ref={ref}\n className={cn(\"b-sparkline\", className)}\n viewBox=\"0 0 100 24\"\n preserveAspectRatio=\"none\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d={d} />\n </svg>\n );\n});\n\nexport interface LegendItem {\n label: ReactNode;\n /** Chart token index 1–8, or any CSS colour. */\n color?: string;\n}\n\nexport interface LegendProps extends HTMLAttributes<HTMLUListElement> {\n items: LegendItem[];\n}\n\nexport const Legend = forwardRef<HTMLUListElement, LegendProps>(function Legend(\n { items, className, ...rest },\n ref\n) {\n return (\n <ul ref={ref} className={cn(\"b-legend\", className)} {...rest}>\n {items.map((item, i) => (\n <li key={i}>\n <span\n className=\"b-legend__swatch\"\n style={\n item.color\n ? { background: /^\\d$/.test(item.color) ? `var(--b-chart-${item.color})` : item.color }\n : undefined\n }\n />\n {item.label}\n </li>\n ))}\n </ul>\n );\n});\n\nexport interface ColumnsProps extends HTMLAttributes<HTMLDivElement> {\n data: Array<{ label: string; value: number }>;\n /** Top of the scale; defaults to the largest value. */\n max?: number;\n rounded?: boolean;\n /** Height ceiling, so a tall column never drags the card with it. */\n height?: string;\n description?: string;\n}\n\n/** CSS column chart — no runtime, no canvas, and it prints correctly. */\nexport const Columns = forwardRef<HTMLDivElement, ColumnsProps>(function Columns(\n { data, max, rounded, height, className, style, description, ...rest },\n ref\n) {\n const top = max ?? Math.max(...data.map((d) => d.value), 1);\n return (\n <div\n ref={ref}\n className={cn(\"b-columns\", rounded && \"b-columns--rounded\", className)}\n style={{ ...(height ? { [\"--b-chart-h\" as string]: height } : null), ...style }}\n role=\"img\"\n aria-label={description ?? data.map((d) => `${d.label}: ${d.value}`).join(\", \")}\n {...rest}\n >\n {data.map((d, i) => (\n <div\n key={i}\n className=\"b-columns__bar\"\n data-label={d.label}\n style={{ [\"--v\" as string]: `${Math.round((d.value / top) * 100)}%` }}\n />\n ))}\n </div>\n );\n});\n\nexport interface BarsProps extends HTMLAttributes<HTMLDivElement> {\n data: Array<{ label: ReactNode; value: number; display?: ReactNode }>;\n max?: number;\n description?: string;\n}\n\n/** Horizontal bars — the right shape when the labels are words, not dates. */\nexport const Bars = forwardRef<HTMLDivElement, BarsProps>(function Bars(\n { data, max, description, className, ...rest },\n ref\n) {\n const top = max ?? Math.max(...data.map((d) => d.value), 1);\n return (\n <div\n ref={ref}\n className={cn(\"b-bars\", className)}\n role=\"img\"\n aria-label={description ?? data.map((d) => `${d.label}: ${d.value}`).join(\", \")}\n {...rest}\n >\n {data.map((d, i) => (\n <div key={i} className=\"b-bars__row\">\n <span className=\"b-bars__label\">{d.label}</span>\n <div className=\"b-bars__track\">\n <i style={{ [\"--v\" as string]: `${Math.round((d.value / top) * 100)}%` }} />\n </div>\n <span className=\"b-bars__value\">{d.display ?? d.value}</span>\n </div>\n ))}\n </div>\n );\n});\n\nexport const Chart = block(\"figure\", \"b-chart\", \"Chart\");\nexport const ChartTip = block(\"div\", \"b-chart-tip\", \"ChartTip\");\nexport const Heatmap = block(\"div\", \"b-heatmap\", \"Heatmap\");\n","\"use client\";\n\nimport { forwardRef, type AnchorHTMLAttributes, type HTMLAttributes, type ElementType, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const TopNav = block(\"header\", \"b-topnav\", \"TopNav\");\nexport const TopNavBrand = block(\"a\", \"b-topnav__brand\", \"TopNavBrand\");\nexport const TopNavLinks = block(\"nav\", \"b-topnav__links\", \"TopNavLinks\");\n\nexport interface NavLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n as?: ElementType;\n active?: boolean;\n children?: ReactNode;\n}\n\n/** Active state is a class *and* an ARIA fact — never one without the other. */\nfunction navLink(base: string, displayName: string) {\n const Component = forwardRef<HTMLAnchorElement, NavLinkProps>(function NavLink(\n { as: Tag = \"a\", active, className, children, ...rest },\n ref\n ) {\n const El = Tag as ElementType;\n return (\n <El\n ref={ref}\n className={cn(base, active && \"is-active\")}\n aria-current={active ? \"page\" : undefined}\n {...rest}\n >\n {children}\n </El>\n );\n });\n Component.displayName = displayName;\n return Component;\n}\n\nexport const TopNavLink = navLink(\"b-topnav__link\", \"TopNavLink\");\nexport const BottomNavItem = navLink(\"b-bottomnav__item\", \"BottomNavItem\");\nexport const DockItem = navLink(\"b-dock__item\", \"DockItem\");\n\nexport const BottomNav = block(\"nav\", \"b-bottomnav\", \"BottomNav\");\nexport const Dock = block(\"div\", \"b-dock\", \"Dock\");\nexport const DockTray = block(\"div\", \"b-dock__tray\", \"DockTray\");\nexport const PillNav = block(\"nav\", \"b-pill-nav\", \"PillNav\");\nexport const BackButton = block(\"button\", \"b-back-btn\", \"BackButton\");\nexport const MarketingNav = block(\"header\", \"b-marketing-nav\", \"MarketingNav\");\nexport const MarketingNavBrand = block(\"a\", \"b-marketing-nav__brand\", \"MarketingNavBrand\");\nexport const MarketingNavLinks = block(\"nav\", \"b-marketing-nav__links\", \"MarketingNavLinks\");\n\nexport interface Step {\n label: ReactNode;\n state?: \"complete\" | \"active\" | \"upcoming\";\n}\n\nexport interface StepsProps extends HTMLAttributes<HTMLOListElement> {\n steps: Step[];\n /** Zero-based index of the current step; sets the states for you. */\n current?: number;\n}\n\nexport const Steps = forwardRef<HTMLOListElement, StepsProps>(function Steps(\n { steps, current, className, ...rest },\n ref\n) {\n return (\n <ol ref={ref} className={cn(\"b-steps\", className)} {...rest}>\n {steps.map((step, i) => {\n const state =\n step.state ?? (current === undefined ? undefined : i < current ? \"complete\" : i === current ? \"active\" : undefined);\n return (\n <li\n key={i}\n className={state ? `is-${state}` : undefined}\n data-step={i + 1}\n aria-current={state === \"active\" ? \"step\" : undefined}\n >\n {step.label}\n </li>\n );\n })}\n </ol>\n );\n});\n\nexport interface DrawerProps extends HTMLAttributes<HTMLElement> {\n /** Anchor to the trailing edge instead of the leading one. */\n end?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Uses the platform popover, so light-dismiss and the top layer are the\n * browser's job rather than a scroll-lock hack.\n */\nexport const Drawer = forwardRef<HTMLElement, DrawerProps>(function Drawer(\n { end, className, children, ...rest },\n ref\n) {\n return (\n <nav ref={ref as never} className={cn(\"b-drawer\", end && \"b-drawer--end\", className)} {...rest}>\n {children}\n </nav>\n );\n});\n\nexport const DrawerHeader = block(\"div\", \"b-drawer__header\", \"DrawerHeader\");\nexport const DrawerBody = block(\"div\", \"b-drawer__body\", \"DrawerBody\");\nexport const StatusBar = block(\"div\", \"b-statusbar\", \"StatusBar\");\nexport const StatusBarItem = block(\"span\", \"b-statusbar__item\", \"StatusBarItem\");\n\nexport interface MenuProps extends HTMLAttributes<HTMLUListElement> {\n children?: ReactNode;\n}\n\n/** Alignment lives on the Dropdown, not here — pass end to that. */\nexport const Menu = forwardRef<HTMLUListElement, MenuProps>(function Menu(\n { className, children, ...rest },\n ref\n) {\n return (\n <ul ref={ref} className={cn(\"b-menu\", className)} role=\"menu\" {...rest}>\n {children}\n </ul>\n );\n});\n\nexport interface MenuItemProps extends HTMLAttributes<HTMLButtonElement> {\n /** Keyboard hint, right-aligned. Not a place for secondary text. */\n shortcut?: ReactNode;\n danger?: boolean;\n /** Leading glyph. */\n icon?: ReactNode;\n children?: ReactNode;\n}\n\nexport const MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(function MenuItem(\n { shortcut, danger, icon, className, children, ...rest },\n ref\n) {\n return (\n <li role=\"none\">\n <button\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n className={cn(\"b-menu__item\", danger && \"b-menu__item--danger\", className)}\n {...rest}\n >\n {icon}\n {children}\n {shortcut ? <span className=\"b-menu__shortcut\">{shortcut}</span> : null}\n </button>\n </li>\n );\n});\n\nexport const MenuLabel = block(\"li\", \"b-menu__label\", \"MenuLabel\");\nexport const MenuSeparator = block(\"li\", \"b-menu__separator\", \"MenuSeparator\");\n\nexport interface DropdownProps extends Omit<HTMLAttributes<HTMLDetailsElement>, \"children\" | \"label\"> {\n /** What the trigger reads — the current value for a select, the action for a menu. */\n label: ReactNode;\n /**\n * \"select\" when the trigger holds a chosen value: it is painted by the same\n * rule as Input, so it matches the fields beside it. \"button\" is for a menu\n * of actions. Getting this backwards puts a borderless grey pill in a column\n * of bordered fields, which is the single most common way this component is\n * misused.\n */\n variant?: \"button\" | \"select\";\n /** Align the panel to the trailing edge, for triggers near the window edge. */\n end?: boolean;\n triggerProps?: HTMLAttributes<HTMLElement>;\n children?: ReactNode;\n}\n\n/**\n * A menu that needs no JavaScript to open: <details> does it, and the system's\n * script handles edge-flipping and outside-click.\n */\nexport const Dropdown = forwardRef<HTMLDetailsElement, DropdownProps>(function Dropdown(\n { label, variant = \"button\", end, triggerProps, className, children, ...rest },\n ref\n) {\n const { className: triggerClass, ...triggerRest } = triggerProps ?? {};\n return (\n <details ref={ref} className={cn(\"b-dropdown\", end && \"b-dropdown--end\", className)} {...rest}>\n <summary\n className={cn(variant === \"select\" ? \"b-select\" : \"b-btn\", triggerClass)}\n aria-haspopup={variant === \"select\" ? \"listbox\" : \"menu\"}\n {...triggerRest}\n >\n {label}\n </summary>\n {children}\n </details>\n );\n});\n","\"use client\";\n\nimport {\n forwardRef, useId, type FormHTMLAttributes, type HTMLAttributes,\n type InputHTMLAttributes, type ReactNode,\n} from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const Form = block(\"form\", \"b-form\", \"Form\");\n/** Two fields side by side above 768px, stacked below. */\nexport const FormRow = block(\"div\", \"b-form-row\", \"FormRow\");\nexport const FormActions = block(\"div\", \"b-form-actions\", \"FormActions\");\nexport const Fieldset = block(\"fieldset\", \"b-fieldset\", \"Fieldset\");\nexport const Help = block(\"p\", \"b-help\", \"Help\");\nexport const ErrorText = block(\"p\", \"b-error\", \"ErrorText\");\nexport const Optional = block(\"span\", \"b-optional\", \"Optional\");\n\nexport interface FormSectionProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n title?: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n}\n\n/** A titled group of fields — the unit long forms are built from. */\nexport const FormSection = forwardRef<HTMLDivElement, FormSectionProps>(function FormSection(\n { title, description, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-form-section\", className)} {...rest}>\n {title || description ? (\n <div className=\"b-form-section__header\">\n {title ? <div className=\"b-form-section__title\">{title}</div> : null}\n {description ? <p className=\"b-form-section__desc\">{description}</p> : null}\n </div>\n ) : null}\n {children}\n </div>\n );\n});\n\nexport interface LabelProps extends HTMLAttributes<HTMLLabelElement> {\n required?: boolean;\n htmlFor?: string;\n children?: ReactNode;\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(function Label(\n { required, className, children, ...rest },\n ref\n) {\n return (\n <label ref={ref} className={cn(\"b-label\", required && \"b-label--required\", className)} {...rest}>\n {children}\n </label>\n );\n});\n\nexport interface InputGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, \"prefix\" | \"suffix\"> {\n /** Glyph or text before the field — a currency, a search icon. */\n prefix?: ReactNode;\n /** After the field — a unit, a clear button. */\n suffix?: ReactNode;\n children?: ReactNode;\n}\n\n/** Affixes sit inside the field's border, so the group reads as one control. */\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { prefix, suffix, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-input-group\", className)} {...rest}>\n {prefix ? <span className=\"b-input-affix b-input-affix--start\">{prefix}</span> : null}\n {children}\n {suffix ? <span className=\"b-input-affix b-input-affix--end\">{suffix}</span> : null}\n </div>\n );\n});\n\nexport interface StepperInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n decrementLabel?: string;\n incrementLabel?: string;\n onStep?: (delta: number) => void;\n}\n\n/** For small counts, where typing a number is slower than pressing a button. */\nexport const StepperInput = forwardRef<HTMLInputElement, StepperInputProps>(function StepperInput(\n { decrementLabel = \"Decrease\", incrementLabel = \"Increase\", onStep, className, ...rest },\n ref\n) {\n return (\n <div className={cn(\"b-stepper-input\", className)}>\n <button type=\"button\" aria-label={decrementLabel} onClick={() => onStep?.(-1)}>\n −\n </button>\n <input ref={ref} type=\"number\" {...rest} />\n <button type=\"button\" aria-label={incrementLabel} onClick={() => onStep?.(1)}>\n +\n </button>\n </div>\n );\n});\n\nexport interface RangeProps extends Omit<HTMLAttributes<HTMLDivElement>, \"label\" | \"value\"> {\n min?: number;\n max?: number;\n step?: number;\n /** [low, high] — a two-thumb range. */\n value: [number, number];\n onRangeChange?: (value: [number, number]) => void;\n label?: string;\n}\n\n/** Two thumbs on one track, with the selected span filled in. */\nexport const Range = forwardRef<HTMLDivElement, RangeProps>(function Range(\n { min = 0, max = 100, step = 1, value, onRangeChange, label, className, ...rest },\n ref\n) {\n const id = useId();\n const span = max - min || 1;\n const start = ((Math.min(...value) - min) / span) * 100;\n const width = ((Math.max(...value) - Math.min(...value)) / span) * 100;\n return (\n <div ref={ref} className={cn(\"b-range\", className)} role=\"group\" aria-label={label} {...rest}>\n <div className=\"b-range__fill\" style={{ insetInlineStart: `${start}%`, width: `${width}%` }} />\n <input\n type=\"range\" min={min} max={max} step={step} value={value[0]}\n aria-label={label ? `${label}, minimum` : \"Minimum\"}\n id={`${id}-min`}\n onChange={(e) => onRangeChange?.([Number(e.target.value), value[1]])}\n />\n <input\n type=\"range\" min={min} max={max} step={step} value={value[1]}\n aria-label={label ? `${label}, maximum` : \"Maximum\"}\n id={`${id}-max`}\n onChange={(e) => onRangeChange?.([value[0], Number(e.target.value)])}\n />\n </div>\n );\n});\n\nexport interface DropzoneProps extends HTMLAttributes<HTMLDivElement> {\n /** Highlights the target while a file is over it. */\n active?: boolean;\n children?: ReactNode;\n}\n\nexport const Dropzone = forwardRef<HTMLDivElement, DropzoneProps>(function Dropzone(\n { active, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-dropzone\", active && \"is-active\", className)} {...rest}>\n {children}\n </div>\n );\n});\n\nexport interface UploadItemProps extends HTMLAttributes<HTMLLIElement> {\n name: ReactNode;\n size?: ReactNode;\n thumb?: ReactNode;\n children?: ReactNode;\n}\n\nexport const UploadItem = forwardRef<HTMLLIElement, UploadItemProps>(function UploadItem(\n { name, size, thumb, className, children, ...rest },\n ref\n) {\n return (\n <li ref={ref} className={cn(\"b-upload-item\", className)} {...rest}>\n {thumb ? <span className=\"b-upload-item__thumb\">{thumb}</span> : null}\n <span className=\"b-upload-item__meta\">\n <span className=\"b-upload-item__name\">{name}</span>\n {size ? <span className=\"b-upload-item__size\">{size}</span> : null}\n </span>\n {children}\n </li>\n );\n});\n\nexport const Upload = block(\"div\", \"b-upload\", \"Upload\");\nexport const FilterBar = block(\"div\", \"b-filter-bar\", \"FilterBar\");\nexport const Swatches = block(\"div\", \"b-swatches\", \"Swatches\");\nexport const Swatch = block(\"button\", \"b-swatch\", \"Swatch\");\nexport const SearchField = block(\"div\", \"b-search\", \"SearchField\");\n\nexport interface FilterChipProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"value\"> {\n /** The chosen value, shown after the label. */\n value?: ReactNode;\n children?: ReactNode;\n}\n\nexport const FilterChip = forwardRef<HTMLButtonElement, FilterChipProps>(function FilterChip(\n { value, className, children, ...rest },\n ref\n) {\n return (\n <button ref={ref} type=\"button\" className={cn(\"b-filter-chip\", className)} {...rest}>\n {children}\n {value ? <span className=\"b-filter-chip__value\">{value}</span> : null}\n </button>\n );\n});\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const Kanban = block(\"div\", \"b-kanban\", \"Kanban\");\nexport const KanbanList = block(\"ul\", \"b-kanban-col__list\", \"KanbanList\");\nexport const TaskList = block(\"ul\", \"b-task-list\", \"TaskList\");\nexport const TaskRow = block(\"div\", \"b-task-row\", \"TaskRow\");\nexport const DataGrid = block(\"div\", \"b-datagrid\", \"DataGrid\");\nexport const Tree = block(\"ul\", \"b-tree\", \"Tree\");\nexport const Feed = block(\"ul\", \"b-feed\", \"Feed\");\nexport const Log = block(\"div\", \"b-log\", \"Log\");\nexport const BulkActions = block(\"div\", \"b-bulk-actions\", \"BulkActions\");\nexport const SelectionCount = block(\"span\", \"b-selection-count\", \"SelectionCount\");\nexport const Resizable = block(\"div\", \"b-resizable\", \"Resizable\");\nexport const ResizeHandle = block(\"div\", \"b-resize-handle\", \"ResizeHandle\");\nexport const DragHandle = block(\"span\", \"b-drag-handle\", \"DragHandle\");\n\nexport interface KanbanColumnProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n title: ReactNode;\n count?: ReactNode;\n children?: ReactNode;\n}\n\nexport const KanbanColumn = forwardRef<HTMLElement, KanbanColumnProps>(function KanbanColumn(\n { title, count, className, children, ...rest },\n ref\n) {\n return (\n <section ref={ref} className={cn(\"b-kanban-col\", className)} {...rest}>\n <header className=\"b-kanban-col__header\">\n {title}\n {count !== undefined ? <span className=\"b-kanban-col__count\">{count}</span> : null}\n </header>\n {children}\n </section>\n );\n});\n\nexport interface TaskProps extends Omit<HTMLAttributes<HTMLLIElement>, \"title\"> {\n title: ReactNode;\n meta?: ReactNode;\n children?: ReactNode;\n}\n\nexport const Task = forwardRef<HTMLLIElement, TaskProps>(function Task(\n { title, meta, className, children, ...rest },\n ref\n) {\n return (\n <li ref={ref} className={cn(\"b-task\", className)} {...rest}>\n <div className=\"b-task__title\">{title}</div>\n {meta ? <div className=\"b-task__meta\">{meta}</div> : null}\n {children}\n </li>\n );\n});\n\nexport interface TreeItemProps extends Omit<HTMLAttributes<HTMLDetailsElement>, \"label\"> {\n label: ReactNode;\n /** Leading glyph — a folder, a file kind. */\n icon?: ReactNode;\n defaultOpen?: boolean;\n children?: ReactNode;\n}\n\nexport const TreeItem = forwardRef<HTMLDetailsElement, TreeItemProps>(function TreeItem(\n { label, icon, defaultOpen, className, children, ...rest },\n ref\n) {\n return (\n <li>\n <details ref={ref} className={cn(\"b-tree-item\", className)} open={defaultOpen} {...rest}>\n <summary>\n {icon}\n {label}\n </summary>\n {children}\n </details>\n </li>\n );\n});\n\nexport interface TimelineEntry {\n time?: ReactNode;\n title: ReactNode;\n body?: ReactNode;\n state?: \"complete\" | \"active\";\n}\n\nexport interface TimelineProps extends HTMLAttributes<HTMLOListElement> {\n entries: TimelineEntry[];\n}\n\n/** Events in order, with the current one marked. */\nexport const Timeline = forwardRef<HTMLOListElement, TimelineProps>(function Timeline(\n { entries, className, ...rest },\n ref\n) {\n return (\n <ol ref={ref} className={cn(\"b-timeline\", className)} {...rest}>\n {entries.map((entry, i) => (\n <li key={i} className={entry.state ? `is-${entry.state}` : undefined}>\n {entry.time ? <div className=\"b-timeline__time\">{entry.time}</div> : null}\n <div className=\"b-timeline__title\">{entry.title}</div>\n {entry.body ? <div className=\"b-timeline__body\">{entry.body}</div> : null}\n </li>\n ))}\n </ol>\n );\n});\n\nexport interface FileTileProps extends HTMLAttributes<HTMLButtonElement> {\n name: ReactNode;\n /** File-kind glyph — keep the colour, it is how the kind is read at a glance. */\n icon?: ReactNode;\n selected?: boolean;\n}\n\nexport const FileTile = forwardRef<HTMLButtonElement, FileTileProps>(function FileTile(\n { name, icon, selected, className, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"b-file-tile\", selected && \"is-selected\", className)}\n aria-pressed={selected}\n {...rest}\n >\n {icon ? <span className=\"b-file-tile__icon\">{icon}</span> : null}\n <span className=\"b-file-tile__name\">{name}</span>\n </button>\n );\n});\n\nexport const FileGrid = block(\"div\", \"b-file-grid\", \"FileGrid\");\nexport const FileBrowser = block(\"div\", \"b-file-browser\", \"FileBrowser\");\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\n/** The page frame for a marketing surface — sets the rhythm every chapter follows. */\nexport const Landing = block(\"div\", \"b-landing\", \"Landing\");\nexport const SpecStrip = block(\"div\", \"b-spec-strip\", \"SpecStrip\");\nexport const CardRail = block(\"div\", \"b-card-rail\", \"CardRail\");\nexport const SiteFooter = block(\"footer\", \"b-site-footer\", \"SiteFooter\");\nexport const SiteFooterGroups = block(\"div\", \"b-site-footer__groups\", \"SiteFooterGroups\");\nexport const SiteFooterGroup = block(\"div\", \"b-site-footer__group\", \"SiteFooterGroup\");\nexport const SiteFooterHeading = block(\"div\", \"b-site-footer__heading\", \"SiteFooterHeading\");\nexport const SiteFooterLegal = block(\"div\", \"b-site-footer__legal\", \"SiteFooterLegal\");\n\nexport interface ChapterProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n eyebrow?: ReactNode;\n title?: ReactNode;\n /** One sentence under the title. Resist writing two. */\n lede?: ReactNode;\n actions?: ReactNode;\n /** Less vertical air, for chapters that run in a series. */\n tight?: boolean;\n /** Left-aligned instead of centred. */\n start?: boolean;\n /** Inverted band, for a break in the page's rhythm. */\n dark?: boolean;\n children?: ReactNode;\n}\n\n/**\n * A page is chapters. Each states one idea, in the same order every time:\n * eyebrow, title, lede, then the thing itself.\n */\nexport const Chapter = forwardRef<HTMLElement, ChapterProps>(function Chapter(\n { eyebrow, title, lede, actions, tight, start, dark, className, children, ...rest },\n ref\n) {\n return (\n <section\n ref={ref}\n className={cn(\n \"b-chapter\",\n tight && \"b-chapter--tight\",\n start && \"b-chapter--start\",\n dark && \"b-chapter--dark\",\n className\n )}\n {...rest}\n >\n {eyebrow ? <p className=\"b-chapter__eyebrow\">{eyebrow}</p> : null}\n {title ? <h2 className=\"b-chapter__title\">{title}</h2> : null}\n {lede ? <p className=\"b-chapter__lede\">{lede}</p> : null}\n {actions ? <div className=\"b-chapter__actions\">{actions}</div> : null}\n {children}\n </section>\n );\n});\n\nexport interface HeroProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n title?: ReactNode;\n /** Image or video that fills the frame. */\n media?: ReactNode;\n children?: ReactNode;\n}\n\nexport const Hero = forwardRef<HTMLElement, HeroProps>(function Hero(\n { title, media, className, children, ...rest },\n ref\n) {\n return (\n <section ref={ref} className={cn(\"b-hero\", className)} {...rest}>\n {title ? <h1 className=\"b-hero__title\">{title}</h1> : null}\n {children}\n {media ? <div className=\"b-hero__media\">{media}</div> : null}\n </section>\n );\n});\n\nexport interface FigureProps extends HTMLAttributes<HTMLElement> {\n caption?: ReactNode;\n /** Break the measure and run to the page edges. */\n bleed?: boolean;\n children?: ReactNode;\n}\n\n/** Media in a frame that holds its aspect, so a row of them lines up. */\nexport const Figure = forwardRef<HTMLElement, FigureProps>(function Figure(\n { caption, bleed, className, children, ...rest },\n ref\n) {\n return (\n <figure ref={ref} className={cn(\"b-figure\", bleed && \"b-figure--bleed\", className)} {...rest}>\n <div className=\"b-figure__frame\">{children}</div>\n {caption ? <figcaption className=\"b-figure__caption\">{caption}</figcaption> : null}\n </figure>\n );\n});\n\nexport interface FeatureRowProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n title?: ReactNode;\n body?: ReactNode;\n media?: ReactNode;\n /** Put the media on the other side — alternate down the page. */\n flip?: boolean;\n children?: ReactNode;\n}\n\nexport const FeatureRow = forwardRef<HTMLElement, FeatureRowProps>(function FeatureRow(\n { title, body, media, flip, className, children, ...rest },\n ref\n) {\n return (\n <section ref={ref} className={cn(\"b-feature-row\", flip && \"b-feature-row--flip\", className)} {...rest}>\n <div>\n {title ? <h3 className=\"b-feature-row__title\">{title}</h3> : null}\n {body ? <div className=\"b-feature-row__body\">{body}</div> : null}\n {children}\n </div>\n {media}\n </section>\n );\n});\n\nexport interface PromoBandProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n title?: ReactNode;\n body?: ReactNode;\n children?: ReactNode;\n}\n\nexport const PromoBand = forwardRef<HTMLElement, PromoBandProps>(function PromoBand(\n { title, body, className, children, ...rest },\n ref\n) {\n return (\n <section ref={ref} className={cn(\"b-promo-band\", className)} {...rest}>\n {title ? <div className=\"b-promo-band__title\">{title}</div> : null}\n {body ? <div className=\"b-promo-band__body\">{body}</div> : null}\n {children}\n </section>\n );\n});\n","\"use client\";\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const Auth = block(\"div\", \"b-auth\", \"Auth\");\nexport const Onboarding = block(\"div\", \"b-onboarding\", \"Onboarding\");\nexport const OnboardingHero = block(\"div\", \"b-onboarding__hero\", \"OnboardingHero\");\nexport const AppGrid = block(\"div\", \"b-app-grid\", \"AppGrid\");\nexport const AppTile = block(\"a\", \"b-app-tile\", \"AppTile\");\nexport const Callout = block(\"p\", \"b-callout\", \"Callout\");\nexport const Notification = block(\"div\", \"b-notification\", \"Notification\");\nexport const Wall = block(\"div\", \"b-wall\", \"Wall\");\nexport const GlassContainer = block(\"div\", \"b-glass-container\", \"GlassContainer\");\n\nexport interface AuthCardProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n logo?: ReactNode;\n title?: ReactNode;\n subtitle?: ReactNode;\n footer?: ReactNode;\n children?: ReactNode;\n}\n\n/** The sign-in surface: one card, one job, nothing else on the screen. */\nexport const AuthCard = forwardRef<HTMLDivElement, AuthCardProps>(function AuthCard(\n { logo, title, subtitle, footer, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-auth-card\", className)} {...rest}>\n {logo ? <div className=\"b-auth-card__logo\" aria-hidden=\"true\">{logo}</div> : null}\n {title ? <div className=\"b-auth-card__title\">{title}</div> : null}\n {subtitle ? <div className=\"b-auth-card__subtitle\">{subtitle}</div> : null}\n {children}\n {footer ? <div className=\"b-auth-card__footer\">{footer}</div> : null}\n </div>\n );\n});\n\nexport interface ResultProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n tone?: \"success\" | \"warning\" | \"error\" | \"confirm\";\n icon?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n children?: ReactNode;\n}\n\n/** The end of a flow — what happened, and the one thing to do next. */\nexport const Result = forwardRef<HTMLDivElement, ResultProps>(function Result(\n { tone, icon, title, description, actions, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-result\", tone && `b-result--${tone}`, className)} {...rest}>\n {icon ? <div className=\"b-result__icon\" aria-hidden=\"true\">{icon}</div> : null}\n {title ? <div className=\"b-result__title\">{title}</div> : null}\n {description ? <p className=\"b-result__desc\">{description}</p> : null}\n {children}\n {actions ? <div className=\"b-result__actions\">{actions}</div> : null}\n </div>\n );\n});\n\nexport interface SysPageProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n /** The status — 404, 500, offline. */\n code?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n children?: ReactNode;\n}\n\nexport const SysPage = forwardRef<HTMLDivElement, SysPageProps>(function SysPage(\n { code, title, description, actions, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-syspage\", className)} {...rest}>\n {code ? <div className=\"b-syspage__code\">{code}</div> : null}\n {title ? <div className=\"b-syspage__title\">{title}</div> : null}\n {description ? <p className=\"b-syspage__desc\">{description}</p> : null}\n {children}\n {actions ? <div className=\"b-syspage__actions\">{actions}</div> : null}\n </div>\n );\n});\n\nexport interface BannerProps extends HTMLAttributes<HTMLDivElement> {\n /** Quieter treatment for anything that is not news. */\n neutral?: boolean;\n onDismiss?: () => void;\n dismissLabel?: string;\n children?: ReactNode;\n}\n\n/** Page-width announcement. One at a time, and always dismissible. */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n { neutral, onDismiss, dismissLabel = \"Dismiss\", className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-banner\", neutral && \"b-banner--neutral\", className)} role=\"status\" {...rest}>\n <span>{children}</span>\n {onDismiss ? (\n <button type=\"button\" className=\"b-banner__close\" onClick={onDismiss} aria-label={dismissLabel}>\n <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\">\n <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n ) : null}\n </div>\n );\n});\n","\"use client\";\n\nimport { forwardRef, type DialogHTMLAttributes, type HTMLAttributes, type InputHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const CommandList = block(\"ul\", \"b-cmdk__list\", \"CommandList\");\nexport const CommandGroupLabel = block(\"li\", \"b-cmdk__group-label\", \"CommandGroupLabel\");\nexport const CommandFooter = block(\"footer\", \"b-cmdk__footer\", \"CommandFooter\");\nexport const HoverCard = block(\"div\", \"b-hover-card\", \"HoverCard\");\n\nexport interface CommandPaletteProps extends DialogHTMLAttributes<HTMLDialogElement> {\n children?: ReactNode;\n}\n\n/**\n * ⌘K, on the platform dialog: the browser handles the top layer, the backdrop\n * and Escape, so none of that has to be re-implemented.\n */\nexport const CommandPalette = forwardRef<HTMLDialogElement, CommandPaletteProps>(\n function CommandPalette({ className, children, ...rest }, ref) {\n return (\n <dialog ref={ref} className={cn(\"b-modal b-cmdk\", className)} {...rest}>\n {children}\n </dialog>\n );\n }\n);\n\nexport const CommandInput = forwardRef<HTMLInputElement, InputHTMLAttributes<HTMLInputElement>>(\n function CommandInput({ className, ...rest }, ref) {\n return <input ref={ref} type=\"search\" className={cn(\"b-cmdk__input\", className)} {...rest} />;\n }\n);\n\nexport interface CommandItemProps extends HTMLAttributes<HTMLButtonElement> {\n /** Keyboard-highlighted row. Follows the arrow keys, not the mouse. */\n active?: boolean;\n icon?: ReactNode;\n children?: ReactNode;\n}\n\nexport const CommandItem = forwardRef<HTMLButtonElement, CommandItemProps>(function CommandItem(\n { active, icon, className, children, ...rest },\n ref\n) {\n return (\n <li>\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"b-cmdk__item\", active && \"is-active\", className)}\n aria-selected={active}\n {...rest}\n >\n {icon}\n {children}\n </button>\n </li>\n );\n});\n","\"use client\";\n\nimport { forwardRef, type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\n/* ---- Actions ------------------------------------------------------------- */\n\nexport interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Fuse the buttons into one control with shared borders. */\n attached?: boolean;\n children?: ReactNode;\n}\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(function ButtonGroup(\n { attached, className, children, ...rest },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(\"b-btn-group\", attached && \"b-btn-group--attached\", className)}\n role=\"group\"\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nexport interface SplitButtonProps extends HTMLAttributes<HTMLSpanElement> {\n /** The default action — the one most people want. */\n children?: ReactNode;\n /** The menu of the rest. */\n menu?: ReactNode;\n menuLabel?: string;\n}\n\n/** One obvious action, with its variations tucked behind the chevron. */\nexport const SplitButton = forwardRef<HTMLSpanElement, SplitButtonProps>(function SplitButton(\n { children, menu, menuLabel = \"More options\", className, ...rest },\n ref\n) {\n return (\n <span ref={ref} className={cn(\"b-split-btn\", className)} {...rest}>\n {children}\n <button type=\"button\" className=\"b-btn b-btn--primary\" aria-label={menuLabel} aria-haspopup=\"menu\">\n <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\">\n <path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n {menu}\n </span>\n );\n});\n\nexport interface ToggleButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n pressed?: boolean;\n children?: ReactNode;\n}\n\n/** A button that stays down. The pressed state is announced, not just drawn. */\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(function ToggleButton(\n { pressed, className, children, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"b-toggle-btn\", pressed && \"is-active\", className)}\n aria-pressed={pressed}\n {...rest}\n >\n {children}\n </button>\n );\n});\n\nexport const SortControl = block(\"div\", \"b-sort-control\", \"SortControl\");\nexport const Share = block(\"div\", \"b-share\", \"Share\");\n\n/* ---- Disclosure ---------------------------------------------------------- */\n\nexport const Accordion = block(\"div\", \"b-accordion\", \"Accordion\");\n\nexport interface DisclosureProps extends Omit<HTMLAttributes<HTMLDetailsElement>, \"title\"> {\n /** The always-visible summary line. */\n title: ReactNode;\n /** Drop the surface, for a disclosure inside something already carrying one. */\n plain?: boolean;\n defaultOpen?: boolean;\n children?: ReactNode;\n}\n\n/** Progressive disclosure on <details> — open state survives without JS. */\nexport const Disclosure = forwardRef<HTMLDetailsElement, DisclosureProps>(function Disclosure(\n { title, plain, defaultOpen, className, children, ...rest },\n ref\n) {\n return (\n <details\n ref={ref}\n className={cn(\"b-disclosure\", plain && \"b-disclosure--plain\", className)}\n open={defaultOpen}\n {...rest}\n >\n <summary>{title}</summary>\n <div className=\"b-disclosure__body\">{children}</div>\n </details>\n );\n});\n\n/* ---- Calendar and dates -------------------------------------------------- */\n\nexport const Calendar = block(\"div\", \"b-calendar\", \"Calendar\");\nexport const CalendarGrid = block(\"div\", \"b-calendar__grid\", \"CalendarGrid\");\nexport const CalendarMonth = block(\"span\", \"b-calendar__month\", \"CalendarMonth\");\nexport const CalendarWeekday = block(\"span\", \"b-calendar__weekday\", \"CalendarWeekday\");\nexport const CalendarHeader = block(\"div\", \"b-calendar__header\", \"CalendarHeader\");\nexport const DatePicker = block(\"details\", \"b-datepicker\", \"DatePicker\");\nexport const CalendarView = block(\"div\", \"b-calview\", \"CalendarView\");\nexport const CalendarViewHead = block(\"div\", \"b-calview__head\", \"CalendarViewHead\");\nexport const CalendarViewCell = block(\"div\", \"b-calview__cell\", \"CalendarViewCell\");\n\nexport interface CalendarDayProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Outside the shown month — present for the grid, quiet to the eye. */\n muted?: boolean;\n today?: boolean;\n selected?: boolean;\n children?: ReactNode;\n}\n\nexport const CalendarDay = forwardRef<HTMLButtonElement, CalendarDayProps>(function CalendarDay(\n { muted, today, selected, className, children, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"b-calendar__day\", muted && \"is-muted\", today && \"is-today\", selected && \"is-selected\", className)}\n aria-current={today ? \"date\" : undefined}\n aria-pressed={selected || undefined}\n {...rest}\n >\n {children}\n </button>\n );\n});\n\nexport interface EventProps extends HTMLAttributes<HTMLDivElement> {\n /** Calendar colour — how one stream is told from another at a glance. */\n tone?: \"green\" | \"orange\" | \"purple\";\n children?: ReactNode;\n}\n\nexport const Event = forwardRef<HTMLDivElement, EventProps>(function Event(\n { tone, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-event\", tone && `b-event--${tone}`, className)} {...rest}>\n {children}\n </div>\n );\n});\n\n/* ---- Combobox and search ------------------------------------------------- */\n\nexport const Combobox = block(\"div\", \"b-combobox\", \"Combobox\");\nexport const ComboboxList = block(\"ul\", \"b-combobox__list\", \"ComboboxList\");\nexport const ComboboxEmpty = block(\"li\", \"b-combobox__empty\", \"ComboboxEmpty\");\nexport const SearchResults = block(\"div\", \"b-search-results\", \"SearchResults\");\n\nexport interface ComboboxOptionProps extends HTMLAttributes<HTMLLIElement> {\n selected?: boolean;\n children?: ReactNode;\n}\n\nexport const ComboboxOption = forwardRef<HTMLLIElement, ComboboxOptionProps>(function ComboboxOption(\n { selected, className, children, ...rest },\n ref\n) {\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={selected}\n className={cn(\"b-combobox__option\", selected && \"is-active\", className)}\n {...rest}\n >\n {children}\n </li>\n );\n});\n\nexport interface SearchResultProps extends Omit<HTMLAttributes<HTMLAnchorElement>, \"title\"> {\n title: ReactNode;\n /** Matched text — wrap the hit in <mark>. */\n snippet?: ReactNode;\n /** Where it lives, so the same title in two places is still distinguishable. */\n path?: ReactNode;\n href?: string;\n}\n\nexport const SearchResult = forwardRef<HTMLAnchorElement, SearchResultProps>(function SearchResult(\n { title, snippet, path, className, ...rest },\n ref\n) {\n return (\n <a ref={ref} className={cn(\"b-search-result\", className)} {...rest}>\n <span className=\"b-search-result__title\">{title}</span>\n {snippet ? <span className=\"b-search-result__snippet\">{snippet}</span> : null}\n {path ? <span className=\"b-search-result__path\">{path}</span> : null}\n </a>\n );\n});\n\n/* ---- Media --------------------------------------------------------------- */\n\nexport const Carousel = block(\"div\", \"b-carousel\", \"Carousel\");\nexport const CarouselTrack = block(\"div\", \"b-carousel__track\", \"CarouselTrack\");\nexport const CarouselSlide = block(\"div\", \"b-carousel__slide\", \"CarouselSlide\");\nexport const CarouselDots = block(\"div\", \"b-carousel__dots\", \"CarouselDots\");\nexport const Gallery = block(\"div\", \"b-gallery\", \"Gallery\");\nexport const ImageViewer = block(\"div\", \"b-image-viewer\", \"ImageViewer\");\nexport const ImageViewerBar = block(\"div\", \"b-image-viewer__bar\", \"ImageViewerBar\");\nexport const UploadPreviews = block(\"div\", \"b-upload-previews\", \"UploadPreviews\");\nexport const UploadPreview = block(\"div\", \"b-upload-preview\", \"UploadPreview\");\n\nexport interface LightboxProps extends HTMLAttributes<HTMLDialogElement> {\n caption?: ReactNode;\n actions?: ReactNode;\n children?: ReactNode;\n}\n\nexport const Lightbox = forwardRef<HTMLDialogElement, LightboxProps>(function Lightbox(\n { caption, actions, className, children, ...rest },\n ref\n) {\n return (\n <dialog ref={ref} className={cn(\"b-lightbox\", className)} {...rest}>\n <div className=\"b-lightbox__frame\">{children}</div>\n {caption ? <div className=\"b-lightbox__caption\">{caption}</div> : null}\n {actions ? <div className=\"b-lightbox__actions\">{actions}</div> : null}\n </dialog>\n );\n});\n\n/* ---- Accounts, rails and the rest ---------------------------------------- */\n\nexport const AccountSwitcher = block(\"div\", \"b-account-switcher\", \"AccountSwitcher\");\nexport const CommandCenter = block(\"div\", \"b-command-center\", \"CommandCenter\");\nexport const Gantt = block(\"div\", \"b-gantt\", \"Gantt\");\nexport const GanttRow = block(\"div\", \"b-gantt__row\", \"GanttRow\");\nexport const GanttBar = block(\"div\", \"b-gantt__bar\", \"GanttBar\");\nexport const HoverCardHost = block(\"span\", \"b-hover-card-host\", \"HoverCardHost\");\nexport const GlassInteractive = block(\"div\", \"b-glass-interactive\", \"GlassInteractive\");\n\nexport interface RailProps extends HTMLAttributes<HTMLElement> {\n material?: \"glass\";\n children?: ReactNode;\n}\n\n/** Icon-width navigation for when a sidebar costs too much room. */\nexport const Rail = forwardRef<HTMLElement, RailProps>(function Rail(\n { material, className, children, ...rest },\n ref\n) {\n return (\n <nav ref={ref} className={cn(\"b-rail\", material && `b-rail--${material}`, className)} {...rest}>\n {children}\n </nav>\n );\n});\n\nexport const RailItem = block(\"a\", \"b-rail__item\", \"RailItem\");\n\nexport interface AccountProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n name: ReactNode;\n email?: ReactNode;\n /** Marks the account in use. */\n current?: boolean;\n children?: ReactNode;\n}\n\nexport const Account = forwardRef<HTMLDivElement, AccountProps>(function Account(\n { name, email, current, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-account\", className)} {...rest}>\n {children}\n <span className=\"b-account__meta\">\n <span className=\"b-account__name\">{name}</span>\n {email ? <span className=\"b-account__email\">{email}</span> : null}\n </span>\n {current ? (\n <span className=\"b-account__check\" aria-label=\"Current account\">\n <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"16\" height=\"16\" aria-hidden=\"true\">\n <path d=\"M4 10.5 8.5 15 16 5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </span>\n ) : null}\n </div>\n );\n});\n\nexport interface OnboardingFeatureProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n}\n\nexport const OnboardingFeature = forwardRef<HTMLDivElement, OnboardingFeatureProps>(\n function OnboardingFeature({ title, description, icon, className, ...rest }, ref) {\n return (\n <div ref={ref} className={cn(\"b-onboarding-feature\", className)} {...rest}>\n {icon}\n <div>\n <div className=\"b-onboarding-feature__title\">{title}</div>\n {description ? <p className=\"b-onboarding-feature__desc\">{description}</p> : null}\n </div>\n </div>\n );\n }\n);\n","\"use client\";\n\nimport { forwardRef, type AnchorHTMLAttributes, type HTMLAttributes, type ImgHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"./cn\";\nimport { block } from \"./primitive\";\n\nexport const MediaPlaceholder = block(\"div\", \"b-media-placeholder\", \"MediaPlaceholder\");\nexport const AsyncImage = block(\"span\", \"b-async-img\", \"AsyncImage\");\nexport const Web = block(\"div\", \"b-web\", \"Web\");\nexport const Video = block(\"video\", \"b-video\", \"Video\");\nexport const Audio = block(\"div\", \"b-audio\", \"Audio\");\nexport const Waveform = block(\"div\", \"b-waveform\", \"Waveform\");\n\nexport interface ThumbProps extends HTMLAttributes<HTMLDivElement> {\n /** Runtime badge — marks it as a video without a second glance. */\n duration?: ReactNode;\n children?: ReactNode;\n}\n\nexport const Thumb = forwardRef<HTMLDivElement, ThumbProps>(function Thumb(\n { duration, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-thumb\", duration !== undefined && \"b-thumb--video\", className)} {...rest}>\n {children}\n {duration ? <span className=\"b-thumb__duration\">{duration}</span> : null}\n </div>\n );\n});\n\n/* ---- Progress and axes --------------------------------------------------- */\n\nexport interface CircularProgressProps extends HTMLAttributes<HTMLDivElement> {\n /** 0–100, or omit for an indeterminate ring. */\n value?: number;\n label?: ReactNode;\n /** States what is progressing, for assistive tech. */\n description?: string;\n}\n\nexport const CircularProgress = forwardRef<HTMLDivElement, CircularProgressProps>(\n function CircularProgress({ value, label, description, className, style, ...rest }, ref) {\n return (\n <div className=\"b-circular-wrap\">\n <div\n ref={ref}\n className={cn(\"b-circular\", className)}\n style={{ ...(value === undefined ? null : { [\"--b-progress\" as string]: value }), ...style }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={value === undefined ? undefined : 0}\n aria-valuemax={value === undefined ? undefined : 100}\n aria-label={description}\n {...rest}\n >\n {label ? <div className=\"b-circular__label\">{label}</div> : null}\n </div>\n </div>\n );\n }\n);\n\nexport interface AxisProps extends HTMLAttributes<HTMLDivElement> {\n /** Value axis rather than the category one. */\n y?: boolean;\n /** Tick labels, in order. */\n ticks?: ReactNode[];\n children?: ReactNode;\n}\n\nexport const Axis = forwardRef<HTMLDivElement, AxisProps>(function Axis(\n { y, ticks, className, children, ...rest },\n ref\n) {\n return (\n <div ref={ref} className={cn(\"b-axis\", y && \"b-axis--y\", className)} aria-hidden=\"true\" {...rest}>\n {ticks ? ticks.map((tick, i) => <span key={i}>{tick}</span>) : children}\n </div>\n );\n});\n\nexport const RadarChart = block(\"svg\", \"b-radar-svg\", \"RadarChart\");\nexport const LineChart = block(\"svg\", \"b-line-svg\", \"LineChart\");\nexport const AreaChart = block(\"svg\", \"b-area-svg\", \"AreaChart\");\nexport const ScatterChart = block(\"svg\", \"b-scatter-svg\", \"ScatterChart\");\nexport const GridLines = block(\"div\", \"b-gridlines\", \"GridLines\");\n\n/* ---- Navigation leftovers ------------------------------------------------ */\n\nexport const MenuBar = block(\"div\", \"b-menubar\", \"MenuBar\");\nexport const MenuBarItem = block(\"button\", \"b-menubar__item\", \"MenuBarItem\");\nexport const PaginationEllipsis = block(\"span\", \"b-pagination__ellipsis\", \"PaginationEllipsis\");\n\nexport interface PaginationProps extends HTMLAttributes<HTMLElement> {\n label?: string;\n children?: ReactNode;\n}\n\nexport const Pagination = forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { label = \"Pagination\", className, children, ...rest },\n ref\n) {\n return (\n <nav ref={ref} aria-label={label} {...rest}>\n <ul className={cn(\"b-pagination\", className)}>{children}</ul>\n </nav>\n );\n});\n\nexport interface PaginationItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n current?: boolean;\n children?: ReactNode;\n}\n\nexport const PaginationItem = forwardRef<HTMLAnchorElement, PaginationItemProps>(\n function PaginationItem({ current, className, children, ...rest }, ref) {\n return (\n <li>\n <a\n ref={ref}\n className={cn(\"b-pagination__item\", current && \"is-active\", className)}\n aria-current={current ? \"page\" : undefined}\n {...rest}\n >\n {children}\n </a>\n </li>\n );\n }\n);\n\nexport interface LiquidToggleProps extends HTMLAttributes<HTMLButtonElement> {\n pressed?: boolean;\n children?: ReactNode;\n}\n\nexport const LiquidToggle = forwardRef<HTMLButtonElement, LiquidToggleProps>(function LiquidToggle(\n { pressed, className, children, ...rest },\n ref\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"b-liquid-toggle\", className)}\n aria-pressed={pressed}\n {...rest}\n >\n {children}\n </button>\n );\n});\n\n/* ---- Command centre ------------------------------------------------------ */\n\nexport const CommandCenterTile = block(\"div\", \"b-cc__tile\", \"CommandCenterTile\");\nexport const CommandCenterLabel = block(\"div\", \"b-cc__label\", \"CommandCenterLabel\");\nexport const CommandCenterStatus = block(\"div\", \"b-cc__status\", \"CommandCenterStatus\");\nexport const ImageLens = block(\"div\", \"b-lens\", \"ImageLens\");\n"],"mappings":"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","names":["createContext","useContext","useEffect","jsx","createContext","useEffect","useContext","jsx","Button","block","ButtonLink","Fab","forwardRef","useRef","jsx","jsxs","forwardRef","Input","Textarea","Select","Checkbox","Radio","Switch","Slider","useRef","_","forwardRef","jsx","jsxs","forwardRef","Card","jsx","jsxs","useEffect","useRef","jsx","jsxs","useRef","useEffect","useId","jsx","block","useId","forwardRef","jsx","jsxs","forwardRef","Icon","forwardRef","forwardRef","forwardRef","jsx","forwardRef","Stack","Tag","HStack","Grid","Container","ScrollArea","Divider","Span","Sidebar","SidebarItem","Fragment","forwardRef","jsx","jsxs","forwardRef","Text","Quote","CodeBlock","DescriptionList","Fragment","forwardRef","jsx","jsxs","forwardRef","Table","TableSortHeader","Gauge","Donut","Sparkline","Legend","Columns","Bars","forwardRef","jsx","jsxs","forwardRef","Tag","Steps","Drawer","Menu","MenuItem","Dropdown","forwardRef","useId","jsx","jsxs","forwardRef","FormSection","Label","InputGroup","StepperInput","Range","useId","Dropzone","UploadItem","FilterChip","forwardRef","jsx","jsxs","forwardRef","KanbanColumn","Task","TreeItem","Timeline","FileTile","forwardRef","jsx","jsxs","forwardRef","Chapter","Hero","Figure","FeatureRow","PromoBand","forwardRef","jsx","jsxs","forwardRef","AuthCard","Result","SysPage","Banner","forwardRef","jsx","jsxs","forwardRef","CommandPalette","CommandInput","CommandItem","forwardRef","jsx","jsxs","forwardRef","ButtonGroup","SplitButton","ToggleButton","Disclosure","CalendarDay","Event","ComboboxOption","SearchResult","Lightbox","Rail","Account","OnboardingFeature","forwardRef","jsx","jsxs","forwardRef","Thumb","CircularProgress","Axis","Pagination","PaginationItem","LiquidToggle"]}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "barua-ui",
3
+ "version": "0.2.0",
4
+ "description": "Barua UI \u2014 Apple-DNA design system (glass materials, Barua blue) as React components over pure CSS.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": [
8
+ "*.css"
9
+ ],
10
+ "main": "./dist/index.cjs",
11
+ "module": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js",
17
+ "require": "./dist/index.cjs"
18
+ },
19
+ "./css": "./css/barua.css",
20
+ "./css/*": "./css/*"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "css",
25
+ "README.md"
26
+ ],
27
+ "scripts": {
28
+ "copy:css": "rm -rf css && cp -R ../../css css",
29
+ "build": "npm run copy:css && tsup",
30
+ "typecheck": "tsc --noEmit",
31
+ "prepack": "npm run build"
32
+ },
33
+ "peerDependencies": {
34
+ "react": ">=18",
35
+ "react-dom": ">=18"
36
+ },
37
+ "devDependencies": {
38
+ "@types/react": "^18.3.12",
39
+ "@types/react-dom": "^18.3.1",
40
+ "react": "^18.3.1",
41
+ "react-dom": "^18.3.1",
42
+ "tsup": "^8.3.5",
43
+ "typescript": "^5.6.3"
44
+ },
45
+ "keywords": [
46
+ "react",
47
+ "design-system",
48
+ "ui",
49
+ "css",
50
+ "components",
51
+ "glass",
52
+ "apple",
53
+ "hig",
54
+ "light-dark",
55
+ "accessible"
56
+ ],
57
+ "homepage": "https://ui.barua.tz",
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "git+https://github.com/nassdaq/barua-ui.git",
61
+ "directory": "packages/react"
62
+ },
63
+ "bugs": {
64
+ "url": "https://github.com/nassdaq/barua-ui/issues"
65
+ }
66
+ }