@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,42 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
2
|
+
import dayjs from "dayjs";
|
|
3
|
+
import { DEFAULT_MINUTE, DEFAULT_START_HOUR } from "../shared/constants.js";
|
|
4
|
+
import { usePopoverState } from "../shared/hooks/use-popover-state.js";
|
|
5
|
+
import { useTimeState } from "../shared/hooks/use-time-state.js";
|
|
6
|
+
export const useTimePicker = ({ value, onChange, timeFormat = '24h', defaultDate = dayjs() })=>{
|
|
7
|
+
const onBackspaceRef = useRef(()=>{});
|
|
8
|
+
const { isOpen, setIsOpen, popoverRef, inputRef } = usePopoverState({
|
|
9
|
+
onBackspace: useCallback(()=>onBackspaceRef.current(), [])
|
|
10
|
+
});
|
|
11
|
+
const timeState = useTimeState({
|
|
12
|
+
initialHour: value?.hour() ?? DEFAULT_START_HOUR,
|
|
13
|
+
initialMinute: value?.minute() ?? DEFAULT_MINUTE,
|
|
14
|
+
timeFormat
|
|
15
|
+
});
|
|
16
|
+
const { hour, minute, amPm, hour24, handleHourChange, handleMinuteChange, handleAmPmChange, resetTime } = timeState;
|
|
17
|
+
const anchor = value ?? defaultDate;
|
|
18
|
+
const buildDisplayTime = (base)=>base.hour(hour24).minute(minute).second(0).millisecond(0);
|
|
19
|
+
const buildTimeOnAnchor = (time)=>anchor.hour(time.hour()).minute(time.minute()).second(0).millisecond(0);
|
|
20
|
+
const displayValue = isOpen ? buildDisplayTime(anchor) : value;
|
|
21
|
+
const resetAll = ()=>{
|
|
22
|
+
resetTime(value?.hour() ?? DEFAULT_START_HOUR, value?.minute() ?? DEFAULT_MINUTE);
|
|
23
|
+
};
|
|
24
|
+
const handleBackspace = ()=>{
|
|
25
|
+
if (value !== null) {
|
|
26
|
+
onChange(null);
|
|
27
|
+
resetAll();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
useEffect(()=>{
|
|
31
|
+
onBackspaceRef.current = handleBackspace;
|
|
32
|
+
});
|
|
33
|
+
const handleOpenChange = (open)=>{
|
|
34
|
+
resetAll();
|
|
35
|
+
setIsOpen(open);
|
|
36
|
+
};
|
|
37
|
+
const handleApply = ()=>{
|
|
38
|
+
const next = buildDisplayTime(anchor);
|
|
39
|
+
onChange(next);
|
|
40
|
+
setIsOpen(false);
|
|
41
|
+
};
|
|
42
|
+
const handleApplyShortcut = (shortcutValue)=>{
|
|
43
|
+
const time = Array.isArray(shortcutValue) ? shortcutValue[0] : shortcutValue;
|
|
44
|
+
onChange(time ? buildTimeOnAnchor(time) : null);
|
|
45
|
+
setIsOpen(false);
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
isOpen,
|
|
49
|
+
hour,
|
|
50
|
+
minute,
|
|
51
|
+
amPm,
|
|
52
|
+
displayValue,
|
|
53
|
+
handleOpenChange,
|
|
54
|
+
handleApply,
|
|
55
|
+
handleHourChange,
|
|
56
|
+
handleMinuteChange,
|
|
57
|
+
handleAmPmChange,
|
|
58
|
+
handleApplyShortcut,
|
|
59
|
+
inputRef,
|
|
60
|
+
popoverRef
|
|
61
|
+
};
|
|
40
62
|
};
|
|
41
|
-
|
|
42
|
-
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=use-time-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ui/core/date-time-pickers/time-picker/use-time-picker.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\n\nimport { DEFAULT_MINUTE, DEFAULT_START_HOUR } from '../shared/constants';\nimport { usePopoverState } from '../shared/hooks/use-popover-state';\nimport { useTimeState } from '../shared/hooks/use-time-state';\nimport type { ShortcutValueDayjs } from '../shared/shortcuts-panel/shortcuts-panel';\n\nimport type { UseTimePickerProps, UseTimePickerReturn } from './types';\n\nexport type { UseTimePickerProps, UseTimePickerReturn };\n\nexport const useTimePicker = ({\n value,\n onChange,\n timeFormat = '24h',\n defaultDate = dayjs(),\n}: UseTimePickerProps): UseTimePickerReturn => {\n const onBackspaceRef = useRef<() => void>(() => {});\n\n const { isOpen, setIsOpen, popoverRef, inputRef } = usePopoverState({\n onBackspace: useCallback(() => onBackspaceRef.current(), []),\n });\n\n const timeState = useTimeState({\n initialHour: value?.hour() ?? DEFAULT_START_HOUR,\n initialMinute: value?.minute() ?? DEFAULT_MINUTE,\n timeFormat,\n });\n const {\n hour,\n minute,\n amPm,\n hour24,\n handleHourChange,\n handleMinuteChange,\n handleAmPmChange,\n resetTime,\n } = timeState;\n\n const anchor = value ?? defaultDate;\n\n const buildDisplayTime = (base: Dayjs): Dayjs =>\n base.hour(hour24).minute(minute).second(0).millisecond(0);\n\n const buildTimeOnAnchor = (time: Dayjs): Dayjs =>\n anchor.hour(time.hour()).minute(time.minute()).second(0).millisecond(0);\n\n const displayValue = isOpen ? buildDisplayTime(anchor) : value;\n\n const resetAll = () => {\n resetTime(\n value?.hour() ?? DEFAULT_START_HOUR,\n value?.minute() ?? DEFAULT_MINUTE\n );\n };\n\n const handleBackspace = () => {\n if (value !== null) {\n onChange(null);\n resetAll();\n }\n };\n\n useEffect(() => {\n onBackspaceRef.current = handleBackspace;\n });\n\n const handleOpenChange = (open: boolean) => {\n resetAll();\n setIsOpen(open);\n };\n\n const handleApply = () => {\n const next = buildDisplayTime(anchor);\n onChange(next);\n setIsOpen(false);\n };\n\n const handleApplyShortcut = (shortcutValue: ShortcutValueDayjs) => {\n const time: Dayjs | null = Array.isArray(shortcutValue)\n ? shortcutValue[0]\n : shortcutValue;\n onChange(time ? buildTimeOnAnchor(time) : null);\n setIsOpen(false);\n };\n\n return {\n isOpen,\n hour,\n minute,\n amPm,\n displayValue,\n handleOpenChange,\n handleApply,\n handleHourChange,\n handleMinuteChange,\n handleAmPmChange,\n handleApplyShortcut,\n inputRef,\n popoverRef,\n };\n};\n"],"names":["useCallback","useEffect","useRef","dayjs","DEFAULT_MINUTE","DEFAULT_START_HOUR","usePopoverState","useTimeState","useTimePicker","value","onChange","timeFormat","defaultDate","onBackspaceRef","isOpen","setIsOpen","popoverRef","inputRef","onBackspace","current","timeState","initialHour","hour","initialMinute","minute","amPm","hour24","handleHourChange","handleMinuteChange","handleAmPmChange","resetTime","anchor","buildDisplayTime","base","second","millisecond","buildTimeOnAnchor","time","displayValue","resetAll","handleBackspace","handleOpenChange","open","handleApply","next","handleApplyShortcut","shortcutValue","Array","isArray"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,QAAQ;AAGvD,OAAOC,WAAW,QAAQ;AAE1B,SAASC,cAAc,EAAEC,kBAAkB,QAAQ,yBAAsB;AACzE,SAASC,eAAe,QAAQ,uCAAoC;AACpE,SAASC,YAAY,QAAQ,oCAAiC;AAO9D,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,KAAK,EACLC,QAAQ,EACRC,aAAa,KAAK,EAClBC,cAAcT,OAAO,EACF;IACnB,MAAMU,iBAAiBX,OAAmB,KAAO;IAEjD,MAAM,EAAEY,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGX,gBAAgB;QAClEY,aAAalB,YAAY,IAAMa,eAAeM,OAAO,IAAI,EAAE;IAC7D;IAEA,MAAMC,YAAYb,aAAa;QAC7Bc,aAAaZ,OAAOa,UAAUjB;QAC9BkB,eAAed,OAAOe,YAAYpB;QAClCO;IACF;IACA,MAAM,EACJW,IAAI,EACJE,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,gBAAgB,EAChBC,kBAAkB,EAClBC,gBAAgB,EAChBC,SAAS,EACV,GAAGV;IAEJ,MAAMW,SAAStB,SAASG;IAExB,MAAMoB,mBAAmB,CAACC,OACxBA,KAAKX,IAAI,CAACI,QAAQF,MAAM,CAACA,QAAQU,MAAM,CAAC,GAAGC,WAAW,CAAC;IAEzD,MAAMC,oBAAoB,CAACC,OACzBN,OAAOT,IAAI,CAACe,KAAKf,IAAI,IAAIE,MAAM,CAACa,KAAKb,MAAM,IAAIU,MAAM,CAAC,GAAGC,WAAW,CAAC;IAEvE,MAAMG,eAAexB,SAASkB,iBAAiBD,UAAUtB;IAEzD,MAAM8B,WAAW;QACfT,UACErB,OAAOa,UAAUjB,oBACjBI,OAAOe,YAAYpB;IAEvB;IAEA,MAAMoC,kBAAkB;QACtB,IAAI/B,UAAU,MAAM;YAClBC,SAAS;YACT6B;QACF;IACF;IAEAtC,UAAU;QACRY,eAAeM,OAAO,GAAGqB;IAC3B;IAEA,MAAMC,mBAAmB,CAACC;QACxBH;QACAxB,UAAU2B;IACZ;IAEA,MAAMC,cAAc;QAClB,MAAMC,OAAOZ,iBAAiBD;QAC9BrB,SAASkC;QACT7B,UAAU;IACZ;IAEA,MAAM8B,sBAAsB,CAACC;QAC3B,MAAMT,OAAqBU,MAAMC,OAAO,CAACF,iBACrCA,aAAa,CAAC,EAAE,GAChBA;QACJpC,SAAS2B,OAAOD,kBAAkBC,QAAQ;QAC1CtB,UAAU;IACZ;IAEA,OAAO;QACLD;QACAQ;QACAE;QACAC;QACAa;QACAG;QACAE;QACAhB;QACAC;QACAC;QACAgB;QACA5B;QACAD;IACF;AACF,EAAE"}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { TimeRangePicker } from "./time-range-picker";
|
|
2
|
+
export type { TimeRangePickerProps, ShortcutItem } from "./time-range-picker";
|
|
3
|
+
export type { UseTimeRangePickerProps, UseTimeRangePickerReturn } from "./types";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ui/core/date-time-pickers/time-range-picker/index.ts"],"sourcesContent":["export { TimeRangePicker } from './time-range-picker';\nexport type { TimeRangePickerProps, ShortcutItem } from './time-range-picker';\nexport type {\n UseTimeRangePickerProps,\n UseTimeRangePickerReturn,\n} from './types';\n"],"names":["TimeRangePicker"],"mappings":"AAAA,SAASA,eAAe,QAAQ,yBAAsB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { JSX } from "react";
|
|
2
|
+
import type { Dayjs } from "dayjs";
|
|
3
|
+
import type { ShortcutItem } from "../shared/shortcuts-panel/shortcuts-panel";
|
|
4
|
+
import { type DateInput, type DateRangeValueProps } from "../utils/date-input";
|
|
5
|
+
import type { TimeFormat } from "../utils/format-utils";
|
|
6
|
+
export type { ShortcutItem };
|
|
7
|
+
export interface TimeRangePickerProps<T extends DateInput = Dayjs> extends DateRangeValueProps<T> {
|
|
8
|
+
timeFormat?: TimeFormat;
|
|
9
|
+
format?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
shortcuts?: ShortcutItem[];
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function TimeRangePicker<T extends DateInput = Dayjs>({ value, onChange, timeFormat, format, placeholder, shortcuts, defaultDate, valueType, className }: TimeRangePickerProps<T>): JSX.Element;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../../../../lib/utils.js";
|
|
3
|
+
import { Button } from "../../button/button.js";
|
|
4
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../../popover/popover.js";
|
|
5
|
+
import { DateTimeInput } from "../shared/date-time-input/date-time-input.js";
|
|
6
|
+
import { ShortcutsPanel } from "../shared/shortcuts-panel/shortcuts-panel.js";
|
|
7
|
+
import { TimePickerPanel } from "../shared/time-picker-panel/time-picker-panel.js";
|
|
8
|
+
import { normalizeIn, normalizeOutRange, normalizeShortcutValue, resolveValueType } from "../utils/date-input.js";
|
|
9
|
+
import { useTimeRangePicker } from "./use-time-range-picker.js";
|
|
10
|
+
export function TimeRangePicker({ value, onChange, timeFormat = '24h', format, placeholder, shortcuts, defaultDate, valueType, className }) {
|
|
11
|
+
const displayFormat = format ?? (timeFormat === '12h' ? 'h:mm A' : 'HH:mm');
|
|
12
|
+
const resolvedType = resolveValueType(value[0] ?? value[1], defaultDate, valueType);
|
|
13
|
+
const djValue = [
|
|
14
|
+
normalizeIn(value[0]),
|
|
15
|
+
normalizeIn(value[1])
|
|
16
|
+
];
|
|
17
|
+
const djDefault = defaultDate != null ? normalizeIn(defaultDate) ?? undefined : undefined;
|
|
18
|
+
const handleChange = (range)=>{
|
|
19
|
+
onChange(normalizeOutRange(range, resolvedType));
|
|
20
|
+
};
|
|
21
|
+
const djShortcuts = shortcuts?.map((shortcut)=>({
|
|
22
|
+
...shortcut,
|
|
23
|
+
getValue: ()=>normalizeShortcutValue(shortcut.getValue())
|
|
24
|
+
}));
|
|
25
|
+
const { isOpen, step, tempStartHour, tempStartMinute, tempEndHour, tempEndMinute, startAmPm, endAmPm, displayValue, handleOpenChange, handleSetStep, handleStartHourChange, handleStartMinuteChange, handleEndHourChange, handleEndMinuteChange, handleStartAmPmChange, handleEndAmPmChange, handleNext, handleApply, handleApplyShortcut, inputRef, popoverRef } = useTimeRangePicker({
|
|
26
|
+
value: djValue,
|
|
27
|
+
onChange: handleChange,
|
|
28
|
+
timeFormat,
|
|
29
|
+
defaultDate: djDefault
|
|
30
|
+
});
|
|
31
|
+
const currentHour = step === 'start' ? tempStartHour : tempEndHour;
|
|
32
|
+
const currentMinute = step === 'start' ? tempStartMinute : tempEndMinute;
|
|
33
|
+
const currentAmPm = step === 'start' ? startAmPm : endAmPm;
|
|
34
|
+
const onHourChange = step === 'start' ? handleStartHourChange : handleEndHourChange;
|
|
35
|
+
const onMinuteChange = step === 'start' ? handleStartMinuteChange : handleEndMinuteChange;
|
|
36
|
+
const onAmPmChange = step === 'start' ? handleStartAmPmChange : handleEndAmPmChange;
|
|
37
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
38
|
+
"data-slot": "time-range-picker",
|
|
39
|
+
className: cn('relative w-full', className),
|
|
40
|
+
children: /*#__PURE__*/ _jsxs(Popover, {
|
|
41
|
+
open: isOpen,
|
|
42
|
+
onOpenChange: handleOpenChange,
|
|
43
|
+
children: [
|
|
44
|
+
/*#__PURE__*/ _jsx(PopoverTrigger, {
|
|
45
|
+
render: /*#__PURE__*/ _jsx("div", {
|
|
46
|
+
ref: inputRef,
|
|
47
|
+
className: "w-full"
|
|
48
|
+
}),
|
|
49
|
+
children: /*#__PURE__*/ _jsx(DateTimeInput, {
|
|
50
|
+
value: displayValue,
|
|
51
|
+
format: displayFormat,
|
|
52
|
+
placeholder: placeholder,
|
|
53
|
+
isOpen: isOpen,
|
|
54
|
+
variant: "time",
|
|
55
|
+
ariaLabel: "Time range picker",
|
|
56
|
+
activeRangePart: isOpen ? step : undefined,
|
|
57
|
+
onRangePartClick: isOpen ? handleSetStep : undefined
|
|
58
|
+
})
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ _jsx(PopoverContent, {
|
|
61
|
+
ref: popoverRef,
|
|
62
|
+
className: "rounded-xl w-auto p-0",
|
|
63
|
+
side: "bottom",
|
|
64
|
+
align: "start",
|
|
65
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
66
|
+
"data-slot": "time-range-picker-content",
|
|
67
|
+
className: "flex flex-col",
|
|
68
|
+
children: [
|
|
69
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
70
|
+
className: "flex flex-row",
|
|
71
|
+
children: [
|
|
72
|
+
djShortcuts && djShortcuts.length > 0 && /*#__PURE__*/ _jsx(ShortcutsPanel, {
|
|
73
|
+
shortcuts: djShortcuts,
|
|
74
|
+
onShortcutClick: handleApplyShortcut
|
|
75
|
+
}),
|
|
76
|
+
timeFormat === '12h' ? /*#__PURE__*/ _jsx(TimePickerPanel, {
|
|
77
|
+
hour: currentHour,
|
|
78
|
+
minute: currentMinute,
|
|
79
|
+
amPm: currentAmPm,
|
|
80
|
+
timeFormat: "12h",
|
|
81
|
+
onHourChange: onHourChange,
|
|
82
|
+
onMinuteChange: onMinuteChange,
|
|
83
|
+
onAmPmChange: onAmPmChange
|
|
84
|
+
}) : /*#__PURE__*/ _jsx(TimePickerPanel, {
|
|
85
|
+
hour: currentHour,
|
|
86
|
+
minute: currentMinute,
|
|
87
|
+
timeFormat: "24h",
|
|
88
|
+
onHourChange: onHourChange,
|
|
89
|
+
onMinuteChange: onMinuteChange
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
}),
|
|
93
|
+
/*#__PURE__*/ _jsx("div", {
|
|
94
|
+
className: "flex p-2 border-t border-border",
|
|
95
|
+
children: step === 'start' ? /*#__PURE__*/ _jsx(Button, {
|
|
96
|
+
variant: "secondary",
|
|
97
|
+
className: "w-full",
|
|
98
|
+
onClick: handleNext,
|
|
99
|
+
children: "Next"
|
|
100
|
+
}) : /*#__PURE__*/ _jsx(Button, {
|
|
101
|
+
variant: "secondary",
|
|
102
|
+
className: "w-full",
|
|
103
|
+
onClick: handleApply,
|
|
104
|
+
children: "Apply"
|
|
105
|
+
})
|
|
106
|
+
})
|
|
107
|
+
]
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=time-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.tsx"],"sourcesContent":["import type { JSX } from 'react';\n\nimport type { Dayjs } from 'dayjs';\n\nimport { cn } from '../../../../../lib/utils';\nimport { Button } from '../../button/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover/popover';\nimport { DateTimeInput } from '../shared/date-time-input/date-time-input';\nimport { ShortcutsPanel } from '../shared/shortcuts-panel/shortcuts-panel';\nimport type { ShortcutItem } from '../shared/shortcuts-panel/shortcuts-panel';\nimport { TimePickerPanel } from '../shared/time-picker-panel/time-picker-panel';\nimport {\n type DateInput,\n type DateRangeValueProps,\n normalizeIn,\n normalizeOutRange,\n normalizeShortcutValue,\n resolveValueType,\n} from '../utils/date-input';\nimport type { TimeFormat } from '../utils/format-utils';\n\nimport { useTimeRangePicker } from './use-time-range-picker';\n\nexport type { ShortcutItem };\n\nexport interface TimeRangePickerProps<\n T extends DateInput = Dayjs,\n> extends DateRangeValueProps<T> {\n timeFormat?: TimeFormat;\n format?: string;\n placeholder?: string;\n shortcuts?: ShortcutItem[];\n className?: string;\n}\n\nexport function TimeRangePicker<T extends DateInput = Dayjs>({\n value,\n onChange,\n timeFormat = '24h',\n format,\n placeholder,\n shortcuts,\n defaultDate,\n valueType,\n className,\n}: TimeRangePickerProps<T>): JSX.Element {\n const displayFormat = format ?? (timeFormat === '12h' ? 'h:mm A' : 'HH:mm');\n const resolvedType = resolveValueType(\n value[0] ?? value[1],\n defaultDate,\n valueType\n );\n const djValue: [Dayjs | null, Dayjs | null] = [\n normalizeIn(value[0]),\n normalizeIn(value[1]),\n ];\n const djDefault =\n defaultDate != null ? (normalizeIn(defaultDate) ?? undefined) : undefined;\n\n const handleChange = (range: [Dayjs | null, Dayjs | null]) => {\n onChange(normalizeOutRange<T>(range, resolvedType));\n };\n\n const djShortcuts = shortcuts?.map((shortcut) => ({\n ...shortcut,\n getValue: () => normalizeShortcutValue(shortcut.getValue()),\n }));\n\n const {\n isOpen,\n step,\n tempStartHour,\n tempStartMinute,\n tempEndHour,\n tempEndMinute,\n startAmPm,\n endAmPm,\n displayValue,\n handleOpenChange,\n handleSetStep,\n handleStartHourChange,\n handleStartMinuteChange,\n handleEndHourChange,\n handleEndMinuteChange,\n handleStartAmPmChange,\n handleEndAmPmChange,\n handleNext,\n handleApply,\n handleApplyShortcut,\n inputRef,\n popoverRef,\n } = useTimeRangePicker({\n value: djValue,\n onChange: handleChange,\n timeFormat,\n defaultDate: djDefault,\n });\n\n const currentHour = step === 'start' ? tempStartHour : tempEndHour;\n const currentMinute = step === 'start' ? tempStartMinute : tempEndMinute;\n const currentAmPm = step === 'start' ? startAmPm : endAmPm;\n const onHourChange =\n step === 'start' ? handleStartHourChange : handleEndHourChange;\n const onMinuteChange =\n step === 'start' ? handleStartMinuteChange : handleEndMinuteChange;\n const onAmPmChange =\n step === 'start' ? handleStartAmPmChange : handleEndAmPmChange;\n\n return (\n <div\n data-slot=\"time-range-picker\"\n className={cn('relative w-full', className)}\n >\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverTrigger render={<div ref={inputRef} className=\"w-full\" />}>\n <DateTimeInput\n value={displayValue}\n format={displayFormat}\n placeholder={placeholder}\n isOpen={isOpen}\n variant=\"time\"\n ariaLabel=\"Time range picker\"\n activeRangePart={isOpen ? step : undefined}\n onRangePartClick={isOpen ? handleSetStep : undefined}\n />\n </PopoverTrigger>\n <PopoverContent\n ref={popoverRef}\n className=\"rounded-xl w-auto p-0\"\n side=\"bottom\"\n align=\"start\"\n >\n <div data-slot=\"time-range-picker-content\" className=\"flex flex-col\">\n <div className=\"flex flex-row\">\n {djShortcuts && djShortcuts.length > 0 && (\n <ShortcutsPanel\n shortcuts={djShortcuts}\n onShortcutClick={handleApplyShortcut}\n />\n )}\n {timeFormat === '12h' ? (\n <TimePickerPanel\n hour={currentHour}\n minute={currentMinute}\n amPm={currentAmPm}\n timeFormat=\"12h\"\n onHourChange={onHourChange}\n onMinuteChange={onMinuteChange}\n onAmPmChange={onAmPmChange}\n />\n ) : (\n <TimePickerPanel\n hour={currentHour}\n minute={currentMinute}\n timeFormat=\"24h\"\n onHourChange={onHourChange}\n onMinuteChange={onMinuteChange}\n />\n )}\n </div>\n <div className=\"flex p-2 border-t border-border\">\n {step === 'start' ? (\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n onClick={handleNext}\n >\n Next\n </Button>\n ) : (\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n onClick={handleApply}\n >\n Apply\n </Button>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"],"names":["cn","Button","Popover","PopoverContent","PopoverTrigger","DateTimeInput","ShortcutsPanel","TimePickerPanel","normalizeIn","normalizeOutRange","normalizeShortcutValue","resolveValueType","useTimeRangePicker","TimeRangePicker","value","onChange","timeFormat","format","placeholder","shortcuts","defaultDate","valueType","className","displayFormat","resolvedType","djValue","djDefault","undefined","handleChange","range","djShortcuts","map","shortcut","getValue","isOpen","step","tempStartHour","tempStartMinute","tempEndHour","tempEndMinute","startAmPm","endAmPm","displayValue","handleOpenChange","handleSetStep","handleStartHourChange","handleStartMinuteChange","handleEndHourChange","handleEndMinuteChange","handleStartAmPmChange","handleEndAmPmChange","handleNext","handleApply","handleApplyShortcut","inputRef","popoverRef","currentHour","currentMinute","currentAmPm","onHourChange","onMinuteChange","onAmPmChange","div","data-slot","open","onOpenChange","render","ref","variant","ariaLabel","activeRangePart","onRangePartClick","side","align","length","onShortcutClick","hour","minute","amPm","onClick"],"mappings":"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"}
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
import { Dayjs } from
|
|
2
|
-
import { RangeSelectionStep } from
|
|
3
|
-
import {
|
|
4
|
-
import { AmPm, TimeFormat } from
|
|
1
|
+
import type { Dayjs } from "dayjs";
|
|
2
|
+
import type { RangeSelectionStep } from "../shared/hooks/use-range-step-manager";
|
|
3
|
+
import type { ShortcutValueDayjs } from "../shared/shortcuts-panel/shortcuts-panel";
|
|
4
|
+
import type { AmPm, TimeFormat } from "../utils/format-utils";
|
|
5
5
|
export interface UseTimeRangePickerProps {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
value: [Dayjs | null, Dayjs | null];
|
|
7
|
+
onChange: (range: [Dayjs | null, Dayjs | null]) => void;
|
|
8
|
+
timeFormat?: TimeFormat;
|
|
9
|
+
defaultDate?: Dayjs;
|
|
10
10
|
}
|
|
11
11
|
export interface UseTimeRangePickerReturn {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
export interface TimeRangePickerProps extends UseTimeRangePickerProps {
|
|
36
|
-
format?: string;
|
|
37
|
-
placeholder?: string;
|
|
38
|
-
shortcuts?: ShortcutItem[];
|
|
39
|
-
className?: string;
|
|
12
|
+
isOpen: boolean;
|
|
13
|
+
step: RangeSelectionStep;
|
|
14
|
+
tempStartHour: number;
|
|
15
|
+
tempStartMinute: number;
|
|
16
|
+
tempEndHour: number;
|
|
17
|
+
tempEndMinute: number;
|
|
18
|
+
startAmPm: AmPm;
|
|
19
|
+
endAmPm: AmPm;
|
|
20
|
+
displayValue: [Dayjs | null, Dayjs | null];
|
|
21
|
+
handleOpenChange: (open: boolean) => void;
|
|
22
|
+
handleSetStep: (step: RangeSelectionStep) => void;
|
|
23
|
+
handleStartHourChange: (hour: number) => void;
|
|
24
|
+
handleStartMinuteChange: (minute: number) => void;
|
|
25
|
+
handleEndHourChange: (hour: number) => void;
|
|
26
|
+
handleEndMinuteChange: (minute: number) => void;
|
|
27
|
+
handleStartAmPmChange: (amPm: AmPm) => void;
|
|
28
|
+
handleEndAmPmChange: (amPm: AmPm) => void;
|
|
29
|
+
handleNext: () => void;
|
|
30
|
+
handleApply: () => void;
|
|
31
|
+
handleApplyShortcut: (shortcutValue: ShortcutValueDayjs) => void;
|
|
32
|
+
inputRef: React.RefObject<HTMLDivElement>;
|
|
33
|
+
popoverRef: React.RefObject<HTMLDivElement>;
|
|
40
34
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ui/core/date-time-pickers/time-range-picker/types.ts"],"sourcesContent":["import type { Dayjs } from 'dayjs';\n\nimport type { RangeSelectionStep } from '../shared/hooks/use-range-step-manager';\nimport type { ShortcutValueDayjs } from '../shared/shortcuts-panel/shortcuts-panel';\nimport type { AmPm, TimeFormat } from '../utils/format-utils';\n\nexport interface UseTimeRangePickerProps {\n value: [Dayjs | null, Dayjs | null];\n onChange: (range: [Dayjs | null, Dayjs | null]) => void;\n timeFormat?: TimeFormat;\n defaultDate?: Dayjs;\n}\n\nexport interface UseTimeRangePickerReturn {\n isOpen: boolean;\n step: RangeSelectionStep;\n tempStartHour: number;\n tempStartMinute: number;\n tempEndHour: number;\n tempEndMinute: number;\n startAmPm: AmPm;\n endAmPm: AmPm;\n displayValue: [Dayjs | null, Dayjs | null];\n handleOpenChange: (open: boolean) => void;\n handleSetStep: (step: RangeSelectionStep) => void;\n handleStartHourChange: (hour: number) => void;\n handleStartMinuteChange: (minute: number) => void;\n handleEndHourChange: (hour: number) => void;\n handleEndMinuteChange: (minute: number) => void;\n handleStartAmPmChange: (amPm: AmPm) => void;\n handleEndAmPmChange: (amPm: AmPm) => void;\n handleNext: () => void;\n handleApply: () => void;\n handleApplyShortcut: (shortcutValue: ShortcutValueDayjs) => void;\n inputRef: React.RefObject<HTMLDivElement>;\n popoverRef: React.RefObject<HTMLDivElement>;\n}\n"],"names":[],"mappings":"AAaA,WAuBC"}
|
package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UseTimeRangePickerProps, UseTimeRangePickerReturn } from
|
|
1
|
+
import type { UseTimeRangePickerProps, UseTimeRangePickerReturn } from "./types";
|
|
2
2
|
export type { UseTimeRangePickerProps, UseTimeRangePickerReturn };
|
|
3
|
-
export declare const useTimeRangePicker: ({ value, onChange, timeFormat, defaultDate
|
|
3
|
+
export declare const useTimeRangePicker: ({ value, onChange, timeFormat, defaultDate }: UseTimeRangePickerProps) => UseTimeRangePickerReturn;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import dayjs from "dayjs";
|
|
3
|
+
import { DEFAULT_MINUTE, DEFAULT_START_HOUR, END_OF_DAY_HOUR, END_OF_DAY_MINUTE } from "../shared/constants.js";
|
|
4
|
+
import { usePopoverState } from "../shared/hooks/use-popover-state.js";
|
|
5
|
+
import { useRangeStepManager } from "../shared/hooks/use-range-step-manager.js";
|
|
6
|
+
import { useTimeState } from "../shared/hooks/use-time-state.js";
|
|
7
|
+
const buildTimeOnAnchor = (base, hour24, minute)=>base.hour(hour24).minute(minute).second(0).millisecond(0);
|
|
8
|
+
export const useTimeRangePicker = ({ value, onChange, timeFormat = '24h', defaultDate = dayjs() })=>{
|
|
9
|
+
const onBackspaceRef = useRef(()=>{});
|
|
10
|
+
const { isOpen, setIsOpen, popoverRef, inputRef } = usePopoverState({
|
|
11
|
+
onBackspace: useCallback(()=>onBackspaceRef.current(), [])
|
|
12
|
+
});
|
|
13
|
+
const stepMgr = useRangeStepManager();
|
|
14
|
+
const { step, handleNext, handleBack: stepBack, resetStep } = stepMgr;
|
|
15
|
+
const startAnchor = value[0] ?? value[1] ?? defaultDate;
|
|
16
|
+
const endAnchor = value[1] ?? value[0] ?? defaultDate;
|
|
17
|
+
const startTime = useTimeState({
|
|
18
|
+
initialHour: value[0]?.hour() ?? DEFAULT_START_HOUR,
|
|
19
|
+
initialMinute: value[0]?.minute() ?? DEFAULT_MINUTE,
|
|
20
|
+
timeFormat
|
|
21
|
+
});
|
|
22
|
+
const { hour: tempStartHour, minute: tempStartMinute, amPm: startAmPm, hour24: startHour24, handleHourChange: handleStartHourChange, handleMinuteChange: handleStartMinuteChange, handleAmPmChange: handleStartAmPmChange, resetTime: resetStartTime } = startTime;
|
|
23
|
+
const endTime = useTimeState({
|
|
24
|
+
initialHour: value[1]?.hour() ?? END_OF_DAY_HOUR,
|
|
25
|
+
initialMinute: value[1]?.minute() ?? END_OF_DAY_MINUTE,
|
|
26
|
+
timeFormat
|
|
27
|
+
});
|
|
28
|
+
const { hour: tempEndHour, minute: tempEndMinute, amPm: endAmPm, hour24: endHour24, handleHourChange: handleEndHourChange, handleMinuteChange: handleEndMinuteChange, handleAmPmChange: handleEndAmPmChange, resetTime: resetEndTime } = endTime;
|
|
29
|
+
const resetAll = useCallback(()=>{
|
|
30
|
+
resetStep();
|
|
31
|
+
resetStartTime(value[0]?.hour() ?? DEFAULT_START_HOUR, value[0]?.minute() ?? DEFAULT_MINUTE);
|
|
32
|
+
resetEndTime(value[1]?.hour() ?? END_OF_DAY_HOUR, value[1]?.minute() ?? END_OF_DAY_MINUTE);
|
|
33
|
+
}, [
|
|
34
|
+
value,
|
|
35
|
+
resetStep,
|
|
36
|
+
resetStartTime,
|
|
37
|
+
resetEndTime
|
|
38
|
+
]);
|
|
39
|
+
const handleBackspace = useCallback(()=>{
|
|
40
|
+
if (step === 'end') {
|
|
41
|
+
stepBack();
|
|
42
|
+
resetEndTime(value[1]?.hour() ?? END_OF_DAY_HOUR, value[1]?.minute() ?? END_OF_DAY_MINUTE);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (value[0] !== null || value[1] !== null) {
|
|
46
|
+
onChange([
|
|
47
|
+
null,
|
|
48
|
+
null
|
|
49
|
+
]);
|
|
50
|
+
resetAll();
|
|
51
|
+
}
|
|
52
|
+
}, [
|
|
53
|
+
step,
|
|
54
|
+
stepBack,
|
|
55
|
+
value,
|
|
56
|
+
onChange,
|
|
57
|
+
resetAll,
|
|
58
|
+
resetEndTime
|
|
59
|
+
]);
|
|
60
|
+
useEffect(()=>{
|
|
61
|
+
onBackspaceRef.current = handleBackspace;
|
|
62
|
+
}, [
|
|
63
|
+
handleBackspace
|
|
64
|
+
]);
|
|
65
|
+
const handleOpenChange = (open)=>{
|
|
66
|
+
resetAll();
|
|
67
|
+
setIsOpen(open);
|
|
68
|
+
};
|
|
69
|
+
const handleSetStep = (s)=>{
|
|
70
|
+
if (s === 'start') {
|
|
71
|
+
stepBack();
|
|
72
|
+
} else {
|
|
73
|
+
handleNext();
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const handleApply = ()=>{
|
|
77
|
+
const start = buildTimeOnAnchor(startAnchor, startHour24, tempStartMinute);
|
|
78
|
+
const end = buildTimeOnAnchor(endAnchor, endHour24, tempEndMinute);
|
|
79
|
+
const ordered = start.isAfter(end) ? [
|
|
80
|
+
end,
|
|
81
|
+
start
|
|
82
|
+
] : [
|
|
83
|
+
start,
|
|
84
|
+
end
|
|
85
|
+
];
|
|
86
|
+
onChange(ordered);
|
|
87
|
+
setIsOpen(false);
|
|
88
|
+
resetStep();
|
|
89
|
+
};
|
|
90
|
+
const handleApplyShortcut = (shortcutValue)=>{
|
|
91
|
+
const range = Array.isArray(shortcutValue) ? shortcutValue : [
|
|
92
|
+
shortcutValue,
|
|
93
|
+
shortcutValue
|
|
94
|
+
];
|
|
95
|
+
onChange([
|
|
96
|
+
range[0] ? buildTimeOnAnchor(startAnchor, range[0].hour(), range[0].minute()) : null,
|
|
97
|
+
range[1] ? buildTimeOnAnchor(endAnchor, range[1].hour(), range[1].minute()) : null
|
|
98
|
+
]);
|
|
99
|
+
setIsOpen(false);
|
|
100
|
+
resetStep();
|
|
101
|
+
};
|
|
102
|
+
const displayValue = useMemo(()=>{
|
|
103
|
+
const startWithTime = buildTimeOnAnchor(startAnchor, startHour24, tempStartMinute);
|
|
104
|
+
const endWithTime = buildTimeOnAnchor(endAnchor, endHour24, tempEndMinute);
|
|
105
|
+
return isOpen ? [
|
|
106
|
+
startWithTime,
|
|
107
|
+
endWithTime
|
|
108
|
+
] : value;
|
|
109
|
+
}, [
|
|
110
|
+
isOpen,
|
|
111
|
+
value,
|
|
112
|
+
startAnchor,
|
|
113
|
+
endAnchor,
|
|
114
|
+
startHour24,
|
|
115
|
+
tempStartMinute,
|
|
116
|
+
endHour24,
|
|
117
|
+
tempEndMinute
|
|
118
|
+
]);
|
|
119
|
+
return {
|
|
120
|
+
isOpen,
|
|
121
|
+
step,
|
|
122
|
+
tempStartHour,
|
|
123
|
+
tempStartMinute,
|
|
124
|
+
tempEndHour,
|
|
125
|
+
tempEndMinute,
|
|
126
|
+
startAmPm,
|
|
127
|
+
endAmPm,
|
|
128
|
+
displayValue,
|
|
129
|
+
handleOpenChange,
|
|
130
|
+
handleSetStep,
|
|
131
|
+
handleStartHourChange,
|
|
132
|
+
handleStartMinuteChange,
|
|
133
|
+
handleEndHourChange,
|
|
134
|
+
handleEndMinuteChange,
|
|
135
|
+
handleStartAmPmChange,
|
|
136
|
+
handleEndAmPmChange,
|
|
137
|
+
handleNext,
|
|
138
|
+
handleApply,
|
|
139
|
+
handleApplyShortcut,
|
|
140
|
+
inputRef,
|
|
141
|
+
popoverRef
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=use-time-range-picker.js.map
|
package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\n\nimport {\n DEFAULT_MINUTE,\n DEFAULT_START_HOUR,\n END_OF_DAY_HOUR,\n END_OF_DAY_MINUTE,\n} from '../shared/constants';\nimport { usePopoverState } from '../shared/hooks/use-popover-state';\nimport type { RangeSelectionStep } from '../shared/hooks/use-range-step-manager';\nimport { useRangeStepManager } from '../shared/hooks/use-range-step-manager';\nimport { useTimeState } from '../shared/hooks/use-time-state';\nimport type { ShortcutValueDayjs } from '../shared/shortcuts-panel/shortcuts-panel';\n\nimport type {\n UseTimeRangePickerProps,\n UseTimeRangePickerReturn,\n} from './types';\n\nexport type { UseTimeRangePickerProps, UseTimeRangePickerReturn };\n\nconst buildTimeOnAnchor = (\n base: Dayjs,\n hour24: number,\n minute: number\n): Dayjs => base.hour(hour24).minute(minute).second(0).millisecond(0);\n\nexport const useTimeRangePicker = ({\n value,\n onChange,\n timeFormat = '24h',\n defaultDate = dayjs(),\n}: UseTimeRangePickerProps): UseTimeRangePickerReturn => {\n const onBackspaceRef = useRef<() => void>(() => {});\n\n const { isOpen, setIsOpen, popoverRef, inputRef } = usePopoverState({\n onBackspace: useCallback(() => onBackspaceRef.current(), []),\n });\n\n const stepMgr = useRangeStepManager();\n const { step, handleNext, handleBack: stepBack, resetStep } = stepMgr;\n\n const startAnchor = value[0] ?? value[1] ?? defaultDate;\n const endAnchor = value[1] ?? value[0] ?? defaultDate;\n\n const startTime = useTimeState({\n initialHour: value[0]?.hour() ?? DEFAULT_START_HOUR,\n initialMinute: value[0]?.minute() ?? DEFAULT_MINUTE,\n timeFormat,\n });\n const {\n hour: tempStartHour,\n minute: tempStartMinute,\n amPm: startAmPm,\n hour24: startHour24,\n handleHourChange: handleStartHourChange,\n handleMinuteChange: handleStartMinuteChange,\n handleAmPmChange: handleStartAmPmChange,\n resetTime: resetStartTime,\n } = startTime;\n\n const endTime = useTimeState({\n initialHour: value[1]?.hour() ?? END_OF_DAY_HOUR,\n initialMinute: value[1]?.minute() ?? END_OF_DAY_MINUTE,\n timeFormat,\n });\n const {\n hour: tempEndHour,\n minute: tempEndMinute,\n amPm: endAmPm,\n hour24: endHour24,\n handleHourChange: handleEndHourChange,\n handleMinuteChange: handleEndMinuteChange,\n handleAmPmChange: handleEndAmPmChange,\n resetTime: resetEndTime,\n } = endTime;\n\n const resetAll = useCallback(() => {\n resetStep();\n resetStartTime(\n value[0]?.hour() ?? DEFAULT_START_HOUR,\n value[0]?.minute() ?? DEFAULT_MINUTE\n );\n resetEndTime(\n value[1]?.hour() ?? END_OF_DAY_HOUR,\n value[1]?.minute() ?? END_OF_DAY_MINUTE\n );\n }, [value, resetStep, resetStartTime, resetEndTime]);\n\n const handleBackspace = useCallback(() => {\n if (step === 'end') {\n stepBack();\n resetEndTime(\n value[1]?.hour() ?? END_OF_DAY_HOUR,\n value[1]?.minute() ?? END_OF_DAY_MINUTE\n );\n return;\n }\n if (value[0] !== null || value[1] !== null) {\n onChange([null, null]);\n resetAll();\n }\n }, [step, stepBack, value, onChange, resetAll, resetEndTime]);\n\n useEffect(() => {\n onBackspaceRef.current = handleBackspace;\n }, [handleBackspace]);\n\n const handleOpenChange = (open: boolean) => {\n resetAll();\n setIsOpen(open);\n };\n\n const handleSetStep = (s: RangeSelectionStep) => {\n if (s === 'start') {\n stepBack();\n } else {\n handleNext();\n }\n };\n\n const handleApply = () => {\n const start = buildTimeOnAnchor(startAnchor, startHour24, tempStartMinute);\n const end = buildTimeOnAnchor(endAnchor, endHour24, tempEndMinute);\n const ordered: [Dayjs, Dayjs] = start.isAfter(end)\n ? [end, start]\n : [start, end];\n onChange(ordered);\n setIsOpen(false);\n resetStep();\n };\n\n const handleApplyShortcut = (shortcutValue: ShortcutValueDayjs) => {\n const range: [Dayjs | null, Dayjs | null] = Array.isArray(shortcutValue)\n ? shortcutValue\n : [shortcutValue, shortcutValue];\n\n onChange([\n range[0]\n ? buildTimeOnAnchor(startAnchor, range[0].hour(), range[0].minute())\n : null,\n range[1]\n ? buildTimeOnAnchor(endAnchor, range[1].hour(), range[1].minute())\n : null,\n ]);\n setIsOpen(false);\n resetStep();\n };\n\n const displayValue: [Dayjs | null, Dayjs | null] = useMemo(() => {\n const startWithTime = buildTimeOnAnchor(\n startAnchor,\n startHour24,\n tempStartMinute\n );\n const endWithTime = buildTimeOnAnchor(endAnchor, endHour24, tempEndMinute);\n return isOpen ? [startWithTime, endWithTime] : value;\n }, [\n isOpen,\n value,\n startAnchor,\n endAnchor,\n startHour24,\n tempStartMinute,\n endHour24,\n tempEndMinute,\n ]);\n\n return {\n isOpen,\n step,\n tempStartHour,\n tempStartMinute,\n tempEndHour,\n tempEndMinute,\n startAmPm,\n endAmPm,\n displayValue,\n handleOpenChange,\n handleSetStep,\n handleStartHourChange,\n handleStartMinuteChange,\n handleEndHourChange,\n handleEndMinuteChange,\n handleStartAmPmChange,\n handleEndAmPmChange,\n handleNext,\n handleApply,\n handleApplyShortcut,\n inputRef,\n popoverRef,\n };\n};\n"],"names":["useCallback","useEffect","useMemo","useRef","dayjs","DEFAULT_MINUTE","DEFAULT_START_HOUR","END_OF_DAY_HOUR","END_OF_DAY_MINUTE","usePopoverState","useRangeStepManager","useTimeState","buildTimeOnAnchor","base","hour24","minute","hour","second","millisecond","useTimeRangePicker","value","onChange","timeFormat","defaultDate","onBackspaceRef","isOpen","setIsOpen","popoverRef","inputRef","onBackspace","current","stepMgr","step","handleNext","handleBack","stepBack","resetStep","startAnchor","endAnchor","startTime","initialHour","initialMinute","tempStartHour","tempStartMinute","amPm","startAmPm","startHour24","handleHourChange","handleStartHourChange","handleMinuteChange","handleStartMinuteChange","handleAmPmChange","handleStartAmPmChange","resetTime","resetStartTime","endTime","tempEndHour","tempEndMinute","endAmPm","endHour24","handleEndHourChange","handleEndMinuteChange","handleEndAmPmChange","resetEndTime","resetAll","handleBackspace","handleOpenChange","open","handleSetStep","s","handleApply","start","end","ordered","isAfter","handleApplyShortcut","shortcutValue","range","Array","isArray","displayValue","startWithTime","endWithTime"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Dayjs } from "dayjs";
|
|
2
|
+
/** A date value accepted by picker public APIs. */
|
|
3
|
+
export type DateInput = Date | Dayjs;
|
|
4
|
+
/** Resolved output type for picker value binding. */
|
|
5
|
+
export type DateValueType = "date" | "dayjs";
|
|
6
|
+
export type ShortcutValueInput = DateInput | null | [DateInput, DateInput] | [DateInput | null, DateInput | null];
|
|
7
|
+
export type ShortcutValueDayjs = Dayjs | null | [Dayjs, Dayjs] | [Dayjs | null, Dayjs | null];
|
|
8
|
+
/**
|
|
9
|
+
* Converts a consumer date value to an internal Dayjs instance.
|
|
10
|
+
*/
|
|
11
|
+
export declare const normalizeIn: (input: DateInput | null | undefined) => Dayjs | null;
|
|
12
|
+
/**
|
|
13
|
+
* Infers the consumer value type from the current value or default date.
|
|
14
|
+
*
|
|
15
|
+
* When both `value` and `defaultDate` are null on first render, falls back to
|
|
16
|
+
* `explicit` or `'dayjs'` for backwards compatibility.
|
|
17
|
+
*/
|
|
18
|
+
export declare const resolveValueType: (value: DateInput | null | undefined, defaultDate?: DateInput | null, explicit?: DateValueType) => DateValueType;
|
|
19
|
+
/**
|
|
20
|
+
* Converts an internal Dayjs value back to Date or Dayjs, preserving the instant.
|
|
21
|
+
*/
|
|
22
|
+
export declare const normalizeOut: <T extends DateInput>(d: Dayjs | null, type: DateValueType) => T | null;
|
|
23
|
+
/** Converts a Dayjs range back to the consumer's value type. */
|
|
24
|
+
export declare const normalizeOutRange: <T extends DateInput>(range: [Dayjs | null, Dayjs | null], type: DateValueType) => [T | null, T | null];
|
|
25
|
+
/** Normalizes shortcut values to internal Dayjs before passing to picker hooks. */
|
|
26
|
+
export declare const normalizeShortcutValue: (value: ShortcutValueInput) => ShortcutValueDayjs;
|
|
27
|
+
/** Shared value-binding props for single-value pickers. */
|
|
28
|
+
export interface DateValueProps<T extends DateInput = Dayjs> {
|
|
29
|
+
/** Current value. Accepts Dayjs or native Date. */
|
|
30
|
+
value: T | null;
|
|
31
|
+
/** Called when the value changes. Returns the same type as `value`. */
|
|
32
|
+
onChange: (date: T | null) => void;
|
|
33
|
+
/** Fallback date when value is empty. Same type as `value`. */
|
|
34
|
+
defaultDate?: T;
|
|
35
|
+
/**
|
|
36
|
+
* Output type when `value` and `defaultDate` are both null on first render.
|
|
37
|
+
* @default 'dayjs'
|
|
38
|
+
*/
|
|
39
|
+
valueType?: DateValueType;
|
|
40
|
+
}
|
|
41
|
+
/** Shared value-binding props for range pickers. */
|
|
42
|
+
export interface DateRangeValueProps<T extends DateInput = Dayjs> {
|
|
43
|
+
/** Current range. Each bound accepts Dayjs or native Date. */
|
|
44
|
+
value: [T | null, T | null];
|
|
45
|
+
/**
|
|
46
|
+
* Called when the range changes. Returns the same element type as `value`.
|
|
47
|
+
*/
|
|
48
|
+
onChange: (range: [T | null, T | null]) => void;
|
|
49
|
+
/** Fallback date when a bound is empty. Same type as range elements. */
|
|
50
|
+
defaultDate?: T;
|
|
51
|
+
/**
|
|
52
|
+
* Output type when range values and `defaultDate` are all null on first render.
|
|
53
|
+
* @default 'dayjs'
|
|
54
|
+
*/
|
|
55
|
+
valueType?: DateValueType;
|
|
56
|
+
}
|