ixia-ui-react 1.7.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -1
- package/dist/accordion/index.d.ts +41 -0
- package/dist/accordion/index.js +142 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/alert/index.d.ts +22 -0
- package/dist/alert/index.js +1 -0
- package/dist/alert-Dcu9R8CY.js +73 -0
- package/dist/alert-Dcu9R8CY.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +39 -0
- package/dist/alert-dialog/index.js +134 -0
- package/dist/alert-dialog/index.js.map +1 -0
- package/dist/autocomplete/index.d.ts +2 -0
- package/dist/autocomplete/index.js +1 -0
- package/dist/autocomplete-BfpWVO1l.js +169 -0
- package/dist/autocomplete-BfpWVO1l.js.map +1 -0
- package/dist/avatar/index.d.ts +2 -0
- package/dist/avatar/index.js +1 -0
- package/dist/avatar-Bp4gZh21.js +93 -0
- package/dist/avatar-Bp4gZh21.js.map +1 -0
- package/dist/badge/index.d.ts +2 -0
- package/dist/badge/index.js +1 -0
- package/dist/badge-Cl-9WTW-.js +160 -0
- package/dist/badge-Cl-9WTW-.js.map +1 -0
- package/dist/bento-box/index.d.ts +30 -0
- package/dist/bento-box/index.js +103 -0
- package/dist/bento-box/index.js.map +1 -0
- package/dist/breadcrumb/index.d.ts +18 -0
- package/dist/breadcrumb/index.js +58 -0
- package/dist/breadcrumb/index.js.map +1 -0
- package/dist/button/index.d.ts +3 -0
- package/dist/button/index.js +1 -0
- package/dist/button-BpUC-R1J.js +307 -0
- package/dist/button-BpUC-R1J.js.map +1 -0
- package/dist/button-group/index.d.ts +2 -0
- package/dist/button-group/index.js +1 -0
- package/dist/button-group-7azbqlcO.js +269 -0
- package/dist/button-group-7azbqlcO.js.map +1 -0
- package/dist/button.types-BFKrBCGd.d.ts +10 -0
- package/dist/calendar/index.d.ts +63 -0
- package/dist/calendar/index.js +292 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/chart/index.d.ts +87 -0
- package/dist/chart/index.js +262 -0
- package/dist/chart/index.js.map +1 -0
- package/dist/checkbox/index.d.ts +2 -0
- package/dist/checkbox/index.js +1 -0
- package/dist/checkbox-BuUZ1Lly.js +54 -0
- package/dist/checkbox-BuUZ1Lly.js.map +1 -0
- package/dist/checkbox-group/index.d.ts +6 -0
- package/dist/checkbox-group/index.js +17 -0
- package/dist/checkbox-group/index.js.map +1 -0
- package/dist/cn-BDi0DfT5.js +29 -0
- package/dist/cn-BDi0DfT5.js.map +1 -0
- package/dist/code-block/index.d.ts +50 -0
- package/dist/code-block/index.js +208 -0
- package/dist/code-block/index.js.map +1 -0
- package/dist/collapsible/index.d.ts +2 -0
- package/dist/collapsible/index.js +1 -0
- package/dist/collapsible-BVqrh0Q0.js +44 -0
- package/dist/collapsible-BVqrh0Q0.js.map +1 -0
- package/dist/color-channel-slider/index.d.ts +2 -0
- package/dist/color-channel-slider/index.js +1 -0
- package/dist/color-channel-slider-h8mUPJ35.js +70 -0
- package/dist/color-channel-slider-h8mUPJ35.js.map +1 -0
- package/dist/color-picker/index.d.ts +137 -0
- package/dist/color-picker/index.js +621 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/combobox/index.d.ts +64 -0
- package/dist/combobox/index.js +289 -0
- package/dist/combobox/index.js.map +1 -0
- package/dist/context-menu/index.d.ts +49 -0
- package/dist/context-menu/index.js +166 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/dialog/index.d.ts +36 -0
- package/dist/dialog/index.js +119 -0
- package/dist/dialog/index.js.map +1 -0
- package/dist/drawer/index.d.ts +31 -0
- package/dist/drawer/index.js +95 -0
- package/dist/drawer/index.js.map +1 -0
- package/dist/dropzone/index.d.ts +70 -0
- package/dist/dropzone/index.js +479 -0
- package/dist/dropzone/index.js.map +1 -0
- package/dist/field/index.d.ts +2 -0
- package/dist/field/index.js +1 -0
- package/dist/field-DTL7eA5y.js +254 -0
- package/dist/field-DTL7eA5y.js.map +1 -0
- package/dist/form/index.d.ts +220 -0
- package/dist/form/index.js +3 -0
- package/dist/form-BxMg796f.js +192 -0
- package/dist/form-BxMg796f.js.map +1 -0
- package/dist/has-single-element-child-DLGI0Dh2.js +12 -0
- package/dist/has-single-element-child-DLGI0Dh2.js.map +1 -0
- package/dist/hooks/index.d.ts +26 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks-DUm-q_ig.js +68 -0
- package/dist/hooks-DUm-q_ig.js.map +1 -0
- package/dist/icon/index.d.ts +2 -0
- package/dist/icon/index.js +1 -0
- package/dist/icon-D3JWfCa2.js +85 -0
- package/dist/icon-D3JWfCa2.js.map +1 -0
- package/dist/icon-container/index.d.ts +10 -0
- package/dist/icon-container/index.js +64 -0
- package/dist/icon-container/index.js.map +1 -0
- package/dist/index-0ZQzIKoE.d.ts +11 -0
- package/dist/index-B3MK1QYh.d.ts +11 -0
- package/dist/index-BJVMIPq4.d.ts +54 -0
- package/dist/index-BsV-u_jc.d.ts +4 -0
- package/dist/index-BygR7cUT.d.ts +22 -0
- package/dist/index-BzTOLSgZ.d.ts +9 -0
- package/dist/index-C15xiG9O.d.ts +14 -0
- package/dist/index-C2zco6-C.d.ts +15 -0
- package/dist/index-CIDOd4Z8.d.ts +56 -0
- package/dist/index-CQti9gFb.d.ts +49 -0
- package/dist/index-CiE-Rqit.d.ts +70 -0
- package/dist/index-D1kkOg9k.d.ts +14 -0
- package/dist/index-DLfdAked.d.ts +34 -0
- package/dist/index-DMaW_XF1.d.ts +24 -0
- package/dist/index-Db_QGr6S.d.ts +5 -0
- package/dist/index-DdFxZ3Xr.d.ts +22 -0
- package/dist/index-DfNHJF0t.d.ts +33 -0
- package/dist/index-DyQYoAUf.d.ts +29 -0
- package/dist/index-N2CBSUDu.d.ts +14 -0
- package/dist/index-PuhTRMce.d.ts +11 -0
- package/dist/index-Wb_tILYa.d.ts +24 -0
- package/dist/index-bVyqfhJS.d.ts +4 -0
- package/dist/index-x4f8gnaI.d.ts +15 -0
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.js +1 -0
- package/dist/input-Laj6dwtK.js +179 -0
- package/dist/input-Laj6dwtK.js.map +1 -0
- package/dist/input-group/index.d.ts +2 -0
- package/dist/input-group/index.js +1 -0
- package/dist/input-group-CgdazGrY.js +111 -0
- package/dist/input-group-CgdazGrY.js.map +1 -0
- package/dist/input-otp/index.d.ts +13 -0
- package/dist/input-otp/index.js +44 -0
- package/dist/input-otp/index.js.map +1 -0
- package/dist/input.types-816rEVWU.d.ts +20 -0
- package/dist/input.types-D0gyoaQv.js +48 -0
- package/dist/input.types-D0gyoaQv.js.map +1 -0
- package/dist/kbd/index.d.ts +9 -0
- package/dist/kbd/index.js +25 -0
- package/dist/kbd/index.js.map +1 -0
- package/dist/label/index.d.ts +8 -0
- package/dist/label/index.js +1 -0
- package/dist/label-BgpayDvN.js +27 -0
- package/dist/label-BgpayDvN.js.map +1 -0
- package/dist/layer-tree/index.d.ts +728 -0
- package/dist/layer-tree/index.js +685 -0
- package/dist/layer-tree/index.js.map +1 -0
- package/dist/map/google/index.d.ts +143 -0
- package/dist/map/google/index.js +445 -0
- package/dist/map/google/index.js.map +1 -0
- package/dist/map/index.d.ts +94 -0
- package/dist/map/index.js +208 -0
- package/dist/map/index.js.map +1 -0
- package/dist/map.context-Dw1D7E8m.js +11 -0
- package/dist/map.context-Dw1D7E8m.js.map +1 -0
- package/dist/menu/index.d.ts +2 -0
- package/dist/menu/index.js +1 -0
- package/dist/menu-sf13cnGp.js +173 -0
- package/dist/menu-sf13cnGp.js.map +1 -0
- package/dist/menu-tone-DWBEHoX2.js +22 -0
- package/dist/menu-tone-DWBEHoX2.js.map +1 -0
- package/dist/meter/index.d.ts +2 -0
- package/dist/meter/index.js +1 -0
- package/dist/meter-HD5taq57.js +116 -0
- package/dist/meter-HD5taq57.js.map +1 -0
- package/dist/nav-bar/index.d.ts +25 -0
- package/dist/nav-bar/index.js +133 -0
- package/dist/nav-bar/index.js.map +1 -0
- package/dist/navigation-menu/index.d.ts +43 -0
- package/dist/navigation-menu/index.js +176 -0
- package/dist/navigation-menu/index.js.map +1 -0
- package/dist/number-field/index.d.ts +14 -0
- package/dist/number-field/index.js +116 -0
- package/dist/number-field/index.js.map +1 -0
- package/dist/popover/index.d.ts +2 -0
- package/dist/popover/index.js +1 -0
- package/dist/popover-B1s4xXrX.js +114 -0
- package/dist/popover-B1s4xXrX.js.map +1 -0
- package/dist/preview-card/index.d.ts +13 -0
- package/dist/preview-card/index.js +35 -0
- package/dist/preview-card/index.js.map +1 -0
- package/dist/profile/index.d.ts +21 -0
- package/dist/profile/index.js +52 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/progress/index.d.ts +23 -0
- package/dist/progress/index.js +97 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/radar-ping/index.d.ts +11 -0
- package/dist/radar-ping/index.js +49 -0
- package/dist/radar-ping/index.js.map +1 -0
- package/dist/radio-group/index.d.ts +2 -0
- package/dist/radio-group/index.js +1 -0
- package/dist/radio-group-Dj43u35Z.js +47 -0
- package/dist/radio-group-Dj43u35Z.js.map +1 -0
- package/dist/resizeable/index.d.ts +11 -0
- package/dist/resizeable/index.js +31 -0
- package/dist/resizeable/index.js.map +1 -0
- package/dist/scroll-area/index.d.ts +11 -0
- package/dist/scroll-area/index.js +51 -0
- package/dist/scroll-area/index.js.map +1 -0
- package/dist/select/index.d.ts +2 -0
- package/dist/select/index.js +1 -0
- package/dist/select-DncJXYim.js +159 -0
- package/dist/select-DncJXYim.js.map +1 -0
- package/dist/separator/index.d.ts +2 -0
- package/dist/separator/index.js +1 -0
- package/dist/separator-DgIQp1cB.js +97 -0
- package/dist/separator-DgIQp1cB.js.map +1 -0
- package/dist/sidebar/index.d.ts +80 -0
- package/dist/sidebar/index.js +334 -0
- package/dist/sidebar/index.js.map +1 -0
- package/dist/site-header/index.d.ts +22 -0
- package/dist/site-header/index.js +55 -0
- package/dist/site-header/index.js.map +1 -0
- package/dist/skeleton/index.d.ts +4 -0
- package/dist/skeleton/index.js +1 -0
- package/dist/skeleton-DSG3FWby.js +13 -0
- package/dist/skeleton-DSG3FWby.js.map +1 -0
- package/dist/slider/index.d.ts +2 -0
- package/dist/slider/index.js +1 -0
- package/dist/slider-D_XlV4OW.js +114 -0
- package/dist/slider-D_XlV4OW.js.map +1 -0
- package/dist/slider-group/index.d.ts +46 -0
- package/dist/slider-group/index.js +198 -0
- package/dist/slider-group/index.js.map +1 -0
- package/dist/styles.css +6 -17
- package/dist/switch/index.d.ts +2 -0
- package/dist/switch/index.js +1 -0
- package/dist/switch-DXHixGHe.js +23 -0
- package/dist/switch-DXHixGHe.js.map +1 -0
- package/dist/table/index.d.ts +920 -0
- package/dist/table/index.js +1544 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tabs/index.d.ts +2 -0
- package/dist/tabs/index.js +1 -0
- package/dist/tabs-DTC7coap.js +270 -0
- package/dist/tabs-DTC7coap.js.map +1 -0
- package/dist/text-area/index.d.ts +2 -0
- package/dist/text-area/index.js +1 -0
- package/dist/text-area-H6HjKnv_.js +50 -0
- package/dist/text-area-H6HjKnv_.js.map +1 -0
- package/dist/themes/hogarth.css +0 -4
- package/dist/themes/mabel.css +0 -4
- package/dist/themes/maculata.css +0 -4
- package/dist/themes/monadelpha.css +0 -4
- package/dist/themes/venus.css +0 -4
- package/dist/themes/viridiflora.css +0 -4
- package/dist/toast/index.d.ts +65 -0
- package/dist/toast/index.js +216 -0
- package/dist/toast/index.js.map +1 -0
- package/dist/toggle/index.d.ts +2 -0
- package/dist/toggle/index.js +1 -0
- package/dist/toggle-ZT9thVmz.js +73 -0
- package/dist/toggle-ZT9thVmz.js.map +1 -0
- package/dist/toggle-group/index.d.ts +10 -0
- package/dist/toggle-group/index.js +63 -0
- package/dist/toggle-group/index.js.map +1 -0
- package/dist/toggle-group-context-CBNZEf1I.js +6 -0
- package/dist/toggle-group-context-CBNZEf1I.js.map +1 -0
- package/dist/tooltip/index.d.ts +18 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/tooltip-B6z3tDbW.js +41 -0
- package/dist/tooltip-B6z3tDbW.js.map +1 -0
- package/dist/trim-text-children-CQRFg2fL.js +33 -0
- package/dist/trim-text-children-CQRFg2fL.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils-BI2x7nW5.js +5 -0
- package/dist/utils-BI2x7nW5.js.map +1 -0
- package/package.json +100 -31
- package/dist/index.d.ts +0 -7993
- package/dist/index.js +0 -17219
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ZERO","FIRST_RANGE_INDEX","useCellContext","useCellContext","useTableContext","useCellContext","useCellContext","useTableContext","useTableContext","useTableContext","useCellContext","useTableContext","useCellContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useCellContext","useTableContext","useCellContext","useTableContext","useCellContext","PAGE_NUMBER_OFFSET","useTableContext","useCellContext","useTableContext","useCellContext","useCellContext","useTableContext","useTableContext","useTableContext","useTableContext","useTableContext","useCellContext","useCellContext","useTableContext","useTableContext"],"sources":["../../src/components/table/table.types.ts","../../src/components/table/table.utils.ts","../../src/components/table/table-feature-context.ts","../../src/components/table/table-avatar-cell.tsx","../../src/components/table/table-badge-cell.tsx","../../src/components/table/table-body.tsx","../../src/components/table/table-boolean-cell.tsx","../../src/components/table/table-bottom-bar.tsx","../../src/components/table/table-checkbox-cell.tsx","../../src/components/table/table-checkbox-header.tsx","../../src/components/table/table-column-toggle.tsx","../../src/components/table/table-container.tsx","../../src/components/table/table-currency-cell.tsx","../../src/components/table/table-dataset-tab.tsx","../../src/components/table/table-date-time-cell.tsx","../../src/components/table/table-empty.tsx","../../src/components/table/table-empty-content.tsx","../../src/components/table/table-empty-description.tsx","../../src/components/table/table-empty-footer.tsx","../../src/components/table/table-empty-header.tsx","../../src/components/table/table-empty-title.tsx","../../src/components/table/table-date-filter-form.tsx","../../src/components/table/table-date-filter-chip.tsx","../../src/components/table/table-number-filter-form.tsx","../../src/components/table/table-number-filter-chip.tsx","../../src/components/table/table-select-filter-form.tsx","../../src/components/table/table-select-filter-chip.tsx","../../src/components/table/table-string-filter-form.tsx","../../src/components/table/table-string-filter-chip.tsx","../../src/components/table/table-filter-list.tsx","../../src/components/table/table-filter-menu.tsx","../../src/components/table/table-first-page.tsx","../../src/components/table/table-footer.tsx","../../src/components/table/table-header.tsx","../../src/components/table/table-image-cell.tsx","../../src/components/table/table-last-page.tsx","../../src/components/table/table-layout.tsx","../../src/components/table/table-link-cell.tsx","../../src/components/table/table-next-page.tsx","../../src/components/table/table-number-cell.tsx","../../src/components/table/table-pagination.tsx","../../src/components/table/table-paging.tsx","../../src/components/table/table-percent-cell.tsx","../../src/components/table/table-previous-page.tsx","../../src/components/table/table-progress-cell.tsx","../../src/components/table/table-relative-time-cell.tsx","../../src/components/table/table-results.tsx","../../src/components/table/table-search.tsx","../../src/components/table/table-sort-menu.tsx","../../src/components/table/table-sort-chip.tsx","../../src/components/table/table-sort-list.tsx","../../src/components/table/table-tags-cell.tsx","../../src/components/table/table-text-cell.tsx","../../src/components/table/table-toolbar.tsx","../../src/components/table/table-top-bar.tsx","../../src/components/table/table-view-mode-toggle.tsx","../../src/components/table/table-viewport.tsx","../../src/components/table/table-context.tsx"],"sourcesContent":["// oxlint-disable id-length\nimport type { Column, RowData, TableFeature, TableFeatures } from '@tanstack/react-table'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\nimport { z } from 'zod'\n\nimport type { Avatar } from '../avatar'\nimport type { BadgeProps } from '../badge'\nimport type { Button } from '../button'\nimport type { Checkbox } from '../checkbox'\nimport type { inputVariants } from '../input/input.types'\nimport type { MenuTrigger } from '../menu'\nimport type { MeterProps } from '../meter'\nimport type { Tabs } from '../tabs/tabs'\nimport type { features } from './table-feature-context'\nimport type {\n Table_Dataset,\n TableOptions_Dataset,\n TableOptions_ViewMode,\n TableState_Dataset,\n TableState_ViewMode,\n Table_ViewMode,\n} from './table.utils'\n\ntype TableFirstPageProps = React.ComponentProps<typeof Button>\ntype TableFooterProps = React.ComponentProps<'tfoot'>\ntype TableHeaderProps = React.ComponentProps<'thead'>\ntype TableLastPageProps = React.ComponentProps<typeof Button>\ntype TablePaginationProps = React.ComponentProps<'div'> & {\n truncateFrom?: number\n truncateTo?: number\n}\ntype TableNextPageProps = React.ComponentProps<typeof Button>\ntype TableResultsProps = Omit<React.ComponentProps<'div'>, 'children'> & {\n children: (start: number, end: number, totalRows: number) => React.ReactElement\n}\ntype TablePreviousPageProps = React.ComponentProps<typeof Button>\ntype TableRefreshProps = React.ComponentProps<typeof Button>\ntype TableSearchProps = React.ComponentProps<'input'> & VariantProps<typeof inputVariants>\ntype TableColumnToggleProps = React.ComponentProps<typeof MenuTrigger>\ntype TableRowProps = React.ComponentProps<'tr'>\ntype TableBodyProps = React.ComponentProps<'tbody'> & {\n showDivider?: boolean\n}\ntype TableToolbarProps = React.ComponentProps<'div'>\ntype TableLayoutProps = React.ComponentProps<'div'>\ntype TableBottomBarProps = React.ComponentProps<'div'>\ntype TableContentProps = React.ComponentProps<'div'>\ntype TablePagingProps = React.ComponentProps<'div'> & {\n min?: number\n max?: number\n}\n\nconst tableContainerVariants = cva('group/table flex min-w-0 flex-col gap-0', {\n defaultVariants: {\n variant: 'outline',\n },\n variants: {\n variant: {\n ghost: '',\n outline: 'overflow-hidden rounded-2xl border border-border',\n },\n },\n }),\n stringFilterOperators = [\n 'equals',\n 'notEquals',\n 'contains',\n 'notContains',\n 'startsWith',\n 'endsWith',\n ] as const,\n numberFilterOperators = ['equals', 'notEquals', 'greaterThan', 'lessThan', 'between'] as const,\n dateFilterOperators = ['equals', 'notEquals', 'greaterThan', 'lessThan', 'between'] as const,\n defaultFilterOperatorLabels = {\n between: 'Is between',\n contains: 'Contains',\n endsWith: 'Ends with',\n equals: 'Is',\n greaterThan: 'Is greater than',\n lessThan: 'Is less than',\n notContains: 'Does not contain',\n notEquals: 'Is not',\n startsWith: 'Starts with',\n } satisfies Record<FilterOperator, string>,\n dateFilterSchema = z.object({\n filterOperator: z.enum(dateFilterOperators),\n filterValueFrom: z.union([z.literal(''), z.iso.date()]),\n filterValueTo: z.union([z.literal(''), z.iso.date()]),\n }),\n stringFilterSchema = z.object({\n filterOperator: z.enum(stringFilterOperators),\n filterValue: z.string(),\n }),\n numberFilterSchema = z.object({\n filterOperator: z.enum(numberFilterOperators),\n filterValueFrom: z.string(),\n filterValueTo: z.string(),\n })\n\ntype TableDatasetTabProps = React.ComponentProps<typeof Tabs>\ntype TableContainerProps = React.ComponentProps<'div'> & VariantProps<typeof tableContainerVariants>\ntype TableTopBarProps = React.ComponentProps<'div'>\ntype TableViewModeToggleProps = Omit<React.ComponentProps<typeof Button>, 'children'> & {\n children: (isGridView: boolean) => React.ReactNode\n}\ntype TableFilterMenuProps = React.ComponentProps<'button'>\ntype TableFilterListProps = React.ComponentProps<'div'>\ntype TableDateFilterFormProps<TData extends RowData> = React.ComponentProps<'form'> & {\n column: Column<typeof features, TData>\n}\ntype TableDateFilterChipProps<TData extends RowData> = React.ComponentProps<'button'> & {\n column: Column<typeof features, TData>\n}\ntype TableStringFilterFormProps<TData extends RowData> = React.ComponentProps<'form'> & {\n column: Column<typeof features, TData>\n}\ntype TableStringFilterChipProps<TData extends RowData> = React.ComponentProps<'button'> & {\n column: Column<typeof features, TData>\n}\ntype TableNumberFilterFormProps<TData extends RowData> = React.ComponentProps<'form'> & {\n column: Column<typeof features, TData>\n}\ntype TableNumberFilterChipProps<TData extends RowData> = React.ComponentProps<'button'> & {\n column: Column<typeof features, TData>\n}\ntype TableSelectFilterFormProps<TData extends RowData> = React.ComponentProps<'form'> & {\n column: Column<typeof features, TData>\n}\ntype TableSelectFilterChipProps<TData extends RowData> = React.ComponentProps<'button'> & {\n column: Column<typeof features, TData>\n}\ntype TableSelectFilterOption = string | number | boolean\ntype TableSelectFilterValue = TableSelectFilterOption[]\n\ntype TableSortChipProps<TData extends RowData> = React.ComponentProps<'button'> & {\n column: Column<typeof features, TData>\n}\n\ntype TableSortMenuProps = React.ComponentProps<typeof MenuTrigger>\ntype TableChangeViewProps = React.ComponentProps<typeof Button>\ntype TableCheckboxCellProps = React.ComponentProps<typeof Checkbox>\ntype TableCheckboxHeaderProps = React.ComponentProps<typeof Checkbox>\ntype TableTextCellProps = React.ComponentProps<'span'>\ntype TableDateCellProps = React.ComponentProps<'span'> & {\n locale?: Intl.LocalesArgument\n options?: Intl.DateTimeFormatOptions\n}\ntype TableNumberCellProps = React.ComponentProps<'span'>\ntype TableCurrencyCellProps = React.ComponentProps<'span'> & {\n currency: string\n locale?: Intl.LocalesArgument\n options?: Omit<Intl.NumberFormatOptions, 'style' | 'currency'>\n}\ntype TablePercentCellProps = React.ComponentProps<'span'> & {\n locale?: Intl.LocalesArgument\n options?: Omit<Intl.NumberFormatOptions, 'style'>\n}\ntype TableProgressCellProps = Omit<MeterProps, 'value' | 'defaultValue'> & {\n showValue?: boolean\n}\ntype TableBooleanCellProps = React.ComponentProps<'span'> & {\n trueLabel?: React.ReactNode\n falseLabel?: React.ReactNode\n}\ntype TableTagsCellProps = React.ComponentProps<'div'> & {\n badgeProps?: Omit<BadgeProps, 'children' | 'ref'>\n}\ntype TableRelativeTimeCellProps = React.ComponentProps<'time'> & {\n locale?: Intl.LocalesArgument\n options?: Intl.RelativeTimeFormatOptions\n now?: Date\n}\ntype TableImageCellProps = React.ComponentProps<'img'>\ntype TableViewportProps = React.ComponentProps<'table'> & {\n grow?: boolean\n}\ntype TableSortListProps = React.ComponentProps<'div'>\ntype TableBadgeCellProps = Omit<BadgeProps, 'tone'> & {\n tone?: BadgeProps['tone'] | ((value: string) => BadgeProps['tone'])\n}\ntype TableAvatarCellProps = React.ComponentProps<typeof Avatar> & {\n fallback?: string\n}\ntype TableLinkCellProps = React.ComponentProps<typeof Button>\ntype TableEmptyProps = React.ComponentProps<'div'>\ntype TableEmptyTitleProps = React.ComponentProps<'span'>\ntype TableEmptyDescriptionProps = React.ComponentProps<'span'>\ntype TableEmptyContentProps = React.ComponentProps<'div'>\ntype TableEmptyHeaderProps = React.ComponentProps<'div'>\ntype TableEmptyFooterProps = React.ComponentProps<'div'>\ntype DateFilterOperator = (typeof dateFilterOperators)[number]\ntype StringFilterOperator = (typeof stringFilterOperators)[number]\ntype NumberFilterOperator = (typeof numberFilterOperators)[number]\ntype FilterOperator = StringFilterOperator | NumberFilterOperator\ninterface TableDataset<T extends RowData> {\n id: string\n name: string\n data: T[]\n}\n\ntype ViewMode = 'list' | 'grid'\n\ninterface TableColumnMeta {\n filterVariant?: 'range' | 'select' | 'date' | 'string' | 'number'\n}\n\ninterface TableMeta {\n translations?: {\n filterOperatorLabels?: Partial<Record<FilterOperator, string>>\n buttonLabels?: {\n reset?: string\n apply?: string\n ascending?: string\n descending?: string\n }\n }\n}\n\ndeclare module '@tanstack/react-table' {\n interface Plugins {\n datasetPlugin: TableFeature\n viewModePlugin: TableFeature\n }\n\n interface TableState_FeatureMap {\n datasetPlugin: TableState_Dataset\n viewModePlugin: TableState_ViewMode\n }\n\n interface TableOptions_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {\n datasetPlugin: TableOptions_Dataset\n viewModePlugin: TableOptions_ViewMode\n }\n\n interface Table_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {\n datasetPlugin: Table_Dataset<TData>\n viewModePlugin: Table_ViewMode\n }\n}\n\nexport {\n tableContainerVariants,\n dateFilterOperators,\n dateFilterSchema,\n defaultFilterOperatorLabels,\n numberFilterOperators,\n numberFilterSchema,\n stringFilterOperators,\n stringFilterSchema,\n type DateFilterOperator,\n type FilterOperator,\n type NumberFilterOperator,\n type StringFilterOperator,\n type TableBadgeCellProps,\n type TableBodyProps,\n type TableChangeViewProps,\n type TableCheckboxCellProps,\n type TableColumnMeta,\n type TableColumnToggleProps,\n type TableContainerProps,\n type TableContentProps,\n type TableDateCellProps,\n type TableDateFilterChipProps,\n type TableDateFilterFormProps,\n type TableFilterListProps,\n type TableFilterMenuProps,\n type TableFirstPageProps,\n type TableFooterProps,\n type TableHeaderProps,\n type TableImageCellProps,\n type TableLastPageProps,\n type TableBottomBarProps,\n type TableNextPageProps,\n type TableNumberCellProps,\n type TableCurrencyCellProps,\n type TablePercentCellProps,\n type TableProgressCellProps,\n type TableBooleanCellProps,\n type TableTagsCellProps,\n type TableRelativeTimeCellProps,\n type TableNumberFilterChipProps,\n type TableNumberFilterFormProps,\n type TablePaginationProps,\n type TablePagingProps,\n type TablePreviousPageProps,\n type TableRefreshProps,\n type TableResultsProps,\n type TableRowProps,\n type TableSearchProps,\n type TableSelectFilterChipProps,\n type TableSelectFilterFormProps,\n type TableSelectFilterOption,\n type TableSelectFilterValue,\n type TableCheckboxHeaderProps,\n type TableSortChipProps,\n type TableSortListProps,\n type TableSortMenuProps,\n type TableStringFilterChipProps,\n type TableStringFilterFormProps,\n type TableTextCellProps,\n type TableTopBarProps,\n type TableViewportProps,\n type TableViewModeToggleProps,\n type TableMeta,\n type ViewMode,\n type TableAvatarCellProps,\n type TableLinkCellProps,\n type TableToolbarProps,\n type TableLayoutProps,\n type TableEmptyProps,\n type TableEmptyTitleProps,\n type TableEmptyDescriptionProps,\n type TableEmptyContentProps,\n type TableEmptyHeaderProps,\n type TableEmptyFooterProps,\n type TableDatasetTabProps,\n type TableDataset,\n}\n","import {\n constructFilterFn,\n functionalUpdate,\n makeStateUpdater,\n assignTableAPIs,\n} from '@tanstack/react-table'\nimport type { OnChangeFn, RowData, TableFeature, Updater } from '@tanstack/react-table'\n\nimport type {\n DateFilterOperator,\n NumberFilterOperator,\n StringFilterOperator,\n TableSelectFilterOption,\n TableSelectFilterValue,\n TableDataset,\n ViewMode,\n} from './table.types'\n\ninterface DateFilterValue {\n operator: DateFilterOperator\n date: [string, string]\n}\n\ninterface StringFilterValue {\n operator: StringFilterOperator\n value: string\n}\n\ninterface NumberFilterValue {\n operator: NumberFilterOperator\n number: [string, string]\n}\n\ninterface ResolvedDateFilterValue {\n operator: DateFilterOperator\n from: number | undefined\n to: number | undefined\n}\n\ninterface ResolvedNumberFilterValue {\n operator: NumberFilterOperator\n from: number | undefined\n to: number | undefined\n}\n\ninterface TableState_ViewMode {\n viewMode: ViewMode\n}\n\ninterface TableOptions_ViewMode {\n enableViewModeToggle?: boolean\n onViewModeChange?: OnChangeFn<ViewMode>\n}\n\ninterface Table_ViewMode {\n setViewMode: (updater: Updater<ViewMode>) => void\n toggleViewMode: (value?: ViewMode) => void\n}\n\n// The TanStack state feature map is not generic over row data.\n// oxlint-disable-next-line typescript/no-explicit-any\ntype TableDatasetStateValue = TableDataset<any>\n\ninterface TableState_Dataset {\n datasets: TableDatasetStateValue[]\n currentDataset: TableDatasetStateValue\n}\n\ninterface TableOptions_Dataset {\n onCurrentDatasetChange?: OnChangeFn<TableDataset<RowData>>\n}\n\ninterface Table_Dataset<TData extends RowData> {\n setCurrentDataset: (updater: Updater<TableDataset<TData>>) => void\n}\n\nfunction getColumnHeaderLabel(column: { id: string; columnDef: { header?: unknown } }): string {\n const { header } = column.columnDef\n if (typeof header === 'string' && header !== '') {\n return header\n }\n return column.id\n}\n\n// oxlint-disable-next-line typescript/no-unnecessary-type-parameters\nfunction asFilterValue<TValue>(value: unknown): TValue {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n return value as TValue\n}\n\nconst ZERO = 0,\n FIRST_RANGE_INDEX = 0,\n SECOND_RANGE_INDEX = 1,\n getDateTimestamp = (date: Date): number =>\n Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()),\n selectFilterFn = constructFilterFn({\n autoRemove: (value: TableSelectFilterValue) => !value?.length,\n filter: (dataValue: TableSelectFilterOption, filterValue: TableSelectFilterValue) =>\n filterValue.includes(dataValue),\n }),\n parseToTimestamp = (value: string): number | undefined => {\n if (!value) {\n return undefined\n }\n const parsed = new Date(value)\n if (Number.isNaN(parsed.getTime())) {\n return undefined\n }\n return getDateTimestamp(parsed)\n },\n normalizeDataValue = (value: unknown): number => {\n if (value instanceof Date) {\n return getDateTimestamp(value)\n }\n if (typeof value === 'number') {\n return getDateTimestamp(new Date(value))\n }\n if (typeof value === 'string') {\n return parseToTimestamp(value) ?? ZERO\n }\n return ZERO\n },\n dateFilterFn = constructFilterFn({\n autoRemove: (value: DateFilterValue) =>\n !value || (!value.date[FIRST_RANGE_INDEX] && !value.date[SECOND_RANGE_INDEX]),\n filter: (dataValue: number, filterValue: ResolvedDateFilterValue) => {\n const { operator, from, to } = filterValue\n\n switch (operator) {\n case 'equals': {\n return from !== undefined && dataValue === from\n }\n\n case 'notEquals': {\n return from !== undefined && dataValue !== from\n }\n\n case 'greaterThan': {\n return from !== undefined && dataValue > from\n }\n\n case 'lessThan': {\n return from !== undefined && dataValue < from\n }\n\n case 'between': {\n return from !== undefined && to !== undefined && dataValue >= from && dataValue <= to\n }\n\n default: {\n return true\n }\n }\n },\n resolveDataValue: normalizeDataValue,\n resolveFilterValue: (value: DateFilterValue): ResolvedDateFilterValue => ({\n from: parseToTimestamp(value.date[FIRST_RANGE_INDEX]),\n operator: value.operator,\n to: parseToTimestamp(value.date[SECOND_RANGE_INDEX]),\n }),\n }),\n stringFilterFn = constructFilterFn({\n autoRemove: (value: StringFilterValue) => !value || value.value === '',\n filter: (dataValue: string, filterValue: StringFilterValue) => {\n const { operator, value } = filterValue,\n normalizedDataValue = dataValue.toLocaleLowerCase(),\n normalizedFilterValue = value.toLocaleLowerCase()\n\n switch (operator) {\n case 'equals': {\n return normalizedDataValue === normalizedFilterValue\n }\n\n case 'notEquals': {\n return normalizedDataValue !== normalizedFilterValue\n }\n\n case 'contains': {\n return normalizedDataValue.includes(normalizedFilterValue)\n }\n\n case 'notContains': {\n return !normalizedDataValue.includes(normalizedFilterValue)\n }\n\n case 'startsWith': {\n return normalizedDataValue.startsWith(normalizedFilterValue)\n }\n\n case 'endsWith': {\n return normalizedDataValue.endsWith(normalizedFilterValue)\n }\n\n default: {\n return true\n }\n }\n },\n resolveDataValue: (value: unknown) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n return ''\n },\n }),\n parseToNumber = (value: string): number | undefined => {\n if (value.trim() === '') {\n return undefined\n }\n const parsed = Number(value)\n if (!Number.isFinite(parsed)) {\n return undefined\n }\n return parsed\n },\n numberFilterFn = constructFilterFn({\n autoRemove: (value: NumberFilterValue) =>\n !value || (value.number[FIRST_RANGE_INDEX] === '' && value.number[SECOND_RANGE_INDEX] === ''),\n filter: (dataValue: number, filterValue: ResolvedNumberFilterValue) => {\n const { operator, from, to } = filterValue\n\n switch (operator) {\n case 'equals': {\n return from !== undefined && dataValue === from\n }\n\n case 'notEquals': {\n return from !== undefined && dataValue !== from\n }\n\n case 'greaterThan': {\n return from !== undefined && dataValue > from\n }\n\n case 'lessThan': {\n return from !== undefined && dataValue < from\n }\n\n case 'between': {\n return (from === undefined || dataValue >= from) && (to === undefined || dataValue <= to)\n }\n\n default: {\n return true\n }\n }\n },\n resolveDataValue: (value: unknown) => Number(value),\n resolveFilterValue: (value: NumberFilterValue): ResolvedNumberFilterValue => {\n const from = parseToNumber(value.number[FIRST_RANGE_INDEX]),\n to = parseToNumber(value.number[SECOND_RANGE_INDEX])\n\n if (from !== undefined && to !== undefined && from > to) {\n return { from: to, operator: value.operator, to: from }\n }\n\n return { from, operator: value.operator, to }\n },\n }),\n datasetPlugin: TableFeature = {\n constructTableAPIs: (table) => {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n const options = table.options as TableOptions_Dataset\n assignTableAPIs('datasetPlugin', table, {\n table_setCurrentDataset: {\n fn: (updater: Updater<TableDatasetStateValue>) => {\n const safeUpdater: Updater<TableDatasetStateValue> = (old) =>\n functionalUpdate(updater, old)\n return options.onCurrentDatasetChange?.(safeUpdater)\n },\n },\n })\n },\n\n getDefaultTableOptions: (table) => ({\n onCurrentDatasetChange: makeStateUpdater('currentDataset', table),\n }),\n\n getInitialState: (initialState) => ({\n currentDataset: { data: [], id: '', name: '' },\n datasets: [],\n ...initialState,\n }),\n },\n viewModePlugin: TableFeature = {\n constructTableAPIs: (table) => {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n const options = table.options as TableOptions_ViewMode\n assignTableAPIs('viewModePlugin', table, {\n table_setViewMode: {\n fn: (updater: Updater<ViewMode>) => {\n const safeUpdater: Updater<ViewMode> = (old) => {\n const newState = functionalUpdate(updater, old)\n return newState\n }\n return options.onViewModeChange?.(safeUpdater)\n },\n },\n table_toggleViewMode: {\n fn: (value?: ViewMode) => {\n const safeUpdater: Updater<ViewMode> = (old) => {\n if (value) {\n return value\n }\n if (old === 'list') {\n return 'grid'\n }\n return 'list'\n }\n return options.onViewModeChange?.(safeUpdater)\n },\n },\n })\n },\n\n getDefaultTableOptions: (table) => ({\n enableViewModeToggle: true,\n onViewModeChange: makeStateUpdater('viewMode', table),\n }),\n\n getInitialState: (initialState) => ({\n viewMode: 'list',\n ...initialState,\n }),\n }\n\nexport {\n asFilterValue,\n dateFilterFn,\n datasetPlugin,\n getColumnHeaderLabel,\n numberFilterFn,\n selectFilterFn,\n stringFilterFn,\n viewModePlugin,\n type DateFilterValue,\n type NumberFilterValue,\n type StringFilterValue,\n type Table_Dataset,\n type TableOptions_Dataset,\n type TableState_Dataset,\n type TableOptions_ViewMode,\n type TableState_ViewMode,\n type Table_ViewMode,\n}\n","import {\n columnFacetingFeature,\n columnFilteringFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n createFacetedRowModel,\n createFacetedUniqueValues,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n createTableHookContexts,\n filterFn_arrHas,\n filterFn_arrIncludes,\n filterFn_arrIncludesAll,\n filterFn_arrIncludesSome,\n filterFn_between,\n filterFn_betweenInclusive,\n filterFn_empty,\n filterFn_endsWith,\n filterFn_equals,\n filterFn_equalsString,\n filterFn_equalsStringSensitive,\n filterFn_inDateRange,\n filterFn_inNumberRange,\n filterFn_includesString,\n filterFn_includesStringSensitive,\n filterFn_notEmpty,\n filterFn_startsWith,\n filterFn_weakEquals,\n globalFilteringFeature,\n metaHelper,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFn_alphanumeric,\n sortFn_basic,\n sortFn_datetime,\n sortFn_text,\n tableFeatures,\n} from '@tanstack/react-table'\n\nimport type { TableColumnMeta, TableMeta } from './table.types'\nimport {\n dateFilterFn,\n datasetPlugin,\n numberFilterFn,\n selectFilterFn,\n stringFilterFn,\n viewModePlugin,\n} from './table.utils'\n\nconst features = tableFeatures({\n columnFacetingFeature,\n columnFilteringFeature,\n columnMeta: metaHelper<TableColumnMeta>(),\n columnSizingFeature,\n columnVisibilityFeature,\n datasetPlugin,\n facetedRowModel: createFacetedRowModel(),\n facetedUniqueValues: createFacetedUniqueValues(),\n filterFns: {\n arrHas: filterFn_arrHas,\n arrIncludes: filterFn_arrIncludes,\n arrIncludesAll: filterFn_arrIncludesAll,\n arrIncludesSome: filterFn_arrIncludesSome,\n between: filterFn_between,\n betweenInclusive: filterFn_betweenInclusive,\n date: dateFilterFn,\n empty: filterFn_empty,\n endsWith: filterFn_endsWith,\n equals: filterFn_equals,\n equalsString: filterFn_equalsString,\n equalsStringSensitive: filterFn_equalsStringSensitive,\n inDateRange: filterFn_inDateRange,\n inNumberRange: filterFn_inNumberRange,\n includesString: filterFn_includesString,\n includesStringSensitive: filterFn_includesStringSensitive,\n notEmpty: filterFn_notEmpty,\n number: numberFilterFn,\n select: selectFilterFn,\n startsWith: filterFn_startsWith,\n string: stringFilterFn,\n weakEquals: filterFn_weakEquals,\n },\n filteredRowModel: createFilteredRowModel(),\n globalFilteringFeature,\n paginatedRowModel: createPaginatedRowModel(),\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFns: {\n alphanumeric: sortFn_alphanumeric,\n basic: sortFn_basic,\n datetime: sortFn_datetime,\n text: sortFn_text,\n },\n sortedRowModel: createSortedRowModel(),\n tableMeta: metaHelper<TableMeta>(),\n viewModePlugin,\n }),\n { tableContext, cellContext, headerContext, useTableContext, useCellContext, useHeaderContext } =\n createTableHookContexts<typeof features>()\n\nexport {\n cellContext,\n features,\n headerContext,\n tableContext,\n useCellContext,\n useHeaderContext,\n useTableContext,\n}\n","import { cn } from '@/utils'\n\nimport { Avatar } from '../avatar'\nimport { useCellContext } from './table-feature-context'\nimport type { TableAvatarCellProps } from './table.types'\n\nexport function TableAvatarCell({\n fallback,\n className,\n children,\n ref,\n ...props\n}: TableAvatarCellProps) {\n const cell = useCellContext<string>(),\n value = cell.getValue()\n\n return (\n <Avatar className={cn('', className)} ref={ref} {...props}>\n <Avatar.Image src={value} />\n {fallback && <Avatar.Fallback>{fallback}</Avatar.Fallback>}\n {children}\n </Avatar>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Badge } from '../badge'\nimport { useCellContext } from './table-feature-context'\nimport type { TableBadgeCellProps } from './table.types'\n\nfunction resolveTone(tone: TableBadgeCellProps['tone'], value: string) {\n if (typeof tone === 'function') {\n return tone(value)\n }\n return tone\n}\n\nexport function TableBadgeCell({ className, children, ref, tone, ...props }: TableBadgeCellProps) {\n const cell = useCellContext<string>(),\n value = cell.getValue(),\n resolvedTone = resolveTone(tone, value)\n\n return (\n <Badge variant=\"soft\" className={cn('', className)} ref={ref} tone={resolvedTone} {...props}>\n {children}\n {value}\n </Badge>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { useTableContext as useRegisteredTableContext } from './table-context'\nimport { useTableContext } from './table-feature-context'\nimport type { TableBodyProps } from './table.types'\n\nexport function TableBody({ showDivider = true, className, ref, ...props }: TableBodyProps) {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n const table = useTableContext() as ReturnType<typeof useRegisteredTableContext>\n\n return (\n <table.Subscribe selector={(state) => state}>\n {(state) => {\n if (state.viewMode === 'grid') {\n return (\n <ul\n className={cn(\n 'grid auto-rows-fr grid-cols-[repeat(auto-fill,minmax(252px,1fr))] gap-sm overflow-y-auto border-border group-data-[variant=outline]/table:border-y group-data-[variant=outline]/table:p-md',\n className,\n )}\n >\n {table.getRowModel().rows.map((row) => (\n <li key={row.id} className=\"min-w-0\">\n {row.getVisibleCells().map((cell) => (\n <table.AppCell cell={cell} key={cell.id}>\n {(renderedCell) => (\n <div className=\"w-full\">\n <table.FlexRender cell={renderedCell} />\n </div>\n )}\n </table.AppCell>\n ))}\n </li>\n ))}\n </ul>\n )\n }\n return (\n <tbody\n className={cn(showDivider && 'divide-y divide-border', 'overflow-y-auto', className)}\n ref={ref}\n {...props}\n >\n {table.getRowModel().rows.map((row) => (\n <tr key={row.id} className={cn(row.getIsSelected() && 'bg-neutral-container-low')}>\n {row.getVisibleCells().map((cell) => (\n <table.AppCell cell={cell} key={cell.id}>\n {(renderedCell) => (\n // oxlint-disable-next-line jsx-a11y/control-has-associated-label\n <td\n style={{\n width: renderedCell.column.getSize(),\n }}\n className={cn('h-2xl p-xs', className)}\n >\n <table.FlexRender cell={renderedCell} />\n </td>\n )}\n </table.AppCell>\n ))}\n </tr>\n ))}\n </tbody>\n )\n }}\n </table.Subscribe>\n )\n}\n","import { useCellContext } from './table-feature-context'\nimport type { TableBooleanCellProps } from './table.types'\n\nexport function TableBooleanCell({\n trueLabel = 'Yes',\n falseLabel = 'No',\n children,\n ...props\n}: TableBooleanCellProps) {\n const cell = useCellContext<boolean | null | undefined>(),\n value = cell.getValue()\n\n if (value === undefined || value === null) {\n return undefined\n }\n\n return (\n <span {...props}>\n {children}\n {value && trueLabel}\n {!value && falseLabel}\n </span>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { TableBottomBarProps } from './table.types'\n\nexport function TableBottomBar({ className, ref, ...props }: TableBottomBarProps) {\n return (\n <div\n className={cn(\n 'mt-auto flex w-full flex-wrap items-center justify-between pt-md group-data-[variant=outline]/table:border-t group-data-[variant=outline]/table:border-border',\n 'in-data-[slot=table-container]:sticky in-data-[slot=table-container]:bottom-0 in-data-[slot=table-container]:z-10 in-data-[slot=table-container]:bg-inherit',\n className,\n )}\n data-slot=\"table-bottom-bar\"\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Checkbox } from '../checkbox'\nimport { useCellContext, useTableContext } from './table-feature-context'\nimport type { TableCheckboxCellProps } from './table.types'\n\nexport function TableCheckboxCell({ className, ref, ...props }: TableCheckboxCellProps) {\n const cell = useCellContext(),\n table = useTableContext(),\n { row } = cell\n\n return (\n <table.Subscribe selector={(state) => state.rowSelection}>\n {() => (\n <Checkbox\n variant=\"outline\"\n aria-label=\"Select row\"\n checked={\n row.getIsSelected() || (row.getCanSelectSubRows() && row.getIsAllSubRowsSelected())\n }\n disabled={!row.getCanSelect()}\n indeterminate={row.getIsSomeSelected()}\n onCheckedChange={(checked) => row.toggleSelected(checked)}\n className={cn('mx-auto flex', className)}\n ref={ref}\n {...props}\n />\n )}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Checkbox } from '../checkbox'\nimport { useTableContext } from './table-feature-context'\nimport type { TableCheckboxHeaderProps } from './table.types'\n\nexport function TableCheckboxHeader({ className, ref, ...props }: TableCheckboxHeaderProps) {\n const table = useTableContext()\n\n return (\n <table.Subscribe selector={(state) => state.rowSelection}>\n {() => {\n const allRowsSelected = table.getIsAllRowsSelected()\n\n return (\n <Checkbox\n aria-label=\"Select all rows\"\n variant=\"outline\"\n checked={allRowsSelected}\n indeterminate={!allRowsSelected && table.getIsSomeRowsSelected()}\n onCheckedChange={(checked) => table.toggleAllRowsSelected(checked)}\n className={cn('mx-auto flex', className)}\n ref={ref}\n {...props}\n />\n )\n }}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Menu, MenuCheckboxItem, MenuPopup, MenuTrigger } from '../menu'\nimport { useTableContext } from './table-feature-context'\nimport type { TableColumnToggleProps } from './table.types'\nimport { getColumnHeaderLabel } from './table.utils'\n\nexport function TableColumnToggle({ className, ref, ...props }: TableColumnToggleProps) {\n const table = useTableContext(),\n handleToggleColumn = (columnId: string) => {\n table.getColumn(columnId)?.toggleVisibility()\n }\n\n return (\n <Menu>\n <MenuTrigger className={cn('shrink-0', className)} ref={ref} {...props} />\n <MenuPopup>\n {table.getAllColumns().flatMap((column) => {\n if (!column.getCanHide()) {\n return []\n }\n\n return (\n <MenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={() => handleToggleColumn(column.id)}\n >\n {getColumnHeaderLabel(column)}\n </MenuCheckboxItem>\n )\n })}\n </MenuPopup>\n </Menu>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { tableContainerVariants } from './table.types'\nimport type { TableContainerProps } from './table.types'\n\nexport function TableContainer({\n variant = 'outline',\n className,\n ref,\n ...props\n}: TableContainerProps) {\n return (\n <div\n data-slot=\"table-container\"\n data-variant={variant}\n className={cn(tableContainerVariants({ variant }), className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { useCellContext } from './table-feature-context'\nimport type { TableCurrencyCellProps } from './table.types'\n\nexport function TableCurrencyCell({\n currency,\n locale,\n options,\n children,\n ...props\n}: TableCurrencyCellProps) {\n const cell = useCellContext<number | null | undefined>(),\n value = cell.getValue()\n\n if (value === undefined || value === null) {\n return undefined\n }\n\n return (\n <span {...props}>\n {children}\n {new Intl.NumberFormat(locale, { ...options, currency, style: 'currency' }).format(value)}\n </span>\n )\n}\n","import { useSelector } from '@tanstack/react-store'\n\nimport { cn } from '@/utils'\n\nimport { TabsList, TabsTab } from '../tabs'\nimport { Tabs } from '../tabs/tabs'\nimport { useTableContext } from './table-feature-context'\nimport type { TableDatasetTabProps } from './table.types'\n\nexport function TableDatasetTab({ className, children, ref, ...props }: TableDatasetTabProps) {\n const table = useTableContext(),\n datasets = useSelector(table.atoms.datasets),\n currentDataset = useSelector(table.atoms.currentDataset),\n handleTabChange = (datasetId: string) => {\n const dataset = datasets.find((candidate) => candidate.id === datasetId)\n\n if (!dataset) {\n return\n }\n\n table.setCurrentDataset(dataset)\n }\n\n return (\n <Tabs\n value={currentDataset.id}\n onValueChange={handleTabChange}\n className={cn(className)}\n ref={ref}\n {...props}\n data-slot=\"table-dataset-tab\"\n >\n {children}\n <TabsList>\n {datasets.map((dataset) => (\n <TabsTab key={dataset.id} value={dataset.id}>\n {dataset.name}\n </TabsTab>\n ))}\n </TabsList>\n </Tabs>\n )\n}\n","import { formatDate } from '@/utils'\nimport { cn } from '@/utils/cn'\n\nimport { useCellContext } from './table-feature-context'\nimport type { TableDateCellProps } from './table.types'\n\nexport function TableDateTimeCell({\n locale,\n options,\n className,\n children,\n ref,\n ...props\n}: TableDateCellProps) {\n const cell = useCellContext<Date | undefined>(),\n date = cell.getValue()\n\n if (!date) {\n return undefined\n }\n\n if (Number.isNaN(date.getTime())) {\n return 'Invalid date'\n }\n\n return (\n <span className={cn('', className)} ref={ref} {...props}>\n {children}\n {formatDate(date, locale, options)}\n </span>\n )\n}\n","import { cn } from '@/utils'\n\nimport { useTableContext } from './table-feature-context'\nimport type { TableEmptyProps } from './table.types'\n\nconst EMPTY_LIMIT = 0\n\nexport function TableEmpty({ className, children, ref, ...props }: TableEmptyProps) {\n const table = useTableContext()\n return (\n <table.Subscribe selector={(state) => state.globalFilter}>\n {() =>\n table.getFilteredRowModel().rows.length <= EMPTY_LIMIT && (\n <div\n data-slot=\"table-empty\"\n className={cn(\n 'flex w-full min-w-0 flex-col items-center justify-center gap-md px-md py-3xl text-center',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils'\n\nimport type { TableEmptyContentProps } from './table.types'\n\nexport function TableEmptyContent({ className, children, ref, ...props }: TableEmptyContentProps) {\n return (\n <div\n className={cn('flex w-full max-w-[28rem] min-w-0 flex-col items-center gap-2xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils'\n\nimport type { TableEmptyDescriptionProps } from './table.types'\n\nexport function TableEmptyDescription({\n className,\n children,\n ref,\n ...props\n}: TableEmptyDescriptionProps) {\n return (\n <span\n className={cn(\n 'block max-w-[28rem] style-text-default--1 text-pretty wrap-break-word text-on-surface-variant',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </span>\n )\n}\n","import { cn } from '@/utils'\n\nimport type { TableEmptyFooterProps } from './table.types'\n\nexport function TableEmptyFooter({ className, children, ref, ...props }: TableEmptyFooterProps) {\n return (\n <div\n className={cn('flex w-full flex-wrap items-center justify-center gap-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils'\n\nimport type { TableEmptyHeaderProps } from './table.types'\n\nexport function TableEmptyHeader({ className, children, ref, ...props }: TableEmptyHeaderProps) {\n return (\n <div\n className={cn('flex w-full max-w-[28rem] flex-col items-center gap-sm', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils'\n\nimport type { TableEmptyTitleProps } from './table.types'\n\nexport function TableEmptyTitle({ className, children, ref, ...props }: TableEmptyTitleProps) {\n return (\n <span\n className={cn('block style-text-strong-1 text-balance text-on-surface', className)}\n ref={ref}\n {...props}\n >\n {children}\n </span>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Field } from '../field'\nimport { Form, useAppForm } from '../form'\nimport { Radio } from '../radio-group'\nimport { useTableContext } from './table-feature-context'\nimport { dateFilterOperators, dateFilterSchema, defaultFilterOperatorLabels } from './table.types'\nimport type { TableDateFilterFormProps } from './table.types'\nimport { asFilterValue } from './table.utils'\nimport type { DateFilterValue } from './table.utils'\n\nconst FROM_DATE_INDEX = 0,\n TO_DATE_INDEX = 1\n\nexport function TableDateFilterForm<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableDateFilterFormProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {\n apply: 'Apply',\n reset: 'Reset',\n },\n currentFilter = asFilterValue<DateFilterValue | undefined>(column.getFilterValue()),\n form = useAppForm({\n defaultValues: {\n filterOperator: currentFilter?.operator ?? 'equals',\n filterValueFrom: currentFilter?.date[FROM_DATE_INDEX] ?? '',\n filterValueTo: currentFilter?.date[TO_DATE_INDEX] ?? '',\n },\n onSubmit: ({ value }) => {\n column.setFilterValue({\n date: [value.filterValueFrom, value.filterValueTo],\n operator: value.filterOperator,\n } satisfies DateFilterValue)\n },\n validators: {\n onSubmit: dateFilterSchema,\n },\n }),\n onReset = () => {\n column.setFilterValue(undefined)\n form.reset()\n }\n\n return (\n <Form\n onSubmit={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n await form.handleSubmit()\n }}\n onReset={onReset}\n className={cn('', className)}\n ref={ref}\n {...props}\n >\n <form.AppForm>\n {children}\n <form.Errors />\n <form.Set>\n <form.SetHeading>\n <form.SetContent>\n <Field>\n <form.AppField name=\"filterOperator\">\n {(field) => (\n <Field>\n <field.Errors />\n <field.RadioGroup>\n {dateFilterOperators.map((operator) => (\n <field.Set key={operator}>\n <Radio value={operator} variant=\"inSurface\">\n {filterOperatorLabels?.[operator] ??\n defaultFilterOperatorLabels[operator]}\n </Radio>\n {field.state.value === operator && (\n <>\n <form.AppField name=\"filterValueFrom\">\n {(valueField) => (\n <Field>\n <valueField.Errors />\n <valueField.Input type=\"date\" variant=\"secondary\" />\n </Field>\n )}\n </form.AppField>\n {operator === 'between' && (\n <form.AppField name=\"filterValueTo\">\n {(valueField) => (\n <Field>\n <valueField.Errors />\n <valueField.Input type=\"date\" variant=\"secondary\" />\n </Field>\n )}\n </form.AppField>\n )}\n </>\n )}\n </field.Set>\n ))}\n </field.RadioGroup>\n </Field>\n )}\n </form.AppField>\n </Field>\n </form.SetContent>\n </form.SetHeading>\n </form.Set>\n <form.Footer>\n <form.Reset>{buttonLabels.reset}</form.Reset>\n <form.Submit>{buttonLabels.apply}</form.Submit>\n </form.Footer>\n </form.AppForm>\n </Form>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport {\n Popover,\n PopoverTrigger,\n PopoverPanel,\n PopoverHeader,\n PopoverContent,\n PopoverTitle,\n} from '../popover'\nimport { TableDateFilterForm } from './table-date-filter-form'\nimport { useTableContext } from './table-feature-context'\nimport { defaultFilterOperatorLabels } from './table.types'\nimport type { TableDateFilterChipProps } from './table.types'\nimport { asFilterValue, getColumnHeaderLabel } from './table.utils'\nimport type { DateFilterValue } from './table.utils'\n\nconst FIRST_DATE_INDEX = 0,\n LAST_DATE_INDEX = 1\n\nfunction getDateFilterLabel(date: DateFilterValue['date'] | string): string {\n if (Array.isArray(date)) {\n if (date[LAST_DATE_INDEX] !== '') {\n return date.join(' - ')\n }\n return date[FIRST_DATE_INDEX]\n }\n return date\n}\n\nexport function TableDateFilterChip<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableDateFilterChipProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n columnFilter = asFilterValue<DateFilterValue>(column.getFilterValue())\n\n return (\n <Popover key={column.id}>\n <PopoverTrigger className={cn('', className)} ref={ref} {...props}>\n <Button tone=\"neutral\" size=\"extraSmall\" variant=\"soft\">\n <Icon name=\"filter\" />\n <span>{getColumnHeaderLabel(column)}</span>\n <span className=\"lowercase\">\n {filterOperatorLabels?.[columnFilter.operator] ??\n defaultFilterOperatorLabels[columnFilter.operator]}\n </span>\n <span>{getDateFilterLabel(columnFilter.date)}</span>\n </Button>\n </PopoverTrigger>\n <PopoverPanel>\n <PopoverHeader>\n <PopoverTitle>{getColumnHeaderLabel(column)}</PopoverTitle>\n <PopoverContent>\n {children}\n <TableDateFilterForm column={column} />\n </PopoverContent>\n </PopoverHeader>\n </PopoverPanel>\n </Popover>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Field } from '../field'\nimport { Form, useAppForm } from '../form'\nimport { Radio } from '../radio-group'\nimport { useTableContext } from './table-feature-context'\nimport {\n defaultFilterOperatorLabels,\n numberFilterOperators,\n numberFilterSchema,\n} from './table.types'\nimport type { TableNumberFilterFormProps } from './table.types'\nimport { asFilterValue } from './table.utils'\nimport type { NumberFilterValue } from './table.utils'\n\nconst FROM_VALUE_INDEX = 0,\n TO_VALUE_INDEX = 1\n\nexport function TableNumberFilterForm<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableNumberFilterFormProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {\n apply: 'Apply',\n reset: 'Reset',\n },\n currentFilter = asFilterValue<NumberFilterValue | undefined>(column.getFilterValue()),\n form = useAppForm({\n defaultValues: {\n filterOperator: currentFilter?.operator ?? 'equals',\n filterValueFrom: currentFilter?.number[FROM_VALUE_INDEX] ?? '',\n filterValueTo: currentFilter?.number[TO_VALUE_INDEX] ?? '',\n },\n onSubmit: ({ value }) => {\n column.setFilterValue({\n number: [value.filterValueFrom, value.filterValueTo],\n operator: value.filterOperator,\n } satisfies NumberFilterValue)\n },\n validators: {\n onSubmit: numberFilterSchema,\n },\n }),\n onReset = () => {\n column.setFilterValue(undefined)\n form.reset({ filterOperator: 'equals', filterValueFrom: '', filterValueTo: '' })\n }\n\n return (\n <Form\n onSubmit={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n await form.handleSubmit()\n }}\n onReset={onReset}\n className={cn('', className)}\n ref={ref}\n {...props}\n >\n <form.AppForm>\n {children}\n <form.Errors />\n <form.Set>\n <form.SetContent>\n <form.AppField name=\"filterOperator\">\n {(field) => (\n <Field>\n <field.Errors />\n <field.RadioGroup>\n {numberFilterOperators.map((operator) => (\n <field.Set key={operator}>\n <Radio value={operator} variant=\"inSurface\">\n {filterOperatorLabels?.[operator] ??\n defaultFilterOperatorLabels[operator]}\n </Radio>\n {field.state.value === operator && (\n <>\n <form.AppField name=\"filterValueFrom\">\n {(valueField) => (\n <Field>\n <valueField.Errors />\n <valueField.Input\n aria-label={`${column.id} filter value`}\n type=\"number\"\n variant=\"secondary\"\n />\n </Field>\n )}\n </form.AppField>\n {operator === 'between' && (\n <form.AppField name=\"filterValueTo\">\n {(valueField) => (\n <Field>\n <valueField.Errors />\n <valueField.Input\n aria-label={`${column.id} maximum filter value`}\n type=\"number\"\n variant=\"secondary\"\n />\n </Field>\n )}\n </form.AppField>\n )}\n </>\n )}\n </field.Set>\n ))}\n </field.RadioGroup>\n </Field>\n )}\n </form.AppField>\n </form.SetContent>\n </form.Set>\n <form.Footer>\n <form.Reset>{buttonLabels.reset}</form.Reset>\n <form.Submit>{buttonLabels.apply}</form.Submit>\n </form.Footer>\n </form.AppForm>\n </Form>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport {\n Popover,\n PopoverContent,\n PopoverHeader,\n PopoverPanel,\n PopoverTitle,\n PopoverTrigger,\n} from '../popover'\nimport { useTableContext } from './table-feature-context'\nimport { TableNumberFilterForm } from './table-number-filter-form'\nimport { defaultFilterOperatorLabels } from './table.types'\nimport type { TableNumberFilterChipProps } from './table.types'\nimport { asFilterValue, getColumnHeaderLabel } from './table.utils'\nimport type { NumberFilterValue } from './table.utils'\n\nconst FIRST_RANGE_INDEX = 0\n\nfunction getFilterDisplayValue(filterValue: NumberFilterValue): string {\n if (filterValue.operator === 'between') {\n return filterValue.number.filter(Boolean).join(' - ')\n }\n return filterValue.number[FIRST_RANGE_INDEX]\n}\n\nexport function TableNumberFilterChip<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableNumberFilterChipProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n columnFilter = asFilterValue<NumberFilterValue>(column.getFilterValue()),\n filterValue = getFilterDisplayValue(columnFilter)\n\n return (\n <Popover>\n <PopoverTrigger className={cn('', className)} ref={ref} {...props}>\n <Button tone=\"neutral\" size=\"extraSmall\" variant=\"soft\">\n <Icon name=\"filter\" />\n <span>{getColumnHeaderLabel(column)}</span>\n <span className=\"font-light lowercase\">\n {filterOperatorLabels?.[columnFilter.operator] ??\n defaultFilterOperatorLabels[columnFilter.operator]}\n </span>\n <span>{filterValue}</span>\n {children}\n </Button>\n </PopoverTrigger>\n <PopoverPanel>\n <PopoverHeader>\n <PopoverTitle>{getColumnHeaderLabel(column)}</PopoverTitle>\n </PopoverHeader>\n <PopoverContent>\n <TableNumberFilterForm column={column} />\n </PopoverContent>\n </PopoverPanel>\n </Popover>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\nimport { useState } from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Form, FormFooter } from '../form'\nimport { Icon } from '../icon'\nimport {\n Select,\n SelectIcon,\n SelectItem,\n SelectList,\n SelectPopup,\n SelectTitle,\n SelectTrigger,\n SelectValue,\n} from '../select'\nimport { useTableContext } from './table-feature-context'\nimport type {\n TableSelectFilterFormProps,\n TableSelectFilterOption,\n TableSelectFilterValue,\n} from './table.types'\n\nconst EMPTY_FILTER_COUNT = 0,\n isSelectFilterOption = (value: unknown): value is TableSelectFilterOption =>\n typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean',\n isSelectFilterValue = (value: unknown): value is TableSelectFilterValue =>\n Array.isArray(value) && value.every(isSelectFilterOption),\n getSelectValueLabel = (value: unknown): string => {\n if (isSelectFilterValue(value)) {\n return value.map(String).join(', ')\n }\n return 'Select values'\n }\n\nexport function TableSelectFilterForm<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableSelectFilterFormProps<TData>) {\n const table = useTableContext(),\n currentFilter = column.getFilterValue(),\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {\n apply: 'Apply',\n reset: 'Reset',\n },\n [filterValue, setFilterValue] = useState<TableSelectFilterValue>(() => {\n if (isSelectFilterValue(currentFilter)) {\n return currentFilter\n }\n return []\n }),\n options = [...column.getFacetedUniqueValues().keys()]\n .filter(isSelectFilterOption)\n .toSorted((left, right) => String(left).localeCompare(String(right)))\n\n return (\n <Form\n className={cn('', className)}\n onReset={() => {\n column.setFilterValue(undefined)\n setFilterValue([])\n }}\n onSubmit={(event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (filterValue.length > EMPTY_FILTER_COUNT) {\n column.setFilterValue(filterValue)\n }\n }}\n ref={ref}\n {...props}\n >\n {children}\n <Select\n multiple\n value={filterValue}\n onValueChange={(value) => {\n if (isSelectFilterValue(value)) {\n setFilterValue(value)\n }\n }}\n >\n <SelectTrigger aria-label={`${column.id} filter value`} variant=\"secondary\">\n <SelectValue placeholder=\"Select values\">\n {(value) => getSelectValueLabel(value)}\n </SelectValue>\n <SelectIcon>\n <Icon name=\"chevronsUpDown\" />\n </SelectIcon>\n </SelectTrigger>\n <SelectPopup alignItemWithTrigger={false} sideOffset={8}>\n <SelectList>\n {options.map((option) => (\n <SelectItem key={`${typeof option}:${String(option)}`} value={option}>\n <SelectTitle>{String(option)}</SelectTitle>\n </SelectItem>\n ))}\n </SelectList>\n </SelectPopup>\n </Select>\n <FormFooter>\n <Button className=\"w-full\" tone=\"neutral\" type=\"reset\" variant=\"outline\">\n {buttonLabels.reset}\n </Button>\n <Button\n className=\"w-full\"\n disabled={filterValue.length === EMPTY_FILTER_COUNT}\n type=\"submit\"\n >\n {buttonLabels.apply}\n </Button>\n </FormFooter>\n </Form>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport {\n Popover,\n PopoverContent,\n PopoverHeader,\n PopoverPanel,\n PopoverTitle,\n PopoverTrigger,\n} from '../popover'\nimport { TableSelectFilterForm } from './table-select-filter-form'\nimport type { TableSelectFilterChipProps, TableSelectFilterValue } from './table.types'\nimport { asFilterValue, getColumnHeaderLabel } from './table.utils'\n\nexport function TableSelectFilterChip<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableSelectFilterChipProps<TData>) {\n const columnFilter = asFilterValue<TableSelectFilterValue>(column.getFilterValue()),\n header = getColumnHeaderLabel(column)\n\n return (\n <Popover>\n <PopoverTrigger className={cn('', className)} ref={ref} {...props}>\n <Button size=\"extraSmall\" variant=\"soft\">\n <Icon name=\"filter\" />\n <span>{header}</span>\n <span className=\"font-light lowercase\">{columnFilter.map(String).join(', ')}</span>\n {children}\n </Button>\n </PopoverTrigger>\n <PopoverPanel>\n <PopoverHeader>\n <PopoverTitle>{header}</PopoverTitle>\n </PopoverHeader>\n <PopoverContent>\n <TableSelectFilterForm column={column} />\n </PopoverContent>\n </PopoverPanel>\n </Popover>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Field } from '../field'\nimport { Form, useAppForm } from '../form'\nimport { Radio } from '../radio-group'\nimport { useTableContext } from './table-feature-context'\nimport {\n defaultFilterOperatorLabels,\n stringFilterOperators,\n stringFilterSchema,\n} from './table.types'\nimport type { TableStringFilterFormProps } from './table.types'\nimport { asFilterValue } from './table.utils'\nimport type { StringFilterValue } from './table.utils'\n\nexport function TableStringFilterForm<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableStringFilterFormProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {\n apply: 'Apply',\n reset: 'Reset',\n },\n currentFilter = asFilterValue<StringFilterValue | undefined>(column.getFilterValue()),\n form = useAppForm({\n defaultValues: {\n filterOperator: currentFilter?.operator ?? 'contains',\n filterValue: currentFilter?.value ?? '',\n },\n onSubmit: ({ value }) => {\n column.setFilterValue({\n operator: value.filterOperator,\n value: value.filterValue,\n } satisfies StringFilterValue)\n },\n validators: {\n onSubmit: stringFilterSchema,\n },\n }),\n onReset = () => {\n column.setFilterValue(undefined)\n form.reset({ filterOperator: 'contains', filterValue: '' })\n }\n\n return (\n <Form\n onSubmit={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n await form.handleSubmit()\n }}\n onReset={onReset}\n className={cn('', className)}\n ref={ref}\n {...props}\n >\n <form.AppForm>\n {children}\n <form.Errors />\n <form.Set>\n <form.SetContent>\n <form.AppField name=\"filterOperator\">\n {(field) => (\n <Field>\n <field.Errors />\n <field.RadioGroup>\n {stringFilterOperators.map((operator) => (\n <field.Set key={operator}>\n <Radio value={operator} variant=\"inSurface\">\n {filterOperatorLabels?.[operator] ??\n defaultFilterOperatorLabels[operator]}\n </Radio>\n {field.state.value === operator && (\n <form.AppField name=\"filterValue\">\n {(valueField) => (\n <Field>\n <valueField.Errors />\n <valueField.Input\n aria-label={`${column.id} filter value`}\n variant=\"secondary\"\n />\n </Field>\n )}\n </form.AppField>\n )}\n </field.Set>\n ))}\n </field.RadioGroup>\n </Field>\n )}\n </form.AppField>\n </form.SetContent>\n </form.Set>\n <form.Footer>\n <form.Reset>{buttonLabels.reset}</form.Reset>\n <form.Submit>{buttonLabels.apply}</form.Submit>\n </form.Footer>\n </form.AppForm>\n </Form>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport {\n Popover,\n PopoverContent,\n PopoverHeader,\n PopoverPanel,\n PopoverTitle,\n PopoverTrigger,\n} from '../popover'\nimport { useTableContext } from './table-feature-context'\nimport { TableStringFilterForm } from './table-string-filter-form'\nimport { defaultFilterOperatorLabels } from './table.types'\nimport type { TableStringFilterChipProps } from './table.types'\nimport { asFilterValue, getColumnHeaderLabel } from './table.utils'\nimport type { StringFilterValue } from './table.utils'\n\nexport function TableStringFilterChip<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableStringFilterChipProps<TData>) {\n const table = useTableContext(),\n filterOperatorLabels = table.options.meta?.translations?.filterOperatorLabels,\n columnFilter = asFilterValue<StringFilterValue>(column.getFilterValue())\n\n return (\n <Popover>\n <PopoverTrigger className={cn('', className)} ref={ref} {...props}>\n <Button tone=\"neutral\" size=\"extraSmall\" variant=\"soft\">\n <Icon name=\"filter\" />\n <span>{getColumnHeaderLabel(column)}</span>\n <span className=\"font-light lowercase\">\n {filterOperatorLabels?.[columnFilter.operator] ??\n defaultFilterOperatorLabels[columnFilter.operator]}\n </span>\n <span>{columnFilter.value}</span>\n {children}\n </Button>\n </PopoverTrigger>\n <PopoverPanel>\n <PopoverHeader>\n <PopoverTitle>{getColumnHeaderLabel(column)}</PopoverTitle>\n </PopoverHeader>\n <PopoverContent>\n <TableStringFilterForm column={column} />\n </PopoverContent>\n </PopoverPanel>\n </Popover>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { TableDateFilterChip } from './table-date-filter-chip'\nimport { useTableContext } from './table-feature-context'\nimport { TableNumberFilterChip } from './table-number-filter-chip'\nimport { TableSelectFilterChip } from './table-select-filter-chip'\nimport { TableStringFilterChip } from './table-string-filter-chip'\nimport type { TableFilterListProps } from './table.types'\n\nexport function TableFilterList({ className, children, ref, ...props }: TableFilterListProps) {\n const table = useTableContext()\n\n return (\n <table.Subscribe selector={(state) => state.columnFilters}>\n {() => {\n if (!table.getAllColumns().some((column) => column.getIsFiltered())) {\n return undefined\n }\n\n return (\n <div className={cn('flex flex-wrap items-center gap-xs', className)} ref={ref} {...props}>\n {children}\n {table.getAllColumns().map((column) => {\n if (!column.getIsFiltered()) {\n return undefined\n }\n\n switch (column.columnDef.meta?.filterVariant) {\n case 'date': {\n return <TableDateFilterChip key={column.id} column={column} />\n }\n case 'number': {\n return <TableNumberFilterChip key={column.id} column={column} />\n }\n case 'select': {\n return <TableSelectFilterChip key={column.id} column={column} />\n }\n case 'string': {\n return <TableStringFilterChip key={column.id} column={column} />\n }\n default: {\n return undefined\n }\n }\n })}\n </div>\n )\n }}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Menu, MenuItem, MenuPopup, MenuTrigger } from '../menu'\nimport {\n Popover,\n PopoverContent,\n PopoverHeader,\n PopoverPanel,\n PopoverTitle,\n PopoverTrigger,\n} from '../popover'\nimport { TableDateFilterForm } from './table-date-filter-form'\nimport { useTableContext } from './table-feature-context'\nimport { TableNumberFilterForm } from './table-number-filter-form'\nimport { TableSelectFilterForm } from './table-select-filter-form'\nimport { TableStringFilterForm } from './table-string-filter-form'\nimport type { TableFilterMenuProps } from './table.types'\nimport { getColumnHeaderLabel } from './table.utils'\n\nexport function TableFilterMenu({ className, ref, ...props }: TableFilterMenuProps) {\n const table = useTableContext()\n\n return (\n <Menu modal={false}>\n <MenuTrigger className={cn('shrink-0', className)} ref={ref} {...props} />\n <MenuPopup align=\"end\" className=\"\">\n {table\n .getAllColumns()\n .filter((column) => column.getCanFilter())\n .map((column) => {\n const { filterVariant } = column.columnDef.meta ?? {}\n\n return (\n <Popover key={column.id}>\n <PopoverTrigger nativeButton>\n <MenuItem closeOnClick={false}>{getColumnHeaderLabel(column)}</MenuItem>\n </PopoverTrigger>\n <PopoverPanel\n side=\"inline-end\"\n align=\"start\"\n className={cn('', className)}\n onKeyDownCapture={(event) => event.stopPropagation()}\n >\n <PopoverHeader>\n <PopoverTitle>{getColumnHeaderLabel(column)}</PopoverTitle>\n </PopoverHeader>\n <PopoverContent>\n {(() => {\n switch (filterVariant) {\n case 'date': {\n return <TableDateFilterForm column={column} />\n }\n case 'number': {\n return <TableNumberFilterForm column={column} />\n }\n case 'select': {\n return <TableSelectFilterForm column={column} />\n }\n case 'string': {\n return <TableStringFilterForm column={column} />\n }\n default: {\n return undefined\n }\n }\n })()}\n </PopoverContent>\n </PopoverPanel>\n </Popover>\n )\n })}\n </MenuPopup>\n </Menu>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTableContext } from './table-feature-context'\nimport type { TableFirstPageProps } from './table.types'\n\nconst DEFAULT_PAGE_INDEX = 0\n\nexport function TableFirstPage({ className, children, ref, ...props }: TableFirstPageProps) {\n const table = useTableContext(),\n handleClick = () => {\n table.setPageIndex(DEFAULT_PAGE_INDEX)\n }\n\n return (\n <Button\n aria-label=\"Go to first page\"\n className={cn('shrink-0', className)}\n disabled={!table.getCanPreviousPage()}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n size=\"medium\"\n {...props}\n >\n {children ?? <Icon name=\"firstPage\" />}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { useTableContext as useRegisteredTableContext } from './table-context'\nimport { useTableContext } from './table-feature-context'\nimport type { TableFooterProps } from './table.types'\n\nexport function TableFooter({ className, children, ref, ...props }: TableFooterProps) {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n const table = useTableContext() as ReturnType<typeof useRegisteredTableContext>\n\n return (\n <tfoot\n className={cn('border-t border-border bg-neutral-container-low', className)}\n ref={ref}\n {...props}\n >\n {children}\n {table.getFooterGroups().map((footerGroup) => (\n <tr key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <table.AppFooter header={header} key={header.id}>\n {(footer) => (\n // oxlint-disable-next-line jsx-a11y/control-has-associated-label\n <td\n style={{\n width: footer.getSize(),\n }}\n className=\"p-xs\"\n colSpan={footer.colSpan}\n >\n <table.FlexRender footer={footer} />\n </td>\n )}\n </table.AppFooter>\n ))}\n </tr>\n ))}\n </tfoot>\n )\n}\n","import { Icon } from '@/components/icon'\nimport { cn } from '@/utils/cn'\n\nimport type { useTableContext as useRegisteredTableContext } from './table-context'\nimport { useTableContext } from './table-feature-context'\nimport type { TableHeaderProps } from './table.types'\n\nexport function TableHeader({ className, children, ref, ...props }: TableHeaderProps) {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion\n const table = useTableContext() as ReturnType<typeof useRegisteredTableContext>\n\n return (\n <table.Subscribe selector={(state) => state}>\n {(state) => {\n if (state.viewMode === 'grid') {\n return undefined\n }\n return (\n <thead\n className={cn('sticky top-0 bg-neutral-container-low', className)}\n ref={ref}\n {...props}\n >\n {children}\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <table.AppHeader\n header={header}\n key={header.id}\n selector={(tableState) => tableState.sorting}\n >\n {(renderHeader) => {\n const sorting = renderHeader.column.getIsSorted()\n return (\n <th\n style={{\n width: renderHeader.getSize(),\n }}\n className={cn(\n 'container p-xs text-left style-text-default-0 text-neutral-on-container-muted transition-colors group-data-[variant=outline]/table:shadow-[inset_0_-1px_0_var(--color-border)] group-data-[variant=ghost]/table:first:rounded-l-xl group-data-[variant=ghost]/table:last:rounded-r-xl',\n renderHeader.column.getCanSort() &&\n 'hover:cursor-pointer hover:bg-neutral-container hover:*:text-neutral-on-container',\n renderHeader.isPlaceholder && 'cursor-default',\n renderHeader.column.getIsSorted() && 'text-brand-on-container!',\n className,\n )}\n colSpan={renderHeader.colSpan}\n key={renderHeader.id}\n onClick={renderHeader.column.getToggleSortingHandler()}\n >\n {!renderHeader.isPlaceholder && (\n <div\n className={cn(\n 'flex items-center gap-2xs whitespace-nowrap has-[[role=checkbox]]:justify-center [&_svg]:size-sm',\n renderHeader.column.getCanSort() &&\n 'select-none hover:cursor-pointer',\n )}\n >\n <div className=\"flex items-center gap-2xs\">\n <table.FlexRender header={renderHeader} />\n </div>\n {sorting === 'asc' && <Icon name=\"sortDescending\" />}\n {sorting === 'desc' && <Icon name=\"sortAscending\" />}\n {!sorting && renderHeader.column.getCanSort() && (\n <Icon name=\"columnFilter\" />\n )}\n </div>\n )}\n </th>\n )\n }}\n </table.AppHeader>\n ))}\n </tr>\n ))}\n </thead>\n )\n }}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useCellContext } from './table-feature-context'\nimport type { TableImageCellProps } from './table.types'\n\nexport function TableImageCell({ className, ref, ...props }: TableImageCellProps) {\n const cell = useCellContext<string>()\n\n return (\n <img\n alt=\"\"\n src={cell.getValue()}\n className={cn('my-xs size-xl', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTableContext } from './table-feature-context'\nimport type { TableLastPageProps } from './table.types'\n\nconst LAST_PAGE_OFFSET = 1\n\nexport function TableLastPage({ className, children, ref, ...props }: TableLastPageProps) {\n const table = useTableContext(),\n handleClick = () => {\n table.setPageIndex(table.getPageCount() - LAST_PAGE_OFFSET)\n }\n\n return (\n <Button\n aria-label=\"Go to last page\"\n className={cn('shrink-0', className)}\n disabled={!table.getCanNextPage()}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n size=\"medium\"\n {...props}\n >\n {children ?? <Icon name=\"lastPage\" />}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { TableLayoutProps } from './table.types'\n\nexport function TableLayout({ className, ref, ...props }: TableLayoutProps) {\n return (\n <div\n data-slot=\"table-layout\"\n className={cn('flex min-w-0 flex-col gap-md', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils'\n\nimport { Button } from '../button'\nimport { useCellContext } from './table-feature-context'\nimport type { TableLinkCellProps } from './table.types'\n\nexport function TableLinkCell({ className, children, ref, ...props }: TableLinkCellProps) {\n const cell = useCellContext<string>(),\n value = cell.getValue()\n\n return (\n <Button variant=\"link\" type=\"button\" className={cn('', className)} ref={ref} {...props}>\n {children ?? value}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTableContext } from './table-feature-context'\nimport type { TableNextPageProps } from './table.types'\n\nexport function TableNextPage({ className, children, ref, ...props }: TableNextPageProps) {\n const table = useTableContext(),\n handleClick = () => {\n table.nextPage()\n }\n\n return (\n <Button\n aria-label=\"Go to next page\"\n className={cn('shrink-0', className)}\n disabled={!table.getCanNextPage()}\n onClick={handleClick}\n ref={ref}\n size=\"medium\"\n variant=\"outline\"\n tone=\"neutral\"\n {...props}\n >\n {children ?? <Icon name=\"chevronRight\" />}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useCellContext } from './table-feature-context'\nimport type { TableNumberCellProps } from './table.types'\n\nexport function TableNumberCell({ className, children, ref, ...props }: TableNumberCellProps) {\n const cell = useCellContext<number>()\n\n return (\n <span className={cn('', className)} ref={ref} {...props}>\n {children}\n {cell.getValue().toLocaleString()}\n </span>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { TablePaginationProps } from './table.types'\n\nexport function TablePagination({ className, ref, ...props }: TablePaginationProps) {\n return (\n <div\n className={cn('inline-flex items-center justify-center gap-3xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { Menu, MenuPopup, MenuRadioGroup, MenuRadioItem, MenuTrigger } from '../menu'\nimport { useTableContext } from './table-feature-context'\nimport type { TablePagingProps } from './table.types'\n\nconst DEFAULT_VISIBLE_START_PAGES = 3,\n DEFAULT_VISIBLE_END_PAGES = 1,\n FIRST_PAGE_INDEX = 0,\n PAGE_NUMBER_OFFSET = 1,\n PAGE_INDEX_INCREMENT = 1,\n MORE_PAGES_MAX_HEIGHT = 200\n\nfunction getLeadingPageIndexes(minimumPages: number, totalPages: number): number[] {\n const pageIndexes: number[] = []\n for (\n let pageIndex = FIRST_PAGE_INDEX;\n pageIndex < minimumPages && pageIndex < totalPages;\n pageIndex += PAGE_INDEX_INCREMENT\n ) {\n pageIndexes.push(pageIndex)\n }\n return pageIndexes\n}\n\nfunction getOverflowPageIndexes(\n minimumPages: number,\n maximumPages: number,\n totalPages: number,\n): number[] {\n const pageIndexes: number[] = []\n for (\n let pageIndex = minimumPages;\n pageIndex < totalPages - maximumPages;\n pageIndex += PAGE_INDEX_INCREMENT\n ) {\n pageIndexes.push(pageIndex)\n }\n return pageIndexes\n}\n\nfunction getTrailingPageIndexes(\n minimumPages: number,\n maximumPages: number,\n totalPages: number,\n): number[] {\n const pageIndexes: number[] = []\n for (\n let pageIndex = totalPages - maximumPages;\n pageIndex < totalPages;\n pageIndex += PAGE_INDEX_INCREMENT\n ) {\n if (pageIndex >= minimumPages) {\n pageIndexes.push(pageIndex)\n }\n }\n return pageIndexes\n}\n\nfunction getPageButtonTone(pageIndex: number, selectedPageIndex: number): 'brand' | 'neutral' {\n if (pageIndex === selectedPageIndex) {\n return 'brand'\n }\n return 'neutral'\n}\n\nfunction getPageButtonVariant(pageIndex: number, selectedPageIndex: number): 'fill' | 'outline' {\n if (pageIndex === selectedPageIndex) {\n return 'fill'\n }\n return 'outline'\n}\n\nexport function TablePaging({\n min = DEFAULT_VISIBLE_START_PAGES,\n max = DEFAULT_VISIBLE_END_PAGES,\n className,\n children,\n ref,\n ...props\n}: TablePagingProps) {\n const table = useTableContext(),\n handleClick = (pageIndex: number) => {\n table.setPageIndex(pageIndex)\n }\n\n return (\n <table.Subscribe selector={(state) => state.pagination}>\n {(pagination) => {\n const totalPages = table.getPageCount(),\n leadingPageIndexes = getLeadingPageIndexes(min, totalPages),\n overflowPageIndexes = getOverflowPageIndexes(min, max, totalPages),\n trailingPageIndexes = getTrailingPageIndexes(min, max, totalPages)\n\n return (\n <div className={cn('flex items-center gap-2xs', className)} ref={ref} {...props}>\n {children}\n {leadingPageIndexes.map((pageIndex) => (\n <Button\n key={`page-${pageIndex}`}\n tone={getPageButtonTone(pageIndex, pagination.pageIndex)}\n variant={getPageButtonVariant(pageIndex, pagination.pageIndex)}\n className=\"shrink-0\"\n onClick={() => handleClick(pageIndex)}\n >\n {pageIndex + PAGE_NUMBER_OFFSET}\n </Button>\n ))}\n {totalPages > min + max && (\n <Menu>\n <MenuTrigger>\n <Button\n aria-label=\"Show more pages\"\n tone=\"neutral\"\n size=\"medium\"\n variant=\"outline\"\n className=\"shrink-0\"\n >\n <Icon name=\"ellipsis\" />\n </Button>\n </MenuTrigger>\n <MenuPopup align=\"center\">\n <MenuRadioGroup\n value={pagination.pageIndex}\n onValueChange={handleClick}\n className=\"overflow-y-auto\"\n style={{ maxHeight: `${MORE_PAGES_MAX_HEIGHT}px` }}\n >\n {overflowPageIndexes.map((pageIndex) => (\n <MenuRadioItem key={pageIndex} value={pageIndex} closeOnClick>\n {pageIndex + PAGE_NUMBER_OFFSET}\n </MenuRadioItem>\n ))}\n </MenuRadioGroup>\n </MenuPopup>\n </Menu>\n )}\n {trailingPageIndexes.map((pageIndex) => (\n <Button\n key={`last-page-${pageIndex}`}\n tone={getPageButtonTone(pageIndex, pagination.pageIndex)}\n variant={getPageButtonVariant(pageIndex, pagination.pageIndex)}\n className=\"shrink-0\"\n onClick={() => handleClick(pageIndex)}\n >\n {pageIndex + PAGE_NUMBER_OFFSET}\n </Button>\n ))}\n </div>\n )\n }}\n </table.Subscribe>\n )\n}\n","import { useCellContext } from './table-feature-context'\nimport type { TablePercentCellProps } from './table.types'\n\nexport function TablePercentCell({ locale, options, children, ...props }: TablePercentCellProps) {\n const cell = useCellContext<number | null | undefined>(),\n value = cell.getValue()\n\n if (value === undefined || value === null) {\n return undefined\n }\n\n return (\n <span {...props}>\n {children}\n {new Intl.NumberFormat(locale, { ...options, style: 'percent' }).format(value)}\n </span>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTableContext } from './table-feature-context'\nimport type { TablePreviousPageProps } from './table.types'\n\nexport function TablePreviousPage({ className, children, ref, ...props }: TablePreviousPageProps) {\n const table = useTableContext(),\n handleClick = () => {\n table.previousPage()\n }\n\n return (\n <Button\n aria-label=\"Go to previous page\"\n className={cn('shrink-0', className)}\n disabled={!table.getCanPreviousPage()}\n onClick={handleClick}\n ref={ref}\n variant=\"outline\"\n tone=\"neutral\"\n size=\"medium\"\n {...props}\n >\n {children ?? <Icon name=\"chevronLeft\" />}\n </Button>\n )\n}\n","import { Meter } from '../meter'\nimport { useCellContext } from './table-feature-context'\nimport type { TableProgressCellProps } from './table.types'\n\nexport function TableProgressCell({\n showValue = true,\n children,\n ...props\n}: TableProgressCellProps) {\n const cell = useCellContext<number | null | undefined>(),\n value = cell.getValue()\n\n if (value === undefined || value === null) {\n return undefined\n }\n\n return (\n <Meter orientation=\"horizontal\" aria-label=\"Progress\" {...props} value={value}>\n <Meter.Track>\n <Meter.Indicator />\n </Meter.Track>\n {showValue && <Meter.Value />}\n {children}\n </Meter>\n )\n}\n","import { useState } from 'react'\n\nimport { useCellContext } from './table-feature-context'\nimport type { TableRelativeTimeCellProps } from './table.types'\n\nconst MILLISECONDS_PER_SECOND = 1000,\n ZERO = 0,\n SECONDS_PER_SECOND = 1,\n SECONDS_PER_MINUTE = 60,\n SECONDS_PER_HOUR = 3600,\n SECONDS_PER_DAY = 86_400,\n SECONDS_PER_WEEK = 604_800,\n SECONDS_PER_MONTH = 2_592_000,\n SECONDS_PER_YEAR = 31_536_000,\n RELATIVE_TIME_UNITS = [\n ['year', SECONDS_PER_YEAR],\n ['month', SECONDS_PER_MONTH],\n ['week', SECONDS_PER_WEEK],\n ['day', SECONDS_PER_DAY],\n ['hour', SECONDS_PER_HOUR],\n ['minute', SECONDS_PER_MINUTE],\n ['second', SECONDS_PER_SECOND],\n ] as const\n\nfunction formatRelativeTime(\n date: Date,\n now: Date,\n { locale, options }: Pick<TableRelativeTimeCellProps, 'locale' | 'options'>,\n) {\n const seconds = (date.getTime() - now.getTime()) / MILLISECONDS_PER_SECOND,\n [unit, divisor] =\n RELATIVE_TIME_UNITS.find(([, duration]) => Math.abs(seconds) >= duration) ??\n (['second', SECONDS_PER_SECOND] as const),\n amount = Math.round(seconds / divisor) || ZERO\n\n return new Intl.RelativeTimeFormat(locale, { numeric: 'auto', ...options }).format(amount, unit)\n}\n\nexport function TableRelativeTimeCell({\n locale,\n options,\n now,\n children,\n ...props\n}: TableRelativeTimeCellProps) {\n const cell = useCellContext<Date | null | undefined>(),\n date = cell.getValue(),\n // oxlint-disable-next-line react/hook-use-state -- Keep a fixed mount-time reference unless now is supplied.\n [mountedAt] = useState(() => new Date()),\n referenceDate = now ?? mountedAt\n\n if (!date) {\n return undefined\n }\n\n if (Number.isNaN(date.getTime())) {\n return 'Invalid date'\n }\n\n if (Number.isNaN(referenceDate.getTime())) {\n throw new RangeError('TableRelativeTimeCell requires a valid now date')\n }\n\n return (\n <time dateTime={date.toISOString()} title={date.toLocaleString(locale)} {...props}>\n {children}\n {formatRelativeTime(date, referenceDate, { locale, options })}\n </time>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useTableContext } from './table-feature-context'\nimport type { TableResultsProps } from './table.types'\n\nconst EMPTY_ROW_COUNT = 0,\n PAGE_NUMBER_OFFSET = 1\n\nfunction getPageStart(totalRows: number, pageIndex: number, pageSize: number): number {\n if (totalRows === EMPTY_ROW_COUNT) {\n return EMPTY_ROW_COUNT\n }\n return pageIndex * pageSize + PAGE_NUMBER_OFFSET\n}\n\nfunction getPageEnd(start: number, pageSize: number, totalRows: number): number {\n if (totalRows === EMPTY_ROW_COUNT) {\n return EMPTY_ROW_COUNT\n }\n return Math.min(start + pageSize - PAGE_NUMBER_OFFSET, totalRows)\n}\n\nexport function TableResults({ children, className, ref, ...props }: TableResultsProps) {\n const table = useTableContext(),\n { pageIndex } = table.state.pagination,\n { pageSize } = table.state.pagination,\n totalRows = table.getFilteredRowModel().rows.length,\n start = getPageStart(totalRows, pageIndex, pageSize),\n end = getPageEnd(start, pageSize, totalRows)\n\n return (\n <div\n className={cn(\n 'flex items-center gap-2xs style-text-default--1 text-on-surface-variant',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children(start, end, totalRows)}\n </div>\n )\n}\n","import type { ChangeEvent } from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Icon } from '../icon'\nimport { InputGroup, InputGroupAddon, InputGroupInput } from '../input-group'\nimport { useTableContext } from './table-feature-context'\nimport type { TableSearchProps } from './table.types'\n\nexport function TableSearch({ className, ref, ...props }: TableSearchProps) {\n const table = useTableContext(),\n handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n table.setGlobalFilter(event.target.value)\n }\n\n return (\n <table.Subscribe selector={(state) => state.globalFilter}>\n {(globalFilter) => (\n <InputGroup variant={props.variant ?? 'outline'} className=\"flex-1\">\n <InputGroupAddon>\n <Icon name=\"search\" />\n </InputGroupAddon>\n <InputGroupInput\n className={cn('', className)}\n onChange={handleChange}\n ref={ref}\n value={globalFilter ?? ''}\n {...props}\n />\n </InputGroup>\n )}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Icon } from '../icon'\nimport {\n Menu,\n MenuCheckboxItem,\n MenuPopup,\n MenuSubmenu,\n MenuSubmenuTrigger,\n MenuTrigger,\n} from '../menu'\nimport { useTableContext } from './table-feature-context'\nimport type { TableSortMenuProps } from './table.types'\nimport { getColumnHeaderLabel } from './table.utils'\n\nexport function TableSortMenu({ className, ref, ...props }: TableSortMenuProps) {\n const table = useTableContext(),\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {},\n ascendingLabel = buttonLabels.ascending ?? 'Ascending',\n descendingLabel = buttonLabels.descending ?? 'Descending',\n handleSort = (columnId: string, direction: 'asc' | 'desc') => {\n const column = table.getColumn(columnId),\n currentSort = column?.getIsSorted()\n\n if (currentSort === direction) {\n column?.clearSorting()\n return\n }\n\n column?.toggleSorting(direction === 'desc', column.getCanMultiSort())\n }\n\n return (\n <Menu>\n <MenuTrigger className={cn('shrink-0', className)} ref={ref} {...props} />\n <MenuPopup align=\"end\">\n <table.Subscribe selector={(state) => state.sorting}>\n {() =>\n table\n .getAllColumns()\n .filter((column) => column.getCanSort())\n .map((column) => (\n <MenuSubmenu key={column.id}>\n <MenuSubmenuTrigger>{getColumnHeaderLabel(column)}</MenuSubmenuTrigger>\n <MenuPopup>\n <MenuCheckboxItem\n checked={column.getIsSorted() === 'asc'}\n onClick={() => handleSort(column.id, 'asc')}\n >\n <Icon name=\"sortDescending\" />\n {ascendingLabel}\n </MenuCheckboxItem>\n <MenuCheckboxItem\n checked={column.getIsSorted() === 'desc'}\n onClick={() => handleSort(column.id, 'desc')}\n >\n <Icon name=\"sortAscending\" />\n {descendingLabel}\n </MenuCheckboxItem>\n </MenuPopup>\n </MenuSubmenu>\n ))\n }\n </table.Subscribe>\n </MenuPopup>\n </Menu>\n )\n}\n","import type { RowData } from '@tanstack/react-table'\n\nimport { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport { useTableContext } from './table-feature-context'\nimport { TableSortMenu } from './table-sort-menu'\nimport type { TableSortChipProps } from './table.types'\nimport { getColumnHeaderLabel } from './table.utils'\n\nexport function TableSortChip<TData extends RowData>({\n column,\n className,\n children,\n ref,\n ...props\n}: TableSortChipProps<TData>) {\n const table = useTableContext(),\n buttonLabels = table.options.meta?.translations?.buttonLabels ?? {},\n ascendingLabel = buttonLabels.ascending ?? 'Ascending',\n descendingLabel = buttonLabels.descending ?? 'Descending'\n\n return (\n <table.Subscribe selector={(state) => state.sorting}>\n {() => {\n const columnSort = column.getIsSorted()\n\n console.log(columnSort)\n\n if (!columnSort) {\n return undefined\n }\n\n return (\n <TableSortMenu className={cn('', className)} ref={ref} {...props}>\n <Button size=\"extraSmall\" variant=\"soft\">\n {columnSort === 'asc' && <Icon name=\"sortDescending\" />}\n {columnSort === 'desc' && <Icon name=\"sortAscending\" />}\n <span>{getColumnHeaderLabel(column)}</span>\n <span className=\"font-light lowercase\">\n {columnSort === 'asc' && ascendingLabel}\n {columnSort === 'desc' && descendingLabel}\n </span>\n {children}\n </Button>\n </TableSortMenu>\n )\n }}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useTableContext } from './table-feature-context'\nimport { TableSortChip } from './table-sort-chip'\nimport type { TableSortListProps } from './table.types'\n\nexport function TableSortList({ className, children, ref, ...props }: TableSortListProps) {\n const table = useTableContext()\n\n if (!table.getAllColumns().some((column) => column.getIsSorted())) {\n return undefined\n }\n\n return (\n <table.Subscribe selector={(state) => state.sorting}>\n {() => (\n <div className={cn('flex flex-wrap items-center gap-xs', className)} ref={ref} {...props}>\n {children}\n {table.getAllColumns().map((column) => {\n if (!column.getIsSorted()) {\n return undefined\n }\n\n return <TableSortChip key={column.id} column={column} />\n })}\n </div>\n )}\n </table.Subscribe>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Badge } from '../badge'\nimport { useCellContext } from './table-feature-context'\nimport type { TableTagsCellProps } from './table.types'\n\nexport function TableTagsCell({ badgeProps, className, children, ...props }: TableTagsCellProps) {\n const cell = useCellContext<readonly string[] | null | undefined>(),\n value = cell.getValue()\n\n if (value === undefined || value === null) {\n return undefined\n }\n\n return (\n <div className={cn('flex flex-wrap gap-3xs', className)} {...props}>\n {children}\n {value.map((tag, index) => (\n // oxlint-disable-next-line react/no-array-index-key -- Labels may repeat; badges have no local state.\n <Badge key={`${index}-${tag}`} variant=\"soft\" {...badgeProps}>\n {tag}\n </Badge>\n ))}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useCellContext } from './table-feature-context'\nimport type { TableTextCellProps } from './table.types'\n\nexport function TableTextCell({ className, children, ref, ...props }: TableTextCellProps) {\n const cell = useCellContext<string>()\n\n return (\n <span className={cn('', className)} ref={ref} {...props}>\n {children}\n {cell.getValue()}\n </span>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { TableToolbarProps } from './table.types'\n\nexport function TableToolbar({ className, ref, ...props }: TableToolbarProps) {\n return (\n <div\n data-slot=\"table-toolbar\"\n className={cn(\n 'flex w-full min-w-0 flex-wrap items-center gap-2xs',\n '[:where([data-slot=table-container][data-variant=outline]>&)]:px-md [:where([data-slot=table-container][data-variant=outline]>&:first-child)]:pt-md [:where([data-slot=table-container][data-variant=outline]>&:last-child)]:pb-md',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { TableTopBarProps } from './table.types'\n\nexport function TableTopBar({ className, ref, ...props }: TableTopBarProps) {\n return (\n <div\n className={cn(\n 'flex min-w-0 flex-col pb-md group-data-[variant=outline]/table:border-b group-data-[variant=outline]/table:border-border',\n 'in-data-[slot=table-container]:sticky in-data-[slot=table-container]:top-0 in-data-[slot=table-container]:z-10',\n className,\n )}\n data-slot=\"table-top-bar\"\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { useTableContext } from './table-feature-context'\nimport type { TableViewModeToggleProps } from './table.types'\n\nexport function TableViewModeToggle({\n className,\n children,\n ref,\n ...props\n}: TableViewModeToggleProps) {\n const table = useTableContext(),\n isGridView = table.state.viewMode === 'grid',\n handleClick = () => {\n table.toggleViewMode()\n }\n\n return (\n <Button onClick={handleClick} className={cn('shrink-0', className)} ref={ref} {...props}>\n {children(isGridView)}\n </Button>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useTableContext } from './table-feature-context'\nimport type { TableViewportProps } from './table.types'\n\nexport function TableViewport({ grow, className, children, ref, ...props }: TableViewportProps) {\n const table = useTableContext(),\n isGridView = table.state.viewMode === 'grid'\n\n if (isGridView) {\n return (\n <div\n data-slot=\"table-viewport\"\n className={cn('min-h-0 min-w-0 overflow-auto', grow && 'flex-1', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"table-viewport\"\n className={cn(\n 'min-h-0 min-w-0 overflow-auto focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-surface-focus-ring',\n grow && 'flex-1',\n )}\n >\n <table className={cn('w-full', grow && 'h-full', className)} ref={ref} {...props}>\n {children}\n </table>\n </div>\n )\n}\n","import { createTableHook } from '@tanstack/react-table'\n\nimport { TableAvatarCell } from './table-avatar-cell'\nimport { TableBadgeCell } from './table-badge-cell'\nimport { TableBody } from './table-body'\nimport { TableBooleanCell } from './table-boolean-cell'\nimport { TableBottomBar } from './table-bottom-bar'\nimport { TableCheckboxCell } from './table-checkbox-cell'\nimport { TableCheckboxHeader } from './table-checkbox-header'\nimport { TableColumnToggle } from './table-column-toggle'\nimport { TableContainer } from './table-container'\nimport { TableCurrencyCell } from './table-currency-cell'\nimport { TableDatasetTab } from './table-dataset-tab'\nimport { TableDateTimeCell } from './table-date-time-cell'\nimport { TableEmpty } from './table-empty'\nimport { TableEmptyContent } from './table-empty-content'\nimport { TableEmptyDescription } from './table-empty-description'\nimport { TableEmptyFooter } from './table-empty-footer'\nimport { TableEmptyHeader } from './table-empty-header'\nimport { TableEmptyTitle } from './table-empty-title'\nimport { cellContext, features, headerContext, tableContext } from './table-feature-context'\nimport { TableFilterList } from './table-filter-list'\nimport { TableFilterMenu } from './table-filter-menu'\nimport { TableFirstPage } from './table-first-page'\nimport { TableFooter } from './table-footer'\nimport { TableHeader } from './table-header'\nimport { TableImageCell } from './table-image-cell'\nimport { TableLastPage } from './table-last-page'\nimport { TableLayout } from './table-layout'\nimport { TableLinkCell } from './table-link-cell'\nimport { TableNextPage } from './table-next-page'\nimport { TableNumberCell } from './table-number-cell'\nimport { TablePagination } from './table-pagination'\nimport { TablePaging } from './table-paging'\nimport { TablePercentCell } from './table-percent-cell'\nimport { TablePreviousPage } from './table-previous-page'\nimport { TableProgressCell } from './table-progress-cell'\nimport { TableRelativeTimeCell } from './table-relative-time-cell'\nimport { TableResults } from './table-results'\nimport { TableSearch } from './table-search'\nimport { TableSortList } from './table-sort-list'\nimport { TableSortMenu } from './table-sort-menu'\nimport { TableTagsCell } from './table-tags-cell'\nimport { TableTextCell } from './table-text-cell'\nimport { TableToolbar } from './table-toolbar'\nimport { TableTopBar } from './table-top-bar'\nimport { TableViewModeToggle } from './table-view-mode-toggle'\nimport { TableViewport } from './table-viewport'\n\nconst { createAppColumnHelper, useAppTable, useTableContext, useCellContext, useHeaderContext } =\n createTableHook({\n cellComponents: {\n AvatarCell: TableAvatarCell,\n BadgeCell: TableBadgeCell,\n BooleanCell: TableBooleanCell,\n CheckboxCell: TableCheckboxCell,\n CurrencyCell: TableCurrencyCell,\n DateTimeCell: TableDateTimeCell,\n ImageCell: TableImageCell,\n LinkCell: TableLinkCell,\n NumberCell: TableNumberCell,\n PercentCell: TablePercentCell,\n ProgressCell: TableProgressCell,\n RelativeTimeCell: TableRelativeTimeCell,\n TagsCell: TableTagsCell,\n TextCell: TableTextCell,\n },\n cellContext,\n features,\n getRowId: (row, index, parent) => {\n if (row.id !== undefined && row.id !== null) {\n return row.id\n }\n if (parent) {\n return `${parent.id}.${index}`\n }\n return String(index)\n },\n headerComponents: { CheckboxHeader: TableCheckboxHeader },\n headerContext,\n tableComponents: {\n Body: TableBody,\n BottomBar: TableBottomBar,\n ColumnToggle: TableColumnToggle,\n Container: TableContainer,\n DatasetTab: TableDatasetTab,\n Empty: TableEmpty,\n EmptyContent: TableEmptyContent,\n EmptyDescription: TableEmptyDescription,\n EmptyFooter: TableEmptyFooter,\n EmptyHeader: TableEmptyHeader,\n EmptyTitle: TableEmptyTitle,\n FilterList: TableFilterList,\n FilterMenu: TableFilterMenu,\n FirstPage: TableFirstPage,\n Footer: TableFooter,\n Header: TableHeader,\n LastPage: TableLastPage,\n Layout: TableLayout,\n NextPage: TableNextPage,\n Pagination: TablePagination,\n Paging: TablePaging,\n PreviousPage: TablePreviousPage,\n Results: TableResults,\n Search: TableSearch,\n SortList: TableSortList,\n SortMenu: TableSortMenu,\n Toolbar: TableToolbar,\n TopBar: TableTopBar,\n ViewModeToggle: TableViewModeToggle,\n Viewport: TableViewport,\n },\n tableContext,\n })\n\nexport { createAppColumnHelper, useAppTable, useTableContext, useCellContext, useHeaderContext }\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as TabsIndicator, c as TabsPanelProps, d as TabsTabValue, i as TabsList, l as TabsProps, n as TabsTab, o as TabsIndicatorProps, r as TabsPanel, s as TabsListProps, t as Tabs, u as TabsTabProps } from "../index-DyQYoAUf.js";
|
|
2
|
+
export { Tabs, TabsIndicator, type TabsIndicatorProps, TabsList, type TabsListProps, TabsPanel, type TabsPanelProps, type TabsProps, TabsTab, type TabsTabProps, type TabsTabValue };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as Tabs, a as TabsIndicator, i as TabsList, r as TabsPanel, n as TabsTab } from "../tabs-DTC7coap.js";
|