@vuu-ui/vuu-ui-controls 2.1.19-beta.2 → 2.1.19-beta.3
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/cjs/calendar/Calendar.css.js +6 -0
- package/cjs/calendar/Calendar.css.js.map +1 -0
- package/cjs/calendar/Calendar.js +93 -0
- package/cjs/calendar/Calendar.js.map +1 -0
- package/cjs/calendar/internal/CalendarCarousel.css.js +6 -0
- package/cjs/calendar/internal/CalendarCarousel.css.js.map +1 -0
- package/cjs/calendar/internal/CalendarCarousel.js +75 -0
- package/cjs/calendar/internal/CalendarCarousel.js.map +1 -0
- package/cjs/calendar/internal/CalendarContext.js +19 -0
- package/cjs/calendar/internal/CalendarContext.js.map +1 -0
- package/cjs/calendar/internal/CalendarDay.css.js +6 -0
- package/cjs/calendar/internal/CalendarDay.css.js.map +1 -0
- package/cjs/calendar/internal/CalendarDay.js +86 -0
- package/cjs/calendar/internal/CalendarDay.js.map +1 -0
- package/cjs/calendar/internal/CalendarMonth.css.js +6 -0
- package/cjs/calendar/internal/CalendarMonth.css.js.map +1 -0
- package/cjs/calendar/internal/CalendarMonth.js +71 -0
- package/cjs/calendar/internal/CalendarMonth.js.map +1 -0
- package/cjs/calendar/internal/CalendarNavigation.css.js +6 -0
- package/cjs/calendar/internal/CalendarNavigation.css.js.map +1 -0
- package/cjs/calendar/internal/CalendarNavigation.js +236 -0
- package/cjs/calendar/internal/CalendarNavigation.js.map +1 -0
- package/cjs/calendar/internal/CalendarWeekHeader.css.js +6 -0
- package/cjs/calendar/internal/CalendarWeekHeader.css.js.map +1 -0
- package/cjs/calendar/internal/CalendarWeekHeader.js +43 -0
- package/cjs/calendar/internal/CalendarWeekHeader.js.map +1 -0
- package/cjs/calendar/internal/useFocusManagement.js +66 -0
- package/cjs/calendar/internal/useFocusManagement.js.map +1 -0
- package/cjs/calendar/internal/utils.js +64 -0
- package/cjs/calendar/internal/utils.js.map +1 -0
- package/cjs/calendar/useCalendar.js +163 -0
- package/cjs/calendar/useCalendar.js.map +1 -0
- package/cjs/calendar/useCalendarDay.js +80 -0
- package/cjs/calendar/useCalendarDay.js.map +1 -0
- package/cjs/calendar/useSelection.js +248 -0
- package/cjs/calendar/useSelection.js.map +1 -0
- package/cjs/column-picker/ColumnPicker.css.js +6 -0
- package/cjs/column-picker/ColumnPicker.css.js.map +1 -0
- package/cjs/column-picker/ColumnPicker.js +128 -0
- package/cjs/column-picker/ColumnPicker.js.map +1 -0
- package/cjs/column-picker/ColumnSearch.css.js +6 -0
- package/cjs/column-picker/ColumnSearch.css.js.map +1 -0
- package/cjs/column-picker/ColumnSearch.js +82 -0
- package/cjs/column-picker/ColumnSearch.js.map +1 -0
- package/cjs/common-hooks/selectionTypes.js +18 -0
- package/cjs/common-hooks/selectionTypes.js.map +1 -0
- package/cjs/common-hooks/use-resize-observer.js +123 -0
- package/cjs/common-hooks/use-resize-observer.js.map +1 -0
- package/cjs/common-hooks/useControlled.js +58 -0
- package/cjs/common-hooks/useControlled.js.map +1 -0
- package/cjs/context-panel-provider/ContextPanelProvider.js +99 -0
- package/cjs/context-panel-provider/ContextPanelProvider.js.map +1 -0
- package/cjs/cycle-state-button/CycleStateButton.js +50 -0
- package/cjs/cycle-state-button/CycleStateButton.js.map +1 -0
- package/cjs/date-input/DateInput.css.js +6 -0
- package/cjs/date-input/DateInput.css.js.map +1 -0
- package/cjs/date-input/DateInput.js +277 -0
- package/cjs/date-input/DateInput.js.map +1 -0
- package/cjs/date-picker/DatePicker.js +169 -0
- package/cjs/date-picker/DatePicker.js.map +1 -0
- package/cjs/date-picker/DatePickerContext.js +26 -0
- package/cjs/date-picker/DatePickerContext.js.map +1 -0
- package/cjs/date-picker/DatePickerPanel.css.js +6 -0
- package/cjs/date-picker/DatePickerPanel.css.js.map +1 -0
- package/cjs/date-picker/DatePickerPanel.js +146 -0
- package/cjs/date-picker/DatePickerPanel.js.map +1 -0
- package/cjs/drag-drop/DragDropProvider.js +145 -0
- package/cjs/drag-drop/DragDropProvider.js.map +1 -0
- package/cjs/drag-drop/DragDropState.js +36 -0
- package/cjs/drag-drop/DragDropState.js.map +1 -0
- package/cjs/drag-drop/Draggable.css.js +6 -0
- package/cjs/drag-drop/Draggable.css.js.map +1 -0
- package/cjs/drag-drop/Draggable.js +90 -0
- package/cjs/drag-drop/Draggable.js.map +1 -0
- package/cjs/drag-drop/dragDropTypes.js +8 -0
- package/cjs/drag-drop/dragDropTypes.js.map +1 -0
- package/cjs/drag-drop/drop-target-utils.js +245 -0
- package/cjs/drag-drop/drop-target-utils.js.map +1 -0
- package/cjs/drag-drop/useAutoScroll.js +71 -0
- package/cjs/drag-drop/useAutoScroll.js.map +1 -0
- package/cjs/drag-drop/useDragDisplacers.js +160 -0
- package/cjs/drag-drop/useDragDisplacers.js.map +1 -0
- package/cjs/drag-drop/useDragDrop.js +504 -0
- package/cjs/drag-drop/useDragDrop.js.map +1 -0
- package/cjs/drag-drop/useDragDropCopy.js +34 -0
- package/cjs/drag-drop/useDragDropCopy.js.map +1 -0
- package/cjs/drag-drop/useDragDropIndicator.js +251 -0
- package/cjs/drag-drop/useDragDropIndicator.js.map +1 -0
- package/cjs/drag-drop/useDragDropNaturalMovement.js +265 -0
- package/cjs/drag-drop/useDragDropNaturalMovement.js.map +1 -0
- package/cjs/drag-drop/useDropIndicator.js +27 -0
- package/cjs/drag-drop/useDropIndicator.js.map +1 -0
- package/cjs/drag-drop/useGlobalDragDrop.js +89 -0
- package/cjs/drag-drop/useGlobalDragDrop.js.map +1 -0
- package/cjs/editable/useEditableText.js +211 -0
- package/cjs/editable/useEditableText.js.map +1 -0
- package/cjs/editable-label/EditableLabel.css.js +6 -0
- package/cjs/editable-label/EditableLabel.css.js.map +1 -0
- package/cjs/editable-label/EditableLabel.js +143 -0
- package/cjs/editable-label/EditableLabel.js.map +1 -0
- package/cjs/expando-input/ExpandoInput.css.js +6 -0
- package/cjs/expando-input/ExpandoInput.css.js.map +1 -0
- package/cjs/expando-input/ExpandoInput.js +53 -0
- package/cjs/expando-input/ExpandoInput.js.map +1 -0
- package/cjs/hover-overlay/HoverOverlay.js +96 -0
- package/cjs/hover-overlay/HoverOverlay.js.map +1 -0
- package/cjs/icon-button/Icon.css.js +6 -0
- package/cjs/icon-button/Icon.css.js.map +1 -0
- package/cjs/icon-button/Icon.js +37 -0
- package/cjs/icon-button/Icon.js.map +1 -0
- package/cjs/icon-button/IconButton.css.js +6 -0
- package/cjs/icon-button/IconButton.css.js.map +1 -0
- package/cjs/icon-button/IconButton.js +26 -0
- package/cjs/icon-button/IconButton.js.map +1 -0
- package/cjs/icon-button/ToggleIconButton.css.js +6 -0
- package/cjs/icon-button/ToggleIconButton.css.js.map +1 -0
- package/cjs/icon-button/ToggleIconButton.js +39 -0
- package/cjs/icon-button/ToggleIconButton.js.map +1 -0
- package/cjs/index.js +170 -0
- package/cjs/index.js.map +1 -0
- package/cjs/instrument-picker/TablePicker.css.js +6 -0
- package/cjs/instrument-picker/TablePicker.css.js.map +1 -0
- package/cjs/instrument-picker/TablePicker.js +130 -0
- package/cjs/instrument-picker/TablePicker.js.map +1 -0
- package/cjs/instrument-picker/useTablePicker.js +150 -0
- package/cjs/instrument-picker/useTablePicker.js.map +1 -0
- package/cjs/measured-container/MeasuredContainer.css.js +6 -0
- package/cjs/measured-container/MeasuredContainer.css.js.map +1 -0
- package/cjs/measured-container/MeasuredContainer.js +72 -0
- package/cjs/measured-container/MeasuredContainer.js.map +1 -0
- package/cjs/measured-container/useMeasuredContainer.js +167 -0
- package/cjs/measured-container/useMeasuredContainer.js.map +1 -0
- package/cjs/modal-provider/ModalProvider.js +143 -0
- package/cjs/modal-provider/ModalProvider.js.map +1 -0
- package/cjs/overflow-container/OverflowContainer.css.js +6 -0
- package/cjs/overflow-container/OverflowContainer.css.js.map +1 -0
- package/cjs/overflow-container/OverflowContainer.js +143 -0
- package/cjs/overflow-container/OverflowContainer.js.map +1 -0
- package/cjs/overflow-container/overflow-utils.js +286 -0
- package/cjs/overflow-container/overflow-utils.js.map +1 -0
- package/cjs/overflow-container/useOverflowContainer.js +143 -0
- package/cjs/overflow-container/useOverflowContainer.js.map +1 -0
- package/cjs/price-ticker/PriceTicker.css.js +6 -0
- package/cjs/price-ticker/PriceTicker.css.js.map +1 -0
- package/cjs/price-ticker/PriceTicker.js +50 -0
- package/cjs/price-ticker/PriceTicker.js.map +1 -0
- package/cjs/prompt/Prompt.css.js +6 -0
- package/cjs/prompt/Prompt.css.js.map +1 -0
- package/cjs/prompt/Prompt.js +142 -0
- package/cjs/prompt/Prompt.js.map +1 -0
- package/cjs/sortable-list/SortableList.js +37 -0
- package/cjs/sortable-list/SortableList.js.map +1 -0
- package/cjs/split-button/SplitButton.css.js +6 -0
- package/cjs/split-button/SplitButton.css.js.map +1 -0
- package/cjs/split-button/SplitButton.js +84 -0
- package/cjs/split-button/SplitButton.js.map +1 -0
- package/cjs/split-button/SplitStateButton.css.js +6 -0
- package/cjs/split-button/SplitStateButton.css.js.map +1 -0
- package/cjs/split-button/SplitStateButton.js +31 -0
- package/cjs/split-button/SplitStateButton.js.map +1 -0
- package/cjs/split-button/useSplitButton.js +84 -0
- package/cjs/split-button/useSplitButton.js.map +1 -0
- package/cjs/table-search/SearchCell.css.js +6 -0
- package/cjs/table-search/SearchCell.css.js.map +1 -0
- package/cjs/table-search/SearchCell.js +32 -0
- package/cjs/table-search/SearchCell.js.map +1 -0
- package/cjs/table-search/TableSearch.css.js +6 -0
- package/cjs/table-search/TableSearch.css.js.map +1 -0
- package/cjs/table-search/TableSearch.js +89 -0
- package/cjs/table-search/TableSearch.js.map +1 -0
- package/cjs/table-search/useTableSearch.js +39 -0
- package/cjs/table-search/useTableSearch.js.map +1 -0
- package/cjs/tabs-next/TabBar.css.js +6 -0
- package/cjs/tabs-next/TabBar.css.js.map +1 -0
- package/cjs/tabs-next/TabBar.js +41 -0
- package/cjs/tabs-next/TabBar.js.map +1 -0
- package/cjs/tabs-next/TabListNext.css.js +6 -0
- package/cjs/tabs-next/TabListNext.css.js.map +1 -0
- package/cjs/tabs-next/TabListNext.js +124 -0
- package/cjs/tabs-next/TabListNext.js.map +1 -0
- package/cjs/tabs-next/TabNext.css.js +6 -0
- package/cjs/tabs-next/TabNext.css.js.map +1 -0
- package/cjs/tabs-next/TabNext.js +110 -0
- package/cjs/tabs-next/TabNext.js.map +1 -0
- package/cjs/tabs-next/TabNextAction.js +35 -0
- package/cjs/tabs-next/TabNextAction.js.map +1 -0
- package/cjs/tabs-next/TabNextContext.js +23 -0
- package/cjs/tabs-next/TabNextContext.js.map +1 -0
- package/cjs/tabs-next/TabNextPanel.css.js +6 -0
- package/cjs/tabs-next/TabNextPanel.css.js.map +1 -0
- package/cjs/tabs-next/TabNextPanel.js +77 -0
- package/cjs/tabs-next/TabNextPanel.js.map +1 -0
- package/cjs/tabs-next/TabNextTrigger.css.js +6 -0
- package/cjs/tabs-next/TabNextTrigger.css.js.map +1 -0
- package/cjs/tabs-next/TabNextTrigger.js +74 -0
- package/cjs/tabs-next/TabNextTrigger.js.map +1 -0
- package/cjs/tabs-next/TabOverflowList.css.js +6 -0
- package/cjs/tabs-next/TabOverflowList.css.js.map +1 -0
- package/cjs/tabs-next/TabOverflowList.js +130 -0
- package/cjs/tabs-next/TabOverflowList.js.map +1 -0
- package/cjs/tabs-next/TabsNext.js +174 -0
- package/cjs/tabs-next/TabsNext.js.map +1 -0
- package/cjs/tabs-next/TabsNextContext.js +33 -0
- package/cjs/tabs-next/TabsNextContext.js.map +1 -0
- package/cjs/tabs-next/hooks/useCollection.js +91 -0
- package/cjs/tabs-next/hooks/useCollection.js.map +1 -0
- package/cjs/tabs-next/hooks/useFocusOutside.js +24 -0
- package/cjs/tabs-next/hooks/useFocusOutside.js.map +1 -0
- package/cjs/tabs-next/hooks/useOverflow.js +138 -0
- package/cjs/tabs-next/hooks/useOverflow.js.map +1 -0
- package/cjs/tabstrip/Tab.css.js +6 -0
- package/cjs/tabstrip/Tab.css.js.map +1 -0
- package/cjs/tabstrip/Tab.js +153 -0
- package/cjs/tabstrip/Tab.js.map +1 -0
- package/cjs/tabstrip/TabMenu.css.js +6 -0
- package/cjs/tabstrip/TabMenu.css.js.map +1 -0
- package/cjs/tabstrip/TabMenu.js +72 -0
- package/cjs/tabstrip/TabMenu.js.map +1 -0
- package/cjs/tabstrip/TabMenuOptions.js +20 -0
- package/cjs/tabstrip/TabMenuOptions.js.map +1 -0
- package/cjs/tabstrip/Tabstrip.css.js +6 -0
- package/cjs/tabstrip/Tabstrip.css.js.map +1 -0
- package/cjs/tabstrip/Tabstrip.js +160 -0
- package/cjs/tabstrip/Tabstrip.js.map +1 -0
- package/cjs/tabstrip/tabstrip-dom-utils.js +19 -0
- package/cjs/tabstrip/tabstrip-dom-utils.js.map +1 -0
- package/cjs/tabstrip/useAnimatedSelectionThumb.js +85 -0
- package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
- package/cjs/tabstrip/useKeyboardNavigation.js +247 -0
- package/cjs/tabstrip/useKeyboardNavigation.js.map +1 -0
- package/cjs/tabstrip/useSelection.js +60 -0
- package/cjs/tabstrip/useSelection.js.map +1 -0
- package/cjs/tabstrip/useTabstrip.js +233 -0
- package/cjs/tabstrip/useTabstrip.js.map +1 -0
- package/cjs/time-input/MaskedInput.js +377 -0
- package/cjs/time-input/MaskedInput.js.map +1 -0
- package/cjs/time-input/TimeInput.css.js +6 -0
- package/cjs/time-input/TimeInput.css.js.map +1 -0
- package/cjs/time-input/TimeInput.js +56 -0
- package/cjs/time-input/TimeInput.js.map +1 -0
- package/cjs/time-input/useTimeInput.js +121 -0
- package/cjs/time-input/useTimeInput.js.map +1 -0
- package/cjs/toolbar/Toolbar.css.js +6 -0
- package/cjs/toolbar/Toolbar.css.js.map +1 -0
- package/cjs/toolbar/Toolbar.js +90 -0
- package/cjs/toolbar/Toolbar.js.map +1 -0
- package/cjs/toolbar/toolbar-dom-utils.js +18 -0
- package/cjs/toolbar/toolbar-dom-utils.js.map +1 -0
- package/cjs/toolbar/useKeyboardNavigation.js +305 -0
- package/cjs/toolbar/useKeyboardNavigation.js.map +1 -0
- package/cjs/toolbar/useSelection.js +93 -0
- package/cjs/toolbar/useSelection.js.map +1 -0
- package/cjs/toolbar/useToolbar.js +100 -0
- package/cjs/toolbar/useToolbar.js.map +1 -0
- package/cjs/utils/escapeRegExp.js +9 -0
- package/cjs/utils/escapeRegExp.js.map +1 -0
- package/cjs/utils/forwardCallbackProps.js +22 -0
- package/cjs/utils/forwardCallbackProps.js.map +1 -0
- package/cjs/utils/isOverflowElement.js +8 -0
- package/cjs/utils/isOverflowElement.js.map +1 -0
- package/cjs/utils/isPlainObject.js +6 -0
- package/cjs/utils/isPlainObject.js.map +1 -0
- package/cjs/vuu-date-picker/VuuDatePicker.js +122 -0
- package/cjs/vuu-date-picker/VuuDatePicker.js.map +1 -0
- package/cjs/vuu-input/VuuInput.css.js +6 -0
- package/cjs/vuu-input/VuuInput.css.js.map +1 -0
- package/cjs/vuu-input/VuuInput.js +102 -0
- package/cjs/vuu-input/VuuInput.js.map +1 -0
- package/cjs/vuu-time-picker/VuuTimePicker.css.js +6 -0
- package/cjs/vuu-time-picker/VuuTimePicker.css.js.map +1 -0
- package/cjs/vuu-time-picker/VuuTimePicker.js +37 -0
- package/cjs/vuu-time-picker/VuuTimePicker.js.map +1 -0
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js +6 -0
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +1 -0
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js +80 -0
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js +176 -0
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
- package/esm/calendar/Calendar.css.js +4 -0
- package/esm/calendar/Calendar.css.js.map +1 -0
- package/esm/calendar/Calendar.js +91 -0
- package/esm/calendar/Calendar.js.map +1 -0
- package/esm/calendar/internal/CalendarCarousel.css.js +4 -0
- package/esm/calendar/internal/CalendarCarousel.css.js.map +1 -0
- package/esm/calendar/internal/CalendarCarousel.js +73 -0
- package/esm/calendar/internal/CalendarCarousel.js.map +1 -0
- package/esm/calendar/internal/CalendarContext.js +16 -0
- package/esm/calendar/internal/CalendarContext.js.map +1 -0
- package/esm/calendar/internal/CalendarDay.css.js +4 -0
- package/esm/calendar/internal/CalendarDay.css.js.map +1 -0
- package/{src → esm}/calendar/internal/CalendarDay.js +53 -33
- package/esm/calendar/internal/CalendarDay.js.map +1 -0
- package/esm/calendar/internal/CalendarMonth.css.js +4 -0
- package/esm/calendar/internal/CalendarMonth.css.js.map +1 -0
- package/esm/calendar/internal/CalendarMonth.js +69 -0
- package/esm/calendar/internal/CalendarMonth.js.map +1 -0
- package/esm/calendar/internal/CalendarNavigation.css.js +4 -0
- package/esm/calendar/internal/CalendarNavigation.css.js.map +1 -0
- package/esm/calendar/internal/CalendarNavigation.js +234 -0
- package/esm/calendar/internal/CalendarNavigation.js.map +1 -0
- package/esm/calendar/internal/CalendarWeekHeader.css.js +4 -0
- package/esm/calendar/internal/CalendarWeekHeader.css.js.map +1 -0
- package/esm/calendar/internal/CalendarWeekHeader.js +41 -0
- package/esm/calendar/internal/CalendarWeekHeader.js.map +1 -0
- package/esm/calendar/internal/useFocusManagement.js +64 -0
- package/esm/calendar/internal/useFocusManagement.js.map +1 -0
- package/esm/calendar/internal/utils.js +55 -0
- package/esm/calendar/internal/utils.js.map +1 -0
- package/esm/calendar/useCalendar.js +161 -0
- package/esm/calendar/useCalendar.js.map +1 -0
- package/esm/calendar/useCalendarDay.js +78 -0
- package/esm/calendar/useCalendarDay.js.map +1 -0
- package/esm/calendar/useSelection.js +243 -0
- package/esm/calendar/useSelection.js.map +1 -0
- package/esm/column-picker/ColumnPicker.css.js +4 -0
- package/esm/column-picker/ColumnPicker.css.js.map +1 -0
- package/esm/column-picker/ColumnPicker.js +126 -0
- package/esm/column-picker/ColumnPicker.js.map +1 -0
- package/esm/column-picker/ColumnSearch.css.js +4 -0
- package/esm/column-picker/ColumnSearch.css.js.map +1 -0
- package/esm/column-picker/ColumnSearch.js +80 -0
- package/esm/column-picker/ColumnSearch.js.map +1 -0
- package/esm/common-hooks/selectionTypes.js +10 -0
- package/esm/common-hooks/selectionTypes.js.map +1 -0
- package/esm/common-hooks/use-resize-observer.js +118 -0
- package/esm/common-hooks/use-resize-observer.js.map +1 -0
- package/esm/common-hooks/useControlled.js +56 -0
- package/esm/common-hooks/useControlled.js.map +1 -0
- package/esm/context-panel-provider/ContextPanelProvider.js +94 -0
- package/esm/context-panel-provider/ContextPanelProvider.js.map +1 -0
- package/esm/cycle-state-button/CycleStateButton.js +48 -0
- package/esm/cycle-state-button/CycleStateButton.js.map +1 -0
- package/esm/date-input/DateInput.css.js +4 -0
- package/esm/date-input/DateInput.css.js.map +1 -0
- package/esm/date-input/DateInput.js +275 -0
- package/esm/date-input/DateInput.js.map +1 -0
- package/esm/date-picker/DatePicker.js +167 -0
- package/esm/date-picker/DatePicker.js.map +1 -0
- package/esm/date-picker/DatePickerContext.js +23 -0
- package/esm/date-picker/DatePickerContext.js.map +1 -0
- package/esm/date-picker/DatePickerPanel.css.js +4 -0
- package/esm/date-picker/DatePickerPanel.css.js.map +1 -0
- package/esm/date-picker/DatePickerPanel.js +144 -0
- package/esm/date-picker/DatePickerPanel.js.map +1 -0
- package/esm/drag-drop/DragDropProvider.js +142 -0
- package/esm/drag-drop/DragDropProvider.js.map +1 -0
- package/esm/drag-drop/DragDropState.js +34 -0
- package/esm/drag-drop/DragDropState.js.map +1 -0
- package/esm/drag-drop/Draggable.css.js +4 -0
- package/esm/drag-drop/Draggable.css.js.map +1 -0
- package/esm/drag-drop/Draggable.js +85 -0
- package/esm/drag-drop/Draggable.js.map +1 -0
- package/{src → esm}/drag-drop/dragDropTypes.js +2 -0
- package/esm/drag-drop/dragDropTypes.js.map +1 -0
- package/esm/drag-drop/drop-target-utils.js +228 -0
- package/esm/drag-drop/drop-target-utils.js.map +1 -0
- package/esm/drag-drop/useAutoScroll.js +69 -0
- package/esm/drag-drop/useAutoScroll.js.map +1 -0
- package/esm/drag-drop/useDragDisplacers.js +158 -0
- package/esm/drag-drop/useDragDisplacers.js.map +1 -0
- package/esm/drag-drop/useDragDrop.js +502 -0
- package/esm/drag-drop/useDragDrop.js.map +1 -0
- package/esm/drag-drop/useDragDropCopy.js +31 -0
- package/esm/drag-drop/useDragDropCopy.js.map +1 -0
- package/esm/drag-drop/useDragDropIndicator.js +249 -0
- package/esm/drag-drop/useDragDropIndicator.js.map +1 -0
- package/esm/drag-drop/useDragDropNaturalMovement.js +263 -0
- package/esm/drag-drop/useDragDropNaturalMovement.js.map +1 -0
- package/esm/drag-drop/useDropIndicator.js +25 -0
- package/esm/drag-drop/useDropIndicator.js.map +1 -0
- package/esm/drag-drop/useGlobalDragDrop.js +87 -0
- package/esm/drag-drop/useGlobalDragDrop.js.map +1 -0
- package/esm/editable/useEditableText.js +209 -0
- package/esm/editable/useEditableText.js.map +1 -0
- package/esm/editable-label/EditableLabel.css.js +4 -0
- package/esm/editable-label/EditableLabel.css.js.map +1 -0
- package/esm/editable-label/EditableLabel.js +140 -0
- package/esm/editable-label/EditableLabel.js.map +1 -0
- package/esm/expando-input/ExpandoInput.css.js +4 -0
- package/esm/expando-input/ExpandoInput.css.js.map +1 -0
- package/esm/expando-input/ExpandoInput.js +51 -0
- package/esm/expando-input/ExpandoInput.js.map +1 -0
- package/esm/hover-overlay/HoverOverlay.js +94 -0
- package/esm/hover-overlay/HoverOverlay.js.map +1 -0
- package/esm/icon-button/Icon.css.js +4 -0
- package/esm/icon-button/Icon.css.js.map +1 -0
- package/esm/icon-button/Icon.js +35 -0
- package/esm/icon-button/Icon.js.map +1 -0
- package/esm/icon-button/IconButton.css.js +4 -0
- package/esm/icon-button/IconButton.css.js.map +1 -0
- package/esm/icon-button/IconButton.js +24 -0
- package/esm/icon-button/IconButton.js.map +1 -0
- package/esm/icon-button/ToggleIconButton.css.js +4 -0
- package/esm/icon-button/ToggleIconButton.css.js.map +1 -0
- package/esm/icon-button/ToggleIconButton.js +37 -0
- package/esm/icon-button/ToggleIconButton.js.map +1 -0
- package/esm/index.js +59 -0
- package/esm/index.js.map +1 -0
- package/esm/instrument-picker/TablePicker.css.js +4 -0
- package/esm/instrument-picker/TablePicker.css.js.map +1 -0
- package/esm/instrument-picker/TablePicker.js +128 -0
- package/esm/instrument-picker/TablePicker.js.map +1 -0
- package/esm/instrument-picker/useTablePicker.js +148 -0
- package/esm/instrument-picker/useTablePicker.js.map +1 -0
- package/esm/measured-container/MeasuredContainer.css.js +4 -0
- package/esm/measured-container/MeasuredContainer.css.js.map +1 -0
- package/esm/measured-container/MeasuredContainer.js +70 -0
- package/esm/measured-container/MeasuredContainer.js.map +1 -0
- package/esm/measured-container/useMeasuredContainer.js +164 -0
- package/esm/measured-container/useMeasuredContainer.js.map +1 -0
- package/esm/modal-provider/ModalProvider.js +140 -0
- package/esm/modal-provider/ModalProvider.js.map +1 -0
- package/esm/overflow-container/OverflowContainer.css.js +4 -0
- package/esm/overflow-container/OverflowContainer.css.js.map +1 -0
- package/esm/overflow-container/OverflowContainer.js +141 -0
- package/esm/overflow-container/OverflowContainer.js.map +1 -0
- package/esm/overflow-container/overflow-utils.js +272 -0
- package/esm/overflow-container/overflow-utils.js.map +1 -0
- package/esm/overflow-container/useOverflowContainer.js +141 -0
- package/esm/overflow-container/useOverflowContainer.js.map +1 -0
- package/esm/price-ticker/PriceTicker.css.js +4 -0
- package/esm/price-ticker/PriceTicker.css.js.map +1 -0
- package/esm/price-ticker/PriceTicker.js +48 -0
- package/esm/price-ticker/PriceTicker.js.map +1 -0
- package/esm/prompt/Prompt.css.js +4 -0
- package/esm/prompt/Prompt.css.js.map +1 -0
- package/esm/prompt/Prompt.js +140 -0
- package/esm/prompt/Prompt.js.map +1 -0
- package/esm/sortable-list/SortableList.js +34 -0
- package/esm/sortable-list/SortableList.js.map +1 -0
- package/esm/split-button/SplitButton.css.js +4 -0
- package/esm/split-button/SplitButton.css.js.map +1 -0
- package/esm/split-button/SplitButton.js +82 -0
- package/esm/split-button/SplitButton.js.map +1 -0
- package/esm/split-button/SplitStateButton.css.js +4 -0
- package/esm/split-button/SplitStateButton.css.js.map +1 -0
- package/esm/split-button/SplitStateButton.js +29 -0
- package/esm/split-button/SplitStateButton.js.map +1 -0
- package/esm/split-button/useSplitButton.js +82 -0
- package/esm/split-button/useSplitButton.js.map +1 -0
- package/esm/table-search/SearchCell.css.js +4 -0
- package/esm/table-search/SearchCell.css.js.map +1 -0
- package/esm/table-search/SearchCell.js +30 -0
- package/esm/table-search/SearchCell.js.map +1 -0
- package/esm/table-search/TableSearch.css.js +4 -0
- package/esm/table-search/TableSearch.css.js.map +1 -0
- package/esm/table-search/TableSearch.js +87 -0
- package/esm/table-search/TableSearch.js.map +1 -0
- package/esm/table-search/useTableSearch.js +37 -0
- package/esm/table-search/useTableSearch.js.map +1 -0
- package/esm/tabs-next/TabBar.css.js +4 -0
- package/esm/tabs-next/TabBar.css.js.map +1 -0
- package/esm/tabs-next/TabBar.js +39 -0
- package/esm/tabs-next/TabBar.js.map +1 -0
- package/esm/tabs-next/TabListNext.css.js +4 -0
- package/esm/tabs-next/TabListNext.css.js.map +1 -0
- package/esm/tabs-next/TabListNext.js +122 -0
- package/esm/tabs-next/TabListNext.js.map +1 -0
- package/esm/tabs-next/TabNext.css.js +4 -0
- package/esm/tabs-next/TabNext.css.js.map +1 -0
- package/esm/tabs-next/TabNext.js +108 -0
- package/esm/tabs-next/TabNext.js.map +1 -0
- package/esm/tabs-next/TabNextAction.js +33 -0
- package/esm/tabs-next/TabNextAction.js.map +1 -0
- package/esm/tabs-next/TabNextContext.js +20 -0
- package/esm/tabs-next/TabNextContext.js.map +1 -0
- package/esm/tabs-next/TabNextPanel.css.js +4 -0
- package/esm/tabs-next/TabNextPanel.css.js.map +1 -0
- package/esm/tabs-next/TabNextPanel.js +75 -0
- package/esm/tabs-next/TabNextPanel.js.map +1 -0
- package/esm/tabs-next/TabNextTrigger.css.js +4 -0
- package/esm/tabs-next/TabNextTrigger.css.js.map +1 -0
- package/esm/tabs-next/TabNextTrigger.js +72 -0
- package/esm/tabs-next/TabNextTrigger.js.map +1 -0
- package/esm/tabs-next/TabOverflowList.css.js +4 -0
- package/esm/tabs-next/TabOverflowList.css.js.map +1 -0
- package/esm/tabs-next/TabOverflowList.js +128 -0
- package/esm/tabs-next/TabOverflowList.js.map +1 -0
- package/esm/tabs-next/TabsNext.js +172 -0
- package/esm/tabs-next/TabsNext.js.map +1 -0
- package/esm/tabs-next/TabsNextContext.js +30 -0
- package/esm/tabs-next/TabsNextContext.js.map +1 -0
- package/esm/tabs-next/hooks/useCollection.js +89 -0
- package/esm/tabs-next/hooks/useCollection.js.map +1 -0
- package/esm/tabs-next/hooks/useFocusOutside.js +22 -0
- package/esm/tabs-next/hooks/useFocusOutside.js.map +1 -0
- package/esm/tabs-next/hooks/useOverflow.js +136 -0
- package/esm/tabs-next/hooks/useOverflow.js.map +1 -0
- package/esm/tabstrip/Tab.css.js +4 -0
- package/esm/tabstrip/Tab.css.js.map +1 -0
- package/esm/tabstrip/Tab.js +151 -0
- package/esm/tabstrip/Tab.js.map +1 -0
- package/esm/tabstrip/TabMenu.css.js +4 -0
- package/esm/tabstrip/TabMenu.css.js.map +1 -0
- package/esm/tabstrip/TabMenu.js +70 -0
- package/esm/tabstrip/TabMenu.js.map +1 -0
- package/esm/tabstrip/TabMenuOptions.js +16 -0
- package/esm/tabstrip/TabMenuOptions.js.map +1 -0
- package/esm/tabstrip/Tabstrip.css.js +4 -0
- package/esm/tabstrip/Tabstrip.css.js.map +1 -0
- package/esm/tabstrip/Tabstrip.js +158 -0
- package/esm/tabstrip/Tabstrip.js.map +1 -0
- package/esm/tabstrip/tabstrip-dom-utils.js +16 -0
- package/esm/tabstrip/tabstrip-dom-utils.js.map +1 -0
- package/esm/tabstrip/useAnimatedSelectionThumb.js +83 -0
- package/esm/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
- package/esm/tabstrip/useKeyboardNavigation.js +245 -0
- package/esm/tabstrip/useKeyboardNavigation.js.map +1 -0
- package/esm/tabstrip/useSelection.js +58 -0
- package/esm/tabstrip/useSelection.js.map +1 -0
- package/esm/tabstrip/useTabstrip.js +231 -0
- package/esm/tabstrip/useTabstrip.js.map +1 -0
- package/esm/time-input/MaskedInput.js +375 -0
- package/esm/time-input/MaskedInput.js.map +1 -0
- package/esm/time-input/TimeInput.css.js +4 -0
- package/esm/time-input/TimeInput.css.js.map +1 -0
- package/esm/time-input/TimeInput.js +54 -0
- package/esm/time-input/TimeInput.js.map +1 -0
- package/esm/time-input/useTimeInput.js +119 -0
- package/esm/time-input/useTimeInput.js.map +1 -0
- package/esm/toolbar/Toolbar.css.js +4 -0
- package/esm/toolbar/Toolbar.css.js.map +1 -0
- package/esm/toolbar/Toolbar.js +88 -0
- package/esm/toolbar/Toolbar.js.map +1 -0
- package/esm/toolbar/toolbar-dom-utils.js +15 -0
- package/esm/toolbar/toolbar-dom-utils.js.map +1 -0
- package/esm/toolbar/useKeyboardNavigation.js +303 -0
- package/esm/toolbar/useKeyboardNavigation.js.map +1 -0
- package/esm/toolbar/useSelection.js +91 -0
- package/esm/toolbar/useSelection.js.map +1 -0
- package/esm/toolbar/useToolbar.js +98 -0
- package/esm/toolbar/useToolbar.js.map +1 -0
- package/{src → esm}/utils/escapeRegExp.js +3 -1
- package/esm/utils/escapeRegExp.js.map +1 -0
- package/esm/utils/forwardCallbackProps.js +20 -0
- package/esm/utils/forwardCallbackProps.js.map +1 -0
- package/esm/utils/isOverflowElement.js +6 -0
- package/esm/utils/isOverflowElement.js.map +1 -0
- package/esm/utils/isPlainObject.js +4 -0
- package/esm/utils/isPlainObject.js.map +1 -0
- package/esm/vuu-date-picker/VuuDatePicker.js +120 -0
- package/esm/vuu-date-picker/VuuDatePicker.js.map +1 -0
- package/esm/vuu-input/VuuInput.css.js +4 -0
- package/esm/vuu-input/VuuInput.css.js.map +1 -0
- package/esm/vuu-input/VuuInput.js +100 -0
- package/esm/vuu-input/VuuInput.js.map +1 -0
- package/esm/vuu-time-picker/VuuTimePicker.css.js +4 -0
- package/esm/vuu-time-picker/VuuTimePicker.css.js.map +1 -0
- package/esm/vuu-time-picker/VuuTimePicker.js +35 -0
- package/esm/vuu-time-picker/VuuTimePicker.js.map +1 -0
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js +4 -0
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +1 -0
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js +78 -0
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js +174 -0
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
- package/package.json +17 -14
- 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/src/calendar/Calendar.css.js +0 -10
- package/src/calendar/Calendar.js +0 -70
- package/src/calendar/index.js +0 -4
- package/src/calendar/internal/CalendarCarousel.css.js +0 -19
- package/src/calendar/internal/CalendarCarousel.js +0 -73
- package/src/calendar/internal/CalendarContext.js +0 -9
- package/src/calendar/internal/CalendarDay.css.js +0 -116
- package/src/calendar/internal/CalendarMonth.css.js +0 -13
- package/src/calendar/internal/CalendarMonth.js +0 -43
- package/src/calendar/internal/CalendarNavigation.css.js +0 -24
- package/src/calendar/internal/CalendarNavigation.js +0 -185
- package/src/calendar/internal/CalendarWeekHeader.css.js +0 -23
- package/src/calendar/internal/CalendarWeekHeader.js +0 -31
- package/src/calendar/internal/useFocusManagement.js +0 -66
- package/src/calendar/internal/utils.js +0 -57
- package/src/calendar/useCalendar.js +0 -116
- package/src/calendar/useCalendarDay.js +0 -74
- package/src/calendar/useSelection.js +0 -202
- package/src/column-picker/ColumnPicker.css.js +0 -8
- package/src/column-picker/ColumnPicker.js +0 -108
- package/src/column-picker/ColumnSearch.css.js +0 -61
- package/src/column-picker/ColumnSearch.js +0 -66
- package/src/column-picker/index.js +0 -2
- package/src/column-picker/moving-window.js +0 -49
- package/src/common-hooks/index.js +0 -3
- package/src/common-hooks/selectionTypes.js +0 -8
- package/src/common-hooks/use-resize-observer.js +0 -122
- package/src/common-hooks/useControlled.js +0 -45
- package/src/context-panel-provider/ContextPanelProvider.js +0 -80
- package/src/cycle-state-button/CycleStateButton.js +0 -30
- package/src/cycle-state-button/index.js +0 -1
- package/src/date-input/DateInput.css.js +0 -195
- package/src/date-input/DateInput.js +0 -210
- package/src/date-input/index.js +0 -1
- package/src/date-picker/DatePicker.js +0 -137
- package/src/date-picker/DatePickerContext.js +0 -20
- package/src/date-picker/DatePickerPanel.css.js +0 -25
- package/src/date-picker/DatePickerPanel.js +0 -124
- package/src/date-picker/index.js +0 -1
- package/src/drag-drop/DragDropProvider.js +0 -123
- package/src/drag-drop/DragDropState.js +0 -25
- package/src/drag-drop/Draggable.css.js +0 -57
- package/src/drag-drop/Draggable.js +0 -77
- package/src/drag-drop/DropIndicator.css.js +0 -11
- package/src/drag-drop/DropIndicator.js +0 -28
- package/src/drag-drop/drop-target-utils.js +0 -199
- package/src/drag-drop/index.js +0 -6
- package/src/drag-drop/useAutoScroll.js +0 -53
- package/src/drag-drop/useDragDisplacers.js +0 -126
- package/src/drag-drop/useDragDrop.js +0 -435
- package/src/drag-drop/useDragDropCopy.js +0 -22
- package/src/drag-drop/useDragDropIndicator.js +0 -182
- package/src/drag-drop/useDragDropNaturalMovement.js +0 -205
- package/src/drag-drop/useDropIndicator.js +0 -21
- package/src/drag-drop/useGlobalDragDrop.js +0 -67
- package/src/drag-drop/useTransition.js +0 -11
- package/src/editable/index.js +0 -1
- package/src/editable/useEditableText.js +0 -199
- package/src/editable-label/EditableLabel.css.js +0 -81
- package/src/editable-label/EditableLabel.js +0 -125
- package/src/editable-label/index.js +0 -1
- package/src/expando-input/ExpandoInput.css.js +0 -67
- package/src/expando-input/ExpandoInput.js +0 -40
- package/src/expando-input/index.js +0 -1
- package/src/highlighter/Highlighter.css.js +0 -8
- package/src/highlighter/Highlighter.js +0 -27
- package/src/highlighter/index.js +0 -1
- package/src/hover-overlay/HoverOverlay.js +0 -92
- package/src/icon-button/Icon.css.js +0 -8
- package/src/icon-button/Icon.js +0 -26
- package/src/icon-button/IconButton.css.js +0 -10
- package/src/icon-button/IconButton.js +0 -28
- package/src/icon-button/ToggleIconButton.css.js +0 -47
- package/src/icon-button/ToggleIconButton.js +0 -26
- package/src/icon-button/index.js +0 -3
- package/src/index.js +0 -31
- package/src/instrument-picker/SearchCell.css.js +0 -17
- package/src/instrument-picker/SearchCell.js +0 -29
- package/src/instrument-picker/TablePicker.css.js +0 -23
- package/src/instrument-picker/TablePicker.js +0 -89
- package/src/instrument-picker/index.js +0 -1
- package/src/instrument-picker/moving-window.js +0 -49
- package/src/instrument-picker/useDataSource.js +0 -38
- package/src/instrument-picker/useTablePicker.js +0 -136
- package/src/measured-container/MeasuredContainer.css.js +0 -11
- package/src/measured-container/MeasuredContainer.js +0 -50
- package/src/measured-container/index.js +0 -2
- package/src/measured-container/useMeasuredContainer.js +0 -156
- package/src/modal-provider/ModalProvider.js +0 -147
- package/src/overflow-container/OverflowContainer.css.js +0 -135
- package/src/overflow-container/OverflowContainer.js +0 -87
- package/src/overflow-container/index.js +0 -2
- package/src/overflow-container/overflow-utils.js +0 -211
- package/src/overflow-container/useOverflowContainer.js +0 -108
- package/src/price-ticker/PriceTicker.css.js +0 -32
- package/src/price-ticker/PriceTicker.js +0 -51
- package/src/price-ticker/index.js +0 -1
- package/src/prompt/Prompt.css.js +0 -48
- package/src/prompt/Prompt.js +0 -112
- package/src/sortable-list/SortableList.js +0 -39
- package/src/split-button/SplitButton.css.js +0 -117
- package/src/split-button/SplitButton.js +0 -60
- package/src/split-button/SplitStateButton.css.js +0 -66
- package/src/split-button/SplitStateButton.js +0 -23
- package/src/split-button/index.js +0 -2
- package/src/split-button/useSplitButton.js +0 -61
- package/src/table-search/SearchCell.css.js +0 -20
- package/src/table-search/SearchCell.js +0 -26
- package/src/table-search/TableSearch.css.js +0 -27
- package/src/table-search/TableSearch.js +0 -81
- package/src/table-search/index.js +0 -1
- package/src/table-search/moving-window.js +0 -49
- package/src/table-search/useTableSearch.js +0 -30
- package/src/tabs-next/TabBar.css.js +0 -26
- package/src/tabs-next/TabBar.js +0 -27
- package/src/tabs-next/TabListNext.css.js +0 -36
- package/src/tabs-next/TabListNext.js +0 -94
- package/src/tabs-next/TabNext.css.js +0 -76
- package/src/tabs-next/TabNext.js +0 -91
- package/src/tabs-next/TabNextAction.js +0 -26
- package/src/tabs-next/TabNextContext.js +0 -14
- package/src/tabs-next/TabNextPanel.css.js +0 -17
- package/src/tabs-next/TabNextPanel.js +0 -69
- package/src/tabs-next/TabNextTrigger.css.js +0 -22
- package/src/tabs-next/TabNextTrigger.js +0 -66
- package/src/tabs-next/TabOverflowList.css.js +0 -77
- package/src/tabs-next/TabOverflowList.js +0 -115
- package/src/tabs-next/TabsNext.js +0 -149
- package/src/tabs-next/TabsNextContext.js +0 -28
- package/src/tabs-next/hooks/useCollection.js +0 -80
- package/src/tabs-next/hooks/useFocusOutside.js +0 -23
- package/src/tabs-next/hooks/useOverflow.js +0 -118
- package/src/tabs-next/index.js +0 -7
- package/src/tabstrip/Tab.css.js +0 -148
- package/src/tabstrip/Tab.js +0 -107
- package/src/tabstrip/TabMenu.css.js +0 -8
- package/src/tabstrip/TabMenu.js +0 -48
- package/src/tabstrip/TabMenuOptions.js +0 -14
- package/src/tabstrip/TabsTypes.js +0 -0
- package/src/tabstrip/Tabstrip.css.js +0 -121
- package/src/tabstrip/Tabstrip.js +0 -106
- package/src/tabstrip/ThemeTabstrip.css.js +0 -20
- package/src/tabstrip/index.js +0 -4
- package/src/tabstrip/tabstrip-dom-utils.js +0 -11
- package/src/tabstrip/useAnimatedSelectionThumb.js +0 -68
- package/src/tabstrip/useKeyboardNavigation.js +0 -191
- package/src/tabstrip/useSelection.js +0 -50
- package/src/tabstrip/useTabstrip.js +0 -181
- package/src/time-input/MaskedInput.js +0 -285
- package/src/time-input/TimeInput.css.js +0 -39
- package/src/time-input/TimeInput.js +0 -37
- package/src/time-input/useTimeInput.js +0 -82
- package/src/toolbar/Toolbar.css.js +0 -46
- package/src/toolbar/Toolbar.js +0 -62
- package/src/toolbar/index.js +0 -1
- package/src/toolbar/toolbar-dom-utils.js +0 -11
- package/src/toolbar/useKeyboardNavigation.js +0 -240
- package/src/toolbar/useSelection.js +0 -82
- package/src/toolbar/useToolbar.js +0 -73
- package/src/utils/deprecated-types.js +0 -0
- package/src/utils/forwardCallbackProps.js +0 -15
- package/src/utils/index.js +0 -5
- package/src/utils/isOverflowElement.js +0 -2
- package/src/utils/isPlainObject.js +0 -2
- package/src/vuu-date-picker/VuuDatePicker.js +0 -92
- package/src/vuu-date-picker/index.js +0 -1
- package/src/vuu-input/VuuInput.css.js +0 -13
- package/src/vuu-input/VuuInput.js +0 -85
- package/src/vuu-input/index.js +0 -1
- package/src/vuu-time-picker/TimeRangePicker.js +0 -0
- package/src/vuu-time-picker/VuuTimePicker.css.js +0 -14
- package/src/vuu-time-picker/VuuTimePicker.js +0 -26
- package/src/vuu-typeahead-input/VuuTypeaheadInput.css.js +0 -49
- package/src/vuu-typeahead-input/VuuTypeaheadInput.js +0 -46
- package/src/vuu-typeahead-input/index.js +0 -1
- package/src/vuu-typeahead-input/useVuuTypeaheadInput.js +0 -140
|
@@ -0,0 +1,82 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;;;;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
const WidthHeight = ["height", "width"];
|
|
6
|
+
const WidthOnly = ["width"];
|
|
7
|
+
const HeightOnly = ["height"];
|
|
8
|
+
const observedMap = /* @__PURE__ */ new Map();
|
|
9
|
+
const getTargetSize = (element, size, dimension) => {
|
|
10
|
+
switch (dimension) {
|
|
11
|
+
case "height":
|
|
12
|
+
return size.height;
|
|
13
|
+
case "clientHeight":
|
|
14
|
+
return element.clientHeight;
|
|
15
|
+
case "clientWidth":
|
|
16
|
+
return element.clientWidth;
|
|
17
|
+
case "contentHeight":
|
|
18
|
+
return size.contentHeight;
|
|
19
|
+
case "contentWidth":
|
|
20
|
+
return size.contentWidth;
|
|
21
|
+
case "scrollHeight":
|
|
22
|
+
return Math.ceil(element.scrollHeight);
|
|
23
|
+
case "scrollWidth":
|
|
24
|
+
return Math.ceil(element.scrollWidth);
|
|
25
|
+
case "width":
|
|
26
|
+
return size.width;
|
|
27
|
+
default:
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
32
|
+
for (const entry of entries) {
|
|
33
|
+
const { target, borderBoxSize, contentBoxSize } = entry;
|
|
34
|
+
const observedTarget = observedMap.get(target);
|
|
35
|
+
if (observedTarget) {
|
|
36
|
+
const [{ blockSize: height, inlineSize: width }] = borderBoxSize;
|
|
37
|
+
const [{ blockSize: contentHeight, inlineSize: contentWidth }] = contentBoxSize;
|
|
38
|
+
const { onResize, measurements } = observedTarget;
|
|
39
|
+
let sizeChanged = false;
|
|
40
|
+
for (const [dimension, size] of Object.entries(measurements)) {
|
|
41
|
+
const newSize = getTargetSize(
|
|
42
|
+
target,
|
|
43
|
+
{ height, width, contentHeight, contentWidth },
|
|
44
|
+
dimension
|
|
45
|
+
);
|
|
46
|
+
if (newSize !== size) {
|
|
47
|
+
sizeChanged = true;
|
|
48
|
+
measurements[dimension] = newSize;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (sizeChanged) {
|
|
52
|
+
onResize && onResize(measurements);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false) {
|
|
58
|
+
const dimensionsRef = React.useRef(dimensions);
|
|
59
|
+
const target = ref.current;
|
|
60
|
+
const measure = React.useCallback((target2) => {
|
|
61
|
+
const { width, height } = target2.getBoundingClientRect();
|
|
62
|
+
const { clientWidth: contentWidth, clientHeight: contentHeight } = target2;
|
|
63
|
+
return dimensionsRef.current.reduce(
|
|
64
|
+
(map, dim) => {
|
|
65
|
+
map[dim] = getTargetSize(
|
|
66
|
+
target2,
|
|
67
|
+
{ width, height, contentHeight, contentWidth },
|
|
68
|
+
dim
|
|
69
|
+
);
|
|
70
|
+
return map;
|
|
71
|
+
},
|
|
72
|
+
{}
|
|
73
|
+
);
|
|
74
|
+
}, []);
|
|
75
|
+
React.useLayoutEffect(() => {
|
|
76
|
+
async function registerObserver() {
|
|
77
|
+
observedMap.set(target, { measurements: {} });
|
|
78
|
+
await document.fonts.ready;
|
|
79
|
+
const observedTarget = observedMap.get(target);
|
|
80
|
+
if (observedTarget) {
|
|
81
|
+
const measurements = measure(target);
|
|
82
|
+
observedTarget.measurements = measurements;
|
|
83
|
+
resizeObserver.observe(target);
|
|
84
|
+
if (reportInitialSize) {
|
|
85
|
+
onResize(measurements);
|
|
86
|
+
}
|
|
87
|
+
} else {
|
|
88
|
+
console.log(
|
|
89
|
+
`%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation`,
|
|
90
|
+
"font-weight:bold; color:red;"
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (target) {
|
|
95
|
+
if (observedMap.has(target)) ;
|
|
96
|
+
registerObserver();
|
|
97
|
+
}
|
|
98
|
+
return () => {
|
|
99
|
+
if (target && observedMap.has(target)) {
|
|
100
|
+
resizeObserver.unobserve(target);
|
|
101
|
+
observedMap.delete(target);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}, [measure, target]);
|
|
105
|
+
React.useEffect(() => {
|
|
106
|
+
const target2 = ref.current;
|
|
107
|
+
const record = observedMap.get(target2);
|
|
108
|
+
if (record) {
|
|
109
|
+
if (dimensionsRef.current !== dimensions) {
|
|
110
|
+
dimensionsRef.current = dimensions;
|
|
111
|
+
const measurements = measure(target2);
|
|
112
|
+
record.measurements = measurements;
|
|
113
|
+
}
|
|
114
|
+
record.onResize = onResize;
|
|
115
|
+
}
|
|
116
|
+
}, [dimensions, measure, ref, onResize]);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
exports.HeightOnly = HeightOnly;
|
|
120
|
+
exports.WidthHeight = WidthHeight;
|
|
121
|
+
exports.WidthOnly = WidthOnly;
|
|
122
|
+
exports.useResizeObserver = useResizeObserver;
|
|
123
|
+
//# sourceMappingURL=use-resize-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-resize-observer.js","sources":["../../../../packages/vuu-ui-controls/src/common-hooks/use-resize-observer.ts"],"sourcesContent":["import {\n RefObject,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\";\n\nexport const WidthHeight = [\"height\", \"width\"];\nexport const WidthOnly = [\"width\"];\nexport const HeightOnly = [\"height\"];\n\nexport type measurements<T = string | number> = {\n height?: T;\n clientHeight?: number;\n clientWidth?: number;\n contentHeight?: number;\n contentWidth?: number;\n scrollHeight?: number;\n scrollWidth?: number;\n width?: T;\n};\ntype measuredDimension = keyof measurements<number>;\n\nexport type ResizeHandler = (measurements: measurements<number>) => void;\n\ntype observedDetails = {\n onResize?: ResizeHandler;\n measurements: measurements<number>;\n};\nconst observedMap = new Map<HTMLElement, observedDetails>();\n\nconst getTargetSize = (\n element: HTMLElement,\n size: {\n height: number;\n width: number;\n contentHeight: number;\n contentWidth: number;\n },\n dimension: measuredDimension\n): number => {\n switch (dimension) {\n case \"height\":\n return size.height;\n case \"clientHeight\":\n return element.clientHeight;\n case \"clientWidth\":\n return element.clientWidth;\n case \"contentHeight\":\n return size.contentHeight;\n case \"contentWidth\":\n return size.contentWidth;\n case \"scrollHeight\":\n return Math.ceil(element.scrollHeight);\n case \"scrollWidth\":\n return Math.ceil(element.scrollWidth);\n case \"width\":\n return size.width;\n default:\n return 0;\n }\n};\n\n// TODO should we make this create-on-demand\nconst resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const { target, borderBoxSize, contentBoxSize } = entry;\n const observedTarget = observedMap.get(target as HTMLElement);\n if (observedTarget) {\n const [{ blockSize: height, inlineSize: width }] = borderBoxSize;\n const [{ blockSize: contentHeight, inlineSize: contentWidth }] =\n contentBoxSize;\n const { onResize, measurements } = observedTarget;\n let sizeChanged = false;\n for (const [dimension, size] of Object.entries(measurements)) {\n const newSize = getTargetSize(\n target as HTMLElement,\n { height, width, contentHeight, contentWidth },\n dimension as measuredDimension\n );\n\n if (newSize !== size) {\n sizeChanged = true;\n measurements[dimension as measuredDimension] = newSize;\n }\n }\n if (sizeChanged) {\n // TODO only return measured sizes\n onResize && onResize(measurements);\n }\n }\n }\n});\n\n// TODO use an optional lag (default to false) to ask to fire onResize\n// with initial size\nexport function useResizeObserver(\n ref: RefObject<Element | HTMLElement | null>,\n dimensions: string[],\n onResize: ResizeHandler,\n reportInitialSize = false\n) {\n const dimensionsRef = useRef(dimensions);\n const target = ref.current as HTMLElement;\n\n const measure = useCallback((target: HTMLElement): measurements<number> => {\n const { width, height } = target.getBoundingClientRect();\n const { clientWidth: contentWidth, clientHeight: contentHeight } = target;\n return dimensionsRef.current.reduce(\n (map: { [key: string]: number }, dim) => {\n map[dim] = getTargetSize(\n target,\n { width, height, contentHeight, contentWidth },\n dim as measuredDimension\n );\n return map;\n },\n {}\n );\n }, []);\n\n // TODO use ref to store resizeHandler here\n // resize handler registered with REsizeObserver will never change\n // use ref to store user onResize callback here\n // resizeHandler will call user callback.current\n\n // Keep this effect separate in case user inadvertently passes different\n // dimensions or callback instance each time - we only ever want to\n // initiate new observation when ref changes.\n useLayoutEffect(() => {\n // const target = ref.current as HTMLElement;\n async function registerObserver() {\n // Create the map entry immediately. useEffect may fire below\n // before fonts are ready and attempt to update entry\n observedMap.set(target, { measurements: {} as measurements<number> });\n await document.fonts.ready;\n const observedTarget = observedMap.get(target);\n if (observedTarget) {\n const measurements = measure(target);\n observedTarget.measurements = measurements;\n resizeObserver.observe(target);\n if (reportInitialSize) {\n onResize(measurements);\n }\n } else {\n console.log(\n `%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation`,\n \"font-weight:bold; color:red;\"\n );\n }\n }\n\n if (target) {\n // TODO might we want multiple callers to attach a listener to the same element ?\n if (observedMap.has(target)) {\n // console.log(\n // \"useResizeObserver attemping to observe same element twice\",\n // { target }\n // );\n // throw Error(\n // \"useResizeObserver attemping to observe same element twice\"\n // );\n }\n // TODO set a pending entry on map\n registerObserver();\n }\n return () => {\n if (target && observedMap.has(target)) {\n resizeObserver.unobserve(target);\n observedMap.delete(target);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [measure, target]);\n\n useEffect(() => {\n const target = ref.current as HTMLElement;\n const record = observedMap.get(target);\n if (record) {\n if (dimensionsRef.current !== dimensions) {\n dimensionsRef.current = dimensions;\n const measurements = measure(target);\n record.measurements = measurements;\n }\n // Might not have changed, but no harm ...\n record.onResize = onResize;\n }\n }, [dimensions, measure, ref, onResize]);\n}\n"],"names":["useRef","useCallback","target","useLayoutEffect","useEffect"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function useControlled({
|
|
6
|
+
controlled,
|
|
7
|
+
default: defaultProp,
|
|
8
|
+
name,
|
|
9
|
+
state = "value"
|
|
10
|
+
}) {
|
|
11
|
+
const { current: isControlled } = React.useRef(controlled !== void 0);
|
|
12
|
+
const [valueState, setValue] = React.useState(defaultProp);
|
|
13
|
+
const value = controlled !== void 0 ? controlled : valueState;
|
|
14
|
+
const { current: defaultValue } = React.useRef(defaultProp);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (process.env.NODE_ENV !== "production") {
|
|
17
|
+
if (isControlled !== (controlled !== void 0)) {
|
|
18
|
+
console.error(
|
|
19
|
+
[
|
|
20
|
+
`Salt: A component is changing the ${isControlled ? "" : "un"}controlled ${state} state of ${name} to be ${isControlled ? "un" : ""}controlled.`,
|
|
21
|
+
"Elements should not switch from uncontrolled to controlled (or vice versa).",
|
|
22
|
+
`Decide between using a controlled or uncontrolled ${name} element for the lifetime of the component.`,
|
|
23
|
+
"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.",
|
|
24
|
+
"More info: https://fb.me/react-controlled-components"
|
|
25
|
+
].join("\n")
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return void 0;
|
|
30
|
+
}, [state, name, controlled]);
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
if (process.env.NODE_ENV !== "production") {
|
|
33
|
+
if (!isControlled && defaultValue !== defaultProp) {
|
|
34
|
+
console.error(
|
|
35
|
+
[
|
|
36
|
+
`Salt: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. To suppress this warning opt to use a controlled ${name}.`
|
|
37
|
+
].join("\n")
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return void 0;
|
|
42
|
+
}, [JSON.stringify(defaultProp, ignoreReactElements)]);
|
|
43
|
+
const setValueIfUncontrolled = React.useCallback(
|
|
44
|
+
(newValue) => {
|
|
45
|
+
if (!isControlled) {
|
|
46
|
+
setValue(newValue);
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
[isControlled]
|
|
50
|
+
);
|
|
51
|
+
return [value, setValueIfUncontrolled, isControlled];
|
|
52
|
+
}
|
|
53
|
+
function ignoreReactElements(key, value) {
|
|
54
|
+
return React.isValidElement(value) ? null : value;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
exports.useControlled = useControlled;
|
|
58
|
+
//# sourceMappingURL=useControlled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControlled.js","sources":["../../../../packages/vuu-ui-controls/src/common-hooks/useControlled.ts"],"sourcesContent":["import {\n Dispatch,\n isValidElement,\n SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nexport interface UseControlledProps<T> {\n /**\n * Holds the component value when it's controlled.\n */\n controlled?: T;\n /**\n * The default value when uncontrolled.\n */\n default: T;\n /**\n * The component name displayed in warnings.\n */\n name: string;\n /**\n * The name of the state variable displayed in warnings.\n */\n state?: string;\n}\n\n/**\n * Copied from MUI (v5) useControlled hook with one additional returned value\n * @see https://github.com/mui-org/material-ui/blob/0979e6a54ba47c278d1f535953c0520a86349811/packages/material-ui-utils/src/useControlled.js\n */\nexport function useControlled<S>({\n controlled,\n default: defaultProp,\n name,\n state = \"value\",\n}: UseControlledProps<S>): [S, Dispatch<SetStateAction<S>>, boolean] {\n const { current: isControlled } = useRef(controlled !== undefined);\n const [valueState, setValue] = useState<S>(defaultProp);\n const value = controlled !== undefined ? controlled : valueState;\n const { current: defaultValue } = useRef(defaultProp);\n\n // console.log(\n // `%cuseControlled ${name} ${state}`,\n // `color: ${isControlled ? \"blue\" : \"black\"};font-weight: bold;`,\n // {\n // controlled,\n // defaultProp,\n // }\n // );\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (isControlled !== (controlled !== undefined)) {\n console.error(\n [\n `Salt: A component is changing the ${\n isControlled ? \"\" : \"un\"\n }controlled ${state} state of ${name} to be ${\n isControlled ? \"un\" : \"\"\n }controlled.`,\n \"Elements should not switch from uncontrolled to controlled (or vice versa).\",\n `Decide between using a controlled or uncontrolled ${name} ` +\n \"element for the lifetime of the component.\",\n \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\",\n \"More info: https://fb.me/react-controlled-components\",\n ].join(\"\\n\")\n );\n }\n }\n return undefined;\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [state, name, controlled]);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error(\n [\n `Salt: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` +\n `To suppress this warning opt to use a controlled ${name}.`,\n ].join(\"\\n\")\n );\n }\n }\n return undefined;\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [JSON.stringify(defaultProp, ignoreReactElements)]);\n\n const setValueIfUncontrolled: Dispatch<SetStateAction<S>> = useCallback(\n (newValue) => {\n if (!isControlled) {\n setValue(newValue);\n }\n },\n [isControlled]\n );\n\n return [value, setValueIfUncontrolled, isControlled];\n}\n\n// Ignore ReactElements in JSON, they contain circular refs\nfunction ignoreReactElements<T>(key: string, value: T): T | null {\n return isValidElement(value) ? null : value;\n}\n"],"names":["useRef","useState","useEffect","useCallback","isValidElement"],"mappings":";;;;AAiCO,SAAS,aAAiB,CAAA;AAAA,EAC/B,UAAA;AAAA,EACA,OAAS,EAAA,WAAA;AAAA,EACT,IAAA;AAAA,EACA,KAAQ,GAAA;AACV,CAAqE,EAAA;AACnE,EAAA,MAAM,EAAE,OAAS,EAAA,YAAA,EAAiB,GAAAA,YAAA,CAAO,eAAe,KAAS,CAAA,CAAA;AACjE,EAAA,MAAM,CAAC,UAAA,EAAY,QAAQ,CAAA,GAAIC,eAAY,WAAW,CAAA;AACtD,EAAM,MAAA,KAAA,GAAQ,UAAe,KAAA,KAAA,CAAA,GAAY,UAAa,GAAA,UAAA;AACtD,EAAA,MAAM,EAAE,OAAA,EAAS,YAAa,EAAA,GAAID,aAAO,WAAW,CAAA;AAWpD,EAAAE,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,MAAI,IAAA,YAAA,MAAkB,eAAe,KAAY,CAAA,CAAA,EAAA;AAC/C,QAAQ,OAAA,CAAA,KAAA;AAAA,UACN;AAAA,YACE,CAAA,kCAAA,EACE,YAAe,GAAA,EAAA,GAAK,IACtB,CAAA,WAAA,EAAc,KAAK,CAAA,UAAA,EAAa,IAAI,CAAA,OAAA,EAClC,YAAe,GAAA,IAAA,GAAO,EACxB,CAAA,WAAA,CAAA;AAAA,YACA,6EAAA;AAAA,YACA,qDAAqD,IAAI,CAAA,2CAAA,CAAA;AAAA,YAEzD,4HAAA;AAAA,YACA;AAAA,WACF,CAAE,KAAK,IAAI;AAAA,SACb;AAAA;AACF;AAEF,IAAO,OAAA,KAAA,CAAA;AAAA,GAEN,EAAA,CAAC,KAAO,EAAA,IAAA,EAAM,UAAU,CAAC,CAAA;AAE5B,EAAAA,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,MAAI,IAAA,CAAC,YAAgB,IAAA,YAAA,KAAiB,WAAa,EAAA;AACjD,QAAQ,OAAA,CAAA,KAAA;AAAA,UACN;AAAA,YACE,CAA6C,0CAAA,EAAA,KAAK,CAA6B,0BAAA,EAAA,IAAI,8EAC7B,IAAI,CAAA,CAAA;AAAA,WAC5D,CAAE,KAAK,IAAI;AAAA,SACb;AAAA;AACF;AAEF,IAAO,OAAA,KAAA,CAAA;AAAA,KAEN,CAAC,IAAA,CAAK,UAAU,WAAa,EAAA,mBAAmB,CAAC,CAAC,CAAA;AAErD,EAAA,MAAM,sBAAsD,GAAAC,iBAAA;AAAA,IAC1D,CAAC,QAAa,KAAA;AACZ,MAAA,IAAI,CAAC,YAAc,EAAA;AACjB,QAAA,QAAA,CAAS,QAAQ,CAAA;AAAA;AACnB,KACF;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAO,OAAA,CAAC,KAAO,EAAA,sBAAA,EAAwB,YAAY,CAAA;AACrD;AAGA,SAAS,mBAAA,CAAuB,KAAa,KAAoB,EAAA;AAC/D,EAAO,OAAAC,oBAAA,CAAe,KAAK,CAAA,GAAI,IAAO,GAAA,KAAA;AACxC;;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var vuuLayout = require('@vuu-ui/vuu-layout');
|
|
6
|
+
var core = require('@salt-ds/core');
|
|
7
|
+
|
|
8
|
+
const UndefinedShowContextPanel = () => {
|
|
9
|
+
console.warn(
|
|
10
|
+
"[ContextPanelContext] no implementation for showContextPanel, you need to add a ContextPanelProvider"
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
const ContextPanelContext = React.createContext({
|
|
14
|
+
showContextPanel: UndefinedShowContextPanel
|
|
15
|
+
});
|
|
16
|
+
const ContextPanelProvider = ({
|
|
17
|
+
children,
|
|
18
|
+
hideContextPanel: hideContextPanelProp,
|
|
19
|
+
showContextPanel: showContextPanelProp
|
|
20
|
+
}) => {
|
|
21
|
+
const {
|
|
22
|
+
hideContextPanel: inheritedHideContextPanel,
|
|
23
|
+
showContextPanel: inheritedShowContextPanel
|
|
24
|
+
} = React.useContext(ContextPanelContext);
|
|
25
|
+
const { showComponentInContextPanel } = vuuLayout.useLayoutOperation();
|
|
26
|
+
const [dialog, setDialog] = React.useState(null);
|
|
27
|
+
const handleOpenChange = React.useCallback((isOpen) => {
|
|
28
|
+
if (!isOpen) {
|
|
29
|
+
setDialog(null);
|
|
30
|
+
}
|
|
31
|
+
}, []);
|
|
32
|
+
const hideContextPanel = hideContextPanelProp ?? inheritedHideContextPanel;
|
|
33
|
+
const showContextPanel = React.useCallback(
|
|
34
|
+
(elementOrComponentType, title, props) => {
|
|
35
|
+
if (showContextPanelProp) {
|
|
36
|
+
showContextPanelProp(elementOrComponentType, title, props);
|
|
37
|
+
} else if (inheritedShowContextPanel !== UndefinedShowContextPanel) {
|
|
38
|
+
inheritedShowContextPanel(elementOrComponentType, title, props);
|
|
39
|
+
} else if (!vuuLayout.isUnconfiguredProperty(showComponentInContextPanel)) {
|
|
40
|
+
const component = typeof elementOrComponentType === "string" ? { type: elementOrComponentType, props } : elementOrComponentType;
|
|
41
|
+
showComponentInContextPanel(component, title);
|
|
42
|
+
} else if (typeof elementOrComponentType === "string") {
|
|
43
|
+
const component = typeof elementOrComponentType === "string" ? vuuLayout.layoutFromJson(
|
|
44
|
+
{
|
|
45
|
+
type: elementOrComponentType,
|
|
46
|
+
props
|
|
47
|
+
},
|
|
48
|
+
""
|
|
49
|
+
) : elementOrComponentType;
|
|
50
|
+
setDialog(
|
|
51
|
+
/* @__PURE__ */ jsxRuntime.jsxs(core.Dialog, { open: true, onOpenChange: handleOpenChange, children: [
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
53
|
+
core.DialogCloseButton,
|
|
54
|
+
{
|
|
55
|
+
appearance: "transparent",
|
|
56
|
+
"data-embedded": true,
|
|
57
|
+
"data-icon": "close",
|
|
58
|
+
onClick: () => setDialog(null),
|
|
59
|
+
sentiment: "neutral"
|
|
60
|
+
}
|
|
61
|
+
),
|
|
62
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.DialogHeader, { header: title }),
|
|
63
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.DialogContent, { children: component })
|
|
64
|
+
] })
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
[
|
|
69
|
+
handleOpenChange,
|
|
70
|
+
inheritedShowContextPanel,
|
|
71
|
+
showComponentInContextPanel,
|
|
72
|
+
showContextPanelProp
|
|
73
|
+
]
|
|
74
|
+
);
|
|
75
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
76
|
+
ContextPanelContext.Provider,
|
|
77
|
+
{
|
|
78
|
+
value: { hideContextPanel, showContextPanel },
|
|
79
|
+
children: [
|
|
80
|
+
children,
|
|
81
|
+
dialog
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
function useContextPanel() {
|
|
87
|
+
const { showContextPanel } = React.useContext(ContextPanelContext);
|
|
88
|
+
return showContextPanel;
|
|
89
|
+
}
|
|
90
|
+
function useHideContextPanel() {
|
|
91
|
+
const { hideContextPanel } = React.useContext(ContextPanelContext);
|
|
92
|
+
return hideContextPanel;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
exports.ContextPanelContext = ContextPanelContext;
|
|
96
|
+
exports.ContextPanelProvider = ContextPanelProvider;
|
|
97
|
+
exports.useContextPanel = useContextPanel;
|
|
98
|
+
exports.useHideContextPanel = useHideContextPanel;
|
|
99
|
+
//# sourceMappingURL=ContextPanelProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextPanelProvider.js","sources":["../../../../packages/vuu-ui-controls/src/context-panel-provider/ContextPanelProvider.tsx"],"sourcesContent":["import React, {\n createContext,\n ReactElement,\n ReactNode,\n useCallback,\n useContext,\n useState,\n} from \"react\";\nimport {\n isUnconfiguredProperty,\n layoutFromJson,\n useLayoutOperation,\n} from \"@vuu-ui/vuu-layout\";\nimport { LayoutJSON } from \"@vuu-ui/vuu-utils\";\nimport {\n Dialog,\n DialogCloseButton,\n DialogContent,\n DialogHeader,\n} from \"@salt-ds/core\";\n\n/**\n * If component is a string, the component will be read from the\n * comoponent registry. In that case, componentProps can be used\n * to pass props to the component.\n */\nexport type ShowContextPanel = (\n component: string | ReactElement,\n title: string,\n componentProps?: unknown,\n) => void;\n\nexport interface ContextPanelProps {\n hideContextPanel?: () => void;\n showContextPanel: ShowContextPanel;\n}\n\nconst UndefinedShowContextPanel = () => {\n console.warn(\n \"[ContextPanelContext] no implementation for showContextPanel, you need to add a ContextPanelProvider\",\n );\n};\n\nexport const ContextPanelContext = createContext<ContextPanelProps>({\n showContextPanel: UndefinedShowContextPanel,\n});\n\nexport const ContextPanelProvider = ({\n children,\n hideContextPanel: hideContextPanelProp,\n showContextPanel: showContextPanelProp,\n}: Partial<ContextPanelProps> & {\n children: ReactNode;\n}) => {\n const {\n hideContextPanel: inheritedHideContextPanel,\n showContextPanel: inheritedShowContextPanel,\n } = useContext(ContextPanelContext);\n const { showComponentInContextPanel } = useLayoutOperation();\n const [dialog, setDialog] = useState<ReactElement | null>(null);\n\n const handleOpenChange = useCallback((isOpen: boolean) => {\n if (!isOpen) {\n setDialog(null);\n }\n }, []);\n\n const hideContextPanel = hideContextPanelProp ?? inheritedHideContextPanel;\n\n const showContextPanel = useCallback<ShowContextPanel>(\n (elementOrComponentType, title, props) => {\n if (showContextPanelProp) {\n showContextPanelProp(elementOrComponentType, title, props);\n } else if (inheritedShowContextPanel !== UndefinedShowContextPanel) {\n inheritedShowContextPanel(elementOrComponentType, title, props);\n } else if (!isUnconfiguredProperty(showComponentInContextPanel)) {\n const component =\n typeof elementOrComponentType === \"string\"\n ? ({ type: elementOrComponentType, props } as LayoutJSON)\n : elementOrComponentType;\n showComponentInContextPanel(component, title);\n } else if (typeof elementOrComponentType === \"string\") {\n const component =\n typeof elementOrComponentType === \"string\"\n ? layoutFromJson(\n {\n type: elementOrComponentType,\n props,\n } as LayoutJSON,\n \"\",\n )\n : elementOrComponentType;\n\n setDialog(\n <Dialog open={true} onOpenChange={handleOpenChange}>\n <DialogCloseButton\n appearance=\"transparent\"\n data-embedded\n data-icon=\"close\"\n onClick={() => setDialog(null)}\n sentiment=\"neutral\"\n />\n <DialogHeader header={title} />\n <DialogContent>{component}</DialogContent>\n </Dialog>,\n );\n }\n },\n [\n handleOpenChange,\n inheritedShowContextPanel,\n showComponentInContextPanel,\n showContextPanelProp,\n ],\n );\n\n return (\n <ContextPanelContext.Provider\n value={{ hideContextPanel, showContextPanel }}\n >\n {children}\n {dialog}\n </ContextPanelContext.Provider>\n );\n};\n\nexport function useContextPanel() {\n const { showContextPanel } = useContext(ContextPanelContext);\n return showContextPanel;\n}\n\nexport function useHideContextPanel() {\n const { hideContextPanel } = useContext(ContextPanelContext);\n return hideContextPanel;\n}\n"],"names":["createContext","useContext","useLayoutOperation","useState","useCallback","isUnconfiguredProperty","layoutFromJson","jsxs","Dialog","jsx","DialogCloseButton","DialogHeader","DialogContent"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var core = require('@salt-ds/core');
|
|
5
|
+
var cx = require('clsx');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
|
|
8
|
+
const classBase = "vuuCycleStateButton";
|
|
9
|
+
const getNextValue = (value, valueList) => {
|
|
10
|
+
const index = valueList.map((v) => v.toUpperCase()).indexOf(value.toUpperCase());
|
|
11
|
+
if (index === valueList.length - 1) {
|
|
12
|
+
return valueList[0];
|
|
13
|
+
} else {
|
|
14
|
+
return valueList[index + 1];
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const CycleStateButton = React.forwardRef(function CycleStateButton2({
|
|
18
|
+
className,
|
|
19
|
+
onChange,
|
|
20
|
+
onCommit,
|
|
21
|
+
value = "",
|
|
22
|
+
values,
|
|
23
|
+
...buttonProps
|
|
24
|
+
}, forwardedRef) {
|
|
25
|
+
const handleClick = React.useCallback(
|
|
26
|
+
async (evt) => {
|
|
27
|
+
const nextValue = getNextValue(value, values);
|
|
28
|
+
onChange?.(nextValue);
|
|
29
|
+
onCommit?.(evt, nextValue);
|
|
30
|
+
},
|
|
31
|
+
[onChange, onCommit, value, values]
|
|
32
|
+
);
|
|
33
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
core.Button,
|
|
35
|
+
{
|
|
36
|
+
...buttonProps,
|
|
37
|
+
className: cx(
|
|
38
|
+
classBase,
|
|
39
|
+
className,
|
|
40
|
+
`${classBase}-${value.toLowerCase()}`
|
|
41
|
+
),
|
|
42
|
+
onClick: handleClick,
|
|
43
|
+
ref: forwardedRef,
|
|
44
|
+
children: value
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports.CycleStateButton = CycleStateButton;
|
|
50
|
+
//# sourceMappingURL=CycleStateButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CycleStateButton.js","sources":["../../../../packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport type {\n VuuColumnDataType,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { ForwardedRef, forwardRef, SyntheticEvent, useCallback } from \"react\";\nimport type { CommitHandler } from \"@vuu-ui/vuu-utils\";\n\nconst classBase = \"vuuCycleStateButton\";\n\nexport type CycleStateButtonChangeHandler = (value: VuuRowDataItemType) => void;\n\nexport interface CycleStateButtonProps extends Omit<ButtonProps, \"onChange\"> {\n onChange?: CycleStateButtonChangeHandler;\n onCommit?: CommitHandler<HTMLButtonElement>;\n values: string[];\n value: string;\n}\n\nconst getNextValue = (value: string, valueList: string[]) => {\n const index = valueList\n .map((v) => v.toUpperCase())\n .indexOf(value.toUpperCase());\n if (index === valueList.length - 1) {\n return valueList[0];\n } else {\n return valueList[index + 1];\n }\n};\n\nexport const CycleStateButton = forwardRef(function CycleStateButton(\n {\n className,\n onChange,\n onCommit,\n value = \"\",\n values,\n ...buttonProps\n }: CycleStateButtonProps,\n forwardedRef: ForwardedRef<HTMLButtonElement>,\n) {\n const handleClick = useCallback(\n async (evt: SyntheticEvent<HTMLButtonElement>) => {\n const nextValue = getNextValue(value, values);\n onChange?.(nextValue);\n onCommit?.(evt, nextValue as VuuColumnDataType);\n },\n [onChange, onCommit, value, values],\n );\n\n return (\n <Button\n {...buttonProps}\n className={cx(\n classBase,\n className,\n `${classBase}-${value.toLowerCase()}`,\n )}\n onClick={handleClick}\n ref={forwardedRef}\n >\n {value}\n </Button>\n );\n});\n"],"names":["forwardRef","CycleStateButton","useCallback","jsx","Button"],"mappings":";;;;;;;AASA,MAAM,SAAY,GAAA,qBAAA;AAWlB,MAAM,YAAA,GAAe,CAAC,KAAA,EAAe,SAAwB,KAAA;AAC3D,EAAA,MAAM,KAAQ,GAAA,SAAA,CACX,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,WAAY,EAAC,CAC1B,CAAA,OAAA,CAAQ,KAAM,CAAA,WAAA,EAAa,CAAA;AAC9B,EAAI,IAAA,KAAA,KAAU,SAAU,CAAA,MAAA,GAAS,CAAG,EAAA;AAClC,IAAA,OAAO,UAAU,CAAC,CAAA;AAAA,GACb,MAAA;AACL,IAAO,OAAA,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA;AAE9B,CAAA;AAEa,MAAA,gBAAA,GAAmBA,gBAAW,CAAA,SAASC,iBAClD,CAAA;AAAA,EACE,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAQ,GAAA,EAAA;AAAA,EACR,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAAC,iBAAA;AAAA,IAClB,OAAO,GAA2C,KAAA;AAChD,MAAM,MAAA,SAAA,GAAY,YAAa,CAAA,KAAA,EAAO,MAAM,CAAA;AAC5C,MAAA,QAAA,GAAW,SAAS,CAAA;AACpB,MAAA,QAAA,GAAW,KAAK,SAA8B,CAAA;AAAA,KAChD;AAAA,IACA,CAAC,QAAA,EAAU,QAAU,EAAA,KAAA,EAAO,MAAM;AAAA,GACpC;AAEA,EACE,uBAAAC,cAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,SAAW,EAAA,EAAA;AAAA,QACT,SAAA;AAAA,QACA,SAAA;AAAA,QACA,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,KAAA,CAAM,aAAa,CAAA;AAAA,OACrC;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,GAAK,EAAA,YAAA;AAAA,MAEJ,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dateInputCss = "/* Style applied to the root element */\n.saltDateInput {\n --input-border: none;\n --input-borderColor: var(--salt-editable-borderColor);\n --input-borderStyle: var(--salt-editable-borderStyle);\n --input-outlineColor: var(--salt-focused-outlineColor);\n --input-borderWidth: var(--salt-size-border);\n\n align-items: center;\n background: var(--saltDateInput-background, var(--input-background));\n border: var(--input-border);\n border-radius: var(--salt-palette-corner-weak, 0);\n color: var(--saltDateInput-color, var(--salt-content-primary-foreground));\n display: inline-flex;\n gap: var(--salt-spacing-50);\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltDateInput-fontSize, var(--salt-text-fontSize));\n height: var(--saltDateInput-height, var(--salt-size-base));\n line-height: var(--saltDateInput-lineHeight, var(--salt-text-lineHeight));\n min-height: var(--saltDateInput-minHeight, var(--salt-size-base));\n min-width: var(--saltDateInput-minWidth, 4em);\n padding-left: var(--saltDateInput-paddingLeft, var(--salt-spacing-100));\n padding-right: var(--saltDateInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.saltDateInput:hover {\n --input-borderStyle: var(--salt-editable-borderStyle-hover);\n --input-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--saltDateInput-background-hover, var(--input-background-hover));\n cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltDateInput:active {\n --input-borderColor: var(--salt-editable-borderColor-active);\n --input-borderStyle: var(--salt-editable-borderStyle-active);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--saltDateInput-background-active, var(--input-background-active));\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltDateInput-primary {\n --input-background: var(--salt-editable-primary-background);\n --input-background-active: var(--salt-editable-primary-background-active);\n --input-background-hover: var(--salt-editable-primary-background-hover);\n --input-background-disabled: var(--salt-editable-primary-background-disabled);\n --input-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltDateInput-secondary {\n --input-background: var(--salt-editable-secondary-background);\n --input-background-active: var(--salt-editable-secondary-background-active);\n --input-background-hover: var(--salt-editable-secondary-background-active);\n --input-background-disabled: var(--salt-editable-secondary-background-disabled);\n --input-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltDateInput-error,\n.saltDateInput-error:hover {\n --input-background: var(--salt-status-error-background);\n --input-background-active: var(--salt-status-error-background);\n --input-background-hover: var(--salt-status-error-background);\n --input-borderColor: var(--salt-status-error-borderColor);\n --input-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltDateInput-warning,\n.saltDateInput-warning:hover {\n --input-background: var(--salt-status-warning-background);\n --input-background-active: var(--salt-status-warning-background);\n --input-background-hover: var(--salt-status-warning-background);\n --input-borderColor: var(--salt-status-warning-borderColor);\n --input-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltDateInput-success,\n.saltDateInput-success:hover {\n --input-background: var(--salt-status-success-background);\n --input-background-active: var(--salt-status-success-background);\n --input-background-hover: var(--salt-status-success-background);\n --input-borderColor: var(--salt-status-success-borderColor);\n --input-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltDateInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltDateInput-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: left;\n width: min-content;\n}\n\n/* Reset in the class */\n.saltDateInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltDateInput-input::selection {\n background: var(--salt-content-foreground-highlight);\n}\n\n/* Style applied to placeholder text */\n.saltDateInput-input::placeholder {\n color: var(--salt-content-secondary-foreground);\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Styling when focused */\n.saltDateInput-focused {\n --input-borderColor: var(--input-outlineColor);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--saltDateInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltDateInput.saltDateInput-readOnly {\n --input-borderColor: var(--salt-editable-borderColor-readonly);\n --input-borderStyle: var(--salt-editable-borderStyle-readonly);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` */\n.saltDateInput-focused.saltDateInput-disabled {\n --input-borderWidth: var(--salt-size-border);\n outline: none;\n}\n\n/* Styling when focused if `readOnly={true}` */\n.saltDateInput-focused.saltDateInput-readOnly {\n --input-borderWidth: var(--salt-size-border);\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltDateInput-disabled .saltDateInput-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltDateInput.saltDateInput-disabled,\n.saltDateInput.saltDateInput-disabled:hover,\n.saltDateInput.saltDateInput-disabled:active {\n --input-borderColor: var(--salt-editable-borderColor-disabled);\n --input-borderStyle: var(--salt-editable-borderStyle-disabled);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltDateInput-color-disabled, var(--salt-content-primary-foreground-disabled));\n}\n\n.saltDateInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);\n}\n\n/* Style applied if `bordered={true}` */\n.saltDateInput.saltDateInput-bordered {\n --input-border: var(--salt-size-border) var(--salt-container-borderStyle) var(--input-borderColor);\n --input-borderWidth: 0;\n}\n\n/* Style applied if focused or active when `bordered={true}` */\n.saltDateInput-bordered.saltDateInput-focused,\n.saltDateInput-bordered:active {\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` when `bordered={true}` */\n.saltDateInput-bordered.saltDateInput-readOnly,\n.saltDateInput-bordered.saltDateInput-disabled:hover {\n --input-borderWidth: 0;\n}\n\n/* Style applied to end adornments */\n.saltDateInput-endAdornmentContainer {\n display: inline-flex;\n padding-left: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n margin-left: auto;\n align-items: end;\n}\n\n.saltDateInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltDateInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltDateInput-endAdornmentContainer > .saltButton {\n --saltButton-padding: var(--salt-spacing-50);\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = dateInputCss;
|
|
6
|
+
//# sourceMappingURL=DateInput.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateInput.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|