@vuu-ui/vuu-ui-controls 2.1.17 → 2.1.19-beta.1
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/package.json +13 -15
- package/types/calendar/useCalendar.d.ts +3 -3
- package/types/calendar/useSelection.d.ts +1 -1
- package/types/date-input/DateInput.d.ts +1 -1
- package/types/date-picker/DatePicker.d.ts +1 -1
- package/types/date-picker/DatePickerContext.d.ts +2 -2
- package/types/date-picker/DatePickerPanel.d.ts +1 -1
- package/types/instrument-picker/useTablePicker.d.ts +4 -4
- package/types/split-button/useSplitButton.d.ts +120 -120
- package/types/tabs-next/hooks/useOverflow.d.ts +1 -1
- package/types/tabstrip/Tab.d.ts +1 -1
- package/types/tabstrip/useTabstrip.d.ts +1 -1
- package/types/toolbar/useToolbar.d.ts +1 -1
- package/cjs/calendar/Calendar.css.js +0 -6
- package/cjs/calendar/Calendar.css.js.map +0 -1
- package/cjs/calendar/Calendar.js +0 -93
- package/cjs/calendar/Calendar.js.map +0 -1
- package/cjs/calendar/internal/CalendarCarousel.css.js +0 -6
- package/cjs/calendar/internal/CalendarCarousel.css.js.map +0 -1
- package/cjs/calendar/internal/CalendarCarousel.js +0 -75
- package/cjs/calendar/internal/CalendarCarousel.js.map +0 -1
- package/cjs/calendar/internal/CalendarContext.js +0 -19
- package/cjs/calendar/internal/CalendarContext.js.map +0 -1
- package/cjs/calendar/internal/CalendarDay.css.js +0 -6
- package/cjs/calendar/internal/CalendarDay.css.js.map +0 -1
- package/cjs/calendar/internal/CalendarDay.js +0 -86
- package/cjs/calendar/internal/CalendarDay.js.map +0 -1
- package/cjs/calendar/internal/CalendarMonth.css.js +0 -6
- package/cjs/calendar/internal/CalendarMonth.css.js.map +0 -1
- package/cjs/calendar/internal/CalendarMonth.js +0 -71
- package/cjs/calendar/internal/CalendarMonth.js.map +0 -1
- package/cjs/calendar/internal/CalendarNavigation.css.js +0 -6
- package/cjs/calendar/internal/CalendarNavigation.css.js.map +0 -1
- package/cjs/calendar/internal/CalendarNavigation.js +0 -236
- package/cjs/calendar/internal/CalendarNavigation.js.map +0 -1
- package/cjs/calendar/internal/CalendarWeekHeader.css.js +0 -6
- package/cjs/calendar/internal/CalendarWeekHeader.css.js.map +0 -1
- package/cjs/calendar/internal/CalendarWeekHeader.js +0 -43
- package/cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
- package/cjs/calendar/internal/useFocusManagement.js +0 -66
- package/cjs/calendar/internal/useFocusManagement.js.map +0 -1
- package/cjs/calendar/internal/utils.js +0 -64
- package/cjs/calendar/internal/utils.js.map +0 -1
- package/cjs/calendar/useCalendar.js +0 -163
- package/cjs/calendar/useCalendar.js.map +0 -1
- package/cjs/calendar/useCalendarDay.js +0 -80
- package/cjs/calendar/useCalendarDay.js.map +0 -1
- package/cjs/calendar/useSelection.js +0 -248
- package/cjs/calendar/useSelection.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.css.js +0 -6
- package/cjs/column-picker/ColumnPicker.css.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.js +0 -128
- package/cjs/column-picker/ColumnPicker.js.map +0 -1
- package/cjs/column-picker/ColumnSearch.css.js +0 -6
- package/cjs/column-picker/ColumnSearch.css.js.map +0 -1
- package/cjs/column-picker/ColumnSearch.js +0 -82
- package/cjs/column-picker/ColumnSearch.js.map +0 -1
- package/cjs/common-hooks/selectionTypes.js +0 -18
- package/cjs/common-hooks/selectionTypes.js.map +0 -1
- package/cjs/common-hooks/use-resize-observer.js +0 -123
- package/cjs/common-hooks/use-resize-observer.js.map +0 -1
- package/cjs/common-hooks/useControlled.js +0 -58
- package/cjs/common-hooks/useControlled.js.map +0 -1
- package/cjs/context-panel-provider/ContextPanelProvider.js +0 -99
- package/cjs/context-panel-provider/ContextPanelProvider.js.map +0 -1
- package/cjs/cycle-state-button/CycleStateButton.js +0 -50
- package/cjs/cycle-state-button/CycleStateButton.js.map +0 -1
- package/cjs/date-input/DateInput.css.js +0 -6
- package/cjs/date-input/DateInput.css.js.map +0 -1
- package/cjs/date-input/DateInput.js +0 -277
- package/cjs/date-input/DateInput.js.map +0 -1
- package/cjs/date-picker/DatePicker.js +0 -169
- package/cjs/date-picker/DatePicker.js.map +0 -1
- package/cjs/date-picker/DatePickerContext.js +0 -26
- package/cjs/date-picker/DatePickerContext.js.map +0 -1
- package/cjs/date-picker/DatePickerPanel.css.js +0 -6
- package/cjs/date-picker/DatePickerPanel.css.js.map +0 -1
- package/cjs/date-picker/DatePickerPanel.js +0 -146
- package/cjs/date-picker/DatePickerPanel.js.map +0 -1
- package/cjs/drag-drop/DragDropProvider.js +0 -145
- package/cjs/drag-drop/DragDropProvider.js.map +0 -1
- package/cjs/drag-drop/DragDropState.js +0 -36
- package/cjs/drag-drop/DragDropState.js.map +0 -1
- package/cjs/drag-drop/Draggable.css.js +0 -6
- package/cjs/drag-drop/Draggable.css.js.map +0 -1
- package/cjs/drag-drop/Draggable.js +0 -90
- package/cjs/drag-drop/Draggable.js.map +0 -1
- package/cjs/drag-drop/dragDropTypes.js +0 -8
- package/cjs/drag-drop/dragDropTypes.js.map +0 -1
- package/cjs/drag-drop/drop-target-utils.js +0 -245
- package/cjs/drag-drop/drop-target-utils.js.map +0 -1
- package/cjs/drag-drop/useAutoScroll.js +0 -71
- package/cjs/drag-drop/useAutoScroll.js.map +0 -1
- package/cjs/drag-drop/useDragDisplacers.js +0 -160
- package/cjs/drag-drop/useDragDisplacers.js.map +0 -1
- package/cjs/drag-drop/useDragDrop.js +0 -504
- package/cjs/drag-drop/useDragDrop.js.map +0 -1
- package/cjs/drag-drop/useDragDropCopy.js +0 -34
- package/cjs/drag-drop/useDragDropCopy.js.map +0 -1
- package/cjs/drag-drop/useDragDropIndicator.js +0 -251
- package/cjs/drag-drop/useDragDropIndicator.js.map +0 -1
- package/cjs/drag-drop/useDragDropNaturalMovement.js +0 -265
- package/cjs/drag-drop/useDragDropNaturalMovement.js.map +0 -1
- package/cjs/drag-drop/useDropIndicator.js +0 -27
- package/cjs/drag-drop/useDropIndicator.js.map +0 -1
- package/cjs/drag-drop/useGlobalDragDrop.js +0 -89
- package/cjs/drag-drop/useGlobalDragDrop.js.map +0 -1
- package/cjs/editable/useEditableText.js +0 -211
- package/cjs/editable/useEditableText.js.map +0 -1
- package/cjs/editable-label/EditableLabel.css.js +0 -6
- package/cjs/editable-label/EditableLabel.css.js.map +0 -1
- package/cjs/editable-label/EditableLabel.js +0 -143
- package/cjs/editable-label/EditableLabel.js.map +0 -1
- package/cjs/expando-input/ExpandoInput.css.js +0 -6
- package/cjs/expando-input/ExpandoInput.css.js.map +0 -1
- package/cjs/expando-input/ExpandoInput.js +0 -53
- package/cjs/expando-input/ExpandoInput.js.map +0 -1
- package/cjs/hover-overlay/HoverOverlay.js +0 -96
- package/cjs/hover-overlay/HoverOverlay.js.map +0 -1
- package/cjs/icon-button/Icon.css.js +0 -6
- package/cjs/icon-button/Icon.css.js.map +0 -1
- package/cjs/icon-button/Icon.js +0 -37
- package/cjs/icon-button/Icon.js.map +0 -1
- package/cjs/icon-button/IconButton.css.js +0 -6
- package/cjs/icon-button/IconButton.css.js.map +0 -1
- package/cjs/icon-button/IconButton.js +0 -26
- package/cjs/icon-button/IconButton.js.map +0 -1
- package/cjs/icon-button/ToggleIconButton.css.js +0 -6
- package/cjs/icon-button/ToggleIconButton.css.js.map +0 -1
- package/cjs/icon-button/ToggleIconButton.js +0 -39
- package/cjs/icon-button/ToggleIconButton.js.map +0 -1
- package/cjs/index.js +0 -170
- package/cjs/index.js.map +0 -1
- package/cjs/instrument-picker/TablePicker.css.js +0 -6
- package/cjs/instrument-picker/TablePicker.css.js.map +0 -1
- package/cjs/instrument-picker/TablePicker.js +0 -130
- package/cjs/instrument-picker/TablePicker.js.map +0 -1
- package/cjs/instrument-picker/useTablePicker.js +0 -150
- package/cjs/instrument-picker/useTablePicker.js.map +0 -1
- package/cjs/measured-container/MeasuredContainer.css.js +0 -6
- package/cjs/measured-container/MeasuredContainer.css.js.map +0 -1
- package/cjs/measured-container/MeasuredContainer.js +0 -72
- package/cjs/measured-container/MeasuredContainer.js.map +0 -1
- package/cjs/measured-container/useMeasuredContainer.js +0 -167
- package/cjs/measured-container/useMeasuredContainer.js.map +0 -1
- package/cjs/modal-provider/ModalProvider.js +0 -143
- package/cjs/modal-provider/ModalProvider.js.map +0 -1
- package/cjs/overflow-container/OverflowContainer.css.js +0 -6
- package/cjs/overflow-container/OverflowContainer.css.js.map +0 -1
- package/cjs/overflow-container/OverflowContainer.js +0 -143
- package/cjs/overflow-container/OverflowContainer.js.map +0 -1
- package/cjs/overflow-container/overflow-utils.js +0 -286
- package/cjs/overflow-container/overflow-utils.js.map +0 -1
- package/cjs/overflow-container/useOverflowContainer.js +0 -143
- package/cjs/overflow-container/useOverflowContainer.js.map +0 -1
- package/cjs/price-ticker/PriceTicker.css.js +0 -6
- package/cjs/price-ticker/PriceTicker.css.js.map +0 -1
- package/cjs/price-ticker/PriceTicker.js +0 -50
- package/cjs/price-ticker/PriceTicker.js.map +0 -1
- package/cjs/prompt/Prompt.css.js +0 -6
- package/cjs/prompt/Prompt.css.js.map +0 -1
- package/cjs/prompt/Prompt.js +0 -142
- package/cjs/prompt/Prompt.js.map +0 -1
- package/cjs/sortable-list/SortableList.js +0 -37
- package/cjs/sortable-list/SortableList.js.map +0 -1
- package/cjs/split-button/SplitButton.css.js +0 -6
- package/cjs/split-button/SplitButton.css.js.map +0 -1
- package/cjs/split-button/SplitButton.js +0 -84
- package/cjs/split-button/SplitButton.js.map +0 -1
- package/cjs/split-button/SplitStateButton.css.js +0 -6
- package/cjs/split-button/SplitStateButton.css.js.map +0 -1
- package/cjs/split-button/SplitStateButton.js +0 -31
- package/cjs/split-button/SplitStateButton.js.map +0 -1
- package/cjs/split-button/useSplitButton.js +0 -84
- package/cjs/split-button/useSplitButton.js.map +0 -1
- package/cjs/table-search/SearchCell.css.js +0 -6
- package/cjs/table-search/SearchCell.css.js.map +0 -1
- package/cjs/table-search/SearchCell.js +0 -32
- package/cjs/table-search/SearchCell.js.map +0 -1
- package/cjs/table-search/TableSearch.css.js +0 -6
- package/cjs/table-search/TableSearch.css.js.map +0 -1
- package/cjs/table-search/TableSearch.js +0 -89
- package/cjs/table-search/TableSearch.js.map +0 -1
- package/cjs/table-search/useTableSearch.js +0 -39
- package/cjs/table-search/useTableSearch.js.map +0 -1
- package/cjs/tabs-next/TabBar.css.js +0 -6
- package/cjs/tabs-next/TabBar.css.js.map +0 -1
- package/cjs/tabs-next/TabBar.js +0 -41
- package/cjs/tabs-next/TabBar.js.map +0 -1
- package/cjs/tabs-next/TabListNext.css.js +0 -6
- package/cjs/tabs-next/TabListNext.css.js.map +0 -1
- package/cjs/tabs-next/TabListNext.js +0 -124
- package/cjs/tabs-next/TabListNext.js.map +0 -1
- package/cjs/tabs-next/TabNext.css.js +0 -6
- package/cjs/tabs-next/TabNext.css.js.map +0 -1
- package/cjs/tabs-next/TabNext.js +0 -110
- package/cjs/tabs-next/TabNext.js.map +0 -1
- package/cjs/tabs-next/TabNextAction.js +0 -35
- package/cjs/tabs-next/TabNextAction.js.map +0 -1
- package/cjs/tabs-next/TabNextContext.js +0 -23
- package/cjs/tabs-next/TabNextContext.js.map +0 -1
- package/cjs/tabs-next/TabNextPanel.css.js +0 -6
- package/cjs/tabs-next/TabNextPanel.css.js.map +0 -1
- package/cjs/tabs-next/TabNextPanel.js +0 -77
- package/cjs/tabs-next/TabNextPanel.js.map +0 -1
- package/cjs/tabs-next/TabNextTrigger.css.js +0 -6
- package/cjs/tabs-next/TabNextTrigger.css.js.map +0 -1
- package/cjs/tabs-next/TabNextTrigger.js +0 -74
- package/cjs/tabs-next/TabNextTrigger.js.map +0 -1
- package/cjs/tabs-next/TabOverflowList.css.js +0 -6
- package/cjs/tabs-next/TabOverflowList.css.js.map +0 -1
- package/cjs/tabs-next/TabOverflowList.js +0 -130
- package/cjs/tabs-next/TabOverflowList.js.map +0 -1
- package/cjs/tabs-next/TabsNext.js +0 -174
- package/cjs/tabs-next/TabsNext.js.map +0 -1
- package/cjs/tabs-next/TabsNextContext.js +0 -33
- package/cjs/tabs-next/TabsNextContext.js.map +0 -1
- package/cjs/tabs-next/hooks/useCollection.js +0 -91
- package/cjs/tabs-next/hooks/useCollection.js.map +0 -1
- package/cjs/tabs-next/hooks/useFocusOutside.js +0 -24
- package/cjs/tabs-next/hooks/useFocusOutside.js.map +0 -1
- package/cjs/tabs-next/hooks/useOverflow.js +0 -138
- package/cjs/tabs-next/hooks/useOverflow.js.map +0 -1
- package/cjs/tabstrip/Tab.css.js +0 -6
- package/cjs/tabstrip/Tab.css.js.map +0 -1
- package/cjs/tabstrip/Tab.js +0 -153
- package/cjs/tabstrip/Tab.js.map +0 -1
- package/cjs/tabstrip/TabMenu.css.js +0 -6
- package/cjs/tabstrip/TabMenu.css.js.map +0 -1
- package/cjs/tabstrip/TabMenu.js +0 -72
- package/cjs/tabstrip/TabMenu.js.map +0 -1
- package/cjs/tabstrip/TabMenuOptions.js +0 -20
- package/cjs/tabstrip/TabMenuOptions.js.map +0 -1
- package/cjs/tabstrip/Tabstrip.css.js +0 -6
- package/cjs/tabstrip/Tabstrip.css.js.map +0 -1
- package/cjs/tabstrip/Tabstrip.js +0 -160
- package/cjs/tabstrip/Tabstrip.js.map +0 -1
- package/cjs/tabstrip/tabstrip-dom-utils.js +0 -19
- package/cjs/tabstrip/tabstrip-dom-utils.js.map +0 -1
- package/cjs/tabstrip/useAnimatedSelectionThumb.js +0 -85
- package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
- package/cjs/tabstrip/useKeyboardNavigation.js +0 -247
- package/cjs/tabstrip/useKeyboardNavigation.js.map +0 -1
- package/cjs/tabstrip/useSelection.js +0 -60
- package/cjs/tabstrip/useSelection.js.map +0 -1
- package/cjs/tabstrip/useTabstrip.js +0 -233
- package/cjs/tabstrip/useTabstrip.js.map +0 -1
- package/cjs/time-input/MaskedInput.js +0 -377
- package/cjs/time-input/MaskedInput.js.map +0 -1
- package/cjs/time-input/TimeInput.css.js +0 -6
- package/cjs/time-input/TimeInput.css.js.map +0 -1
- package/cjs/time-input/TimeInput.js +0 -56
- package/cjs/time-input/TimeInput.js.map +0 -1
- package/cjs/time-input/useTimeInput.js +0 -121
- package/cjs/time-input/useTimeInput.js.map +0 -1
- package/cjs/toolbar/Toolbar.css.js +0 -6
- package/cjs/toolbar/Toolbar.css.js.map +0 -1
- package/cjs/toolbar/Toolbar.js +0 -90
- package/cjs/toolbar/Toolbar.js.map +0 -1
- package/cjs/toolbar/toolbar-dom-utils.js +0 -18
- package/cjs/toolbar/toolbar-dom-utils.js.map +0 -1
- package/cjs/toolbar/useKeyboardNavigation.js +0 -305
- package/cjs/toolbar/useKeyboardNavigation.js.map +0 -1
- package/cjs/toolbar/useSelection.js +0 -93
- package/cjs/toolbar/useSelection.js.map +0 -1
- package/cjs/toolbar/useToolbar.js +0 -100
- package/cjs/toolbar/useToolbar.js.map +0 -1
- package/cjs/utils/escapeRegExp.js +0 -9
- package/cjs/utils/escapeRegExp.js.map +0 -1
- package/cjs/utils/forwardCallbackProps.js +0 -22
- package/cjs/utils/forwardCallbackProps.js.map +0 -1
- package/cjs/utils/isOverflowElement.js +0 -8
- package/cjs/utils/isOverflowElement.js.map +0 -1
- package/cjs/utils/isPlainObject.js +0 -6
- package/cjs/utils/isPlainObject.js.map +0 -1
- package/cjs/vuu-date-picker/VuuDatePicker.js +0 -122
- package/cjs/vuu-date-picker/VuuDatePicker.js.map +0 -1
- package/cjs/vuu-input/VuuInput.css.js +0 -6
- package/cjs/vuu-input/VuuInput.css.js.map +0 -1
- package/cjs/vuu-input/VuuInput.js +0 -102
- package/cjs/vuu-input/VuuInput.js.map +0 -1
- package/cjs/vuu-time-picker/VuuTimePicker.css.js +0 -6
- package/cjs/vuu-time-picker/VuuTimePicker.css.js.map +0 -1
- package/cjs/vuu-time-picker/VuuTimePicker.js +0 -37
- package/cjs/vuu-time-picker/VuuTimePicker.js.map +0 -1
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js +0 -6
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +0 -1
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js +0 -80
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js +0 -176
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
- package/esm/calendar/Calendar.css.js +0 -4
- package/esm/calendar/Calendar.css.js.map +0 -1
- package/esm/calendar/Calendar.js +0 -91
- package/esm/calendar/Calendar.js.map +0 -1
- package/esm/calendar/internal/CalendarCarousel.css.js +0 -4
- package/esm/calendar/internal/CalendarCarousel.css.js.map +0 -1
- package/esm/calendar/internal/CalendarCarousel.js +0 -73
- package/esm/calendar/internal/CalendarCarousel.js.map +0 -1
- package/esm/calendar/internal/CalendarContext.js +0 -16
- package/esm/calendar/internal/CalendarContext.js.map +0 -1
- package/esm/calendar/internal/CalendarDay.css.js +0 -4
- package/esm/calendar/internal/CalendarDay.css.js.map +0 -1
- package/esm/calendar/internal/CalendarDay.js +0 -84
- package/esm/calendar/internal/CalendarDay.js.map +0 -1
- package/esm/calendar/internal/CalendarMonth.css.js +0 -4
- package/esm/calendar/internal/CalendarMonth.css.js.map +0 -1
- package/esm/calendar/internal/CalendarMonth.js +0 -69
- package/esm/calendar/internal/CalendarMonth.js.map +0 -1
- package/esm/calendar/internal/CalendarNavigation.css.js +0 -4
- package/esm/calendar/internal/CalendarNavigation.css.js.map +0 -1
- package/esm/calendar/internal/CalendarNavigation.js +0 -234
- package/esm/calendar/internal/CalendarNavigation.js.map +0 -1
- package/esm/calendar/internal/CalendarWeekHeader.css.js +0 -4
- package/esm/calendar/internal/CalendarWeekHeader.css.js.map +0 -1
- package/esm/calendar/internal/CalendarWeekHeader.js +0 -41
- package/esm/calendar/internal/CalendarWeekHeader.js.map +0 -1
- package/esm/calendar/internal/useFocusManagement.js +0 -64
- package/esm/calendar/internal/useFocusManagement.js.map +0 -1
- package/esm/calendar/internal/utils.js +0 -55
- package/esm/calendar/internal/utils.js.map +0 -1
- package/esm/calendar/useCalendar.js +0 -161
- package/esm/calendar/useCalendar.js.map +0 -1
- package/esm/calendar/useCalendarDay.js +0 -78
- package/esm/calendar/useCalendarDay.js.map +0 -1
- package/esm/calendar/useSelection.js +0 -243
- package/esm/calendar/useSelection.js.map +0 -1
- package/esm/column-picker/ColumnPicker.css.js +0 -4
- package/esm/column-picker/ColumnPicker.css.js.map +0 -1
- package/esm/column-picker/ColumnPicker.js +0 -126
- package/esm/column-picker/ColumnPicker.js.map +0 -1
- package/esm/column-picker/ColumnSearch.css.js +0 -4
- package/esm/column-picker/ColumnSearch.css.js.map +0 -1
- package/esm/column-picker/ColumnSearch.js +0 -80
- package/esm/column-picker/ColumnSearch.js.map +0 -1
- package/esm/common-hooks/selectionTypes.js +0 -10
- package/esm/common-hooks/selectionTypes.js.map +0 -1
- package/esm/common-hooks/use-resize-observer.js +0 -118
- package/esm/common-hooks/use-resize-observer.js.map +0 -1
- package/esm/common-hooks/useControlled.js +0 -56
- package/esm/common-hooks/useControlled.js.map +0 -1
- package/esm/context-panel-provider/ContextPanelProvider.js +0 -94
- package/esm/context-panel-provider/ContextPanelProvider.js.map +0 -1
- package/esm/cycle-state-button/CycleStateButton.js +0 -48
- package/esm/cycle-state-button/CycleStateButton.js.map +0 -1
- package/esm/date-input/DateInput.css.js +0 -4
- package/esm/date-input/DateInput.css.js.map +0 -1
- package/esm/date-input/DateInput.js +0 -275
- package/esm/date-input/DateInput.js.map +0 -1
- package/esm/date-picker/DatePicker.js +0 -167
- package/esm/date-picker/DatePicker.js.map +0 -1
- package/esm/date-picker/DatePickerContext.js +0 -23
- package/esm/date-picker/DatePickerContext.js.map +0 -1
- package/esm/date-picker/DatePickerPanel.css.js +0 -4
- package/esm/date-picker/DatePickerPanel.css.js.map +0 -1
- package/esm/date-picker/DatePickerPanel.js +0 -144
- package/esm/date-picker/DatePickerPanel.js.map +0 -1
- package/esm/drag-drop/DragDropProvider.js +0 -142
- package/esm/drag-drop/DragDropProvider.js.map +0 -1
- package/esm/drag-drop/DragDropState.js +0 -34
- package/esm/drag-drop/DragDropState.js.map +0 -1
- package/esm/drag-drop/Draggable.css.js +0 -4
- package/esm/drag-drop/Draggable.css.js.map +0 -1
- package/esm/drag-drop/Draggable.js +0 -85
- package/esm/drag-drop/Draggable.js.map +0 -1
- package/esm/drag-drop/dragDropTypes.js +0 -5
- package/esm/drag-drop/dragDropTypes.js.map +0 -1
- package/esm/drag-drop/drop-target-utils.js +0 -228
- package/esm/drag-drop/drop-target-utils.js.map +0 -1
- package/esm/drag-drop/useAutoScroll.js +0 -69
- package/esm/drag-drop/useAutoScroll.js.map +0 -1
- package/esm/drag-drop/useDragDisplacers.js +0 -158
- package/esm/drag-drop/useDragDisplacers.js.map +0 -1
- package/esm/drag-drop/useDragDrop.js +0 -502
- package/esm/drag-drop/useDragDrop.js.map +0 -1
- package/esm/drag-drop/useDragDropCopy.js +0 -31
- package/esm/drag-drop/useDragDropCopy.js.map +0 -1
- package/esm/drag-drop/useDragDropIndicator.js +0 -249
- package/esm/drag-drop/useDragDropIndicator.js.map +0 -1
- package/esm/drag-drop/useDragDropNaturalMovement.js +0 -263
- package/esm/drag-drop/useDragDropNaturalMovement.js.map +0 -1
- package/esm/drag-drop/useDropIndicator.js +0 -25
- package/esm/drag-drop/useDropIndicator.js.map +0 -1
- package/esm/drag-drop/useGlobalDragDrop.js +0 -87
- package/esm/drag-drop/useGlobalDragDrop.js.map +0 -1
- package/esm/editable/useEditableText.js +0 -209
- package/esm/editable/useEditableText.js.map +0 -1
- package/esm/editable-label/EditableLabel.css.js +0 -4
- package/esm/editable-label/EditableLabel.css.js.map +0 -1
- package/esm/editable-label/EditableLabel.js +0 -140
- package/esm/editable-label/EditableLabel.js.map +0 -1
- package/esm/expando-input/ExpandoInput.css.js +0 -4
- package/esm/expando-input/ExpandoInput.css.js.map +0 -1
- package/esm/expando-input/ExpandoInput.js +0 -51
- package/esm/expando-input/ExpandoInput.js.map +0 -1
- package/esm/hover-overlay/HoverOverlay.js +0 -94
- package/esm/hover-overlay/HoverOverlay.js.map +0 -1
- package/esm/icon-button/Icon.css.js +0 -4
- package/esm/icon-button/Icon.css.js.map +0 -1
- package/esm/icon-button/Icon.js +0 -35
- package/esm/icon-button/Icon.js.map +0 -1
- package/esm/icon-button/IconButton.css.js +0 -4
- package/esm/icon-button/IconButton.css.js.map +0 -1
- package/esm/icon-button/IconButton.js +0 -24
- package/esm/icon-button/IconButton.js.map +0 -1
- package/esm/icon-button/ToggleIconButton.css.js +0 -4
- package/esm/icon-button/ToggleIconButton.css.js.map +0 -1
- package/esm/icon-button/ToggleIconButton.js +0 -37
- package/esm/icon-button/ToggleIconButton.js.map +0 -1
- package/esm/index.js +0 -59
- package/esm/index.js.map +0 -1
- package/esm/instrument-picker/TablePicker.css.js +0 -4
- package/esm/instrument-picker/TablePicker.css.js.map +0 -1
- package/esm/instrument-picker/TablePicker.js +0 -128
- package/esm/instrument-picker/TablePicker.js.map +0 -1
- package/esm/instrument-picker/useTablePicker.js +0 -148
- package/esm/instrument-picker/useTablePicker.js.map +0 -1
- package/esm/measured-container/MeasuredContainer.css.js +0 -4
- package/esm/measured-container/MeasuredContainer.css.js.map +0 -1
- package/esm/measured-container/MeasuredContainer.js +0 -70
- package/esm/measured-container/MeasuredContainer.js.map +0 -1
- package/esm/measured-container/useMeasuredContainer.js +0 -164
- package/esm/measured-container/useMeasuredContainer.js.map +0 -1
- package/esm/modal-provider/ModalProvider.js +0 -140
- package/esm/modal-provider/ModalProvider.js.map +0 -1
- package/esm/overflow-container/OverflowContainer.css.js +0 -4
- package/esm/overflow-container/OverflowContainer.css.js.map +0 -1
- package/esm/overflow-container/OverflowContainer.js +0 -141
- package/esm/overflow-container/OverflowContainer.js.map +0 -1
- package/esm/overflow-container/overflow-utils.js +0 -272
- package/esm/overflow-container/overflow-utils.js.map +0 -1
- package/esm/overflow-container/useOverflowContainer.js +0 -141
- package/esm/overflow-container/useOverflowContainer.js.map +0 -1
- package/esm/price-ticker/PriceTicker.css.js +0 -4
- package/esm/price-ticker/PriceTicker.css.js.map +0 -1
- package/esm/price-ticker/PriceTicker.js +0 -48
- package/esm/price-ticker/PriceTicker.js.map +0 -1
- package/esm/prompt/Prompt.css.js +0 -4
- package/esm/prompt/Prompt.css.js.map +0 -1
- package/esm/prompt/Prompt.js +0 -140
- package/esm/prompt/Prompt.js.map +0 -1
- package/esm/sortable-list/SortableList.js +0 -34
- package/esm/sortable-list/SortableList.js.map +0 -1
- package/esm/split-button/SplitButton.css.js +0 -4
- package/esm/split-button/SplitButton.css.js.map +0 -1
- package/esm/split-button/SplitButton.js +0 -82
- package/esm/split-button/SplitButton.js.map +0 -1
- package/esm/split-button/SplitStateButton.css.js +0 -4
- package/esm/split-button/SplitStateButton.css.js.map +0 -1
- package/esm/split-button/SplitStateButton.js +0 -29
- package/esm/split-button/SplitStateButton.js.map +0 -1
- package/esm/split-button/useSplitButton.js +0 -82
- package/esm/split-button/useSplitButton.js.map +0 -1
- package/esm/table-search/SearchCell.css.js +0 -4
- package/esm/table-search/SearchCell.css.js.map +0 -1
- package/esm/table-search/SearchCell.js +0 -30
- package/esm/table-search/SearchCell.js.map +0 -1
- package/esm/table-search/TableSearch.css.js +0 -4
- package/esm/table-search/TableSearch.css.js.map +0 -1
- package/esm/table-search/TableSearch.js +0 -87
- package/esm/table-search/TableSearch.js.map +0 -1
- package/esm/table-search/useTableSearch.js +0 -37
- package/esm/table-search/useTableSearch.js.map +0 -1
- package/esm/tabs-next/TabBar.css.js +0 -4
- package/esm/tabs-next/TabBar.css.js.map +0 -1
- package/esm/tabs-next/TabBar.js +0 -39
- package/esm/tabs-next/TabBar.js.map +0 -1
- package/esm/tabs-next/TabListNext.css.js +0 -4
- package/esm/tabs-next/TabListNext.css.js.map +0 -1
- package/esm/tabs-next/TabListNext.js +0 -122
- package/esm/tabs-next/TabListNext.js.map +0 -1
- package/esm/tabs-next/TabNext.css.js +0 -4
- package/esm/tabs-next/TabNext.css.js.map +0 -1
- package/esm/tabs-next/TabNext.js +0 -108
- package/esm/tabs-next/TabNext.js.map +0 -1
- package/esm/tabs-next/TabNextAction.js +0 -33
- package/esm/tabs-next/TabNextAction.js.map +0 -1
- package/esm/tabs-next/TabNextContext.js +0 -20
- package/esm/tabs-next/TabNextContext.js.map +0 -1
- package/esm/tabs-next/TabNextPanel.css.js +0 -4
- package/esm/tabs-next/TabNextPanel.css.js.map +0 -1
- package/esm/tabs-next/TabNextPanel.js +0 -75
- package/esm/tabs-next/TabNextPanel.js.map +0 -1
- package/esm/tabs-next/TabNextTrigger.css.js +0 -4
- package/esm/tabs-next/TabNextTrigger.css.js.map +0 -1
- package/esm/tabs-next/TabNextTrigger.js +0 -72
- package/esm/tabs-next/TabNextTrigger.js.map +0 -1
- package/esm/tabs-next/TabOverflowList.css.js +0 -4
- package/esm/tabs-next/TabOverflowList.css.js.map +0 -1
- package/esm/tabs-next/TabOverflowList.js +0 -128
- package/esm/tabs-next/TabOverflowList.js.map +0 -1
- package/esm/tabs-next/TabsNext.js +0 -172
- package/esm/tabs-next/TabsNext.js.map +0 -1
- package/esm/tabs-next/TabsNextContext.js +0 -30
- package/esm/tabs-next/TabsNextContext.js.map +0 -1
- package/esm/tabs-next/hooks/useCollection.js +0 -89
- package/esm/tabs-next/hooks/useCollection.js.map +0 -1
- package/esm/tabs-next/hooks/useFocusOutside.js +0 -22
- package/esm/tabs-next/hooks/useFocusOutside.js.map +0 -1
- package/esm/tabs-next/hooks/useOverflow.js +0 -136
- package/esm/tabs-next/hooks/useOverflow.js.map +0 -1
- package/esm/tabstrip/Tab.css.js +0 -4
- package/esm/tabstrip/Tab.css.js.map +0 -1
- package/esm/tabstrip/Tab.js +0 -151
- package/esm/tabstrip/Tab.js.map +0 -1
- package/esm/tabstrip/TabMenu.css.js +0 -4
- package/esm/tabstrip/TabMenu.css.js.map +0 -1
- package/esm/tabstrip/TabMenu.js +0 -70
- package/esm/tabstrip/TabMenu.js.map +0 -1
- package/esm/tabstrip/TabMenuOptions.js +0 -16
- package/esm/tabstrip/TabMenuOptions.js.map +0 -1
- package/esm/tabstrip/Tabstrip.css.js +0 -4
- package/esm/tabstrip/Tabstrip.css.js.map +0 -1
- package/esm/tabstrip/Tabstrip.js +0 -158
- package/esm/tabstrip/Tabstrip.js.map +0 -1
- package/esm/tabstrip/tabstrip-dom-utils.js +0 -16
- package/esm/tabstrip/tabstrip-dom-utils.js.map +0 -1
- package/esm/tabstrip/useAnimatedSelectionThumb.js +0 -83
- package/esm/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
- package/esm/tabstrip/useKeyboardNavigation.js +0 -245
- package/esm/tabstrip/useKeyboardNavigation.js.map +0 -1
- package/esm/tabstrip/useSelection.js +0 -58
- package/esm/tabstrip/useSelection.js.map +0 -1
- package/esm/tabstrip/useTabstrip.js +0 -231
- package/esm/tabstrip/useTabstrip.js.map +0 -1
- package/esm/time-input/MaskedInput.js +0 -375
- package/esm/time-input/MaskedInput.js.map +0 -1
- package/esm/time-input/TimeInput.css.js +0 -4
- package/esm/time-input/TimeInput.css.js.map +0 -1
- package/esm/time-input/TimeInput.js +0 -54
- package/esm/time-input/TimeInput.js.map +0 -1
- package/esm/time-input/useTimeInput.js +0 -119
- package/esm/time-input/useTimeInput.js.map +0 -1
- package/esm/toolbar/Toolbar.css.js +0 -4
- package/esm/toolbar/Toolbar.css.js.map +0 -1
- package/esm/toolbar/Toolbar.js +0 -88
- package/esm/toolbar/Toolbar.js.map +0 -1
- package/esm/toolbar/toolbar-dom-utils.js +0 -15
- package/esm/toolbar/toolbar-dom-utils.js.map +0 -1
- package/esm/toolbar/useKeyboardNavigation.js +0 -303
- package/esm/toolbar/useKeyboardNavigation.js.map +0 -1
- package/esm/toolbar/useSelection.js +0 -91
- package/esm/toolbar/useSelection.js.map +0 -1
- package/esm/toolbar/useToolbar.js +0 -98
- package/esm/toolbar/useToolbar.js.map +0 -1
- package/esm/utils/escapeRegExp.js +0 -7
- package/esm/utils/escapeRegExp.js.map +0 -1
- package/esm/utils/forwardCallbackProps.js +0 -20
- package/esm/utils/forwardCallbackProps.js.map +0 -1
- package/esm/utils/isOverflowElement.js +0 -6
- package/esm/utils/isOverflowElement.js.map +0 -1
- package/esm/utils/isPlainObject.js +0 -4
- package/esm/utils/isPlainObject.js.map +0 -1
- package/esm/vuu-date-picker/VuuDatePicker.js +0 -120
- package/esm/vuu-date-picker/VuuDatePicker.js.map +0 -1
- package/esm/vuu-input/VuuInput.css.js +0 -4
- package/esm/vuu-input/VuuInput.css.js.map +0 -1
- package/esm/vuu-input/VuuInput.js +0 -100
- package/esm/vuu-input/VuuInput.js.map +0 -1
- package/esm/vuu-time-picker/VuuTimePicker.css.js +0 -4
- package/esm/vuu-time-picker/VuuTimePicker.css.js.map +0 -1
- package/esm/vuu-time-picker/VuuTimePicker.js +0 -35
- package/esm/vuu-time-picker/VuuTimePicker.js.map +0 -1
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js +0 -4
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +0 -1
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js +0 -78
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js +0 -174
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
3
|
-
import { useWindow } from '@salt-ds/window';
|
|
4
|
-
import { clsx } from 'clsx';
|
|
5
|
-
import { forwardRef, useRef, useState, useEffect } from 'react';
|
|
6
|
-
import { DateFormatter, getLocalTimeZone, CalendarDate, parseAbsoluteToLocal } from '@internationalized/date';
|
|
7
|
-
import { makePrefixer, useForkRef, useId, useFormFieldProps, StatusAdornment } from '@salt-ds/core';
|
|
8
|
-
import '../calendar/Calendar.js';
|
|
9
|
-
import '../calendar/internal/CalendarContext.js';
|
|
10
|
-
import '../calendar/internal/utils.js';
|
|
11
|
-
import { isRangeOrOffsetSelectionWithStartDate } from '../calendar/useSelection.js';
|
|
12
|
-
import { useDatePickerContext } from '../date-picker/DatePickerContext.js';
|
|
13
|
-
import dateInputCss from './DateInput.css.js';
|
|
14
|
-
|
|
15
|
-
const withBaseName = makePrefixer("saltDateInput");
|
|
16
|
-
const isInvalidDate = (value) => value && Number.isNaN(new Date(value).getDay());
|
|
17
|
-
const createDate = (date) => {
|
|
18
|
-
if (!date || isInvalidDate(date)) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
return new Date(date);
|
|
22
|
-
};
|
|
23
|
-
const getIsoDate = (date) => {
|
|
24
|
-
try {
|
|
25
|
-
return parseAbsoluteToLocal(date?.toISOString());
|
|
26
|
-
} catch (err) {
|
|
27
|
-
return void 0;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
function getCalendarDate(inputDate) {
|
|
31
|
-
const date = createDate(inputDate);
|
|
32
|
-
if (!date) return void 0;
|
|
33
|
-
const isoDate = getIsoDate(date);
|
|
34
|
-
return isoDate && new CalendarDate(isoDate.year, isoDate.month, isoDate.day);
|
|
35
|
-
}
|
|
36
|
-
const defaultDateFormatter = (date) => {
|
|
37
|
-
return date ? new DateFormatter("EN-GB", {
|
|
38
|
-
day: "2-digit",
|
|
39
|
-
month: "short",
|
|
40
|
-
year: "numeric"
|
|
41
|
-
}).format(date.toDate(getLocalTimeZone())) : "";
|
|
42
|
-
};
|
|
43
|
-
const DateInput = forwardRef(function DateInput2({
|
|
44
|
-
className,
|
|
45
|
-
disabled,
|
|
46
|
-
"aria-label": ariaLabel,
|
|
47
|
-
selectionVariant: selectionVariantProp,
|
|
48
|
-
emptyReadOnlyMarker = "\u2014",
|
|
49
|
-
inputProps = {},
|
|
50
|
-
endAdornment,
|
|
51
|
-
readOnly: readOnlyProp,
|
|
52
|
-
validationStatus: validationStatusProp,
|
|
53
|
-
variant = "primary",
|
|
54
|
-
bordered = false,
|
|
55
|
-
dateFormatter = defaultDateFormatter,
|
|
56
|
-
placeholder = "dd mmm yyyy",
|
|
57
|
-
startInputRef,
|
|
58
|
-
endInputRef,
|
|
59
|
-
onSelectionChange,
|
|
60
|
-
onChange,
|
|
61
|
-
...rest
|
|
62
|
-
}, ref) {
|
|
63
|
-
const wrapperRef = useRef(null);
|
|
64
|
-
const inputRef = useForkRef(ref, wrapperRef);
|
|
65
|
-
const inputStringFormatter = (input) => {
|
|
66
|
-
const date = getCalendarDate(input);
|
|
67
|
-
return !input || !date ? input : dateFormatter(date);
|
|
68
|
-
};
|
|
69
|
-
const targetWindow = useWindow();
|
|
70
|
-
useComponentCssInjection({
|
|
71
|
-
testId: "salt-dateInput",
|
|
72
|
-
css: dateInputCss,
|
|
73
|
-
window: targetWindow
|
|
74
|
-
});
|
|
75
|
-
const {
|
|
76
|
-
selectedDate,
|
|
77
|
-
setSelectedDate,
|
|
78
|
-
selectionVariant: pickerSelectionVariant,
|
|
79
|
-
openState,
|
|
80
|
-
setOpen
|
|
81
|
-
} = useDatePickerContext();
|
|
82
|
-
const selectionVariant = selectionVariantProp ?? pickerSelectionVariant;
|
|
83
|
-
const isRangePicker = isRangeOrOffsetSelectionWithStartDate(selectedDate) || selectionVariant === "range";
|
|
84
|
-
const endDateInputID = useId();
|
|
85
|
-
const startDateInputID = useId();
|
|
86
|
-
const [focused, setFocused] = useState(false);
|
|
87
|
-
const [startDateStringValue, setStartDateStringValue] = useState(
|
|
88
|
-
dateFormatter(
|
|
89
|
-
isRangeOrOffsetSelectionWithStartDate(selectedDate) ? selectedDate?.startDate : selectedDate
|
|
90
|
-
)
|
|
91
|
-
);
|
|
92
|
-
const [endDateStringValue, setEndDateStringValue] = useState(
|
|
93
|
-
dateFormatter(
|
|
94
|
-
isRangeOrOffsetSelectionWithStartDate(selectedDate) ? selectedDate?.endDate : void 0
|
|
95
|
-
)
|
|
96
|
-
);
|
|
97
|
-
const {
|
|
98
|
-
a11yProps: {
|
|
99
|
-
"aria-describedby": formFieldDescribedBy,
|
|
100
|
-
"aria-labelledby": formFieldLabelledBy
|
|
101
|
-
} = {},
|
|
102
|
-
disabled: formFieldDisabled,
|
|
103
|
-
readOnly: formFieldReadOnly,
|
|
104
|
-
necessity: formFieldRequired,
|
|
105
|
-
validationStatus: formFieldValidationStatus
|
|
106
|
-
} = useFormFieldProps();
|
|
107
|
-
const isReadOnly = readOnlyProp || formFieldReadOnly;
|
|
108
|
-
const isDisabled = disabled || formFieldDisabled;
|
|
109
|
-
const validationStatus = formFieldValidationStatus ?? validationStatusProp;
|
|
110
|
-
const {
|
|
111
|
-
"aria-describedby": dateInputDescribedBy,
|
|
112
|
-
"aria-labelledby": dateInputLabelledBy,
|
|
113
|
-
onBlur,
|
|
114
|
-
onKeyDown,
|
|
115
|
-
onFocus,
|
|
116
|
-
required: dateInputPropsRequired,
|
|
117
|
-
...restDateInputProps
|
|
118
|
-
} = inputProps;
|
|
119
|
-
useEffect(() => {
|
|
120
|
-
if (isRangeOrOffsetSelectionWithStartDate(selectedDate)) {
|
|
121
|
-
selectedDate?.startDate && setStartDateStringValue(dateFormatter(selectedDate?.startDate));
|
|
122
|
-
selectedDate?.endDate && setEndDateStringValue(dateFormatter(selectedDate?.endDate));
|
|
123
|
-
} else {
|
|
124
|
-
setStartDateStringValue(dateFormatter(selectedDate));
|
|
125
|
-
}
|
|
126
|
-
}, [selectedDate, dateFormatter]);
|
|
127
|
-
const isRequired = formFieldRequired ? ["required", "asterisk"].includes(formFieldRequired) : dateInputPropsRequired;
|
|
128
|
-
const updateStartDate = (event, dateString) => {
|
|
129
|
-
const inputDate = inputStringFormatter(dateString);
|
|
130
|
-
const calendarDate = getCalendarDate(inputDate);
|
|
131
|
-
const newSelectedDate = isRangePicker ? { ...selectedDate, startDate: calendarDate } : calendarDate;
|
|
132
|
-
setSelectedDate(newSelectedDate);
|
|
133
|
-
onSelectionChange?.(event, newSelectedDate);
|
|
134
|
-
};
|
|
135
|
-
const updateEndDate = (event, dateString) => {
|
|
136
|
-
const inputDate = inputStringFormatter(dateString);
|
|
137
|
-
const calendarDate = getCalendarDate(inputDate);
|
|
138
|
-
const newSelectedDate = { ...selectedDate, endDate: calendarDate };
|
|
139
|
-
setSelectedDate(newSelectedDate);
|
|
140
|
-
onSelectionChange?.(event, newSelectedDate);
|
|
141
|
-
};
|
|
142
|
-
const handleFocus = (event) => {
|
|
143
|
-
onFocus?.(event);
|
|
144
|
-
setFocused(true);
|
|
145
|
-
};
|
|
146
|
-
const handleStartDateBlur = (event) => {
|
|
147
|
-
updateStartDate(event, event.target.value);
|
|
148
|
-
setFocused(false);
|
|
149
|
-
};
|
|
150
|
-
const handleStartDateChange = (event) => {
|
|
151
|
-
const newStartValue = event.target.value;
|
|
152
|
-
setStartDateStringValue(newStartValue);
|
|
153
|
-
onChange?.(event, newStartValue, endDateStringValue);
|
|
154
|
-
};
|
|
155
|
-
const handleStartDateKeyDown = (event) => {
|
|
156
|
-
if (event.key === "Enter") {
|
|
157
|
-
updateStartDate(event, startDateStringValue);
|
|
158
|
-
setOpen(false);
|
|
159
|
-
}
|
|
160
|
-
if (event.key === "Tab" && event.shiftKey && openState) {
|
|
161
|
-
setOpen(false);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
const handleEndDateBlur = (event) => {
|
|
165
|
-
updateEndDate(event, event.target.value);
|
|
166
|
-
setFocused(false);
|
|
167
|
-
};
|
|
168
|
-
const handleEndDateChange = (event) => {
|
|
169
|
-
const newEndValue = event.target.value;
|
|
170
|
-
setEndDateStringValue(newEndValue);
|
|
171
|
-
onChange?.(event, startDateStringValue, newEndValue);
|
|
172
|
-
};
|
|
173
|
-
const handleEndDateKeyDown = (event) => {
|
|
174
|
-
if (event.key === "Enter") {
|
|
175
|
-
updateEndDate(event, endDateStringValue);
|
|
176
|
-
setOpen(false);
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
const handleInputClick = (event) => {
|
|
180
|
-
if (event.target === wrapperRef.current) {
|
|
181
|
-
startInputRef?.current?.focus();
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
return /* @__PURE__ */ jsxs(
|
|
185
|
-
"div",
|
|
186
|
-
{
|
|
187
|
-
className: clsx(
|
|
188
|
-
withBaseName(),
|
|
189
|
-
withBaseName(variant),
|
|
190
|
-
{
|
|
191
|
-
[withBaseName("focused")]: !isDisabled && focused,
|
|
192
|
-
[withBaseName("disabled")]: isDisabled,
|
|
193
|
-
[withBaseName("readOnly")]: isReadOnly,
|
|
194
|
-
[withBaseName(validationStatus ?? "")]: validationStatus,
|
|
195
|
-
[withBaseName("bordered")]: bordered
|
|
196
|
-
},
|
|
197
|
-
className
|
|
198
|
-
),
|
|
199
|
-
onClick: (event) => handleInputClick(event),
|
|
200
|
-
onKeyDown,
|
|
201
|
-
onBlur,
|
|
202
|
-
ref: inputRef,
|
|
203
|
-
...rest,
|
|
204
|
-
children: [
|
|
205
|
-
/* @__PURE__ */ jsx(
|
|
206
|
-
"input",
|
|
207
|
-
{
|
|
208
|
-
autoComplete: "off",
|
|
209
|
-
"aria-describedby": clsx(formFieldDescribedBy, dateInputDescribedBy),
|
|
210
|
-
"aria-labelledby": clsx(
|
|
211
|
-
formFieldLabelledBy,
|
|
212
|
-
dateInputLabelledBy,
|
|
213
|
-
startDateInputID
|
|
214
|
-
),
|
|
215
|
-
"aria-label": clsx("Start date", ariaLabel),
|
|
216
|
-
id: startDateInputID,
|
|
217
|
-
className: withBaseName("input"),
|
|
218
|
-
disabled: isDisabled,
|
|
219
|
-
readOnly: isReadOnly,
|
|
220
|
-
ref: startInputRef,
|
|
221
|
-
tabIndex: isDisabled ? -1 : 0,
|
|
222
|
-
onBlur: handleStartDateBlur,
|
|
223
|
-
onChange: handleStartDateChange,
|
|
224
|
-
onKeyDown: handleStartDateKeyDown,
|
|
225
|
-
onFocus: !isDisabled ? handleFocus : void 0,
|
|
226
|
-
placeholder,
|
|
227
|
-
size: placeholder.length,
|
|
228
|
-
value: isReadOnly && !startDateStringValue ? emptyReadOnlyMarker : startDateStringValue,
|
|
229
|
-
...restDateInputProps,
|
|
230
|
-
required: isRequired
|
|
231
|
-
}
|
|
232
|
-
),
|
|
233
|
-
selectionVariant === "range" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
234
|
-
/* @__PURE__ */ jsx("span", { children: "-" }),
|
|
235
|
-
/* @__PURE__ */ jsx(
|
|
236
|
-
"input",
|
|
237
|
-
{
|
|
238
|
-
autoComplete: "off",
|
|
239
|
-
"aria-describedby": clsx(formFieldDescribedBy, dateInputDescribedBy),
|
|
240
|
-
"aria-labelledby": clsx(
|
|
241
|
-
formFieldLabelledBy,
|
|
242
|
-
dateInputLabelledBy,
|
|
243
|
-
endDateInputID
|
|
244
|
-
),
|
|
245
|
-
"aria-label": clsx("End date", ariaLabel),
|
|
246
|
-
id: endDateInputID,
|
|
247
|
-
className: withBaseName("input"),
|
|
248
|
-
disabled: isDisabled,
|
|
249
|
-
readOnly: isReadOnly,
|
|
250
|
-
ref: endInputRef,
|
|
251
|
-
tabIndex: isDisabled ? -1 : 0,
|
|
252
|
-
onBlur: handleEndDateBlur,
|
|
253
|
-
onChange: handleEndDateChange,
|
|
254
|
-
onKeyDown: handleEndDateKeyDown,
|
|
255
|
-
onFocus: !isDisabled ? handleFocus : void 0,
|
|
256
|
-
placeholder,
|
|
257
|
-
size: placeholder.length,
|
|
258
|
-
value: isReadOnly && !endDateStringValue ? emptyReadOnlyMarker : endDateStringValue,
|
|
259
|
-
required: isRequired,
|
|
260
|
-
...restDateInputProps
|
|
261
|
-
}
|
|
262
|
-
)
|
|
263
|
-
] }),
|
|
264
|
-
/* @__PURE__ */ jsxs("div", { className: withBaseName("endAdornmentContainer"), children: [
|
|
265
|
-
!isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsx(StatusAdornment, { status: validationStatus }),
|
|
266
|
-
endAdornment
|
|
267
|
-
] }),
|
|
268
|
-
/* @__PURE__ */ jsx("div", { className: withBaseName("activationIndicator") })
|
|
269
|
-
]
|
|
270
|
-
}
|
|
271
|
-
);
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
export { DateInput };
|
|
275
|
-
//# sourceMappingURL=DateInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sources":["../../../../packages/vuu-ui-controls/src/date-input/DateInput.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n type FocusEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n type RefObject,\n type SyntheticEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n CalendarDate,\n DateFormatter,\n type DateValue,\n getLocalTimeZone,\n parseAbsoluteToLocal,\n} from \"@internationalized/date\";\nimport {\n StatusAdornment,\n makePrefixer,\n useForkRef,\n useFormFieldProps,\n useId,\n} from \"@salt-ds/core\";\nimport {\n type RangeSelectionValueType,\n type SingleSelectionValueType,\n isRangeOrOffsetSelectionWithStartDate,\n} from \"../calendar\";\nimport { useDatePickerContext } from \"../date-picker/DatePickerContext\";\nimport dateInputCss from \"./DateInput.css\";\n\nconst withBaseName = makePrefixer(\"saltDateInput\");\nconst isInvalidDate = (value: string) =>\n value && Number.isNaN(new Date(value).getDay());\nconst createDate = (date: string): Date | null => {\n if (!date || isInvalidDate(date)) {\n return null;\n }\n return new Date(date);\n};\n\nconst getIsoDate = (date: Date) => {\n try {\n return parseAbsoluteToLocal(date?.toISOString());\n } catch (err) {\n return undefined;\n }\n};\n\nfunction getCalendarDate(inputDate: string) {\n const date = createDate(inputDate);\n if (!date) return undefined;\n const isoDate = getIsoDate(date);\n return isoDate && new CalendarDate(isoDate.year, isoDate.month, isoDate.day);\n}\n\nconst defaultDateFormatter = (date: DateValue | undefined): string => {\n return date\n ? new DateFormatter(\"EN-GB\", {\n day: \"2-digit\",\n month: \"short\",\n year: \"numeric\",\n }).format(date.toDate(getLocalTimeZone()))\n : \"\";\n};\n\nexport interface DateInputProps<SelectionVariantType>\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\" | \"onChange\">,\n Pick<ComponentPropsWithoutRef<\"input\">, \"disabled\" | \"placeholder\"> {\n ariaLabel?: string;\n /**\n * The marker to use in an empty read only DateInput.\n * Use `''` to disable this feature. Defaults to '—'.\n */\n emptyReadOnlyMarker?: string;\n /**\n * End adornment component\n */\n endAdornment?: ReactNode;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes) applied to the `input` elements.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n /**\n * Styling variant with full border. Defaults to false\n */\n bordered?: boolean;\n /**\n * Function to format the input value.\n */\n dateFormatter?: (input: DateValue | undefined) => string;\n /**\n * Reference for the startInput;\n */\n startInputRef?: RefObject<HTMLInputElement | null>;\n /**\n * Reference for the endInput;\n */\n endInputRef?: RefObject<HTMLInputElement | null>;\n /**\n * Selection variant. Defaults to single select.\n */\n selectionVariant?: \"default\" | \"range\";\n /**\n * Callback fired when the selected date change.\n */\n onSelectionChange?: (\n event: SyntheticEvent,\n selectedDate?: SelectionVariantType,\n ) => void;\n /**\n * Callback fired when the input value change.\n */\n onChange?: SelectionVariantType extends SingleSelectionValueType\n ? (\n event: ChangeEvent<HTMLInputElement>,\n selectedDateInputValue?: string,\n ) => void\n : (\n event: ChangeEvent<HTMLInputElement>,\n startDateInputValue?: string,\n endDateInputValue?: string,\n ) => void;\n}\n\nexport const DateInput = forwardRef<\n HTMLDivElement,\n DateInputProps<SingleSelectionValueType | RangeSelectionValueType>\n>(function DateInput(\n {\n className,\n disabled,\n \"aria-label\": ariaLabel,\n selectionVariant: selectionVariantProp,\n emptyReadOnlyMarker = \"—\",\n inputProps = {},\n endAdornment,\n readOnly: readOnlyProp,\n validationStatus: validationStatusProp,\n variant = \"primary\",\n bordered = false,\n dateFormatter = defaultDateFormatter,\n placeholder = \"dd mmm yyyy\",\n startInputRef,\n endInputRef,\n onSelectionChange,\n onChange,\n ...rest\n },\n ref,\n) {\n const wrapperRef = useRef(null);\n const inputRef = useForkRef<HTMLDivElement>(ref, wrapperRef);\n const inputStringFormatter = (input: string): string => {\n const date = getCalendarDate(input);\n return !input || !date ? input : dateFormatter(date);\n };\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dateInput\",\n css: dateInputCss,\n window: targetWindow,\n });\n\n const {\n selectedDate,\n setSelectedDate,\n selectionVariant: pickerSelectionVariant,\n openState,\n setOpen,\n } = useDatePickerContext();\n\n const selectionVariant = selectionVariantProp ?? pickerSelectionVariant;\n const isRangePicker =\n isRangeOrOffsetSelectionWithStartDate(selectedDate) ||\n selectionVariant === \"range\";\n\n const endDateInputID = useId();\n const startDateInputID = useId();\n\n const [focused, setFocused] = useState(false);\n const [startDateStringValue, setStartDateStringValue] = useState<string>(\n dateFormatter(\n isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate?.startDate\n : selectedDate,\n ),\n );\n const [endDateStringValue, setEndDateStringValue] = useState<string>(\n dateFormatter(\n isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate?.endDate\n : undefined,\n ),\n );\n\n const {\n a11yProps: {\n \"aria-describedby\": formFieldDescribedBy,\n \"aria-labelledby\": formFieldLabelledBy,\n } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n necessity: formFieldRequired,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const isReadOnly = readOnlyProp || formFieldReadOnly;\n const isDisabled = disabled || formFieldDisabled;\n\n const validationStatus = formFieldValidationStatus ?? validationStatusProp;\n\n const {\n \"aria-describedby\": dateInputDescribedBy,\n \"aria-labelledby\": dateInputLabelledBy,\n onBlur,\n onKeyDown,\n onFocus,\n required: dateInputPropsRequired,\n ...restDateInputProps\n } = inputProps;\n\n // Update date strings when dates change\n useEffect(() => {\n if (isRangeOrOffsetSelectionWithStartDate(selectedDate)) {\n selectedDate?.startDate &&\n setStartDateStringValue(dateFormatter(selectedDate?.startDate));\n selectedDate?.endDate &&\n setEndDateStringValue(dateFormatter(selectedDate?.endDate));\n } else {\n setStartDateStringValue(dateFormatter(selectedDate));\n }\n }, [selectedDate, dateFormatter]);\n\n const isRequired = formFieldRequired\n ? [\"required\", \"asterisk\"].includes(formFieldRequired)\n : dateInputPropsRequired;\n const updateStartDate = (event: SyntheticEvent, dateString: string) => {\n const inputDate = inputStringFormatter(dateString);\n const calendarDate = getCalendarDate(inputDate);\n const newSelectedDate = isRangePicker\n ? { ...selectedDate, startDate: calendarDate }\n : calendarDate;\n setSelectedDate(newSelectedDate);\n onSelectionChange?.(event, newSelectedDate);\n };\n\n const updateEndDate = (event: SyntheticEvent, dateString: string) => {\n const inputDate = inputStringFormatter(dateString);\n const calendarDate = getCalendarDate(inputDate);\n const newSelectedDate = { ...selectedDate, endDate: calendarDate };\n setSelectedDate(newSelectedDate);\n onSelectionChange?.(event, newSelectedDate);\n };\n\n // Handlers\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n const handleStartDateBlur = (event: FocusEvent<HTMLInputElement>) => {\n updateStartDate(event, event.target.value);\n setFocused(false);\n };\n\n const handleStartDateChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newStartValue = event.target.value;\n setStartDateStringValue(newStartValue);\n onChange?.(event, newStartValue, endDateStringValue);\n };\n\n const handleStartDateKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n updateStartDate(event, startDateStringValue);\n setOpen(false);\n }\n if (event.key === \"Tab\" && event.shiftKey && openState) {\n setOpen(false);\n }\n };\n\n const handleEndDateBlur = (event: FocusEvent<HTMLInputElement>) => {\n updateEndDate(event, event.target.value);\n setFocused(false);\n };\n const handleEndDateChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newEndValue = event.target.value;\n setEndDateStringValue(newEndValue);\n onChange?.(event, startDateStringValue, newEndValue);\n };\n const handleEndDateKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n updateEndDate(event, endDateStringValue);\n setOpen(false);\n }\n };\n\n const handleInputClick = (event: SyntheticEvent<HTMLDivElement>) => {\n if (event.target === wrapperRef.current) {\n startInputRef?.current?.focus();\n }\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"focused\")]: !isDisabled && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(validationStatus ?? \"\")]: validationStatus,\n [withBaseName(\"bordered\")]: bordered,\n },\n className,\n )}\n onClick={(event) => handleInputClick(event)}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n ref={inputRef}\n {...rest}\n >\n <input\n autoComplete=\"off\"\n aria-describedby={clsx(formFieldDescribedBy, dateInputDescribedBy)}\n aria-labelledby={clsx(\n formFieldLabelledBy,\n dateInputLabelledBy,\n startDateInputID,\n )}\n aria-label={clsx(\"Start date\", ariaLabel)}\n id={startDateInputID}\n className={withBaseName(\"input\")}\n disabled={isDisabled}\n readOnly={isReadOnly}\n ref={startInputRef}\n tabIndex={isDisabled ? -1 : 0}\n onBlur={handleStartDateBlur}\n onChange={handleStartDateChange}\n onKeyDown={handleStartDateKeyDown}\n onFocus={!isDisabled ? handleFocus : undefined}\n placeholder={placeholder}\n size={placeholder.length}\n value={\n isReadOnly && !startDateStringValue\n ? emptyReadOnlyMarker\n : startDateStringValue\n }\n {...restDateInputProps}\n required={isRequired}\n />\n {selectionVariant === \"range\" && (\n <>\n <span>-</span>\n <input\n autoComplete=\"off\"\n aria-describedby={clsx(formFieldDescribedBy, dateInputDescribedBy)}\n aria-labelledby={clsx(\n formFieldLabelledBy,\n dateInputLabelledBy,\n endDateInputID,\n )}\n aria-label={clsx(\"End date\", ariaLabel)}\n id={endDateInputID}\n className={withBaseName(\"input\")}\n disabled={isDisabled}\n readOnly={isReadOnly}\n ref={endInputRef}\n tabIndex={isDisabled ? -1 : 0}\n onBlur={handleEndDateBlur}\n onChange={handleEndDateChange}\n onKeyDown={handleEndDateKeyDown}\n onFocus={!isDisabled ? handleFocus : undefined}\n placeholder={placeholder}\n size={placeholder.length}\n value={\n isReadOnly && !endDateStringValue\n ? emptyReadOnlyMarker\n : endDateStringValue\n }\n required={isRequired}\n {...restDateInputProps}\n />\n </>\n )}\n {\n <div className={withBaseName(\"endAdornmentContainer\")}>\n {!isDisabled && !isReadOnly && validationStatus && (\n <StatusAdornment status={validationStatus} />\n )}\n {endAdornment}\n </div>\n }\n <div className={withBaseName(\"activationIndicator\")} />\n </div>\n );\n});\n"],"names":["DateInput"],"mappings":"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"}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
|
-
import { forwardRef, useState, useRef } from 'react';
|
|
4
|
-
import { offset, flip, useInteractions, useDismiss } from '@floating-ui/react';
|
|
5
|
-
import { today, getLocalTimeZone } from '@internationalized/date';
|
|
6
|
-
import { makePrefixer, useControlled, useId, useFloatingUI, useFormFieldProps, useForkRef, Button } from '@salt-ds/core';
|
|
7
|
-
import { CalendarIcon } from '@salt-ds/icons';
|
|
8
|
-
import '../calendar/Calendar.js';
|
|
9
|
-
import '../calendar/internal/CalendarContext.js';
|
|
10
|
-
import '../calendar/internal/utils.js';
|
|
11
|
-
import { isRangeOrOffsetSelectionWithStartDate } from '../calendar/useSelection.js';
|
|
12
|
-
import { DateInput } from '../date-input/DateInput.js';
|
|
13
|
-
import { DatePickerContext } from './DatePickerContext.js';
|
|
14
|
-
import { DatePickerPanel } from './DatePickerPanel.js';
|
|
15
|
-
|
|
16
|
-
const withBaseName = makePrefixer("saltDatePicker");
|
|
17
|
-
const DatePicker = forwardRef(function DatePicker2({
|
|
18
|
-
selectionVariant = "default",
|
|
19
|
-
disabled = false,
|
|
20
|
-
placeholder = "dd mmm yyyy",
|
|
21
|
-
selectedDate: selectedDateProp,
|
|
22
|
-
defaultSelectedDate,
|
|
23
|
-
dateFormatter,
|
|
24
|
-
CalendarProps,
|
|
25
|
-
className,
|
|
26
|
-
id: idProp,
|
|
27
|
-
open: openProp,
|
|
28
|
-
defaultOpen,
|
|
29
|
-
onOpenChange: onOpenChangeProp,
|
|
30
|
-
helperText,
|
|
31
|
-
readOnly: readOnlyProp,
|
|
32
|
-
validationStatus,
|
|
33
|
-
onSelectionChange,
|
|
34
|
-
onChange,
|
|
35
|
-
visibleMonths = 2,
|
|
36
|
-
bordered,
|
|
37
|
-
...rest
|
|
38
|
-
}, ref) {
|
|
39
|
-
const [open, setOpen] = useControlled({
|
|
40
|
-
controlled: openProp,
|
|
41
|
-
default: Boolean(defaultOpen),
|
|
42
|
-
name: "openPanel",
|
|
43
|
-
state: "openPanel"
|
|
44
|
-
});
|
|
45
|
-
const [selectedDate, setSelectedDate] = useControlled({
|
|
46
|
-
controlled: selectedDateProp,
|
|
47
|
-
default: defaultSelectedDate,
|
|
48
|
-
name: "Calendar",
|
|
49
|
-
state: "selectedDate"
|
|
50
|
-
});
|
|
51
|
-
const id = useId(idProp);
|
|
52
|
-
const [startVisibleMonth, setStartVisibleMonth] = useState(
|
|
53
|
-
(isRangeOrOffsetSelectionWithStartDate(selectedDate) ? selectedDate?.startDate : selectedDate) ?? today(getLocalTimeZone())
|
|
54
|
-
);
|
|
55
|
-
const [endVisibleMonth, setEndVisibleMonth] = useState(
|
|
56
|
-
(isRangeOrOffsetSelectionWithStartDate(selectedDate) ? selectedDate.startDate?.add({ months: 1 }) : selectedDate) ?? today(getLocalTimeZone()).add({ months: 1 })
|
|
57
|
-
);
|
|
58
|
-
const onOpenChange = (newState) => {
|
|
59
|
-
setOpen(newState);
|
|
60
|
-
startInputRef?.current?.focus();
|
|
61
|
-
onOpenChangeProp?.(newState);
|
|
62
|
-
};
|
|
63
|
-
const { x, y, strategy, elements, floating, reference, context } = useFloatingUI({
|
|
64
|
-
open,
|
|
65
|
-
onOpenChange,
|
|
66
|
-
placement: "bottom-start",
|
|
67
|
-
middleware: [offset(1), flip({ fallbackStrategy: "initialPlacement" })]
|
|
68
|
-
});
|
|
69
|
-
const { getReferenceProps, getFloatingProps } = useInteractions([
|
|
70
|
-
useDismiss(context)
|
|
71
|
-
]);
|
|
72
|
-
const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } = useFormFieldProps();
|
|
73
|
-
const isReadOnly = readOnlyProp || formFieldReadOnly;
|
|
74
|
-
const getPanelPosition = () => ({
|
|
75
|
-
top: y ?? 0,
|
|
76
|
-
left: x ?? 0,
|
|
77
|
-
position: strategy,
|
|
78
|
-
width: elements.floating?.offsetWidth,
|
|
79
|
-
height: elements.floating?.offsetHeight
|
|
80
|
-
});
|
|
81
|
-
const panelRef = useRef(null);
|
|
82
|
-
const startInputRef = useRef(null);
|
|
83
|
-
const endInputRef = useRef(null);
|
|
84
|
-
const inputRef = useForkRef(ref, reference);
|
|
85
|
-
const floatingRef = useForkRef(panelRef, floating);
|
|
86
|
-
const handleSelect = (event, selectedDate2) => {
|
|
87
|
-
if (selectionVariant === "default" && selectedDate2) {
|
|
88
|
-
startInputRef?.current?.focus();
|
|
89
|
-
}
|
|
90
|
-
if (isRangeOrOffsetSelectionWithStartDate(selectedDate2) && selectedDate2.endDate) {
|
|
91
|
-
endInputRef?.current?.focus();
|
|
92
|
-
}
|
|
93
|
-
onSelectionChange?.(event, selectedDate2);
|
|
94
|
-
};
|
|
95
|
-
const handleCalendarButton = () => {
|
|
96
|
-
startInputRef?.current?.focus();
|
|
97
|
-
const newState = !open;
|
|
98
|
-
setOpen(newState);
|
|
99
|
-
onOpenChangeProp?.(newState);
|
|
100
|
-
};
|
|
101
|
-
const datePickerContextValue = {
|
|
102
|
-
openState: open,
|
|
103
|
-
setOpen,
|
|
104
|
-
disabled,
|
|
105
|
-
selectedDate,
|
|
106
|
-
setSelectedDate,
|
|
107
|
-
defaultSelectedDate,
|
|
108
|
-
startVisibleMonth,
|
|
109
|
-
setStartVisibleMonth,
|
|
110
|
-
endVisibleMonth,
|
|
111
|
-
setEndVisibleMonth,
|
|
112
|
-
selectionVariant,
|
|
113
|
-
context,
|
|
114
|
-
getPanelPosition
|
|
115
|
-
};
|
|
116
|
-
const calendarId = `${id}-calendar`;
|
|
117
|
-
return /* @__PURE__ */ jsxs(DatePickerContext.Provider, { value: datePickerContextValue, children: [
|
|
118
|
-
/* @__PURE__ */ jsx(
|
|
119
|
-
DateInput,
|
|
120
|
-
{
|
|
121
|
-
"aria-owns": calendarId,
|
|
122
|
-
validationStatus,
|
|
123
|
-
bordered,
|
|
124
|
-
className: clsx(withBaseName(), className),
|
|
125
|
-
id,
|
|
126
|
-
ref: inputRef,
|
|
127
|
-
...getReferenceProps(),
|
|
128
|
-
startInputRef,
|
|
129
|
-
endInputRef,
|
|
130
|
-
placeholder,
|
|
131
|
-
dateFormatter,
|
|
132
|
-
readOnly: isReadOnly,
|
|
133
|
-
onSelectionChange,
|
|
134
|
-
onChange,
|
|
135
|
-
endAdornment: /* @__PURE__ */ jsx(
|
|
136
|
-
Button,
|
|
137
|
-
{
|
|
138
|
-
variant: "secondary",
|
|
139
|
-
onClick: handleCalendarButton,
|
|
140
|
-
disabled: disabled || isReadOnly || formFieldDisabled,
|
|
141
|
-
"aria-label": "Open Calendar",
|
|
142
|
-
children: /* @__PURE__ */ jsx(CalendarIcon, { "aria-hidden": true })
|
|
143
|
-
}
|
|
144
|
-
),
|
|
145
|
-
...rest
|
|
146
|
-
}
|
|
147
|
-
),
|
|
148
|
-
/* @__PURE__ */ jsx(
|
|
149
|
-
DatePickerPanel,
|
|
150
|
-
{
|
|
151
|
-
ref: floatingRef,
|
|
152
|
-
...getFloatingProps(),
|
|
153
|
-
onSelect: handleSelect,
|
|
154
|
-
CalendarProps: {
|
|
155
|
-
...CalendarProps,
|
|
156
|
-
borderedDropdown: bordered,
|
|
157
|
-
id: calendarId
|
|
158
|
-
},
|
|
159
|
-
helperText,
|
|
160
|
-
visibleMonths
|
|
161
|
-
}
|
|
162
|
-
)
|
|
163
|
-
] });
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
export { DatePicker };
|
|
167
|
-
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sources":["../../../../packages/vuu-ui-controls/src/date-picker/DatePicker.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n type ChangeEvent,\n type SyntheticEvent,\n forwardRef,\n useRef,\n useState,\n} from \"react\";\n\nimport { flip, offset, useDismiss, useInteractions } from \"@floating-ui/react\";\nimport {\n type DateValue,\n getLocalTimeZone,\n today,\n} from \"@internationalized/date\";\nimport {\n Button,\n makePrefixer,\n useControlled,\n useFloatingUI,\n useForkRef,\n useFormFieldProps,\n useId,\n} from \"@salt-ds/core\";\nimport { CalendarIcon } from \"@salt-ds/icons\";\nimport {\n type CalendarProps,\n type RangeSelectionValueType,\n type SingleSelectionValueType,\n isRangeOrOffsetSelectionWithStartDate,\n} from \"../calendar\";\nimport { DateInput, type DateInputProps } from \"../date-input\";\nimport { DatePickerContext } from \"./DatePickerContext\";\nimport { DatePickerPanel } from \"./DatePickerPanel\";\n\nconst withBaseName = makePrefixer(\"saltDatePicker\");\n\nexport interface DatePickerProps<SelectionVariantType>\n extends DateInputProps<SelectionVariantType> {\n /**\n * Selection variant. Defaults to single select.\n */\n selectionVariant?: \"default\" | \"range\";\n /**\n * If `true`, the component will be disabled.\n */\n disabled?: boolean;\n /**\n * The selected date value. Use when the component is controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n selectedDate?: SelectionVariantType;\n /**\n * The default date value. Use when the component is not controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n defaultSelectedDate?: SelectionVariantType;\n /**\n * Props to be passed to the Calendar component.\n */\n CalendarProps?: Partial<\n Omit<\n CalendarProps,\n | \"selectionVariant\"\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectedDateChange\"\n >\n >;\n /**\n * Function to format the input value.\n */\n dateFormatter?: (input: DateValue | undefined) => string;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (newOpen: boolean) => void;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * The default open value. Use when the component is not controlled.\n */\n defaultOpen?: boolean;\n /**\n * Helper text to display in the panel\n */\n helperText?: string;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Callback fired when the selected date change.\n */\n onSelectionChange?: (\n event: SyntheticEvent,\n selectedDate?: SelectionVariantType,\n ) => void;\n /**\n * Callback fired when the input value change.\n */\n onChange?: SelectionVariantType extends SingleSelectionValueType\n ? (\n event: ChangeEvent<HTMLInputElement>,\n selectedDateInputValue?: string,\n ) => void\n : (\n event: ChangeEvent<HTMLInputElement>,\n startDateInputValue?: string,\n endDateInputValue?: string,\n ) => void;\n /**\n * Number of Calendars to be shown if selectionVariant is range.\n * 2 is the default value.\n */\n visibleMonths?: 1 | 2;\n}\n\nexport const DatePicker = forwardRef<\n HTMLDivElement,\n DatePickerProps<SingleSelectionValueType | RangeSelectionValueType>\n>(function DatePicker(\n {\n selectionVariant = \"default\",\n disabled = false,\n placeholder = \"dd mmm yyyy\",\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n dateFormatter,\n CalendarProps,\n className,\n id: idProp,\n open: openProp,\n defaultOpen,\n onOpenChange: onOpenChangeProp,\n helperText,\n readOnly: readOnlyProp,\n validationStatus,\n onSelectionChange,\n onChange,\n visibleMonths = 2,\n bordered,\n ...rest\n },\n ref,\n) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: Boolean(defaultOpen),\n name: \"openPanel\",\n state: \"openPanel\",\n });\n\n const [selectedDate, setSelectedDate] = useControlled({\n controlled: selectedDateProp,\n default: defaultSelectedDate,\n name: \"Calendar\",\n state: \"selectedDate\",\n });\n\n const id = useId(idProp);\n\n const [startVisibleMonth, setStartVisibleMonth] = useState<\n DateValue | undefined\n >(\n (isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate?.startDate\n : selectedDate) ?? today(getLocalTimeZone()),\n );\n\n const [endVisibleMonth, setEndVisibleMonth] = useState<DateValue | undefined>(\n (isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate.startDate?.add({ months: 1 })\n : selectedDate) ?? today(getLocalTimeZone()).add({ months: 1 }),\n );\n\n const onOpenChange = (newState: boolean) => {\n setOpen(newState);\n startInputRef?.current?.focus();\n onOpenChangeProp?.(newState);\n };\n\n const { x, y, strategy, elements, floating, reference, context } =\n useFloatingUI({\n open: open,\n onOpenChange: onOpenChange,\n placement: \"bottom-start\",\n middleware: [offset(1), flip({ fallbackStrategy: \"initialPlacement\" })],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n ]);\n const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } =\n useFormFieldProps();\n const isReadOnly = readOnlyProp || formFieldReadOnly;\n\n const getPanelPosition = () => ({\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: elements.floating?.offsetWidth,\n height: elements.floating?.offsetHeight,\n });\n\n const panelRef = useRef<HTMLDivElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const inputRef = useForkRef<HTMLDivElement>(ref, reference);\n const floatingRef = useForkRef<HTMLDivElement>(panelRef, floating);\n\n // Handlers\n const handleSelect = (\n event: SyntheticEvent,\n selectedDate?: DateValue | { startDate?: DateValue; endDate?: DateValue },\n ) => {\n if (selectionVariant === \"default\" && selectedDate) {\n startInputRef?.current?.focus();\n }\n\n if (\n isRangeOrOffsetSelectionWithStartDate(selectedDate) &&\n selectedDate.endDate\n ) {\n endInputRef?.current?.focus();\n }\n onSelectionChange?.(event, selectedDate);\n };\n const handleCalendarButton = () => {\n startInputRef?.current?.focus();\n const newState = !open;\n setOpen(newState);\n onOpenChangeProp?.(newState);\n };\n\n // Context\n const datePickerContextValue = {\n openState: open,\n setOpen,\n disabled,\n selectedDate,\n setSelectedDate,\n defaultSelectedDate,\n startVisibleMonth,\n setStartVisibleMonth,\n endVisibleMonth,\n setEndVisibleMonth,\n selectionVariant,\n context,\n getPanelPosition,\n };\n\n const calendarId = `${id}-calendar`;\n\n return (\n <DatePickerContext.Provider value={datePickerContextValue}>\n <DateInput\n aria-owns={calendarId}\n validationStatus={validationStatus}\n bordered={bordered}\n className={clsx(withBaseName(), className)}\n id={id}\n ref={inputRef}\n {...getReferenceProps()}\n startInputRef={startInputRef}\n endInputRef={endInputRef}\n placeholder={placeholder}\n dateFormatter={dateFormatter}\n readOnly={isReadOnly}\n onSelectionChange={onSelectionChange}\n onChange={onChange}\n endAdornment={\n <Button\n variant=\"secondary\"\n onClick={handleCalendarButton}\n disabled={disabled || isReadOnly || formFieldDisabled}\n aria-label=\"Open Calendar\"\n >\n <CalendarIcon aria-hidden />\n </Button>\n }\n {...rest}\n />\n <DatePickerPanel\n ref={floatingRef}\n {...getFloatingProps()}\n onSelect={handleSelect}\n CalendarProps={{\n ...CalendarProps,\n borderedDropdown: bordered,\n id: calendarId,\n }}\n helperText={helperText}\n visibleMonths={visibleMonths}\n />\n </DatePickerContext.Provider>\n );\n});\n"],"names":["DatePicker","selectedDate"],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createContext } from '@salt-ds/core';
|
|
2
|
-
import { useContext } from 'react';
|
|
3
|
-
|
|
4
|
-
const DatePickerContext = createContext("DatePickerContext", {
|
|
5
|
-
openState: false,
|
|
6
|
-
setOpen: () => void 0,
|
|
7
|
-
disabled: false,
|
|
8
|
-
selectedDate: void 0,
|
|
9
|
-
defaultSelectedDate: void 0,
|
|
10
|
-
setSelectedDate: () => void 0,
|
|
11
|
-
startVisibleMonth: void 0,
|
|
12
|
-
setStartVisibleMonth: () => void 0,
|
|
13
|
-
endVisibleMonth: void 0,
|
|
14
|
-
setEndVisibleMonth: () => void 0,
|
|
15
|
-
selectionVariant: "default",
|
|
16
|
-
getPanelPosition: () => ({})
|
|
17
|
-
});
|
|
18
|
-
function useDatePickerContext() {
|
|
19
|
-
return useContext(DatePickerContext);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { DatePickerContext, useDatePickerContext };
|
|
23
|
-
//# sourceMappingURL=DatePickerContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerContext.js","sources":["../../../../packages/vuu-ui-controls/src/date-picker/DatePickerContext.ts"],"sourcesContent":["import type { DateValue } from \"@internationalized/date\";\nimport { type UseFloatingUIReturn, createContext } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\nimport type {\n RangeSelectionValueType,\n SingleSelectionValueType,\n} from \"../calendar\";\n\nexport interface DatePickerContextValue<SelectionVariantType>\n extends Partial<Pick<UseFloatingUIReturn, \"context\">> {\n openState: boolean;\n setOpen: (newOpen: boolean) => void;\n disabled: boolean;\n //\n selectedDate: SelectionVariantType | undefined;\n defaultSelectedDate: SelectionVariantType | undefined;\n setSelectedDate: (newStartDate: SelectionVariantType | undefined) => void;\n startVisibleMonth: DateValue | undefined;\n setStartVisibleMonth: (newStartDate: DateValue | undefined) => void;\n endVisibleMonth: DateValue | undefined;\n setEndVisibleMonth: (newStartDate: DateValue | undefined) => void;\n selectionVariant: \"default\" | \"range\";\n getPanelPosition: () => Record<string, unknown>;\n}\n\nexport const DatePickerContext = createContext<\n DatePickerContextValue<SingleSelectionValueType | RangeSelectionValueType>\n>(\"DatePickerContext\", {\n openState: false,\n setOpen: () => undefined,\n disabled: false,\n selectedDate: undefined,\n defaultSelectedDate: undefined,\n setSelectedDate: () => undefined,\n startVisibleMonth: undefined,\n setStartVisibleMonth: () => undefined,\n endVisibleMonth: undefined,\n setEndVisibleMonth: () => undefined,\n selectionVariant: \"default\",\n getPanelPosition: () => ({}),\n});\n\nexport function useDatePickerContext() {\n return useContext(DatePickerContext);\n}\n"],"names":[],"mappings":";;;AAyBa,MAAA,iBAAA,GAAoB,cAE/B,mBAAqB,EAAA;AAAA,EACrB,SAAW,EAAA,KAAA;AAAA,EACX,SAAS,MAAM,KAAA,CAAA;AAAA,EACf,QAAU,EAAA,KAAA;AAAA,EACV,YAAc,EAAA,KAAA,CAAA;AAAA,EACd,mBAAqB,EAAA,KAAA,CAAA;AAAA,EACrB,iBAAiB,MAAM,KAAA,CAAA;AAAA,EACvB,iBAAmB,EAAA,KAAA,CAAA;AAAA,EACnB,sBAAsB,MAAM,KAAA,CAAA;AAAA,EAC5B,eAAiB,EAAA,KAAA,CAAA;AAAA,EACjB,oBAAoB,MAAM,KAAA,CAAA;AAAA,EAC1B,gBAAkB,EAAA,SAAA;AAAA,EAClB,gBAAA,EAAkB,OAAO,EAAC;AAC5B,CAAC;AAEM,SAAS,oBAAuB,GAAA;AACrC,EAAA,OAAO,WAAW,iBAAiB,CAAA;AACrC;;;;"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var dateInputPanelCss = ".saltDatePickerPanel {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n display: flex;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n.saltDatePickerPanel-container {\n width: min-content;\n gap: 1px;\n}\n\n.saltDatePickerPanel-header {\n padding: var(--salt-spacing-100);\n}\n";
|
|
2
|
-
|
|
3
|
-
export { dateInputPanelCss as default };
|
|
4
|
-
//# sourceMappingURL=DatePickerPanel.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|