@knkcs/anker 0.0.1 → 0.0.3
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/dist/atoms/index.d.ts +48 -12
- package/dist/atoms/index.js +77 -49
- package/dist/atoms/index.js.map +1 -1
- package/dist/{chunk-FGKGX4UF.js → chunk-7UJ4QEUW.js} +4 -3
- package/dist/chunk-7UJ4QEUW.js.map +1 -0
- package/dist/chunk-C4JI3JNA.js +147 -0
- package/dist/chunk-C4JI3JNA.js.map +1 -0
- package/dist/chunk-GJTQLZ4O.js +73 -0
- package/dist/chunk-GJTQLZ4O.js.map +1 -0
- package/dist/chunk-NJFF6S77.js +108 -0
- package/dist/chunk-NJFF6S77.js.map +1 -0
- package/dist/chunk-QU3FF5WI.js +36 -0
- package/dist/chunk-QU3FF5WI.js.map +1 -0
- package/dist/{chunk-4D3EY2W2.js → chunk-YSFUGIQM.js} +388 -34
- package/dist/chunk-YSFUGIQM.js.map +1 -0
- package/dist/components/index.d.ts +125 -12
- package/dist/components/index.js +292 -50
- package/dist/components/index.js.map +1 -1
- package/dist/forms/index.d.ts +2 -13
- package/dist/forms/index.js +81 -119
- package/dist/forms/index.js.map +1 -1
- package/dist/primitives/index.d.ts +142 -90
- package/dist/primitives/index.js +38 -116
- package/dist/primitives/index.js.map +1 -1
- package/dist/theme/index.d.ts +80 -8
- package/dist/theme/index.js +1 -1
- package/package.json +5 -1
- package/dist/chunk-4D3EY2W2.js.map +0 -1
- package/dist/chunk-4T32UC26.js +0 -81
- package/dist/chunk-4T32UC26.js.map +0 -1
- package/dist/chunk-FGKGX4UF.js.map +0 -1
- package/dist/chunk-QSCNXHMU.js +0 -32
- package/dist/chunk-QSCNXHMU.js.map +0 -1
- package/dist/chunk-YXTW5OAJ.js +0 -303
- package/dist/chunk-YXTW5OAJ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/card.tsx","../../src/components/card-list.tsx","../../src/components/card-list-data.tsx","../../src/components/card-list-item.tsx","../../src/components/pagination.tsx","../../src/components/data-table/data-table.tsx","../../src/components/drawer.tsx","../../src/components/fact-box.tsx","../../src/components/labeled-switch.tsx","../../src/components/modal.tsx","../../src/components/stepper/use-stepper.tsx","../../src/components/stepper/stepper.tsx","../../src/components/timeline.tsx","../../src/components/tree-view.tsx","../../src/components/widget.tsx"],"names":["ChakraCard","jsxs","jsx","Children","Flex","Box","Grid","GridItem","Text","table","_","Portal","Button","React","HStack","IconButton","ChevronRight","Menu","Spacer","X","step","createContext","Fragment","Collapsible","ChakraTimeline","ChakraTreeView","Card"],"mappings":"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","file":"index.js","sourcesContent":["import {\n\ttype CardRootProps,\n\tCard as ChakraCard,\n\tHeading,\n} from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface CardProps extends Omit<CardRootProps, \"title\"> {\n\tmaxW?: CardRootProps[\"maxW\"];\n\t/** Card title rendered in Card.Header. */\n\ttitle?: React.ReactNode;\n\t/** Custom header content. Overrides title if both provided. */\n\theader?: React.ReactNode;\n\t/** Footer content rendered in Card.Footer. */\n\tfooter?: React.ReactNode;\n\tchildren: React.ReactNode;\n}\n\nexport const Card = ({\n\tref,\n\tmaxW = \"full\",\n\ttitle,\n\theader,\n\tfooter,\n\tchildren,\n\t...props\n}: CardProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\treturn (\n\t\t<ChakraCard.Root\n\t\t\tref={ref}\n\t\t\tbg=\"bg-surface\"\n\t\t\tw=\"full\"\n\t\t\theight=\"full\"\n\t\t\tmaxW={maxW}\n\t\t\tmargin=\"0 auto\"\n\t\t\toverflow=\"hidden\"\n\t\t\t{...props}\n\t\t>\n\t\t\t{(header || title) && (\n\t\t\t\t<ChakraCard.Header>\n\t\t\t\t\t{header ?? <Heading size=\"md\">{title}</Heading>}\n\t\t\t\t</ChakraCard.Header>\n\t\t\t)}\n\t\t\t<ChakraCard.Body overflow=\"hidden\">{children}</ChakraCard.Body>\n\t\t\t{footer && <ChakraCard.Footer>{footer}</ChakraCard.Footer>}\n\t\t</ChakraCard.Root>\n\t);\n};\nCard.displayName = \"Card\";\n","import { Box, Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport { Children } from \"react\";\n\nexport interface CardListProps {\n\t/** Column header labels displayed above the grid. */\n\theaders: string[];\n\t/** Whether rows have a left-side component slot (e.g., avatar). */\n\thasComponentLeft?: boolean;\n\t/** Whether rows have a right-side menu slot. */\n\thasMenu?: boolean;\n\t/** CardListItem children to render as rows. */\n\tchildren?: React.ReactNode;\n\t/** Total number of grid columns. Defaults to 12. */\n\tcolumnCount?: number;\n\t/** Content to display when there are no rows. */\n\temptyState?: React.ReactNode;\n}\n\nexport const CardList: React.FC<CardListProps> = ({\n\tchildren,\n\theaders,\n\thasComponentLeft,\n\thasMenu,\n\tcolumnCount = 12,\n\temptyState,\n}) => {\n\tconst colSpan = Math.floor(columnCount / headers.length);\n\tconst isEmpty = Children.count(children) === 0;\n\n\treturn (\n\t\t<Box role=\"grid\" aria-colcount={headers.length}>\n\t\t\t<Flex pb={2} px={hasComponentLeft ? 0 : 6}>\n\t\t\t\t{hasComponentLeft && <Box minWidth={75} px={6} />}\n\t\t\t\t<Grid\n\t\t\t\t\tw=\"100%\"\n\t\t\t\t\ttemplateRows=\"repeat(1, 1fr)\"\n\t\t\t\t\ttemplateColumns={`repeat(${columnCount}, 1fr)`}\n\t\t\t\t\tgap={4}\n\t\t\t\t\tfontWeight=\"semibold\"\n\t\t\t\t\tcolor=\"muted\"\n\t\t\t\t>\n\t\t\t\t\t{headers.map((header) => (\n\t\t\t\t\t\t<GridItem key={header} colSpan={colSpan} role=\"columnheader\">\n\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t</GridItem>\n\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t\t\t{hasMenu && <Box minWidth=\"80px\" px={6} />}\n\t\t\t</Flex>\n\n\t\t\t<Flex direction=\"column\" gap=\"3\">\n\t\t\t\t{isEmpty && emptyState ? emptyState : children}\n\t\t\t</Flex>\n\t\t</Box>\n\t);\n};\nCardList.displayName = \"CardList\";\n","import { Text, type TextProps } from \"@chakra-ui/react\";\nimport { Tooltip } from \"../primitives/tooltip\";\n\nexport interface CardListDataProps extends TextProps {\n\t/** Cell content. Strings are shown in a tooltip on overflow. */\n\tchildren: React.ReactNode;\n}\n\nexport const CardListData: React.FC<CardListDataProps> = ({\n\tchildren,\n\t...restProps\n}) => {\n\tconst textContent =\n\t\ttypeof children === \"string\" || typeof children === \"number\"\n\t\t\t? String(children)\n\t\t\t: null;\n\n\treturn (\n\t\t<Tooltip content={textContent ?? \"\"} disabled={!textContent}>\n\t\t\t<Text lineClamp={1} color=\"muted\" {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</Tooltip>\n\t);\n};\nCardListData.displayName = \"CardListData\";\n","import { Box, Flex, Grid, GridItem, Menu, Portal } from \"@chakra-ui/react\";\nimport { Ellipsis } from \"lucide-react\";\nimport { Children } from \"react\";\n\nexport interface CardListMenuItem<T = string> {\n\t/** Text label for the menu item. */\n\tlabel: string;\n\t/** Callback fired when the menu item is clicked. */\n\tonClick: () => void;\n\t/** Icon rendered before the label. */\n\ticon?: React.ReactNode;\n\t/** Text color override for the menu item. */\n\tcolor?: string;\n\t/** Value associated with the menu item. */\n\tvalue?: T;\n}\n\nexport interface CardListItemProps<T = string> {\n\t/** Whether the item is visually selected. */\n\tisActive?: boolean;\n\t/** Callback fired when the row is clicked. */\n\thandleItemClick?: () => void;\n\t/** Callback fired when the row is double-clicked. */\n\thandleItemDoubleClick?: () => void;\n\t/** Menu items rendered in the row's action menu. */\n\tmenuItems?: CardListMenuItem<T>[];\n\t/** Component rendered on the left side of the row (e.g., avatar). */\n\tcomponentLeft?: React.ReactNode;\n\t/** CardListData children to render as cells. */\n\tchildren: React.ReactNode;\n\t/** Total number of grid columns. Defaults to 12. */\n\tcolumnCount?: number;\n}\n\nexport const CardListItem = <T extends string = string>({\n\tisActive,\n\thandleItemClick,\n\thandleItemDoubleClick,\n\tmenuItems,\n\tcomponentLeft,\n\tchildren,\n\tcolumnCount = 12,\n}: CardListItemProps<T>) => {\n\tconst colSpan = Math.floor(columnCount / Children.count(children));\n\n\treturn (\n\t\t<Flex\n\t\t\trole=\"row\"\n\t\t\tboxShadow={isActive ? \"0 0 0 2px var(--chakra-colors-accent)\" : \"sm\"}\n\t\t\tbg=\"bg-surface\"\n\t\t\tborderRadius=\"lg\"\n\t\t\talignItems=\"stretch\"\n\t\t\toverflow=\"hidden\"\n\t\t\ttransition=\"all 200ms ease\"\n\t\t>\n\t\t\t<Flex\n\t\t\t\twidth=\"100%\"\n\t\t\t\ttransition=\"all 200ms ease\"\n\t\t\t\t_hover={{ bg: \"bg-subtle\", cursor: \"pointer\" }}\n\t\t\t\talignItems=\"stretch\"\n\t\t\t\toverflow=\"hidden\"\n\t\t\t\tonClick={handleItemClick}\n\t\t\t\tonDoubleClick={handleItemDoubleClick}\n\t\t\t>\n\t\t\t\t{componentLeft && (\n\t\t\t\t\t<Box\n\t\t\t\t\t\twidth={75}\n\t\t\t\t\t\tpx={6}\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{componentLeft}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t<Grid\n\t\t\t\t\tpx={componentLeft === undefined ? 6 : 0}\n\t\t\t\t\tpy={4}\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\ttemplateRows=\"repeat(1, 1fr)\"\n\t\t\t\t\ttemplateColumns={`repeat(${columnCount}, 1fr)`}\n\t\t\t\t\tgap={4}\n\t\t\t\t>\n\t\t\t\t\t{Children.map(children, (child, index) => (\n\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: no alternative for key\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tcolSpan={colSpan}\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{child}\n\t\t\t\t\t\t</GridItem>\n\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t\t</Flex>\n\t\t\t{menuItems && (\n\t\t\t\t<Menu.Root>\n\t\t\t\t\t<Menu.Trigger\n\t\t\t\t\t\twidth=\"80px\"\n\t\t\t\t\t\tpx={6}\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tbg=\"accent\"\n\t\t\t\t\t\tcolor=\"on-accent\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t_hover={{ opacity: 0.9 }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Ellipsis size={20} />\n\t\t\t\t\t</Menu.Trigger>\n\t\t\t\t\t<Portal>\n\t\t\t\t\t\t<Menu.Positioner>\n\t\t\t\t\t\t\t<Menu.Content>\n\t\t\t\t\t\t\t\t{menuItems.map((menuItem) => (\n\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\tkey={menuItem.label}\n\t\t\t\t\t\t\t\t\t\tonClick={menuItem.onClick}\n\t\t\t\t\t\t\t\t\t\tcolor={menuItem.color}\n\t\t\t\t\t\t\t\t\t\tvalue={menuItem.value ?? menuItem.label}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{menuItem.icon}\n\t\t\t\t\t\t\t\t\t\t{menuItem.label}\n\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</Menu.Content>\n\t\t\t\t\t\t</Menu.Positioner>\n\t\t\t\t\t</Portal>\n\t\t\t\t</Menu.Root>\n\t\t\t)}\n\t\t</Flex>\n\t);\n};\n(CardListItem as { displayName?: string }).displayName = \"CardListItem\";\n","import { Button, HStack, IconButton, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport type React from \"react\";\n\nexport interface PaginationProps {\n\t/** Current page (1-based). */\n\tpage: number;\n\t/** Total number of items. */\n\ttotal: number;\n\t/** Items per page. @default 10 */\n\tpageSize?: number;\n\t/** Called when the page changes. */\n\tonPageChange: (page: number) => void;\n\t/** Maximum page buttons to show. @default 5 */\n\tmaxVisiblePages?: number;\n\t/** Label for the previous button. @default \"Previous page\" */\n\tpreviousLabel?: string;\n\t/** Label for the next button. @default \"Next page\" */\n\tnextLabel?: string;\n}\n\nexport const Pagination: React.FC<PaginationProps> = (props) => {\n\tconst {\n\t\tpage,\n\t\ttotal,\n\t\tpageSize = 10,\n\t\tonPageChange,\n\t\tmaxVisiblePages = 5,\n\t\tpreviousLabel = \"Previous page\",\n\t\tnextLabel = \"Next page\",\n\t} = props;\n\n\tconst totalPages = Math.max(1, Math.ceil(total / pageSize));\n\tconst currentPage = Math.min(Math.max(1, page), totalPages);\n\n\tconst pages = getVisiblePages(currentPage, totalPages, maxVisiblePages);\n\n\treturn (\n\t\t<HStack gap={1}>\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\taria-label={previousLabel}\n\t\t\t\tdisabled={currentPage <= 1}\n\t\t\t\tonClick={() => onPageChange(currentPage - 1)}\n\t\t\t>\n\t\t\t\t<ChevronLeft size={16} />\n\t\t\t</IconButton>\n\t\t\t{pages.map((p) =>\n\t\t\t\tp === \"ellipsis-start\" || p === \"ellipsis-end\" ? (\n\t\t\t\t\t<Text key={p} px={2} color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t\t…\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={p}\n\t\t\t\t\t\tvariant={p === currentPage ? \"solid\" : \"ghost\"}\n\t\t\t\t\t\tcolorPalette={p === currentPage ? \"primary\" : undefined}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tminW=\"36px\"\n\t\t\t\t\t\tonClick={() => onPageChange(p)}\n\t\t\t\t\t\taria-current={p === currentPage ? \"page\" : undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t{p}\n\t\t\t\t\t</Button>\n\t\t\t\t),\n\t\t\t)}\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\taria-label={nextLabel}\n\t\t\t\tdisabled={currentPage >= totalPages}\n\t\t\t\tonClick={() => onPageChange(currentPage + 1)}\n\t\t\t>\n\t\t\t\t<ChevronRight size={16} />\n\t\t\t</IconButton>\n\t\t</HStack>\n\t);\n};\n\nPagination.displayName = \"Pagination\";\n\nfunction getVisiblePages(\n\tcurrent: number,\n\ttotal: number,\n\tmax: number,\n): Array<number | \"ellipsis-start\" | \"ellipsis-end\"> {\n\tif (total <= max) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst pages: Array<number | \"ellipsis-start\" | \"ellipsis-end\"> = [];\n\tconst half = Math.floor((max - 2) / 2);\n\tlet start = Math.max(2, current - half);\n\tlet end = Math.min(total - 1, current + half);\n\n\tif (current - half <= 2) {\n\t\tend = Math.min(total - 1, max - 1);\n\t}\n\tif (current + half >= total - 1) {\n\t\tstart = Math.max(2, total - max + 2);\n\t}\n\n\tpages.push(1);\n\tif (start > 2) pages.push(\"ellipsis-start\");\n\tfor (let i = start; i <= end; i++) {\n\t\tpages.push(i);\n\t}\n\tif (end < total - 1) pages.push(\"ellipsis-end\");\n\tpages.push(total);\n\n\treturn pages;\n}\n","import { Box, Checkbox, Flex, Table, Text } from \"@chakra-ui/react\";\nimport {\n\ttype ColumnDef,\n\tflexRender,\n\tgetCoreRowModel,\n\tgetSortedRowModel,\n\ttype OnChangeFn,\n\ttype RowSelectionState,\n\ttype SortingState,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDown, ArrowUp, ArrowUpDown } from \"lucide-react\";\nimport type React from \"react\";\nimport { Skeleton } from \"../../primitives/skeleton\";\nimport { Pagination } from \"../pagination\";\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n\t/** Column definitions for TanStack Table */\n\tcolumns: ColumnDef<T, unknown>[];\n\t/** Data array */\n\tdata: T[];\n\t/** Enable row selection */\n\tselectable?: boolean;\n\t/** Controlled row selection state */\n\trowSelection?: RowSelectionState;\n\t/** Row selection change handler */\n\tonRowSelectionChange?: OnChangeFn<RowSelectionState>;\n\t/** Controlled sorting state */\n\tsorting?: SortingState;\n\t/** Sorting change handler */\n\tonSortingChange?: OnChangeFn<SortingState>;\n\t/** Row click handler */\n\tonRowClick?: (row: T) => void;\n\t/** Loading state */\n\tloading?: boolean;\n\t/** Empty state content */\n\temptyState?: React.ReactNode;\n\t/** Pagination - total items */\n\ttotal?: number;\n\t/** Pagination - current page (1-based) */\n\tpage?: number;\n\t/** Pagination - items per page */\n\tpageSize?: number;\n\t/** Pagination - page change handler */\n\tonPageChange?: (page: number) => void;\n\t/** Table variant */\n\tvariant?: \"line\" | \"striped\" | \"hoverable\";\n}\n\nconst LOADING_ROW_COUNT = 5;\n\nfunction DataTableInner<T extends Record<string, unknown>>(\n\tprops: DataTableProps<T>,\n) {\n\tconst {\n\t\tcolumns,\n\t\tdata,\n\t\tselectable = false,\n\t\trowSelection,\n\t\tonRowSelectionChange,\n\t\tsorting,\n\t\tonSortingChange,\n\t\tonRowClick,\n\t\tloading = false,\n\t\temptyState,\n\t\ttotal,\n\t\tpage,\n\t\tpageSize,\n\t\tonPageChange,\n\t\tvariant = \"line\",\n\t} = props;\n\n\tconst selectionColumn: ColumnDef<T, unknown> = {\n\t\tid: \"_select\",\n\t\theader: ({ table }) => (\n\t\t\t<Checkbox.Root\n\t\t\t\tchecked={\n\t\t\t\t\ttable.getIsAllPageRowsSelected()\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: table.getIsSomePageRowsSelected()\n\t\t\t\t\t\t\t? \"indeterminate\"\n\t\t\t\t\t\t\t: false\n\t\t\t\t}\n\t\t\t\tonCheckedChange={(details) =>\n\t\t\t\t\ttable.toggleAllPageRowsSelected(!!details.checked)\n\t\t\t\t}\n\t\t\t\taria-label=\"Select all rows\"\n\t\t\t\tsize=\"sm\"\n\t\t\t>\n\t\t\t\t<Checkbox.HiddenInput />\n\t\t\t\t<Checkbox.Control />\n\t\t\t</Checkbox.Root>\n\t\t),\n\t\tcell: ({ row }) => (\n\t\t\t<Checkbox.Root\n\t\t\t\tchecked={row.getIsSelected()}\n\t\t\t\tonCheckedChange={(details) => row.toggleSelected(!!details.checked)}\n\t\t\t\taria-label={`Select row ${String(row.index + 1)}`}\n\t\t\t\tsize=\"sm\"\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<Checkbox.HiddenInput />\n\t\t\t\t<Checkbox.Control />\n\t\t\t</Checkbox.Root>\n\t\t),\n\t\tenableSorting: false,\n\t};\n\n\tconst allColumns = selectable ? [selectionColumn, ...columns] : columns;\n\n\tconst table = useReactTable({\n\t\tdata,\n\t\tcolumns: allColumns,\n\t\tstate: {\n\t\t\t...(sorting !== undefined ? { sorting } : {}),\n\t\t\t...(rowSelection !== undefined ? { rowSelection } : {}),\n\t\t},\n\t\tonSortingChange,\n\t\tonRowSelectionChange,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tenableRowSelection: selectable,\n\t\tmanualSorting: onSortingChange !== undefined,\n\t});\n\n\tconst hasPagination =\n\t\ttotal !== undefined &&\n\t\tpage !== undefined &&\n\t\tpageSize !== undefined &&\n\t\tonPageChange !== undefined;\n\n\tconst isEmpty = !loading && data.length === 0;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap={4}>\n\t\t\t<Box overflowX=\"auto\">\n\t\t\t\t{/* The custom theme extends the table recipe with additional variants\n\t\t\t\t (striped, hoverable) beyond Chakra's built-in types */}\n\t\t\t\t<Table.Root variant={variant as \"line\"}>\n\t\t\t\t\t<Table.Header>\n\t\t\t\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t\t\t\t<Table.Row key={headerGroup.id}>\n\t\t\t\t\t\t\t\t{headerGroup.headers.map((header) => {\n\t\t\t\t\t\t\t\t\tconst canSort = header.column.getCanSort();\n\t\t\t\t\t\t\t\t\tconst sorted = header.column.getIsSorted();\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Table.ColumnHeader\n\t\t\t\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\t\t\t\tcursor={canSort ? \"pointer\" : undefined}\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tcanSort\n\t\t\t\t\t\t\t\t\t\t\t\t\t? header.column.getToggleSortingHandler()\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\t\t\tsorted === \"asc\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"ascending\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: sorted === \"desc\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"descending\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: canSort\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tuserSelect={canSort ? \"none\" : undefined}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Flex alignItems=\"center\" gap={1}>\n\t\t\t\t\t\t\t\t\t\t\t\t{header.isPlaceholder\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && sorted === \"asc\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowUp size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && sorted === \"desc\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowDown size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && !sorted && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowUpDown size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t\t\t\t</Table.ColumnHeader>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Table.Header>\n\t\t\t\t\t<Table.Body>\n\t\t\t\t\t\t{loading &&\n\t\t\t\t\t\t\tArray.from({ length: LOADING_ROW_COUNT }).map((_, rowIdx) => (\n\t\t\t\t\t\t\t\t<Table.Row key={`loading-${String(rowIdx)}`} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t{allColumns.map((_, colIdx) => (\n\t\t\t\t\t\t\t\t\t\t<Table.Cell key={`loading-cell-${String(colIdx)}`}>\n\t\t\t\t\t\t\t\t\t\t\t<Skeleton height=\"4\" borderRadius=\"sm\" />\n\t\t\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!loading &&\n\t\t\t\t\t\t\ttable.getRowModel().rows.map((row) => (\n\t\t\t\t\t\t\t\t<Table.Row\n\t\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\t\tdata-selected={row.getIsSelected() || undefined}\n\t\t\t\t\t\t\t\t\tcursor={onRowClick ? \"pointer\" : undefined}\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tonRowClick ? () => onRowClick(row.original) : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{row.getVisibleCells().map((cell) => (\n\t\t\t\t\t\t\t\t\t\t<Table.Cell key={cell.id}>\n\t\t\t\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{isEmpty && (\n\t\t\t\t\t\t\t<Table.Row>\n\t\t\t\t\t\t\t\t<Table.Cell\n\t\t\t\t\t\t\t\t\tcolSpan={allColumns.length}\n\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\tpy={8}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{emptyState ?? (\n\t\t\t\t\t\t\t\t\t\t<Text color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t\t\t\t\t\t\tNo data available\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Table.Body>\n\t\t\t\t</Table.Root>\n\t\t\t</Box>\n\t\t\t{hasPagination && (\n\t\t\t\t<Flex justifyContent=\"center\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tpage={page}\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpageSize={pageSize}\n\t\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\t/>\n\t\t\t\t</Flex>\n\t\t\t)}\n\t\t</Flex>\n\t);\n}\n\nexport const DataTable = DataTableInner as typeof DataTableInner & {\n\tdisplayName: string;\n};\nDataTable.displayName = \"DataTable\";\n","import {\n\tButton,\n\tDrawer,\n\ttype DrawerRootProps,\n\tFlex,\n\tPortal,\n\tSpacer,\n} from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\n\nexport interface DrawerProps\n\textends Omit<DrawerRootProps, \"open\" | \"onOpenChange\"> {\n\t/** Whether the drawer is open. */\n\topen: boolean;\n\t/** Called when the drawer should close. */\n\tonClose(): void;\n\t/** Header title content. */\n\ttitle: string | React.ReactNode;\n\t/** Text displayed in the footer area (left side). */\n\tfooterText?: string | React.ReactNode;\n\t/** Drawer body content. */\n\tchildren: React.ReactNode;\n\t/** Label for the save button. @default \"Save\" */\n\tsaveLabel?: string;\n\t/** Label for the close button. @default \"Close\" */\n\tcloseLabel?: string;\n\t/** Whether the save button is disabled. */\n\tsaveButtonDisabled?: boolean;\n\t/** Whether the save action is in progress. Shows spinner on save button. */\n\tloading?: boolean;\n\t/** Extra buttons rendered before the save button. */\n\tadditionalButtons?: React.ReactNode;\n\t/** Called when the save button is clicked. If not provided, no save button is shown. */\n\tonSave?(): void;\n}\n\nexport const DrawerRoot: React.FC<DrawerProps> = ({\n\tchildren,\n\ttitle,\n\tfooterText,\n\tsaveLabel = \"Save\",\n\tcloseLabel = \"Close\",\n\tsaveButtonDisabled = false,\n\tloading = false,\n\tadditionalButtons,\n\tonSave,\n\topen,\n\tonClose,\n\t...rest\n}) => {\n\treturn (\n\t\t<Drawer.Root\n\t\t\t{...rest}\n\t\t\topen={open}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\tif (!details.open) {\n\t\t\t\t\tonClose();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Drawer.Backdrop />\n\t\t\t\t<Drawer.Positioner>\n\t\t\t\t\t<Drawer.Content>\n\t\t\t\t\t\t<Drawer.CloseTrigger asChild>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\t\ttop={2}\n\t\t\t\t\t\t\t\tinsetInlineEnd={2}\n\t\t\t\t\t\t\t\taria-label={closeLabel}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X size={16} />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Drawer.CloseTrigger>\n\n\t\t\t\t\t\t<Drawer.Header\n\t\t\t\t\t\t\tbg=\"bg-surface\"\n\t\t\t\t\t\t\tborderBottom=\"1px solid\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Drawer.Title>{title}</Drawer.Title>\n\t\t\t\t\t\t</Drawer.Header>\n\n\t\t\t\t\t\t<Drawer.Body>{children}</Drawer.Body>\n\n\t\t\t\t\t\t<Drawer.Footer\n\t\t\t\t\t\t\tfontSize=\"sm\"\n\t\t\t\t\t\t\tbg=\"bg-subtle\"\n\t\t\t\t\t\t\tborderTop=\"1px solid\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{footerText}\n\t\t\t\t\t\t\t<Spacer />\n\t\t\t\t\t\t\t<Flex gap={4}>\n\t\t\t\t\t\t\t\t{additionalButtons}\n\t\t\t\t\t\t\t\t{onSave && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\tvariant=\"solid\"\n\t\t\t\t\t\t\t\t\t\tcolorPalette=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={onSave}\n\t\t\t\t\t\t\t\t\t\tdisabled={saveButtonDisabled || loading}\n\t\t\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{saveLabel}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t</Drawer.Footer>\n\t\t\t\t\t</Drawer.Content>\n\t\t\t\t</Drawer.Positioner>\n\t\t\t</Portal>\n\t\t</Drawer.Root>\n\t);\n};\nDrawerRoot.displayName = \"DrawerRoot\";\n","import {\n\tBox,\n\tButtonGroup,\n\ttype CardRootProps,\n\tCollapsible,\n\tFlex,\n\tHStack,\n\tIconButton,\n\tMenu,\n\tPortal,\n\tText,\n} from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport React, { type MouseEventHandler } from \"react\";\nimport { Card } from \"./card\";\n\nexport interface FactBoxAction {\n\tid: number;\n\ttype: \"button\" | \"menuButton\";\n\tariaLabel: string;\n\ticon?: React.ReactElement;\n\tonClick?: MouseEventHandler<HTMLButtonElement>;\n\tonSelect?: VoidFunction;\n\titems?: FactBoxAction[];\n}\n\nexport interface FactBoxProps extends CardRootProps {\n\tname?: string | React.ReactNode;\n\tactions?: FactBoxAction[];\n\tchildren: React.ReactNode;\n\tcollapsible?: boolean;\n\t/** Label for collapse button when expanded. @default \"Collapse\" */\n\tcollapseLabel?: string;\n\t/** Label for collapse button when collapsed. @default \"Expand\" */\n\texpandLabel?: string;\n}\n\nexport const FactBox: React.FC<FactBoxProps> = (props) => {\n\tconst {\n\t\tname,\n\t\tactions,\n\t\tcollapsible = true,\n\t\tcollapseLabel = \"Collapse\",\n\t\texpandLabel = \"Expand\",\n\t\t...rest\n\t} = props;\n\n\tconst [show, setShow] = React.useState(true);\n\n\tconst handleToggle = () => {\n\t\tsetShow(!show);\n\t};\n\n\treturn (\n\t\t<Box w=\"full\">\n\t\t\t{collapsible ? (\n\t\t\t\t<Flex\n\t\t\t\t\tflexDirection=\"column\"\n\t\t\t\t\tmx=\"auto\"\n\t\t\t\t\tborderBottom=\"1px solid\"\n\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t>\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay={{ md: \"flex\" }}\n\t\t\t\t\t\talignItems={{ md: \"center\" }}\n\t\t\t\t\t\tjustifyContent={{ md: \"space-between\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Box minW={0} flex=\"1 1 0%\">\n\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\taria-label={show ? collapseLabel : expandLabel}\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thandleToggle();\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{show ? (\n\t\t\t\t\t\t\t\t\t\t<ChevronDown size={16} />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ChevronRight size={16} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t{typeof name === \"string\" ? <Text>{name}</Text> : name}\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t{actions ? (\n\t\t\t\t\t\t\t<Flex flexShrink={0} marginInlineStart={{ md: 4 }}>\n\t\t\t\t\t\t\t\t<ButtonGroup>\n\t\t\t\t\t\t\t\t\t{actions.map((action) =>\n\t\t\t\t\t\t\t\t\t\taction.type === \"button\" ? (\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\tkey={action.id}\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={action.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{action.icon}\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Menu.Root key={action.id}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Menu.Trigger asChild>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={action.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{action.icon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t\t\t</Menu.Trigger>\n\t\t\t\t\t\t\t\t\t\t\t\t<Portal>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Menu.Positioner>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Menu.Content>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{action.items?.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={item.onSelect}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={item.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={`action-${item.id}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.icon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Menu.Content>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Menu.Positioner>\n\t\t\t\t\t\t\t\t\t\t\t\t</Portal>\n\t\t\t\t\t\t\t\t\t\t\t</Menu.Root>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t) : null}\n\t\t\t<Collapsible.Root open={show}>\n\t\t\t\t<Collapsible.Content>\n\t\t\t\t\t<Card {...rest}>{rest.children}</Card>\n\t\t\t\t</Collapsible.Content>\n\t\t\t</Collapsible.Root>\n\t\t</Box>\n\t);\n};\nFactBox.displayName = \"FactBox\";\n","import { Box, Flex, Text } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { Switch, type SwitchProps } from \"../primitives/switch\";\n\nexport interface LabeledSwitchProps extends SwitchProps {\n\tname: string;\n\tlabel: string;\n}\n\nexport const LabeledSwitch = ({\n\tref,\n\t...props\n}: LabeledSwitchProps & { ref?: React.Ref<HTMLInputElement> }) => {\n\tconst { name, label, ...rest } = props;\n\n\treturn (\n\t\t<Box>\n\t\t\t<Text asChild>\n\t\t\t\t<Flex>{label}</Flex>\n\t\t\t</Text>\n\t\t\t<Switch id={name} ref={ref} {...rest} />\n\t\t</Box>\n\t);\n};\nLabeledSwitch.displayName = \"LabeledSwitch\";\n","import {\n\tButton,\n\tDialog,\n\ttype DialogRootProps,\n\tFlex,\n\tIconButton,\n\tPortal,\n\tSeparator,\n\tSpacer,\n} from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\n\nexport interface ModalProps\n\textends Omit<DialogRootProps, \"open\" | \"onOpenChange\"> {\n\t/** Whether the modal is open. */\n\topen: boolean;\n\t/** Called when the modal should close. */\n\tonClose: () => void;\n\t/** Header content (string or ReactNode). */\n\theader: string | React.ReactNode;\n\t/** Modal body content. */\n\tchildren: React.ReactNode;\n\t/** Custom footer. If provided, replaces the default Cancel/Save buttons. */\n\tfooter?: React.ReactNode;\n\t/** Dialog size variant. */\n\tsize?: DialogRootProps[\"size\"];\n\t/** Label for the close button. */\n\tcloseLabel?: string;\n\t/** Label for the save button. */\n\tsaveLabel?: string;\n\t/** Label for the cancel button. */\n\tcancelLabel?: string;\n\t/** Called when the save button is clicked. If not provided, no default footer is shown. */\n\tonSave?: () => void;\n\t/** Whether the save button is disabled. */\n\tsaveDisabled?: boolean;\n\t/** Whether the save action is in progress. Shows spinner on save button. */\n\tloading?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n\topen,\n\tonClose,\n\theader,\n\tchildren,\n\tfooter,\n\tsize = \"xl\",\n\tcloseLabel = \"Close\",\n\tsaveLabel = \"Save\",\n\tcancelLabel = \"Cancel\",\n\tonSave,\n\tsaveDisabled = false,\n\tloading = false,\n\t...rest\n}) => {\n\tconst defaultFooter = onSave ? (\n\t\t<Flex gap={3} justify=\"flex-end\" w=\"full\">\n\t\t\t<Button variant=\"outline\" onClick={onClose}>\n\t\t\t\t{cancelLabel}\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"solid\"\n\t\t\t\tcolorPalette=\"primary\"\n\t\t\t\tonClick={onSave}\n\t\t\t\tdisabled={saveDisabled || loading}\n\t\t\t\tloading={loading}\n\t\t\t>\n\t\t\t\t{saveLabel}\n\t\t\t</Button>\n\t\t</Flex>\n\t) : null;\n\n\tconst footerContent = footer !== undefined ? footer : defaultFooter;\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\t{...rest}\n\t\t\topen={open}\n\t\t\tsize={size}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\tif (!details.open) {\n\t\t\t\t\tonClose();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Dialog.Backdrop />\n\t\t\t\t<Dialog.Positioner>\n\t\t\t\t\t<Dialog.Content>\n\t\t\t\t\t\t<Dialog.Header>\n\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t<Spacer />\n\t\t\t\t\t\t\t<Dialog.CloseTrigger asChild>\n\t\t\t\t\t\t\t\t<IconButton variant=\"ghost\" size=\"sm\" aria-label={closeLabel}>\n\t\t\t\t\t\t\t\t\t<X size={16} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Dialog.CloseTrigger>\n\t\t\t\t\t\t</Dialog.Header>\n\n\t\t\t\t\t\t<Separator />\n\n\t\t\t\t\t\t<Dialog.Body>{children}</Dialog.Body>\n\n\t\t\t\t\t\t{footerContent && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t\t<Dialog.Footer>{footerContent}</Dialog.Footer>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Portal>\n\t\t</Dialog.Root>\n\t);\n};\nModal.displayName = \"Modal\";\n","import { createContext } from \"@chakra-ui/react\";\nimport React, { useCallback } from \"react\";\n\nexport const [StepperProvider, useStepperContext] =\n\tcreateContext<UseStepperReturn>({\n\t\tname: \"StepperContext\",\n\t\terrorMessage:\n\t\t\t\"useStepperContext: `context` is undefined. Seems you forgot to wrap stepper components in `<Stepper />`\",\n\t});\n\nexport interface UseStepperProps {\n\tstep?: number | string;\n\tisCompleted?: boolean;\n\tonChange?(index: number): void;\n}\n\nexport function useStepper(props: UseStepperProps) {\n\tconst { step, onChange } = props;\n\n\tconst [activeIndex, setIndex] = React.useState(-1); // Set to -1 by default to prevent any initial transitions.\n\n\tconst stepsRef = React.useRef<string[]>([]);\n\n\tconst registerStep = React.useCallback((name: string) => {\n\t\tconst newSteps = [...stepsRef.current];\n\n\t\tif (newSteps.indexOf(name) === -1) {\n\t\t\tnewSteps.push(name);\n\t\t}\n\n\t\tstepsRef.current = newSteps;\n\t}, []);\n\n\tconst unregisterStep = React.useCallback((name: string) => {\n\t\tstepsRef.current = stepsRef.current.filter((step) => step !== name);\n\t}, []);\n\n\tconst setStep = useCallback((name: string) => {\n\t\tconst i = stepsRef.current.indexOf(name);\n\t\tif (i !== -1) {\n\t\t\tsetIndex(i);\n\t\t}\n\t}, []);\n\n\tconst nextStep = () => {\n\t\tsetIndex(activeIndex + 1);\n\t};\n\n\tconst prevStep = () => {\n\t\tsetIndex(activeIndex - 1);\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (typeof step === \"string\") {\n\t\t\tsetStep(step);\n\t\t} else if (typeof step === \"number\") {\n\t\t\tsetIndex(step);\n\t\t} else if (activeIndex === -1) {\n\t\t\tsetIndex(0); // initiate the stepper by activating the first step\n\t\t}\n\t}, [step, activeIndex, setStep]);\n\n\tReact.useEffect(() => {\n\t\tonChange?.(activeIndex);\n\t}, [activeIndex, onChange]);\n\n\tconst context = {\n\t\tstepsRef,\n\t\tactiveStep: stepsRef.current[activeIndex],\n\t\tactiveIndex,\n\t\tisFirstStep: activeIndex === 0,\n\t\tisLastStep: activeIndex === stepsRef.current.length - 1,\n\t\tisCompleted: activeIndex >= stepsRef.current.length,\n\t\tsetIndex,\n\t\tsetStep,\n\t\tnextStep,\n\t\tprevStep,\n\t\tregisterStep,\n\t\tunregisterStep,\n\t};\n\n\treturn context;\n}\n\nexport type UseStepperReturn = ReturnType<typeof useStepper>;\n\nexport interface UseStepProps {\n\tname?: string;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\nexport function useStep(props: UseStepProps) {\n\tconst { name, isActive, isCompleted } = props;\n\tconst { registerStep, unregisterStep, activeStep } = useStepperContext();\n\n\tReact.useEffect(() => {\n\t\tif (!name) {\n\t\t\treturn;\n\t\t}\n\t\tregisterStep(name);\n\n\t\treturn () => {\n\t\t\tunregisterStep(name);\n\t\t};\n\t}, [name, registerStep, unregisterStep]);\n\n\treturn {\n\t\tisActive: name ? activeStep === name : isActive,\n\t\tisCompleted,\n\t};\n}\n\n/**\n * Returns props for a Prev Button\n */\nexport function useStepperPrevButton({ label = \"Back\" } = {}) {\n\tconst { isFirstStep, prevStep } = useStepperContext();\n\n\treturn {\n\t\tdisabled: isFirstStep,\n\t\tonClick: prevStep,\n\t\tchildren: label,\n\t};\n}\n\n/**\n * Returns props for a Next Button\n */\nexport function useStepperNextButton({\n\tlabel = \"Next\",\n\tsubmitLabel = \"Submit\",\n} = {}) {\n\tconst { isLastStep, isCompleted, nextStep } = useStepperContext();\n\n\treturn {\n\t\tdisabled: isCompleted,\n\t\tonClick: nextStep,\n\t\tchildren: isLastStep ? submitLabel : label,\n\t};\n}\n","import {\n\tCollapsible,\n\tchakra,\n\ttype HTMLChakraProps,\n\ttype SystemStyleObject,\n\tuseSlotRecipe,\n} from \"@chakra-ui/react\";\nimport { Check } from \"lucide-react\";\nimport React, { createContext, useContext } from \"react\";\nimport {\n\tStepperProvider,\n\ttype UseStepperProps,\n\tuseStep,\n\tuseStepper,\n\tuseStepperContext,\n} from \"./use-stepper\";\n\n// ---------------------------------------------------------------------------\n// Inlined helpers (from core utils)\n// ---------------------------------------------------------------------------\n\nfunction getChildOfType(children: React.ReactNode, type: React.ComponentType) {\n\treturn (React.Children.toArray(children) as React.ReactElement[]).find(\n\t\t(item) => item.type === type,\n\t);\n}\n\nfunction getChildrenOfType<P = Record<string, unknown>>(\n\tchildren: React.ReactNode,\n\ttype: React.ComponentType<P> | React.ComponentType<P>[],\n) {\n\treturn (React.Children.toArray(children) as React.ReactElement<P>[]).filter(\n\t\t(item) =>\n\t\t\tArray.isArray(type)\n\t\t\t\t? type.some((component) => component === item.type)\n\t\t\t\t: item.type === type,\n\t);\n}\n\n// Simple replacement for the removed dataAttr helper\nconst dataAttr = (condition: boolean | undefined) =>\n\tcondition ? \"\" : undefined;\n\n// Simple replacement for the removed cx helper\nconst cx = (...classes: (string | undefined)[]) =>\n\tclasses.filter(Boolean).join(\" \");\n\n// ---------------------------------------------------------------------------\n// Styles context -- populated by useSlotRecipe in StepperContainer\n// ---------------------------------------------------------------------------\n\ntype StepperStyles = Record<string, SystemStyleObject>;\n\nconst StylesContext = createContext<StepperStyles>({});\nconst useStyles = () => useContext(StylesContext);\n\n// ---------------------------------------------------------------------------\n\nexport interface StepperProps\n\textends UseStepperProps,\n\t\tOmit<HTMLChakraProps<\"div\">, \"onChange\"> {\n\torientation?: \"horizontal\" | \"vertical\";\n\tvariant?: \"subtle\" | \"solid\";\n\tsize?: \"md\" | \"lg\";\n}\n\n/**\n * Display progress in multi-step workflows.\n *\n * Can be controlled or uncontrolled.\n */\nexport const Stepper = ({\n\tref,\n\t...props\n}: StepperProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { orientation, children, ...containerProps } = props;\n\treturn (\n\t\t<StepperContainer ref={ref} orientation={orientation} {...containerProps}>\n\t\t\t<StepperSteps orientation={orientation}>{children}</StepperSteps>\n\t\t</StepperContainer>\n\t);\n};\n\nexport const StepperContainer = ({\n\tref,\n\t...props\n}: StepperProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst {\n\t\tchildren,\n\t\torientation = \"horizontal\",\n\t\tvariant,\n\t\tsize,\n\t\tonChange,\n\t\t...rest\n\t} = props;\n\n\tconst context = useStepper(props);\n\n\tconst recipe = useSlotRecipe({ key: \"stepper\" });\n\tconst styles = recipe({ variant, size, orientation });\n\n\treturn (\n\t\t<StylesContext.Provider value={styles}>\n\t\t\t<StepperProvider value={context}>\n\t\t\t\t<chakra.div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tcss={styles.container}\n\t\t\t\t\t{...rest}\n\t\t\t\t\tclassName={cx(\"stepper\", props.className)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</chakra.div>\n\t\t\t</StepperProvider>\n\t\t</StylesContext.Provider>\n\t);\n};\n\nexport interface StepperStepsProps extends HTMLChakraProps<\"div\"> {\n\torientation?: \"horizontal\" | \"vertical\";\n\tstepComponent?: React.JSXElementConstructor<StepperStepProps>;\n}\n\n/**\n * Wrapper element containing the steps.\n */\nexport const StepperSteps: React.FC<StepperStepsProps> = (props) => {\n\tconst {\n\t\tchildren,\n\t\torientation = \"horizontal\",\n\t\tstepComponent,\n\t\t...rest\n\t} = props;\n\tconst styles = useStyles();\n\n\tconst { activeIndex } = useStepperContext();\n\n\tconst isVertical = orientation === \"vertical\";\n\n\tconst Step = stepComponent || StepperStep;\n\n\tconst steps = getChildrenOfType(children, Step);\n\n\tconst elements = steps.reduce<React.ReactElement[]>((memo, step, i, arr) => {\n\t\tmemo.push(\n\t\t\t<Step\n\t\t\t\tkey={step.key}\n\t\t\t\t{...step.props}\n\t\t\t\ticon={step.props.icon || i + 1}\n\t\t\t\tisActive={activeIndex === i}\n\t\t\t\tisCompleted={step.props.isCompleted || activeIndex > i}\n\t\t\t/>,\n\t\t);\n\n\t\tif (isVertical) {\n\t\t\tmemo.push(\n\t\t\t\t<StepperContent key={`content-${step.key}`} open={activeIndex === i}>\n\t\t\t\t\t{step.props.children}\n\t\t\t\t</StepperContent>,\n\t\t\t);\n\t\t}\n\n\t\tif (i < arr.length - 1) {\n\t\t\tmemo.push(\n\t\t\t\t<StepperSeparator\n\t\t\t\t\tkey={`separator-${step.key}`}\n\t\t\t\t\tisActive={i < activeIndex}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn memo;\n\t}, []);\n\n\tconst completed = getChildOfType(children, StepperCompleted);\n\n\tconst content =\n\t\tactiveIndex >= steps.length ? (\n\t\t\tcompleted\n\t\t) : !isVertical ? (\n\t\t\t<StepperContent>{steps[activeIndex]?.props?.children}</StepperContent>\n\t\t) : null;\n\n\treturn (\n\t\t<>\n\t\t\t<chakra.div\n\t\t\t\tcss={styles.steps}\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(\"stepper__steps\", props.className)}\n\t\t\t>\n\t\t\t\t{elements}\n\t\t\t</chakra.div>\n\t\t\t{content}\n\t\t</>\n\t);\n};\n\nStepperSteps.displayName = \"StepperSteps\";\n\nexport interface StepperContentProps extends HTMLChakraProps<\"div\"> {\n\t/**\n\t * Show or hide the content\n\t */\n\topen?: boolean;\n}\n\n/**\n * Renders the step content, is collapsible.\n */\nexport const StepperContent: React.FC<StepperContentProps> = (props) => {\n\tconst { children, open = true, ...rest } = props;\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.content}\n\t\t\t{...rest}\n\t\t\tclassName={cx(\"stepper__content\", props.className)}\n\t\t>\n\t\t\t<Collapsible.Root open={open}>\n\t\t\t\t<Collapsible.Content>{children}</Collapsible.Content>\n\t\t\t</Collapsible.Root>\n\t\t</chakra.div>\n\t);\n};\n\nStepperContent.displayName = \"StepperContent\";\n\nexport interface StepperIconProps extends HTMLChakraProps<\"div\"> {\n\ticon: React.ReactNode;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\n/**\n * Displays the current step or a completed icon.\n */\nexport const StepperIcon: React.FC<StepperIconProps> = (props) => {\n\tconst { icon, isActive, isCompleted, className, ...rest } = props;\n\n\tconst styles = useStyles();\n\n\tconst content: React.ReactNode = isCompleted ? <Check size={14} /> : icon;\n\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.icon}\n\t\t\t{...rest}\n\t\t\tclassName={cx(\"stepper__icon\", className)}\n\t\t\tdata-active={dataAttr(isActive)}\n\t\t>\n\t\t\t{content}\n\t\t</chakra.div>\n\t);\n};\n\nStepperIcon.displayName = \"StepperIcon\";\n\nexport interface StepperStepProps\n\textends Omit<HTMLChakraProps<\"div\">, \"title\"> {\n\t/**\n\t * The step title\n\t */\n\ttitle: React.ReactNode;\n\t/**\n\t * The step name, used for controlled steppers\n\t */\n\tname?: string;\n\t/**\n\t * Show an icon instead of the step number\n\t */\n\ticon?: React.ReactNode;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\n/**\n * Displays the icon and step title.\n */\nexport const StepperStep: React.FC<StepperStepProps> = (props) => {\n\tconst { title, icon, isActive, isCompleted, ...rest } = props;\n\tconst step = useStep(props);\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\t{...rest}\n\t\t\tcss={styles.step}\n\t\t\tdata-active={dataAttr(step.isActive)}\n\t\t\tdata-completed={dataAttr(step.isCompleted)}\n\t\t\taria-current={step.isActive ? \"step\" : undefined}\n\t\t\tclassName={cx(\"stepper__step\", props.className)}\n\t\t>\n\t\t\t<StepperIcon icon={icon} isActive={isActive} isCompleted={isCompleted} />\n\t\t\t{title && <StepperStepTitle>{title}</StepperStepTitle>}\n\t\t</chakra.div>\n\t);\n};\n\nStepperStep.displayName = \"StepperStep\";\n\nexport interface StepperSeparatorProps extends HTMLChakraProps<\"div\"> {\n\tisActive?: boolean;\n}\n\n/**\n * The separator between steps.\n */\nexport const StepperSeparator: React.FC<StepperSeparatorProps> = (props) => {\n\tconst { isActive, ...rest } = props;\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\t{...rest}\n\t\t\tdata-active={dataAttr(isActive)}\n\t\t\tclassName={cx(\"stepper__separator\", props.className)}\n\t\t\tcss={styles.separator}\n\t\t/>\n\t);\n};\n\nStepperSeparator.displayName = \"StepperSeparator\";\n\n/**\n * The step title.\n */\nexport const StepperStepTitle: React.FC<HTMLChakraProps<\"p\">> = (props) => {\n\tconst styles = useStyles();\n\treturn (\n\t\t<chakra.p\n\t\t\t{...props}\n\t\t\tcss={styles.title}\n\t\t\tclassName={cx(\"stepper__title\", props.className)}\n\t\t/>\n\t);\n};\n\nStepperStepTitle.displayName = \"StepperStepTitle\";\n\n/**\n * Shown when all steps have completed.\n */\nexport const StepperCompleted: React.FC<HTMLChakraProps<\"div\">> = (props) => {\n\tconst styles = useStyles();\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.completed}\n\t\t\t{...props}\n\t\t\tclassName={cx(\"stepper__completed\", props.className)}\n\t\t/>\n\t);\n};\n\nStepperCompleted.displayName = \"StepperCompleted\";\n","import { Timeline as ChakraTimeline } from \"@chakra-ui/react\";\n\n// Pass-through exports for full composition\nexport const TimelineRoot = ChakraTimeline.Root;\nTimelineRoot.displayName = \"TimelineRoot\";\n\nexport const TimelineItem = ChakraTimeline.Item;\nTimelineItem.displayName = \"TimelineItem\";\n\nexport const TimelineConnector = ChakraTimeline.Connector;\nTimelineConnector.displayName = \"TimelineConnector\";\n\nexport const TimelineSeparator = ChakraTimeline.Separator;\nTimelineSeparator.displayName = \"TimelineSeparator\";\n\nexport const TimelineIndicator = ChakraTimeline.Indicator;\nTimelineIndicator.displayName = \"TimelineIndicator\";\n\nexport const TimelineContent = ChakraTimeline.Content;\nTimelineContent.displayName = \"TimelineContent\";\n\nexport const TimelineTitle = ChakraTimeline.Title;\nTimelineTitle.displayName = \"TimelineTitle\";\n\nexport const TimelineDescription = ChakraTimeline.Description;\nTimelineDescription.displayName = \"TimelineDescription\";\n\nexport type TimelineRootProps = ChakraTimeline.RootProps;\nexport type TimelineItemProps = ChakraTimeline.ItemProps;\n","import { TreeView as ChakraTreeView } from \"@chakra-ui/react\";\n\n// Pass-through exports for full composition\nexport const TreeViewRoot = ChakraTreeView.Root;\nTreeViewRoot.displayName = \"TreeViewRoot\";\n\nexport const TreeViewTree = ChakraTreeView.Tree;\nTreeViewTree.displayName = \"TreeViewTree\";\n\nexport const TreeViewBranch = ChakraTreeView.Branch;\nTreeViewBranch.displayName = \"TreeViewBranch\";\n\nexport const TreeViewBranchContent = ChakraTreeView.BranchContent;\nTreeViewBranchContent.displayName = \"TreeViewBranchContent\";\n\nexport const TreeViewBranchControl = ChakraTreeView.BranchControl;\nTreeViewBranchControl.displayName = \"TreeViewBranchControl\";\n\nexport const TreeViewBranchTrigger = ChakraTreeView.BranchTrigger;\nTreeViewBranchTrigger.displayName = \"TreeViewBranchTrigger\";\n\nexport const TreeViewBranchText = ChakraTreeView.BranchText;\nTreeViewBranchText.displayName = \"TreeViewBranchText\";\n\nexport const TreeViewBranchIndicator = ChakraTreeView.BranchIndicator;\nTreeViewBranchIndicator.displayName = \"TreeViewBranchIndicator\";\n\nexport const TreeViewItem = ChakraTreeView.Item;\nTreeViewItem.displayName = \"TreeViewItem\";\n\nexport const TreeViewItemText = ChakraTreeView.ItemText;\nTreeViewItemText.displayName = \"TreeViewItemText\";\n\nexport const TreeViewItemIndicator = ChakraTreeView.ItemIndicator;\nTreeViewItemIndicator.displayName = \"TreeViewItemIndicator\";\n\nexport const TreeViewNode = ChakraTreeView.Node;\n\nexport const TreeViewLabel = ChakraTreeView.Label;\nTreeViewLabel.displayName = \"TreeViewLabel\";\n\nexport type TreeViewRootProps = ChakraTreeView.RootProps;\nexport type TreeViewBranchProps = ChakraTreeView.BranchProps;\nexport type TreeViewItemProps = ChakraTreeView.ItemProps;\n","import { Box, Card, Flex, Text } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface WidgetProps {\n\theading: string;\n\tsubHeading?: string;\n\t/** Icon element (e.g. a lucide-react icon component). */\n\ticon: React.ReactNode;\n\tchildren: React.ReactNode;\n}\n\nexport const Widget: React.FC<WidgetProps> = ({\n\theading,\n\tsubHeading,\n\ticon,\n\tchildren,\n}) => {\n\treturn (\n\t\t<Card.Root height=\"100%\" maxW=\"auto\" overflow=\"hidden\" bg=\"bg-surface\">\n\t\t\t<Card.Body>\n\t\t\t\t<Box mb=\"6\">\n\t\t\t\t\t<Flex justifyContent=\"space-between\" alignItems=\"center\">\n\t\t\t\t\t\t<Text fontWeight=\"semibold\">{heading}</Text>\n\t\t\t\t\t\t<Box color=\"subtle\">{icon}</Box>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{subHeading && (\n\t\t\t\t\t\t<Text fontWeight=\"medium\" fontSize=\"xs\" color=\"muted\">\n\t\t\t\t\t\t\t{subHeading}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t\t{children}\n\t\t\t</Card.Body>\n\t\t</Card.Root>\n\t);\n};\nWidget.displayName = \"Widget\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/card.tsx","../../src/components/card-list.tsx","../../src/components/card-list-data.tsx","../../src/components/card-list-item.tsx","../../src/components/data-table/cells/action-cell.tsx","../../src/components/data-table/cells/cell-utils.ts","../../src/components/data-table/cells/boolean-cell.tsx","../../src/components/data-table/cells/code-cell.tsx","../../src/components/data-table/cells/color-swatch-cell.tsx","../../src/components/data-table/cells/count-cell.tsx","../../src/components/data-table/cells/date-cell.tsx","../../src/components/data-table/cells/number-cell.tsx","../../src/components/data-table/cells/slug-cell.tsx","../../src/components/data-table/cells/status-badge-cell.tsx","../../src/components/data-table/cells/switch-cell.tsx","../../src/components/data-table/cells/truncated-text-cell.tsx","../../src/components/data-table/cells/url-cell.tsx","../../src/components/pagination.tsx","../../src/components/data-table/data-table.tsx","../../src/components/drawer.tsx","../../src/components/fact-box.tsx","../../src/components/labeled-switch.tsx","../../src/components/modal.tsx","../../src/components/stepper/use-stepper.tsx","../../src/components/stepper/stepper.tsx","../../src/components/timeline.tsx","../../src/components/tree-view.tsx","../../src/components/widget.tsx"],"names":["ChakraCard","jsxs","Box","jsx","Text","Children","Flex","Grid","GridItem","HStack","table","_","Portal","React","ChevronRight","Spacer","X","step","createContext","Fragment","Collapsible","ChakraTimeline","ChakraTreeView","Card"],"mappings":"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","file":"index.js","sourcesContent":["import {\n\ttype CardRootProps,\n\tCard as ChakraCard,\n\tHeading,\n} from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface CardProps extends Omit<CardRootProps, \"title\"> {\n\tmaxW?: CardRootProps[\"maxW\"];\n\t/** Card title rendered in Card.Header. */\n\ttitle?: React.ReactNode;\n\t/** Custom header content. Overrides title if both provided. */\n\theader?: React.ReactNode;\n\t/** Footer content rendered in Card.Footer. */\n\tfooter?: React.ReactNode;\n\tchildren: React.ReactNode;\n}\n\nexport const Card = ({\n\tref,\n\tmaxW = \"full\",\n\ttitle,\n\theader,\n\tfooter,\n\tchildren,\n\t...props\n}: CardProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\treturn (\n\t\t<ChakraCard.Root\n\t\t\tref={ref}\n\t\t\tbg=\"bg-surface\"\n\t\t\tw=\"full\"\n\t\t\theight=\"full\"\n\t\t\tmaxW={maxW}\n\t\t\tmarginInline=\"auto\"\n\t\t\toverflow=\"hidden\"\n\t\t\t{...props}\n\t\t>\n\t\t\t{(header || title) && (\n\t\t\t\t<ChakraCard.Header>\n\t\t\t\t\t{header ?? <Heading size=\"md\">{title}</Heading>}\n\t\t\t\t</ChakraCard.Header>\n\t\t\t)}\n\t\t\t<ChakraCard.Body overflow=\"hidden\">{children}</ChakraCard.Body>\n\t\t\t{footer && <ChakraCard.Footer>{footer}</ChakraCard.Footer>}\n\t\t</ChakraCard.Root>\n\t);\n};\nCard.displayName = \"Card\";\n","import { Box, Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport { Children } from \"react\";\n\nexport interface CardListProps {\n\t/** Column header labels displayed above the grid. */\n\theaders: string[];\n\t/** Whether rows have a left-side component slot (e.g., avatar). */\n\thasComponentLeft?: boolean;\n\t/** Whether rows have a right-side menu slot. */\n\thasMenu?: boolean;\n\t/** CardListItem children to render as rows. */\n\tchildren?: React.ReactNode;\n\t/** Total number of grid columns. Defaults to 12. */\n\tcolumnCount?: number;\n\t/** Content to display when there are no rows. */\n\temptyState?: React.ReactNode;\n}\n\nexport const CardList: React.FC<CardListProps> = ({\n\tchildren,\n\theaders,\n\thasComponentLeft,\n\thasMenu,\n\tcolumnCount = 12,\n\temptyState,\n}) => {\n\tconst colSpan = Math.floor(columnCount / headers.length);\n\tconst isEmpty = Children.count(children) === 0;\n\n\treturn (\n\t\t<Box role=\"grid\" aria-colcount={headers.length}>\n\t\t\t<Flex pb={2} px={hasComponentLeft ? 0 : 6}>\n\t\t\t\t{hasComponentLeft && <Box minWidth={75} px={6} />}\n\t\t\t\t<Grid\n\t\t\t\t\tw=\"100%\"\n\t\t\t\t\ttemplateRows=\"repeat(1, 1fr)\"\n\t\t\t\t\ttemplateColumns={`repeat(${columnCount}, 1fr)`}\n\t\t\t\t\tgap={4}\n\t\t\t\t\tfontWeight=\"semibold\"\n\t\t\t\t\tcolor=\"muted\"\n\t\t\t\t>\n\t\t\t\t\t{headers.map((header) => (\n\t\t\t\t\t\t<GridItem key={header} colSpan={colSpan} role=\"columnheader\">\n\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t</GridItem>\n\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t\t\t{hasMenu && <Box minWidth=\"80px\" px={6} />}\n\t\t\t</Flex>\n\n\t\t\t<Flex direction=\"column\" gap=\"3\">\n\t\t\t\t{isEmpty && emptyState ? emptyState : children}\n\t\t\t</Flex>\n\t\t</Box>\n\t);\n};\nCardList.displayName = \"CardList\";\n","import { Text, type TextProps } from \"@chakra-ui/react\";\nimport { Tooltip } from \"../primitives/tooltip\";\n\nexport interface CardListDataProps extends TextProps {\n\t/** Cell content. Strings are shown in a tooltip on overflow. */\n\tchildren: React.ReactNode;\n}\n\nexport const CardListData: React.FC<CardListDataProps> = ({\n\tchildren,\n\t...restProps\n}) => {\n\tconst textContent =\n\t\ttypeof children === \"string\" || typeof children === \"number\"\n\t\t\t? String(children)\n\t\t\t: null;\n\n\treturn (\n\t\t<Tooltip content={textContent ?? \"\"} disabled={!textContent}>\n\t\t\t<Text lineClamp={1} color=\"muted\" {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</Tooltip>\n\t);\n};\nCardListData.displayName = \"CardListData\";\n","import { Box, Flex, Grid, GridItem, Menu, Portal } from \"@chakra-ui/react\";\nimport { Ellipsis } from \"lucide-react\";\nimport type React from \"react\";\nimport { Children } from \"react\";\n\nexport interface CardListMenuItem<T = string> {\n\t/** Text label for the menu item. */\n\tlabel: string;\n\t/** Callback fired when the menu item is clicked. */\n\tonClick: () => void;\n\t/** Icon rendered before the label. */\n\ticon?: React.ReactNode;\n\t/** Text color override for the menu item. */\n\tcolor?: string;\n\t/** Value associated with the menu item. */\n\tvalue?: T;\n}\n\nexport interface CardListItemProps<T = string> {\n\t/** Whether the item is visually selected. */\n\tisActive?: boolean;\n\t/** Callback fired when the row is clicked. */\n\thandleItemClick?: () => void;\n\t/** Callback fired when the row is double-clicked. */\n\thandleItemDoubleClick?: () => void;\n\t/** Menu items rendered in the row's action menu. */\n\tmenuItems?: CardListMenuItem<T>[];\n\t/** Component rendered on the left side of the row (e.g., avatar). */\n\tcomponentLeft?: React.ReactNode;\n\t/** CardListData children to render as cells. */\n\tchildren: React.ReactNode;\n\t/** Total number of grid columns. Defaults to 12. */\n\tcolumnCount?: number;\n}\n\nexport const CardListItem = <T extends string = string>({\n\tisActive,\n\thandleItemClick,\n\thandleItemDoubleClick,\n\tmenuItems,\n\tcomponentLeft,\n\tchildren,\n\tcolumnCount = 12,\n}: CardListItemProps<T>) => {\n\tconst colSpan = Math.floor(columnCount / Children.count(children));\n\n\treturn (\n\t\t<Flex\n\t\t\trole=\"row\"\n\t\t\tboxShadow={isActive ? \"0 0 0 2px token(colors.accent)\" : \"sm\"}\n\t\t\tbg=\"bg-surface\"\n\t\t\tborderRadius=\"lg\"\n\t\t\talignItems=\"stretch\"\n\t\t\toverflow=\"hidden\"\n\t\t\ttransition=\"all 200ms ease\"\n\t\t>\n\t\t\t<Flex\n\t\t\t\twidth=\"100%\"\n\t\t\t\ttransition=\"all 200ms ease\"\n\t\t\t\t_hover={{ bg: \"bg-subtle\", cursor: \"pointer\" }}\n\t\t\t\talignItems=\"stretch\"\n\t\t\t\toverflow=\"hidden\"\n\t\t\t\tonClick={handleItemClick}\n\t\t\t\tonDoubleClick={handleItemDoubleClick}\n\t\t\t\t{...(handleItemClick && {\n\t\t\t\t\trole: \"button\",\n\t\t\t\t\ttabIndex: 0,\n\t\t\t\t\tonKeyDown: (e: React.KeyboardEvent) => {\n\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleItemClick();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{componentLeft && (\n\t\t\t\t\t<Box\n\t\t\t\t\t\twidth={75}\n\t\t\t\t\t\tpx={6}\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{componentLeft}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t<Grid\n\t\t\t\t\tpx={componentLeft === undefined ? 6 : 0}\n\t\t\t\t\tpy={4}\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\ttemplateRows=\"repeat(1, 1fr)\"\n\t\t\t\t\ttemplateColumns={`repeat(${columnCount}, 1fr)`}\n\t\t\t\t\tgap={4}\n\t\t\t\t>\n\t\t\t\t\t{Children.map(children, (child, index) => (\n\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: no alternative for key\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tcolSpan={colSpan}\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{child}\n\t\t\t\t\t\t</GridItem>\n\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t\t</Flex>\n\t\t\t{menuItems && (\n\t\t\t\t<Menu.Root>\n\t\t\t\t\t<Menu.Trigger\n\t\t\t\t\t\twidth=\"80px\"\n\t\t\t\t\t\tpx={6}\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tbg=\"accent\"\n\t\t\t\t\t\tcolor=\"on-accent\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t_hover={{ opacity: 0.9 }}\n\t\t\t\t\t\taria-label=\"Row actions\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Ellipsis size={20} />\n\t\t\t\t\t</Menu.Trigger>\n\t\t\t\t\t<Portal>\n\t\t\t\t\t\t<Menu.Positioner>\n\t\t\t\t\t\t\t<Menu.Content>\n\t\t\t\t\t\t\t\t{menuItems.map((menuItem) => (\n\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\tkey={menuItem.label}\n\t\t\t\t\t\t\t\t\t\tonClick={menuItem.onClick}\n\t\t\t\t\t\t\t\t\t\tcolor={menuItem.color}\n\t\t\t\t\t\t\t\t\t\tvalue={menuItem.value ?? menuItem.label}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{menuItem.icon}\n\t\t\t\t\t\t\t\t\t\t{menuItem.label}\n\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</Menu.Content>\n\t\t\t\t\t\t</Menu.Positioner>\n\t\t\t\t\t</Portal>\n\t\t\t\t</Menu.Root>\n\t\t\t)}\n\t\t</Flex>\n\t);\n};\n(CardListItem as { displayName?: string }).displayName = \"CardListItem\";\n","import type React from \"react\";\nimport { IconButton, type IconButtonProps } from \"../../../atoms/button\";\nimport { HStack } from \"../../../primitives/layout\";\nimport { Tooltip } from \"../../../primitives/tooltip\";\n\nexport interface ActionCellAction {\n\ticon: React.ElementType;\n\tlabel: string;\n\tonClick?: () => void;\n\t/** Renders the action as a link. Mutually exclusive with onClick. */\n\thref?: string;\n\t/** Adds a download attribute to the link. Only used with href. */\n\tdownload?: boolean | string;\n\t/** Link target (e.g., \"_blank\"). Only used with href. */\n\ttarget?: string;\n\tvariant?: IconButtonProps[\"variant\"];\n\tcolorPalette?: string;\n\tdisabled?: boolean;\n}\n\nexport interface ActionCellProps {\n\tactions: ActionCellAction[];\n}\n\nexport const ActionCell: React.FC<ActionCellProps> = ({ actions }) => {\n\treturn (\n\t\t<HStack gap={1}>\n\t\t\t{actions.map((action) => (\n\t\t\t\t<Tooltip key={action.label} content={action.label}>\n\t\t\t\t\t{action.href ? (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\taria-label={action.label}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tvariant={action.variant ?? \"ghost\"}\n\t\t\t\t\t\t\tcolorPalette={action.colorPalette}\n\t\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={action.href}\n\t\t\t\t\t\t\t\tdownload={action.download}\n\t\t\t\t\t\t\t\ttarget={action.target}\n\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\taction.target === \"_blank\" ? \"noopener noreferrer\" : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<action.icon size={16} />\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\taria-label={action.label}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tvariant={action.variant ?? \"ghost\"}\n\t\t\t\t\t\t\tcolorPalette={action.colorPalette}\n\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<action.icon size={16} />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t)}\n\t\t\t\t</Tooltip>\n\t\t\t))}\n\t\t</HStack>\n\t);\n};\nActionCell.displayName = \"ActionCell\";\n","/** Dash shown for null/undefined cell values. */\nexport const emptyCellValue = \"—\";\n\n/** Truncate text to maxLength, appending \"…\" if exceeded. */\nexport function truncateText(text: string, maxLength: number): string {\n\tif (text.length <= maxLength) return text;\n\treturn `${text.slice(0, maxLength)}…`;\n}\n\n/** Return singular or plural form based on count. */\nexport function pluralize(\n\tcount: number,\n\tsingular: string,\n\tplural: string,\n): string {\n\treturn count === 1 ? singular : plural;\n}\n","import type React from \"react\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface BooleanCellProps {\n\tvalue: boolean | null | undefined;\n\ttrueLabel?: string;\n\tfalseLabel?: string;\n}\n\nexport const BooleanCell: React.FC<BooleanCellProps> = ({\n\tvalue,\n\ttrueLabel = \"Yes\",\n\tfalseLabel = \"No\",\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\treturn <span>{value ? trueLabel : falseLabel}</span>;\n};\nBooleanCell.displayName = \"BooleanCell\";\n","import type React from \"react\";\nimport { Code } from \"../../../primitives/typography\";\nimport { emptyCellValue, truncateText } from \"./cell-utils\";\n\nexport interface CodeCellProps {\n\tvalue: string | null | undefined;\n\tmaxLength?: number;\n}\n\nexport const CodeCell: React.FC<CodeCellProps> = ({\n\tvalue,\n\tmaxLength = 80,\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\tconst display = truncateText(value, maxLength);\n\treturn (\n\t\t<Code title={value} fontSize=\"0.85em\">\n\t\t\t{display}\n\t\t</Code>\n\t);\n};\nCodeCell.displayName = \"CodeCell\";\n","import type React from \"react\";\nimport { Box, HStack } from \"../../../primitives/layout\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface ColorSwatchCellProps {\n\tvalue: string | null | undefined;\n}\n\nexport const ColorSwatchCell: React.FC<ColorSwatchCellProps> = ({ value }) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\treturn (\n\t\t<HStack gap={2}>\n\t\t\t<Box\n\t\t\t\twidth=\"1rem\"\n\t\t\t\theight=\"1rem\"\n\t\t\t\tborderRadius=\"full\"\n\t\t\t\tbg={value}\n\t\t\t\tborderWidth=\"1px\"\n\t\t\t\tborderColor=\"border\"\n\t\t\t\tflexShrink={0}\n\t\t\t/>\n\t\t\t<span>{value}</span>\n\t\t</HStack>\n\t);\n};\nColorSwatchCell.displayName = \"ColorSwatchCell\";\n","import type React from \"react\";\nimport { emptyCellValue, pluralize } from \"./cell-utils\";\n\nexport interface CountCellProps {\n\tvalue: unknown[] | Record<string, unknown> | number | null | undefined;\n\tsingular: string;\n\tplural: string;\n\tcountFn?: (value: unknown) => number;\n}\n\nexport const CountCell: React.FC<CountCellProps> = ({\n\tvalue,\n\tsingular,\n\tplural,\n\tcountFn,\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\n\tlet count: number;\n\tif (countFn) {\n\t\tcount = countFn(value);\n\t\tif (!Number.isFinite(count)) return <span>{emptyCellValue}</span>;\n\t} else if (typeof value === \"number\") {\n\t\tcount = value;\n\t} else if (Array.isArray(value)) {\n\t\tcount = value.length;\n\t} else if (typeof value === \"object\") {\n\t\tcount = Object.keys(value).length;\n\t} else {\n\t\treturn <span>{emptyCellValue}</span>;\n\t}\n\n\treturn (\n\t\t<span>\n\t\t\t{count} {pluralize(count, singular, plural)}\n\t\t</span>\n\t);\n};\nCountCell.displayName = \"CountCell\";\n","import dayjs from \"dayjs\";\nimport type React from \"react\";\nimport { formatRelativeDateTime } from \"../../../atoms/datetime/utils/relative-date-time-utils\";\nimport { Tooltip } from \"../../../primitives/tooltip\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface DateCellProps {\n\tvalue: string | Date | number | null | undefined;\n\tformat?: string;\n\tshowRelative?: boolean;\n}\n\nexport const DateCell: React.FC<DateCellProps> = ({\n\tvalue,\n\tformat = \"MMM D, YYYY\",\n\tshowRelative,\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\n\tconst parsed = dayjs(value);\n\tif (!parsed.isValid()) return <span>{emptyCellValue}</span>;\n\n\tconst formatted = parsed.format(format);\n\n\tif (showRelative) {\n\t\tconst relative = formatRelativeDateTime(value);\n\t\treturn (\n\t\t\t<Tooltip content={formatted}>\n\t\t\t\t<span>{relative}</span>\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\n\treturn <span>{formatted}</span>;\n};\nDateCell.displayName = \"DateCell\";\n","import type React from \"react\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface NumberCellProps {\n\tvalue: number | string | null | undefined;\n\tlocale?: string;\n}\n\nexport const NumberCell: React.FC<NumberCellProps> = ({ value, locale }) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\tconst num = Number(value);\n\tconst display = Number.isNaN(num)\n\t\t? String(value)\n\t\t: num.toLocaleString(locale);\n\treturn <span>{display}</span>;\n};\nNumberCell.displayName = \"NumberCell\";\n","import type React from \"react\";\nimport { Code } from \"../../../primitives/typography\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface SlugCellProps {\n\tvalue: string | null | undefined;\n}\n\nexport const SlugCell: React.FC<SlugCellProps> = ({ value }) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\treturn <Code>{value}</Code>;\n};\nSlugCell.displayName = \"SlugCell\";\n","import type React from \"react\";\nimport { StatusBadge } from \"../../../atoms/status-badge\";\nimport { VStack } from \"../../../primitives/layout\";\nimport { Text } from \"../../../primitives/typography\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface StatusBadgeCellProps {\n\tvalue: string | null | undefined;\n\tcolorMap?: Record<string, string>;\n\t/** Fallback color when value has no entry in colorMap. @default \"gray\" */\n\tfallbackColor?: string;\n\t/** Optional detail text displayed below the badge (e.g., error message). */\n\tdetail?: string | null;\n\t/** Color for the detail text. @default \"fg.error\" */\n\tdetailColor?: string;\n}\n\nexport const StatusBadgeCell: React.FC<StatusBadgeCellProps> = ({\n\tvalue,\n\tcolorMap,\n\tfallbackColor = \"gray\",\n\tdetail,\n\tdetailColor = \"fg.error\",\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\tconst color = colorMap?.[value] ?? fallbackColor;\n\tconst badge = <StatusBadge label={value} color={color} />;\n\n\tif (detail) {\n\t\treturn (\n\t\t\t<VStack align=\"start\" gap={0.5}>\n\t\t\t\t{badge}\n\t\t\t\t<Text fontSize=\"xs\" color={detailColor}>\n\t\t\t\t\t{detail}\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t);\n\t}\n\n\treturn badge;\n};\nStatusBadgeCell.displayName = \"StatusBadgeCell\";\n","import type React from \"react\";\nimport { Switch } from \"../../../primitives/switch\";\n\nexport interface SwitchCellProps {\n\tchecked: boolean;\n\tonChange: (checked: boolean) => void;\n\tdisabled?: boolean;\n\tcolorPalette?: string;\n\t/** Accessible label for screen readers. */\n\tlabel?: string;\n}\n\nexport const SwitchCell: React.FC<SwitchCellProps> = ({\n\tchecked,\n\tonChange,\n\tdisabled,\n\tcolorPalette = \"green\",\n\tlabel,\n}) => {\n\treturn (\n\t\t<Switch\n\t\t\tchecked={checked}\n\t\t\tonCheckedChange={(details) => onChange(!!details.checked)}\n\t\t\tdisabled={disabled}\n\t\t\tcolorPalette={colorPalette}\n\t\t\taria-label={label}\n\t\t\tonClick={(e: React.MouseEvent) => e.stopPropagation()}\n\t\t/>\n\t);\n};\nSwitchCell.displayName = \"SwitchCell\";\n","import type React from \"react\";\nimport { emptyCellValue, truncateText } from \"./cell-utils\";\n\nexport interface TruncatedTextCellProps {\n\tvalue: string | null | undefined;\n\tmaxLength?: number;\n}\n\nexport const TruncatedTextCell: React.FC<TruncatedTextCellProps> = ({\n\tvalue,\n\tmaxLength,\n}) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\tconst isTruncated = maxLength != null && value.length > maxLength;\n\tconst display = isTruncated ? truncateText(value, maxLength) : value;\n\treturn <span title={isTruncated ? value : undefined}>{display}</span>;\n};\nTruncatedTextCell.displayName = \"TruncatedTextCell\";\n","import type React from \"react\";\nimport { Link } from \"../../../primitives/typography\";\nimport { emptyCellValue } from \"./cell-utils\";\n\nexport interface UrlCellProps {\n\tvalue: string | null | undefined;\n\tlabel?: string;\n}\n\nexport const UrlCell: React.FC<UrlCellProps> = ({ value, label }) => {\n\tif (value == null) return <span>{emptyCellValue}</span>;\n\treturn (\n\t\t<Link\n\t\t\thref={value}\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\ttitle={value}\n\t\t\tcolor=\"accent\"\n\t\t>\n\t\t\t{label || value}\n\t\t</Link>\n\t);\n};\nUrlCell.displayName = \"UrlCell\";\n","import { HStack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport type React from \"react\";\nimport { Button, IconButton } from \"../atoms/button\";\n\nexport interface PaginationProps {\n\t/** Current page (1-based). */\n\tpage: number;\n\t/** Total number of items. */\n\ttotal: number;\n\t/** Items per page. @default 10 */\n\tpageSize?: number;\n\t/** Called when the page changes. */\n\tonPageChange: (page: number) => void;\n\t/** Maximum page buttons to show. @default 5 */\n\tmaxVisiblePages?: number;\n\t/** Label for the previous button. @default \"Previous page\" */\n\tpreviousLabel?: string;\n\t/** Label for the next button. @default \"Next page\" */\n\tnextLabel?: string;\n}\n\nexport const Pagination: React.FC<PaginationProps> = (props) => {\n\tconst {\n\t\tpage,\n\t\ttotal,\n\t\tpageSize = 10,\n\t\tonPageChange,\n\t\tmaxVisiblePages = 5,\n\t\tpreviousLabel = \"Previous page\",\n\t\tnextLabel = \"Next page\",\n\t} = props;\n\n\tconst totalPages = Math.max(1, Math.ceil(total / pageSize));\n\tconst currentPage = Math.min(Math.max(1, page), totalPages);\n\n\tconst pages = getVisiblePages(currentPage, totalPages, maxVisiblePages);\n\n\treturn (\n\t\t<HStack gap={1}>\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\taria-label={previousLabel}\n\t\t\t\tdisabled={currentPage <= 1}\n\t\t\t\tonClick={() => onPageChange(currentPage - 1)}\n\t\t\t>\n\t\t\t\t<ChevronLeft size={16} />\n\t\t\t</IconButton>\n\t\t\t{pages.map((p) =>\n\t\t\t\tp === \"ellipsis-start\" || p === \"ellipsis-end\" ? (\n\t\t\t\t\t<Text key={p} px={2} color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t\t…\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={p}\n\t\t\t\t\t\tvariant={p === currentPage ? \"solid\" : \"ghost\"}\n\t\t\t\t\t\tcolorPalette={p === currentPage ? \"primary\" : undefined}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tminW=\"36px\"\n\t\t\t\t\t\tonClick={() => onPageChange(p)}\n\t\t\t\t\t\taria-current={p === currentPage ? \"page\" : undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t{p}\n\t\t\t\t\t</Button>\n\t\t\t\t),\n\t\t\t)}\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\taria-label={nextLabel}\n\t\t\t\tdisabled={currentPage >= totalPages}\n\t\t\t\tonClick={() => onPageChange(currentPage + 1)}\n\t\t\t>\n\t\t\t\t<ChevronRight size={16} />\n\t\t\t</IconButton>\n\t\t</HStack>\n\t);\n};\n\nPagination.displayName = \"Pagination\";\n\nfunction getVisiblePages(\n\tcurrent: number,\n\ttotal: number,\n\tmax: number,\n): Array<number | \"ellipsis-start\" | \"ellipsis-end\"> {\n\tif (total <= max) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst pages: Array<number | \"ellipsis-start\" | \"ellipsis-end\"> = [];\n\tconst half = Math.floor((max - 2) / 2);\n\tlet start = Math.max(2, current - half);\n\tlet end = Math.min(total - 1, current + half);\n\n\tif (current - half <= 2) {\n\t\tend = Math.min(total - 1, max - 1);\n\t}\n\tif (current + half >= total - 1) {\n\t\tstart = Math.max(2, total - max + 2);\n\t}\n\n\tpages.push(1);\n\tif (start > 2) pages.push(\"ellipsis-start\");\n\tfor (let i = start; i <= end; i++) {\n\t\tpages.push(i);\n\t}\n\tif (end < total - 1) pages.push(\"ellipsis-end\");\n\tpages.push(total);\n\n\treturn pages;\n}\n","import { Box, Checkbox, Flex, Table, Text } from \"@chakra-ui/react\";\nimport {\n\ttype ColumnDef,\n\tflexRender,\n\tgetCoreRowModel,\n\tgetSortedRowModel,\n\ttype OnChangeFn,\n\ttype Row,\n\ttype RowSelectionState,\n\ttype SortingState,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDown, ArrowUp, ArrowUpDown } from \"lucide-react\";\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport { Skeleton } from \"../../primitives/skeleton\";\nimport { Pagination } from \"../pagination\";\n\nexport interface DataTableProps<T extends Record<string, unknown>> {\n\t/** Column definitions for TanStack Table */\n\tcolumns: ColumnDef<T, unknown>[];\n\t/** Data array */\n\tdata: T[];\n\t/** Enable row selection */\n\tselectable?: boolean;\n\t/** Controlled row selection state */\n\trowSelection?: RowSelectionState;\n\t/** Row selection change handler */\n\tonRowSelectionChange?: OnChangeFn<RowSelectionState>;\n\t/** Controlled sorting state */\n\tsorting?: SortingState;\n\t/** Sorting change handler */\n\tonSortingChange?: OnChangeFn<SortingState>;\n\t/** Row click handler */\n\tonRowClick?: (row: T) => void;\n\t/** Loading state */\n\tloading?: boolean;\n\t/** Empty state content */\n\temptyState?: React.ReactNode;\n\t/** Pagination - total items */\n\ttotal?: number;\n\t/** Pagination - current page (1-based) */\n\tpage?: number;\n\t/** Pagination - items per page */\n\tpageSize?: number;\n\t/** Pagination - page change handler */\n\tonPageChange?: (page: number) => void;\n\t/** Table variant */\n\tvariant?: \"line\" | \"striped\" | \"hoverable\";\n\t/** Custom row ID extractor for stable selection across data changes. @default row index */\n\tgetRowId?: (originalRow: T, index: number, parent?: Row<T>) => string;\n}\n\nconst LOADING_ROW_COUNT = 5;\n\nfunction DataTableInner<T extends Record<string, unknown>>(\n\tprops: DataTableProps<T>,\n) {\n\tconst {\n\t\tcolumns,\n\t\tdata,\n\t\tselectable = false,\n\t\trowSelection,\n\t\tonRowSelectionChange,\n\t\tsorting,\n\t\tonSortingChange,\n\t\tonRowClick,\n\t\tloading = false,\n\t\temptyState,\n\t\ttotal,\n\t\tpage,\n\t\tpageSize,\n\t\tonPageChange,\n\t\tvariant = \"line\",\n\t\tgetRowId,\n\t} = props;\n\n\tconst selectionColumn = useMemo<ColumnDef<T, unknown>>(\n\t\t() => ({\n\t\t\tid: \"_select\",\n\t\t\theader: ({ table }) => (\n\t\t\t\t<Checkbox.Root\n\t\t\t\t\tchecked={\n\t\t\t\t\t\ttable.getIsAllPageRowsSelected()\n\t\t\t\t\t\t\t? true\n\t\t\t\t\t\t\t: table.getIsSomePageRowsSelected()\n\t\t\t\t\t\t\t\t? \"indeterminate\"\n\t\t\t\t\t\t\t\t: false\n\t\t\t\t\t}\n\t\t\t\t\tonCheckedChange={(details) =>\n\t\t\t\t\t\ttable.toggleAllPageRowsSelected(!!details.checked)\n\t\t\t\t\t}\n\t\t\t\t\taria-label=\"Select all rows\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t>\n\t\t\t\t\t<Checkbox.HiddenInput />\n\t\t\t\t\t<Checkbox.Control />\n\t\t\t\t</Checkbox.Root>\n\t\t\t),\n\t\t\tcell: ({ row }) => (\n\t\t\t\t<Checkbox.Root\n\t\t\t\t\tchecked={row.getIsSelected()}\n\t\t\t\t\tonCheckedChange={(details) => row.toggleSelected(!!details.checked)}\n\t\t\t\t\taria-label={`Select row ${String(row.index + 1)}`}\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox.HiddenInput />\n\t\t\t\t\t<Checkbox.Control />\n\t\t\t\t</Checkbox.Root>\n\t\t\t),\n\t\t\tenableSorting: false,\n\t\t}),\n\t\t[],\n\t);\n\n\tconst allColumns = useMemo(\n\t\t() => (selectable ? [selectionColumn, ...columns] : columns),\n\t\t[selectable, selectionColumn, columns],\n\t);\n\n\tconst table = useReactTable({\n\t\tdata,\n\t\tcolumns: allColumns,\n\t\tstate: {\n\t\t\t...(sorting !== undefined ? { sorting } : {}),\n\t\t\t...(rowSelection !== undefined ? { rowSelection } : {}),\n\t\t},\n\t\tonSortingChange,\n\t\tonRowSelectionChange,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t...(onSortingChange === undefined\n\t\t\t? { getSortedRowModel: getSortedRowModel() }\n\t\t\t: {}),\n\t\tenableRowSelection: selectable,\n\t\tmanualSorting: onSortingChange !== undefined,\n\t\t...(getRowId !== undefined ? { getRowId } : {}),\n\t});\n\n\tconst hasPagination =\n\t\ttotal !== undefined &&\n\t\tpage !== undefined &&\n\t\tpageSize !== undefined &&\n\t\tonPageChange !== undefined;\n\n\tconst isEmpty = !loading && data.length === 0;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap={4}>\n\t\t\t<Box overflowX=\"auto\">\n\t\t\t\t{/* Chakra v3's Table.Root types only include built-in variants.\n\t\t\t\t Our custom table recipe adds \"striped\" and \"hoverable\" variants\n\t\t\t\t that work at runtime but require a type cast. Module augmentation\n\t\t\t\t for slot recipe variants is not supported in Chakra v3. */}\n\t\t\t\t<Table.Root variant={variant as \"line\"}>\n\t\t\t\t\t<Table.Header>\n\t\t\t\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t\t\t\t<Table.Row key={headerGroup.id}>\n\t\t\t\t\t\t\t\t{headerGroup.headers.map((header) => {\n\t\t\t\t\t\t\t\t\tconst canSort = header.column.getCanSort();\n\t\t\t\t\t\t\t\t\tconst sorted = header.column.getIsSorted();\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Table.ColumnHeader\n\t\t\t\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\t\t\t\tcursor={canSort ? \"pointer\" : undefined}\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tcanSort\n\t\t\t\t\t\t\t\t\t\t\t\t\t? header.column.getToggleSortingHandler()\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\t\t\tsorted === \"asc\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"ascending\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: sorted === \"desc\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"descending\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: canSort\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tuserSelect={canSort ? \"none\" : undefined}\n\t\t\t\t\t\t\t\t\t\t\ttabIndex={canSort ? 0 : undefined}\n\t\t\t\t\t\t\t\t\t\t\trole={canSort ? \"button\" : undefined}\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\t\t\tcanSort\n\t\t\t\t\t\t\t\t\t\t\t\t\t? (e: React.KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.column.getToggleSortingHandler()?.(e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Flex alignItems=\"center\" gap={1}>\n\t\t\t\t\t\t\t\t\t\t\t\t{header.isPlaceholder\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && sorted === \"asc\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowUp size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && sorted === \"desc\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowDown size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{canSort && !sorted && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ArrowUpDown size={14} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t\t\t\t</Table.ColumnHeader>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Table.Header>\n\t\t\t\t\t<Table.Body>\n\t\t\t\t\t\t{loading &&\n\t\t\t\t\t\t\tArray.from({ length: LOADING_ROW_COUNT }).map((_, rowIdx) => (\n\t\t\t\t\t\t\t\t<Table.Row key={`loading-${String(rowIdx)}`} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t{allColumns.map((_, colIdx) => (\n\t\t\t\t\t\t\t\t\t\t<Table.Cell key={`loading-cell-${String(colIdx)}`}>\n\t\t\t\t\t\t\t\t\t\t\t<Skeleton height=\"4\" borderRadius=\"sm\" />\n\t\t\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!loading &&\n\t\t\t\t\t\t\ttable.getRowModel().rows.map((row) => (\n\t\t\t\t\t\t\t\t<Table.Row\n\t\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\t\tdata-selected={row.getIsSelected() || undefined}\n\t\t\t\t\t\t\t\t\tcursor={onRowClick ? \"pointer\" : undefined}\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tonRowClick ? () => onRowClick(row.original) : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttabIndex={onRowClick ? 0 : undefined}\n\t\t\t\t\t\t\t\t\trole={onRowClick ? \"button\" : undefined}\n\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\tonRowClick\n\t\t\t\t\t\t\t\t\t\t\t? (e: React.KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonRowClick(row.original);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{row.getVisibleCells().map((cell) => (\n\t\t\t\t\t\t\t\t\t\t<Table.Cell key={cell.id}>\n\t\t\t\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{isEmpty && (\n\t\t\t\t\t\t\t<Table.Row>\n\t\t\t\t\t\t\t\t<Table.Cell\n\t\t\t\t\t\t\t\t\tcolSpan={allColumns.length}\n\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\tpy={8}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{emptyState ?? (\n\t\t\t\t\t\t\t\t\t\t<Text color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t\t\t\t\t\t\tNo data available\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Table.Cell>\n\t\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Table.Body>\n\t\t\t\t</Table.Root>\n\t\t\t</Box>\n\t\t\t{hasPagination && (\n\t\t\t\t<Flex justifyContent=\"center\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tpage={page}\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpageSize={pageSize}\n\t\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\t/>\n\t\t\t\t</Flex>\n\t\t\t)}\n\t\t</Flex>\n\t);\n}\n\nexport const DataTable = DataTableInner as typeof DataTableInner & {\n\tdisplayName: string;\n};\nDataTable.displayName = \"DataTable\";\n","import {\n\tDrawer,\n\ttype DrawerRootProps,\n\tFlex,\n\tPortal,\n\tSpacer,\n} from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"../atoms/button\";\n\nexport interface DrawerProps\n\textends Omit<DrawerRootProps, \"open\" | \"onOpenChange\"> {\n\t/** Whether the drawer is open. */\n\topen: boolean;\n\t/** Called when the drawer should close. */\n\tonClose(): void;\n\t/** Header title content. */\n\ttitle: string | React.ReactNode;\n\t/** Text displayed in the footer area (left side). */\n\tfooterText?: string | React.ReactNode;\n\t/** Drawer body content. */\n\tchildren: React.ReactNode;\n\t/** Label for the save button. @default \"Save\" */\n\tsaveLabel?: string;\n\t/** Label for the close button. @default \"Close\" */\n\tcloseLabel?: string;\n\t/** Whether the save button is disabled. */\n\tsaveButtonDisabled?: boolean;\n\t/** Whether the save action is in progress. Shows spinner on save button. */\n\tloading?: boolean;\n\t/** Extra buttons rendered before the save button. */\n\tadditionalButtons?: React.ReactNode;\n\t/** Called when the save button is clicked. If not provided, no save button is shown. */\n\tonSave?(): void;\n}\n\nexport const DrawerRoot: React.FC<DrawerProps> = ({\n\tchildren,\n\ttitle,\n\tfooterText,\n\tsaveLabel = \"Save\",\n\tcloseLabel = \"Close\",\n\tsaveButtonDisabled = false,\n\tloading = false,\n\tadditionalButtons,\n\tonSave,\n\topen,\n\tonClose,\n\t...rest\n}) => {\n\treturn (\n\t\t<Drawer.Root\n\t\t\t{...rest}\n\t\t\topen={open}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\tif (!details.open) {\n\t\t\t\t\tonClose();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Drawer.Backdrop />\n\t\t\t\t<Drawer.Positioner>\n\t\t\t\t\t<Drawer.Content>\n\t\t\t\t\t\t<Drawer.CloseTrigger asChild>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\t\ttop={2}\n\t\t\t\t\t\t\t\tinsetInlineEnd={2}\n\t\t\t\t\t\t\t\taria-label={closeLabel}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X size={16} />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Drawer.CloseTrigger>\n\n\t\t\t\t\t\t<Drawer.Header\n\t\t\t\t\t\t\tbg=\"bg-surface\"\n\t\t\t\t\t\t\tborderBottom=\"1px solid\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Drawer.Title>{title}</Drawer.Title>\n\t\t\t\t\t\t</Drawer.Header>\n\n\t\t\t\t\t\t<Drawer.Body>{children}</Drawer.Body>\n\n\t\t\t\t\t\t<Drawer.Footer\n\t\t\t\t\t\t\tfontSize=\"sm\"\n\t\t\t\t\t\t\tbg=\"bg-subtle\"\n\t\t\t\t\t\t\tborderTop=\"1px solid\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{footerText}\n\t\t\t\t\t\t\t<Spacer />\n\t\t\t\t\t\t\t<Flex gap={4}>\n\t\t\t\t\t\t\t\t{additionalButtons}\n\t\t\t\t\t\t\t\t{onSave && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\tvariant=\"solid\"\n\t\t\t\t\t\t\t\t\t\tcolorPalette=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={onSave}\n\t\t\t\t\t\t\t\t\t\tdisabled={saveButtonDisabled || loading}\n\t\t\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{saveLabel}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t</Drawer.Footer>\n\t\t\t\t\t</Drawer.Content>\n\t\t\t\t</Drawer.Positioner>\n\t\t\t</Portal>\n\t\t</Drawer.Root>\n\t);\n};\nDrawerRoot.displayName = \"DrawerRoot\";\n","import {\n\tBox,\n\tButtonGroup,\n\ttype CardRootProps,\n\tCollapsible,\n\tFlex,\n\tHStack,\n\tText,\n} from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport React, { type MouseEventHandler } from \"react\";\nimport { IconButton } from \"../atoms/button\";\nimport {\n\tMenuContent,\n\tMenuItem,\n\tMenuRoot,\n\tMenuTrigger,\n} from \"../primitives/menu\";\nimport { Card } from \"./card\";\n\nexport interface FactBoxAction {\n\tid: number;\n\ttype: \"button\" | \"menuButton\";\n\tariaLabel: string;\n\ticon?: React.ReactElement;\n\tonClick?: MouseEventHandler<HTMLButtonElement>;\n\tonSelect?: VoidFunction;\n\titems?: FactBoxAction[];\n}\n\nexport interface FactBoxProps extends CardRootProps {\n\tname?: string | React.ReactNode;\n\tactions?: FactBoxAction[];\n\tchildren: React.ReactNode;\n\tcollapsible?: boolean;\n\t/** Label for collapse button when expanded. @default \"Collapse\" */\n\tcollapseLabel?: string;\n\t/** Label for collapse button when collapsed. @default \"Expand\" */\n\texpandLabel?: string;\n}\n\nexport const FactBox: React.FC<FactBoxProps> = (props) => {\n\tconst {\n\t\tname,\n\t\tactions,\n\t\tcollapsible = true,\n\t\tcollapseLabel = \"Collapse\",\n\t\texpandLabel = \"Expand\",\n\t\t...rest\n\t} = props;\n\n\tconst [show, setShow] = React.useState(true);\n\n\tconst handleToggle = () => {\n\t\tsetShow(!show);\n\t};\n\n\treturn (\n\t\t<Box w=\"full\">\n\t\t\t{collapsible ? (\n\t\t\t\t<Flex\n\t\t\t\t\tflexDirection=\"column\"\n\t\t\t\t\tmx=\"auto\"\n\t\t\t\t\tborderBottom=\"1px solid\"\n\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t>\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay={{ md: \"flex\" }}\n\t\t\t\t\t\talignItems={{ md: \"center\" }}\n\t\t\t\t\t\tjustifyContent={{ md: \"space-between\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Box minW={0} flex=\"1 1 0%\">\n\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\taria-label={show ? collapseLabel : expandLabel}\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thandleToggle();\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{show ? (\n\t\t\t\t\t\t\t\t\t\t<ChevronDown size={16} />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ChevronRight size={16} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t{typeof name === \"string\" ? <Text>{name}</Text> : name}\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t{actions ? (\n\t\t\t\t\t\t\t<Flex flexShrink={0} marginInlineStart={{ md: 4 }}>\n\t\t\t\t\t\t\t\t<ButtonGroup>\n\t\t\t\t\t\t\t\t\t{actions.map((action) =>\n\t\t\t\t\t\t\t\t\t\taction.type === \"button\" ? (\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\tkey={action.id}\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={action.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{action.icon}\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<MenuRoot key={action.id}>\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuTrigger asChild>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={action.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{action.icon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuContent>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{action.items?.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={item.onSelect}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={item.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={`action-${item.id}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.icon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuContent>\n\t\t\t\t\t\t\t\t\t\t\t</MenuRoot>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t) : null}\n\t\t\t<Collapsible.Root open={show}>\n\t\t\t\t<Collapsible.Content>\n\t\t\t\t\t<Card {...rest}>{rest.children}</Card>\n\t\t\t\t</Collapsible.Content>\n\t\t\t</Collapsible.Root>\n\t\t</Box>\n\t);\n};\nFactBox.displayName = \"FactBox\";\n","import { Box, Flex, Text } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { Switch, type SwitchProps } from \"../primitives/switch\";\n\nexport interface LabeledSwitchProps extends SwitchProps {\n\tname: string;\n\tlabel: string;\n}\n\nexport const LabeledSwitch = ({\n\tref,\n\t...props\n}: LabeledSwitchProps & { ref?: React.Ref<HTMLInputElement> }) => {\n\tconst { name, label, ...rest } = props;\n\n\treturn (\n\t\t<Box>\n\t\t\t<Text asChild>\n\t\t\t\t<Flex>{label}</Flex>\n\t\t\t</Text>\n\t\t\t<Switch id={name} ref={ref} {...rest} />\n\t\t</Box>\n\t);\n};\nLabeledSwitch.displayName = \"LabeledSwitch\";\n","import {\n\tDialog,\n\ttype DialogRootProps,\n\tFlex,\n\tPortal,\n\tSeparator,\n\tSpacer,\n} from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport { Button, IconButton } from \"../atoms/button\";\n\nexport interface ModalProps\n\textends Omit<DialogRootProps, \"open\" | \"onOpenChange\"> {\n\t/** Whether the modal is open. */\n\topen: boolean;\n\t/** Called when the modal should close. */\n\tonClose: () => void;\n\t/** Header content (string or ReactNode). */\n\theader: string | React.ReactNode;\n\t/** Modal body content. */\n\tchildren: React.ReactNode;\n\t/** Custom footer. If provided, replaces the default Cancel/Save buttons. */\n\tfooter?: React.ReactNode;\n\t/** Dialog size variant. */\n\tsize?: DialogRootProps[\"size\"];\n\t/** Label for the close button. */\n\tcloseLabel?: string;\n\t/** Label for the save button. */\n\tsaveLabel?: string;\n\t/** Label for the cancel button. */\n\tcancelLabel?: string;\n\t/** Called when the save button is clicked. If not provided, no default footer is shown. */\n\tonSave?: () => void;\n\t/** Whether the save button is disabled. */\n\tsaveDisabled?: boolean;\n\t/** Whether the save action is in progress. Shows spinner on save button. */\n\tloading?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n\topen,\n\tonClose,\n\theader,\n\tchildren,\n\tfooter,\n\tsize = \"xl\",\n\tcloseLabel = \"Close\",\n\tsaveLabel = \"Save\",\n\tcancelLabel = \"Cancel\",\n\tonSave,\n\tsaveDisabled = false,\n\tloading = false,\n\t...rest\n}) => {\n\tconst defaultFooter = onSave ? (\n\t\t<Flex gap={3} justify=\"flex-end\" w=\"full\">\n\t\t\t<Button variant=\"outline\" onClick={onClose}>\n\t\t\t\t{cancelLabel}\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"solid\"\n\t\t\t\tcolorPalette=\"primary\"\n\t\t\t\tonClick={onSave}\n\t\t\t\tdisabled={saveDisabled || loading}\n\t\t\t\tloading={loading}\n\t\t\t>\n\t\t\t\t{saveLabel}\n\t\t\t</Button>\n\t\t</Flex>\n\t) : null;\n\n\tconst footerContent = footer !== undefined ? footer : defaultFooter;\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\t{...rest}\n\t\t\topen={open}\n\t\t\tsize={size}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\tif (!details.open) {\n\t\t\t\t\tonClose();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Dialog.Backdrop />\n\t\t\t\t<Dialog.Positioner>\n\t\t\t\t\t<Dialog.Content>\n\t\t\t\t\t\t<Dialog.Header>\n\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t<Spacer />\n\t\t\t\t\t\t\t<Dialog.CloseTrigger asChild>\n\t\t\t\t\t\t\t\t<IconButton variant=\"ghost\" size=\"sm\" aria-label={closeLabel}>\n\t\t\t\t\t\t\t\t\t<X size={16} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Dialog.CloseTrigger>\n\t\t\t\t\t\t</Dialog.Header>\n\n\t\t\t\t\t\t<Separator />\n\n\t\t\t\t\t\t<Dialog.Body>{children}</Dialog.Body>\n\n\t\t\t\t\t\t{footerContent && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t\t<Dialog.Footer>{footerContent}</Dialog.Footer>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Portal>\n\t\t</Dialog.Root>\n\t);\n};\nModal.displayName = \"Modal\";\n","import { createContext } from \"@chakra-ui/react\";\nimport React, { useCallback } from \"react\";\n\nexport const [StepperProvider, useStepperContext] =\n\tcreateContext<UseStepperReturn>({\n\t\tname: \"StepperContext\",\n\t\terrorMessage:\n\t\t\t\"useStepperContext: `context` is undefined. Seems you forgot to wrap stepper components in `<Stepper />`\",\n\t});\n\nexport interface UseStepperProps {\n\tstep?: number | string;\n\tisCompleted?: boolean;\n\tonChange?(index: number): void;\n}\n\nexport function useStepper(props: UseStepperProps) {\n\tconst { step, onChange } = props;\n\n\tconst [activeIndex, setIndex] = React.useState(-1); // Set to -1 by default to prevent any initial transitions.\n\n\tconst stepsRef = React.useRef<string[]>([]);\n\n\tconst registerStep = React.useCallback((name: string) => {\n\t\tconst newSteps = [...stepsRef.current];\n\n\t\tif (newSteps.indexOf(name) === -1) {\n\t\t\tnewSteps.push(name);\n\t\t}\n\n\t\tstepsRef.current = newSteps;\n\t}, []);\n\n\tconst unregisterStep = React.useCallback((name: string) => {\n\t\tstepsRef.current = stepsRef.current.filter((step) => step !== name);\n\t}, []);\n\n\tconst setStep = useCallback((name: string) => {\n\t\tconst i = stepsRef.current.indexOf(name);\n\t\tif (i !== -1) {\n\t\t\tsetIndex(i);\n\t\t}\n\t}, []);\n\n\tconst nextStep = () => {\n\t\tsetIndex(activeIndex + 1);\n\t};\n\n\tconst prevStep = () => {\n\t\tsetIndex(activeIndex - 1);\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (typeof step === \"string\") {\n\t\t\tsetStep(step);\n\t\t} else if (typeof step === \"number\") {\n\t\t\tsetIndex(step);\n\t\t} else if (activeIndex === -1) {\n\t\t\tsetIndex(0); // initiate the stepper by activating the first step\n\t\t}\n\t}, [step, activeIndex, setStep]);\n\n\tReact.useEffect(() => {\n\t\tonChange?.(activeIndex);\n\t}, [activeIndex, onChange]);\n\n\tconst context = {\n\t\tstepsRef,\n\t\tactiveStep: stepsRef.current[activeIndex],\n\t\tactiveIndex,\n\t\tisFirstStep: activeIndex === 0,\n\t\tisLastStep: activeIndex === stepsRef.current.length - 1,\n\t\tisCompleted: activeIndex >= stepsRef.current.length,\n\t\tsetIndex,\n\t\tsetStep,\n\t\tnextStep,\n\t\tprevStep,\n\t\tregisterStep,\n\t\tunregisterStep,\n\t};\n\n\treturn context;\n}\n\nexport type UseStepperReturn = ReturnType<typeof useStepper>;\n\nexport interface UseStepProps {\n\tname?: string;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\nexport function useStep(props: UseStepProps) {\n\tconst { name, isActive, isCompleted } = props;\n\tconst { registerStep, unregisterStep, activeStep } = useStepperContext();\n\n\tReact.useEffect(() => {\n\t\tif (!name) {\n\t\t\treturn;\n\t\t}\n\t\tregisterStep(name);\n\n\t\treturn () => {\n\t\t\tunregisterStep(name);\n\t\t};\n\t}, [name, registerStep, unregisterStep]);\n\n\treturn {\n\t\tisActive: name ? activeStep === name : isActive,\n\t\tisCompleted,\n\t};\n}\n\n/**\n * Returns props for a Prev Button\n */\nexport function useStepperPrevButton({ label = \"Back\" } = {}) {\n\tconst { isFirstStep, prevStep } = useStepperContext();\n\n\treturn {\n\t\tdisabled: isFirstStep,\n\t\tonClick: prevStep,\n\t\tchildren: label,\n\t};\n}\n\n/**\n * Returns props for a Next Button\n */\nexport function useStepperNextButton({\n\tlabel = \"Next\",\n\tsubmitLabel = \"Submit\",\n} = {}) {\n\tconst { isLastStep, isCompleted, nextStep } = useStepperContext();\n\n\treturn {\n\t\tdisabled: isCompleted,\n\t\tonClick: nextStep,\n\t\tchildren: isLastStep ? submitLabel : label,\n\t};\n}\n","import {\n\tCollapsible,\n\tchakra,\n\ttype HTMLChakraProps,\n\ttype SystemStyleObject,\n\tuseSlotRecipe,\n} from \"@chakra-ui/react\";\nimport { Check } from \"lucide-react\";\nimport React, { createContext, useContext } from \"react\";\nimport {\n\tStepperProvider,\n\ttype UseStepperProps,\n\tuseStep,\n\tuseStepper,\n\tuseStepperContext,\n} from \"./use-stepper\";\n\n// ---------------------------------------------------------------------------\n// Inlined helpers (from core utils)\n// ---------------------------------------------------------------------------\n\nfunction getChildOfType(children: React.ReactNode, type: React.ComponentType) {\n\treturn (React.Children.toArray(children) as React.ReactElement[]).find(\n\t\t(item) => item.type === type,\n\t);\n}\n\nfunction getChildrenOfType<P = Record<string, unknown>>(\n\tchildren: React.ReactNode,\n\ttype: React.ComponentType<P> | React.ComponentType<P>[],\n) {\n\treturn (React.Children.toArray(children) as React.ReactElement<P>[]).filter(\n\t\t(item) =>\n\t\t\tArray.isArray(type)\n\t\t\t\t? type.some((component) => component === item.type)\n\t\t\t\t: item.type === type,\n\t);\n}\n\n// Simple replacement for the removed dataAttr helper\nconst dataAttr = (condition: boolean | undefined) =>\n\tcondition ? \"\" : undefined;\n\n// Simple replacement for the removed cx helper\nconst cx = (...classes: (string | undefined)[]) =>\n\tclasses.filter(Boolean).join(\" \");\n\n// ---------------------------------------------------------------------------\n// Styles context -- populated by useSlotRecipe in StepperContainer\n// ---------------------------------------------------------------------------\n\ntype StepperStyles = Record<string, SystemStyleObject>;\n\nconst StylesContext = createContext<StepperStyles>({});\nconst useStyles = () => useContext(StylesContext);\n\n// ---------------------------------------------------------------------------\n\nexport interface StepperProps\n\textends UseStepperProps,\n\t\tOmit<HTMLChakraProps<\"div\">, \"onChange\"> {\n\torientation?: \"horizontal\" | \"vertical\";\n\tvariant?: \"subtle\" | \"solid\";\n\tsize?: \"md\" | \"lg\";\n}\n\n/**\n * Display progress in multi-step workflows.\n *\n * Can be controlled or uncontrolled.\n */\nexport const Stepper = ({\n\tref,\n\t...props\n}: StepperProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { orientation, children, ...containerProps } = props;\n\treturn (\n\t\t<StepperContainer ref={ref} orientation={orientation} {...containerProps}>\n\t\t\t<StepperSteps orientation={orientation}>{children}</StepperSteps>\n\t\t</StepperContainer>\n\t);\n};\nStepper.displayName = \"Stepper\";\n\nexport const StepperContainer = ({\n\tref,\n\t...props\n}: StepperProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst {\n\t\tchildren,\n\t\torientation = \"horizontal\",\n\t\tvariant,\n\t\tsize,\n\t\tonChange,\n\t\t...rest\n\t} = props;\n\n\tconst context = useStepper(props);\n\n\tconst recipe = useSlotRecipe({ key: \"stepper\" });\n\tconst styles = recipe({ variant, size, orientation });\n\n\treturn (\n\t\t<StylesContext.Provider value={styles}>\n\t\t\t<StepperProvider value={context}>\n\t\t\t\t<chakra.div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tcss={styles.container}\n\t\t\t\t\t{...rest}\n\t\t\t\t\tclassName={cx(\"stepper\", props.className)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</chakra.div>\n\t\t\t</StepperProvider>\n\t\t</StylesContext.Provider>\n\t);\n};\nStepperContainer.displayName = \"StepperContainer\";\n\nexport interface StepperStepsProps extends HTMLChakraProps<\"div\"> {\n\torientation?: \"horizontal\" | \"vertical\";\n\tstepComponent?: React.JSXElementConstructor<StepperStepProps>;\n}\n\n/**\n * Wrapper element containing the steps.\n */\nexport const StepperSteps: React.FC<StepperStepsProps> = (props) => {\n\tconst {\n\t\tchildren,\n\t\torientation = \"horizontal\",\n\t\tstepComponent,\n\t\t...rest\n\t} = props;\n\tconst styles = useStyles();\n\n\tconst { activeIndex } = useStepperContext();\n\n\tconst isVertical = orientation === \"vertical\";\n\n\tconst Step = stepComponent || StepperStep;\n\n\tconst steps = getChildrenOfType(children, Step);\n\n\tconst elements = steps.reduce<React.ReactElement[]>((memo, step, i, arr) => {\n\t\tmemo.push(\n\t\t\t<Step\n\t\t\t\tkey={step.key}\n\t\t\t\t{...step.props}\n\t\t\t\ticon={step.props.icon || i + 1}\n\t\t\t\tisActive={activeIndex === i}\n\t\t\t\tisCompleted={step.props.isCompleted || activeIndex > i}\n\t\t\t/>,\n\t\t);\n\n\t\tif (isVertical) {\n\t\t\tmemo.push(\n\t\t\t\t<StepperContent key={`content-${step.key}`} open={activeIndex === i}>\n\t\t\t\t\t{step.props.children}\n\t\t\t\t</StepperContent>,\n\t\t\t);\n\t\t}\n\n\t\tif (i < arr.length - 1) {\n\t\t\tmemo.push(\n\t\t\t\t<StepperSeparator\n\t\t\t\t\tkey={`separator-${step.key}`}\n\t\t\t\t\tisActive={i < activeIndex}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn memo;\n\t}, []);\n\n\tconst completed = getChildOfType(children, StepperCompleted);\n\n\tconst content =\n\t\tactiveIndex >= steps.length ? (\n\t\t\tcompleted\n\t\t) : !isVertical ? (\n\t\t\t<StepperContent>{steps[activeIndex]?.props?.children}</StepperContent>\n\t\t) : null;\n\n\treturn (\n\t\t<>\n\t\t\t<chakra.div\n\t\t\t\tcss={styles.steps}\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(\"stepper__steps\", props.className)}\n\t\t\t>\n\t\t\t\t{elements}\n\t\t\t</chakra.div>\n\t\t\t{content}\n\t\t</>\n\t);\n};\n\nStepperSteps.displayName = \"StepperSteps\";\n\nexport interface StepperContentProps extends HTMLChakraProps<\"div\"> {\n\t/**\n\t * Show or hide the content\n\t */\n\topen?: boolean;\n}\n\n/**\n * Renders the step content, is collapsible.\n */\nexport const StepperContent: React.FC<StepperContentProps> = (props) => {\n\tconst { children, open = true, ...rest } = props;\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.content}\n\t\t\t{...rest}\n\t\t\tclassName={cx(\"stepper__content\", props.className)}\n\t\t>\n\t\t\t<Collapsible.Root open={open}>\n\t\t\t\t<Collapsible.Content>{children}</Collapsible.Content>\n\t\t\t</Collapsible.Root>\n\t\t</chakra.div>\n\t);\n};\n\nStepperContent.displayName = \"StepperContent\";\n\nexport interface StepperIconProps extends HTMLChakraProps<\"div\"> {\n\ticon: React.ReactNode;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\n/**\n * Displays the current step or a completed icon.\n */\nexport const StepperIcon: React.FC<StepperIconProps> = (props) => {\n\tconst { icon, isActive, isCompleted, className, ...rest } = props;\n\n\tconst styles = useStyles();\n\n\tconst content: React.ReactNode = isCompleted ? <Check size={14} /> : icon;\n\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.icon}\n\t\t\t{...rest}\n\t\t\tclassName={cx(\"stepper__icon\", className)}\n\t\t\tdata-active={dataAttr(isActive)}\n\t\t>\n\t\t\t{content}\n\t\t</chakra.div>\n\t);\n};\n\nStepperIcon.displayName = \"StepperIcon\";\n\nexport interface StepperStepProps\n\textends Omit<HTMLChakraProps<\"div\">, \"title\"> {\n\t/**\n\t * The step title\n\t */\n\ttitle: React.ReactNode;\n\t/**\n\t * The step name, used for controlled steppers\n\t */\n\tname?: string;\n\t/**\n\t * Show an icon instead of the step number\n\t */\n\ticon?: React.ReactNode;\n\tisActive?: boolean;\n\tisCompleted?: boolean;\n}\n\n/**\n * Displays the icon and step title.\n */\nexport const StepperStep: React.FC<StepperStepProps> = (props) => {\n\tconst { title, icon, isActive, isCompleted, ...rest } = props;\n\tconst step = useStep(props);\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\t{...rest}\n\t\t\tcss={styles.step}\n\t\t\tdata-active={dataAttr(step.isActive)}\n\t\t\tdata-completed={dataAttr(step.isCompleted)}\n\t\t\taria-current={step.isActive ? \"step\" : undefined}\n\t\t\tclassName={cx(\"stepper__step\", props.className)}\n\t\t>\n\t\t\t<StepperIcon icon={icon} isActive={isActive} isCompleted={isCompleted} />\n\t\t\t{title && <StepperStepTitle>{title}</StepperStepTitle>}\n\t\t</chakra.div>\n\t);\n};\n\nStepperStep.displayName = \"StepperStep\";\n\nexport interface StepperSeparatorProps extends HTMLChakraProps<\"div\"> {\n\tisActive?: boolean;\n}\n\n/**\n * The separator between steps.\n */\nexport const StepperSeparator: React.FC<StepperSeparatorProps> = (props) => {\n\tconst { isActive, ...rest } = props;\n\tconst styles = useStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\t{...rest}\n\t\t\tdata-active={dataAttr(isActive)}\n\t\t\tclassName={cx(\"stepper__separator\", props.className)}\n\t\t\tcss={styles.separator}\n\t\t/>\n\t);\n};\n\nStepperSeparator.displayName = \"StepperSeparator\";\n\n/**\n * The step title.\n */\nexport const StepperStepTitle: React.FC<HTMLChakraProps<\"p\">> = (props) => {\n\tconst styles = useStyles();\n\treturn (\n\t\t<chakra.p\n\t\t\t{...props}\n\t\t\tcss={styles.title}\n\t\t\tclassName={cx(\"stepper__title\", props.className)}\n\t\t/>\n\t);\n};\n\nStepperStepTitle.displayName = \"StepperStepTitle\";\n\n/**\n * Shown when all steps have completed.\n */\nexport const StepperCompleted: React.FC<HTMLChakraProps<\"div\">> = (props) => {\n\tconst styles = useStyles();\n\treturn (\n\t\t<chakra.div\n\t\t\tcss={styles.completed}\n\t\t\t{...props}\n\t\t\tclassName={cx(\"stepper__completed\", props.className)}\n\t\t/>\n\t);\n};\n\nStepperCompleted.displayName = \"StepperCompleted\";\n","import { Timeline as ChakraTimeline } from \"@chakra-ui/react\";\n\n// Pass-through exports for full composition\nexport const TimelineRoot = ChakraTimeline.Root;\nTimelineRoot.displayName = \"TimelineRoot\";\n\nexport const TimelineItem = ChakraTimeline.Item;\nTimelineItem.displayName = \"TimelineItem\";\n\nexport const TimelineConnector = ChakraTimeline.Connector;\nTimelineConnector.displayName = \"TimelineConnector\";\n\nexport const TimelineSeparator = ChakraTimeline.Separator;\nTimelineSeparator.displayName = \"TimelineSeparator\";\n\nexport const TimelineIndicator = ChakraTimeline.Indicator;\nTimelineIndicator.displayName = \"TimelineIndicator\";\n\nexport const TimelineContent = ChakraTimeline.Content;\nTimelineContent.displayName = \"TimelineContent\";\n\nexport const TimelineTitle = ChakraTimeline.Title;\nTimelineTitle.displayName = \"TimelineTitle\";\n\nexport const TimelineDescription = ChakraTimeline.Description;\nTimelineDescription.displayName = \"TimelineDescription\";\n\nexport type TimelineRootProps = ChakraTimeline.RootProps;\nexport type TimelineItemProps = ChakraTimeline.ItemProps;\n","import {\n\tTreeView as ChakraTreeView,\n\tcreateTreeCollection,\n} from \"@chakra-ui/react\";\n\nexport { createTreeCollection };\nexport type { TreeCollection } from \"@chakra-ui/react\";\n\n// Pass-through exports for full composition\nexport const TreeViewRoot = ChakraTreeView.Root;\nTreeViewRoot.displayName = \"TreeViewRoot\";\n\nexport const TreeViewTree = ChakraTreeView.Tree;\nTreeViewTree.displayName = \"TreeViewTree\";\n\nexport const TreeViewBranch = ChakraTreeView.Branch;\nTreeViewBranch.displayName = \"TreeViewBranch\";\n\nexport const TreeViewBranchContent = ChakraTreeView.BranchContent;\nTreeViewBranchContent.displayName = \"TreeViewBranchContent\";\n\nexport const TreeViewBranchControl = ChakraTreeView.BranchControl;\nTreeViewBranchControl.displayName = \"TreeViewBranchControl\";\n\nexport const TreeViewBranchTrigger = ChakraTreeView.BranchTrigger;\nTreeViewBranchTrigger.displayName = \"TreeViewBranchTrigger\";\n\nexport const TreeViewBranchText = ChakraTreeView.BranchText;\nTreeViewBranchText.displayName = \"TreeViewBranchText\";\n\nexport const TreeViewBranchIndicator = ChakraTreeView.BranchIndicator;\nTreeViewBranchIndicator.displayName = \"TreeViewBranchIndicator\";\n\nexport const TreeViewItem = ChakraTreeView.Item;\nTreeViewItem.displayName = \"TreeViewItem\";\n\nexport const TreeViewItemText = ChakraTreeView.ItemText;\nTreeViewItemText.displayName = \"TreeViewItemText\";\n\nexport const TreeViewItemIndicator = ChakraTreeView.ItemIndicator;\nTreeViewItemIndicator.displayName = \"TreeViewItemIndicator\";\n\nexport const TreeViewNode = ChakraTreeView.Node;\n(TreeViewNode as { displayName?: string }).displayName = \"TreeViewNode\";\n\nexport const TreeViewLabel = ChakraTreeView.Label;\nTreeViewLabel.displayName = \"TreeViewLabel\";\n\nexport type TreeViewRootProps = ChakraTreeView.RootProps;\nexport type TreeViewBranchProps = ChakraTreeView.BranchProps;\nexport type TreeViewItemProps = ChakraTreeView.ItemProps;\n","import { Box, Card, Flex, Text } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface WidgetProps {\n\theading: string;\n\tsubHeading?: string;\n\t/** Icon element (e.g. a lucide-react icon component). */\n\ticon: React.ReactNode;\n\tchildren: React.ReactNode;\n}\n\nexport const Widget: React.FC<WidgetProps> = ({\n\theading,\n\tsubHeading,\n\ticon,\n\tchildren,\n}) => {\n\treturn (\n\t\t<Card.Root height=\"100%\" maxW=\"auto\" overflow=\"hidden\" bg=\"bg-surface\">\n\t\t\t<Card.Body>\n\t\t\t\t<Box marginBlockEnd=\"6\">\n\t\t\t\t\t<Flex justifyContent=\"space-between\" alignItems=\"center\">\n\t\t\t\t\t\t<Text fontWeight=\"semibold\">{heading}</Text>\n\t\t\t\t\t\t<Box color=\"subtle\">{icon}</Box>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{subHeading && (\n\t\t\t\t\t\t<Text fontWeight=\"medium\" fontSize=\"xs\" color=\"muted\">\n\t\t\t\t\t\t\t{subHeading}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t\t{children}\n\t\t\t</Card.Body>\n\t\t</Card.Root>\n\t);\n};\nWidget.displayName = \"Widget\";\n"]}
|
package/dist/forms/index.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ interface CheckboxFieldProps<T extends FieldValues> {
|
|
|
58
58
|
/** When provided, the field is treated as an array of checked values. */
|
|
59
59
|
value?: string | number;
|
|
60
60
|
disabled?: boolean;
|
|
61
|
+
helperText?: React__default.ReactNode;
|
|
61
62
|
children?: React__default.ReactNode;
|
|
62
63
|
}
|
|
63
64
|
declare function CheckboxField<T extends FieldValues>({ ref, ...props }: CheckboxFieldProps<T> & {
|
|
@@ -233,18 +234,6 @@ interface RadioGroupFieldProps<T extends FieldValues> extends Omit<FormFieldProp
|
|
|
233
234
|
}
|
|
234
235
|
declare function RadioGroupField<T extends FieldValues>(props: RadioGroupFieldProps<T>): react_jsx_runtime.JSX.Element;
|
|
235
236
|
|
|
236
|
-
interface SelectActionMenuItem {
|
|
237
|
-
label: string;
|
|
238
|
-
onClick: () => void;
|
|
239
|
-
icon?: React__default.ReactNode;
|
|
240
|
-
color?: string;
|
|
241
|
-
}
|
|
242
|
-
interface SelectActionFieldProps extends ButtonProps {
|
|
243
|
-
label: string;
|
|
244
|
-
menuItems?: SelectActionMenuItem[];
|
|
245
|
-
}
|
|
246
|
-
declare const SelectActionField: React__default.FC<SelectActionFieldProps>;
|
|
247
|
-
|
|
248
237
|
interface SelectFieldProps<T extends FieldValues> extends Omit<FormFieldProps<T>, "children"> {
|
|
249
238
|
placeholder?: string;
|
|
250
239
|
selectProps?: NativeSelectFieldProps;
|
|
@@ -269,4 +258,4 @@ declare function TextareaField<T extends FieldValues>({ ref, ...props }: Textare
|
|
|
269
258
|
ref?: React__default.Ref<HTMLTextAreaElement>;
|
|
270
259
|
}): react_jsx_runtime.JSX.Element;
|
|
271
260
|
|
|
272
|
-
export { ArrayField, type ArrayFieldProps, CheckboxField, type CheckboxFieldProps, CodeField, type CodeFieldProps, ColorPickerField, type ColorPickerFieldProps, ControlledFormField, type ControlledFormFieldProps, DatePickerField, type DatePickerFieldProps, DirtyFormGuard, type DirtyFormGuardProps, EditableHeading, type EditableHeadingProps, FileField, type FileFieldProps, FormField, type FormFieldProps, InputField, type InputFieldProps, MarkdownField, type MarkdownFieldProps, NumberInputField, type NumberInputFieldProps, RadioGroupField, type RadioGroupFieldProps, type RadioOption,
|
|
261
|
+
export { ArrayField, type ArrayFieldProps, CheckboxField, type CheckboxFieldProps, CodeField, type CodeFieldProps, ColorPickerField, type ColorPickerFieldProps, ControlledFormField, type ControlledFormFieldProps, DatePickerField, type DatePickerFieldProps, DirtyFormGuard, type DirtyFormGuardProps, EditableHeading, type EditableHeadingProps, FileField, type FileFieldProps, FormField, type FormFieldProps, InputField, type InputFieldProps, MarkdownField, type MarkdownFieldProps, NumberInputField, type NumberInputFieldProps, RadioGroupField, type RadioGroupFieldProps, type RadioOption, SelectField, type SelectFieldProps, SwitchField, type SwitchFieldProps, TextareaField, type TextareaFieldProps };
|