@cognite/aura 0.3.5 → 1.46105.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 +264 -0
- package/DESIGN.md +638 -281
- package/LICENSE +21 -0
- package/README.md +21 -13
- package/dist/colors-deprecated.css +587 -0
- package/dist/colors.css +803 -830
- package/dist/components/index.d.ts +63 -57
- package/dist/components/index.js +62 -59
- package/dist/components/index.js.map +1 -0
- package/dist/components/ui/core/accordion/accordion.d.ts +19 -18
- package/dist/components/ui/core/accordion/accordion.js +99 -78
- package/dist/components/ui/core/accordion/accordion.js.map +1 -0
- package/dist/components/ui/core/action-toolbar/action-toolbar-motion.d.ts +8 -0
- package/dist/components/ui/core/action-toolbar/action-toolbar-motion.js +125 -0
- package/dist/components/ui/core/action-toolbar/action-toolbar-motion.js.map +1 -0
- package/dist/components/ui/core/action-toolbar/action-toolbar.d.ts +31 -31
- package/dist/components/ui/core/action-toolbar/action-toolbar.js +156 -106
- package/dist/components/ui/core/action-toolbar/action-toolbar.js.map +1 -0
- package/dist/components/ui/core/alert/alert.d.ts +25 -25
- package/dist/components/ui/core/alert/alert.js +181 -152
- package/dist/components/ui/core/alert/alert.js.map +1 -0
- package/dist/components/ui/core/avatar/avatar.d.ts +10 -9
- package/dist/components/ui/core/avatar/avatar.js +75 -65
- package/dist/components/ui/core/avatar/avatar.js.map +1 -0
- package/dist/components/ui/core/badge/badge.d.ts +13 -12
- package/dist/components/ui/core/badge/badge.js +88 -72
- package/dist/components/ui/core/badge/badge.js.map +1 -0
- package/dist/components/ui/core/banner/banner.d.ts +18 -18
- package/dist/components/ui/core/banner/banner.js +179 -142
- package/dist/components/ui/core/banner/banner.js.map +1 -0
- package/dist/components/ui/core/breadcrumb/breadcrumb.d.ts +12 -12
- package/dist/components/ui/core/breadcrumb/breadcrumb.js +139 -104
- package/dist/components/ui/core/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/ui/core/button/button.d.ts +7 -7
- package/dist/components/ui/core/button/button.gallery.d.ts +2 -0
- package/dist/components/ui/core/button/button.gallery.js +76 -0
- package/dist/components/ui/core/button/button.gallery.js.map +1 -0
- package/dist/components/ui/core/button/button.js +57 -47
- package/dist/components/ui/core/button/button.js.map +1 -0
- package/dist/components/ui/core/button-group/button-group.d.ts +9 -9
- package/dist/components/ui/core/button-group/button-group.js +50 -40
- package/dist/components/ui/core/button-group/button-group.js.map +1 -0
- package/dist/components/ui/core/calendar/calendar-header.d.ts +7 -7
- package/dist/components/ui/core/calendar/calendar-header.js +102 -63
- package/dist/components/ui/core/calendar/calendar-header.js.map +1 -0
- package/dist/components/ui/core/calendar/calendar-utils.d.ts +30 -30
- package/dist/components/ui/core/calendar/calendar-utils.js +116 -39
- package/dist/components/ui/core/calendar/calendar-utils.js.map +1 -0
- package/dist/components/ui/core/calendar/calendar.d.ts +10 -10
- package/dist/components/ui/core/calendar/calendar.js +95 -66
- package/dist/components/ui/core/calendar/calendar.js.map +1 -0
- package/dist/components/ui/core/calendar/constants.js +3 -0
- package/dist/components/ui/core/calendar/constants.js.map +1 -0
- package/dist/components/ui/core/card/card.d.ts +20 -20
- package/dist/components/ui/core/card/card.js +133 -104
- package/dist/components/ui/core/card/card.js.map +1 -0
- package/dist/components/ui/core/chart/chart.d.ts +55 -53
- package/dist/components/ui/core/chart/chart.js +196 -116
- package/dist/components/ui/core/chart/chart.js.map +1 -0
- package/dist/components/ui/core/chart/index.d.ts +2 -2
- package/dist/components/ui/core/chart/index.js +3 -2
- package/dist/components/ui/core/chart/index.js.map +1 -0
- package/dist/components/ui/core/checkbox/checkbox.d.ts +9 -9
- package/dist/components/ui/core/checkbox/checkbox.js +88 -68
- package/dist/components/ui/core/checkbox/checkbox.js.map +1 -0
- package/dist/components/ui/core/checkbox/checkbox.metadata.d.ts +1 -1
- package/dist/components/ui/core/checkbox/checkbox.metadata.js +6 -7
- package/dist/components/ui/core/checkbox/checkbox.metadata.js.map +1 -0
- package/dist/components/ui/core/code-block/code-block.d.ts +19 -19
- package/dist/components/ui/core/code-block/code-block.js +259 -175
- package/dist/components/ui/core/code-block/code-block.js.map +1 -0
- package/dist/components/ui/core/collapsible/collapsible.d.ts +5 -5
- package/dist/components/ui/core/collapsible/collapsible.js +36 -30
- package/dist/components/ui/core/collapsible/collapsible.js.map +1 -0
- package/dist/components/ui/core/combobox/combobox.d.ts +13 -13
- package/dist/components/ui/core/combobox/combobox.js +89 -40
- package/dist/components/ui/core/combobox/combobox.js.map +1 -0
- package/dist/components/ui/core/command/command.d.ts +20 -18
- package/dist/components/ui/core/command/command.js +137 -85
- package/dist/components/ui/core/command/command.js.map +1 -0
- package/dist/components/ui/core/conversation/conversation.d.ts +14 -0
- package/dist/components/ui/core/conversation/conversation.js +51 -0
- package/dist/components/ui/core/conversation/conversation.js.map +1 -0
- package/dist/components/ui/core/count/count.d.ts +8 -6
- package/dist/components/ui/core/count/count.js +51 -21
- package/dist/components/ui/core/count/count.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-cell.d.ts +7 -7
- package/dist/components/ui/core/data-grid/data-grid-cell.js +22 -22
- package/dist/components/ui/core/data-grid/data-grid-cell.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-clauses.d.ts +14 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-clauses.js +36 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-clauses.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-panel.d.ts +41 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-panel.js +273 -0
- package/dist/components/ui/core/data-grid/data-grid-filter-panel.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-footer.d.ts +6 -0
- package/dist/components/ui/core/data-grid/data-grid-footer.js +34 -0
- package/dist/components/ui/core/data-grid/data-grid-footer.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-header-row.d.ts +10 -10
- package/dist/components/ui/core/data-grid/data-grid-header-row.js +69 -55
- package/dist/components/ui/core/data-grid/data-grid-header-row.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-header.d.ts +11 -0
- package/dist/components/ui/core/data-grid/data-grid-header.js +67 -0
- package/dist/components/ui/core/data-grid/data-grid-header.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid-row.d.ts +15 -15
- package/dist/components/ui/core/data-grid/data-grid-row.js +104 -76
- package/dist/components/ui/core/data-grid/data-grid-row.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid.d.ts +85 -35
- package/dist/components/ui/core/data-grid/data-grid.fixtures.d.ts +7 -7
- package/dist/components/ui/core/data-grid/data-grid.fixtures.js +139 -0
- package/dist/components/ui/core/data-grid/data-grid.fixtures.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid.js +402 -132
- package/dist/components/ui/core/data-grid/data-grid.js.map +1 -0
- package/dist/components/ui/core/data-grid/data-grid.utils.d.ts +3 -3
- package/dist/components/ui/core/data-grid/data-grid.utils.js +44 -33
- package/dist/components/ui/core/data-grid/data-grid.utils.js.map +1 -0
- package/dist/components/ui/core/data-grid/index.d.ts +4 -1
- package/dist/components/ui/core/data-grid/index.js +5 -2
- package/dist/components/ui/core/data-grid/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.d.ts +11 -13
- package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.js +85 -61
- package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/index.d.ts +3 -3
- package/dist/components/ui/core/date-time-pickers/date-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/types.d.ts +14 -14
- package/dist/components/ui/core/date-time-pickers/date-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.d.ts +2 -2
- package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.js +51 -36
- package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.d.ts +11 -13
- package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.js +89 -64
- package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/index.d.ts +3 -3
- package/dist/components/ui/core/date-time-pickers/date-range-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/types.d.ts +20 -20
- package/dist/components/ui/core/date-time-pickers/date-range-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.d.ts +4 -4
- package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.js +95 -60
- package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.d.ts +15 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.js +120 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/index.d.ts +3 -1
- package/dist/components/ui/core/date-time-pickers/date-time-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/types.d.ts +25 -32
- package/dist/components/ui/core/date-time-pickers/date-time-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.d.ts +2 -2
- package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.js +78 -0
- package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.d.ts +13 -15
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.js +165 -119
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.d.ts +3 -3
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.d.ts +37 -37
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.d.ts +3 -3
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.js +163 -104
- package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/index.d.ts +17 -12
- package/dist/components/ui/core/date-time-pickers/index.js +10 -6
- package/dist/components/ui/core/date-time-pickers/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.d.ts +5 -5
- package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.js +52 -42
- package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/constants.d.ts +6 -1
- package/dist/components/ui/core/date-time-pickers/shared/constants.js +23 -0
- package/dist/components/ui/core/date-time-pickers/shared/constants.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.d.ts +16 -15
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.js +87 -64
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.d.ts +10 -9
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.js +89 -38
- package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.d.ts +5 -5
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.js +34 -23
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.d.ts +23 -23
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.js +95 -52
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.d.ts +5 -5
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.js +22 -18
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.d.ts +19 -19
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.js +41 -24
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.d.ts +13 -13
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.js +33 -24
- package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.d.ts +5 -5
- package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.js +9 -4
- package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.d.ts +13 -9
- package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.js +22 -17
- package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.d.ts +2 -2
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.d.ts +13 -13
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.js +49 -40
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.d.ts +7 -7
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.js +41 -34
- package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/index.d.ts +3 -3
- package/dist/components/ui/core/date-time-pickers/time-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.d.ts +12 -14
- package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.js +99 -79
- package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/types.d.ts +20 -20
- package/dist/components/ui/core/date-time-pickers/time-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.d.ts +2 -2
- package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.js +63 -41
- package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/index.d.ts +3 -1
- package/dist/components/ui/core/date-time-pickers/time-range-picker/index.js +3 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/index.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.d.ts +14 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.js +115 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/types.d.ts +30 -36
- package/dist/components/ui/core/date-time-pickers/time-range-picker/types.js +3 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/types.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.d.ts +2 -2
- package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.js +145 -0
- package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/date-input.d.ts +56 -0
- package/dist/components/ui/core/date-time-pickers/utils/date-input.js +67 -0
- package/dist/components/ui/core/date-time-pickers/utils/date-input.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.d.ts +18 -18
- package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.js +42 -0
- package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/format-utils.d.ts +31 -29
- package/dist/components/ui/core/date-time-pickers/utils/format-utils.js +56 -0
- package/dist/components/ui/core/date-time-pickers/utils/format-utils.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/segment-utils.d.ts +21 -21
- package/dist/components/ui/core/date-time-pickers/utils/segment-utils.js +170 -0
- package/dist/components/ui/core/date-time-pickers/utils/segment-utils.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/time-utils.d.ts +28 -28
- package/dist/components/ui/core/date-time-pickers/utils/time-utils.js +88 -7
- package/dist/components/ui/core/date-time-pickers/utils/time-utils.js.map +1 -0
- package/dist/components/ui/core/date-time-pickers/utils/time-validation.d.ts +17 -17
- package/dist/components/ui/core/date-time-pickers/utils/time-validation.js +43 -0
- package/dist/components/ui/core/date-time-pickers/utils/time-validation.js.map +1 -0
- package/dist/components/ui/core/dialog/dialog.d.ts +12 -9
- package/dist/components/ui/core/dialog/dialog.js +90 -82
- package/dist/components/ui/core/dialog/dialog.js.map +1 -0
- package/dist/components/ui/core/dropdown-menu/dropdown-menu.d.ts +22 -19
- package/dist/components/ui/core/dropdown-menu/dropdown-menu.js +204 -149
- package/dist/components/ui/core/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/ui/core/empty-state/empty-state.context.d.ts +4 -4
- package/dist/components/ui/core/empty-state/empty-state.context.js +8 -5
- package/dist/components/ui/core/empty-state/empty-state.context.js.map +1 -0
- package/dist/components/ui/core/empty-state/empty-state.d.ts +14 -14
- package/dist/components/ui/core/empty-state/empty-state.js +96 -82
- package/dist/components/ui/core/empty-state/empty-state.js.map +1 -0
- package/dist/components/ui/core/helper-text/helper-text.d.ts +7 -7
- package/dist/components/ui/core/helper-text/helper-text.js +55 -36
- package/dist/components/ui/core/helper-text/helper-text.js.map +1 -0
- package/dist/components/ui/core/hover-card/hover-card.d.ts +7 -6
- package/dist/components/ui/core/hover-card/hover-card.js +56 -52
- package/dist/components/ui/core/hover-card/hover-card.js.map +1 -0
- package/dist/components/ui/core/inline-citation/inline-citation.d.ts +26 -25
- package/dist/components/ui/core/inline-citation/inline-citation.js +121 -97
- package/dist/components/ui/core/inline-citation/inline-citation.js.map +1 -0
- package/dist/components/ui/core/input/input.d.ts +2 -2
- package/dist/components/ui/core/input/input.js +15 -13
- package/dist/components/ui/core/input/input.js.map +1 -0
- package/dist/components/ui/core/input-group/input-group.d.ts +25 -14
- package/dist/components/ui/core/input-group/input-group.js +149 -76
- package/dist/components/ui/core/input-group/input-group.js.map +1 -0
- package/dist/components/ui/core/item/item.d.ts +20 -0
- package/dist/components/ui/core/item/item.js +93 -0
- package/dist/components/ui/core/item/item.js.map +1 -0
- package/dist/components/ui/core/kbd/kbd.d.ts +3 -3
- package/dist/components/ui/core/kbd/kbd.js +24 -20
- package/dist/components/ui/core/kbd/kbd.js.map +1 -0
- package/dist/components/ui/core/label/label.d.ts +3 -3
- package/dist/components/ui/core/label/label.js +33 -26
- package/dist/components/ui/core/label/label.js.map +1 -0
- package/dist/components/ui/core/loader/loader.d.ts +6 -6
- package/dist/components/ui/core/loader/loader.js +97 -80
- package/dist/components/ui/core/loader/loader.js.map +1 -0
- package/dist/components/ui/core/message/message-response-default-streamdown-controls.d.ts +9 -9
- package/dist/components/ui/core/message/message-response-default-streamdown-controls.js +19 -12
- package/dist/components/ui/core/message/message-response-default-streamdown-controls.js.map +1 -0
- package/dist/components/ui/core/message/message-response-math-plugin.d.ts +3 -0
- package/dist/components/ui/core/message/message-response-math-plugin.js +6 -0
- package/dist/components/ui/core/message/message-response-math-plugin.js.map +1 -0
- package/dist/components/ui/core/message/message.d.ts +27 -23
- package/dist/components/ui/core/message/message.js +453 -316
- package/dist/components/ui/core/message/message.js.map +1 -0
- package/dist/components/ui/core/overflow-list/overflow-list.d.ts +21 -0
- package/dist/components/ui/core/overflow-list/overflow-list.js +197 -0
- package/dist/components/ui/core/overflow-list/overflow-list.js.map +1 -0
- package/dist/components/ui/core/overflow-list/overflow-list.utils.d.ts +37 -35
- package/dist/components/ui/core/overflow-list/overflow-list.utils.js +206 -0
- package/dist/components/ui/core/overflow-list/overflow-list.utils.js.map +1 -0
- package/dist/components/ui/core/pagination/pagination-size-context.d.ts +2 -2
- package/dist/components/ui/core/pagination/pagination-size-context.js +6 -5
- package/dist/components/ui/core/pagination/pagination-size-context.js.map +1 -0
- package/dist/components/ui/core/pagination/pagination-teleport.d.ts +9 -9
- package/dist/components/ui/core/pagination/pagination-teleport.js +127 -84
- package/dist/components/ui/core/pagination/pagination-teleport.js.map +1 -0
- package/dist/components/ui/core/pagination/pagination-teleport.utils.js +6 -6
- package/dist/components/ui/core/pagination/pagination-teleport.utils.js.map +1 -0
- package/dist/components/ui/core/pagination/pagination.d.ts +39 -39
- package/dist/components/ui/core/pagination/pagination.js +294 -234
- package/dist/components/ui/core/pagination/pagination.js.map +1 -0
- package/dist/components/ui/core/popover/popover.d.ts +12 -11
- package/dist/components/ui/core/popover/popover.js +104 -89
- package/dist/components/ui/core/popover/popover.js.map +1 -0
- package/dist/components/ui/core/progress/progress.d.ts +9 -8
- package/dist/components/ui/core/progress/progress.js +50 -35
- package/dist/components/ui/core/progress/progress.js.map +1 -0
- package/dist/components/ui/core/prompt-input/prompt-input.d.ts +27 -27
- package/dist/components/ui/core/prompt-input/prompt-input.js +342 -271
- package/dist/components/ui/core/prompt-input/prompt-input.js.map +1 -0
- package/dist/components/ui/core/radio-group/radio-group.d.ts +12 -12
- package/dist/components/ui/core/radio-group/radio-group.js +88 -58
- package/dist/components/ui/core/radio-group/radio-group.js.map +1 -0
- package/dist/components/ui/core/reasoning/reasoning.d.ts +7 -7
- package/dist/components/ui/core/reasoning/reasoning.js +68 -56
- package/dist/components/ui/core/reasoning/reasoning.js.map +1 -0
- package/dist/components/ui/core/scroll-area/scroll-area.d.ts +4 -4
- package/dist/components/ui/core/scroll-area/scroll-area.js +50 -40
- package/dist/components/ui/core/scroll-area/scroll-area.js.map +1 -0
- package/dist/components/ui/core/search/search.d.ts +8 -8
- package/dist/components/ui/core/search/search.js +122 -76
- package/dist/components/ui/core/search/search.js.map +1 -0
- package/dist/components/ui/core/segmented-control/segmented-control.d.ts +10 -10
- package/dist/components/ui/core/segmented-control/segmented-control.js +203 -149
- package/dist/components/ui/core/segmented-control/segmented-control.js.map +1 -0
- package/dist/components/ui/core/select/select.d.ts +27 -26
- package/dist/components/ui/core/select/select.js +213 -168
- package/dist/components/ui/core/select/select.js.map +1 -0
- package/dist/components/ui/core/separator/separator.d.ts +2 -2
- package/dist/components/ui/core/separator/separator.js +13 -13
- package/dist/components/ui/core/separator/separator.js.map +1 -0
- package/dist/components/ui/core/shimmer/shimmer.d.ts +8 -8
- package/dist/components/ui/core/shimmer/shimmer.js +64 -40
- package/dist/components/ui/core/shimmer/shimmer.js.map +1 -0
- package/dist/components/ui/core/skeleton/skeleton.d.ts +2 -2
- package/dist/components/ui/core/skeleton/skeleton.js +13 -13
- package/dist/components/ui/core/skeleton/skeleton.js.map +1 -0
- package/dist/components/ui/core/slider/slider.d.ts +7 -7
- package/dist/components/ui/core/slider/slider.js +51 -39
- package/dist/components/ui/core/slider/slider.js.map +1 -0
- package/dist/components/ui/core/sonner-toast/sonner-toast.d.ts +2 -2
- package/dist/components/ui/core/sonner-toast/sonner-toast.js +67 -54
- package/dist/components/ui/core/sonner-toast/sonner-toast.js.map +1 -0
- package/dist/components/ui/core/sources/sources.d.ts +12 -12
- package/dist/components/ui/core/sources/sources.js +87 -58
- package/dist/components/ui/core/sources/sources.js.map +1 -0
- package/dist/components/ui/core/switch/switch.d.ts +9 -9
- package/dist/components/ui/core/switch/switch.js +83 -61
- package/dist/components/ui/core/switch/switch.js.map +1 -0
- package/dist/components/ui/core/switch/switch.metadata.d.ts +1 -1
- package/dist/components/ui/core/switch/switch.metadata.js +8 -0
- package/dist/components/ui/core/switch/switch.metadata.js.map +1 -0
- package/dist/components/ui/core/tabs/tabs.d.ts +20 -18
- package/dist/components/ui/core/tabs/tabs.js +176 -147
- package/dist/components/ui/core/tabs/tabs.js.map +1 -0
- package/dist/components/ui/core/tabs/tabs.utils.d.ts +1 -1
- package/dist/components/ui/core/tabs/tabs.utils.js +10 -6
- package/dist/components/ui/core/tabs/tabs.utils.js.map +1 -0
- package/dist/components/ui/core/textarea/textarea.d.ts +2 -2
- package/dist/components/ui/core/textarea/textarea.js +13 -13
- package/dist/components/ui/core/textarea/textarea.js.map +1 -0
- package/dist/components/ui/core/toggle/toggle.d.ts +9 -9
- package/dist/components/ui/core/toggle/toggle.js +60 -54
- package/dist/components/ui/core/toggle/toggle.js.map +1 -0
- package/dist/components/ui/core/tool/tool.d.ts +18 -18
- package/dist/components/ui/core/tool/tool.js +167 -126
- package/dist/components/ui/core/tool/tool.js.map +1 -0
- package/dist/components/ui/core/toolbar/toolbar.d.ts +37 -0
- package/dist/components/ui/core/toolbar/toolbar.js +171 -0
- package/dist/components/ui/core/toolbar/toolbar.js.map +1 -0
- package/dist/components/ui/core/tooltip/tooltip.d.ts +8 -7
- package/dist/components/ui/core/tooltip/tooltip.js +53 -46
- package/dist/components/ui/core/tooltip/tooltip.js.map +1 -0
- package/dist/components/ui/core/topbar/topbar.d.ts +26 -26
- package/dist/components/ui/core/topbar/topbar.js +160 -105
- package/dist/components/ui/core/topbar/topbar.js.map +1 -0
- package/dist/components/ui/core/tree/tree.d.ts +20 -0
- package/dist/components/ui/core/tree/tree.js +100 -0
- package/dist/components/ui/core/tree/tree.js.map +1 -0
- package/dist/eslint/index.d.ts +5 -5
- package/dist/eslint/index.js +9 -5
- package/dist/eslint/index.js.map +1 -0
- package/dist/eslint/no-overriding-styles.d.ts +1 -1
- package/dist/eslint/no-overriding-styles.js +341 -201
- package/dist/eslint/no-overriding-styles.js.map +1 -0
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +2 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ai/types.d.ts +43 -43
- package/dist/lib/ai/types.js +3 -0
- package/dist/lib/ai/types.js.map +1 -0
- package/dist/lib/decorative-variant-classes.d.ts +53 -0
- package/dist/lib/decorative-variant-classes.js +58 -0
- package/dist/lib/decorative-variant-classes.js.map +1 -0
- package/dist/lib/highlight-code.d.ts +11 -8
- package/dist/lib/highlight-code.js +58 -40
- package/dist/lib/highlight-code.js.map +1 -0
- package/dist/lib/portal-container-context.d.ts +1 -1
- package/dist/lib/portal-container-context.js +8 -8
- package/dist/lib/portal-container-context.js.map +1 -0
- package/dist/lib/shared-theme-from-url.d.ts +13 -0
- package/dist/lib/shared-theme-from-url.js +61 -0
- package/dist/lib/shared-theme-from-url.js.map +1 -0
- package/dist/lib/style-scope.d.ts +2 -2
- package/dist/lib/style-scope.js +6 -6
- package/dist/lib/style-scope.js.map +1 -0
- package/dist/lib/theme-share-url.d.ts +31 -0
- package/dist/lib/theme-share-url.js +116 -0
- package/dist/lib/theme-share-url.js.map +1 -0
- package/dist/lib/types.d.ts +39 -39
- package/dist/lib/types.js +3 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/use-controllable-state.d.ts +4 -7
- package/dist/lib/use-controllable-state.js +34 -21
- package/dist/lib/use-controllable-state.js.map +1 -0
- package/dist/lib/utils.d.ts +63 -34
- package/dist/lib/utils.js +134 -32
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +2 -1
- package/dist/styles.source.css +24 -12
- package/dist/utils/assign-ref.d.ts +3 -0
- package/dist/utils/assign-ref.js +13 -0
- package/dist/utils/assign-ref.js.map +1 -0
- package/package.json +46 -11
- package/src/components/ui/core/button/button.md +93 -0
|
@@ -1,21 +1,51 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { forwardRef
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../../../../lib/utils.js";
|
|
5
|
+
const countVariants = cva('inline-flex h-9 min-w-9 flex-col items-center justify-center p-0.5 px-1 rounded-lg text-center text-base font-medium leading-5 tracking-tighter has-[[data-slot=count-unit]]:-space-y-0.5', {
|
|
6
|
+
variants: {
|
|
7
|
+
variant: {
|
|
8
|
+
default: 'bg-neutral-background text-neutral-foreground',
|
|
9
|
+
success: 'bg-success-background text-success-foreground',
|
|
10
|
+
warning: 'bg-warning-background text-warning-foreground',
|
|
11
|
+
critical: 'bg-critical-background text-critical-foreground'
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
variant: 'default'
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
const countValueClasses = 'text-base font-medium leading-5 tracking-tighter';
|
|
19
|
+
const countUnitClasses = 'text-xs font-medium leading-3.5 tracking-tighter';
|
|
20
|
+
const Count = /*#__PURE__*/ forwardRef(({ className, variant, ...props }, ref)=>{
|
|
21
|
+
return /*#__PURE__*/ _jsx("output", {
|
|
22
|
+
ref: ref,
|
|
23
|
+
"data-slot": "count",
|
|
24
|
+
className: cn(countVariants({
|
|
25
|
+
variant
|
|
26
|
+
}), className),
|
|
27
|
+
...props
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
Count.displayName = 'Count';
|
|
31
|
+
const CountValue = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
|
|
32
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
33
|
+
ref: ref,
|
|
34
|
+
"data-slot": "count-value",
|
|
35
|
+
className: cn(countValueClasses, className),
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
CountValue.displayName = 'CountValue';
|
|
40
|
+
const CountUnit = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
|
|
41
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
42
|
+
ref: ref,
|
|
43
|
+
"data-slot": "count-unit",
|
|
44
|
+
className: cn(countUnitClasses, className),
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
CountUnit.displayName = 'CountUnit';
|
|
49
|
+
export { Count, CountUnit, CountValue, countVariants };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ui/core/count/count.tsx"],"sourcesContent":["import {\n type ForwardRefExoticComponent,\n type RefAttributes,\n type ComponentProps,\n type ComponentRef,\n forwardRef,\n} from 'react';\n\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ClassProp } from 'class-variance-authority/types';\n\nimport { cn } from '../../../../lib/utils';\n\ninterface CountVariantProps {\n variant?: 'default' | 'success' | 'warning' | 'critical' | null;\n}\n\nconst countVariants: (\n props?: (CountVariantProps & ClassProp) | undefined\n) => string = cva(\n 'inline-flex h-9 min-w-9 flex-col items-center justify-center p-0.5 px-1 rounded-lg text-center text-base font-medium leading-5 tracking-tighter has-[[data-slot=count-unit]]:-space-y-0.5',\n {\n variants: {\n variant: {\n default: 'bg-neutral-background text-neutral-foreground',\n success: 'bg-success-background text-success-foreground',\n warning: 'bg-warning-background text-warning-foreground',\n critical: 'bg-critical-background text-critical-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst countValueClasses =\n 'text-base font-medium leading-5 tracking-tighter' as const;\nconst countUnitClasses =\n 'text-xs font-medium leading-3.5 tracking-tighter' as const;\n\nconst Count: ForwardRefExoticComponent<\n ComponentProps<'output'> &\n VariantProps<typeof countVariants> &\n RefAttributes<HTMLOutputElement>\n> = forwardRef<\n ComponentRef<'output'>,\n ComponentProps<'output'> & VariantProps<typeof countVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <output\n ref={ref}\n data-slot=\"count\"\n className={cn(countVariants({ variant }), className)}\n {...props}\n />\n );\n});\nCount.displayName = 'Count';\n\nconst CountValue: ForwardRefExoticComponent<\n ComponentProps<'span'> & RefAttributes<HTMLSpanElement>\n> = forwardRef<ComponentRef<'span'>, ComponentProps<'span'>>(\n ({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"count-value\"\n className={cn(countValueClasses, className)}\n {...props}\n />\n );\n }\n);\nCountValue.displayName = 'CountValue';\n\nconst CountUnit: ForwardRefExoticComponent<\n ComponentProps<'span'> & RefAttributes<HTMLSpanElement>\n> = forwardRef<ComponentRef<'span'>, ComponentProps<'span'>>(\n ({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"count-unit\"\n className={cn(countUnitClasses, className)}\n {...props}\n />\n );\n }\n);\nCountUnit.displayName = 'CountUnit';\n\nexport { Count, CountUnit, CountValue, countVariants };\n"],"names":["forwardRef","cva","cn","countVariants","variants","variant","default","success","warning","critical","defaultVariants","countValueClasses","countUnitClasses","Count","className","props","ref","output","data-slot","displayName","CountValue","span","CountUnit"],"mappings":";AAAA,SAKEA,UAAU,QACL,QAAQ;AAEf,SAA4BC,GAAG,QAAQ,2BAA2B;AAGlE,SAASC,EAAE,QAAQ,2BAAwB;AAM3C,MAAMC,gBAEQF,IACZ,6LACA;IACEG,UAAU;QACRC,SAAS;YACPC,SAAS;YACTC,SAAS;YACTC,SAAS;YACTC,UAAU;QACZ;IACF;IACAC,iBAAiB;QACfL,SAAS;IACX;AACF;AAGF,MAAMM,oBACJ;AACF,MAAMC,mBACJ;AAEF,MAAMC,sBAIFb,WAGF,CAAC,EAAEc,SAAS,EAAET,OAAO,EAAE,GAAGU,OAAO,EAAEC;IACnC,qBACE,KAACC;QACCD,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGC,cAAc;YAAEE;QAAQ,IAAIS;QACzC,GAAGC,KAAK;;AAGf;AACAF,MAAMM,WAAW,GAAG;AAEpB,MAAMC,2BAEFpB,WACF,CAAC,EAAEc,SAAS,EAAE,GAAGC,OAAO,EAAEC;IACxB,qBACE,KAACK;QACCL,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGS,mBAAmBG;QAChC,GAAGC,KAAK;;AAGf;AAEFK,WAAWD,WAAW,GAAG;AAEzB,MAAMG,0BAEFtB,WACF,CAAC,EAAEc,SAAS,EAAE,GAAGC,OAAO,EAAEC;IACxB,qBACE,KAACK;QACCL,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGU,kBAAkBE;QAC/B,GAAGC,KAAK;;AAGf;AAEFO,UAAUH,WAAW,GAAG;AAExB,SAASN,KAAK,EAAES,SAAS,EAAEF,UAAU,EAAEjB,aAAa,GAAG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ComponentProps, ForwardRefExoticComponent, RefAttributes } from
|
|
2
|
-
type DataGridCellProps = ComponentProps<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
type DataGridCellProps = ComponentProps<"div"> & {
|
|
3
|
+
isPinned?: boolean;
|
|
4
|
+
isLastPinned?: boolean;
|
|
5
|
+
colIndex?: number;
|
|
6
|
+
textValue?: string;
|
|
7
|
+
truncate?: boolean;
|
|
8
8
|
};
|
|
9
9
|
declare const DataGridCell: ForwardRefExoticComponent<DataGridCellProps & RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export { DataGridCell, type DataGridCellProps };
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { forwardRef
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../../../lib/utils.js";
|
|
4
|
+
const DataGridCell = /*#__PURE__*/ forwardRef(function DataGridCell({ className, children, isPinned, isLastPinned, colIndex, textValue, truncate: shouldTruncate = true, style, ...props }, ref) {
|
|
5
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
6
|
+
ref: ref,
|
|
7
|
+
"data-slot": "data-grid-cell",
|
|
8
|
+
role: "cell",
|
|
9
|
+
"aria-colindex": colIndex,
|
|
10
|
+
title: textValue,
|
|
11
|
+
className: cn('flex items-center pr-3 text-sm font-normal', colIndex === 1 ? 'pl-4' : 'pl-3', 'min-w-0', isPinned && 'sticky z-10 bg-inherit', isLastPinned && 'shadow-pinned-column', className),
|
|
12
|
+
style: style,
|
|
13
|
+
...props,
|
|
14
|
+
children: shouldTruncate && textValue !== undefined ? /*#__PURE__*/ _jsx("span", {
|
|
15
|
+
className: "block min-w-0 flex-1 truncate",
|
|
16
|
+
children: textValue
|
|
17
|
+
}) : children
|
|
18
|
+
});
|
|
20
19
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
DataGridCell.displayName = 'DataGridCell';
|
|
21
|
+
export { DataGridCell };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=data-grid-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-cell.tsx"],"sourcesContent":["import {\n type ComponentProps,\n type ComponentRef,\n type ForwardRefExoticComponent,\n type RefAttributes,\n forwardRef,\n} from 'react';\n\nimport { cn } from '../../../../lib/utils';\n\ntype DataGridCellProps = ComponentProps<'div'> & {\n isPinned?: boolean;\n isLastPinned?: boolean;\n colIndex?: number;\n textValue?: string;\n truncate?: boolean;\n};\n\nconst DataGridCell: ForwardRefExoticComponent<\n DataGridCellProps & RefAttributes<HTMLDivElement>\n> = forwardRef<ComponentRef<'div'>, DataGridCellProps>(function DataGridCell(\n {\n className,\n children,\n isPinned,\n isLastPinned,\n colIndex,\n textValue,\n truncate: shouldTruncate = true,\n style,\n ...props\n },\n ref\n) {\n return (\n <div\n ref={ref}\n data-slot=\"data-grid-cell\"\n role=\"cell\"\n aria-colindex={colIndex}\n title={textValue}\n className={cn(\n 'flex items-center pr-3 text-sm font-normal',\n colIndex === 1 ? 'pl-4' : 'pl-3',\n 'min-w-0',\n isPinned && 'sticky z-10 bg-inherit',\n isLastPinned && 'shadow-pinned-column',\n className\n )}\n style={style}\n {...props}\n >\n {shouldTruncate && textValue !== undefined ? (\n <span className=\"block min-w-0 flex-1 truncate\">{textValue}</span>\n ) : (\n children\n )}\n </div>\n );\n});\nDataGridCell.displayName = 'DataGridCell';\n\nexport { DataGridCell, type DataGridCellProps };\n"],"names":["forwardRef","cn","DataGridCell","className","children","isPinned","isLastPinned","colIndex","textValue","truncate","shouldTruncate","style","props","ref","div","data-slot","role","aria-colindex","title","undefined","span","displayName"],"mappings":";AAAA,SAKEA,UAAU,QACL,QAAQ;AAEf,SAASC,EAAE,QAAQ,2BAAwB;AAU3C,MAAMC,6BAEFF,WAAmD,SAASE,aAC9D,EACEC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,UAAUC,iBAAiB,IAAI,EAC/BC,KAAK,EACL,GAAGC,OACJ,EACDC,GAAG;IAEH,qBACE,KAACC;QACCD,KAAKA;QACLE,aAAU;QACVC,MAAK;QACLC,iBAAeV;QACfW,OAAOV;QACPL,WAAWF,GACT,8CACAM,aAAa,IAAI,SAAS,QAC1B,WACAF,YAAY,0BACZC,gBAAgB,wBAChBH;QAEFQ,OAAOA;QACN,GAAGC,KAAK;kBAERF,kBAAkBF,cAAcW,0BAC/B,KAACC;YAAKjB,WAAU;sBAAiCK;aAEjDJ;;AAIR;AACAF,aAAamB,WAAW,GAAG;AAE3B,SAASnB,YAAY,GAA2B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type DataGridFilterOperator = "contains" | "equals" | "startsWith";
|
|
2
|
+
type DataGridFilterJoin = "and" | "or";
|
|
3
|
+
type DataGridFilterClause = {
|
|
4
|
+
/** Consumer bookkeeping only — clauses are identified by array position. */
|
|
5
|
+
id?: string;
|
|
6
|
+
columnId: string;
|
|
7
|
+
operator: DataGridFilterOperator;
|
|
8
|
+
value: string;
|
|
9
|
+
join?: DataGridFilterJoin;
|
|
10
|
+
};
|
|
11
|
+
declare function matchesDataGridFilterClause(value: unknown, clause: DataGridFilterClause): boolean;
|
|
12
|
+
declare function applyDataGridFilterClauses<TData>(rows: TData[], clauses: DataGridFilterClause[], getClauseValue: (row: TData, columnId: string) => unknown): TData[];
|
|
13
|
+
export { applyDataGridFilterClauses, matchesDataGridFilterClause };
|
|
14
|
+
export type { DataGridFilterClause, DataGridFilterJoin, DataGridFilterOperator };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Mirrors TanStack's `includesString` / `equalsString` so clause filtering and
|
|
2
|
+
// grid search treat the same data alike. `filterFns` cannot be reused directly:
|
|
3
|
+
// they require a `Row`, unavailable when filtering raw data.
|
|
4
|
+
function normalizeClauseValue(value) {
|
|
5
|
+
return value?.toString().toLowerCase() ?? '';
|
|
6
|
+
}
|
|
7
|
+
function isActiveClause(clause) {
|
|
8
|
+
return clause.value.trim() !== '';
|
|
9
|
+
}
|
|
10
|
+
function matchesDataGridFilterClause(value, clause) {
|
|
11
|
+
const search = clause.value.trim().toLowerCase();
|
|
12
|
+
const candidate = normalizeClauseValue(value);
|
|
13
|
+
switch(clause.operator){
|
|
14
|
+
case 'equals':
|
|
15
|
+
return candidate === search;
|
|
16
|
+
case 'startsWith':
|
|
17
|
+
return candidate.startsWith(search);
|
|
18
|
+
case 'contains':
|
|
19
|
+
return candidate.includes(search);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Applied left to right with no operator precedence — `or` does not bind tighter
|
|
23
|
+
// than `and`. Blank clauses are dropped rather than treated as matching
|
|
24
|
+
// everything, which an `or` join would otherwise widen to every row.
|
|
25
|
+
function applyDataGridFilterClauses(rows, clauses, getClauseValue) {
|
|
26
|
+
const activeClauses = clauses.filter(isActiveClause);
|
|
27
|
+
if (activeClauses.length === 0) return rows;
|
|
28
|
+
return rows.filter((row)=>activeClauses.reduce((result, clause, index)=>{
|
|
29
|
+
const matched = matchesDataGridFilterClause(getClauseValue(row, clause.columnId), clause);
|
|
30
|
+
if (index === 0) return matched;
|
|
31
|
+
return clause.join === 'or' ? result || matched : result && matched;
|
|
32
|
+
}, true));
|
|
33
|
+
}
|
|
34
|
+
export { applyDataGridFilterClauses, matchesDataGridFilterClause };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=data-grid-filter-clauses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-filter-clauses.ts"],"sourcesContent":["type DataGridFilterOperator = 'contains' | 'equals' | 'startsWith';\ntype DataGridFilterJoin = 'and' | 'or';\n\ntype DataGridFilterClause = {\n /** Consumer bookkeeping only — clauses are identified by array position. */\n id?: string;\n columnId: string;\n operator: DataGridFilterOperator;\n value: string;\n join?: DataGridFilterJoin;\n};\n\n// Mirrors TanStack's `includesString` / `equalsString` so clause filtering and\n// grid search treat the same data alike. `filterFns` cannot be reused directly:\n// they require a `Row`, unavailable when filtering raw data.\nfunction normalizeClauseValue(value: unknown): string {\n return value?.toString().toLowerCase() ?? '';\n}\n\nfunction isActiveClause(clause: DataGridFilterClause): boolean {\n return clause.value.trim() !== '';\n}\n\nfunction matchesDataGridFilterClause(\n value: unknown,\n clause: DataGridFilterClause\n): boolean {\n const search = clause.value.trim().toLowerCase();\n const candidate = normalizeClauseValue(value);\n\n switch (clause.operator) {\n case 'equals':\n return candidate === search;\n case 'startsWith':\n return candidate.startsWith(search);\n case 'contains':\n return candidate.includes(search);\n }\n}\n\n// Applied left to right with no operator precedence — `or` does not bind tighter\n// than `and`. Blank clauses are dropped rather than treated as matching\n// everything, which an `or` join would otherwise widen to every row.\nfunction applyDataGridFilterClauses<TData>(\n rows: TData[],\n clauses: DataGridFilterClause[],\n getClauseValue: (row: TData, columnId: string) => unknown\n): TData[] {\n const activeClauses = clauses.filter(isActiveClause);\n if (activeClauses.length === 0) return rows;\n\n return rows.filter((row: TData) =>\n activeClauses.reduce<boolean>(\n (result: boolean, clause: DataGridFilterClause, index: number) => {\n const matched = matchesDataGridFilterClause(\n getClauseValue(row, clause.columnId),\n clause\n );\n if (index === 0) return matched;\n return clause.join === 'or' ? result || matched : result && matched;\n },\n true\n )\n );\n}\n\nexport { applyDataGridFilterClauses, matchesDataGridFilterClause };\nexport type {\n DataGridFilterClause,\n DataGridFilterJoin,\n DataGridFilterOperator,\n};\n"],"names":["normalizeClauseValue","value","toString","toLowerCase","isActiveClause","clause","trim","matchesDataGridFilterClause","search","candidate","operator","startsWith","includes","applyDataGridFilterClauses","rows","clauses","getClauseValue","activeClauses","filter","length","row","reduce","result","index","matched","columnId","join"],"mappings":"AAYA,+EAA+E;AAC/E,gFAAgF;AAChF,6DAA6D;AAC7D,SAASA,qBAAqBC,KAAc;IAC1C,OAAOA,OAAOC,WAAWC,iBAAiB;AAC5C;AAEA,SAASC,eAAeC,MAA4B;IAClD,OAAOA,OAAOJ,KAAK,CAACK,IAAI,OAAO;AACjC;AAEA,SAASC,4BACPN,KAAc,EACdI,MAA4B;IAE5B,MAAMG,SAASH,OAAOJ,KAAK,CAACK,IAAI,GAAGH,WAAW;IAC9C,MAAMM,YAAYT,qBAAqBC;IAEvC,OAAQI,OAAOK,QAAQ;QACrB,KAAK;YACH,OAAOD,cAAcD;QACvB,KAAK;YACH,OAAOC,UAAUE,UAAU,CAACH;QAC9B,KAAK;YACH,OAAOC,UAAUG,QAAQ,CAACJ;IAC9B;AACF;AAEA,iFAAiF;AACjF,wEAAwE;AACxE,qEAAqE;AACrE,SAASK,2BACPC,IAAa,EACbC,OAA+B,EAC/BC,cAAyD;IAEzD,MAAMC,gBAAgBF,QAAQG,MAAM,CAACd;IACrC,IAAIa,cAAcE,MAAM,KAAK,GAAG,OAAOL;IAEvC,OAAOA,KAAKI,MAAM,CAAC,CAACE,MAClBH,cAAcI,MAAM,CAClB,CAACC,QAAiBjB,QAA8BkB;YAC9C,MAAMC,UAAUjB,4BACdS,eAAeI,KAAKf,OAAOoB,QAAQ,GACnCpB;YAEF,IAAIkB,UAAU,GAAG,OAAOC;YACxB,OAAOnB,OAAOqB,IAAI,KAAK,OAAOJ,UAAUE,UAAUF,UAAUE;QAC9D,GACA;AAGN;AAEA,SAASX,0BAA0B,EAAEN,2BAA2B,GAAG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
import type { DataGridFilterClause } from "./data-grid-filter-clauses";
|
|
3
|
+
type DataGridFilterColumn = {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
type DataGridFilterPanelLabels = {
|
|
8
|
+
title: string;
|
|
9
|
+
close: string;
|
|
10
|
+
showFieldsWhere: string;
|
|
11
|
+
join: string;
|
|
12
|
+
joinAnd: string;
|
|
13
|
+
joinOr: string;
|
|
14
|
+
column: string;
|
|
15
|
+
operator: string;
|
|
16
|
+
operatorContains: string;
|
|
17
|
+
operatorEquals: string;
|
|
18
|
+
operatorStartsWith: string;
|
|
19
|
+
value: string;
|
|
20
|
+
valuePlaceholder: string;
|
|
21
|
+
removeClause: string;
|
|
22
|
+
addClause: string;
|
|
23
|
+
clearAll: string;
|
|
24
|
+
apply: string;
|
|
25
|
+
results: (filteredResultCount: number) => string;
|
|
26
|
+
maxClausesReached: (maxClauses: number) => string;
|
|
27
|
+
};
|
|
28
|
+
type DataGridFilterPanelProps = Omit<ComponentProps<"div">, "onChange"> & {
|
|
29
|
+
clauses: DataGridFilterClause[];
|
|
30
|
+
columns: DataGridFilterColumn[];
|
|
31
|
+
maxClauses?: number;
|
|
32
|
+
filteredResultCount?: number;
|
|
33
|
+
lockedColumnId?: string;
|
|
34
|
+
labels?: Partial<DataGridFilterPanelLabels>;
|
|
35
|
+
onChange: (clauses: DataGridFilterClause[]) => void;
|
|
36
|
+
onClearAll: () => void;
|
|
37
|
+
onClose?: () => void;
|
|
38
|
+
onApply?: () => void;
|
|
39
|
+
};
|
|
40
|
+
declare const DataGridFilterPanel: ForwardRefExoticComponent<DataGridFilterPanelProps & RefAttributes<HTMLDivElement>>;
|
|
41
|
+
export { DataGridFilterPanel, type DataGridFilterColumn, type DataGridFilterPanelLabels };
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { IconMinus, IconPlus, IconX } from "@tabler/icons-react";
|
|
4
|
+
import { cn } from "../../../../lib/utils.js";
|
|
5
|
+
import { Button } from "../button/button.js";
|
|
6
|
+
import { Input } from "../input/input.js";
|
|
7
|
+
import { Select, SelectContent, SelectItem, SelectTrigger } from "../select/select.js";
|
|
8
|
+
const isDataGridFilterJoin = (value)=>value === 'and' || value === 'or';
|
|
9
|
+
const isDataGridFilterOperator = (value)=>value === 'contains' || value === 'equals' || value === 'startsWith';
|
|
10
|
+
const defaultDataGridFilterPanelLabels = {
|
|
11
|
+
title: 'Filters',
|
|
12
|
+
close: 'Close filters',
|
|
13
|
+
showFieldsWhere: 'Show fields where',
|
|
14
|
+
join: 'Filter join',
|
|
15
|
+
joinAnd: 'And',
|
|
16
|
+
joinOr: 'Or',
|
|
17
|
+
column: 'Filter column',
|
|
18
|
+
operator: 'Filter operator',
|
|
19
|
+
operatorContains: 'Contains',
|
|
20
|
+
operatorEquals: 'Equals',
|
|
21
|
+
operatorStartsWith: 'Starts with',
|
|
22
|
+
value: 'Filter value',
|
|
23
|
+
valuePlaceholder: 'Enter value',
|
|
24
|
+
removeClause: 'Remove filter',
|
|
25
|
+
addClause: 'Add condition',
|
|
26
|
+
clearAll: 'Clear all',
|
|
27
|
+
apply: 'Apply filters',
|
|
28
|
+
results: (filteredResultCount)=>`Results ${filteredResultCount.toLocaleString()}`,
|
|
29
|
+
maxClausesReached: (maxClauses)=>`Maximum ${maxClauses} conditions`
|
|
30
|
+
};
|
|
31
|
+
const DataGridFilterPanel = /*#__PURE__*/ forwardRef(function DataGridFilterPanel({ clauses, columns, maxClauses = 5, filteredResultCount, lockedColumnId, labels: labelOverrides, onChange, onClearAll, onClose, onApply, className, ...props }, ref) {
|
|
32
|
+
const labels = {
|
|
33
|
+
...defaultDataGridFilterPanelLabels,
|
|
34
|
+
...labelOverrides
|
|
35
|
+
};
|
|
36
|
+
const canAddClause = clauses.length < maxClauses;
|
|
37
|
+
const uniformJoinValue = clauses[1]?.join ?? 'and';
|
|
38
|
+
const operatorLabel = {
|
|
39
|
+
contains: labels.operatorContains,
|
|
40
|
+
equals: labels.operatorEquals,
|
|
41
|
+
startsWith: labels.operatorStartsWith
|
|
42
|
+
};
|
|
43
|
+
const joinLabel = {
|
|
44
|
+
and: labels.joinAnd,
|
|
45
|
+
or: labels.joinOr
|
|
46
|
+
};
|
|
47
|
+
const columnLabel = (id)=>columns.find((column)=>column.id === id)?.label ?? id;
|
|
48
|
+
const updateClause = (index, patch)=>{
|
|
49
|
+
onChange(clauses.map((clause, clauseIndex)=>clauseIndex === index ? {
|
|
50
|
+
...clause,
|
|
51
|
+
...patch
|
|
52
|
+
} : clause));
|
|
53
|
+
};
|
|
54
|
+
const createClause = (join = 'and')=>({
|
|
55
|
+
columnId: lockedColumnId ?? columns[0]?.id ?? '',
|
|
56
|
+
operator: 'contains',
|
|
57
|
+
value: '',
|
|
58
|
+
join
|
|
59
|
+
});
|
|
60
|
+
const addClause = ()=>{
|
|
61
|
+
if (!canAddClause) return;
|
|
62
|
+
onChange([
|
|
63
|
+
...clauses,
|
|
64
|
+
createClause(clauses[clauses.length - 1]?.join ?? 'and')
|
|
65
|
+
]);
|
|
66
|
+
};
|
|
67
|
+
const removeClause = (index)=>{
|
|
68
|
+
const next = clauses.filter((_clause, clauseIndex)=>clauseIndex !== index);
|
|
69
|
+
onChange(next.length > 0 ? next : [
|
|
70
|
+
createClause()
|
|
71
|
+
]);
|
|
72
|
+
};
|
|
73
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
74
|
+
ref: ref,
|
|
75
|
+
"data-slot": "data-grid-filter-panel",
|
|
76
|
+
className: cn('w-[min(52rem,calc(100vw-2rem))] rounded-lg border border-border bg-background p-4 shadow-default', className),
|
|
77
|
+
...props,
|
|
78
|
+
children: [
|
|
79
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
80
|
+
className: "mb-2 flex items-center justify-between gap-3",
|
|
81
|
+
children: [
|
|
82
|
+
/*#__PURE__*/ _jsx("p", {
|
|
83
|
+
className: "text-base font-medium text-foreground",
|
|
84
|
+
children: labels.title
|
|
85
|
+
}),
|
|
86
|
+
onClose != null && /*#__PURE__*/ _jsx(Button, {
|
|
87
|
+
size: "icon-sm",
|
|
88
|
+
variant: "ghost",
|
|
89
|
+
className: "shrink-0",
|
|
90
|
+
"aria-label": labels.close,
|
|
91
|
+
onClick: onClose,
|
|
92
|
+
children: /*#__PURE__*/ _jsx(IconX, {
|
|
93
|
+
className: "size-4",
|
|
94
|
+
"aria-hidden": true
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
}),
|
|
99
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
100
|
+
className: "grid gap-2",
|
|
101
|
+
children: [
|
|
102
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
103
|
+
className: "grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] gap-2",
|
|
104
|
+
children: [
|
|
105
|
+
/*#__PURE__*/ _jsx("span", {}),
|
|
106
|
+
/*#__PURE__*/ _jsx("span", {
|
|
107
|
+
className: "text-sm font-medium text-muted-foreground",
|
|
108
|
+
children: labels.showFieldsWhere
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
clauses.map((clause, index)=>/*#__PURE__*/ _jsxs("div", {
|
|
113
|
+
className: "grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] items-center gap-2",
|
|
114
|
+
children: [
|
|
115
|
+
index === 0 ? /*#__PURE__*/ _jsx("span", {}) : index > 1 ? /*#__PURE__*/ _jsx("span", {
|
|
116
|
+
className: "px-3 text-sm font-medium text-foreground capitalize",
|
|
117
|
+
children: uniformJoinValue
|
|
118
|
+
}) : /*#__PURE__*/ _jsxs(Select, {
|
|
119
|
+
value: uniformJoinValue,
|
|
120
|
+
onValueChange: (join)=>{
|
|
121
|
+
if (isDataGridFilterJoin(join)) {
|
|
122
|
+
onChange(clauses.map((joined, joinedIndex)=>joinedIndex === 0 ? joined : {
|
|
123
|
+
...joined,
|
|
124
|
+
join
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
children: [
|
|
129
|
+
/*#__PURE__*/ _jsx(SelectTrigger, {
|
|
130
|
+
"aria-label": labels.join,
|
|
131
|
+
className: "h-8 min-w-0 w-full text-sm",
|
|
132
|
+
children: joinLabel[uniformJoinValue]
|
|
133
|
+
}),
|
|
134
|
+
/*#__PURE__*/ _jsxs(SelectContent, {
|
|
135
|
+
children: [
|
|
136
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
137
|
+
value: "and",
|
|
138
|
+
children: labels.joinAnd
|
|
139
|
+
}),
|
|
140
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
141
|
+
value: "or",
|
|
142
|
+
children: labels.joinOr
|
|
143
|
+
})
|
|
144
|
+
]
|
|
145
|
+
})
|
|
146
|
+
]
|
|
147
|
+
}),
|
|
148
|
+
/*#__PURE__*/ _jsxs(Select, {
|
|
149
|
+
value: clause.columnId,
|
|
150
|
+
onValueChange: (value)=>updateClause(index, {
|
|
151
|
+
columnId: value
|
|
152
|
+
}),
|
|
153
|
+
disabled: lockedColumnId != null,
|
|
154
|
+
children: [
|
|
155
|
+
/*#__PURE__*/ _jsx(SelectTrigger, {
|
|
156
|
+
"aria-label": labels.column,
|
|
157
|
+
className: "h-8 min-w-0 w-full text-sm",
|
|
158
|
+
children: columnLabel(clause.columnId)
|
|
159
|
+
}),
|
|
160
|
+
/*#__PURE__*/ _jsx(SelectContent, {
|
|
161
|
+
children: columns.map((column)=>/*#__PURE__*/ _jsx(SelectItem, {
|
|
162
|
+
value: column.id,
|
|
163
|
+
children: column.label
|
|
164
|
+
}, column.id))
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
}),
|
|
168
|
+
/*#__PURE__*/ _jsxs(Select, {
|
|
169
|
+
value: clause.operator,
|
|
170
|
+
onValueChange: (value)=>{
|
|
171
|
+
if (isDataGridFilterOperator(value)) {
|
|
172
|
+
updateClause(index, {
|
|
173
|
+
operator: value
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
children: [
|
|
178
|
+
/*#__PURE__*/ _jsx(SelectTrigger, {
|
|
179
|
+
"aria-label": labels.operator,
|
|
180
|
+
className: "h-8 min-w-0 w-full text-sm",
|
|
181
|
+
children: operatorLabel[clause.operator]
|
|
182
|
+
}),
|
|
183
|
+
/*#__PURE__*/ _jsxs(SelectContent, {
|
|
184
|
+
children: [
|
|
185
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
186
|
+
value: "contains",
|
|
187
|
+
children: labels.operatorContains
|
|
188
|
+
}),
|
|
189
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
190
|
+
value: "equals",
|
|
191
|
+
children: labels.operatorEquals
|
|
192
|
+
}),
|
|
193
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
194
|
+
value: "startsWith",
|
|
195
|
+
children: labels.operatorStartsWith
|
|
196
|
+
})
|
|
197
|
+
]
|
|
198
|
+
})
|
|
199
|
+
]
|
|
200
|
+
}),
|
|
201
|
+
/*#__PURE__*/ _jsx(Input, {
|
|
202
|
+
"aria-label": labels.value,
|
|
203
|
+
value: clause.value,
|
|
204
|
+
placeholder: labels.valuePlaceholder,
|
|
205
|
+
onChange: (event)=>updateClause(index, {
|
|
206
|
+
value: event.target.value
|
|
207
|
+
})
|
|
208
|
+
}),
|
|
209
|
+
index === 0 ? /*#__PURE__*/ _jsx("span", {}) : /*#__PURE__*/ _jsx(Button, {
|
|
210
|
+
size: "icon",
|
|
211
|
+
variant: "ghost",
|
|
212
|
+
"aria-label": labels.removeClause,
|
|
213
|
+
onClick: ()=>removeClause(index),
|
|
214
|
+
children: /*#__PURE__*/ _jsx(IconMinus, {
|
|
215
|
+
className: "size-4",
|
|
216
|
+
"aria-hidden": "true"
|
|
217
|
+
})
|
|
218
|
+
})
|
|
219
|
+
]
|
|
220
|
+
}, clause.id ?? index))
|
|
221
|
+
]
|
|
222
|
+
}),
|
|
223
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
224
|
+
className: "mt-3 flex items-center justify-between gap-2 pl-[83px]",
|
|
225
|
+
children: [
|
|
226
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
227
|
+
className: "flex items-center gap-2",
|
|
228
|
+
children: [
|
|
229
|
+
/*#__PURE__*/ _jsxs(Button, {
|
|
230
|
+
variant: "outline",
|
|
231
|
+
onClick: addClause,
|
|
232
|
+
disabled: !canAddClause,
|
|
233
|
+
children: [
|
|
234
|
+
/*#__PURE__*/ _jsx(IconPlus, {
|
|
235
|
+
className: "size-4",
|
|
236
|
+
"aria-hidden": "true"
|
|
237
|
+
}),
|
|
238
|
+
labels.addClause
|
|
239
|
+
]
|
|
240
|
+
}),
|
|
241
|
+
filteredResultCount != null && /*#__PURE__*/ _jsx("span", {
|
|
242
|
+
className: "text-sm font-medium text-foreground",
|
|
243
|
+
children: labels.results(filteredResultCount)
|
|
244
|
+
}),
|
|
245
|
+
!canAddClause ? /*#__PURE__*/ _jsx("span", {
|
|
246
|
+
className: "text-sm text-muted-foreground",
|
|
247
|
+
children: labels.maxClausesReached(maxClauses)
|
|
248
|
+
}) : null
|
|
249
|
+
]
|
|
250
|
+
}),
|
|
251
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
252
|
+
className: "flex items-center gap-2",
|
|
253
|
+
children: [
|
|
254
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
255
|
+
variant: "ghost",
|
|
256
|
+
onClick: onClearAll,
|
|
257
|
+
children: labels.clearAll
|
|
258
|
+
}),
|
|
259
|
+
onApply ? /*#__PURE__*/ _jsx(Button, {
|
|
260
|
+
onClick: onApply,
|
|
261
|
+
children: labels.apply
|
|
262
|
+
}) : null
|
|
263
|
+
]
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
})
|
|
267
|
+
]
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
DataGridFilterPanel.displayName = 'DataGridFilterPanel';
|
|
271
|
+
export { DataGridFilterPanel };
|
|
272
|
+
|
|
273
|
+
//# sourceMappingURL=data-grid-filter-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-filter-panel.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n type ComponentProps,\n type ComponentRef,\n type ForwardRefExoticComponent,\n type Ref,\n type RefAttributes,\n forwardRef,\n} from 'react';\n\nimport { IconMinus, IconPlus, IconX } from '@tabler/icons-react';\n\nimport { cn } from '../../../../lib/utils';\nimport { Button } from '../button/button';\nimport { Input } from '../input/input';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n} from '../select/select';\n\nimport type {\n DataGridFilterClause,\n DataGridFilterJoin,\n DataGridFilterOperator,\n} from './data-grid-filter-clauses';\n\ntype DataGridFilterColumn = {\n id: string;\n label: string;\n};\n\nconst isDataGridFilterJoin = (value: string): value is DataGridFilterJoin =>\n value === 'and' || value === 'or';\n\nconst isDataGridFilterOperator = (\n value: string\n): value is DataGridFilterOperator =>\n value === 'contains' || value === 'equals' || value === 'startsWith';\n\ntype DataGridFilterPanelLabels = {\n title: string;\n close: string;\n showFieldsWhere: string;\n join: string;\n joinAnd: string;\n joinOr: string;\n column: string;\n operator: string;\n operatorContains: string;\n operatorEquals: string;\n operatorStartsWith: string;\n value: string;\n valuePlaceholder: string;\n removeClause: string;\n addClause: string;\n clearAll: string;\n apply: string;\n results: (filteredResultCount: number) => string;\n maxClausesReached: (maxClauses: number) => string;\n};\n\nconst defaultDataGridFilterPanelLabels: DataGridFilterPanelLabels = {\n title: 'Filters',\n close: 'Close filters',\n showFieldsWhere: 'Show fields where',\n join: 'Filter join',\n joinAnd: 'And',\n joinOr: 'Or',\n column: 'Filter column',\n operator: 'Filter operator',\n operatorContains: 'Contains',\n operatorEquals: 'Equals',\n operatorStartsWith: 'Starts with',\n value: 'Filter value',\n valuePlaceholder: 'Enter value',\n removeClause: 'Remove filter',\n addClause: 'Add condition',\n clearAll: 'Clear all',\n apply: 'Apply filters',\n results: (filteredResultCount: number) =>\n `Results ${filteredResultCount.toLocaleString()}`,\n maxClausesReached: (maxClauses: number) => `Maximum ${maxClauses} conditions`,\n};\n\ntype DataGridFilterPanelProps = Omit<ComponentProps<'div'>, 'onChange'> & {\n clauses: DataGridFilterClause[];\n columns: DataGridFilterColumn[];\n maxClauses?: number;\n filteredResultCount?: number;\n lockedColumnId?: string;\n labels?: Partial<DataGridFilterPanelLabels>;\n onChange: (clauses: DataGridFilterClause[]) => void;\n onClearAll: () => void;\n onClose?: () => void;\n onApply?: () => void;\n};\n\nconst DataGridFilterPanel: ForwardRefExoticComponent<\n DataGridFilterPanelProps & RefAttributes<HTMLDivElement>\n> = forwardRef<ComponentRef<'div'>, DataGridFilterPanelProps>(\n function DataGridFilterPanel(\n {\n clauses,\n columns,\n maxClauses = 5,\n filteredResultCount,\n lockedColumnId,\n labels: labelOverrides,\n onChange,\n onClearAll,\n onClose,\n onApply,\n className,\n ...props\n }: DataGridFilterPanelProps,\n ref: Ref<ComponentRef<'div'>>\n ) {\n const labels = { ...defaultDataGridFilterPanelLabels, ...labelOverrides };\n const canAddClause = clauses.length < maxClauses;\n const uniformJoinValue = clauses[1]?.join ?? 'and';\n\n const operatorLabel: Record<DataGridFilterOperator, string> = {\n contains: labels.operatorContains,\n equals: labels.operatorEquals,\n startsWith: labels.operatorStartsWith,\n };\n const joinLabel: Record<DataGridFilterJoin, string> = {\n and: labels.joinAnd,\n or: labels.joinOr,\n };\n const columnLabel = (id: string) =>\n columns.find((column: DataGridFilterColumn) => column.id === id)?.label ??\n id;\n\n const updateClause = (\n index: number,\n patch: Partial<DataGridFilterClause>\n ) => {\n onChange(\n clauses.map((clause: DataGridFilterClause, clauseIndex: number) =>\n clauseIndex === index ? { ...clause, ...patch } : clause\n )\n );\n };\n\n const createClause = (\n join: DataGridFilterJoin = 'and'\n ): DataGridFilterClause => ({\n columnId: lockedColumnId ?? columns[0]?.id ?? '',\n operator: 'contains',\n value: '',\n join,\n });\n\n const addClause = () => {\n if (!canAddClause) return;\n onChange([\n ...clauses,\n createClause(clauses[clauses.length - 1]?.join ?? 'and'),\n ]);\n };\n\n const removeClause = (index: number) => {\n const next = clauses.filter(\n (_clause: DataGridFilterClause, clauseIndex: number) =>\n clauseIndex !== index\n );\n onChange(next.length > 0 ? next : [createClause()]);\n };\n\n return (\n <div\n ref={ref}\n data-slot=\"data-grid-filter-panel\"\n className={cn(\n 'w-[min(52rem,calc(100vw-2rem))] rounded-lg border border-border bg-background p-4 shadow-default',\n className\n )}\n {...props}\n >\n <div className=\"mb-2 flex items-center justify-between gap-3\">\n <p className=\"text-base font-medium text-foreground\">\n {labels.title}\n </p>\n {onClose != null && (\n <Button\n size=\"icon-sm\"\n variant=\"ghost\"\n className=\"shrink-0\"\n aria-label={labels.close}\n onClick={onClose}\n >\n <IconX className=\"size-4\" aria-hidden />\n </Button>\n )}\n </div>\n\n <div className=\"grid gap-2\">\n <div className=\"grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] gap-2\">\n <span />\n <span className=\"text-sm font-medium text-muted-foreground\">\n {labels.showFieldsWhere}\n </span>\n </div>\n {clauses.map((clause: DataGridFilterClause, index: number) => (\n <div\n key={clause.id ?? index}\n className=\"grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] items-center gap-2\"\n >\n {index === 0 ? (\n <span />\n ) : index > 1 ? (\n <span className=\"px-3 text-sm font-medium text-foreground capitalize\">\n {uniformJoinValue}\n </span>\n ) : (\n <Select\n value={uniformJoinValue}\n onValueChange={(join: string) => {\n if (isDataGridFilterJoin(join)) {\n onChange(\n clauses.map(\n (\n joined: DataGridFilterClause,\n joinedIndex: number\n ) =>\n joinedIndex === 0 ? joined : { ...joined, join }\n )\n );\n }\n }}\n >\n <SelectTrigger\n aria-label={labels.join}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {joinLabel[uniformJoinValue]}\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"and\">{labels.joinAnd}</SelectItem>\n <SelectItem value=\"or\">{labels.joinOr}</SelectItem>\n </SelectContent>\n </Select>\n )}\n <Select\n value={clause.columnId}\n onValueChange={(value: string) =>\n updateClause(index, { columnId: value })\n }\n disabled={lockedColumnId != null}\n >\n <SelectTrigger\n aria-label={labels.column}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {columnLabel(clause.columnId)}\n </SelectTrigger>\n <SelectContent>\n {columns.map((column: DataGridFilterColumn) => (\n <SelectItem key={column.id} value={column.id}>\n {column.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n value={clause.operator}\n onValueChange={(value: string) => {\n if (isDataGridFilterOperator(value)) {\n updateClause(index, { operator: value });\n }\n }}\n >\n <SelectTrigger\n aria-label={labels.operator}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {operatorLabel[clause.operator]}\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"contains\">\n {labels.operatorContains}\n </SelectItem>\n <SelectItem value=\"equals\">\n {labels.operatorEquals}\n </SelectItem>\n <SelectItem value=\"startsWith\">\n {labels.operatorStartsWith}\n </SelectItem>\n </SelectContent>\n </Select>\n <Input\n aria-label={labels.value}\n value={clause.value}\n placeholder={labels.valuePlaceholder}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n updateClause(index, { value: event.target.value })\n }\n />\n {index === 0 ? (\n <span />\n ) : (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n aria-label={labels.removeClause}\n onClick={() => removeClause(index)}\n >\n <IconMinus className=\"size-4\" aria-hidden=\"true\" />\n </Button>\n )}\n </div>\n ))}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2 pl-[83px]\">\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n onClick={addClause}\n disabled={!canAddClause}\n >\n <IconPlus className=\"size-4\" aria-hidden=\"true\" />\n {labels.addClause}\n </Button>\n {filteredResultCount != null && (\n <span className=\"text-sm font-medium text-foreground\">\n {labels.results(filteredResultCount)}\n </span>\n )}\n {!canAddClause ? (\n <span className=\"text-sm text-muted-foreground\">\n {labels.maxClausesReached(maxClauses)}\n </span>\n ) : null}\n </div>\n <div className=\"flex items-center gap-2\">\n <Button variant=\"ghost\" onClick={onClearAll}>\n {labels.clearAll}\n </Button>\n {onApply ? <Button onClick={onApply}>{labels.apply}</Button> : null}\n </div>\n </div>\n </div>\n );\n }\n);\nDataGridFilterPanel.displayName = 'DataGridFilterPanel';\n\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n};\n"],"names":["forwardRef","IconMinus","IconPlus","IconX","cn","Button","Input","Select","SelectContent","SelectItem","SelectTrigger","isDataGridFilterJoin","value","isDataGridFilterOperator","defaultDataGridFilterPanelLabels","title","close","showFieldsWhere","join","joinAnd","joinOr","column","operator","operatorContains","operatorEquals","operatorStartsWith","valuePlaceholder","removeClause","addClause","clearAll","apply","results","filteredResultCount","toLocaleString","maxClausesReached","maxClauses","DataGridFilterPanel","clauses","columns","lockedColumnId","labels","labelOverrides","onChange","onClearAll","onClose","onApply","className","props","ref","canAddClause","length","uniformJoinValue","operatorLabel","contains","equals","startsWith","joinLabel","and","or","columnLabel","id","find","label","updateClause","index","patch","map","clause","clauseIndex","createClause","columnId","next","filter","_clause","div","data-slot","p","size","variant","aria-label","onClick","aria-hidden","span","onValueChange","joined","joinedIndex","disabled","placeholder","event","target","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
type DataGridFooterProps = ComponentProps<"div">;
|
|
3
|
+
declare const DataGridFooter: ForwardRefExoticComponent<DataGridFooterProps & RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const DataGridFooterStart: ForwardRefExoticComponent<ComponentProps<"div"> & RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const DataGridFooterEnd: ForwardRefExoticComponent<ComponentProps<"div"> & RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export { DataGridFooter, DataGridFooterEnd, DataGridFooterStart };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../../../lib/utils.js";
|
|
4
|
+
const DataGridFooter = /*#__PURE__*/ forwardRef(({ className, children, ...props }, ref)=>{
|
|
5
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
6
|
+
ref: ref,
|
|
7
|
+
"data-slot": "data-grid-footer",
|
|
8
|
+
className: cn('order-3 mt-auto flex min-h-17 items-center justify-between border-t py-4 pl-1.5 pr-4', className),
|
|
9
|
+
...props,
|
|
10
|
+
children: children
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
DataGridFooter.displayName = 'DataGridFooter';
|
|
14
|
+
const DataGridFooterStart = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
|
|
15
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
16
|
+
ref: ref,
|
|
17
|
+
"data-slot": "data-grid-footer-start",
|
|
18
|
+
className: cn('flex min-w-0 flex-1 items-center gap-2', className),
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
DataGridFooterStart.displayName = 'DataGridFooterStart';
|
|
23
|
+
const DataGridFooterEnd = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
|
|
24
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
25
|
+
ref: ref,
|
|
26
|
+
"data-slot": "data-grid-footer-end",
|
|
27
|
+
className: cn('flex items-center justify-end gap-2', className),
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
DataGridFooterEnd.displayName = 'DataGridFooterEnd';
|
|
32
|
+
export { DataGridFooter, DataGridFooterEnd, DataGridFooterStart };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data-grid-footer.js.map
|