@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,248 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var date = require('@internationalized/date');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var cx = require('clsx');
|
|
6
|
-
var isPlainObject = require('../utils/isPlainObject.js');
|
|
7
|
-
var CalendarContext = require('./internal/CalendarContext.js');
|
|
8
|
-
|
|
9
|
-
function addOrRemoveFromArray(array, item) {
|
|
10
|
-
if (Array.isArray(array)) {
|
|
11
|
-
if (array.find((element) => date.isSameDay(element, item))) {
|
|
12
|
-
return array.filter((element) => !date.isSameDay(element, item));
|
|
13
|
-
}
|
|
14
|
-
return array.concat(item);
|
|
15
|
-
}
|
|
16
|
-
return [item];
|
|
17
|
-
}
|
|
18
|
-
const defaultOffset = (date) => date;
|
|
19
|
-
function isRangeOrOffsetSelectionValue(selectionValue) {
|
|
20
|
-
return selectionValue != null && isPlainObject.isPlainObject(selectionValue);
|
|
21
|
-
}
|
|
22
|
-
function isRangeOrOffsetSelectionWithStartDate(selectionValue) {
|
|
23
|
-
return isRangeOrOffsetSelectionValue(selectionValue) && Object.prototype.hasOwnProperty.call(selectionValue, "startDate");
|
|
24
|
-
}
|
|
25
|
-
const withBaseName = core.makePrefixer("saltCalendarDay");
|
|
26
|
-
function useSelectionCalendar(props) {
|
|
27
|
-
const {
|
|
28
|
-
hoveredDate: hoveredDateProp,
|
|
29
|
-
selectedDate: selectedDateProp,
|
|
30
|
-
defaultSelectedDate,
|
|
31
|
-
// onSelectedDateChange,
|
|
32
|
-
onHoveredDateChange,
|
|
33
|
-
isDaySelectable,
|
|
34
|
-
selectionVariant
|
|
35
|
-
// startDateOffset,
|
|
36
|
-
// endDateOffset,
|
|
37
|
-
} = props;
|
|
38
|
-
const [selectedDate, setSelectedDateState] = core.useControlled({
|
|
39
|
-
controlled: selectedDateProp,
|
|
40
|
-
default: defaultSelectedDate,
|
|
41
|
-
name: "Calendar",
|
|
42
|
-
state: "selectedDate"
|
|
43
|
-
});
|
|
44
|
-
const getStartDateOffset = (date) => {
|
|
45
|
-
if (props.selectionVariant === "offset" && props.startDateOffset) {
|
|
46
|
-
return props.startDateOffset(date);
|
|
47
|
-
}
|
|
48
|
-
return defaultOffset(date);
|
|
49
|
-
};
|
|
50
|
-
const getEndDateOffset = (date) => {
|
|
51
|
-
if (props.selectionVariant === "offset" && props.endDateOffset) {
|
|
52
|
-
return props.endDateOffset(date);
|
|
53
|
-
}
|
|
54
|
-
return defaultOffset(date);
|
|
55
|
-
};
|
|
56
|
-
const setSelectedDate = (event, newSelectedDate) => {
|
|
57
|
-
if (isDaySelectable(newSelectedDate)) {
|
|
58
|
-
switch (props.selectionVariant) {
|
|
59
|
-
case "default":
|
|
60
|
-
setSelectedDateState(newSelectedDate);
|
|
61
|
-
props.onSelectedDateChange?.(event, newSelectedDate);
|
|
62
|
-
break;
|
|
63
|
-
case "multiselect": {
|
|
64
|
-
const newDates = addOrRemoveFromArray(
|
|
65
|
-
selectedDate ?? [],
|
|
66
|
-
newSelectedDate
|
|
67
|
-
);
|
|
68
|
-
setSelectedDateState(newDates);
|
|
69
|
-
props.onSelectedDateChange?.(event, newDates);
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
case "range": {
|
|
73
|
-
let base = selectedDate;
|
|
74
|
-
if (isRangeOrOffsetSelectionValue(base)) {
|
|
75
|
-
if (base?.startDate && base?.endDate) {
|
|
76
|
-
base = { startDate: newSelectedDate };
|
|
77
|
-
} else if (base?.startDate && newSelectedDate.compare(base.startDate) > 0) {
|
|
78
|
-
base = { ...base, endDate: newSelectedDate };
|
|
79
|
-
} else {
|
|
80
|
-
base = { startDate: newSelectedDate };
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
base = { startDate: newSelectedDate };
|
|
84
|
-
}
|
|
85
|
-
setSelectedDateState(base);
|
|
86
|
-
props.onSelectedDateChange?.(event, base);
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case "offset": {
|
|
90
|
-
const newRange = {
|
|
91
|
-
startDate: getStartDateOffset(newSelectedDate),
|
|
92
|
-
endDate: getEndDateOffset(newSelectedDate)
|
|
93
|
-
};
|
|
94
|
-
setSelectedDateState(newRange);
|
|
95
|
-
props.onSelectedDateChange?.(event, newRange);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
const isSelected = (date$1) => {
|
|
101
|
-
switch (selectionVariant) {
|
|
102
|
-
case "default":
|
|
103
|
-
return selectedDate instanceof date.CalendarDate && date.isSameDay(selectedDate, date$1);
|
|
104
|
-
case "multiselect":
|
|
105
|
-
return Array.isArray(selectedDate) && !!selectedDate.find((element) => date.isSameDay(element, date$1));
|
|
106
|
-
default:
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const [hoveredDate, setHoveredDateState] = core.useControlled({
|
|
111
|
-
controlled: hoveredDateProp,
|
|
112
|
-
default: void 0,
|
|
113
|
-
name: "Calendar",
|
|
114
|
-
state: "hoveredDate"
|
|
115
|
-
});
|
|
116
|
-
const setHoveredDate = (event, date) => {
|
|
117
|
-
setHoveredDateState(date);
|
|
118
|
-
onHoveredDateChange?.(event, date);
|
|
119
|
-
};
|
|
120
|
-
const isHovered = (date$1) => {
|
|
121
|
-
return !!hoveredDate && date.isSameDay(date$1, hoveredDate);
|
|
122
|
-
};
|
|
123
|
-
const isSelectedSpan = (date) => {
|
|
124
|
-
if ((selectionVariant === "range" || selectionVariant === "offset") && isRangeOrOffsetSelectionValue(selectedDate) && selectedDate?.startDate && selectedDate?.endDate) {
|
|
125
|
-
return date.compare(selectedDate.startDate) > 0 && date.compare(selectedDate.endDate) < 0;
|
|
126
|
-
}
|
|
127
|
-
return false;
|
|
128
|
-
};
|
|
129
|
-
const isHoveredSpan = (date$1) => {
|
|
130
|
-
if ((selectionVariant === "range" || selectionVariant === "offset") && isRangeOrOffsetSelectionValue(selectedDate) && selectedDate.startDate && !selectedDate.endDate && hoveredDate) {
|
|
131
|
-
const isForwardRange = hoveredDate.compare(selectedDate.startDate) > 0 && (date$1.compare(selectedDate.startDate) > 0 && date$1.compare(hoveredDate) < 0 || date.isSameDay(date$1, hoveredDate));
|
|
132
|
-
const isValidDayHovered = isDaySelectable(hoveredDate);
|
|
133
|
-
return isForwardRange && isValidDayHovered;
|
|
134
|
-
}
|
|
135
|
-
return false;
|
|
136
|
-
};
|
|
137
|
-
const isSelectedStart = (date$1) => {
|
|
138
|
-
if ((selectionVariant === "range" || selectionVariant === "offset") && isRangeOrOffsetSelectionValue(selectedDate) && selectedDate.startDate) {
|
|
139
|
-
return date.isSameDay(selectedDate.startDate, date$1);
|
|
140
|
-
}
|
|
141
|
-
return false;
|
|
142
|
-
};
|
|
143
|
-
const isSelectedEnd = (date$1) => {
|
|
144
|
-
if ((selectionVariant === "range" || selectionVariant === "offset") && isRangeOrOffsetSelectionValue(selectedDate) && selectedDate.endDate) {
|
|
145
|
-
return date.isSameDay(selectedDate.endDate, date$1);
|
|
146
|
-
}
|
|
147
|
-
return false;
|
|
148
|
-
};
|
|
149
|
-
const isHoveredOffset = (date) => {
|
|
150
|
-
if (hoveredDate && selectionVariant === "offset") {
|
|
151
|
-
const startDate = getStartDateOffset(hoveredDate);
|
|
152
|
-
const endDate = getEndDateOffset(hoveredDate);
|
|
153
|
-
return date.compare(startDate) >= 0 && date.compare(endDate) <= 0 && isDaySelectable(date);
|
|
154
|
-
}
|
|
155
|
-
return false;
|
|
156
|
-
};
|
|
157
|
-
return {
|
|
158
|
-
state: {
|
|
159
|
-
selectedDate,
|
|
160
|
-
hoveredDate
|
|
161
|
-
},
|
|
162
|
-
helpers: {
|
|
163
|
-
setSelectedDate,
|
|
164
|
-
isSelected,
|
|
165
|
-
setHoveredDate,
|
|
166
|
-
isHovered,
|
|
167
|
-
isSelectedSpan,
|
|
168
|
-
isHoveredSpan,
|
|
169
|
-
isSelectedStart,
|
|
170
|
-
isSelectedEnd,
|
|
171
|
-
isHoveredOffset
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
function useSelectionDay({ date }) {
|
|
176
|
-
const {
|
|
177
|
-
helpers: {
|
|
178
|
-
setSelectedDate,
|
|
179
|
-
isSelected,
|
|
180
|
-
setHoveredDate,
|
|
181
|
-
isSelectedSpan,
|
|
182
|
-
isHoveredSpan,
|
|
183
|
-
isSelectedStart,
|
|
184
|
-
isSelectedEnd,
|
|
185
|
-
isHovered,
|
|
186
|
-
isHoveredOffset,
|
|
187
|
-
isDayUnselectable
|
|
188
|
-
}
|
|
189
|
-
} = CalendarContext.useCalendarContext();
|
|
190
|
-
const handleClick = (event) => {
|
|
191
|
-
setSelectedDate(event, date);
|
|
192
|
-
};
|
|
193
|
-
const handleKeyDown = (event) => {
|
|
194
|
-
switch (event.key) {
|
|
195
|
-
case "Space":
|
|
196
|
-
case "Enter":
|
|
197
|
-
setSelectedDate(event, date);
|
|
198
|
-
event.preventDefault();
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
const handleMouseOver = (event) => {
|
|
202
|
-
setHoveredDate(event, date);
|
|
203
|
-
};
|
|
204
|
-
const handleMouseLeave = (event) => {
|
|
205
|
-
setHoveredDate(event, null);
|
|
206
|
-
};
|
|
207
|
-
const selected = isSelected(date);
|
|
208
|
-
const selectedSpan = isSelectedSpan(date);
|
|
209
|
-
const hoveredSpan = isHoveredSpan(date);
|
|
210
|
-
const selectedStart = isSelectedStart(date);
|
|
211
|
-
const selectedEnd = isSelectedEnd(date);
|
|
212
|
-
const hovered = isHovered(date);
|
|
213
|
-
const hoveredOffset = isHoveredOffset(date);
|
|
214
|
-
return {
|
|
215
|
-
handleClick,
|
|
216
|
-
handleKeyDown,
|
|
217
|
-
handleMouseOver,
|
|
218
|
-
handleMouseLeave,
|
|
219
|
-
status: {
|
|
220
|
-
selected,
|
|
221
|
-
selectedSpan,
|
|
222
|
-
hoveredSpan,
|
|
223
|
-
selectedStart,
|
|
224
|
-
selectedEnd,
|
|
225
|
-
hovered,
|
|
226
|
-
hoveredOffset
|
|
227
|
-
},
|
|
228
|
-
dayProps: {
|
|
229
|
-
className: cx.clsx({
|
|
230
|
-
[withBaseName("selected")]: selected,
|
|
231
|
-
[withBaseName("selectedSpan")]: selectedSpan,
|
|
232
|
-
[withBaseName("hoveredSpan")]: hoveredSpan,
|
|
233
|
-
[withBaseName("selectedStart")]: selectedStart,
|
|
234
|
-
[withBaseName("selectedEnd")]: selectedEnd,
|
|
235
|
-
[withBaseName("hovered")]: hovered,
|
|
236
|
-
[withBaseName("hoveredOffset")]: hoveredOffset
|
|
237
|
-
}),
|
|
238
|
-
"aria-pressed": selected || selectedEnd || selectedStart || selectedSpan ? "true" : void 0,
|
|
239
|
-
"aria-disabled": isDayUnselectable(date) ? "true" : void 0
|
|
240
|
-
}
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
exports.isRangeOrOffsetSelectionValue = isRangeOrOffsetSelectionValue;
|
|
245
|
-
exports.isRangeOrOffsetSelectionWithStartDate = isRangeOrOffsetSelectionWithStartDate;
|
|
246
|
-
exports.useSelectionCalendar = useSelectionCalendar;
|
|
247
|
-
exports.useSelectionDay = useSelectionDay;
|
|
248
|
-
//# sourceMappingURL=useSelection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSelection.js","sources":["../../../../packages/vuu-ui-controls/src/calendar/useSelection.ts"],"sourcesContent":["import {\n CalendarDate,\n type DateValue,\n isSameDay,\n} from \"@internationalized/date\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport type {\n KeyboardEventHandler,\n MouseEventHandler,\n SyntheticEvent,\n} from \"react\";\nimport { isPlainObject } from \"../utils\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\n\ninterface BaseUseSelectionCalendarProps<SelectionVariantType> {\n hoveredDate?: DateValue | null;\n selectedDate?: SelectionVariantType | null;\n defaultSelectedDate?: SelectionVariantType;\n onSelectedDateChange?: (\n event: SyntheticEvent,\n selectedDate: SelectionVariantType,\n ) => void;\n isDaySelectable: (date?: DateValue) => boolean;\n onHoveredDateChange?: (\n event: SyntheticEvent,\n hoveredDate: DateValue | null,\n ) => void;\n}\n\nexport type SingleSelectionValueType = DateValue;\ntype MultiSelectionValueType = DateValue[];\nexport type RangeSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\ntype OffsetSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\n\ntype AllSelectionValueType =\n | SingleSelectionValueType\n | MultiSelectionValueType\n | RangeSelectionValueType\n | OffsetSelectionValueType\n | null;\n\nexport interface UseOffsetSelectionCalendarProps\n extends Omit<\n BaseUseSelectionCalendarProps<OffsetSelectionValueType>,\n \"startDateOffset\" | \"endDateOffset\"\n > {\n selectionVariant: \"offset\";\n startDateOffset?: (date: DateValue) => DateValue;\n endDateOffset?: (date: DateValue) => DateValue;\n}\n\nexport interface UseRangeSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<RangeSelectionValueType> {\n selectionVariant: \"range\";\n}\n\nexport interface UseMultiSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<MultiSelectionValueType> {\n selectionVariant: \"multiselect\";\n}\n\nexport interface UseSingleSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<SingleSelectionValueType> {\n selectionVariant: \"default\";\n}\n\nexport type useSelectionCalendarProps =\n | UseSingleSelectionCalendarProps\n | UseMultiSelectionCalendarProps\n | UseRangeSelectionCalendarProps\n | UseOffsetSelectionCalendarProps;\n\nfunction addOrRemoveFromArray(\n array: AllSelectionValueType | null,\n item: DateValue,\n) {\n if (Array.isArray(array)) {\n if (array.find((element) => isSameDay(element, item))) {\n return array.filter((element) => !isSameDay(element, item));\n }\n return array.concat(item);\n }\n return [item];\n}\n\nconst defaultOffset = (date: DateValue) => date;\n\nexport function isRangeOrOffsetSelectionValue(\n selectionValue?: AllSelectionValueType,\n): selectionValue is RangeSelectionValueType | OffsetSelectionValueType {\n return selectionValue != null && isPlainObject(selectionValue);\n}\n\nexport function isRangeOrOffsetSelectionWithStartDate(\n selectionValue?: AllSelectionValueType,\n): selectionValue is RangeSelectionValueType | OffsetSelectionValueType {\n return (\n isRangeOrOffsetSelectionValue(selectionValue) &&\n Object.prototype.hasOwnProperty.call(selectionValue, \"startDate\")\n );\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport function useSelectionCalendar(props: useSelectionCalendarProps) {\n const {\n hoveredDate: hoveredDateProp,\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n // onSelectedDateChange,\n onHoveredDateChange,\n isDaySelectable,\n selectionVariant,\n // startDateOffset,\n // endDateOffset,\n } = props;\n const [selectedDate, setSelectedDateState] = useControlled({\n controlled: selectedDateProp,\n default: defaultSelectedDate,\n name: \"Calendar\",\n state: \"selectedDate\",\n });\n\n const getStartDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.startDateOffset) {\n return props.startDateOffset(date);\n }\n return defaultOffset(date);\n };\n\n const getEndDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.endDateOffset) {\n return props.endDateOffset(date);\n }\n return defaultOffset(date);\n };\n\n const setSelectedDate = (\n event: SyntheticEvent<HTMLButtonElement>,\n newSelectedDate: DateValue,\n ) => {\n if (isDaySelectable(newSelectedDate)) {\n switch (props.selectionVariant) {\n case \"default\":\n setSelectedDateState(newSelectedDate);\n props.onSelectedDateChange?.(event, newSelectedDate);\n break;\n case \"multiselect\": {\n const newDates = addOrRemoveFromArray(\n selectedDate ?? [],\n newSelectedDate,\n );\n setSelectedDateState(newDates);\n props.onSelectedDateChange?.(event, newDates);\n break;\n }\n case \"range\": {\n let base = selectedDate;\n if (isRangeOrOffsetSelectionValue(base)) {\n if (base?.startDate && base?.endDate) {\n base = { startDate: newSelectedDate };\n } else if (\n base?.startDate &&\n newSelectedDate.compare(base.startDate) > 0\n ) {\n base = { ...base, endDate: newSelectedDate };\n } else {\n base = { startDate: newSelectedDate };\n }\n } else {\n base = { startDate: newSelectedDate };\n }\n setSelectedDateState(base);\n props.onSelectedDateChange?.(event, base);\n break;\n }\n case \"offset\": {\n const newRange = {\n startDate: getStartDateOffset(newSelectedDate),\n endDate: getEndDateOffset(newSelectedDate),\n };\n setSelectedDateState(newRange);\n props.onSelectedDateChange?.(event, newRange);\n }\n }\n }\n };\n\n const isSelected = (date: DateValue) => {\n switch (selectionVariant) {\n case \"default\":\n return (\n selectedDate instanceof CalendarDate && isSameDay(selectedDate, date)\n );\n case \"multiselect\":\n return (\n Array.isArray(selectedDate) &&\n !!selectedDate.find((element) => isSameDay(element, date))\n );\n default:\n return false;\n }\n };\n\n const [hoveredDate, setHoveredDateState] = useControlled({\n controlled: hoveredDateProp,\n default: undefined,\n name: \"Calendar\",\n state: \"hoveredDate\",\n });\n\n const setHoveredDate = (event: SyntheticEvent, date: DateValue | null) => {\n setHoveredDateState(date);\n onHoveredDateChange?.(event, date);\n };\n\n const isHovered = (date: DateValue) => {\n return !!hoveredDate && isSameDay(date, hoveredDate);\n };\n\n const isSelectedSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate?.startDate &&\n selectedDate?.endDate\n ) {\n return (\n date.compare(selectedDate.startDate) > 0 &&\n date.compare(selectedDate.endDate) < 0\n );\n }\n return false;\n };\n const isHoveredSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate &&\n !selectedDate.endDate &&\n hoveredDate\n ) {\n const isForwardRange =\n hoveredDate.compare(selectedDate.startDate) > 0 &&\n ((date.compare(selectedDate.startDate) > 0 &&\n date.compare(hoveredDate) < 0) ||\n isSameDay(date, hoveredDate));\n\n const isValidDayHovered = isDaySelectable(hoveredDate);\n\n return isForwardRange && isValidDayHovered;\n }\n return false;\n };\n\n const isSelectedStart = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate\n ) {\n return isSameDay(selectedDate.startDate, date);\n }\n return false;\n };\n\n const isSelectedEnd = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.endDate\n ) {\n return isSameDay(selectedDate.endDate, date);\n }\n return false;\n };\n\n const isHoveredOffset = (date: DateValue) => {\n if (hoveredDate && selectionVariant === \"offset\") {\n const startDate = getStartDateOffset(hoveredDate);\n const endDate = getEndDateOffset(hoveredDate);\n\n return (\n date.compare(startDate) >= 0 &&\n date.compare(endDate) <= 0 &&\n isDaySelectable(date)\n );\n }\n\n return false;\n };\n\n return {\n state: {\n selectedDate,\n hoveredDate,\n },\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isHovered,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHoveredOffset,\n },\n };\n}\n\nexport function useSelectionDay({ date }: { date: DateValue }) {\n const {\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHovered,\n isHoveredOffset,\n isDayUnselectable,\n },\n } = useCalendarContext();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setSelectedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n switch (event.key) {\n case \"Space\":\n case \"Enter\":\n setSelectedDate(event, date);\n event.preventDefault();\n }\n };\n\n const handleMouseOver: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, date);\n };\n\n const handleMouseLeave: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, null);\n };\n\n const selected = isSelected(date);\n const selectedSpan = isSelectedSpan(date);\n const hoveredSpan = isHoveredSpan(date);\n const selectedStart = isSelectedStart(date);\n const selectedEnd = isSelectedEnd(date);\n const hovered = isHovered(date);\n const hoveredOffset = isHoveredOffset(date);\n\n return {\n handleClick,\n handleKeyDown,\n handleMouseOver,\n handleMouseLeave,\n status: {\n selected,\n selectedSpan,\n hoveredSpan,\n selectedStart,\n selectedEnd,\n hovered,\n hoveredOffset,\n },\n dayProps: {\n className: clsx({\n [withBaseName(\"selected\")]: selected,\n [withBaseName(\"selectedSpan\")]: selectedSpan,\n [withBaseName(\"hoveredSpan\")]: hoveredSpan,\n [withBaseName(\"selectedStart\")]: selectedStart,\n [withBaseName(\"selectedEnd\")]: selectedEnd,\n [withBaseName(\"hovered\")]: hovered,\n [withBaseName(\"hoveredOffset\")]: hoveredOffset,\n }),\n \"aria-pressed\":\n selected || selectedEnd || selectedStart || selectedSpan\n ? \"true\"\n : undefined,\n \"aria-disabled\": isDayUnselectable(date) ? \"true\" : undefined,\n },\n };\n}\n"],"names":["isSameDay","isPlainObject","makePrefixer","useControlled","date","CalendarDate","useCalendarContext","clsx"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnPicker.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var react = require('@floating-ui/react');
|
|
5
|
-
var core = require('@salt-ds/core');
|
|
6
|
-
var styles = require('@salt-ds/styles');
|
|
7
|
-
var window = require('@salt-ds/window');
|
|
8
|
-
var cx = require('clsx');
|
|
9
|
-
var React = require('react');
|
|
10
|
-
var IconButton = require('../icon-button/IconButton.js');
|
|
11
|
-
var ColumnSearch = require('./ColumnSearch.js');
|
|
12
|
-
var ColumnPicker$1 = require('./ColumnPicker.css.js');
|
|
13
|
-
|
|
14
|
-
const classBase = "vuuColumnPicker";
|
|
15
|
-
const FloatingColumnSearch = React.forwardRef(function FloatingColumnSearch2(props, ref) {
|
|
16
|
-
const { children, className, collapsed, open, ...rest } = props;
|
|
17
|
-
const { Component: FloatingComponent } = core.useFloatingComponent();
|
|
18
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19
|
-
FloatingComponent,
|
|
20
|
-
{
|
|
21
|
-
className: cx(
|
|
22
|
-
classBase,
|
|
23
|
-
{
|
|
24
|
-
[`${classBase}-collapsed`]: collapsed
|
|
25
|
-
},
|
|
26
|
-
className
|
|
27
|
-
),
|
|
28
|
-
role: "listbox",
|
|
29
|
-
open,
|
|
30
|
-
...rest,
|
|
31
|
-
ref,
|
|
32
|
-
children
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
});
|
|
36
|
-
const ColumnPicker = React.forwardRef(
|
|
37
|
-
function ColumnPicker2({
|
|
38
|
-
columns,
|
|
39
|
-
icon = "add",
|
|
40
|
-
iconSize,
|
|
41
|
-
onSelectionChange,
|
|
42
|
-
selected,
|
|
43
|
-
...htmlAttributes
|
|
44
|
-
}, forwardedRef) {
|
|
45
|
-
const targetWindow = window.useWindow();
|
|
46
|
-
styles.useComponentCssInjection({
|
|
47
|
-
testId: "vuu-column-picker",
|
|
48
|
-
css: ColumnPicker$1,
|
|
49
|
-
window: targetWindow
|
|
50
|
-
});
|
|
51
|
-
const [open, setOpen] = React.useState(false);
|
|
52
|
-
const listId = core.useIdMemo();
|
|
53
|
-
const { context, x, y, strategy, elements, floating, reference } = core.useFloatingUI({
|
|
54
|
-
open,
|
|
55
|
-
onOpenChange: setOpen,
|
|
56
|
-
placement: "bottom-start",
|
|
57
|
-
strategy: "fixed",
|
|
58
|
-
middleware: [
|
|
59
|
-
react.size({
|
|
60
|
-
apply({ rects, elements: elements2, availableHeight }) {
|
|
61
|
-
Object.assign(elements2.floating.style, {
|
|
62
|
-
minWidth: `${rects.reference.width}px`,
|
|
63
|
-
maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}),
|
|
67
|
-
react.flip({ fallbackStrategy: "initialPlacement" })
|
|
68
|
-
]
|
|
69
|
-
});
|
|
70
|
-
const { getReferenceProps, getFloatingProps } = react.useInteractions([
|
|
71
|
-
react.useDismiss(context),
|
|
72
|
-
react.useClick(context, { keyboardHandlers: false, toggle: false })
|
|
73
|
-
]);
|
|
74
|
-
const handleButtonClick = () => {
|
|
75
|
-
setOpen((isOpen) => !isOpen);
|
|
76
|
-
};
|
|
77
|
-
const forkedRef = core.useForkRef(reference, forwardedRef);
|
|
78
|
-
const handleChange = () => {
|
|
79
|
-
console.log("handleChange");
|
|
80
|
-
};
|
|
81
|
-
const handleReorderColumns = () => {
|
|
82
|
-
console.log("handleMoveListItem");
|
|
83
|
-
};
|
|
84
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
85
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
IconButton.IconButton,
|
|
87
|
-
{
|
|
88
|
-
...htmlAttributes,
|
|
89
|
-
...getReferenceProps(),
|
|
90
|
-
icon,
|
|
91
|
-
size: iconSize,
|
|
92
|
-
onClick: handleButtonClick,
|
|
93
|
-
ref: forkedRef,
|
|
94
|
-
variant: "secondary"
|
|
95
|
-
}
|
|
96
|
-
),
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
98
|
-
FloatingColumnSearch,
|
|
99
|
-
{
|
|
100
|
-
...getFloatingProps(),
|
|
101
|
-
open,
|
|
102
|
-
collapsed: !open,
|
|
103
|
-
id: listId,
|
|
104
|
-
left: x,
|
|
105
|
-
position: strategy,
|
|
106
|
-
ref: floating,
|
|
107
|
-
top: y,
|
|
108
|
-
width: elements.floating?.offsetWidth,
|
|
109
|
-
height: elements.floating?.offsetHeight,
|
|
110
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
111
|
-
ColumnSearch.ColumnSearch,
|
|
112
|
-
{
|
|
113
|
-
columns,
|
|
114
|
-
onChange: handleChange,
|
|
115
|
-
onReorderColumns: handleReorderColumns,
|
|
116
|
-
onSelectionChange,
|
|
117
|
-
selected,
|
|
118
|
-
style: { width: 220, height: 300 }
|
|
119
|
-
}
|
|
120
|
-
)
|
|
121
|
-
}
|
|
122
|
-
)
|
|
123
|
-
] });
|
|
124
|
-
}
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
exports.ColumnPicker = ColumnPicker;
|
|
128
|
-
//# sourceMappingURL=ColumnPicker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnPicker.js","sources":["../../../../packages/vuu-ui-controls/src/column-picker/ColumnPicker.tsx"],"sourcesContent":["import {\n flip,\n size,\n useClick,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport {\n FloatingComponentProps,\n useFloatingComponent,\n useFloatingUI,\n useForkRef,\n useIdMemo,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cx from \"clsx\";\nimport { forwardRef, useState } from \"react\";\nimport { IconButton, IconButtonProps } from \"../icon-button\";\nimport { ColumnSearch, ColumnSearchProps } from \"./ColumnSearch\";\n\nimport columnPickerCss from \"./ColumnPicker.css\";\n\nconst classBase = \"vuuColumnPicker\";\n\ninterface FloatingColumnSearchProps extends FloatingComponentProps {\n collapsed?: boolean;\n}\n\nconst FloatingColumnSearch = forwardRef<\n HTMLDivElement,\n FloatingColumnSearchProps\n>(function FloatingColumnSearch(props, ref) {\n const { children, className, collapsed, open, ...rest } = props;\n\n const { Component: FloatingComponent } = useFloatingComponent();\n return (\n <FloatingComponent\n className={cx(\n classBase,\n {\n [`${classBase}-collapsed`]: collapsed,\n },\n className,\n )}\n role=\"listbox\"\n open={open}\n {...rest}\n ref={ref}\n >\n {children}\n </FloatingComponent>\n );\n});\n\nexport interface ColumnPickerProps\n extends Omit<IconButtonProps, \"icon\">,\n Pick<ColumnSearchProps, \"columns\" | \"onSelectionChange\" | \"selected\"> {\n icon?: string;\n iconSize?: number;\n}\n\nexport const ColumnPicker = forwardRef<HTMLButtonElement, ColumnPickerProps>(\n function ColumnPicker(\n {\n columns,\n icon = \"add\",\n iconSize,\n onSelectionChange,\n selected,\n ...htmlAttributes\n },\n forwardedRef,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-picker\",\n css: columnPickerCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n\n const listId = useIdMemo();\n const { context, x, y, strategy, elements, floating, reference } =\n useFloatingUI({\n open,\n onOpenChange: setOpen,\n placement: \"bottom-start\",\n strategy: \"fixed\",\n middleware: [\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n minWidth: `${rects.reference.width}px`,\n maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`,\n });\n },\n }),\n flip({ fallbackStrategy: \"initialPlacement\" }),\n ],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n useClick(context, { keyboardHandlers: false, toggle: false }),\n ]);\n\n const handleButtonClick = () => {\n setOpen((isOpen) => !isOpen);\n };\n\n const forkedRef = useForkRef<HTMLButtonElement>(reference, forwardedRef);\n\n const handleChange = () => {\n console.log(\"handleChange\");\n };\n const handleReorderColumns = () => {\n console.log(\"handleMoveListItem\");\n };\n\n return (\n <>\n <IconButton\n {...htmlAttributes}\n {...getReferenceProps()}\n icon={icon}\n size={iconSize}\n onClick={handleButtonClick}\n ref={forkedRef}\n variant=\"secondary\"\n />\n <FloatingColumnSearch\n {...getFloatingProps()}\n open={open}\n collapsed={!open}\n id={listId}\n left={x}\n position={strategy}\n ref={floating}\n top={y}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n >\n <ColumnSearch\n columns={columns}\n onChange={handleChange}\n onReorderColumns={handleReorderColumns}\n onSelectionChange={onSelectionChange}\n selected={selected}\n style={{ width: 220, height: 300 }}\n />\n </FloatingColumnSearch>\n </>\n );\n },\n);\n"],"names":["forwardRef","FloatingColumnSearch","useFloatingComponent","jsx","ColumnPicker","useWindow","useComponentCssInjection","columnPickerCss","useState","useIdMemo","useFloatingUI","size","elements","flip","useInteractions","useDismiss","useClick","useForkRef","jsxs","Fragment","IconButton","ColumnSearch"],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var searchableListCss = ".vuuColumnSearch {\n --vuuList-borderWidth: 0;\n --vuuColumnListItem-border: none;\n --vuuMeasuredContainer-flex: 1 1 1px;\n\n background: var(--salt-container-primary-background);\n border: solid 1px var(--salt-container-primary-borderColor);\n border-radius: 4px;\n height: 100%;\n padding: 12px 4px 12px 12px;\n display: flex;\n flex-direction: column;\n\n .vuuIcon {\n display: none;\n }\n .saltSwitch {\n display: none;\n }\n .vuuColumnList-header {\n display: none;\n }\n .vuuColumnList-colHeadings {\n display: none;\n }\n .vuuList-viewport {\n padding-right: var(--salt-spacing-100);\n }\n\n .vuuColumnListItem {\n padding-left: var(--salt-spacing-100);\n }\n\n ::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n margin-top: 15px;\n margin-bottom: 15px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #d9d9d9;\n }\n}\n\n.vuuColumnSearch-inputField {\n --vuu-icon-size: 16px;\n flex: 0 0 40px;\n margin-right: 8px;\n}\n.vuuColumnSearch-list {\n --vuuMeasuredContainer-flex: 1 1 1px;\n background-color: var(--salt-container-primary-background);\n flex: 1 1 auto;\n}\n\n.vuuColumnSearch .vuuTableCell {\n padding: 0;\n}\n";
|
|
4
|
-
|
|
5
|
-
module.exports = searchableListCss;
|
|
6
|
-
//# sourceMappingURL=ColumnSearch.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSearch.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var styles = require('@salt-ds/styles');
|
|
6
|
-
var window = require('@salt-ds/window');
|
|
7
|
-
var cx = require('clsx');
|
|
8
|
-
var React = require('react');
|
|
9
|
-
var ColumnSearch$1 = require('./ColumnSearch.css.js');
|
|
10
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
11
|
-
|
|
12
|
-
const classBase = "vuuColumnSearch";
|
|
13
|
-
const searchIcon = /* @__PURE__ */ jsxRuntime.jsx("span", { "data-icon": "search" });
|
|
14
|
-
const ColumnSearch = React.forwardRef(
|
|
15
|
-
function ColumnSearch2({
|
|
16
|
-
autoFocus = false,
|
|
17
|
-
className,
|
|
18
|
-
columns,
|
|
19
|
-
onChange,
|
|
20
|
-
onSelectionChange,
|
|
21
|
-
selected,
|
|
22
|
-
...htmlAttributes
|
|
23
|
-
}, forwardedRef) {
|
|
24
|
-
const targetWindow = window.useWindow();
|
|
25
|
-
styles.useComponentCssInjection({
|
|
26
|
-
testId: "vuu-column-picker",
|
|
27
|
-
css: ColumnSearch$1,
|
|
28
|
-
window: targetWindow
|
|
29
|
-
});
|
|
30
|
-
const selectedValues = React.useRef([]);
|
|
31
|
-
const searchCallbackRef = React.useCallback((el) => {
|
|
32
|
-
setTimeout(() => {
|
|
33
|
-
el?.querySelector("input")?.focus();
|
|
34
|
-
}, 100);
|
|
35
|
-
}, []);
|
|
36
|
-
const handleChange = React.useCallback(
|
|
37
|
-
(e) => {
|
|
38
|
-
const input = e.target;
|
|
39
|
-
const { columnName } = vuuUtils.queryClosest(
|
|
40
|
-
input,
|
|
41
|
-
"[data-column-name]",
|
|
42
|
-
true
|
|
43
|
-
).dataset;
|
|
44
|
-
if (columnName) {
|
|
45
|
-
if (input.checked) {
|
|
46
|
-
selectedValues.current = selectedValues.current.concat(columnName);
|
|
47
|
-
} else {
|
|
48
|
-
selectedValues.current = selectedValues.current.filter(
|
|
49
|
-
(val) => val !== columnName
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
onSelectionChange?.(e, selectedValues.current);
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
[onSelectionChange]
|
|
56
|
-
);
|
|
57
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
58
|
-
"div",
|
|
59
|
-
{
|
|
60
|
-
...htmlAttributes,
|
|
61
|
-
className: cx(classBase, className),
|
|
62
|
-
ref: forwardedRef,
|
|
63
|
-
children: [
|
|
64
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-inputField`, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
-
core.Input,
|
|
66
|
-
{
|
|
67
|
-
startAdornment: searchIcon,
|
|
68
|
-
ref: autoFocus ? searchCallbackRef : null
|
|
69
|
-
}
|
|
70
|
-
) }),
|
|
71
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.ListBox, { children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsxs(core.Option, { "data-column-name": column, value: column, children: [
|
|
72
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Checkbox, { onChange: handleChange }),
|
|
73
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: column })
|
|
74
|
-
] }, column)) })
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
exports.ColumnSearch = ColumnSearch;
|
|
82
|
-
//# sourceMappingURL=ColumnSearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSearch.js","sources":["../../../../packages/vuu-ui-controls/src/column-picker/ColumnSearch.tsx"],"sourcesContent":["import { Checkbox, Input, ListBoxProps } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n FormEventHandler,\n HTMLAttributes,\n RefCallback,\n forwardRef,\n useCallback,\n useRef,\n} from \"react\";\nimport { ListBox, Option } from \"@salt-ds/core\";\n\nimport searchableListCss from \"./ColumnSearch.css\";\nimport { queryClosest } from \"@vuu-ui/vuu-utils\";\n\nconst classBase = \"vuuColumnSearch\";\n\nexport interface ColumnSearchProps\n extends HTMLAttributes<HTMLDivElement>,\n Pick<ListBoxProps, \"onSelectionChange\" | \"selected\"> {\n columns: string[];\n onReorderColumns: (columns: string[]) => void;\n}\n\nconst searchIcon = <span data-icon=\"search\" />;\n\n/**\n * @deprecated\n *\n * use ColumnList instead\n */\nexport const ColumnSearch = forwardRef<HTMLDivElement, ColumnSearchProps>(\n function ColumnSearch(\n {\n autoFocus = false,\n className,\n columns,\n onChange,\n onSelectionChange,\n selected,\n ...htmlAttributes\n },\n forwardedRef,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-picker\",\n css: searchableListCss,\n window: targetWindow,\n });\n\n const selectedValues = useRef<string[]>([]);\n\n const searchCallbackRef = useCallback<RefCallback<HTMLElement>>((el) => {\n setTimeout(() => {\n el?.querySelector(\"input\")?.focus();\n }, 100);\n }, []);\n\n const handleChange = useCallback<FormEventHandler<HTMLInputElement>>(\n (e) => {\n const input = e.target as HTMLInputElement;\n const { columnName } = queryClosest(\n input,\n \"[data-column-name]\",\n true,\n ).dataset;\n if (columnName) {\n if (input.checked) {\n selectedValues.current = selectedValues.current.concat(columnName);\n } else {\n selectedValues.current = selectedValues.current.filter(\n (val) => val !== columnName,\n );\n }\n onSelectionChange?.(e, selectedValues.current);\n }\n },\n [onSelectionChange],\n );\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className)}\n ref={forwardedRef}\n >\n <div className={`${classBase}-inputField`}>\n <Input\n // inputProps={{ onKeyDown }}\n startAdornment={searchIcon}\n ref={autoFocus ? searchCallbackRef : null}\n // value={searchState.searchText}\n // onChange={onChange}\n />\n </div>\n <ListBox>\n {columns.map((column) => (\n <Option data-column-name={column} key={column} value={column}>\n <Checkbox onChange={handleChange} />\n <span>{column}</span>\n </Option>\n ))}\n </ListBox>\n </div>\n );\n },\n);\n"],"names":["jsx","forwardRef","ColumnSearch","useWindow","useComponentCssInjection","searchableListCss","useRef","useCallback","queryClosest","jsxs","Input","ListBox","Option","Checkbox"],"mappings":";;;;;;;;;;;AAiBA,MAAM,SAAY,GAAA,iBAAA;AASlB,MAAM,UAAa,mBAAAA,cAAA,CAAC,MAAK,EAAA,EAAA,WAAA,EAAU,QAAS,EAAA,CAAA;AAOrC,MAAM,YAAe,GAAAC,gBAAA;AAAA,EAC1B,SAASC,aACP,CAAA;AAAA,IACE,SAAY,GAAA,KAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,YACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,mBAAA;AAAA,MACR,GAAK,EAAAC,cAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAM,MAAA,cAAA,GAAiBC,YAAiB,CAAA,EAAE,CAAA;AAE1C,IAAM,MAAA,iBAAA,GAAoBC,iBAAsC,CAAA,CAAC,EAAO,KAAA;AACtE,MAAA,UAAA,CAAW,MAAM;AACf,QAAI,EAAA,EAAA,aAAA,CAAc,OAAO,CAAA,EAAG,KAAM,EAAA;AAAA,SACjC,GAAG,CAAA;AAAA,KACR,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,YAAe,GAAAA,iBAAA;AAAA,MACnB,CAAC,CAAM,KAAA;AACL,QAAA,MAAM,QAAQ,CAAE,CAAA,MAAA;AAChB,QAAM,MAAA,EAAE,YAAe,GAAAC,qBAAA;AAAA,UACrB,KAAA;AAAA,UACA,oBAAA;AAAA,UACA;AAAA,SACA,CAAA,OAAA;AACF,QAAA,IAAI,UAAY,EAAA;AACd,UAAA,IAAI,MAAM,OAAS,EAAA;AACjB,YAAA,cAAA,CAAe,OAAU,GAAA,cAAA,CAAe,OAAQ,CAAA,MAAA,CAAO,UAAU,CAAA;AAAA,WAC5D,MAAA;AACL,YAAe,cAAA,CAAA,OAAA,GAAU,eAAe,OAAQ,CAAA,MAAA;AAAA,cAC9C,CAAC,QAAQ,GAAQ,KAAA;AAAA,aACnB;AAAA;AAEF,UAAoB,iBAAA,GAAA,CAAA,EAAG,eAAe,OAAO,CAAA;AAAA;AAC/C,OACF;AAAA,MACA,CAAC,iBAAiB;AAAA,KACpB;AAEA,IACE,uBAAAC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,cAAA;AAAA,QACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,QAClC,GAAK,EAAA,YAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAAT,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,CAC1B,WAAA,CAAA,EAAA,QAAA,kBAAAA,cAAA;AAAA,YAACU,UAAA;AAAA,YAAA;AAAA,cAEC,cAAgB,EAAA,UAAA;AAAA,cAChB,GAAA,EAAK,YAAY,iBAAoB,GAAA;AAAA;AAAA,WAIzC,EAAA,CAAA;AAAA,0BACAV,cAAA,CAACW,YACE,EAAA,EAAA,QAAA,EAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,MACZ,qBAAAF,eAAA,CAACG,WAAO,EAAA,EAAA,kBAAA,EAAkB,MAAqB,EAAA,KAAA,EAAO,MACpD,EAAA,QAAA,EAAA;AAAA,4BAACZ,cAAA,CAAAa,aAAA,EAAA,EAAS,UAAU,YAAc,EAAA,CAAA;AAAA,4BAClCb,cAAA,CAAC,UAAM,QAAO,EAAA,MAAA,EAAA;AAAA,WAFuB,EAAA,EAAA,MAGvC,CACD,CACH,EAAA;AAAA;AAAA;AAAA,KACF;AAAA;AAGN;;;;"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const isSingleSelection = (s) => s === void 0 || s === "default" || s === "deselectable";
|
|
4
|
-
const isMultiSelection = (s) => s === "multiple" || s?.startsWith("extended") === true;
|
|
5
|
-
const selectionIsDisallowed = (selection) => selection === "none";
|
|
6
|
-
const allowMultipleSelection = (selectionStrategy, specialKey = false) => selectionStrategy === "multiple" || selectionStrategy === "multiple-special-key" && specialKey;
|
|
7
|
-
const deselectionIsAllowed = (selection) => selection !== "none" && selection !== "default";
|
|
8
|
-
const hasSelection = (selected) => selected !== void 0 && selected.length > 0;
|
|
9
|
-
const getFirstSelectedItem = (selected) => selected[0];
|
|
10
|
-
|
|
11
|
-
exports.allowMultipleSelection = allowMultipleSelection;
|
|
12
|
-
exports.deselectionIsAllowed = deselectionIsAllowed;
|
|
13
|
-
exports.getFirstSelectedItem = getFirstSelectedItem;
|
|
14
|
-
exports.hasSelection = hasSelection;
|
|
15
|
-
exports.isMultiSelection = isMultiSelection;
|
|
16
|
-
exports.isSingleSelection = isSingleSelection;
|
|
17
|
-
exports.selectionIsDisallowed = selectionIsDisallowed;
|
|
18
|
-
//# sourceMappingURL=selectionTypes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectionTypes.js","sources":["../../../../packages/vuu-ui-controls/src/common-hooks/selectionTypes.ts"],"sourcesContent":["import { MouseEventHandler, RefObject, SyntheticEvent } from \"react\";\n\nexport type SelectionDisallowed = \"none\";\nexport type SingleSelectionStrategy = \"default\" | \"deselectable\";\nexport type MultiSelectionStrategy =\n | \"multiple\"\n | \"extended\"\n | \"extended-multi-range\";\n\n/**\n * SpecialKeyMultiple works as deselectable unless a special key\n * (default SHIFT) is also pressed, then it allows multiple selection.\n * Useful for column sorting, filters etc\n */\nexport type SpecialKeyMultipleSelection = \"multiple-special-key\";\n\nexport type SelectionStrategy =\n | SelectionDisallowed\n | SingleSelectionStrategy\n | MultiSelectionStrategy;\n\nexport const isSingleSelection = (\n s?: SelectionStrategy,\n): s is SingleSelectionStrategy =>\n s === undefined || s === \"default\" || s === \"deselectable\";\n\nexport const isMultiSelection = (\n s?: SelectionStrategy,\n): s is MultiSelectionStrategy =>\n s === \"multiple\" || s?.startsWith(\"extended\") === true;\n\nexport type SelectHandler<Item = string> = (\n event: SyntheticEvent,\n selectedItem: Item,\n) => void;\n\nexport const selectionIsDisallowed = (\n selection?: SelectionStrategy | SpecialKeyMultipleSelection,\n): selection is SelectionDisallowed => selection === \"none\";\n\nexport const allowMultipleSelection = (\n selectionStrategy: SelectionStrategy | SpecialKeyMultipleSelection,\n specialKey = false,\n) =>\n selectionStrategy === \"multiple\" ||\n (selectionStrategy === \"multiple-special-key\" && specialKey);\n\nexport const deselectionIsAllowed = (\n selection?: SelectionStrategy | SpecialKeyMultipleSelection,\n): selection is \"deselectable\" | MultiSelectionStrategy =>\n selection !== \"none\" && selection !== \"default\";\n\nexport const hasSelection = <Item = unknown>(selected?: Item[]) =>\n selected !== undefined && selected.length > 0;\n\nexport const getFirstSelectedItem = <Item = unknown>(selected: Item[]) =>\n selected[0];\n\ninterface SelectionProps {\n defaultSelected?: string[];\n onSelect?: SelectHandler;\n onSelectionChange?: MultiSelectionHandler;\n selected?: string[];\n selectionStrategy?: SelectionStrategy;\n}\n\nexport interface ListHandlers {\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n onKeyboardNavigation?: (\n event: React.KeyboardEvent,\n currentIndex: number,\n ) => void;\n onMouseMove?: (event: React.MouseEvent) => void;\n}\nexport interface SelectionHookProps extends SelectionProps {\n containerRef: RefObject<HTMLElement | null>;\n disableSelection?: boolean;\n highlightedIndex: number;\n itemQuery: string;\n label?: string;\n onClick?: MouseEventHandler;\n selectionKeys?: string[];\n tabToSelect?: boolean;\n}\n\nexport interface SelectionHookResult {\n listHandlers: ListHandlers;\n selected: string[];\n setSelected: (selected: string[]) => void;\n}\n\n/**\n * evt is only null in the special case of a selection fired from a multi-select\n * host on tab or selection based on freeform text in combobox\n */\nexport type MultiSelectionHandler<Item = string> = (\n event: SyntheticEvent | null,\n selected: Item[],\n) => void;\n/**\n * evt is only null in the special case of freeform text in combobox\n */\nexport type SingleSelectionHandler<Item = string> = (\n event: SyntheticEvent | null,\n selected: Item,\n) => void;\n\nexport type SelectionType<\n I,\n S extends SelectionStrategy,\n> = S extends MultiSelectionStrategy ? I[] : I | null;\n\nexport interface ComponentSelectionProps<\n Item = string,\n S extends SelectionStrategy = \"default\",\n> {\n defaultSelected?: S extends MultiSelectionStrategy ? Item[] : Item;\n onSelect?: SelectHandler<Item>;\n onSelectionChange?: S extends MultiSelectionStrategy\n ? MultiSelectionHandler<Item>\n : SingleSelectionHandler<Item>;\n selected?: SelectionType<Item, S>;\n selectionStrategy?: S;\n /**\n * The keyboard keys used to effect selection, defaults to SPACE and ENTER\n * TODO maybe this belongs on the SelectionProps interface ?\n */\n selectionKeys?: string[];\n}\n"],"names":[],"mappings":";;AAqBO,MAAM,oBAAoB,CAC/B,CAAA,KAEA,MAAM,KAAa,CAAA,IAAA,CAAA,KAAM,aAAa,CAAM,KAAA;AAEjC,MAAA,gBAAA,GAAmB,CAC9B,CAEA,KAAA,CAAA,KAAM,cAAc,CAAG,EAAA,UAAA,CAAW,UAAU,CAAM,KAAA;AAOvC,MAAA,qBAAA,GAAwB,CACnC,SAAA,KACqC,SAAc,KAAA;AAExC,MAAA,sBAAA,GAAyB,CACpC,iBACA,EAAA,UAAA,GAAa,UAEb,iBAAsB,KAAA,UAAA,IACrB,sBAAsB,sBAA0B,IAAA;AAE5C,MAAM,oBAAuB,GAAA,CAClC,SAEA,KAAA,SAAA,KAAc,UAAU,SAAc,KAAA;AAEjC,MAAM,eAAe,CAAiB,QAAA,KAC3C,QAAa,KAAA,KAAA,CAAA,IAAa,SAAS,MAAS,GAAA;AAEvC,MAAM,oBAAuB,GAAA,CAAiB,QACnD,KAAA,QAAA,CAAS,CAAC;;;;;;;;;;"}
|