@dashforge/tw 0.10.0-beta → 1.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/CHANGELOG.md +35 -12
- package/COVERAGE.md +2 -2
- package/PARITY.md +7 -9
- package/PERFORMANCE.md +3 -4
- package/THEME-AUDIT.md +3 -4
- package/dist/components/Accordion/Accordion.d.ts +21 -0
- package/dist/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion/accordion.types.d.ts +74 -0
- package/dist/components/Accordion/accordion.types.d.ts.map +1 -0
- package/dist/components/Accordion/accordion.variants.d.ts +58 -0
- package/dist/components/Accordion/accordion.variants.d.ts.map +1 -0
- package/dist/components/AppShell/AppShell.d.ts +46 -0
- package/dist/components/AppShell/AppShell.d.ts.map +1 -0
- package/dist/components/AppShell/appShell.types.d.ts +62 -0
- package/dist/components/AppShell/appShell.types.d.ts.map +1 -0
- package/dist/components/AppShell/appShell.variants.d.ts +65 -0
- package/dist/components/AppShell/appShell.variants.d.ts.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts +36 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -0
- package/dist/components/AspectRatio/aspectRatio.types.d.ts +50 -0
- package/dist/components/AspectRatio/aspectRatio.types.d.ts.map +1 -0
- package/dist/components/Autocomplete/Autocomplete.d.ts +32 -0
- package/dist/components/Autocomplete/Autocomplete.d.ts.map +1 -0
- package/dist/components/Autocomplete/autocomplete.types.d.ts +214 -0
- package/dist/components/Autocomplete/autocomplete.types.d.ts.map +1 -0
- package/dist/components/Autocomplete/autocomplete.variants.d.ts +214 -0
- package/dist/components/Autocomplete/autocomplete.variants.d.ts.map +1 -0
- package/dist/components/Box/Box.d.ts +36 -0
- package/dist/components/Box/Box.d.ts.map +1 -0
- package/dist/components/Box/box.types.d.ts +54 -0
- package/dist/components/Box/box.types.d.ts.map +1 -0
- package/dist/components/Box/box.variants.d.ts +402 -0
- package/dist/components/Box/box.variants.d.ts.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +23 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts +98 -0
- package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts.map +1 -0
- package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts +85 -0
- package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +44 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/button.types.d.ts +66 -0
- package/dist/components/Button/button.types.d.ts.map +1 -0
- package/dist/components/Button/button.variants.d.ts +104 -0
- package/dist/components/Button/button.variants.d.ts.map +1 -0
- package/dist/components/Calendar/Calendar.d.ts +14 -0
- package/dist/components/Calendar/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar/calendar.types.d.ts +72 -0
- package/dist/components/Calendar/calendar.types.d.ts.map +1 -0
- package/dist/components/Calendar/calendar.variants.d.ts +99 -0
- package/dist/components/Calendar/calendar.variants.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +31 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/checkbox.types.d.ts +86 -0
- package/dist/components/Checkbox/checkbox.types.d.ts.map +1 -0
- package/dist/components/Checkbox/checkbox.variants.d.ts +109 -0
- package/dist/components/Checkbox/checkbox.variants.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +38 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/confirmDialog.types.d.ts +80 -0
- package/dist/components/ConfirmDialog/confirmDialog.types.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts +90 -0
- package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts.map +1 -0
- package/dist/components/Container/Container.d.ts +35 -0
- package/dist/components/Container/Container.d.ts.map +1 -0
- package/dist/components/Container/container.types.d.ts +41 -0
- package/dist/components/Container/container.types.d.ts.map +1 -0
- package/dist/components/Container/container.variants.d.ts +93 -0
- package/dist/components/Container/container.variants.d.ts.map +1 -0
- package/dist/components/DataGrid/DataGrid.d.ts +29 -0
- package/dist/components/DataGrid/DataGrid.d.ts.map +1 -0
- package/dist/components/DataGrid/dataGrid.types.d.ts +214 -0
- package/dist/components/DataGrid/dataGrid.types.d.ts.map +1 -0
- package/dist/components/DataGrid/dataGrid.variants.d.ts +222 -0
- package/dist/components/DataGrid/dataGrid.variants.d.ts.map +1 -0
- package/dist/components/DataGrid/filters/ColumnFilters.d.ts +23 -0
- package/dist/components/DataGrid/filters/ColumnFilters.d.ts.map +1 -0
- package/dist/components/DataGrid/reorder/useColumnReorder.d.ts +50 -0
- package/dist/components/DataGrid/reorder/useColumnReorder.d.ts.map +1 -0
- package/dist/components/DataGrid/resize/useColumnResize.d.ts +39 -0
- package/dist/components/DataGrid/resize/useColumnResize.d.ts.map +1 -0
- package/dist/components/DataGrid/visibility/ColumnVisibilityMenu.d.ts +44 -0
- package/dist/components/DataGrid/visibility/ColumnVisibilityMenu.d.ts.map +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +14 -0
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker/datePicker.types.d.ts +88 -0
- package/dist/components/DatePicker/datePicker.types.d.ts.map +1 -0
- package/dist/components/DatePicker/datePicker.variants.d.ts +97 -0
- package/dist/components/DatePicker/datePicker.variants.d.ts.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +13 -0
- package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -0
- package/dist/components/DateRangePicker/dateRangePicker.types.d.ts +85 -0
- package/dist/components/DateRangePicker/dateRangePicker.types.d.ts.map +1 -0
- package/dist/components/DateRangePicker/dateRangePicker.variants.d.ts +183 -0
- package/dist/components/DateRangePicker/dateRangePicker.variants.d.ts.map +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +13 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -0
- package/dist/components/DateTimePicker/dateTimePicker.types.d.ts +90 -0
- package/dist/components/DateTimePicker/dateTimePicker.types.d.ts.map +1 -0
- package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts +107 -0
- package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +17 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/dialog.types.d.ts +75 -0
- package/dist/components/Dialog/dialog.types.d.ts.map +1 -0
- package/dist/components/Dialog/dialog.variants.d.ts +80 -0
- package/dist/components/Dialog/dialog.variants.d.ts.map +1 -0
- package/dist/components/Divider/Divider.d.ts +50 -0
- package/dist/components/Divider/Divider.d.ts.map +1 -0
- package/dist/components/Divider/divider.types.d.ts +47 -0
- package/dist/components/Divider/divider.types.d.ts.map +1 -0
- package/dist/components/Divider/divider.variants.d.ts +129 -0
- package/dist/components/Divider/divider.variants.d.ts.map +1 -0
- package/dist/components/Grid/Grid.d.ts +32 -0
- package/dist/components/Grid/Grid.d.ts.map +1 -0
- package/dist/components/Grid/grid.types.d.ts +103 -0
- package/dist/components/Grid/grid.types.d.ts.map +1 -0
- package/dist/components/Grid/grid.variants.d.ts +453 -0
- package/dist/components/Grid/grid.variants.d.ts.map +1 -0
- package/dist/components/LeftNav/LeftNav.d.ts +34 -0
- package/dist/components/LeftNav/LeftNav.d.ts.map +1 -0
- package/dist/components/LeftNav/leftNav.types.d.ts +136 -0
- package/dist/components/LeftNav/leftNav.types.d.ts.map +1 -0
- package/dist/components/LeftNav/leftNav.variants.d.ts +143 -0
- package/dist/components/LeftNav/leftNav.variants.d.ts.map +1 -0
- package/dist/components/NumberField/NumberField.d.ts +18 -0
- package/dist/components/NumberField/NumberField.d.ts.map +1 -0
- package/dist/components/NumberField/numberField.types.d.ts +79 -0
- package/dist/components/NumberField/numberField.types.d.ts.map +1 -0
- package/dist/components/NumberField/numberField.variants.d.ts +169 -0
- package/dist/components/NumberField/numberField.variants.d.ts.map +1 -0
- package/dist/components/OTPField/OTPField.d.ts +25 -0
- package/dist/components/OTPField/OTPField.d.ts.map +1 -0
- package/dist/components/OTPField/otpField.types.d.ts +74 -0
- package/dist/components/OTPField/otpField.types.d.ts.map +1 -0
- package/dist/components/OTPField/otpField.variants.d.ts +105 -0
- package/dist/components/OTPField/otpField.variants.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.d.ts +32 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination/pagination.helpers.d.ts +23 -0
- package/dist/components/Pagination/pagination.helpers.d.ts.map +1 -0
- package/dist/components/Pagination/pagination.types.d.ts +120 -0
- package/dist/components/Pagination/pagination.types.d.ts.map +1 -0
- package/dist/components/Pagination/pagination.variants.d.ts +150 -0
- package/dist/components/Pagination/pagination.variants.d.ts.map +1 -0
- package/dist/components/Popover/Popover.d.ts +15 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Popover/popover.types.d.ts +45 -0
- package/dist/components/Popover/popover.types.d.ts.map +1 -0
- package/dist/components/Popover/popover.variants.d.ts +34 -0
- package/dist/components/Popover/popover.variants.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +35 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup/radioGroup.types.d.ts +103 -0
- package/dist/components/RadioGroup/radioGroup.types.d.ts.map +1 -0
- package/dist/components/RadioGroup/radioGroup.variants.d.ts +166 -0
- package/dist/components/RadioGroup/radioGroup.variants.d.ts.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +23 -0
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton/skeleton.types.d.ts +56 -0
- package/dist/components/Skeleton/skeleton.types.d.ts.map +1 -0
- package/dist/components/Skeleton/skeleton.variants.d.ts +110 -0
- package/dist/components/Skeleton/skeleton.variants.d.ts.map +1 -0
- package/dist/components/Snackbar/Snackbar.d.ts +37 -0
- package/dist/components/Snackbar/Snackbar.d.ts.map +1 -0
- package/dist/components/Snackbar/snackbar.types.d.ts +86 -0
- package/dist/components/Snackbar/snackbar.types.d.ts.map +1 -0
- package/dist/components/Snackbar/snackbar.variants.d.ts +153 -0
- package/dist/components/Snackbar/snackbar.variants.d.ts.map +1 -0
- package/dist/components/Stack/Stack.d.ts +24 -0
- package/dist/components/Stack/Stack.d.ts.map +1 -0
- package/dist/components/Stack/stack.types.d.ts +61 -0
- package/dist/components/Stack/stack.types.d.ts.map +1 -0
- package/dist/components/Stack/stack.variants.d.ts +163 -0
- package/dist/components/Stack/stack.variants.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +15 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/switch.types.d.ts +47 -0
- package/dist/components/Switch/switch.types.d.ts.map +1 -0
- package/dist/components/Switch/switch.variants.d.ts +105 -0
- package/dist/components/Switch/switch.variants.d.ts.map +1 -0
- package/dist/components/Table/Table.d.ts +24 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Table/cells/RenderButton.d.ts +13 -0
- package/dist/components/Table/cells/RenderButton.d.ts.map +1 -0
- package/dist/components/Table/cells/RenderChip.d.ts +80 -0
- package/dist/components/Table/cells/RenderChip.d.ts.map +1 -0
- package/dist/components/Table/cells/RenderText.d.ts +21 -0
- package/dist/components/Table/cells/RenderText.d.ts.map +1 -0
- package/dist/components/Table/cells/RenderTwoLine.d.ts +20 -0
- package/dist/components/Table/cells/RenderTwoLine.d.ts.map +1 -0
- package/dist/components/Table/cells/RowActionsMenu.d.ts +36 -0
- package/dist/components/Table/cells/RowActionsMenu.d.ts.map +1 -0
- package/dist/components/Table/cells/index.d.ts +11 -0
- package/dist/components/Table/cells/index.d.ts.map +1 -0
- package/dist/components/Table/table.types.d.ts +399 -0
- package/dist/components/Table/table.types.d.ts.map +1 -0
- package/dist/components/Table/table.variants.d.ts +285 -0
- package/dist/components/Table/table.variants.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +19 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/tabs.types.d.ts +61 -0
- package/dist/components/Tabs/tabs.types.d.ts.map +1 -0
- package/dist/components/Tabs/tabs.variants.d.ts +82 -0
- package/dist/components/Tabs/tabs.variants.d.ts.map +1 -0
- package/dist/components/Tabs/useTabs.d.ts +55 -0
- package/dist/components/Tabs/useTabs.d.ts.map +1 -0
- package/dist/components/TextField/TextField.d.ts +25 -0
- package/dist/components/TextField/TextField.d.ts.map +1 -0
- package/dist/components/TextField/textField.types.d.ts +98 -0
- package/dist/components/TextField/textField.types.d.ts.map +1 -0
- package/dist/components/TextField/textField.variants.d.ts +166 -0
- package/dist/components/TextField/textField.variants.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +16 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/textarea.types.d.ts +63 -0
- package/dist/components/Textarea/textarea.types.d.ts.map +1 -0
- package/dist/components/Textarea/textarea.variants.d.ts +197 -0
- package/dist/components/Textarea/textarea.variants.d.ts.map +1 -0
- package/dist/components/TimePicker/TimePicker.d.ts +12 -0
- package/dist/components/TimePicker/TimePicker.d.ts.map +1 -0
- package/dist/components/TimePicker/timePicker.types.d.ts +80 -0
- package/dist/components/TimePicker/timePicker.types.d.ts.map +1 -0
- package/dist/components/TimePicker/timePicker.variants.d.ts +103 -0
- package/dist/components/TimePicker/timePicker.variants.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +29 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/tooltip.types.d.ts +47 -0
- package/dist/components/Tooltip/tooltip.types.d.ts.map +1 -0
- package/dist/components/Tooltip/tooltip.variants.d.ts +34 -0
- package/dist/components/Tooltip/tooltip.variants.d.ts.map +1 -0
- package/dist/components/TopBar/TopBar.d.ts +33 -0
- package/dist/components/TopBar/TopBar.d.ts.map +1 -0
- package/dist/components/TopBar/topBar.types.d.ts +49 -0
- package/dist/components/TopBar/topBar.types.d.ts.map +1 -0
- package/dist/components/TopBar/topBar.variants.d.ts +79 -0
- package/dist/components/TopBar/topBar.variants.d.ts.map +1 -0
- package/dist/components/Typography/Typography.d.ts +42 -0
- package/dist/components/Typography/Typography.d.ts.map +1 -0
- package/dist/components/Typography/typography.types.d.ts +61 -0
- package/dist/components/Typography/typography.types.d.ts.map +1 -0
- package/dist/components/Typography/typography.variants.d.ts +167 -0
- package/dist/components/Typography/typography.variants.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +42 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/visuallyHidden.types.d.ts +42 -0
- package/dist/components/VisuallyHidden/visuallyHidden.types.d.ts.map +1 -0
- package/dist/components/_shared/data/getNestedValue.d.ts +20 -0
- package/dist/components/_shared/data/getNestedValue.d.ts.map +1 -0
- package/dist/components/_shared/data/useColumnAutoDetect.d.ts +45 -0
- package/dist/components/_shared/data/useColumnAutoDetect.d.ts.map +1 -0
- package/dist/components/_shared/data/useControllableState.d.ts +23 -0
- package/dist/components/_shared/data/useControllableState.d.ts.map +1 -0
- package/dist/components/_shared/data/useDebouncedValue.d.ts +10 -0
- package/dist/components/_shared/data/useDebouncedValue.d.ts.map +1 -0
- package/dist/components/_shared/data/useTableFilter.d.ts +36 -0
- package/dist/components/_shared/data/useTableFilter.d.ts.map +1 -0
- package/dist/components/_shared/data/useTableSearch.d.ts +23 -0
- package/dist/components/_shared/data/useTableSearch.d.ts.map +1 -0
- package/dist/components/_shared/data/useTableSelection.d.ts +25 -0
- package/dist/components/_shared/data/useTableSelection.d.ts.map +1 -0
- package/dist/components/_shared/data/useTableSort.d.ts +20 -0
- package/dist/components/_shared/data/useTableSort.d.ts.map +1 -0
- package/dist/components/_shared/data/useVirtualizer.d.ts +107 -0
- package/dist/components/_shared/data/useVirtualizer.d.ts.map +1 -0
- package/dist/components/_shared/resolveValidationState.d.ts +42 -0
- package/dist/components/_shared/resolveValidationState.d.ts.map +1 -0
- package/dist/hooks/useAccessState.d.ts +37 -0
- package/dist/hooks/useAccessState.d.ts.map +1 -0
- package/dist/index.d.ts +146 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +133 -24
- package/dist/src/components/Tabs/Tabs.d.ts +8 -4
- package/dist/src/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/src/components/Tabs/tabs.types.d.ts +8 -2
- package/dist/src/components/Tabs/tabs.types.d.ts.map +1 -1
- package/dist/src/components/Tabs/useTabs.d.ts +55 -0
- package/dist/src/components/Tabs/useTabs.d.ts.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/cn.d.ts +26 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/package.json +7 -8
- package/src/components/Tabs/Tabs.test.tsx +85 -14
- package/src/components/Tabs/Tabs.tsx +35 -24
- package/src/components/Tabs/tabs.types.ts +8 -2
- package/src/components/Tabs/useTabs.ts +167 -0
- package/src/components/TextField/TextField.test.tsx +5 -1
- package/src/index.ts +1 -1
- package/vite.config.ts +8 -0
- package/vitest.config.mts +8 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { type VariantProps } from 'tailwind-variants';
|
|
2
|
+
/**
|
|
3
|
+
* `<DataGrid>` variant recipe.
|
|
4
|
+
*
|
|
5
|
+
* Sibling of `tableVariants` — shares the same visual axes (variant /
|
|
6
|
+
* size / density) and the same identity-rule patterns:
|
|
7
|
+
* - No `dark:` variants on neutral palette (auto-invert via the
|
|
8
|
+
* dashforgePreset() CSS var swap).
|
|
9
|
+
* - Selected row uses LeftNav `itemActive` pattern
|
|
10
|
+
* (`bg-primary-100 text-primary-900`) — guaranteed contrast.
|
|
11
|
+
* - Hover uses one-tier elevation (`bg-neutral-100`).
|
|
12
|
+
*
|
|
13
|
+
* DataGrid-specific slot additions vs Table:
|
|
14
|
+
* - `stickyLeftCell` — column that uses `cols[i].sticky === 'left'`.
|
|
15
|
+
* Z-index ordering: `thead` (z-10) < `stickyLeftCell` (z-11) <
|
|
16
|
+
* `header × stickyLeft top-left corner cell` (z-20).
|
|
17
|
+
* - `paginationFooter` — wraps the optional `<Pagination>`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const dataGridVariants: import("tailwind-variants").TVReturnType<{
|
|
20
|
+
variant: {
|
|
21
|
+
plain: {};
|
|
22
|
+
lines: {};
|
|
23
|
+
striped: {
|
|
24
|
+
row: string;
|
|
25
|
+
};
|
|
26
|
+
bordered: {
|
|
27
|
+
table: string;
|
|
28
|
+
cell: string;
|
|
29
|
+
headerCell: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
size: {
|
|
33
|
+
sm: {
|
|
34
|
+
headerCell: string;
|
|
35
|
+
cell: string;
|
|
36
|
+
search: string;
|
|
37
|
+
};
|
|
38
|
+
md: {
|
|
39
|
+
headerCell: string;
|
|
40
|
+
cell: string;
|
|
41
|
+
search: string;
|
|
42
|
+
};
|
|
43
|
+
lg: {
|
|
44
|
+
headerCell: string;
|
|
45
|
+
cell: string;
|
|
46
|
+
search: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
density: {
|
|
50
|
+
compact: {
|
|
51
|
+
headerCell: string;
|
|
52
|
+
cell: string;
|
|
53
|
+
};
|
|
54
|
+
comfortable: {
|
|
55
|
+
headerCell: string;
|
|
56
|
+
cell: string;
|
|
57
|
+
};
|
|
58
|
+
spacious: {
|
|
59
|
+
headerCell: string;
|
|
60
|
+
cell: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
}, {
|
|
64
|
+
root: string;
|
|
65
|
+
toolbar: string;
|
|
66
|
+
search: string[];
|
|
67
|
+
scroll: string;
|
|
68
|
+
table: string;
|
|
69
|
+
thead: string;
|
|
70
|
+
tbody: string;
|
|
71
|
+
headerRow: string;
|
|
72
|
+
headerCell: string[];
|
|
73
|
+
headerCellButton: string[];
|
|
74
|
+
row: string[];
|
|
75
|
+
cell: string[];
|
|
76
|
+
selectionCell: string;
|
|
77
|
+
rowActionsCell: string[];
|
|
78
|
+
emptyState: string;
|
|
79
|
+
loadingOverlay: string;
|
|
80
|
+
bulkActionFooter: string[];
|
|
81
|
+
stickyLeftCell: string;
|
|
82
|
+
stickyLeftHeaderCell: string;
|
|
83
|
+
stickyRightCell: string;
|
|
84
|
+
stickyRightHeaderCell: string;
|
|
85
|
+
paginationFooter: string;
|
|
86
|
+
}, undefined, {
|
|
87
|
+
variant: {
|
|
88
|
+
plain: {};
|
|
89
|
+
lines: {};
|
|
90
|
+
striped: {
|
|
91
|
+
row: string;
|
|
92
|
+
};
|
|
93
|
+
bordered: {
|
|
94
|
+
table: string;
|
|
95
|
+
cell: string;
|
|
96
|
+
headerCell: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
size: {
|
|
100
|
+
sm: {
|
|
101
|
+
headerCell: string;
|
|
102
|
+
cell: string;
|
|
103
|
+
search: string;
|
|
104
|
+
};
|
|
105
|
+
md: {
|
|
106
|
+
headerCell: string;
|
|
107
|
+
cell: string;
|
|
108
|
+
search: string;
|
|
109
|
+
};
|
|
110
|
+
lg: {
|
|
111
|
+
headerCell: string;
|
|
112
|
+
cell: string;
|
|
113
|
+
search: string;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
density: {
|
|
117
|
+
compact: {
|
|
118
|
+
headerCell: string;
|
|
119
|
+
cell: string;
|
|
120
|
+
};
|
|
121
|
+
comfortable: {
|
|
122
|
+
headerCell: string;
|
|
123
|
+
cell: string;
|
|
124
|
+
};
|
|
125
|
+
spacious: {
|
|
126
|
+
headerCell: string;
|
|
127
|
+
cell: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
}, {
|
|
131
|
+
root: string;
|
|
132
|
+
toolbar: string;
|
|
133
|
+
search: string[];
|
|
134
|
+
scroll: string;
|
|
135
|
+
table: string;
|
|
136
|
+
thead: string;
|
|
137
|
+
tbody: string;
|
|
138
|
+
headerRow: string;
|
|
139
|
+
headerCell: string[];
|
|
140
|
+
headerCellButton: string[];
|
|
141
|
+
row: string[];
|
|
142
|
+
cell: string[];
|
|
143
|
+
selectionCell: string;
|
|
144
|
+
rowActionsCell: string[];
|
|
145
|
+
emptyState: string;
|
|
146
|
+
loadingOverlay: string;
|
|
147
|
+
bulkActionFooter: string[];
|
|
148
|
+
stickyLeftCell: string;
|
|
149
|
+
stickyLeftHeaderCell: string;
|
|
150
|
+
stickyRightCell: string;
|
|
151
|
+
stickyRightHeaderCell: string;
|
|
152
|
+
paginationFooter: string;
|
|
153
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
154
|
+
variant: {
|
|
155
|
+
plain: {};
|
|
156
|
+
lines: {};
|
|
157
|
+
striped: {
|
|
158
|
+
row: string;
|
|
159
|
+
};
|
|
160
|
+
bordered: {
|
|
161
|
+
table: string;
|
|
162
|
+
cell: string;
|
|
163
|
+
headerCell: string;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
size: {
|
|
167
|
+
sm: {
|
|
168
|
+
headerCell: string;
|
|
169
|
+
cell: string;
|
|
170
|
+
search: string;
|
|
171
|
+
};
|
|
172
|
+
md: {
|
|
173
|
+
headerCell: string;
|
|
174
|
+
cell: string;
|
|
175
|
+
search: string;
|
|
176
|
+
};
|
|
177
|
+
lg: {
|
|
178
|
+
headerCell: string;
|
|
179
|
+
cell: string;
|
|
180
|
+
search: string;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
density: {
|
|
184
|
+
compact: {
|
|
185
|
+
headerCell: string;
|
|
186
|
+
cell: string;
|
|
187
|
+
};
|
|
188
|
+
comfortable: {
|
|
189
|
+
headerCell: string;
|
|
190
|
+
cell: string;
|
|
191
|
+
};
|
|
192
|
+
spacious: {
|
|
193
|
+
headerCell: string;
|
|
194
|
+
cell: string;
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
}, {
|
|
198
|
+
root: string;
|
|
199
|
+
toolbar: string;
|
|
200
|
+
search: string[];
|
|
201
|
+
scroll: string;
|
|
202
|
+
table: string;
|
|
203
|
+
thead: string;
|
|
204
|
+
tbody: string;
|
|
205
|
+
headerRow: string;
|
|
206
|
+
headerCell: string[];
|
|
207
|
+
headerCellButton: string[];
|
|
208
|
+
row: string[];
|
|
209
|
+
cell: string[];
|
|
210
|
+
selectionCell: string;
|
|
211
|
+
rowActionsCell: string[];
|
|
212
|
+
emptyState: string;
|
|
213
|
+
loadingOverlay: string;
|
|
214
|
+
bulkActionFooter: string[];
|
|
215
|
+
stickyLeftCell: string;
|
|
216
|
+
stickyLeftHeaderCell: string;
|
|
217
|
+
stickyRightCell: string;
|
|
218
|
+
stickyRightHeaderCell: string;
|
|
219
|
+
paginationFooter: string;
|
|
220
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
221
|
+
export type DataGridVariants = VariantProps<typeof dataGridVariants>;
|
|
222
|
+
//# sourceMappingURL=dataGrid.variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataGrid.variants.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/dataGrid.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkI3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TableFilterModel, TableFilterType } from '../../Table/table.types.js';
|
|
2
|
+
export interface ColumnFilterLabels {
|
|
3
|
+
filterColumn?: string;
|
|
4
|
+
filterApply?: string;
|
|
5
|
+
filterClear?: string;
|
|
6
|
+
filterMin?: string;
|
|
7
|
+
filterMax?: string;
|
|
8
|
+
filterFrom?: string;
|
|
9
|
+
filterTo?: string;
|
|
10
|
+
filterAll?: string;
|
|
11
|
+
filterTrue?: string;
|
|
12
|
+
filterFalse?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ColumnFilterTriggerProps {
|
|
15
|
+
field: string;
|
|
16
|
+
filterType: TableFilterType;
|
|
17
|
+
filterModel: TableFilterModel;
|
|
18
|
+
onFilterChange: (model: TableFilterModel) => void;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
labels?: ColumnFilterLabels;
|
|
21
|
+
}
|
|
22
|
+
export declare function ColumnFilterTrigger(props: ColumnFilterTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=ColumnFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnFilters.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/filters/ColumnFilters.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gBAAgB,EAChB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAqDpC,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAkDlE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type DragEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Native HTML5 drag-and-drop reorder for DataGrid column headers.
|
|
4
|
+
*
|
|
5
|
+
* Zero new runtime deps — uses the browser's built-in drag events.
|
|
6
|
+
* The hook returns handler factories you wire onto each `<th>` plus
|
|
7
|
+
* a `dropTarget` state used to render the visual indicator (a left
|
|
8
|
+
* or right border on the hovered column).
|
|
9
|
+
*
|
|
10
|
+
* - `dragStart(field)` → onDragStart; stashes source field in a ref
|
|
11
|
+
* + sets `dataTransfer.effectAllowed = 'move'`.
|
|
12
|
+
* - `dragOver(field)` → onDragOver; preventDefault + computes
|
|
13
|
+
* whether the cursor is over the LEFT or RIGHT half of the
|
|
14
|
+
* target → updates dropTarget so the indicator renders.
|
|
15
|
+
* - `drop(field)` → onDrop; computes the new order array via
|
|
16
|
+
* `moveColumn(source, target, side)` and commits it.
|
|
17
|
+
* - `dragEnd()` → onDragEnd; clears state.
|
|
18
|
+
*
|
|
19
|
+
* Reorder math: when dropping `source` onto the LEFT half of
|
|
20
|
+
* `target`, the source is inserted BEFORE the target's position
|
|
21
|
+
* in the order list. RIGHT half → AFTER.
|
|
22
|
+
*/
|
|
23
|
+
export interface UseColumnReorderArgs {
|
|
24
|
+
/** The current order. */
|
|
25
|
+
order: string[];
|
|
26
|
+
/** Commit a new order. */
|
|
27
|
+
onChange: (next: string[]) => void;
|
|
28
|
+
}
|
|
29
|
+
export interface DropTarget {
|
|
30
|
+
field: string;
|
|
31
|
+
side: 'left' | 'right';
|
|
32
|
+
}
|
|
33
|
+
export interface ColumnReorderHandlers {
|
|
34
|
+
/** Current drop target (used by the renderer to show the indicator). */
|
|
35
|
+
dropTarget: DropTarget | null;
|
|
36
|
+
/** Field currently being dragged (used to dim the source header). */
|
|
37
|
+
draggingField: string | null;
|
|
38
|
+
dragStart: (field: string) => (e: DragEvent<HTMLElement>) => void;
|
|
39
|
+
dragOver: (field: string) => (e: DragEvent<HTMLElement>) => void;
|
|
40
|
+
drop: (field: string) => (e: DragEvent<HTMLElement>) => void;
|
|
41
|
+
dragEnd: () => void;
|
|
42
|
+
}
|
|
43
|
+
export declare function useColumnReorder(args: UseColumnReorderArgs): ColumnReorderHandlers;
|
|
44
|
+
/**
|
|
45
|
+
* Move `source` next to `target` in the `order` list.
|
|
46
|
+
* `side='left'` inserts before; `side='right'` inserts after.
|
|
47
|
+
* Exposed for unit testing.
|
|
48
|
+
*/
|
|
49
|
+
export declare function moveColumn(order: string[], source: string, target: string, side: 'left' | 'right'): string[];
|
|
50
|
+
//# sourceMappingURL=useColumnReorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnReorder.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/reorder/useColumnReorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,qEAAqE;IACrE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAClE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACjE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,GACzB,qBAAqB,CA+DvB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,OAAO,GACrB,MAAM,EAAE,CAUV"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type PointerEvent as RPointerEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Native column-resize behavior for DataGrid (and Table later if
|
|
4
|
+
* promoted to `_shared`).
|
|
5
|
+
*
|
|
6
|
+
* The returned `startResize` is wired to a `pointerdown` handler on a
|
|
7
|
+
* thin grabber positioned at the right edge of a `<th>`. We capture
|
|
8
|
+
* the pointer on the target element so `pointermove` / `pointerup`
|
|
9
|
+
* keep flowing even if the cursor leaves the grabber.
|
|
10
|
+
*
|
|
11
|
+
* Why native pointer events vs a drag library:
|
|
12
|
+
* - Zero new runtime deps (sprint constraint)
|
|
13
|
+
* - Pointer events normalize mouse/touch/pen out of the box
|
|
14
|
+
* - Pointer capture means we don't have to track the global
|
|
15
|
+
* `mousemove` / `mouseup` — the browser routes events to our
|
|
16
|
+
* listener until release.
|
|
17
|
+
*/
|
|
18
|
+
export interface UseColumnResizeArgs {
|
|
19
|
+
/** Current column widths (Record<field, px>). */
|
|
20
|
+
widths: Record<string, number>;
|
|
21
|
+
/** Commit a new width map. */
|
|
22
|
+
onChange: (next: Record<string, number>) => void;
|
|
23
|
+
/** Hard floor for any column (px). @default 40 */
|
|
24
|
+
minWidth?: number;
|
|
25
|
+
/** Hard ceiling for any column (px). @default 1200 */
|
|
26
|
+
maxWidth?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface ColumnResizeHandlers {
|
|
29
|
+
startResize: (field: string, startWidth: number, clampMin: number, clampMax: number) => (e: RPointerEvent<HTMLElement>) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Commit a single clamped width delta — the keyboard-resize path.
|
|
32
|
+
* Wired to ArrowLeft/ArrowRight on the focused resize handle so the
|
|
33
|
+
* feature is reachable without a pointer (WCAG 2.1 — keyboard
|
|
34
|
+
* operability). Same clamping as the drag path.
|
|
35
|
+
*/
|
|
36
|
+
nudge: (field: string, currentWidth: number, delta: number, clampMin: number, clampMax: number) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare function useColumnResize(args: UseColumnResizeArgs): ColumnResizeHandlers;
|
|
39
|
+
//# sourceMappingURL=useColumnResize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnResize.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/resize/useColumnResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhF;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACjD,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,CACX,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,KACb,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7C;;;;;OAKG;IACH,KAAK,EAAE,CACL,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;CACX;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,CA4E/E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { TableColumn } from '../../Table/table.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Column visibility menu for DataGrid.
|
|
4
|
+
*
|
|
5
|
+
* Renders a toolbar button (the trigger) that opens a `<Popover>`
|
|
6
|
+
* with one checkbox per `hideable` column. Auto-commits on every
|
|
7
|
+
* toggle — there's no draft / commit step. Outside-click and Esc
|
|
8
|
+
* close the popover (Radix-managed).
|
|
9
|
+
*
|
|
10
|
+
* UX rationale for Popover-over-Dialog:
|
|
11
|
+
* - Lightweight, non-modal: the user can keep referring to the grid
|
|
12
|
+
* while picking columns. A modal Dialog would interrupt the flow.
|
|
13
|
+
* - Auto-commit reads as a "settings panel" rather than a
|
|
14
|
+
* "configuration form" — matches AG-Grid / MUI DataGrid v6 /
|
|
15
|
+
* TanStack examples.
|
|
16
|
+
* - No focus trap on the rest of the page; the user can scroll the
|
|
17
|
+
* grid or click the column resize handles without dismissing the
|
|
18
|
+
* panel first.
|
|
19
|
+
*
|
|
20
|
+
* Columns with `hideable: false` are NEVER shown in the menu —
|
|
21
|
+
* those are considered structurally required (e.g. an ID column).
|
|
22
|
+
*
|
|
23
|
+
* RBAC-hidden columns (`access.onUnauthorized === 'hide'`) are also
|
|
24
|
+
* excluded — they're already removed from `visibleCols` upstream.
|
|
25
|
+
*/
|
|
26
|
+
export interface ColumnVisibilityLabels {
|
|
27
|
+
columnsButton?: string;
|
|
28
|
+
columnsTitle?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Accessible label for the tri-state master checkbox that
|
|
31
|
+
* shows/hides every hideable column at once. Not shown as visible
|
|
32
|
+
* text — surfaced to assistive tech via `aria-label`.
|
|
33
|
+
*/
|
|
34
|
+
columnsToggleAll?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ColumnVisibilityTriggerProps<T extends object> {
|
|
37
|
+
cols: TableColumn<T>[];
|
|
38
|
+
hiddenColumns: string[];
|
|
39
|
+
onChange: (next: string[]) => void;
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
labels?: ColumnVisibilityLabels;
|
|
42
|
+
}
|
|
43
|
+
export declare function ColumnVisibilityTrigger<T extends object>(props: ColumnVisibilityTriggerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
//# sourceMappingURL=ColumnVisibilityMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnVisibilityMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/visibility/ColumnVisibilityMenu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD,MAAM,WAAW,4BAA4B,CAAC,CAAC,SAAS,MAAM;IAC5D,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,2CA2GvC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DatePickerProps } from './datePicker.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Dashforge TW `<DatePicker>` — a form-bound single-date field.
|
|
4
|
+
*
|
|
5
|
+
* A read-only trigger button paired with a `<Calendar>` popover (Radix
|
|
6
|
+
* Popover — toggle / Escape / outside-click / focus-trap are Radix-managed).
|
|
7
|
+
* Integrates with the Dashforge form bridge + RBAC, mirroring the other
|
|
8
|
+
* `@dashforge/tw` form fields.
|
|
9
|
+
*
|
|
10
|
+
* Storage contract: an ISO `YYYY-MM-DD` string, or `null` — shared with the
|
|
11
|
+
* MUI `@dashforge/ui` `DatePicker`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function DatePicker(props: DatePickerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAqD7D;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kDAoOhD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Engine } from '@dashforge/ui-core';
|
|
3
|
+
import type { AccessRequirement } from '@dashforge/rbac';
|
|
4
|
+
import type { ISODate, WeekDay } from '@dashforge/calendar-core';
|
|
5
|
+
/** Per-slot `className` overrides for `<DatePicker>`. */
|
|
6
|
+
export interface DatePickerSlotProps {
|
|
7
|
+
root?: {
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
label?: {
|
|
11
|
+
className?: string;
|
|
12
|
+
};
|
|
13
|
+
requiredMark?: {
|
|
14
|
+
className?: string;
|
|
15
|
+
};
|
|
16
|
+
trigger?: {
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
helperText?: {
|
|
20
|
+
className?: string;
|
|
21
|
+
};
|
|
22
|
+
errorText?: {
|
|
23
|
+
className?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Props for the `<DatePicker>` form field (Tailwind skin).
|
|
28
|
+
*
|
|
29
|
+
* A read-only trigger button paired with a `<Calendar>` popover, integrated
|
|
30
|
+
* with the Dashforge form bridge + RBAC. The stored value is a plain ISO
|
|
31
|
+
* calendar date — `YYYY-MM-DD` — or `null`. (A pure date carries no time or
|
|
32
|
+
* timezone, which removes the whole class of DST round-trip hazards.)
|
|
33
|
+
*
|
|
34
|
+
* The prop surface mirrors the MUI `@dashforge/ui` `DatePicker` so the API
|
|
35
|
+
* is consistent across both ecosystems; only the styling escape hatches
|
|
36
|
+
* (`sx` / `slotProps`) follow the Tailwind conventions.
|
|
37
|
+
*/
|
|
38
|
+
export interface DatePickerProps {
|
|
39
|
+
/** Field name — the bridge registration key. Required. */
|
|
40
|
+
name: string;
|
|
41
|
+
/** Validation rules forwarded to the form bridge. */
|
|
42
|
+
rules?: unknown;
|
|
43
|
+
/** Field label. */
|
|
44
|
+
label?: ReactNode;
|
|
45
|
+
/** Helper text below the control (overrides a bridge error message). */
|
|
46
|
+
helperText?: ReactNode;
|
|
47
|
+
/** Explicit error state (overrides the bridge's auto error). */
|
|
48
|
+
error?: boolean;
|
|
49
|
+
/** Marks the field required (adds the label asterisk). */
|
|
50
|
+
required?: boolean;
|
|
51
|
+
/** Disables the field. */
|
|
52
|
+
disabled?: boolean;
|
|
53
|
+
/** Placeholder shown when no date is selected. */
|
|
54
|
+
placeholder?: string;
|
|
55
|
+
/** Label/control layout. */
|
|
56
|
+
layout?: 'stacked' | 'inline';
|
|
57
|
+
/** Reactive visibility predicate evaluated against the form engine. */
|
|
58
|
+
visibleWhen?: (engine: Engine) => boolean;
|
|
59
|
+
/** RBAC access requirement. */
|
|
60
|
+
access?: AccessRequirement;
|
|
61
|
+
/** Controlled value — ISO `YYYY-MM-DD` or `null`. */
|
|
62
|
+
value?: ISODate | null;
|
|
63
|
+
/** Uncontrolled initial value. */
|
|
64
|
+
defaultValue?: ISODate | null;
|
|
65
|
+
/** Fired with the new ISO date (or `null` when cleared). */
|
|
66
|
+
onChange?: (value: ISODate | null) => void;
|
|
67
|
+
/** Earliest selectable date (inclusive). */
|
|
68
|
+
minDate?: ISODate;
|
|
69
|
+
/** Latest selectable date (inclusive). */
|
|
70
|
+
maxDate?: ISODate;
|
|
71
|
+
/** Explicit list of disabled dates. */
|
|
72
|
+
disabledDates?: readonly ISODate[];
|
|
73
|
+
/** Predicate marking arbitrary dates disabled. */
|
|
74
|
+
isDateDisabled?: (date: ISODate) => boolean;
|
|
75
|
+
/** Weekday of the calendar's first column (`0` = Sunday). */
|
|
76
|
+
weekStartDay?: WeekDay;
|
|
77
|
+
/** BCP-47 locale for the calendar and the display format. */
|
|
78
|
+
locale?: string;
|
|
79
|
+
/** Stretches the field to its container width. */
|
|
80
|
+
fullWidth?: boolean;
|
|
81
|
+
/** Root-level Tailwind class override. */
|
|
82
|
+
sx?: string;
|
|
83
|
+
/** Per-slot `className` overrides. */
|
|
84
|
+
slotProps?: DatePickerSlotProps;
|
|
85
|
+
/** Test id applied to the field root. */
|
|
86
|
+
testId?: string;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=datePicker.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datePicker.types.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/datePicker.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEjE,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,YAAY,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wEAAwE;IACxE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,uEAAuE;IACvE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,+BAA+B;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,kCAAkC;IAClC,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IAC5C,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slots for `<DatePicker>` — a bridge-integrated date field whose trigger
|
|
3
|
+
* is a `<button>` styled as an input, opening a `<Calendar>` popover.
|
|
4
|
+
*
|
|
5
|
+
* Theme identity: bare neutral / brand token-backed classes only — no
|
|
6
|
+
* `dark:` variants on the neutral palette (the preset CSS-var swap
|
|
7
|
+
* auto-inverts). See `_shared/themeIdentity.test.ts`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const datePickerVariants: import("tailwind-variants").TVReturnType<{
|
|
10
|
+
layout: {
|
|
11
|
+
stacked: {};
|
|
12
|
+
inline: {
|
|
13
|
+
root: string;
|
|
14
|
+
label: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
error: {
|
|
18
|
+
true: {
|
|
19
|
+
trigger: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
fullWidth: {
|
|
23
|
+
true: {
|
|
24
|
+
root: string;
|
|
25
|
+
trigger: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}, {
|
|
29
|
+
root: string;
|
|
30
|
+
label: string;
|
|
31
|
+
requiredMark: string;
|
|
32
|
+
trigger: string;
|
|
33
|
+
value: string;
|
|
34
|
+
placeholder: string;
|
|
35
|
+
icon: string;
|
|
36
|
+
helperText: string;
|
|
37
|
+
errorText: string;
|
|
38
|
+
}, undefined, {
|
|
39
|
+
layout: {
|
|
40
|
+
stacked: {};
|
|
41
|
+
inline: {
|
|
42
|
+
root: string;
|
|
43
|
+
label: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
error: {
|
|
47
|
+
true: {
|
|
48
|
+
trigger: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
fullWidth: {
|
|
52
|
+
true: {
|
|
53
|
+
root: string;
|
|
54
|
+
trigger: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
}, {
|
|
58
|
+
root: string;
|
|
59
|
+
label: string;
|
|
60
|
+
requiredMark: string;
|
|
61
|
+
trigger: string;
|
|
62
|
+
value: string;
|
|
63
|
+
placeholder: string;
|
|
64
|
+
icon: string;
|
|
65
|
+
helperText: string;
|
|
66
|
+
errorText: string;
|
|
67
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
68
|
+
layout: {
|
|
69
|
+
stacked: {};
|
|
70
|
+
inline: {
|
|
71
|
+
root: string;
|
|
72
|
+
label: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
error: {
|
|
76
|
+
true: {
|
|
77
|
+
trigger: string;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
fullWidth: {
|
|
81
|
+
true: {
|
|
82
|
+
root: string;
|
|
83
|
+
trigger: string;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
}, {
|
|
87
|
+
root: string;
|
|
88
|
+
label: string;
|
|
89
|
+
requiredMark: string;
|
|
90
|
+
trigger: string;
|
|
91
|
+
value: string;
|
|
92
|
+
placeholder: string;
|
|
93
|
+
icon: string;
|
|
94
|
+
helperText: string;
|
|
95
|
+
errorText: string;
|
|
96
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
97
|
+
//# sourceMappingURL=datePicker.variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datePicker.variants.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/datePicker.variants.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuC7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DateRangePickerProps } from './dateRangePicker.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Dashforge TW `<DateRangePicker>` — a form-bound start/end date field.
|
|
4
|
+
*
|
|
5
|
+
* A read-only trigger button paired with a dual-month range calendar popover
|
|
6
|
+
* (Radix Popover), built on the headless `useDateRange` engine. Integrates
|
|
7
|
+
* with the Dashforge form bridge + RBAC.
|
|
8
|
+
*
|
|
9
|
+
* Storage contract: a `{ start, end }` pair of ISO `YYYY-MM-DD` dates —
|
|
10
|
+
* shared with the MUI `@dashforge/ui` `DateRangePicker`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function DateRangePicker(props: DateRangePickerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=DateRangePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAoQvE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,kDAoN1D"}
|