@vuu-ui/vuu-ui-controls 0.9.2 → 0.9.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/node_modules/tabbable/dist/index.esm.js +539 -0
- package/cjs/node_modules/tabbable/dist/index.esm.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/collectionProvider.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/isPlainObject.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/itemToString.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/useCollectionItems.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/common-hooks/useSelection.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/Draggable.js +90 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/index.js +232 -0
- package/cjs/packages/vuu-ui-controls/src/index.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/Highlighter.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/List.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/ListItem.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/ListItemGroup.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/ListItemHeader.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/RadioIcon.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/keyUtils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/list-dom-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useCollapsibleGroups.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useKeyboardNavigation.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useTypeahead.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useViewportTracking.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/collection-item-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/filter-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/isSelected.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/useList.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/useListDrop.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/useListHeight.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/list/useScrollPosition.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js +70 -0
- package/cjs/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js +140 -0
- package/cjs/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/split-button/SplitButton.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/split-button/SplitStateButton.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.js +41 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.js +124 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.js +110 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js +35 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js +23 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js +77 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js +74 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js +130 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNext.js +174 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js +33 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js +91 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js +24 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js +138 -0
- package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/Tabstrip.css.js +6 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
- package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
- package/esm/node_modules/tabbable/dist/index.esm.js +536 -0
- package/esm/node_modules/tabbable/dist/index.esm.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/collectionProvider.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/isPlainObject.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/itemToString.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/useCollectionItems.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/common-hooks/useSelection.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/Draggable.js +85 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js +502 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js +249 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js +263 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/index.js +73 -0
- package/esm/packages/vuu-ui-controls/src/index.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/Highlighter.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/List.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/ListItem.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/ListItemGroup.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/ListItemHeader.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/RadioIcon.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/keyUtils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/list-dom-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/useCollapsibleGroups.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/useKeyboardNavigation.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/useTypeahead.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/useViewportTracking.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/collection-item-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/filter-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/isSelected.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/useList.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/useListDrop.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/useListHeight.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/list/useScrollPosition.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js +68 -0
- package/esm/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js +137 -0
- package/esm/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/split-button/SplitButton.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/split-button/SplitStateButton.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.js +39 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.js +122 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.js +108 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js +33 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js +20 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js +75 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js +72 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js +128 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNext.js +172 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js +30 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js +89 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js +22 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js +136 -0
- package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/Tabstrip.css.js +4 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
- package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
- package/package.json +9 -9
- package/types/calendar/Calendar.d.ts +0 -1
- package/types/calendar/internal/CalendarCarousel.d.ts +0 -1
- package/types/calendar/internal/CalendarContext.d.ts +0 -1
- package/types/calendar/useCalendar.d.ts +4 -4
- package/types/calendar/useCalendarDay.d.ts +2 -2
- package/types/column-picker/ColumnPicker.d.ts +0 -1
- package/types/common-hooks/collectionProvider.d.ts +1 -1
- package/types/common-hooks/selectionTypes.d.ts +1 -1
- package/types/cycle-state-button/CycleStateButton.d.ts +0 -1
- package/types/date-picker/DatePickerContext.d.ts +0 -1
- package/types/drag-drop/DragDropProvider.d.ts +1 -1
- package/types/drag-drop/DropIndicator.d.ts +1 -2
- package/types/drag-drop/drop-target-utils.d.ts +24 -20
- package/types/drag-drop/useAutoScroll.d.ts +2 -2
- package/types/drag-drop/useGlobalDragDrop.d.ts +0 -1
- package/types/expando-input/ExpandoInput.d.ts +0 -1
- package/types/icon-button/Icon.d.ts +1 -1
- package/types/icon-button/IconButton.d.ts +0 -1
- package/types/icon-button/ToggleIconButton.d.ts +1 -2
- package/types/index.d.ts +1 -1
- package/types/instrument-picker/SearchCell.d.ts +1 -2
- package/types/instrument-picker/TablePicker.d.ts +1 -1
- package/types/instrument-picker/useTablePicker.d.ts +3 -10
- package/types/list/ChevronIcon.d.ts +1 -1
- package/types/list/ListItem.d.ts +1 -1
- package/types/list/RadioIcon.d.ts +1 -2
- package/types/list/common-hooks/useTypeahead.d.ts +0 -1
- package/types/overflow-container/useOverflowContainer.d.ts +4 -5
- package/types/price-ticker/PriceTicker.d.ts +1 -1
- package/types/split-button/SplitStateButton.d.ts +0 -1
- package/types/split-button/useSplitButton.d.ts +58 -55
- package/types/table-search/SearchCell.d.ts +1 -2
- package/types/table-search/TableSearch.d.ts +1 -1
- package/types/tabs-next/TabBar.d.ts +12 -0
- package/types/tabs-next/TabListNext.d.ts +12 -0
- package/types/tabs-next/TabNext.d.ts +12 -0
- package/types/tabs-next/TabNextAction.d.ts +5 -0
- package/types/tabs-next/TabNextContext.d.ts +12 -0
- package/types/tabs-next/TabNextPanel.d.ts +8 -0
- package/types/tabs-next/TabNextTrigger.d.ts +5 -0
- package/types/tabs-next/TabOverflowList.d.ts +11 -0
- package/types/tabs-next/TabsNext.d.ts +17 -0
- package/types/tabs-next/TabsNextContext.d.ts +21 -0
- package/types/tabs-next/hooks/useCollection.d.ts +18 -0
- package/types/tabs-next/hooks/useFocusOutside.d.ts +2 -0
- package/types/tabs-next/hooks/useOverflow.d.ts +11 -0
- package/types/tabs-next/index.d.ts +7 -0
- package/types/tabstrip/Tab.d.ts +23 -22
- package/types/tabstrip/TabMenu.d.ts +1 -2
- package/types/tabstrip/Tabstrip.d.ts +1 -2
- package/types/tabstrip/useSelection.d.ts +3 -3
- package/types/tabstrip/useTabstrip.d.ts +5 -5
- package/types/toolbar/Toolbar.d.ts +1 -2
- package/types/toolbar/useToolbar.d.ts +1 -1
- package/types/vuu-date-picker/VuuDatePicker.d.ts +4 -6
- package/types/vuu-typeahead-input/VuuTypeaheadInput.d.ts +1 -2
- package/cjs/calendar/Calendar.js.map +0 -1
- package/cjs/calendar/internal/CalendarCarousel.js.map +0 -1
- package/cjs/calendar/internal/CalendarContext.js.map +0 -1
- package/cjs/calendar/internal/CalendarDay.js.map +0 -1
- package/cjs/calendar/internal/CalendarMonth.js.map +0 -1
- package/cjs/calendar/internal/CalendarNavigation.js.map +0 -1
- package/cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
- package/cjs/calendar/internal/useFocusManagement.js.map +0 -1
- package/cjs/calendar/internal/utils.js.map +0 -1
- package/cjs/calendar/useCalendar.js.map +0 -1
- package/cjs/calendar/useCalendarDay.js.map +0 -1
- package/cjs/calendar/useSelection.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.js.map +0 -1
- package/cjs/column-picker/ColumnSearch.js.map +0 -1
- package/cjs/common-hooks/collectionProvider.js.map +0 -1
- package/cjs/common-hooks/isPlainObject.js.map +0 -1
- package/cjs/common-hooks/itemToString.js.map +0 -1
- package/cjs/common-hooks/selectionTypes.js.map +0 -1
- package/cjs/common-hooks/use-resize-observer.js.map +0 -1
- package/cjs/common-hooks/useCollectionItems.js.map +0 -1
- package/cjs/common-hooks/useControlled.js.map +0 -1
- package/cjs/common-hooks/useSelection.js.map +0 -1
- package/cjs/cycle-state-button/CycleStateButton.js.map +0 -1
- package/cjs/date-input/DateInput.js.map +0 -1
- package/cjs/date-picker/DatePicker.js.map +0 -1
- package/cjs/date-picker/DatePickerContext.js.map +0 -1
- package/cjs/date-picker/DatePickerPanel.js.map +0 -1
- package/cjs/drag-drop/DragDropProvider.js.map +0 -1
- package/cjs/drag-drop/DragDropState.js.map +0 -1
- package/cjs/drag-drop/Draggable.js +0 -95
- package/cjs/drag-drop/Draggable.js.map +0 -1
- package/cjs/drag-drop/dragDropTypes.js.map +0 -1
- package/cjs/drag-drop/drop-target-utils.js.map +0 -1
- package/cjs/drag-drop/useAutoScroll.js.map +0 -1
- package/cjs/drag-drop/useDragDisplacers.js.map +0 -1
- package/cjs/drag-drop/useDragDrop.js.map +0 -1
- package/cjs/drag-drop/useDragDropCopy.js.map +0 -1
- package/cjs/drag-drop/useDragDropIndicator.js.map +0 -1
- package/cjs/drag-drop/useDragDropNaturalMovement.js.map +0 -1
- package/cjs/drag-drop/useDropIndicator.js.map +0 -1
- package/cjs/drag-drop/useGlobalDragDrop.js.map +0 -1
- package/cjs/editable/useEditableText.js.map +0 -1
- package/cjs/editable-label/EditableLabel.js.map +0 -1
- package/cjs/expando-input/ExpandoInput.js.map +0 -1
- package/cjs/icon-button/Icon.js.map +0 -1
- package/cjs/icon-button/IconButton.js.map +0 -1
- package/cjs/icon-button/ToggleIconButton.css.js +0 -6
- package/cjs/icon-button/ToggleIconButton.js.map +0 -1
- package/cjs/index.js +0 -223
- package/cjs/index.js.map +0 -1
- package/cjs/instrument-picker/TablePicker.js.map +0 -1
- package/cjs/instrument-picker/useTablePicker.js.map +0 -1
- package/cjs/list/Highlighter.js.map +0 -1
- package/cjs/list/List.js.map +0 -1
- package/cjs/list/ListItem.js.map +0 -1
- package/cjs/list/ListItemGroup.js.map +0 -1
- package/cjs/list/ListItemHeader.js.map +0 -1
- package/cjs/list/RadioIcon.js.map +0 -1
- package/cjs/list/common-hooks/keyUtils.js.map +0 -1
- package/cjs/list/common-hooks/list-dom-utils.js.map +0 -1
- package/cjs/list/common-hooks/useCollapsibleGroups.js.map +0 -1
- package/cjs/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
- package/cjs/list/common-hooks/useKeyboardNavigation.js.map +0 -1
- package/cjs/list/common-hooks/useTypeahead.js.map +0 -1
- package/cjs/list/common-hooks/useViewportTracking.js.map +0 -1
- package/cjs/list/common-hooks/utils/collection-item-utils.js.map +0 -1
- package/cjs/list/common-hooks/utils/filter-utils.js.map +0 -1
- package/cjs/list/common-hooks/utils/isSelected.js.map +0 -1
- package/cjs/list/useList.js.map +0 -1
- package/cjs/list/useListDrop.js.map +0 -1
- package/cjs/list/useListHeight.js.map +0 -1
- package/cjs/list/useScrollPosition.js.map +0 -1
- package/cjs/measured-container/MeasuredContainer.js +0 -69
- package/cjs/measured-container/MeasuredContainer.js.map +0 -1
- package/cjs/measured-container/useMeasuredContainer.js +0 -137
- package/cjs/measured-container/useMeasuredContainer.js.map +0 -1
- package/cjs/measured-container/useResizeObserver.js.map +0 -1
- package/cjs/overflow-container/OverflowContainer.js.map +0 -1
- package/cjs/overflow-container/overflow-utils.js.map +0 -1
- package/cjs/overflow-container/useOverflowContainer.js.map +0 -1
- package/cjs/price-ticker/PriceTicker.js.map +0 -1
- package/cjs/split-button/SplitButton.css.js +0 -6
- package/cjs/split-button/SplitButton.js.map +0 -1
- package/cjs/split-button/SplitStateButton.css.js +0 -6
- package/cjs/split-button/SplitStateButton.js.map +0 -1
- package/cjs/split-button/useSplitButton.js.map +0 -1
- package/cjs/table-search/SearchCell.js.map +0 -1
- package/cjs/table-search/TableSearch.js.map +0 -1
- package/cjs/table-search/useTableSearch.js.map +0 -1
- package/cjs/tabstrip/Tab.js.map +0 -1
- package/cjs/tabstrip/TabMenu.js.map +0 -1
- package/cjs/tabstrip/TabMenuOptions.js.map +0 -1
- package/cjs/tabstrip/Tabstrip.css.js +0 -6
- package/cjs/tabstrip/Tabstrip.js.map +0 -1
- package/cjs/tabstrip/tabstrip-dom-utils.js.map +0 -1
- package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
- package/cjs/tabstrip/useKeyboardNavigation.js.map +0 -1
- package/cjs/tabstrip/useSelection.js.map +0 -1
- package/cjs/tabstrip/useTabstrip.js.map +0 -1
- package/cjs/toolbar/Toolbar.js.map +0 -1
- package/cjs/toolbar/toolbar-dom-utils.js.map +0 -1
- package/cjs/toolbar/useKeyboardNavigation.js.map +0 -1
- package/cjs/toolbar/useSelection.js.map +0 -1
- package/cjs/toolbar/useToolbar.js.map +0 -1
- package/cjs/tree/Tree.css.js +0 -6
- package/cjs/tree/Tree.css.js.map +0 -1
- package/cjs/tree/Tree.js +0 -179
- package/cjs/tree/Tree.js.map +0 -1
- package/cjs/tree/hierarchical-data-utils.js +0 -72
- package/cjs/tree/hierarchical-data-utils.js.map +0 -1
- package/cjs/tree/key-code.js +0 -62
- package/cjs/tree/key-code.js.map +0 -1
- package/cjs/tree/list-dom-utils.js +0 -19
- package/cjs/tree/list-dom-utils.js.map +0 -1
- package/cjs/tree/treeTypeUtils.js +0 -6
- package/cjs/tree/treeTypeUtils.js.map +0 -1
- package/cjs/tree/use-collapsible-groups.js +0 -85
- package/cjs/tree/use-collapsible-groups.js.map +0 -1
- package/cjs/tree/use-hierarchical-data.js +0 -51
- package/cjs/tree/use-hierarchical-data.js.map +0 -1
- package/cjs/tree/use-items-with-ids.js +0 -100
- package/cjs/tree/use-items-with-ids.js.map +0 -1
- package/cjs/tree/use-keyboard-navigation.js +0 -144
- package/cjs/tree/use-keyboard-navigation.js.map +0 -1
- package/cjs/tree/use-selection.js +0 -154
- package/cjs/tree/use-selection.js.map +0 -1
- package/cjs/tree/use-tree-keyboard-navigation.js +0 -41
- package/cjs/tree/use-tree-keyboard-navigation.js.map +0 -1
- package/cjs/tree/use-viewport-tracking.js +0 -76
- package/cjs/tree/use-viewport-tracking.js.map +0 -1
- package/cjs/tree/useTree.js +0 -106
- package/cjs/tree/useTree.js.map +0 -1
- package/cjs/utils/escapeRegExp.js.map +0 -1
- package/cjs/utils/forwardCallbackProps.js.map +0 -1
- package/cjs/utils/isOverflowElement.js.map +0 -1
- package/cjs/utils/isPlainObject.js.map +0 -1
- package/cjs/vuu-date-picker/VuuDatePicker.js.map +0 -1
- package/cjs/vuu-input/VuuInput.js.map +0 -1
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
- package/esm/calendar/Calendar.js.map +0 -1
- package/esm/calendar/internal/CalendarCarousel.js.map +0 -1
- package/esm/calendar/internal/CalendarContext.js.map +0 -1
- package/esm/calendar/internal/CalendarDay.js.map +0 -1
- package/esm/calendar/internal/CalendarMonth.js.map +0 -1
- package/esm/calendar/internal/CalendarNavigation.js.map +0 -1
- package/esm/calendar/internal/CalendarWeekHeader.js.map +0 -1
- package/esm/calendar/internal/useFocusManagement.js.map +0 -1
- package/esm/calendar/internal/utils.js.map +0 -1
- package/esm/calendar/useCalendar.js.map +0 -1
- package/esm/calendar/useCalendarDay.js.map +0 -1
- package/esm/calendar/useSelection.js.map +0 -1
- package/esm/column-picker/ColumnPicker.js.map +0 -1
- package/esm/column-picker/ColumnSearch.js.map +0 -1
- package/esm/common-hooks/collectionProvider.js.map +0 -1
- package/esm/common-hooks/isPlainObject.js.map +0 -1
- package/esm/common-hooks/itemToString.js.map +0 -1
- package/esm/common-hooks/selectionTypes.js.map +0 -1
- package/esm/common-hooks/use-resize-observer.js.map +0 -1
- package/esm/common-hooks/useCollectionItems.js.map +0 -1
- package/esm/common-hooks/useControlled.js.map +0 -1
- package/esm/common-hooks/useSelection.js.map +0 -1
- package/esm/cycle-state-button/CycleStateButton.js.map +0 -1
- package/esm/date-input/DateInput.js.map +0 -1
- package/esm/date-picker/DatePicker.js.map +0 -1
- package/esm/date-picker/DatePickerContext.js.map +0 -1
- package/esm/date-picker/DatePickerPanel.js.map +0 -1
- package/esm/drag-drop/DragDropProvider.js.map +0 -1
- package/esm/drag-drop/DragDropState.js.map +0 -1
- package/esm/drag-drop/Draggable.js +0 -90
- package/esm/drag-drop/Draggable.js.map +0 -1
- package/esm/drag-drop/dragDropTypes.js.map +0 -1
- package/esm/drag-drop/drop-target-utils.js.map +0 -1
- package/esm/drag-drop/useAutoScroll.js.map +0 -1
- package/esm/drag-drop/useDragDisplacers.js.map +0 -1
- package/esm/drag-drop/useDragDrop.js +0 -502
- package/esm/drag-drop/useDragDrop.js.map +0 -1
- package/esm/drag-drop/useDragDropCopy.js.map +0 -1
- package/esm/drag-drop/useDragDropIndicator.js +0 -249
- package/esm/drag-drop/useDragDropIndicator.js.map +0 -1
- package/esm/drag-drop/useDragDropNaturalMovement.js +0 -263
- package/esm/drag-drop/useDragDropNaturalMovement.js.map +0 -1
- package/esm/drag-drop/useDropIndicator.js.map +0 -1
- package/esm/drag-drop/useGlobalDragDrop.js.map +0 -1
- package/esm/editable/useEditableText.js.map +0 -1
- package/esm/editable-label/EditableLabel.js.map +0 -1
- package/esm/expando-input/ExpandoInput.js.map +0 -1
- package/esm/icon-button/Icon.js.map +0 -1
- package/esm/icon-button/IconButton.js.map +0 -1
- package/esm/icon-button/ToggleIconButton.css.js +0 -4
- package/esm/icon-button/ToggleIconButton.js.map +0 -1
- package/esm/index.js +0 -68
- package/esm/index.js.map +0 -1
- package/esm/instrument-picker/TablePicker.js.map +0 -1
- package/esm/instrument-picker/useTablePicker.js.map +0 -1
- package/esm/list/Highlighter.js.map +0 -1
- package/esm/list/List.js.map +0 -1
- package/esm/list/ListItem.js.map +0 -1
- package/esm/list/ListItemGroup.js.map +0 -1
- package/esm/list/ListItemHeader.js.map +0 -1
- package/esm/list/RadioIcon.js.map +0 -1
- package/esm/list/common-hooks/keyUtils.js.map +0 -1
- package/esm/list/common-hooks/list-dom-utils.js.map +0 -1
- package/esm/list/common-hooks/useCollapsibleGroups.js.map +0 -1
- package/esm/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
- package/esm/list/common-hooks/useKeyboardNavigation.js.map +0 -1
- package/esm/list/common-hooks/useTypeahead.js.map +0 -1
- package/esm/list/common-hooks/useViewportTracking.js.map +0 -1
- package/esm/list/common-hooks/utils/collection-item-utils.js.map +0 -1
- package/esm/list/common-hooks/utils/filter-utils.js.map +0 -1
- package/esm/list/common-hooks/utils/isSelected.js.map +0 -1
- package/esm/list/useList.js.map +0 -1
- package/esm/list/useListDrop.js.map +0 -1
- package/esm/list/useListHeight.js.map +0 -1
- package/esm/list/useScrollPosition.js.map +0 -1
- package/esm/measured-container/MeasuredContainer.js +0 -67
- package/esm/measured-container/MeasuredContainer.js.map +0 -1
- package/esm/measured-container/useMeasuredContainer.js +0 -134
- package/esm/measured-container/useMeasuredContainer.js.map +0 -1
- package/esm/measured-container/useResizeObserver.js.map +0 -1
- package/esm/overflow-container/OverflowContainer.js.map +0 -1
- package/esm/overflow-container/overflow-utils.js.map +0 -1
- package/esm/overflow-container/useOverflowContainer.js.map +0 -1
- package/esm/price-ticker/PriceTicker.js.map +0 -1
- package/esm/split-button/SplitButton.css.js +0 -4
- package/esm/split-button/SplitButton.js.map +0 -1
- package/esm/split-button/SplitStateButton.css.js +0 -4
- package/esm/split-button/SplitStateButton.js.map +0 -1
- package/esm/split-button/useSplitButton.js.map +0 -1
- package/esm/table-search/SearchCell.js.map +0 -1
- package/esm/table-search/TableSearch.js.map +0 -1
- package/esm/table-search/useTableSearch.js.map +0 -1
- package/esm/tabstrip/Tab.js.map +0 -1
- package/esm/tabstrip/TabMenu.js.map +0 -1
- package/esm/tabstrip/TabMenuOptions.js.map +0 -1
- package/esm/tabstrip/Tabstrip.css.js +0 -4
- package/esm/tabstrip/Tabstrip.js.map +0 -1
- package/esm/tabstrip/tabstrip-dom-utils.js.map +0 -1
- package/esm/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
- package/esm/tabstrip/useKeyboardNavigation.js.map +0 -1
- package/esm/tabstrip/useSelection.js.map +0 -1
- package/esm/tabstrip/useTabstrip.js.map +0 -1
- package/esm/toolbar/Toolbar.js.map +0 -1
- package/esm/toolbar/toolbar-dom-utils.js.map +0 -1
- package/esm/toolbar/useKeyboardNavigation.js.map +0 -1
- package/esm/toolbar/useSelection.js.map +0 -1
- package/esm/toolbar/useToolbar.js.map +0 -1
- package/esm/tree/Tree.css.js +0 -4
- package/esm/tree/Tree.css.js.map +0 -1
- package/esm/tree/Tree.js +0 -176
- package/esm/tree/Tree.js.map +0 -1
- package/esm/tree/hierarchical-data-utils.js +0 -65
- package/esm/tree/hierarchical-data-utils.js.map +0 -1
- package/esm/tree/key-code.js +0 -54
- package/esm/tree/key-code.js.map +0 -1
- package/esm/tree/list-dom-utils.js +0 -15
- package/esm/tree/list-dom-utils.js.map +0 -1
- package/esm/tree/treeTypeUtils.js +0 -4
- package/esm/tree/treeTypeUtils.js.map +0 -1
- package/esm/tree/use-collapsible-groups.js +0 -83
- package/esm/tree/use-collapsible-groups.js.map +0 -1
- package/esm/tree/use-hierarchical-data.js +0 -49
- package/esm/tree/use-hierarchical-data.js.map +0 -1
- package/esm/tree/use-items-with-ids.js +0 -98
- package/esm/tree/use-items-with-ids.js.map +0 -1
- package/esm/tree/use-keyboard-navigation.js +0 -142
- package/esm/tree/use-keyboard-navigation.js.map +0 -1
- package/esm/tree/use-selection.js +0 -147
- package/esm/tree/use-selection.js.map +0 -1
- package/esm/tree/use-tree-keyboard-navigation.js +0 -39
- package/esm/tree/use-tree-keyboard-navigation.js.map +0 -1
- package/esm/tree/use-viewport-tracking.js +0 -74
- package/esm/tree/use-viewport-tracking.js.map +0 -1
- package/esm/tree/useTree.js +0 -104
- package/esm/tree/useTree.js.map +0 -1
- package/esm/utils/escapeRegExp.js.map +0 -1
- package/esm/utils/forwardCallbackProps.js.map +0 -1
- package/esm/utils/isOverflowElement.js.map +0 -1
- package/esm/utils/isPlainObject.js.map +0 -1
- package/esm/vuu-date-picker/VuuDatePicker.js.map +0 -1
- package/esm/vuu-input/VuuInput.js.map +0 -1
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
- package/types/tree/Tree.d.ts +0 -19
- package/types/tree/hierarchical-data-utils.d.ts +0 -8
- package/types/tree/index.d.ts +0 -3
- package/types/tree/key-code.d.ts +0 -11
- package/types/tree/list-dom-utils.d.ts +0 -6
- package/types/tree/treeTypeUtils.d.ts +0 -2
- package/types/tree/use-collapsible-groups.d.ts +0 -18
- package/types/tree/use-hierarchical-data.d.ts +0 -6
- package/types/tree/use-items-with-ids.d.ts +0 -8
- package/types/tree/use-keyboard-navigation.d.ts +0 -26
- package/types/tree/use-selection.d.ts +0 -31
- package/types/tree/use-tree-keyboard-navigation.d.ts +0 -12
- package/types/tree/use-viewport-tracking.d.ts +0 -2
- package/types/tree/useTree.d.ts +0 -30
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
- /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.js +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
- /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/collectionProvider.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/isPlainObject.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/itemToString.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useCollectionItems.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
- /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useSelection.js +0 -0
- /package/cjs/{cycle-state-button → packages/vuu-ui-controls/src/cycle-state-button}/CycleStateButton.js +0 -0
- /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
- /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
- /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
- /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
- /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
- /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
- /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
- /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDrop.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropIndicator.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropNaturalMovement.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
- /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
- /package/cjs/{editable → packages/vuu-ui-controls/src/editable}/useEditableText.js +0 -0
- /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
- /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
- /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
- /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
- /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
- /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
- /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
- /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
- /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
- /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
- /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js.map +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.css.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.css.js.map +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js.map +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItemGroup.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItemHeader.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js.map +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/keyUtils.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/list-dom-utils.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useCollapsibleGroups.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useImperativeScrollingAPI.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useKeyboardNavigation.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useTypeahead.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useViewportTracking.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/collection-item-utils.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/filter-utils.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/isSelected.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/useList.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/useListDrop.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/useListHeight.js +0 -0
- /package/cjs/{list → packages/vuu-ui-controls/src/list}/useScrollPosition.js +0 -0
- /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
- /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
- /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
- /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
- /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
- /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
- /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
- /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
- /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
- /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
- /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
- /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
- /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
- /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
- /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
- /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
- /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
- /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useSelection.js +0 -0
- /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
- /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
- /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
- /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
- /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
- /package/cjs/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
- /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
- /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
- /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
- /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
- /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
- /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
- /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
- /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.js +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
- /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/collectionProvider.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/isPlainObject.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/itemToString.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useCollectionItems.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
- /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useSelection.js +0 -0
- /package/esm/{cycle-state-button → packages/vuu-ui-controls/src/cycle-state-button}/CycleStateButton.js +0 -0
- /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
- /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
- /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
- /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
- /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
- /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
- /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
- /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
- /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
- /package/esm/{editable → packages/vuu-ui-controls/src/editable}/useEditableText.js +0 -0
- /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
- /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
- /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
- /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
- /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
- /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
- /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
- /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
- /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
- /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
- /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js.map +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/List.css.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/List.css.js.map +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/List.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js.map +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItemGroup.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItemHeader.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js.map +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/keyUtils.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/list-dom-utils.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useCollapsibleGroups.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useImperativeScrollingAPI.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useKeyboardNavigation.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useTypeahead.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useViewportTracking.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/collection-item-utils.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/filter-utils.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/isSelected.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/useList.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/useListDrop.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/useListHeight.js +0 -0
- /package/esm/{list → packages/vuu-ui-controls/src/list}/useScrollPosition.js +0 -0
- /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
- /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
- /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
- /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
- /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
- /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
- /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
- /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
- /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
- /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
- /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
- /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
- /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
- /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
- /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
- /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
- /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
- /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useSelection.js +0 -0
- /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
- /package/esm/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
- /package/esm/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
- /package/esm/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
- /package/esm/{utils → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
- /package/esm/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
- /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
- /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
- /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
- /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
- /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
- /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
- /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('@floating-ui/react');
|
|
5
|
+
var core = require('@salt-ds/core');
|
|
6
|
+
var styles = require('@salt-ds/styles');
|
|
7
|
+
var window = require('@salt-ds/window');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var TabOverflowList$1 = require('./TabOverflowList.css.js');
|
|
10
|
+
var useFocusOutside = require('./hooks/useFocusOutside.js');
|
|
11
|
+
|
|
12
|
+
const withBaseName = core.makePrefixer("saltTabOverflow");
|
|
13
|
+
const TabOverflowList = React.forwardRef(
|
|
14
|
+
function TabOverflowList2(props, ref) {
|
|
15
|
+
const {
|
|
16
|
+
buttonRef,
|
|
17
|
+
tabstripRef,
|
|
18
|
+
children,
|
|
19
|
+
isMeasuring,
|
|
20
|
+
open,
|
|
21
|
+
setOpen,
|
|
22
|
+
...rest
|
|
23
|
+
} = props;
|
|
24
|
+
const targetWindow = window.useWindow();
|
|
25
|
+
styles.useComponentCssInjection({
|
|
26
|
+
testId: "salt-tabs-next-overflow-list",
|
|
27
|
+
css: TabOverflowList$1,
|
|
28
|
+
window: targetWindow
|
|
29
|
+
});
|
|
30
|
+
const { OverflowIcon } = core.useIcon();
|
|
31
|
+
const { refs, x, y, strategy, context } = core.useFloatingUI({
|
|
32
|
+
open,
|
|
33
|
+
onOpenChange(open2, _, reason) {
|
|
34
|
+
if (reason === "escape-key") {
|
|
35
|
+
queueMicrotask(() => {
|
|
36
|
+
const allTabs = tabstripRef.current?.querySelectorAll(
|
|
37
|
+
'[role="tab"]:not([aria-hidden])'
|
|
38
|
+
) ?? [];
|
|
39
|
+
const numberOfTabsInOverflow = listRef.current?.querySelectorAll('[role="tab"]').length ?? 0;
|
|
40
|
+
allTabs[allTabs.length - numberOfTabsInOverflow - 1]?.focus({
|
|
41
|
+
preventScroll: true
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
setOpen(open2);
|
|
46
|
+
},
|
|
47
|
+
placement: "bottom-start",
|
|
48
|
+
middleware: [
|
|
49
|
+
react.offset(1),
|
|
50
|
+
react.size({
|
|
51
|
+
apply({ elements, availableHeight }) {
|
|
52
|
+
Object.assign(elements.floating.style, {
|
|
53
|
+
maxHeight: `max(calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5), calc(${availableHeight}px - var(--salt-spacing-100)))`
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
const { getFloatingProps } = react.useInteractions([react.useDismiss(context)]);
|
|
60
|
+
const rootRef = React.useRef(null);
|
|
61
|
+
const handleRootRef = core.useForkRef(rootRef, ref);
|
|
62
|
+
const listRef = React.useRef(null);
|
|
63
|
+
const handleListRef = core.useForkRef(listRef, refs.setFloating);
|
|
64
|
+
const handleFocusOutside = React.useCallback(() => {
|
|
65
|
+
setOpen(false);
|
|
66
|
+
}, [setOpen]);
|
|
67
|
+
useFocusOutside.useFocusOutside(
|
|
68
|
+
rootRef,
|
|
69
|
+
handleFocusOutside,
|
|
70
|
+
open,
|
|
71
|
+
"[data-floating-ui-portal]"
|
|
72
|
+
);
|
|
73
|
+
const handleClick = () => {
|
|
74
|
+
if (!open) {
|
|
75
|
+
listRef.current?.querySelectorAll('[role="tab"]')[0]?.focus({ preventScroll: true });
|
|
76
|
+
} else {
|
|
77
|
+
setOpen(false);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const handleFocus = () => {
|
|
81
|
+
setOpen(true);
|
|
82
|
+
};
|
|
83
|
+
const handleButtonRef = core.useForkRef(
|
|
84
|
+
buttonRef,
|
|
85
|
+
refs.setReference
|
|
86
|
+
);
|
|
87
|
+
const listId = core.useId();
|
|
88
|
+
const childCount = React.Children.count(children);
|
|
89
|
+
if (childCount === 0 && !isMeasuring) return null;
|
|
90
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName(), ref: handleRootRef, children: [
|
|
91
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
92
|
+
core.Button,
|
|
93
|
+
{
|
|
94
|
+
"data-overflowbutton": true,
|
|
95
|
+
tabIndex: -1,
|
|
96
|
+
appearance: "transparent",
|
|
97
|
+
sentiment: "neutral",
|
|
98
|
+
onClick: handleClick,
|
|
99
|
+
ref: handleButtonRef,
|
|
100
|
+
"aria-label": `Overflow menu. ${childCount} tabs hidden`,
|
|
101
|
+
"aria-expanded": open,
|
|
102
|
+
"aria-controls": listId,
|
|
103
|
+
"aria-hidden": "true",
|
|
104
|
+
role: "tab",
|
|
105
|
+
"aria-haspopup": true,
|
|
106
|
+
...rest,
|
|
107
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(OverflowIcon, { "aria-hidden": true })
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.FloatingTree, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
111
|
+
"div",
|
|
112
|
+
{
|
|
113
|
+
ref: handleListRef,
|
|
114
|
+
...getFloatingProps({
|
|
115
|
+
onFocus: handleFocus,
|
|
116
|
+
role: "presentation"
|
|
117
|
+
}),
|
|
118
|
+
className: withBaseName("list"),
|
|
119
|
+
"data-hidden": !open,
|
|
120
|
+
style: open ? { left: x ?? 0, top: y ?? 0, position: strategy } : void 0,
|
|
121
|
+
id: listId,
|
|
122
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: withBaseName("listContainer"), children })
|
|
123
|
+
}
|
|
124
|
+
) })
|
|
125
|
+
] });
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
exports.TabOverflowList = TabOverflowList;
|
|
130
|
+
//# sourceMappingURL=TabOverflowList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabOverflowList.js","sources":["../../../../../src/tabs-next/TabOverflowList.tsx"],"sourcesContent":["import {\n FloatingTree,\n offset,\n size,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport {\n Button,\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIcon,\n useId,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n Children,\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ReactNode,\n type Ref,\n type RefObject,\n type SetStateAction,\n forwardRef,\n useCallback,\n useRef,\n} from \"react\";\nimport tabOverflowListCss from \"./TabOverflowList.css\";\nimport { useFocusOutside } from \"./hooks/useFocusOutside\";\n\ninterface TabOverflowListProps extends ComponentPropsWithoutRef<\"button\"> {\n buttonRef?: Ref<HTMLButtonElement>;\n tabstripRef: RefObject<HTMLDivElement>;\n children?: ReactNode;\n isMeasuring?: boolean;\n open: boolean;\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nconst withBaseName = makePrefixer(\"saltTabOverflow\");\n\nexport const TabOverflowList = forwardRef<HTMLDivElement, TabOverflowListProps>(\n function TabOverflowList(props, ref) {\n const {\n buttonRef,\n tabstripRef,\n children,\n isMeasuring,\n open,\n setOpen,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tabs-next-overflow-list\",\n css: tabOverflowListCss,\n window: targetWindow,\n });\n\n const { OverflowIcon } = useIcon();\n\n const { refs, x, y, strategy, context } = useFloatingUI({\n open: open,\n onOpenChange(open, _, reason) {\n if (reason === \"escape-key\") {\n queueMicrotask(() => {\n const allTabs =\n tabstripRef.current?.querySelectorAll<HTMLElement>(\n '[role=\"tab\"]:not([aria-hidden])',\n ) ?? [];\n const numberOfTabsInOverflow =\n listRef.current?.querySelectorAll<HTMLElement>('[role=\"tab\"]')\n .length ?? 0;\n\n allTabs[allTabs.length - numberOfTabsInOverflow - 1]?.focus({\n preventScroll: true,\n });\n });\n }\n\n setOpen(open);\n },\n placement: \"bottom-start\",\n middleware: [\n offset(1),\n size({\n apply({ elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n maxHeight: `max(calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5), calc(${availableHeight}px - var(--salt-spacing-100)))`,\n });\n },\n }),\n ],\n });\n\n const { getFloatingProps } = useInteractions([useDismiss(context)]);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const handleRootRef = useForkRef(rootRef, ref);\n const listRef = useRef<HTMLDivElement>(null);\n const handleListRef = useForkRef<HTMLDivElement>(listRef, refs.setFloating);\n\n const handleFocusOutside = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useFocusOutside(\n rootRef,\n handleFocusOutside,\n open,\n \"[data-floating-ui-portal]\",\n );\n\n const handleClick = () => {\n if (!open) {\n listRef.current\n ?.querySelectorAll<HTMLElement>('[role=\"tab\"]')[0]\n ?.focus({ preventScroll: true });\n } else {\n setOpen(false);\n }\n };\n\n const handleFocus = () => {\n setOpen(true);\n };\n\n const handleButtonRef = useForkRef<HTMLButtonElement>(\n buttonRef,\n refs.setReference,\n );\n\n const listId = useId();\n\n const childCount = Children.count(children);\n if (childCount === 0 && !isMeasuring) return null;\n\n return (\n <div className={withBaseName()} ref={handleRootRef}>\n <Button\n data-overflowbutton\n tabIndex={-1}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleClick}\n ref={handleButtonRef}\n aria-label={`Overflow menu. ${childCount} tabs hidden`}\n aria-expanded={open}\n aria-controls={listId}\n aria-hidden=\"true\"\n role=\"tab\"\n aria-haspopup\n {...rest}\n >\n <OverflowIcon aria-hidden />\n </Button>\n <FloatingTree>\n <div\n ref={handleListRef}\n {...getFloatingProps({\n onFocus: handleFocus,\n role: \"presentation\",\n })}\n className={withBaseName(\"list\")}\n data-hidden={!open}\n style={\n open\n ? { left: x ?? 0, top: y ?? 0, position: strategy }\n : undefined\n }\n id={listId}\n >\n <div className={withBaseName(\"listContainer\")}>{children}</div>\n </div>\n </FloatingTree>\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","TabOverflowList","useWindow","useComponentCssInjection","tabOverflowListCss","useIcon","useFloatingUI","open","offset","size","useInteractions","useDismiss","useRef","useForkRef","useCallback","useFocusOutside","useId","Children","jsx","Button","FloatingTree"],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var core = require('@salt-ds/core');
|
|
6
|
+
var cx = require('clsx');
|
|
7
|
+
var TabsNextContext = require('./TabsNextContext.js');
|
|
8
|
+
var useCollection = require('./hooks/useCollection.js');
|
|
9
|
+
|
|
10
|
+
const withBaseName = core.makePrefixer("saltTabsNext");
|
|
11
|
+
const TabsNext = React.forwardRef(
|
|
12
|
+
function TabsNext2(props, ref) {
|
|
13
|
+
const { className, children, value, defaultValue, onChange, ...rest } = props;
|
|
14
|
+
const [valueToTabIdMap, setValueToIdMap] = React.useState({
|
|
15
|
+
map: /* @__PURE__ */ new Map()
|
|
16
|
+
});
|
|
17
|
+
const [valueToPanelIdMap, setValueToPanelIdMap] = React.useState({
|
|
18
|
+
map: /* @__PURE__ */ new Map()
|
|
19
|
+
});
|
|
20
|
+
const {
|
|
21
|
+
registerItem,
|
|
22
|
+
item,
|
|
23
|
+
getNext,
|
|
24
|
+
getPrevious,
|
|
25
|
+
getFirst,
|
|
26
|
+
getLast,
|
|
27
|
+
items
|
|
28
|
+
} = useCollection.useCollection({ wrap: true });
|
|
29
|
+
const activeTab = React.useRef();
|
|
30
|
+
const returnFocus = React.useRef(void 0);
|
|
31
|
+
const [menuOpen, setMenuOpen] = React.useState(false);
|
|
32
|
+
const [selected, setSelectedState] = core.useControlled({
|
|
33
|
+
controlled: value,
|
|
34
|
+
default: defaultValue,
|
|
35
|
+
name: "TabListNext",
|
|
36
|
+
state: "selected"
|
|
37
|
+
});
|
|
38
|
+
const selectedRef = React.useRef(void 0);
|
|
39
|
+
core.useIsomorphicLayoutEffect(() => {
|
|
40
|
+
selectedRef.current = selected;
|
|
41
|
+
}, [selected]);
|
|
42
|
+
const setSelected = React.useCallback(
|
|
43
|
+
(event, value2) => {
|
|
44
|
+
setMenuOpen(false);
|
|
45
|
+
setSelectedState(value2);
|
|
46
|
+
onChange?.(event, value2);
|
|
47
|
+
},
|
|
48
|
+
[onChange]
|
|
49
|
+
);
|
|
50
|
+
const registerTab = core.useEventCallback((item2) => {
|
|
51
|
+
const cleanup = registerItem(item2);
|
|
52
|
+
setValueToIdMap(({ map }) => {
|
|
53
|
+
map.set(item2.value, item2.id);
|
|
54
|
+
return { map };
|
|
55
|
+
});
|
|
56
|
+
return () => {
|
|
57
|
+
const items2 = cleanup();
|
|
58
|
+
setValueToIdMap(({ map }) => {
|
|
59
|
+
map.delete(item2.value);
|
|
60
|
+
return { map };
|
|
61
|
+
});
|
|
62
|
+
if (activeTab.current?.value !== item2.value) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
returnFocus.current = item2.value;
|
|
66
|
+
const containFocus = () => {
|
|
67
|
+
const activeIndex = items2.current.findIndex(
|
|
68
|
+
(i) => item2.value === i.value
|
|
69
|
+
);
|
|
70
|
+
const nextIndex = activeIndex === items2.current.length - 1 ? items2.current.length - 2 : activeIndex + 1;
|
|
71
|
+
const nextActive = items2.current[nextIndex];
|
|
72
|
+
returnFocus.current = nextActive.value;
|
|
73
|
+
if (selectedRef.current === item2.value) {
|
|
74
|
+
setSelected(null, nextActive.value);
|
|
75
|
+
}
|
|
76
|
+
nextActive?.element?.focus();
|
|
77
|
+
};
|
|
78
|
+
if (document.activeElement === document.body) {
|
|
79
|
+
requestAnimationFrame(() => {
|
|
80
|
+
if (document.activeElement === document.body) {
|
|
81
|
+
containFocus();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
} else {
|
|
85
|
+
const handleFocusOut = (event) => {
|
|
86
|
+
if (!event.relatedTarget) {
|
|
87
|
+
requestAnimationFrame(() => {
|
|
88
|
+
if (document.activeElement === document.body) {
|
|
89
|
+
containFocus();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
item2.element.ownerDocument.addEventListener(
|
|
95
|
+
"focusout",
|
|
96
|
+
handleFocusOut,
|
|
97
|
+
{
|
|
98
|
+
once: true
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
setTimeout(() => {
|
|
102
|
+
item2.element.ownerDocument.removeEventListener(
|
|
103
|
+
"focusout",
|
|
104
|
+
handleFocusOut
|
|
105
|
+
);
|
|
106
|
+
}, 1e3);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
const registerPanel = React.useCallback((id, value2) => {
|
|
111
|
+
setValueToPanelIdMap(({ map }) => {
|
|
112
|
+
map.set(value2, id);
|
|
113
|
+
return { map };
|
|
114
|
+
});
|
|
115
|
+
return () => {
|
|
116
|
+
setValueToIdMap(({ map }) => {
|
|
117
|
+
map.delete(value2);
|
|
118
|
+
return { map };
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
}, []);
|
|
122
|
+
const getPanelId = React.useCallback(
|
|
123
|
+
(value2) => {
|
|
124
|
+
return valueToPanelIdMap.map.get(value2);
|
|
125
|
+
},
|
|
126
|
+
[valueToPanelIdMap]
|
|
127
|
+
);
|
|
128
|
+
const getTabId = React.useCallback(
|
|
129
|
+
(value2) => {
|
|
130
|
+
return valueToTabIdMap.map.get(value2);
|
|
131
|
+
},
|
|
132
|
+
[valueToTabIdMap]
|
|
133
|
+
);
|
|
134
|
+
const context = React.useMemo(
|
|
135
|
+
() => ({
|
|
136
|
+
registerTab,
|
|
137
|
+
registerPanel,
|
|
138
|
+
getPanelId,
|
|
139
|
+
getTabId,
|
|
140
|
+
selected,
|
|
141
|
+
setSelected,
|
|
142
|
+
item,
|
|
143
|
+
getNext,
|
|
144
|
+
getPrevious,
|
|
145
|
+
getFirst,
|
|
146
|
+
getLast,
|
|
147
|
+
items,
|
|
148
|
+
activeTab,
|
|
149
|
+
menuOpen,
|
|
150
|
+
setMenuOpen,
|
|
151
|
+
returnFocus
|
|
152
|
+
}),
|
|
153
|
+
[
|
|
154
|
+
registerPanel,
|
|
155
|
+
registerTab,
|
|
156
|
+
getPanelId,
|
|
157
|
+
getTabId,
|
|
158
|
+
selected,
|
|
159
|
+
setSelected,
|
|
160
|
+
item,
|
|
161
|
+
getNext,
|
|
162
|
+
getPrevious,
|
|
163
|
+
getFirst,
|
|
164
|
+
getLast,
|
|
165
|
+
items,
|
|
166
|
+
menuOpen
|
|
167
|
+
]
|
|
168
|
+
);
|
|
169
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TabsNextContext.TabsNextContext.Provider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx.clsx(withBaseName(), className), ref, ...rest, children }) });
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
exports.TabsNext = TabsNext;
|
|
174
|
+
//# sourceMappingURL=TabsNext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabsNext.js","sources":["../../../../../src/tabs-next/TabsNext.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n type ReactNode,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n makePrefixer,\n useControlled,\n useEventCallback,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type Item, TabsNextContext } from \"./TabsNextContext\";\nimport { useCollection } from \"./hooks/useCollection\";\n\nexport interface TabsNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n children?: ReactNode;\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue?: string;\n /**\n * The value. Use when the component is controlled.\n */\n value?: string;\n /**\n * Callback fired when the selection changes. The event will be null when selection is moved automatically.\n */\n onChange?: (event: SyntheticEvent | null, value: string) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltTabsNext\");\n\nexport const TabsNext = forwardRef<HTMLDivElement, TabsNextProps>(\n function TabsNext(props, ref) {\n const { className, children, value, defaultValue, onChange, ...rest } =\n props;\n\n const [valueToTabIdMap, setValueToIdMap] = useState({\n map: new Map<string, string>(),\n });\n const [valueToPanelIdMap, setValueToPanelIdMap] = useState({\n map: new Map<string, string>(),\n });\n\n const {\n registerItem,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n } = useCollection({ wrap: true });\n\n const activeTab = useRef<Pick<Item, \"id\" | \"value\">>();\n const returnFocus = useRef<string | undefined>(undefined);\n\n const [menuOpen, setMenuOpen] = useState(false);\n\n const [selected, setSelectedState] = useControlled({\n controlled: value,\n default: defaultValue,\n name: \"TabListNext\",\n state: \"selected\",\n });\n\n // This ref is needed so we can read the current selected item in the containFocus() function.\n const selectedRef = useRef<string | undefined>(undefined);\n useIsomorphicLayoutEffect(() => {\n selectedRef.current = selected;\n }, [selected]);\n\n const setSelected = useCallback(\n (event: SyntheticEvent | null, value: string) => {\n setMenuOpen(false);\n setSelectedState(value);\n onChange?.(event, value);\n },\n [onChange],\n );\n\n const registerTab = useEventCallback((item: Item) => {\n const cleanup = registerItem(item);\n setValueToIdMap(({ map }) => {\n map.set(item.value, item.id);\n return { map };\n });\n\n return () => {\n const items = cleanup();\n setValueToIdMap(({ map }) => {\n map.delete(item.value);\n return { map };\n });\n\n if (activeTab.current?.value !== item.value) {\n return;\n }\n\n returnFocus.current = item.value;\n\n const containFocus = () => {\n const activeIndex = items.current.findIndex(\n (i) => item.value === i.value,\n );\n\n const nextIndex =\n activeIndex === items.current.length - 1\n ? items.current.length - 2\n : activeIndex + 1;\n\n const nextActive = items.current[nextIndex];\n\n returnFocus.current = nextActive.value;\n\n if (selectedRef.current === item.value) {\n setSelected(null, nextActive.value);\n }\n\n nextActive?.element?.focus();\n };\n\n if (document.activeElement === document.body) {\n requestAnimationFrame(() => {\n if (document.activeElement === document.body) {\n containFocus();\n }\n });\n } else {\n const handleFocusOut = (event: FocusEvent) => {\n if (!event.relatedTarget) {\n requestAnimationFrame(() => {\n if (document.activeElement === document.body) {\n containFocus();\n }\n });\n }\n };\n\n item.element.ownerDocument.addEventListener(\n \"focusout\",\n handleFocusOut,\n {\n once: true,\n },\n );\n\n setTimeout(() => {\n item.element.ownerDocument.removeEventListener(\n \"focusout\",\n handleFocusOut,\n );\n }, 1000);\n }\n };\n });\n\n const registerPanel = useCallback((id: string, value: string) => {\n setValueToPanelIdMap(({ map }) => {\n map.set(value, id);\n return { map };\n });\n return () => {\n setValueToIdMap(({ map }) => {\n map.delete(value);\n return { map };\n });\n };\n }, []);\n\n const getPanelId = useCallback(\n (value: string) => {\n return valueToPanelIdMap.map.get(value);\n },\n [valueToPanelIdMap],\n );\n\n const getTabId = useCallback(\n (value: string) => {\n return valueToTabIdMap.map.get(value);\n },\n [valueToTabIdMap],\n );\n\n const context = useMemo(\n () => ({\n registerTab,\n registerPanel,\n getPanelId,\n getTabId,\n selected,\n setSelected,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n activeTab,\n menuOpen,\n setMenuOpen,\n returnFocus,\n }),\n [\n registerPanel,\n registerTab,\n getPanelId,\n getTabId,\n selected,\n setSelected,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n menuOpen,\n ],\n );\n\n return (\n <TabsNextContext.Provider value={context}>\n <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {children}\n </div>\n </TabsNextContext.Provider>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","TabsNext","useState","useCollection","useRef","useControlled","useIsomorphicLayoutEffect","useCallback","value","useEventCallback","item","items","useMemo","TabsNextContext","clsx"],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var core = require('@salt-ds/core');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
const TabsNextContext = core.createContext(
|
|
7
|
+
"TabsNextContext",
|
|
8
|
+
{
|
|
9
|
+
getFirst: () => null,
|
|
10
|
+
getLast: () => null,
|
|
11
|
+
getNext: () => null,
|
|
12
|
+
getPrevious: () => null,
|
|
13
|
+
item: () => null,
|
|
14
|
+
items: [],
|
|
15
|
+
selected: void 0,
|
|
16
|
+
registerTab: () => () => void 0,
|
|
17
|
+
registerPanel: () => () => void 0,
|
|
18
|
+
getPanelId: () => void 0,
|
|
19
|
+
getTabId: () => void 0,
|
|
20
|
+
setSelected: () => void 0,
|
|
21
|
+
activeTab: { current: void 0 },
|
|
22
|
+
returnFocus: { current: void 0 },
|
|
23
|
+
menuOpen: false,
|
|
24
|
+
setMenuOpen: () => void 0
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
function useTabsNext() {
|
|
28
|
+
return React.useContext(TabsNextContext);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.TabsNextContext = TabsNextContext;
|
|
32
|
+
exports.useTabsNext = useTabsNext;
|
|
33
|
+
//# sourceMappingURL=TabsNextContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabsNextContext.js","sources":["../../../../../src/tabs-next/TabsNextContext.tsx"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport {\n type Dispatch,\n type MutableRefObject,\n type SetStateAction,\n type SyntheticEvent,\n useContext,\n} from \"react\";\nimport type { useCollection } from \"./hooks/useCollection\";\n\nexport interface Item {\n id: string;\n value: string;\n element: HTMLElement;\n}\n\nexport interface TabsNextContextValue\n extends Omit<ReturnType<typeof useCollection>, \"registerItem\"> {\n registerTab: (item: Item) => () => void;\n registerPanel: (id: string, value: string) => () => void;\n getPanelId: (value: string) => string | undefined;\n getTabId: (value: string) => string | undefined;\n selected?: string;\n setSelected: (event: SyntheticEvent, value: string) => void;\n activeTab: MutableRefObject<Pick<Item, \"id\" | \"value\"> | undefined>;\n returnFocus: MutableRefObject<string | undefined>;\n menuOpen: boolean;\n setMenuOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nexport const TabsNextContext = createContext<TabsNextContextValue>(\n \"TabsNextContext\",\n {\n getFirst: () => null,\n getLast: () => null,\n getNext: () => null,\n getPrevious: () => null,\n item: () => null,\n items: [],\n selected: undefined,\n registerTab: () => () => undefined,\n registerPanel: () => () => undefined,\n getPanelId: () => undefined,\n getTabId: () => undefined,\n setSelected: () => undefined,\n activeTab: { current: undefined },\n returnFocus: { current: undefined },\n menuOpen: false,\n setMenuOpen: () => undefined,\n },\n);\n\nexport function useTabsNext() {\n return useContext(TabsNextContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;AA8BO,MAAM,eAAkB,GAAAA,kBAAA;AAAA,EAC7B,iBAAA;AAAA,EACA;AAAA,IACE,UAAU,MAAM,IAAA;AAAA,IAChB,SAAS,MAAM,IAAA;AAAA,IACf,SAAS,MAAM,IAAA;AAAA,IACf,aAAa,MAAM,IAAA;AAAA,IACnB,MAAM,MAAM,IAAA;AAAA,IACZ,OAAO,EAAC;AAAA,IACR,QAAU,EAAA,KAAA,CAAA;AAAA,IACV,WAAA,EAAa,MAAM,MAAM,KAAA,CAAA;AAAA,IACzB,aAAA,EAAe,MAAM,MAAM,KAAA,CAAA;AAAA,IAC3B,YAAY,MAAM,KAAA,CAAA;AAAA,IAClB,UAAU,MAAM,KAAA,CAAA;AAAA,IAChB,aAAa,MAAM,KAAA,CAAA;AAAA,IACnB,SAAA,EAAW,EAAE,OAAA,EAAS,KAAU,CAAA,EAAA;AAAA,IAChC,WAAA,EAAa,EAAE,OAAA,EAAS,KAAU,CAAA,EAAA;AAAA,IAClC,QAAU,EAAA,KAAA;AAAA,IACV,aAAa,MAAM,KAAA;AAAA;AAEvB;AAEO,SAAS,WAAc,GAAA;AAC5B,EAAA,OAAOC,iBAAW,eAAe,CAAA;AACnC;;;;;"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function sortBasedOnDOMPosition(items) {
|
|
6
|
+
const indexedItems = items.map((item, index) => [index, item]);
|
|
7
|
+
let orderChanged = false;
|
|
8
|
+
indexedItems.sort(([itemAIndex, itemA], [itemBIndex, itemB]) => {
|
|
9
|
+
const itemAElement = itemA.element;
|
|
10
|
+
const itemBElement = itemB.element;
|
|
11
|
+
if (itemAElement === itemBElement) return 0;
|
|
12
|
+
if (!itemAElement || !itemBElement) return 0;
|
|
13
|
+
if (itemAElement.compareDocumentPosition(itemBElement) & Node.DOCUMENT_POSITION_FOLLOWING) {
|
|
14
|
+
if (itemAIndex > itemBIndex) {
|
|
15
|
+
orderChanged = true;
|
|
16
|
+
}
|
|
17
|
+
return -1;
|
|
18
|
+
}
|
|
19
|
+
if (itemAIndex < itemBIndex) {
|
|
20
|
+
orderChanged = true;
|
|
21
|
+
}
|
|
22
|
+
return 1;
|
|
23
|
+
});
|
|
24
|
+
if (orderChanged) {
|
|
25
|
+
return indexedItems.map(([_, item]) => item);
|
|
26
|
+
}
|
|
27
|
+
return items;
|
|
28
|
+
}
|
|
29
|
+
function useCollection({ wrap }) {
|
|
30
|
+
const [items, setItems] = React.useState([]);
|
|
31
|
+
const itemsRef = React.useRef([]);
|
|
32
|
+
const itemMap = React.useRef(/* @__PURE__ */ new Map());
|
|
33
|
+
const registerItem = React.useCallback((item) => {
|
|
34
|
+
setItems((old) => {
|
|
35
|
+
const newItems = old.slice();
|
|
36
|
+
const index = newItems.findIndex(({ id }) => id === item.id);
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
const newItem = { ...newItems[index], ...item };
|
|
39
|
+
newItems[index] = newItem;
|
|
40
|
+
itemMap.current.set(item.id, newItem);
|
|
41
|
+
} else {
|
|
42
|
+
newItems.push(item);
|
|
43
|
+
itemMap.current.set(item.id, item);
|
|
44
|
+
}
|
|
45
|
+
const value = sortBasedOnDOMPosition(newItems);
|
|
46
|
+
itemsRef.current = value;
|
|
47
|
+
return value;
|
|
48
|
+
});
|
|
49
|
+
return () => {
|
|
50
|
+
setItems((old) => {
|
|
51
|
+
itemMap.current.delete(item.id);
|
|
52
|
+
return old.filter(({ id }) => id !== item.id);
|
|
53
|
+
});
|
|
54
|
+
return itemsRef;
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
57
|
+
return {
|
|
58
|
+
registerItem,
|
|
59
|
+
item: (id) => {
|
|
60
|
+
if (!id) return null;
|
|
61
|
+
let item = itemMap.current.get(id);
|
|
62
|
+
if (!item) {
|
|
63
|
+
item = items.find((item2) => item2.id === id);
|
|
64
|
+
if (item) {
|
|
65
|
+
itemMap.current.set(item.id, item);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return item ?? null;
|
|
69
|
+
},
|
|
70
|
+
getNext: (current) => {
|
|
71
|
+
const index = items.findIndex(({ id }) => id === current);
|
|
72
|
+
const newIndex = wrap ? (index + 1) % items.length : Math.min(index + 1, items.length - 1);
|
|
73
|
+
return items[newIndex] ?? null;
|
|
74
|
+
},
|
|
75
|
+
getPrevious: (current) => {
|
|
76
|
+
const index = items.findIndex(({ id }) => id === current);
|
|
77
|
+
const newIndex = wrap ? (index - 1 + items.length) % items.length : Math.max(index - 1, 0);
|
|
78
|
+
return items[newIndex] ?? null;
|
|
79
|
+
},
|
|
80
|
+
getFirst: () => {
|
|
81
|
+
return items[0] ?? null;
|
|
82
|
+
},
|
|
83
|
+
getLast: () => {
|
|
84
|
+
return items[items.length - 1] ?? null;
|
|
85
|
+
},
|
|
86
|
+
items
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
exports.useCollection = useCollection;
|
|
91
|
+
//# sourceMappingURL=useCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollection.js","sources":["../../../../../../src/tabs-next/hooks/useCollection.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from \"react\";\n\nexport interface Item {\n id: string;\n element?: HTMLElement | null;\n value: string;\n}\n\nfunction sortBasedOnDOMPosition(items: Item[]): Item[] {\n const indexedItems = items.map((item, index) => [index, item] as const);\n let orderChanged = false;\n indexedItems.sort(([itemAIndex, itemA], [itemBIndex, itemB]) => {\n const itemAElement = itemA.element;\n const itemBElement = itemB.element;\n if (itemAElement === itemBElement) return 0;\n if (!itemAElement || !itemBElement) return 0;\n\n if (\n itemAElement.compareDocumentPosition(itemBElement) &\n Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n if (itemAIndex > itemBIndex) {\n orderChanged = true;\n }\n return -1;\n }\n\n if (itemAIndex < itemBIndex) {\n orderChanged = true;\n }\n return 1;\n });\n\n if (orderChanged) {\n return indexedItems.map(([_, item]) => item);\n }\n return items;\n}\n\ninterface UseCollectionProps {\n wrap: boolean;\n}\n\nexport function useCollection({ wrap }: UseCollectionProps) {\n const [items, setItems] = useState<Item[]>([]);\n const itemsRef = useRef<Item[]>([]);\n const itemMap = useRef<Map<string, Item>>(new Map());\n\n const registerItem = useCallback((item: Item) => {\n setItems((old) => {\n const newItems = old.slice();\n const index = newItems.findIndex(({ id }) => id === item.id);\n if (index !== -1) {\n const newItem = { ...newItems[index], ...item };\n newItems[index] = newItem;\n itemMap.current.set(item.id, newItem);\n } else {\n newItems.push(item);\n itemMap.current.set(item.id, item);\n }\n const value = sortBasedOnDOMPosition(newItems);\n itemsRef.current = value;\n return value;\n });\n\n return () => {\n setItems((old) => {\n itemMap.current.delete(item.id);\n return old.filter(({ id }) => id !== item.id);\n });\n return itemsRef;\n };\n }, []);\n\n return {\n registerItem,\n item: (id?: string | null): Item | null => {\n if (!id) return null;\n let item = itemMap.current.get(id);\n if (!item) {\n item = items.find((item) => item.id === id);\n if (item) {\n itemMap.current.set(item.id, item);\n }\n }\n return item ?? null;\n },\n getNext: (current: string): Item | null => {\n const index = items.findIndex(({ id }) => id === current);\n\n const newIndex = wrap\n ? (index + 1) % items.length\n : Math.min(index + 1, items.length - 1);\n\n return items[newIndex] ?? null;\n },\n getPrevious: (current: string): Item | null => {\n const index = items.findIndex(({ id }) => id === current);\n\n const newIndex = wrap\n ? (index - 1 + items.length) % items.length\n : Math.max(index - 1, 0);\n\n return items[newIndex] ?? null;\n },\n getFirst: (): Item | null => {\n return items[0] ?? null;\n },\n getLast: (): Item | null => {\n return items[items.length - 1] ?? null;\n },\n items,\n };\n}\n"],"names":["useState","useRef","useCallback","item"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var window = require('@salt-ds/window');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
function useFocusOutside(elementRef, onFocusOutside, enabled, ignore) {
|
|
7
|
+
const targetWindow = window.useWindow();
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
if (!enabled) return;
|
|
10
|
+
const handleFocus = (event) => {
|
|
11
|
+
const ignoreElement = elementRef.current?.ownerDocument?.querySelector(ignore) ;
|
|
12
|
+
if (event.target instanceof HTMLElement && !elementRef.current?.contains(event.target) && !ignoreElement?.contains(event.target)) {
|
|
13
|
+
onFocusOutside();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
targetWindow?.addEventListener("focusin", handleFocus);
|
|
17
|
+
return () => {
|
|
18
|
+
targetWindow?.removeEventListener("focusin", handleFocus);
|
|
19
|
+
};
|
|
20
|
+
}, [targetWindow, onFocusOutside, elementRef, enabled, ignore]);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.useFocusOutside = useFocusOutside;
|
|
24
|
+
//# sourceMappingURL=useFocusOutside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusOutside.js","sources":["../../../../../../src/tabs-next/hooks/useFocusOutside.ts"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { type RefObject, useEffect } from \"react\";\n\nexport function useFocusOutside(\n elementRef: RefObject<HTMLElement>,\n onFocusOutside: () => void,\n enabled: boolean,\n ignore?: string,\n) {\n const targetWindow = useWindow();\n\n useEffect(() => {\n if (!enabled) return;\n\n const handleFocus = (event: FocusEvent) => {\n const ignoreElement = ignore\n ? elementRef.current?.ownerDocument?.querySelector<HTMLElement>(ignore)\n : undefined;\n\n // If focus is outside the tabstrip (including the list) then close the list.\n if (\n event.target instanceof HTMLElement &&\n !elementRef.current?.contains(event.target) &&\n !ignoreElement?.contains(event.target)\n ) {\n onFocusOutside();\n }\n };\n\n targetWindow?.addEventListener(\"focusin\", handleFocus);\n\n return () => {\n targetWindow?.removeEventListener(\"focusin\", handleFocus);\n };\n }, [targetWindow, onFocusOutside, elementRef, enabled, ignore]);\n}\n"],"names":["useWindow","useEffect"],"mappings":";;;;;AAGO,SAAS,eACd,CAAA,UAAA,EACA,cACA,EAAA,OAAA,EACA,MACA,EAAA;AACA,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAE/B,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAS,EAAA;AAEd,IAAM,MAAA,WAAA,GAAc,CAAC,KAAsB,KAAA;AACzC,MAAA,MAAM,gBACF,UAAA,CAAW,SAAS,aAAe,EAAA,aAAA,CAA2B,MAAM,CACpE,CAAA;AAGJ,MAAA,IACE,KAAM,CAAA,MAAA,YAAkB,WACxB,IAAA,CAAC,WAAW,OAAS,EAAA,QAAA,CAAS,KAAM,CAAA,MAAM,KAC1C,CAAC,aAAA,EAAe,QAAS,CAAA,KAAA,CAAM,MAAM,CACrC,EAAA;AACA,QAAe,cAAA,EAAA;AAAA;AACjB,KACF;AAEA,IAAc,YAAA,EAAA,gBAAA,CAAiB,WAAW,WAAW,CAAA;AAErD,IAAA,OAAO,MAAM;AACX,MAAc,YAAA,EAAA,mBAAA,CAAoB,WAAW,WAAW,CAAA;AAAA,KAC1D;AAAA,KACC,CAAC,YAAA,EAAc,gBAAgB,UAAY,EAAA,OAAA,EAAS,MAAM,CAAC,CAAA;AAChE;;;;"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var core = require('@salt-ds/core');
|
|
4
|
+
var window = require('@salt-ds/window');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
function getTabWidth(element) {
|
|
8
|
+
const { width } = element.getBoundingClientRect();
|
|
9
|
+
return Math.ceil(width);
|
|
10
|
+
}
|
|
11
|
+
function useOverflow({
|
|
12
|
+
tabs,
|
|
13
|
+
container,
|
|
14
|
+
overflowButton,
|
|
15
|
+
children,
|
|
16
|
+
selected
|
|
17
|
+
}) {
|
|
18
|
+
const [{ visibleCount, isMeasuring }, setVisibleItems] = core.useValueEffect({
|
|
19
|
+
visibleCount: tabs.length,
|
|
20
|
+
isMeasuring: false
|
|
21
|
+
});
|
|
22
|
+
const targetWindow = window.useWindow();
|
|
23
|
+
const updateOverflow = core.useEventCallback(() => {
|
|
24
|
+
const computeVisible = (visibleCount2) => {
|
|
25
|
+
if (container.current && targetWindow) {
|
|
26
|
+
const items = Array.from(
|
|
27
|
+
container.current.querySelectorAll(
|
|
28
|
+
"[data-overflowitem]"
|
|
29
|
+
)
|
|
30
|
+
);
|
|
31
|
+
const selectedTab = container.current.querySelector(
|
|
32
|
+
"[role=tab][aria-selected=true]"
|
|
33
|
+
)?.parentElement;
|
|
34
|
+
let maxWidth = container.current.clientWidth ?? 0;
|
|
35
|
+
const containerStyles = targetWindow.getComputedStyle(
|
|
36
|
+
container.current
|
|
37
|
+
);
|
|
38
|
+
const gap = Number.parseInt(containerStyles.gap || "0");
|
|
39
|
+
let currentWidth = 0;
|
|
40
|
+
let newVisibleCount = 0;
|
|
41
|
+
const visible2 = [];
|
|
42
|
+
while (newVisibleCount < items.length) {
|
|
43
|
+
const element = items[newVisibleCount];
|
|
44
|
+
if (element) {
|
|
45
|
+
if (currentWidth + getTabWidth(element) + gap > maxWidth) {
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
currentWidth += getTabWidth(element) + gap;
|
|
49
|
+
visible2.push(element);
|
|
50
|
+
}
|
|
51
|
+
newVisibleCount++;
|
|
52
|
+
}
|
|
53
|
+
if (newVisibleCount >= items.length) {
|
|
54
|
+
return newVisibleCount;
|
|
55
|
+
}
|
|
56
|
+
const overflowButtonWidth = overflowButton.current ? overflowButton.current.offsetWidth + gap : 0;
|
|
57
|
+
maxWidth -= overflowButtonWidth;
|
|
58
|
+
while (currentWidth > maxWidth) {
|
|
59
|
+
const removed = visible2.pop();
|
|
60
|
+
if (!removed) break;
|
|
61
|
+
currentWidth -= getTabWidth(removed) + gap;
|
|
62
|
+
newVisibleCount--;
|
|
63
|
+
}
|
|
64
|
+
if (selectedTab && !visible2.includes(selectedTab)) {
|
|
65
|
+
const selectedTabWidth = getTabWidth(selectedTab) + gap;
|
|
66
|
+
while (currentWidth + selectedTabWidth > maxWidth) {
|
|
67
|
+
const removed = visible2.pop();
|
|
68
|
+
if (!removed) break;
|
|
69
|
+
currentWidth -= getTabWidth(selectedTab) + gap;
|
|
70
|
+
newVisibleCount--;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return Math.max(1, newVisibleCount);
|
|
74
|
+
}
|
|
75
|
+
return visibleCount2;
|
|
76
|
+
};
|
|
77
|
+
setVisibleItems(function* () {
|
|
78
|
+
yield {
|
|
79
|
+
visibleCount: tabs.length,
|
|
80
|
+
isMeasuring: true
|
|
81
|
+
};
|
|
82
|
+
const newVisibleCount = computeVisible(tabs.length);
|
|
83
|
+
const isMeasuring2 = newVisibleCount < tabs.length && newVisibleCount > 0;
|
|
84
|
+
yield {
|
|
85
|
+
visibleCount: newVisibleCount,
|
|
86
|
+
isMeasuring: isMeasuring2
|
|
87
|
+
};
|
|
88
|
+
if (isMeasuring2) {
|
|
89
|
+
yield {
|
|
90
|
+
visibleCount: computeVisible(newVisibleCount),
|
|
91
|
+
isMeasuring: false
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
core.useIsomorphicLayoutEffect(() => {
|
|
97
|
+
updateOverflow();
|
|
98
|
+
}, [selected]);
|
|
99
|
+
React.useEffect(() => {
|
|
100
|
+
const element = container?.current;
|
|
101
|
+
if (!element) return;
|
|
102
|
+
const win = core.ownerWindow(element);
|
|
103
|
+
const resizeObserver = new win.ResizeObserver((entries) => {
|
|
104
|
+
requestAnimationFrame(() => {
|
|
105
|
+
if (entries.length === 0) return;
|
|
106
|
+
updateOverflow();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
resizeObserver.observe(element);
|
|
110
|
+
if (element.parentElement) {
|
|
111
|
+
resizeObserver.observe(element.parentElement);
|
|
112
|
+
}
|
|
113
|
+
return () => {
|
|
114
|
+
if (element) {
|
|
115
|
+
resizeObserver.unobserve(element);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}, [container, updateOverflow]);
|
|
119
|
+
const childArray = React.useMemo(() => React.Children.toArray(children), [children]);
|
|
120
|
+
const visible = childArray.slice(0, visibleCount || 1);
|
|
121
|
+
const hidden = childArray.slice(visibleCount || 1);
|
|
122
|
+
const hiddenSelectedIndex = hidden.findIndex(
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
124
|
+
// @ts-ignore
|
|
125
|
+
(child) => child?.props?.value === selected
|
|
126
|
+
);
|
|
127
|
+
if (selected && hiddenSelectedIndex !== -1) {
|
|
128
|
+
const removed = hidden.splice(hiddenSelectedIndex, 1);
|
|
129
|
+
visible.push(removed[0]);
|
|
130
|
+
}
|
|
131
|
+
if (isMeasuring) {
|
|
132
|
+
return [childArray, [], isMeasuring];
|
|
133
|
+
}
|
|
134
|
+
return [visible, hidden, isMeasuring];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
exports.useOverflow = useOverflow;
|
|
138
|
+
//# sourceMappingURL=useOverflow.js.map
|