@conscia-labs/design-system 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.
- package/LICENSE +21 -0
- package/README.md +488 -0
- package/dist/card-DqFHjLjm.d.ts +22 -0
- package/dist/chunk-5MGPU2JE.js +1764 -0
- package/dist/chunk-5MGPU2JE.js.map +1 -0
- package/dist/chunk-CU3OXBFI.js +664 -0
- package/dist/chunk-CU3OXBFI.js.map +1 -0
- package/dist/chunk-D5LYROOM.js +15 -0
- package/dist/chunk-D5LYROOM.js.map +1 -0
- package/dist/chunk-JU5DQXFC.js +11 -0
- package/dist/chunk-JU5DQXFC.js.map +1 -0
- package/dist/chunk-OX4SN5WX.js +1 -0
- package/dist/chunk-OX4SN5WX.js.map +1 -0
- package/dist/chunk-YHPZ5CQU.js +937 -0
- package/dist/chunk-YHPZ5CQU.js.map +1 -0
- package/dist/foundation/index.d.ts +7 -0
- package/dist/foundation/index.js +12 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/foundation.css +432 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +355 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns/index.d.ts +317 -0
- package/dist/patterns/index.js +109 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/primitives/index.d.ts +239 -0
- package/dist/primitives/index.js +244 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/standalone.css +2 -0
- package/dist/styles.css +432 -0
- package/dist/tailwind.css +8 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +150 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/patterns/pagination.tsx","../src/patterns/data-table.tsx","../src/patterns/entity-table.tsx","../src/patterns/detail-back-link.tsx","../src/patterns/app-shell.tsx","../src/patterns/activity-list.tsx","../src/patterns/confirmation-dialog.tsx","../src/patterns/code-block.tsx","../src/patterns/inventory-surface.tsx","../src/patterns/metric-band.tsx","../src/patterns/page-header.tsx","../src/patterns/page-toolbar.tsx","../src/patterns/preference-controls.tsx","../src/patterns/provider-mark.tsx","../src/patterns/resource-detail.tsx","../src/patterns/sidebar-navigation.tsx","../src/patterns/state-views.tsx","../src/patterns/value-meter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nimport { Button } from \"../primitives/button\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"../primitives/select\";\nimport { cn } from \"../primitives/utils\";\n\ntype PaginationControlsProps = React.ComponentProps<\"div\"> & {\n currentPage: number;\n pageCount: number;\n totalLabel?: React.ReactNode;\n onPrevious?: () => void;\n onNext?: () => void;\n onPageChange?: (page: number) => void;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (pageSize: number) => void;\n};\n\nfunction PaginationControls({\n currentPage,\n pageCount,\n totalLabel,\n onPrevious,\n onNext,\n onPageChange,\n pageSize,\n pageSizeOptions = [10, 25, 50],\n onPageSizeChange,\n className,\n ...props\n}: PaginationControlsProps) {\n return (\n <div\n data-slot=\"pagination-controls\"\n className={cn(\"flex flex-col gap-2 border-t border-border-subtle px-5 py-3 text-sm text-muted-foreground sm:flex-row sm:items-center sm:justify-between\", className)}\n {...props}\n >\n <div className=\"flex flex-wrap items-center gap-3\">\n <span>{totalLabel}</span>\n {pageSize && onPageSizeChange ? (\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[var(--ds-metadata)]\">Rows</span>\n <Select value={String(pageSize)} onValueChange={(value) => onPageSizeChange(Number(value))}>\n <SelectTrigger size=\"sm\" className=\"w-[4.5rem]\" aria-label=\"Rows per page\"><SelectValue /></SelectTrigger>\n <SelectContent>{pageSizeOptions.map((size) => <SelectItem key={size} value={String(size)}>{size}</SelectItem>)}</SelectContent>\n </Select>\n </div>\n ) : null}\n </div>\n <div className=\"flex items-center gap-1\">\n <Button type=\"button\" variant=\"outline\" size=\"icon\" className=\"size-8\" aria-label=\"Previous page\" onClick={onPrevious ?? (() => onPageChange?.(currentPage - 1))} disabled={currentPage <= 1}><ChevronLeft /></Button>\n {onPageChange ? pageItems(currentPage, pageCount).map((item, index) => item === \"ellipsis\" ? (\n <span key={`ellipsis-${index}`} className=\"flex size-8 items-center justify-center text-muted-foreground\" aria-hidden=\"true\">…</span>\n ) : (\n <Button type=\"button\" key={item} variant={item === currentPage ? \"secondary\" : \"ghost\"} size=\"icon\" className=\"size-8\" aria-label={`Page ${item}`} aria-current={item === currentPage ? \"page\" : undefined} onClick={() => onPageChange(item)}>{item}</Button>\n )) : <span className=\"px-2 text-[var(--ds-metadata)]\">Page {currentPage} of {pageCount}</span>}\n <Button type=\"button\" variant=\"outline\" size=\"icon\" className=\"size-8\" aria-label=\"Next page\" onClick={onNext ?? (() => onPageChange?.(currentPage + 1))} disabled={currentPage >= pageCount}><ChevronRight /></Button>\n </div>\n </div>\n );\n}\n\nfunction pageItems(currentPage: number, pageCount: number): Array<number | \"ellipsis\"> {\n if (pageCount <= 7) return Array.from({ length: pageCount }, (_, index) => index + 1);\n const pages = new Set([1, pageCount, currentPage - 1, currentPage, currentPage + 1]);\n const sorted = Array.from(pages).filter((page) => page > 0 && page <= pageCount).sort((a, b) => a - b);\n const result: Array<number | \"ellipsis\"> = [];\n sorted.forEach((page, index) => {\n if (index && page - sorted[index - 1]! > 1) result.push(\"ellipsis\");\n result.push(page);\n });\n return result;\n}\n\nexport { PaginationControls };\nexport type { PaginationControlsProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type ColumnDef,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type SortingState,\n} from \"@tanstack/react-table\";\nimport { ArrowDown, ArrowUp, ChevronsUpDown } from \"lucide-react\";\n\nimport { Button } from \"../primitives/button\";\nimport { Checkbox } from \"../primitives/checkbox\";\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"../primitives/table\";\nimport { cn } from \"../primitives/utils\";\nimport { PaginationControls } from \"./pagination\";\n\ntype DataTableColumn<TData> = {\n id: string;\n header: React.ReactNode;\n cell: (item: TData) => React.ReactNode;\n accessor?: (item: TData) => string | number | null | undefined;\n sortable?: boolean;\n className?: string;\n};\n\ntype DataTableProps<TData> = {\n data: TData[];\n columns: DataTableColumn<TData>[];\n getRowId: (item: TData) => string;\n getRowLabel?: (item: TData) => string;\n onRowClick?: (item: TData) => void;\n isRowClickable?: (item: TData) => boolean;\n rowActions?: (item: TData) => React.ReactNode;\n selectedIds?: Set<string>;\n onSelectionChange?: (selectedIds: Set<string>) => void;\n sorting?: SortingState;\n onSortingChange?: (sorting: SortingState) => void;\n manualSorting?: boolean;\n pagination?: PaginationState;\n onPaginationChange?: (pagination: PaginationState) => void;\n manualPagination?: boolean;\n pageCount?: number;\n rowCount?: number;\n pageSizeOptions?: number[];\n totalLabel?: React.ReactNode;\n mobileRow?: (item: TData) => React.ReactNode;\n empty?: React.ReactNode;\n className?: string;\n};\n\nfunction DataTable<TData>({\n data,\n columns,\n getRowId,\n getRowLabel,\n onRowClick,\n isRowClickable,\n rowActions,\n selectedIds,\n onSelectionChange,\n sorting,\n onSortingChange,\n manualSorting = false,\n pagination,\n onPaginationChange,\n manualPagination = false,\n pageCount,\n rowCount,\n pageSizeOptions,\n totalLabel,\n mobileRow,\n empty,\n className,\n}: DataTableProps<TData>) {\n const rowSelection = React.useMemo<RowSelectionState>(() => {\n const selection: RowSelectionState = {};\n selectedIds?.forEach((id) => { selection[id] = true; });\n return selection;\n }, [selectedIds]);\n\n const tableColumns = React.useMemo<ColumnDef<TData>[]>(() => {\n const result: ColumnDef<TData>[] = [];\n if (onSelectionChange) {\n result.push({\n id: \"select\",\n enableSorting: false,\n header: ({ table }) => (\n <Checkbox\n aria-label=\"Select all rows on this page\"\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && \"indeterminate\")}\n onCheckedChange={(checked) => table.toggleAllPageRowsSelected(Boolean(checked))}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n aria-label={`Select ${getRowLabel?.(row.original) ?? row.id}`}\n checked={row.getIsSelected()}\n onCheckedChange={(checked) => row.toggleSelected(Boolean(checked))}\n onClick={(event) => event.stopPropagation()}\n />\n ),\n meta: { className: \"w-10\" },\n });\n }\n result.push(...columns.map((column): ColumnDef<TData> => ({\n id: column.id,\n ...(column.accessor ? { accessorFn: column.accessor } : {}),\n enableSorting: column.sortable ?? false,\n header: () => column.header,\n cell: ({ row }: { row: Row<TData> }) => column.cell(row.original),\n meta: { className: column.className, label: typeof column.header === \"string\" ? column.header : column.id },\n })));\n if (rowActions) {\n result.push({\n id: \"actions\",\n enableSorting: false,\n header: \"Actions\",\n cell: ({ row }) => (\n <div\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n >\n {rowActions(row.original)}\n </div>\n ),\n meta: { className: \"w-12 text-right\" },\n });\n }\n return result;\n }, [columns, getRowLabel, onSelectionChange, rowActions]);\n\n // TanStack Table intentionally returns a mutable table instance; React Compiler skips this hook.\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n data,\n columns: tableColumns,\n getRowId: (row) => getRowId(row),\n state: { rowSelection, ...(sorting ? { sorting } : {}), ...(pagination ? { pagination } : {}) },\n enableRowSelection: Boolean(onSelectionChange),\n onRowSelectionChange: (updater) => {\n if (!onSelectionChange) return;\n const next = typeof updater === \"function\" ? updater(rowSelection) : updater;\n onSelectionChange(new Set(Object.keys(next).filter((id) => next[id])));\n },\n onSortingChange: (updater) => {\n if (!onSortingChange) return;\n onSortingChange(typeof updater === \"function\" ? updater(sorting ?? []) : updater);\n },\n onPaginationChange: (updater) => {\n if (!onPaginationChange || !pagination) return;\n onPaginationChange(typeof updater === \"function\" ? updater(pagination) : updater);\n },\n manualSorting,\n manualPagination,\n pageCount,\n rowCount,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: manualSorting ? undefined : getSortedRowModel(),\n getPaginationRowModel: pagination && !manualPagination ? getPaginationRowModel() : undefined,\n });\n\n if (!data.length && empty) return <>{empty}</>;\n\n const visibleRows = table.getRowModel().rows;\n const showPagination = Boolean(pagination && onPaginationChange);\n\n return (\n <div data-slot=\"data-table\" className={cn(\"bg-background\", className)}>\n <div className={mobileRow ? \"hidden md:block\" : undefined}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const meta = header.column.columnDef.meta as { className?: string; label?: string } | undefined;\n const canSort = header.column.getCanSort();\n const sorted = header.column.getIsSorted();\n return (\n <TableHead\n key={header.id}\n className={meta?.className}\n aria-sort={\n canSort\n ? sorted === \"asc\"\n ? \"ascending\"\n : sorted === \"desc\"\n ? \"descending\"\n : \"none\"\n : undefined\n }\n >\n {header.isPlaceholder ? null : canSort ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-2 h-8 gap-1.5 px-2 text-[var(--ds-metadata)] font-semibold uppercase text-muted-foreground hover:text-foreground\"\n onClick={header.column.getToggleSortingHandler()}\n aria-label={`Sort by ${meta?.label ?? header.column.id}`}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {sorted === \"asc\" ? <ArrowUp className=\"size-3.5\" /> : sorted === \"desc\" ? <ArrowDown className=\"size-3.5\" /> : <ChevronsUpDown className=\"size-3.5 opacity-60\" />}\n </Button>\n ) : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {visibleRows.map((row) => {\n const rowClickable = Boolean(\n onRowClick && (isRowClickable?.(row.original) ?? true),\n );\n return (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() ? \"selected\" : undefined}\n tabIndex={rowClickable ? 0 : undefined}\n aria-label={rowClickable ? getRowLabel?.(row.original) ?? row.id : undefined}\n className={cn(rowClickable && \"cursor-pointer outline-none focus-visible:ring-[3px] focus-visible:ring-ring/45\")}\n onClick={() => {\n if (rowClickable) onRowClick?.(row.original);\n }}\n onKeyDown={(event) => {\n if (!rowClickable || (event.key !== \"Enter\" && event.key !== \" \")) return;\n event.preventDefault();\n onRowClick?.(row.original);\n }}\n >\n {row.getVisibleCells().map((cell) => {\n const meta = cell.column.columnDef.meta as { className?: string } | undefined;\n return <TableCell key={cell.id} className={meta?.className}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>;\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </div>\n {mobileRow ? (\n <div className=\"divide-y divide-border-subtle md:hidden\" role=\"list\">\n {visibleRows.map((row) => <div key={row.id} role=\"listitem\">{mobileRow(row.original)}</div>)}\n </div>\n ) : null}\n {showPagination ? (\n <PaginationControls\n currentPage={pagination!.pageIndex + 1}\n pageCount={Math.max(1, table.getPageCount())}\n pageSize={pagination!.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalLabel={totalLabel}\n onPageChange={(nextPage) => table.setPageIndex(nextPage - 1)}\n onPageSizeChange={(nextSize) => table.setPageSize(nextSize)}\n />\n ) : null}\n </div>\n );\n}\n\nexport { DataTable };\nexport type { DataTableColumn, DataTableProps, PaginationState, SortingState };\n","import * as React from \"react\";\n\nimport { DataTable, type DataTableColumn } from \"./data-table\";\n\ntype EntityTableColumn<T> = {\n key: string;\n header: React.ReactNode;\n cell: (item: T) => React.ReactNode;\n className?: string;\n};\n\ntype EntityTableProps<T> = {\n items: T[];\n columns: EntityTableColumn<T>[];\n getRowId: (item: T) => string;\n selectedIds?: Set<string>;\n onSelectionChange?: (selectedIds: Set<string>) => void;\n onRowClick?: (item: T) => void;\n getRowLabel?: (item: T) => string;\n rowActions?: (item: T) => React.ReactNode;\n className?: string;\n};\n\nfunction EntityTable<T>({\n items,\n columns,\n getRowId,\n selectedIds,\n onSelectionChange,\n onRowClick,\n getRowLabel,\n rowActions,\n className\n}: EntityTableProps<T>) {\n return (\n <DataTable\n data={items}\n columns={columns.map((column): DataTableColumn<T> => ({ ...column, id: column.key }))}\n getRowId={getRowId}\n selectedIds={selectedIds}\n onSelectionChange={onSelectionChange}\n onRowClick={onRowClick}\n getRowLabel={getRowLabel}\n rowActions={rowActions}\n className={className}\n />\n );\n}\n\nexport { EntityTable };\nexport type { EntityTableColumn, EntityTableProps };\n","import * as React from \"react\";\nimport { ArrowLeft } from \"lucide-react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype DetailBackLinkProps = Omit<React.ComponentProps<\"a\">, \"children\"> & {\n label: string;\n};\n\nfunction DetailBackLink({ label, className, ...props }: DetailBackLinkProps) {\n return (\n <a\n data-slot=\"detail-back-link\"\n className={cn(\n \"inline-flex h-8 w-fit items-center gap-2 rounded-md px-2 text-sm font-medium text-muted-foreground outline-none transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/45\",\n className,\n )}\n {...props}\n >\n <ArrowLeft className=\"size-4\" aria-hidden=\"true\" />\n {label}\n </a>\n );\n}\n\nexport { DetailBackLink };\nexport type { DetailBackLinkProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PanelLeftIcon } from \"lucide-react\";\n\nimport { Button } from \"../primitives/button\";\nimport { Separator } from \"../primitives/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"../primitives/sheet\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../primitives/tooltip\";\nimport { cn } from \"../primitives/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"conscia_sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 30;\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\nconst SIDEBAR_STORAGE_KEY = \"conscia-sidebar-open:v1\";\nconst SIDEBAR_STATE_CHANGE_EVENT = \"conscia-sidebar-state-change\";\n\nfunction parseSidebarOpen(value: string | null) {\n return value === \"true\" ? true : value === \"false\" ? false : null;\n}\n\nfunction readPersistedSidebarOpen() {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n try {\n const storedValue = window.localStorage.getItem(SIDEBAR_STORAGE_KEY);\n const storedSidebarOpen = parseSidebarOpen(storedValue);\n\n if (storedSidebarOpen !== null) {\n return storedSidebarOpen;\n }\n } catch {\n // Fall back to the cookie when storage is unavailable.\n }\n\n const cookie = document.cookie\n .split(\"; \")\n .find((entry) => entry.startsWith(`${SIDEBAR_COOKIE_NAME}=`));\n\n if (!cookie) {\n return null;\n }\n\n const value = cookie.slice(SIDEBAR_COOKIE_NAME.length + 1);\n\n return parseSidebarOpen(value);\n}\n\nfunction persistSidebarOpen(open: boolean) {\n try {\n window.localStorage.setItem(SIDEBAR_STORAGE_KEY, String(open));\n } catch {\n // The cookie still preserves the preference when storage is unavailable.\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n window.dispatchEvent(new Event(SIDEBAR_STATE_CHANGE_EVENT));\n}\n\nfunction subscribeToSidebarOpen(onStoreChange: () => void) {\n function onStorage(event: StorageEvent) {\n if (event.key === SIDEBAR_STORAGE_KEY) {\n onStoreChange();\n }\n }\n\n window.addEventListener(SIDEBAR_STATE_CHANGE_EVENT, onStoreChange);\n window.addEventListener(\"storage\", onStorage);\n\n return () => {\n window.removeEventListener(SIDEBAR_STATE_CHANGE_EVENT, onStoreChange);\n window.removeEventListener(\"storage\", onStorage);\n };\n}\n\ntype AppShellContextValue = {\n sidebarState: \"expanded\" | \"collapsed\";\n sidebarSide: \"left\" | \"right\";\n setSidebarSide: (side: \"left\" | \"right\") => void;\n sidebarOpen: boolean;\n setSidebarOpen: (open: boolean) => void;\n mobileOpen: boolean;\n setMobileOpen: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst AppShellContext = React.createContext<AppShellContextValue | null>(null);\n\nfunction useAppShell() {\n const context = React.useContext(AppShellContext);\n\n if (!context) {\n throw new Error(\"useAppShell must be used within AppShell.\");\n }\n\n return context;\n}\n\nfunction useMediaQuery(query: string) {\n const [matches, setMatches] = React.useState(false);\n\n React.useEffect(() => {\n const media = window.matchMedia(query);\n const sync = () => setMatches(media.matches);\n\n sync();\n media.addEventListener(\"change\", sync);\n return () => media.removeEventListener(\"change\", sync);\n }, [query]);\n\n return matches;\n}\n\nfunction AppShell({\n defaultSidebarOpen = true,\n children,\n className,\n style,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultSidebarOpen?: boolean;\n}) {\n const isMobile = useMediaQuery(\"(max-width: 1023px)\");\n const [sidebarOpen, setSidebarOpenState] = React.useState(defaultSidebarOpen);\n const [sidebarSide, setSidebarSide] = React.useState<\"left\" | \"right\">(\"left\");\n const [mobileOpen, setMobileOpen] = React.useState(false);\n\n React.useEffect(() => {\n function syncSidebarOpen() {\n setSidebarOpenState(readPersistedSidebarOpen() ?? defaultSidebarOpen);\n }\n\n const unsubscribe = subscribeToSidebarOpen(syncSidebarOpen);\n queueMicrotask(syncSidebarOpen);\n\n return unsubscribe;\n }, [defaultSidebarOpen]);\n\n const setSidebarOpen = React.useCallback((open: boolean) => {\n persistSidebarOpen(open);\n }, []);\n\n const toggleSidebar = React.useCallback(() => {\n if (isMobile) {\n setMobileOpen((current) => !current);\n return;\n }\n\n persistSidebarOpen(!sidebarOpen);\n }, [isMobile, sidebarOpen]);\n\n React.useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (\n event.key.toLowerCase() === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [toggleSidebar]);\n\n const contextValue = React.useMemo<AppShellContextValue>(\n () => ({\n sidebarState: sidebarOpen ? \"expanded\" : \"collapsed\",\n sidebarSide,\n setSidebarSide,\n sidebarOpen,\n setSidebarOpen,\n mobileOpen,\n setMobileOpen,\n isMobile,\n toggleSidebar,\n }),\n [\n isMobile,\n mobileOpen,\n setSidebarOpen,\n sidebarOpen,\n sidebarSide,\n toggleSidebar,\n ],\n );\n\n return (\n <AppShellContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={120}>\n <div\n data-slot=\"app-shell\"\n data-sidebar-state={sidebarOpen ? \"expanded\" : \"collapsed\"}\n data-sidebar-side={sidebarSide}\n suppressHydrationWarning\n className={cn(\n \"group/shell min-h-svh bg-canvas text-foreground\",\n \"[--ds-app-sidebar-width:16rem] [--ds-app-sidebar-width-mobile:18rem] data-[sidebar-state=collapsed]:[--ds-app-sidebar-width:3.5rem]\",\n className,\n )}\n style={style}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </AppShellContext.Provider>\n );\n}\n\nfunction AppSidebar({\n side = \"left\",\n className,\n children,\n title = \"Application navigation\",\n description = \"Primary product navigation.\",\n ...props\n}: React.ComponentProps<\"aside\"> & {\n side?: \"left\" | \"right\";\n title?: string;\n description?: string;\n}) {\n const { mobileOpen, setMobileOpen, setSidebarSide } = useAppShell();\n\n React.useEffect(() => {\n setSidebarSide(side);\n }, [setSidebarSide, side]);\n\n return (\n <>\n <Sheet open={mobileOpen} onOpenChange={setMobileOpen}>\n <SheetContent\n side={side}\n className=\"w-72 border-sidebar-border bg-sidebar p-0 text-sidebar-foreground [&>[data-slot=sheet-close]]:right-3 [&>[data-slot=sheet-close]]:top-3 [&>[data-slot=sheet-close]]:text-sidebar-foreground/64 [&>[data-slot=sheet-close]]:hover:text-sidebar-foreground\"\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>{title}</SheetTitle>\n <SheetDescription>{description}</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full min-h-0 flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n\n <aside\n data-slot=\"app-sidebar\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-20 hidden w-[var(--ds-app-sidebar-width)] shrink-0 flex-col border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200 ease-linear lg:flex\",\n side === \"left\" ? \"left-0 border-r\" : \"right-0 border-l\",\n \"group-data-[sidebar-state=collapsed]/shell:w-[var(--ds-app-sidebar-width)]\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n </>\n );\n}\n\nfunction AppSidebarHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"app-sidebar-header\"\n className={cn(\n \"flex min-h-14 shrink-0 items-center border-b border-sidebar-border px-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AppSidebarContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"app-sidebar-content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-[var(--ds-space-control)] overflow-y-auto px-2.5 py-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AppSidebarFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"app-sidebar-footer\"\n className={cn(\n \"mt-auto flex shrink-0 flex-col gap-2 border-t border-sidebar-border p-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ProductIdentity({\n label,\n description,\n icon,\n className,\n}: {\n label: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n className?: string;\n}) {\n return (\n <div\n data-slot=\"product-identity\"\n className={cn(\"flex min-w-0 items-center gap-2\", className)}\n >\n {icon ? (\n <div className=\"flex size-7 shrink-0 items-center justify-center rounded-[var(--ds-radius-control)] bg-sidebar-accent text-sidebar-foreground\">\n {icon}\n </div>\n ) : null}\n <div className=\"min-w-0 group-data-[sidebar-state=collapsed]/shell:hidden\">\n <div className=\"truncate text-sm font-semibold leading-5 text-sidebar-foreground\">\n {label}\n </div>\n {description ? (\n <div className=\"truncate text-[var(--ds-metadata)] leading-4 text-sidebar-foreground/62\">\n {description}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"app-sidebar-separator\"\n className={cn(\"bg-sidebar-border\", className)}\n {...props}\n />\n );\n}\n\nfunction NavigationGroup({\n label,\n children,\n className,\n}: {\n label?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <section\n data-slot=\"navigation-group\"\n className={cn(\"flex min-w-0 flex-col gap-1\", className)}\n >\n {label ? (\n <div className=\"px-2 pb-1 pt-2 text-[0.6875rem] font-medium uppercase tracking-normal text-sidebar-foreground/52 group-data-[sidebar-state=collapsed]/shell:hidden\">\n {label}\n </div>\n ) : null}\n <div className=\"flex min-w-0 flex-col gap-1\">{children}</div>\n </section>\n );\n}\n\nfunction navigationItemClasses(active?: boolean) {\n return cn(\n \"flex h-11 min-w-0 items-center gap-2 rounded-[var(--ds-radius-control)] px-2 text-sm font-medium text-sidebar-foreground/78 outline-none transition-colors duration-150 lg:h-[var(--ds-sidebar-item-height)]\",\n \"hover:bg-sidebar-accent hover:text-sidebar-foreground\",\n \"focus-visible:ring-[3px] focus-visible:ring-ring/35\",\n \"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"group-data-[sidebar-state=collapsed]/shell:justify-center group-data-[sidebar-state=collapsed]/shell:px-0\",\n \"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75]\",\n active &&\n \"bg-sidebar-active text-sidebar-active-foreground shadow-[inset_2px_0_0_var(--sidebar-active-indicator)] hover:bg-sidebar-active hover:text-sidebar-active-foreground\",\n );\n}\n\nfunction NavigationItem({\n asChild = false,\n active = false,\n tooltip,\n type,\n className,\n children,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n active?: boolean;\n tooltip?: string;\n}) {\n const Comp = asChild ? Slot : \"button\";\n const { sidebarState, sidebarSide, isMobile } = useAppShell();\n const item = (\n <Comp\n data-slot=\"navigation-item\"\n data-active={active ? \"true\" : undefined}\n type={asChild ? undefined : (type ?? \"button\")}\n className={cn(navigationItemClasses(active), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n\n if (!tooltip) {\n return item;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{item}</TooltipTrigger>\n <TooltipContent\n side={sidebarSide === \"left\" ? \"right\" : \"left\"}\n align=\"center\"\n hidden={sidebarState !== \"collapsed\" || isMobile}\n >\n {tooltip}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nfunction NavigationSubItem({\n asChild = false,\n active = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n active?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"navigation-sub-item\"\n data-active={active ? \"true\" : undefined}\n className={cn(\n \"flex h-11 min-w-0 items-center gap-2 rounded-[var(--ds-radius-control)] px-2 text-sm text-sidebar-foreground/72 outline-none transition-colors duration-150 lg:h-[calc(var(--ds-sidebar-item-height)-0.25rem)]\",\n \"hover:bg-sidebar-accent hover:text-sidebar-foreground focus-visible:ring-[3px] focus-visible:ring-ring/35\",\n \"group-data-[sidebar-state=collapsed]/shell:hidden [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75]\",\n active &&\n \"bg-sidebar-active text-sidebar-active-foreground shadow-[inset_2px_0_0_var(--sidebar-active-indicator)] hover:bg-sidebar-active hover:text-sidebar-active-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationSubList({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"navigation-sub-list\"\n className={cn(\n \"ml-4 flex min-w-0 flex-col gap-1 border-l border-sidebar-border pl-2 group-data-[sidebar-state=collapsed]/shell:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useAppShell();\n\n return (\n <Button\n data-slot=\"sidebar-trigger\"\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"shrink-0\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle navigation</span>\n </Button>\n );\n}\n\nfunction MainRegion({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"main-region\"\n className={cn(\n \"flex min-h-svh min-w-0 w-full flex-1 flex-col transition-[padding] duration-200 ease-linear\",\n \"group-data-[sidebar-side=left]/shell:lg:pl-[var(--ds-app-sidebar-width)] group-data-[sidebar-side=right]/shell:lg:pr-[var(--ds-app-sidebar-width)]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TopBar({\n className,\n ...props\n}: React.ComponentProps<\"header\">) {\n return (\n <header\n data-slot=\"top-bar\"\n className={cn(\n \"sticky top-0 z-10 flex min-h-14 shrink-0 items-center justify-between gap-3 border-b border-border-subtle bg-background/96 px-3 backdrop-blur md:px-4\",\n \"supports-[backdrop-filter]:bg-background/88\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction PageFrame({\n width = \"full\",\n className,\n ...props\n}: React.ComponentProps<\"main\"> & {\n width?: \"full\" | \"wide\" | \"focused\" | \"reading\";\n}) {\n return (\n <main\n data-slot=\"page-frame\"\n data-width={width}\n className={cn(\n \"min-w-0 w-full flex-1 px-3 py-[var(--ds-space-section)] md:px-[var(--ds-space-page)]\",\n width === \"wide\" && \"mx-auto w-full max-w-[86rem]\",\n width === \"focused\" && \"mx-auto w-full max-w-[64rem]\",\n width === \"reading\" && \"mx-auto w-full max-w-[48rem]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction PageContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"page-content\"\n className={cn(\"flex min-w-0 flex-col gap-[var(--ds-space-section)]\", className)}\n {...props}\n />\n );\n}\n\nfunction PageBoundary({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"page-boundary\"\n className={cn(\n \"rounded-[var(--ds-radius-surface)] border border-border-subtle bg-surface p-[var(--ds-surface-padding)]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InspectorRegion({\n className,\n ...props\n}: React.ComponentProps<\"aside\">) {\n return (\n <aside\n data-slot=\"inspector-region\"\n className={cn(\n \"w-full border-l border-border-subtle bg-surface md:w-[20rem] xl:w-[24rem]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n AppShell,\n AppSidebar,\n AppSidebarContent,\n AppSidebarFooter,\n AppSidebarHeader,\n InspectorRegion,\n MainRegion,\n NavigationGroup,\n NavigationItem,\n NavigationSubItem,\n NavigationSubList,\n PageBoundary,\n PageContent,\n PageFrame,\n ProductIdentity,\n SidebarSeparator,\n SidebarTrigger,\n TopBar,\n useAppShell,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\nfunction ActivityList({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"activity-list\" className={cn(\"divide-y divide-border-subtle\", className)} {...props} />;\n}\n\ntype ActivityItemProps = React.ComponentProps<\"div\"> & {\n icon?: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n metadata?: React.ReactNode;\n status?: React.ReactNode;\n};\n\nfunction ActivityItem({ icon, title, description, metadata, status, className, ...props }: ActivityItemProps) {\n return (\n <div data-slot=\"activity-item\" className={cn(\"grid grid-cols-[auto_minmax(0,1fr)_auto] gap-3 py-3\", className)} {...props}>\n <div className=\"flex size-8 items-center justify-center rounded-md bg-neutral-background text-neutral-foreground [&_svg]:size-4\">\n {icon}\n </div>\n <div className=\"min-w-0\">\n <div className=\"text-sm font-medium text-foreground\">{title}</div>\n {description ? <div className=\"mt-0.5 text-sm text-muted-foreground\">{description}</div> : null}\n {metadata ? <div className=\"mt-1 text-[var(--ds-metadata)] text-muted-foreground\">{metadata}</div> : null}\n </div>\n {status ? <div className=\"shrink-0\">{status}</div> : null}\n </div>\n );\n}\n\nexport { ActivityItem, ActivityList };\nexport type { ActivityItemProps };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { Button } from \"../primitives/button\";\nimport { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"../primitives/dialog\";\n\ntype ConfirmationDialogProps = {\n trigger: React.ReactNode;\n title: React.ReactNode;\n description: React.ReactNode;\n children?: React.ReactNode;\n confirmLabel?: React.ReactNode;\n cancelLabel?: React.ReactNode;\n confirmVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n pending?: boolean;\n onConfirm: () => unknown | Promise<unknown>;\n onError?: (error: unknown) => void;\n};\n\nfunction ConfirmationDialog({ trigger, title, description, children, confirmLabel = \"Confirm\", cancelLabel = \"Cancel\", confirmVariant = \"destructive\", pending = false, onConfirm, onError }: ConfirmationDialogProps) {\n const [open, setOpen] = React.useState(false);\n const [confirming, setConfirming] = React.useState(false);\n const isPending = pending || confirming;\n\n async function confirm() {\n if (isPending) {\n return;\n }\n\n setConfirming(true);\n\n try {\n await onConfirm();\n setOpen(false);\n } catch (error) {\n onError?.(error);\n } finally {\n setConfirming(false);\n }\n }\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>{trigger}</DialogTrigger>\n <DialogContent size=\"small\">\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogBody>{children}</DialogBody>\n <DialogFooter>\n <DialogClose asChild>\n <Button type=\"button\" variant=\"outline\" disabled={isPending}>{cancelLabel}</Button>\n </DialogClose>\n <Button type=\"button\" variant={confirmVariant} disabled={isPending} onClick={confirm}>\n {isPending ? \"Working...\" : confirmLabel}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n\nexport { ConfirmationDialog };\nexport type { ConfirmationDialogProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, Copy } from \"lucide-react\";\n\nimport { Button } from \"../primitives/button\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../primitives/tabs\";\nimport { cn } from \"../primitives/utils\";\n\ntype CodeBlockSnippet = {\n value: string;\n label: string;\n code: string;\n};\n\ntype CodeBlockProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n snippets: CodeBlockSnippet[];\n defaultValue?: string;\n copyLabel?: string;\n};\n\nfunction CodeBlock({\n snippets,\n defaultValue,\n copyLabel = \"Copy code\",\n className,\n ...props\n}: CodeBlockProps) {\n const initialValue = defaultValue ?? snippets[0]?.value ?? \"\";\n const [activeValue, setActiveValue] = React.useState(initialValue);\n const [copiedValue, setCopiedValue] = React.useState<string | null>(null);\n const [copyError, setCopyError] = React.useState(false);\n const copyStatusId = React.useId();\n const activeSnippet =\n snippets.find((snippet) => snippet.value === activeValue) ?? snippets[0];\n\n if (!activeSnippet) return null;\n\n return (\n <div\n data-slot=\"code-block\"\n className={cn(\"overflow-hidden rounded-lg border border-border-subtle bg-surface\", className)}\n {...props}\n >\n <Tabs value={activeSnippet.value} onValueChange={setActiveValue} variant=\"segmented\" className=\"gap-0\">\n <div className=\"flex items-center justify-between gap-3 border-b border-border-subtle bg-surface-muted px-3 py-2\">\n <TabsList variant=\"segmented\" size=\"compact\" aria-label=\"Code language\">\n {snippets.map((snippet) => (\n <TabsTrigger key={snippet.value} value={snippet.value}>\n {snippet.label}\n </TabsTrigger>\n ))}\n </TabsList>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={async () => {\n try {\n await navigator.clipboard.writeText(activeSnippet.code);\n setCopiedValue(activeSnippet.value);\n setCopyError(false);\n } catch {\n setCopiedValue(null);\n setCopyError(true);\n }\n }}\n aria-describedby={copyStatusId}\n >\n {copiedValue === activeSnippet.value ? <Check /> : <Copy />}\n {copiedValue === activeSnippet.value ? \"Copied\" : copyLabel}\n </Button>\n <span id={copyStatusId} className=\"sr-only\" role=\"status\" aria-live=\"polite\">{copyError ? \"Code could not be copied. Select the code and copy it manually.\" : copiedValue === activeSnippet.value ? \"Code copied to clipboard.\" : \"\"}</span>\n </div>\n {snippets.map((snippet) => (\n <TabsContent key={snippet.value} value={snippet.value} className=\"m-0\">\n <pre className=\"max-h-[32rem] overflow-auto p-4 text-sm leading-6\">\n <code>{snippet.code}</code>\n </pre>\n </TabsContent>\n ))}\n </Tabs>\n </div>\n );\n}\n\nexport { CodeBlock };\nexport type { CodeBlockProps, CodeBlockSnippet };\n","import * as React from \"react\";\n\nimport { Card } from \"../primitives/card\";\nimport { cn } from \"../primitives/utils\";\n\nfunction InventorySurface({ className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <Card\n data-slot=\"inventory-surface\"\n className={cn(\"gap-0 overflow-hidden py-0\", className)}\n {...props}\n />\n );\n}\n\nfunction InventoryDesktop({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"inventory-desktop\" className={cn(\"hidden lg:block\", className)} {...props} />;\n}\n\nfunction InventoryMobile({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"inventory-mobile\" className={cn(\"divide-y divide-border-subtle lg:hidden\", className)} {...props} />;\n}\n\nexport { InventoryDesktop, InventoryMobile, InventorySurface };\n","import * as React from \"react\";\n\nimport { Skeleton } from \"../primitives/skeleton\";\nimport { cn } from \"../primitives/utils\";\n\ntype MetricBandProps = React.ComponentProps<\"div\"> & {\n columns?: 2 | 3 | 4 | 5;\n};\n\nfunction MetricBand({ columns = 4, className, ...props }: MetricBandProps) {\n return (\n <div\n data-slot=\"metric-band\"\n data-columns={columns}\n className={cn(\n \"grid grid-cols-2 border-b border-border-subtle\",\n columns === 2 && \"lg:grid-cols-2\",\n columns === 3 && \"lg:grid-cols-3\",\n columns === 4 && \"lg:grid-cols-4\",\n columns === 5 && \"lg:grid-cols-5\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype MetricBandItemProps = React.ComponentProps<\"div\"> & {\n label: React.ReactNode;\n value?: React.ReactNode;\n detail?: React.ReactNode;\n icon?: React.ReactNode;\n iconClassName?: string;\n loading?: boolean;\n};\n\nfunction MetricBandItem({\n label,\n value,\n detail,\n icon,\n iconClassName,\n loading = false,\n className,\n ...props\n}: MetricBandItemProps) {\n return (\n <div\n data-slot=\"metric-band-item\"\n className={cn(\n \"flex min-h-28 flex-col items-start gap-3 border-r border-border-subtle p-4 last:border-r-0 sm:flex-row sm:items-center sm:gap-4 sm:p-5\",\n \"[&:nth-child(-n+2)]:border-b lg:[&:nth-child(-n+2)]:border-b-0\",\n className,\n )}\n {...props}\n >\n {icon ? (\n <div\n className={cn(\n \"flex size-10 shrink-0 items-center justify-center rounded-md bg-neutral-background text-neutral-foreground [&_svg]:size-5\",\n iconClassName,\n )}\n >\n {icon}\n </div>\n ) : null}\n <div className=\"grid min-w-0 gap-1\">\n <div className=\"text-sm leading-snug text-muted-foreground\">{label}</div>\n {loading ? (\n <Skeleton className=\"h-7 w-14\" />\n ) : (\n <div className=\"text-2xl font-semibold tracking-tight\">{value ?? 0}</div>\n )}\n {detail ? (\n <div className=\"text-[var(--ds-metadata)] leading-snug text-muted-foreground\">\n {detail}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport { MetricBand, MetricBandItem };\nexport type { MetricBandItemProps, MetricBandProps };\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype PageHeaderProps = React.ComponentProps<\"header\"> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n status?: React.ReactNode;\n metadata?: React.ReactNode;\n actions?: React.ReactNode;\n /**\n * Temporary compatibility prop for migrated Admin UI pages.\n * New implementations should pass an explicit actions node.\n */\n action?: {\n label: string;\n href: string;\n };\n /**\n * Temporary compatibility prop for migrated Admin UI pages.\n * New implementations should use actions.\n */\n actionNode?: React.ReactNode;\n};\n\nfunction PageHeader({\n title,\n description,\n status,\n metadata,\n actions,\n action,\n actionNode,\n className,\n ...props\n}: PageHeaderProps) {\n const resolvedActions =\n actions ??\n actionNode ??\n (action ? (\n <a\n className=\"inline-flex h-[var(--ds-control-height)] items-center justify-center gap-2 whitespace-nowrap rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground shadow-xs outline-none transition-colors hover:bg-accent-hover focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\"\n href={action.href}\n >\n {action.label}\n </a>\n ) : null);\n\n return (\n <header\n data-slot=\"page-header\"\n className={cn(\"flex flex-col gap-3 border-b border-border-subtle bg-background px-5 py-4 lg:flex-row lg:items-start lg:justify-between\", className)}\n {...props}\n >\n <div className=\"min-w-0\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n <h1 className=\"truncate text-[length:var(--ds-page-title)] font-semibold leading-tight\">{title}</h1>\n {status}\n </div>\n {description ? <p className=\"mt-1 max-w-3xl text-sm text-muted-foreground\">{description}</p> : null}\n {metadata ? <div className=\"mt-2 text-[var(--ds-metadata)] text-muted-foreground\">{metadata}</div> : null}\n </div>\n {resolvedActions ? <div className=\"flex shrink-0 flex-wrap items-center gap-2\">{resolvedActions}</div> : null}\n </header>\n );\n}\n\nexport { PageHeader };\nexport type { PageHeaderProps };\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype PageToolbarProps = React.ComponentProps<\"div\"> & {\n search?: React.ReactNode;\n filters?: React.ReactNode;\n viewControls?: React.ReactNode;\n bulkActions?: React.ReactNode;\n};\n\nfunction PageToolbar({\n search,\n filters,\n viewControls,\n bulkActions,\n className,\n children,\n ...props\n}: PageToolbarProps) {\n return (\n <div\n data-slot=\"page-toolbar\"\n className={cn(\"grid gap-2 border-b border-border-subtle bg-background px-5 py-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center\", className)}\n {...props}\n >\n <div className=\"flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:items-center\">\n {search ? <div className=\"min-w-0 flex-1 sm:min-w-48 sm:max-w-sm\">{search}</div> : null}\n {filters ? <div className=\"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:flex-wrap sm:items-center\">{filters}</div> : null}\n </div>\n <div className=\"flex min-h-[var(--ds-control-height)] flex-wrap items-center gap-2 lg:justify-end\">\n {bulkActions ? (\n <div data-slot=\"page-toolbar-bulk-actions\" className=\"contents\">\n {bulkActions}\n </div>\n ) : null}\n {viewControls}\n {children}\n </div>\n </div>\n );\n}\n\nexport { PageToolbar };\nexport type { PageToolbarProps };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n appearanceOptions,\n applyConsciaPreferences,\n densityOptions,\n type ConsciaAppearance,\n type ConsciaDensity,\n} from \"../foundation/preferences\";\nimport { cn } from \"../primitives/utils\";\n\nconst APPEARANCE_KEY = \"conscia-appearance:v1\";\nconst DENSITY_KEY = \"conscia-density:v1\";\nconst PREFERENCE_EVENT = \"conscia-preferences\";\nconst volatilePreferences = new Map<string, string>();\n\nfunction readPreference<T extends string>(\n key: string,\n fallback: T,\n allowedValues: readonly T[],\n): T {\n if (typeof window === \"undefined\") {\n return fallback;\n }\n\n try {\n const value =\n window.localStorage.getItem(key) ?? volatilePreferences.get(key);\n\n return value && allowedValues.includes(value as T)\n ? (value as T)\n : fallback;\n } catch {\n const value = volatilePreferences.get(key);\n\n return value && allowedValues.includes(value as T)\n ? (value as T)\n : fallback;\n }\n}\n\nfunction writePreference(key: string, value: string) {\n volatilePreferences.set(key, value);\n\n try {\n window.localStorage.setItem(key, value);\n } catch {\n // Preferences still apply for this session when storage is unavailable.\n }\n\n window.dispatchEvent(new Event(PREFERENCE_EVENT));\n}\n\nfunction useStoredPreference<T extends string>(\n key: string,\n fallback: T,\n allowedValues: readonly T[],\n): T {\n return React.useSyncExternalStore(\n (onStoreChange) => {\n window.addEventListener(\"storage\", onStoreChange);\n window.addEventListener(PREFERENCE_EVENT, onStoreChange);\n return () => {\n window.removeEventListener(\"storage\", onStoreChange);\n window.removeEventListener(PREFERENCE_EVENT, onStoreChange);\n };\n },\n () => readPreference(key, fallback, allowedValues),\n () => fallback,\n );\n}\n\nfunction useConsciaPreferences() {\n const appearance = useStoredPreference<ConsciaAppearance>(\n APPEARANCE_KEY,\n \"system\",\n appearanceOptions,\n );\n const density = useStoredPreference<ConsciaDensity>(\n DENSITY_KEY,\n \"comfortable\",\n densityOptions,\n );\n\n return { appearance, density };\n}\n\nfunction DesignSystemPreferenceSync() {\n const { appearance, density } = useConsciaPreferences();\n\n React.useEffect(() => {\n const media = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const sync = () =>\n applyConsciaPreferences(\n document.documentElement,\n appearance,\n density,\n media.matches,\n );\n\n sync();\n media.addEventListener(\"change\", sync);\n return () => media.removeEventListener(\"change\", sync);\n }, [appearance, density]);\n\n return null;\n}\n\nfunction AppearanceControl({ className }: { className?: string }) {\n const { appearance } = useConsciaPreferences();\n\n return (\n <SegmentedControl\n className={className}\n label=\"Appearance\"\n value={appearance}\n values={appearanceOptions}\n onChange={(value) => writePreference(APPEARANCE_KEY, value)}\n />\n );\n}\n\nfunction DensityControl({ className }: { className?: string }) {\n const { density } = useConsciaPreferences();\n\n return (\n <SegmentedControl\n className={className}\n label=\"Density\"\n value={density}\n values={densityOptions}\n onChange={(value) => writePreference(DENSITY_KEY, value)}\n />\n );\n}\n\nfunction DesignPreferenceControls({ className }: { className?: string }) {\n return (\n <div className={cn(\"flex flex-col gap-3 text-sm\", className)}>\n <AppearanceControl />\n <DensityControl />\n </div>\n );\n}\n\nfunction SegmentedControl({\n className,\n label,\n value,\n values,\n onChange,\n}: {\n className?: string;\n label: string;\n value: string;\n values: string[];\n onChange: (value: string) => void;\n}) {\n return (\n <fieldset className={cn(\"flex flex-col gap-2\", className)}>\n <legend className=\"text-[var(--ds-metadata)] font-medium text-muted-foreground\">\n {label}\n </legend>\n <div className=\"inline-flex rounded-[var(--ds-radius-control)] bg-muted p-1\">\n {values.map((item) => (\n <button\n key={item}\n type=\"button\"\n aria-pressed={value === item}\n suppressHydrationWarning\n onClick={() => onChange(item)}\n className=\"h-7 rounded-[calc(var(--ds-radius-control)-2px)] px-2.5 text-[var(--ds-metadata)] font-medium capitalize text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-pressed:bg-background aria-pressed:text-foreground aria-pressed:shadow-xs\"\n >\n {item}\n </button>\n ))}\n </div>\n </fieldset>\n );\n}\n\nexport {\n AppearanceControl,\n DensityControl,\n DesignPreferenceControls,\n DesignSystemPreferenceSync,\n useConsciaPreferences,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype ProviderMarkProps = React.ComponentProps<\"div\"> & {\n name: string;\n shortName: string;\n description?: React.ReactNode;\n size?: \"sm\" | \"default\";\n};\n\nfunction ProviderMark({ name, shortName, description, size = \"default\", className, ...props }: ProviderMarkProps) {\n return (\n <div data-slot=\"provider-mark\" className={cn(\"flex min-w-0 items-center gap-3\", className)} {...props}>\n <div\n aria-hidden=\"true\"\n className={cn(\n \"flex shrink-0 items-center justify-center rounded-md border border-border-subtle bg-surface-muted font-semibold tracking-tight text-foreground\",\n size === \"sm\" ? \"size-8 text-[10px]\" : \"size-10 text-xs\",\n )}\n >\n {shortName}\n </div>\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-medium text-foreground\">{name}</div>\n {description ? <div className=\"mt-0.5 truncate text-[var(--ds-metadata)] text-muted-foreground\">{description}</div> : null}\n </div>\n </div>\n );\n}\n\nexport { ProviderMark };\nexport type { ProviderMarkProps };\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype ResourceSummaryProps = React.ComponentProps<\"section\"> & {\n variant?: \"plain\" | \"surface\";\n title?: React.ReactNode;\n description?: React.ReactNode;\n status?: React.ReactNode;\n metadata?: React.ReactNode;\n actions?: React.ReactNode;\n};\n\nfunction ResourceSummary({\n variant = \"plain\",\n title,\n description,\n status,\n metadata,\n actions,\n className,\n children,\n ...props\n}: ResourceSummaryProps) {\n return (\n <section\n data-slot=\"resource-summary\"\n className={cn(\n \"px-5 py-4\",\n variant === \"plain\" && \"border-b border-border-subtle bg-background\",\n variant === \"surface\" &&\n \"rounded-[var(--ds-radius-surface)] border border-border-subtle bg-surface\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between\">\n <div className=\"min-w-0\">\n {title || status ? (\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n {title ? (\n <h2 className=\"truncate text-[var(--ds-section-title)] font-semibold\">\n {title}\n </h2>\n ) : null}\n {status}\n </div>\n ) : null}\n {description ? (\n <p className=\"mt-1 max-w-3xl text-sm text-muted-foreground\">\n {description}\n </p>\n ) : null}\n {metadata ? (\n <div className=\"mt-2 text-[var(--ds-metadata)] text-muted-foreground\">\n {metadata}\n </div>\n ) : null}\n </div>\n {actions ? (\n <div className=\"flex shrink-0 flex-wrap items-center gap-2\">\n {actions}\n </div>\n ) : null}\n </div>\n {children ? <div className=\"mt-4\">{children}</div> : null}\n </section>\n );\n}\n\nfunction DetailSections({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"detail-sections\"\n className={cn(\"flex flex-col gap-[var(--ds-space-section)]\", className)}\n {...props}\n />\n );\n}\n\ntype DetailSectionProps = React.ComponentProps<\"section\"> & {\n variant?: \"surface\" | \"open\";\n title: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n};\n\nfunction DetailSection({\n variant = \"surface\",\n title,\n description,\n actions,\n className,\n children,\n ...props\n}: DetailSectionProps) {\n return (\n <section\n data-slot=\"detail-section\"\n className={cn(\n variant === \"surface\" &&\n \"rounded-[var(--ds-radius-surface)] border border-border-subtle bg-surface p-[var(--ds-surface-padding)]\",\n variant === \"open\" && \"border-b border-border-subtle pb-[var(--ds-space-section)]\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"min-w-0\">\n <h2 className=\"text-[var(--ds-section-title)] font-semibold\">\n {title}\n </h2>\n {description ? (\n <p className=\"mt-1 max-w-3xl text-sm text-muted-foreground\">\n {description}\n </p>\n ) : null}\n </div>\n {actions ? (\n <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>\n ) : null}\n </div>\n {children ? <div className=\"mt-4\">{children}</div> : null}\n </section>\n );\n}\n\nfunction KeyValueList({\n className,\n ...props\n}: React.ComponentProps<\"dl\">) {\n return (\n <dl\n data-slot=\"key-value-list\"\n className={cn(\"grid gap-3 text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction KeyValueItem({\n label,\n value,\n breakValue = false,\n}: {\n label: React.ReactNode;\n value: React.ReactNode;\n breakValue?: boolean;\n}) {\n return (\n <div data-slot=\"key-value-item\" className=\"flex justify-between gap-4\">\n <dt className=\"text-muted-foreground\">{label}</dt>\n <dd\n className={cn(\n \"text-right font-medium\",\n breakValue && \"break-all\",\n )}\n >\n {value}\n </dd>\n </div>\n );\n}\n\nexport {\n DetailSection,\n DetailSections,\n KeyValueItem,\n KeyValueList,\n ResourceSummary,\n};\nexport type { DetailSectionProps, ResourceSummaryProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronRight } from \"lucide-react\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"../primitives/collapsible\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger,\n} from \"../primitives/dropdown-menu\";\nimport { cn } from \"../primitives/utils\";\nimport {\n NavigationGroup,\n NavigationItem,\n NavigationSubItem,\n NavigationSubList,\n useAppShell,\n} from \"./app-shell\";\n\nexport type SidebarNavigationItem = {\n id: string;\n label: string;\n icon?: React.ReactNode;\n active?: boolean;\n startsSection?: boolean;\n};\n\nexport type SidebarNavigationSection = Omit<\n SidebarNavigationItem,\n \"active\"\n> & {\n active?: boolean;\n items: SidebarNavigationItem[];\n};\n\nexport type SidebarNavigationEntry =\n | SidebarNavigationItem\n | SidebarNavigationSection;\n\nexport type SidebarNavigationLinkProps = {\n \"aria-current\"?: \"page\";\n \"aria-label\": string;\n children: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n};\n\ntype SidebarNavigationProps = {\n entries: SidebarNavigationEntry[];\n renderLink: (\n item: SidebarNavigationItem,\n props: SidebarNavigationLinkProps,\n ) => React.ReactElement;\n onNavigate?: () => void;\n storageKey?: string;\n className?: string;\n};\n\nfunction isSection(\n entry: SidebarNavigationEntry,\n): entry is SidebarNavigationSection {\n return \"items\" in entry;\n}\n\nfunction readOpenSections(storageKey?: string) {\n if (!storageKey || typeof window === \"undefined\") {\n return {};\n }\n\n try {\n const storedValue = window.localStorage.getItem(storageKey);\n\n if (!storedValue) {\n return {};\n }\n\n const parsedValue: unknown = JSON.parse(storedValue);\n return typeof parsedValue === \"object\" && parsedValue !== null\n ? (parsedValue as Record<string, boolean>)\n : {};\n } catch {\n return {};\n }\n}\n\nfunction SidebarNavigation({\n entries,\n renderLink,\n onNavigate,\n storageKey,\n className,\n}: SidebarNavigationProps) {\n const { isMobile, sidebarSide, sidebarState } = useAppShell();\n const [openSections, setOpenSections] = React.useState<\n Record<string, boolean>\n >({});\n const storageReady = React.useRef(false);\n\n React.useEffect(() => {\n storageReady.current = false;\n const storedSections = readOpenSections(storageKey);\n\n queueMicrotask(() => {\n storageReady.current = true;\n setOpenSections(storedSections);\n });\n }, [storageKey]);\n\n React.useEffect(() => {\n if (\n !storageReady.current ||\n !storageKey ||\n !entries.some(isSection)\n ) {\n return;\n }\n\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(openSections));\n } catch {\n // Navigation remains functional when storage is unavailable.\n }\n }, [entries, openSections, storageKey]);\n\n const handleNavigate = React.useCallback<\n React.MouseEventHandler<HTMLAnchorElement>\n >(() => {\n onNavigate?.();\n }, [onNavigate]);\n\n return (\n <nav\n data-slot=\"sidebar-navigation\"\n aria-label=\"Primary navigation\"\n className={cn(\"flex flex-col gap-1\", className)}\n >\n {entries.map((entry) => {\n if (!isSection(entry)) {\n return (\n <NavigationGroup\n key={entry.id}\n className={entry.startsSection ? \"mt-2\" : undefined}\n >\n <NavigationItem asChild active={entry.active} tooltip={entry.label}>\n {renderLink(entry, {\n \"aria-current\": entry.active ? \"page\" : undefined,\n \"aria-label\": entry.label,\n onClick: handleNavigate,\n children: (\n <>\n {entry.icon}\n <span className=\"truncate group-data-[sidebar-state=collapsed]/shell:hidden\">\n {entry.label}\n </span>\n </>\n ),\n })}\n </NavigationItem>\n </NavigationGroup>\n );\n }\n\n const sectionOpen = (openSections[entry.id] ?? false) || entry.active;\n\n if (sidebarState === \"collapsed\" && !isMobile) {\n return (\n <DropdownMenu key={entry.id}>\n <NavigationGroup\n className={entry.startsSection ? \"mt-2\" : undefined}\n >\n <DropdownMenuTrigger asChild>\n <NavigationItem\n active={entry.active}\n aria-label={`${entry.label} menu`}\n >\n {entry.icon}\n <span className=\"sr-only\">{entry.label}</span>\n </NavigationItem>\n </DropdownMenuTrigger>\n </NavigationGroup>\n <DropdownMenuContent\n side={sidebarSide === \"left\" ? \"right\" : \"left\"}\n align=\"start\"\n sideOffset={8}\n className=\"min-w-56 rounded-[var(--ds-radius-surface)] p-1.5\"\n >\n <DropdownMenuLabel className=\"px-2 py-1.5 font-semibold text-muted-foreground\">\n {entry.label}\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {entry.items.map((item) => (\n <DropdownMenuItem\n key={item.id}\n asChild\n className={cn(\n \"min-h-9 cursor-pointer rounded-[var(--ds-radius-control)] [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75]\",\n item.active &&\n \"bg-selection-background text-selection-foreground shadow-[inset_2px_0_0_var(--selection-indicator)] focus:bg-selection-background focus:text-selection-foreground\",\n )}\n >\n {renderLink(item, {\n \"aria-current\": item.active ? \"page\" : undefined,\n \"aria-label\": item.label,\n onClick: handleNavigate,\n children: (\n <>\n {item.icon}\n <span className=\"truncate\">{item.label}</span>\n </>\n ),\n })}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n }\n\n return (\n <Collapsible\n key={entry.id}\n open={sectionOpen}\n onOpenChange={(open) =>\n setOpenSections((current) => ({\n ...current,\n [entry.id]: open,\n }))\n }\n className={cn(\n \"group/collapsible\",\n entry.startsSection && \"mt-2\",\n )}\n >\n <NavigationGroup>\n <CollapsibleTrigger asChild>\n <NavigationItem\n active={entry.active}\n tooltip={entry.label}\n aria-label={entry.label}\n aria-expanded={sectionOpen}\n >\n {entry.icon}\n <span className=\"truncate group-data-[sidebar-state=collapsed]/shell:hidden\">\n {entry.label}\n </span>\n <ChevronRight className=\"ml-auto transition-transform duration-150 ease-out group-data-[sidebar-state=collapsed]/shell:hidden group-data-[state=open]/collapsible:rotate-90\" />\n </NavigationItem>\n </CollapsibleTrigger>\n <CollapsibleContent\n data-slot=\"sidebar-collapsible-content\"\n className=\"overflow-hidden\"\n >\n <NavigationSubList>\n {entry.items.map((item) => (\n <NavigationSubItem\n key={item.id}\n asChild\n active={item.active}\n >\n {renderLink(item, {\n \"aria-current\": item.active ? \"page\" : undefined,\n \"aria-label\": item.label,\n onClick: handleNavigate,\n children: (\n <>\n {item.icon}\n <span className=\"truncate\">{item.label}</span>\n </>\n ),\n })}\n </NavigationSubItem>\n ))}\n </NavigationSubList>\n </CollapsibleContent>\n </NavigationGroup>\n </Collapsible>\n );\n })}\n </nav>\n );\n}\n\nexport { SidebarNavigation };\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype StateViewProps = React.ComponentProps<\"div\"> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n icon?: React.ReactNode;\n};\n\nfunction StateView({ title, description, action, icon, className, ...props }: StateViewProps) {\n return (\n <div\n data-slot=\"state-view\"\n className={cn(\"flex min-h-72 flex-col items-center justify-center gap-3 border-b px-6 py-12 text-center\", className)}\n {...props}\n >\n {icon ? (\n <div className=\"flex size-10 items-center justify-center rounded-md bg-neutral-background text-neutral-foreground [&_svg]:size-5\">\n {icon}\n </div>\n ) : null}\n <h2 className=\"text-base font-semibold\">{title}</h2>\n {description ? <p className=\"max-w-md text-sm text-muted-foreground\">{description}</p> : null}\n {action ? <div className=\"mt-1\">{action}</div> : null}\n </div>\n );\n}\n\nfunction LoadingRows({\n rows = 6,\n columns = 5,\n}: {\n rows?: number;\n columns?: number;\n}) {\n return (\n <div data-slot=\"loading-rows\" className=\"border-b\">\n {Array.from({ length: rows }).map((_, index) => (\n <div\n key={index}\n className=\"grid h-[var(--ds-row-height)] items-center gap-4 border-b px-5 last:border-b-0\"\n style={{ gridTemplateColumns: `2fr repeat(${Math.max(columns - 1, 1)}, minmax(5rem, 1fr))` }}\n >\n {Array.from({ length: columns }).map((_, columnIndex) => (\n <div\n key={columnIndex}\n className={cn(\n \"h-3 rounded bg-muted\",\n columnIndex === 0 ? \"w-44\" : \"w-24\",\n )}\n />\n ))}\n </div>\n ))}\n </div>\n );\n}\n\nfunction ErrorState({ title, description, action, className, ...props }: StateViewProps) {\n return (\n <StateView\n title={title}\n description={description}\n action={action}\n className={cn(\"bg-danger-background/60\", className)}\n role=\"alert\"\n aria-live=\"assertive\"\n {...props}\n />\n );\n}\n\nexport { ErrorState, LoadingRows, StateView };\nexport type { StateViewProps };\n","import * as React from \"react\";\n\nimport { cn } from \"../primitives/utils\";\n\ntype ValueMeterProps = React.ComponentProps<\"div\"> & {\n label: React.ReactNode;\n value: number;\n maximum?: number | null;\n valueLabel?: React.ReactNode;\n detail?: React.ReactNode;\n tone?: \"neutral\" | \"success\" | \"warning\" | \"danger\";\n};\n\nfunction ValueMeter({\n label,\n value,\n maximum,\n valueLabel,\n detail,\n tone = \"neutral\",\n className,\n ...props\n}: ValueMeterProps) {\n const labelId = React.useId();\n const hasMaximum = typeof maximum === \"number\" && maximum > 0;\n const boundedValue = hasMaximum\n ? Math.min(maximum, Math.max(0, value))\n : value;\n const percentage = hasMaximum\n ? (boundedValue / maximum) * 100\n : null;\n const resolvedValueLabel =\n valueLabel ??\n (hasMaximum ? `${boundedValue} of ${maximum}` : String(boundedValue));\n\n return (\n <div\n data-slot=\"value-meter\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n >\n <div className=\"flex items-baseline justify-between gap-4 text-sm\">\n <span id={labelId} className=\"font-medium text-foreground\">{label}</span>\n <span className=\"text-muted-foreground\">{resolvedValueLabel}</span>\n </div>\n {percentage === null ? null : (\n <div\n role=\"progressbar\"\n aria-labelledby={labelId}\n aria-valuemin={0}\n aria-valuemax={maximum ?? undefined}\n aria-valuenow={boundedValue}\n className=\"h-2 overflow-hidden rounded-full bg-surface-muted\"\n >\n <div\n className={cn(\n \"h-full rounded-full bg-neutral-foreground transition-[width]\",\n tone === \"success\" && \"bg-success-foreground\",\n tone === \"warning\" && \"bg-warning-foreground\",\n tone === \"danger\" && \"bg-danger-foreground\",\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n )}\n {detail ? <div className=\"text-xs text-muted-foreground\">{detail}</div> : null}\n </div>\n );\n}\n\nexport { ValueMeter };\nexport type { ValueMeterProps };\n"],"mappings":"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","names":["jsx","jsxs","table","jsx","jsx","jsxs","React","Fragment","jsx","jsxs","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","React","jsx","jsxs","jsx","jsxs","jsx","jsxs","React","ChevronRight","Fragment","jsx","jsxs","ChevronRight","jsx","jsxs","_","React","jsx","jsxs"]}
|