@salt-ds/lab 1.0.0-alpha.0 → 1.0.0-alpha.2
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/dist-cjs/packages/lab/src/accordion/Accordion.js +2 -6
- package/dist-cjs/packages/lab/src/accordion/Accordion.js.map +1 -1
- package/dist-cjs/packages/lab/src/accordion/AccordionDetails.js +3 -7
- package/dist-cjs/packages/lab/src/accordion/AccordionDetails.js.map +1 -1
- package/dist-cjs/packages/lab/src/accordion/AccordionSection.js +3 -6
- package/dist-cjs/packages/lab/src/accordion/AccordionSection.js.map +1 -1
- package/dist-cjs/packages/lab/src/accordion/AccordionSummary.js +2 -6
- package/dist-cjs/packages/lab/src/accordion/AccordionSummary.js.map +1 -1
- package/dist-cjs/packages/lab/src/app-header/AppHeader.js +3 -6
- package/dist-cjs/packages/lab/src/app-header/AppHeader.js.map +1 -1
- package/dist-cjs/packages/lab/src/avatar/Avatar.js +2 -6
- package/dist-cjs/packages/lab/src/avatar/Avatar.js.map +1 -1
- package/dist-cjs/packages/lab/src/badge/Badge.js +4 -8
- package/dist-cjs/packages/lab/src/badge/Badge.js.map +1 -1
- package/dist-cjs/packages/lab/src/banner/Banner.js +5 -9
- package/dist-cjs/packages/lab/src/banner/Banner.js.map +1 -1
- package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumb.js +4 -8
- package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumbs.js +3 -4
- package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-cjs/packages/lab/src/button-bar/ButtonBar.js +2 -6
- package/dist-cjs/packages/lab/src/button-bar/ButtonBar.js.map +1 -1
- package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js +3 -6
- package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/Calendar.js +2 -6
- package/dist-cjs/packages/lab/src/calendar/Calendar.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js +34 -54
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarMonth.js +2 -6
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js +38 -72
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarWeekHeader.js +2 -6
- package/dist-cjs/packages/lab/src/calendar/internal/CalendarWeekHeader.js.map +1 -1
- package/dist-cjs/packages/lab/src/calendar/useSelection.js +3 -6
- package/dist-cjs/packages/lab/src/calendar/useSelection.js.map +1 -1
- package/dist-cjs/packages/lab/src/carousel/Carousel.js +3 -6
- package/dist-cjs/packages/lab/src/carousel/Carousel.js.map +1 -1
- package/dist-cjs/packages/lab/src/carousel/CarouselSlide.js +4 -8
- package/dist-cjs/packages/lab/src/carousel/CarouselSlide.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js +2 -1
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js +48 -69
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js +5 -9
- package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
- package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
- package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-cjs/packages/lab/src/checkbox/Checkbox.js +2 -6
- package/dist-cjs/packages/lab/src/checkbox/Checkbox.js.map +1 -1
- package/dist-cjs/packages/lab/src/checkbox/CheckboxBase.js +2 -6
- package/dist-cjs/packages/lab/src/checkbox/CheckboxBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/checkbox/CheckboxGroup.js +2 -6
- package/dist-cjs/packages/lab/src/checkbox/CheckboxGroup.js.map +1 -1
- package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.js +4 -8
- package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/AlphaInputField.js +2 -6
- package/dist-cjs/packages/lab/src/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.js +7 -11
- package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/ColorPicker.js +7 -11
- package/dist-cjs/packages/lab/src/color-chooser/ColorPicker.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/DictTabs.js +3 -7
- package/dist-cjs/packages/lab/src/color-chooser/DictTabs.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/HexInput.js +4 -8
- package/dist-cjs/packages/lab/src/color-chooser/HexInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/RGBAInput.js +5 -9
- package/dist-cjs/packages/lab/src/color-chooser/RGBAInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/Swatch.js +2 -6
- package/dist-cjs/packages/lab/src/color-chooser/Swatch.js.map +1 -1
- package/dist-cjs/packages/lab/src/color-chooser/Swatches.js +6 -10
- package/dist-cjs/packages/lab/src/color-chooser/Swatches.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box/ComboBox.js +1 -0
- package/dist-cjs/packages/lab/src/combo-box/ComboBox.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box/useCombobox.js +1 -0
- package/dist-cjs/packages/lab/src/combo-box/useCombobox.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +3 -7
- package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
- package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +21 -39
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +28 -49
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
- package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-cjs/packages/lab/src/common-hooks/useAutoSizer.js +3 -2
- package/dist-cjs/packages/lab/src/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js +3 -2
- package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
- package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactAction.js +8 -23
- package/dist-cjs/packages/lab/src/contact-details/ContactAction.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactDetails.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactDetails.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactMetadata.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactMetadata.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactPrimaryInfo.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactSecondaryInfo.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/ContactTertiaryInfo.js +2 -6
- package/dist-cjs/packages/lab/src/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
- package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +8 -19
- package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-cjs/packages/lab/src/contact-details/internal/StarIconContainer.js +3 -7
- package/dist-cjs/packages/lab/src/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-cjs/packages/lab/src/content-status/ContentStatus.js +6 -10
- package/dist-cjs/packages/lab/src/content-status/ContentStatus.js.map +1 -1
- package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js +4 -9
- package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-cjs/packages/lab/src/control-label/ControlLabel.js +2 -6
- package/dist-cjs/packages/lab/src/control-label/ControlLabel.js.map +1 -1
- package/dist-cjs/packages/lab/src/deck-item/DeckItem.js +2 -6
- package/dist-cjs/packages/lab/src/deck-item/DeckItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js +4 -7
- package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
- package/dist-cjs/packages/lab/src/dialog/Dialog.js +2 -6
- package/dist-cjs/packages/lab/src/dialog/Dialog.js.map +1 -1
- package/dist-cjs/packages/lab/src/dialog/DialogActions.js +2 -6
- package/dist-cjs/packages/lab/src/dialog/DialogActions.js.map +1 -1
- package/dist-cjs/packages/lab/src/dialog/DialogContent.js +2 -6
- package/dist-cjs/packages/lab/src/dialog/DialogContent.js.map +1 -1
- package/dist-cjs/packages/lab/src/dialog/DialogTitle.js +2 -6
- package/dist-cjs/packages/lab/src/dialog/DialogTitle.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/Dropdown.js +1 -0
- package/dist-cjs/packages/lab/src/dropdown/Dropdown.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js +10 -14
- package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js +2 -6
- package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/useDropdown.js +1 -0
- package/dist-cjs/packages/lab/src/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js +1 -0
- package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/editable-label/EditableLabel.js +2 -6
- package/dist-cjs/packages/lab/src/editable-label/EditableLabel.js.map +1 -1
- package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.js +2 -6
- package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field/FormField.js +61 -78
- package/dist-cjs/packages/lab/src/form-field/FormField.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field/FormLabel.js +2 -6
- package/dist-cjs/packages/lab/src/form-field/FormLabel.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js +18 -35
- package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-group/FormGroup.js +2 -6
- package/dist-cjs/packages/lab/src/form-group/FormGroup.js.map +1 -1
- package/dist-cjs/packages/lab/src/formatted-input/FormattedInput.js +2 -6
- package/dist-cjs/packages/lab/src/formatted-input/FormattedInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/formatted-input/internal/InputWithMask.js +2 -6
- package/dist-cjs/packages/lab/src/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-cjs/packages/lab/src/index.js +3 -19
- package/dist-cjs/packages/lab/src/index.js.map +1 -1
- package/dist-cjs/packages/lab/src/input/Input.js +4 -8
- package/dist-cjs/packages/lab/src/input/Input.js.map +1 -1
- package/dist-cjs/packages/lab/src/input/StaticInputAdornment.js +2 -6
- package/dist-cjs/packages/lab/src/input/StaticInputAdornment.js.map +1 -1
- package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js +6 -9
- package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/Highlighter.js +1 -0
- package/dist-cjs/packages/lab/src/list/Highlighter.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/List.js +5 -8
- package/dist-cjs/packages/lab/src/list/List.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/ListItem.js +3 -7
- package/dist-cjs/packages/lab/src/list/ListItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/VirtualizedList.js +4 -7
- package/dist-cjs/packages/lab/src/list/VirtualizedList.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/useList.js +2 -1
- package/dist-cjs/packages/lab/src/list/useList.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/useListHeight.js +1 -0
- package/dist-cjs/packages/lab/src/list/useListHeight.js.map +1 -1
- package/dist-cjs/packages/lab/src/list/useVirtualization.js +2 -1
- package/dist-cjs/packages/lab/src/list/useVirtualization.js.map +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/List.js +5 -26
- package/dist-cjs/packages/lab/src/list-deprecated/List.js.map +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/ListBase.js +3 -7
- package/dist-cjs/packages/lab/src/list-deprecated/ListBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js +29 -63
- package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
- package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
- package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-cjs/packages/lab/src/logo/Logo.js +5 -9
- package/dist-cjs/packages/lab/src/logo/Logo.js.map +1 -1
- package/dist-cjs/packages/lab/src/menu-button/MenuButtonTrigger.js +2 -6
- package/dist-cjs/packages/lab/src/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-cjs/packages/lab/src/metric/Metric.js +2 -6
- package/dist-cjs/packages/lab/src/metric/Metric.js.map +1 -1
- package/dist-cjs/packages/lab/src/metric/MetricContent.js +2 -6
- package/dist-cjs/packages/lab/src/metric/MetricContent.js.map +1 -1
- package/dist-cjs/packages/lab/src/metric/MetricHeader.js +2 -6
- package/dist-cjs/packages/lab/src/metric/MetricHeader.js.map +1 -1
- package/dist-cjs/packages/lab/src/overlay/Overlay.js +4 -8
- package/dist-cjs/packages/lab/src/overlay/Overlay.js.map +1 -1
- package/dist-cjs/packages/lab/src/overlay/useOverlay.js +11 -12
- package/dist-cjs/packages/lab/src/overlay/useOverlay.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/ArrowButton.js +2 -6
- package/dist-cjs/packages/lab/src/pagination/ArrowButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/CompactInput.js +3 -7
- package/dist-cjs/packages/lab/src/pagination/CompactInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/GoToInput.js +3 -7
- package/dist-cjs/packages/lab/src/pagination/GoToInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/PageButton.js +2 -6
- package/dist-cjs/packages/lab/src/pagination/PageButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/Pagination.js +2 -6
- package/dist-cjs/packages/lab/src/pagination/Pagination.js.map +1 -1
- package/dist-cjs/packages/lab/src/pagination/Paginator.js +2 -6
- package/dist-cjs/packages/lab/src/pagination/Paginator.js.map +1 -1
- package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js +2 -6
- package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js +3 -6
- package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/ClosablePill.js +2 -6
- package/dist-cjs/packages/lab/src/pill/ClosablePill.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/PillBase.js +42 -62
- package/dist-cjs/packages/lab/src/pill/PillBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/SelectablePill.js +2 -6
- package/dist-cjs/packages/lab/src/pill/SelectablePill.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/internal/DeleteButton.js +2 -6
- package/dist-cjs/packages/lab/src/pill/internal/DeleteButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/pill/internal/DivButton.js +2 -6
- package/dist-cjs/packages/lab/src/pill/internal/DivButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.js +4 -8
- package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.js +5 -9
- package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/QueryInput.js +2 -6
- package/dist-cjs/packages/lab/src/query-input/QueryInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
- package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-cjs/packages/lab/src/query-input/useQueryInput.js +1 -0
- package/dist-cjs/packages/lab/src/query-input/useQueryInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButton.js +3 -7
- package/dist-cjs/packages/lab/src/radio-button/RadioButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js +2 -6
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js +3 -7
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js +2 -6
- package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
- package/dist-cjs/packages/lab/src/responsive/useOverflow.js +1 -0
- package/dist-cjs/packages/lab/src/responsive/useOverflow.js.map +1 -1
- package/dist-cjs/packages/lab/src/responsive/useResizeObserver.js +6 -3
- package/dist-cjs/packages/lab/src/responsive/useResizeObserver.js.map +1 -1
- package/dist-cjs/packages/lab/src/scrim/Scrim.js +2 -3
- package/dist-cjs/packages/lab/src/scrim/Scrim.js.map +1 -1
- package/dist-cjs/packages/lab/src/search-input/SearchInput.js +3 -7
- package/dist-cjs/packages/lab/src/search-input/SearchInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/skip-link/SkipLink.js +3 -7
- package/dist-cjs/packages/lab/src/skip-link/SkipLink.js.map +1 -1
- package/dist-cjs/packages/lab/src/skip-link/SkipLinks.js +2 -6
- package/dist-cjs/packages/lab/src/skip-link/SkipLinks.js.map +1 -1
- package/dist-cjs/packages/lab/src/slider/Slider.js +2 -6
- package/dist-cjs/packages/lab/src/slider/Slider.js.map +1 -1
- package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js +18 -31
- package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
- package/dist-cjs/packages/lab/src/slider/internal/SliderRailMarks.js +2 -6
- package/dist-cjs/packages/lab/src/slider/internal/SliderRailMarks.js.map +1 -1
- package/dist-cjs/packages/lab/src/stepper-input/StepperInput.js +5 -9
- package/dist-cjs/packages/lab/src/stepper-input/StepperInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/switch/Switch.js +4 -8
- package/dist-cjs/packages/lab/src/switch/Switch.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/Tab.js +2 -6
- package/dist-cjs/packages/lab/src/tabs/Tab.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/TabPanel.js +2 -6
- package/dist-cjs/packages/lab/src/tabs/TabPanel.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/Tabs.js +2 -6
- package/dist-cjs/packages/lab/src/tabs/Tabs.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/Tabstrip.js +37 -48
- package/dist-cjs/packages/lab/src/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/drag-drop/Draggable.js +2 -6
- package/dist-cjs/packages/lab/src/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js +1 -0
- package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
- package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
- package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js +8 -32
- package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
- package/dist-cjs/packages/lab/src/toggle-button/ToggleButtonGroup.js +2 -6
- package/dist-cjs/packages/lab/src/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInputBase.js +7 -12
- package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-cjs/packages/lab/src/tokenized-input/internal/InputPill.js +2 -6
- package/dist-cjs/packages/lab/src/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
- package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/Toolbar.js +5 -8
- package/dist-cjs/packages/lab/src/toolbar/Toolbar.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/Tooltray.js +4 -8
- package/dist-cjs/packages/lab/src/toolbar/Tooltray.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
- package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +3 -3
- package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js +2 -6
- package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-cjs/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +3 -7
- package/dist-cjs/packages/lab/src/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-cjs/packages/lab/src/tree/Tree.js +5 -8
- package/dist-cjs/packages/lab/src/tree/Tree.js.map +1 -1
- package/dist-cjs/packages/lab/src/tree/TreeNode.js +2 -6
- package/dist-cjs/packages/lab/src/tree/TreeNode.js.map +1 -1
- package/dist-cjs/packages/lab/src/tree/useTree.js +2 -1
- package/dist-cjs/packages/lab/src/tree/useTree.js.map +1 -1
- package/dist-cjs/packages/lab/src/utils/useFloatingUI.js +38 -0
- package/dist-cjs/packages/lab/src/utils/useFloatingUI.js.map +1 -0
- package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
- package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-es/packages/lab/src/accordion/Accordion.js +2 -2
- package/dist-es/packages/lab/src/accordion/Accordion.js.map +1 -1
- package/dist-es/packages/lab/src/accordion/AccordionDetails.js +3 -3
- package/dist-es/packages/lab/src/accordion/AccordionDetails.js.map +1 -1
- package/dist-es/packages/lab/src/accordion/AccordionSection.js +3 -2
- package/dist-es/packages/lab/src/accordion/AccordionSection.js.map +1 -1
- package/dist-es/packages/lab/src/accordion/AccordionSummary.js +2 -2
- package/dist-es/packages/lab/src/accordion/AccordionSummary.js.map +1 -1
- package/dist-es/packages/lab/src/app-header/AppHeader.js +3 -2
- package/dist-es/packages/lab/src/app-header/AppHeader.js.map +1 -1
- package/dist-es/packages/lab/src/avatar/Avatar.js +2 -2
- package/dist-es/packages/lab/src/avatar/Avatar.js.map +1 -1
- package/dist-es/packages/lab/src/badge/Badge.js +4 -4
- package/dist-es/packages/lab/src/badge/Badge.js.map +1 -1
- package/dist-es/packages/lab/src/banner/Banner.js +5 -5
- package/dist-es/packages/lab/src/banner/Banner.js.map +1 -1
- package/dist-es/packages/lab/src/breadcrumbs/Breadcrumb.js +4 -4
- package/dist-es/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-es/packages/lab/src/breadcrumbs/Breadcrumbs.js +3 -3
- package/dist-es/packages/lab/src/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-es/packages/lab/src/button-bar/ButtonBar.js +2 -2
- package/dist-es/packages/lab/src/button-bar/ButtonBar.js.map +1 -1
- package/dist-es/packages/lab/src/button-bar/OrderedButton.js +3 -2
- package/dist-es/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/Calendar.js +2 -2
- package/dist-es/packages/lab/src/calendar/Calendar.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js +36 -52
- package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/internal/CalendarMonth.js +2 -2
- package/dist-es/packages/lab/src/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js +39 -69
- package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/internal/CalendarWeekHeader.js +2 -2
- package/dist-es/packages/lab/src/calendar/internal/CalendarWeekHeader.js.map +1 -1
- package/dist-es/packages/lab/src/calendar/useSelection.js +3 -2
- package/dist-es/packages/lab/src/calendar/useSelection.js.map +1 -1
- package/dist-es/packages/lab/src/carousel/Carousel.js +3 -2
- package/dist-es/packages/lab/src/carousel/Carousel.js.map +1 -1
- package/dist-es/packages/lab/src/carousel/CarouselSlide.js +4 -4
- package/dist-es/packages/lab/src/carousel/CarouselSlide.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js +2 -1
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js +50 -67
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js +5 -5
- package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
- package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
- package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-es/packages/lab/src/checkbox/Checkbox.js +2 -2
- package/dist-es/packages/lab/src/checkbox/Checkbox.js.map +1 -1
- package/dist-es/packages/lab/src/checkbox/CheckboxBase.js +2 -2
- package/dist-es/packages/lab/src/checkbox/CheckboxBase.js.map +1 -1
- package/dist-es/packages/lab/src/checkbox/CheckboxGroup.js +2 -2
- package/dist-es/packages/lab/src/checkbox/CheckboxGroup.js.map +1 -1
- package/dist-es/packages/lab/src/checkbox/CheckboxIcon.js +4 -4
- package/dist-es/packages/lab/src/checkbox/CheckboxIcon.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/AlphaInputField.js +2 -2
- package/dist-es/packages/lab/src/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/ColorChooser.js +7 -7
- package/dist-es/packages/lab/src/color-chooser/ColorChooser.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/ColorPicker.js +7 -7
- package/dist-es/packages/lab/src/color-chooser/ColorPicker.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/DictTabs.js +3 -3
- package/dist-es/packages/lab/src/color-chooser/DictTabs.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/HexInput.js +4 -4
- package/dist-es/packages/lab/src/color-chooser/HexInput.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/RGBAInput.js +5 -5
- package/dist-es/packages/lab/src/color-chooser/RGBAInput.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/Swatch.js +2 -2
- package/dist-es/packages/lab/src/color-chooser/Swatch.js.map +1 -1
- package/dist-es/packages/lab/src/color-chooser/Swatches.js +6 -6
- package/dist-es/packages/lab/src/color-chooser/Swatches.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box/ComboBox.js +1 -0
- package/dist-es/packages/lab/src/combo-box/ComboBox.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box/useCombobox.js +1 -0
- package/dist-es/packages/lab/src/combo-box/useCombobox.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
- package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
- package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +19 -37
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +26 -47
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
- package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-es/packages/lab/src/common-hooks/useAutoSizer.js +4 -3
- package/dist-es/packages/lab/src/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js +4 -3
- package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
- package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactAction.js +10 -25
- package/dist-es/packages/lab/src/contact-details/ContactAction.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactAvatar.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactDetails.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactDetails.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactMetadata.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactMetadata.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactPrimaryInfo.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactSecondaryInfo.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/ContactTertiaryInfo.js +2 -2
- package/dist-es/packages/lab/src/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
- package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +9 -20
- package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-es/packages/lab/src/contact-details/internal/StarIconContainer.js +3 -3
- package/dist-es/packages/lab/src/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-es/packages/lab/src/content-status/ContentStatus.js +6 -6
- package/dist-es/packages/lab/src/content-status/ContentStatus.js.map +1 -1
- package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js +4 -5
- package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-es/packages/lab/src/control-label/ControlLabel.js +2 -2
- package/dist-es/packages/lab/src/control-label/ControlLabel.js.map +1 -1
- package/dist-es/packages/lab/src/deck-item/DeckItem.js +2 -2
- package/dist-es/packages/lab/src/deck-item/DeckItem.js.map +1 -1
- package/dist-es/packages/lab/src/deck-layout/DeckLayout.js +4 -3
- package/dist-es/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
- package/dist-es/packages/lab/src/dialog/Dialog.js +2 -2
- package/dist-es/packages/lab/src/dialog/Dialog.js.map +1 -1
- package/dist-es/packages/lab/src/dialog/DialogActions.js +2 -2
- package/dist-es/packages/lab/src/dialog/DialogActions.js.map +1 -1
- package/dist-es/packages/lab/src/dialog/DialogContent.js +2 -2
- package/dist-es/packages/lab/src/dialog/DialogContent.js.map +1 -1
- package/dist-es/packages/lab/src/dialog/DialogTitle.js +2 -2
- package/dist-es/packages/lab/src/dialog/DialogTitle.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/Dropdown.js +1 -0
- package/dist-es/packages/lab/src/dropdown/Dropdown.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/DropdownBase.js +7 -7
- package/dist-es/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/DropdownButton.js +2 -2
- package/dist-es/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/useDropdown.js +1 -0
- package/dist-es/packages/lab/src/dropdown/useDropdown.js.map +1 -1
- package/dist-es/packages/lab/src/dropdown/useDropdownBase.js +1 -0
- package/dist-es/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
- package/dist-es/packages/lab/src/editable-label/EditableLabel.js +2 -2
- package/dist-es/packages/lab/src/editable-label/EditableLabel.js.map +1 -1
- package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.js +2 -2
- package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.js.map +1 -1
- package/dist-es/packages/lab/src/form-field/FormField.js +63 -76
- package/dist-es/packages/lab/src/form-field/FormField.js.map +1 -1
- package/dist-es/packages/lab/src/form-field/FormLabel.js +2 -2
- package/dist-es/packages/lab/src/form-field/FormLabel.js.map +1 -1
- package/dist-es/packages/lab/src/form-field/StatusIndicator.js +19 -32
- package/dist-es/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
- package/dist-es/packages/lab/src/form-group/FormGroup.js +2 -2
- package/dist-es/packages/lab/src/form-group/FormGroup.js.map +1 -1
- package/dist-es/packages/lab/src/formatted-input/FormattedInput.js +2 -2
- package/dist-es/packages/lab/src/formatted-input/FormattedInput.js.map +1 -1
- package/dist-es/packages/lab/src/formatted-input/internal/InputWithMask.js +2 -2
- package/dist-es/packages/lab/src/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-es/packages/lab/src/index.js +1 -8
- package/dist-es/packages/lab/src/index.js.map +1 -1
- package/dist-es/packages/lab/src/input/Input.js +4 -4
- package/dist-es/packages/lab/src/input/Input.js.map +1 -1
- package/dist-es/packages/lab/src/input/StaticInputAdornment.js +2 -2
- package/dist-es/packages/lab/src/input/StaticInputAdornment.js.map +1 -1
- package/dist-es/packages/lab/src/layer-layout/LayerLayout.js +6 -5
- package/dist-es/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
- package/dist-es/packages/lab/src/list/Highlighter.js +1 -0
- package/dist-es/packages/lab/src/list/Highlighter.js.map +1 -1
- package/dist-es/packages/lab/src/list/List.js +5 -4
- package/dist-es/packages/lab/src/list/List.js.map +1 -1
- package/dist-es/packages/lab/src/list/ListItem.js +3 -3
- package/dist-es/packages/lab/src/list/ListItem.js.map +1 -1
- package/dist-es/packages/lab/src/list/VirtualizedList.js +4 -3
- package/dist-es/packages/lab/src/list/VirtualizedList.js.map +1 -1
- package/dist-es/packages/lab/src/list/useList.js +2 -1
- package/dist-es/packages/lab/src/list/useList.js.map +1 -1
- package/dist-es/packages/lab/src/list/useListHeight.js +1 -0
- package/dist-es/packages/lab/src/list/useListHeight.js.map +1 -1
- package/dist-es/packages/lab/src/list/useVirtualization.js +3 -2
- package/dist-es/packages/lab/src/list/useVirtualization.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/List.js +5 -26
- package/dist-es/packages/lab/src/list-deprecated/List.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/ListBase.js +3 -3
- package/dist-es/packages/lab/src/list-deprecated/ListBase.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js +32 -62
- package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
- package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
- package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-es/packages/lab/src/logo/Logo.js +5 -5
- package/dist-es/packages/lab/src/logo/Logo.js.map +1 -1
- package/dist-es/packages/lab/src/menu-button/MenuButtonTrigger.js +2 -2
- package/dist-es/packages/lab/src/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-es/packages/lab/src/metric/Metric.js +2 -2
- package/dist-es/packages/lab/src/metric/Metric.js.map +1 -1
- package/dist-es/packages/lab/src/metric/MetricContent.js +2 -2
- package/dist-es/packages/lab/src/metric/MetricContent.js.map +1 -1
- package/dist-es/packages/lab/src/metric/MetricHeader.js +2 -2
- package/dist-es/packages/lab/src/metric/MetricHeader.js.map +1 -1
- package/dist-es/packages/lab/src/overlay/Overlay.js +4 -4
- package/dist-es/packages/lab/src/overlay/Overlay.js.map +1 -1
- package/dist-es/packages/lab/src/overlay/useOverlay.js +2 -3
- package/dist-es/packages/lab/src/overlay/useOverlay.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/ArrowButton.js +2 -2
- package/dist-es/packages/lab/src/pagination/ArrowButton.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/CompactInput.js +3 -3
- package/dist-es/packages/lab/src/pagination/CompactInput.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/GoToInput.js +3 -3
- package/dist-es/packages/lab/src/pagination/GoToInput.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/PageButton.js +2 -2
- package/dist-es/packages/lab/src/pagination/PageButton.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/Pagination.js +2 -2
- package/dist-es/packages/lab/src/pagination/Pagination.js.map +1 -1
- package/dist-es/packages/lab/src/pagination/Paginator.js +2 -2
- package/dist-es/packages/lab/src/pagination/Paginator.js.map +1 -1
- package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js +2 -2
- package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
- package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js +3 -2
- package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-es/packages/lab/src/pill/ClosablePill.js +2 -2
- package/dist-es/packages/lab/src/pill/ClosablePill.js.map +1 -1
- package/dist-es/packages/lab/src/pill/PillBase.js +44 -60
- package/dist-es/packages/lab/src/pill/PillBase.js.map +1 -1
- package/dist-es/packages/lab/src/pill/SelectablePill.js +2 -2
- package/dist-es/packages/lab/src/pill/SelectablePill.js.map +1 -1
- package/dist-es/packages/lab/src/pill/internal/DeleteButton.js +2 -2
- package/dist-es/packages/lab/src/pill/internal/DeleteButton.js.map +1 -1
- package/dist-es/packages/lab/src/pill/internal/DivButton.js +2 -2
- package/dist-es/packages/lab/src/pill/internal/DivButton.js.map +1 -1
- package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.js +4 -4
- package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.js +5 -5
- package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/QueryInput.js +2 -2
- package/dist-es/packages/lab/src/query-input/QueryInput.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/CategoryList.js +1 -0
- package/dist-es/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
- package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
- package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/SearchList.js +1 -0
- package/dist-es/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/ValueList.js +1 -0
- package/dist-es/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
- package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-es/packages/lab/src/query-input/useQueryInput.js +1 -0
- package/dist-es/packages/lab/src/query-input/useQueryInput.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButton.js +3 -3
- package/dist-es/packages/lab/src/radio-button/RadioButton.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js +2 -2
- package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js +3 -3
- package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
- package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js +2 -2
- package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
- package/dist-es/packages/lab/src/responsive/useOverflow.js +1 -0
- package/dist-es/packages/lab/src/responsive/useOverflow.js.map +1 -1
- package/dist-es/packages/lab/src/responsive/useResizeObserver.js +6 -3
- package/dist-es/packages/lab/src/responsive/useResizeObserver.js.map +1 -1
- package/dist-es/packages/lab/src/scrim/Scrim.js +2 -2
- package/dist-es/packages/lab/src/scrim/Scrim.js.map +1 -1
- package/dist-es/packages/lab/src/search-input/SearchInput.js +3 -3
- package/dist-es/packages/lab/src/search-input/SearchInput.js.map +1 -1
- package/dist-es/packages/lab/src/skip-link/SkipLink.js +3 -3
- package/dist-es/packages/lab/src/skip-link/SkipLink.js.map +1 -1
- package/dist-es/packages/lab/src/skip-link/SkipLinks.js +2 -2
- package/dist-es/packages/lab/src/skip-link/SkipLinks.js.map +1 -1
- package/dist-es/packages/lab/src/slider/Slider.js +2 -2
- package/dist-es/packages/lab/src/slider/Slider.js.map +1 -1
- package/dist-es/packages/lab/src/slider/internal/SliderHandle.js +20 -29
- package/dist-es/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
- package/dist-es/packages/lab/src/slider/internal/SliderRailMarks.js +2 -2
- package/dist-es/packages/lab/src/slider/internal/SliderRailMarks.js.map +1 -1
- package/dist-es/packages/lab/src/stepper-input/StepperInput.js +5 -5
- package/dist-es/packages/lab/src/stepper-input/StepperInput.js.map +1 -1
- package/dist-es/packages/lab/src/switch/Switch.js +4 -4
- package/dist-es/packages/lab/src/switch/Switch.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/Tab.js +2 -2
- package/dist-es/packages/lab/src/tabs/Tab.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/TabPanel.js +2 -2
- package/dist-es/packages/lab/src/tabs/TabPanel.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/Tabs.js +2 -2
- package/dist-es/packages/lab/src/tabs/Tabs.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/Tabstrip.js +38 -48
- package/dist-es/packages/lab/src/tabs/Tabstrip.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/drag-drop/Draggable.js +2 -2
- package/dist-es/packages/lab/src/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/useActivationIndicator.js +1 -0
- package/dist-es/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
- package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
- package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/packages/lab/src/toggle-button/ToggleButton.js +10 -30
- package/dist-es/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
- package/dist-es/packages/lab/src/toggle-button/ToggleButtonGroup.js +2 -2
- package/dist-es/packages/lab/src/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/dist-es/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-es/packages/lab/src/tokenized-input/TokenizedInputBase.js +7 -11
- package/dist-es/packages/lab/src/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-es/packages/lab/src/tokenized-input/internal/InputPill.js +2 -2
- package/dist-es/packages/lab/src/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
- package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/Toolbar.js +5 -4
- package/dist-es/packages/lab/src/toolbar/Toolbar.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/Tooltray.js +4 -4
- package/dist-es/packages/lab/src/toolbar/Tooltray.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
- package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +3 -2
- package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js +2 -2
- package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +3 -3
- package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-es/packages/lab/src/tree/Tree.js +5 -4
- package/dist-es/packages/lab/src/tree/Tree.js.map +1 -1
- package/dist-es/packages/lab/src/tree/TreeNode.js +2 -2
- package/dist-es/packages/lab/src/tree/TreeNode.js.map +1 -1
- package/dist-es/packages/lab/src/tree/useTree.js +2 -1
- package/dist-es/packages/lab/src/tree/useTree.js.map +1 -1
- package/dist-es/packages/lab/src/{popper → utils}/useFloatingUI.js +10 -9
- package/dist-es/packages/lab/src/utils/useFloatingUI.js.map +1 -0
- package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
- package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-types/breadcrumbs/Breadcrumb.d.ts +1 -1
- package/dist-types/calendar/internal/CalendarCarousel.d.ts +1 -1
- package/dist-types/calendar/internal/CalendarDay.d.ts +2 -2
- package/dist-types/calendar/internal/CalendarMonth.d.ts +1 -1
- package/dist-types/calendar/internal/CalendarNavigation.d.ts +1 -1
- package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +2 -2
- package/dist-types/calendar/useCalendar.d.ts +1 -1
- package/dist-types/calendar/useCalendarDay.d.ts +1 -1
- package/dist-types/cascading-menu/CascadingMenuList.d.ts +1 -1
- package/dist-types/cascading-menu/CascadingMenuProps.d.ts +1 -1
- package/dist-types/combo-box-deprecated/internal/DefaultComboBox.d.ts +1 -3
- package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +10 -11
- package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +27 -22
- package/dist-types/contact-details/ContactAction.d.ts +1 -2
- package/dist-types/contact-details/ContactFavoriteToggle.d.ts +1 -1
- package/dist-types/contact-details/internal/FavoriteToggleWithTooltip.d.ts +1 -1
- package/dist-types/content-status/internal/StatusIndicator.d.ts +1 -2
- package/dist-types/form-field/StatusIndicator.d.ts +1 -1
- package/dist-types/index.d.ts +0 -6
- package/dist-types/layer-layout/LayerLayout.d.ts +1 -1
- package/dist-types/list-deprecated/ListProps.d.ts +0 -5
- package/dist-types/overlay/Overlay.d.ts +1 -1
- package/dist-types/overlay/useOverlay.d.ts +2 -2
- package/dist-types/pill/PillBase.d.ts +1 -1
- package/dist-types/skip-link/SkipLink.d.ts +1 -1
- package/dist-types/stepper-input/useStepperInput.d.ts +13 -10
- package/dist-types/tabs/Tab.d.ts +1 -1
- package/dist-types/tabs/drag-drop/drag-utils.d.ts +8 -8
- package/dist-types/tokenized-input/TokenizedInput.d.ts +1 -1
- package/dist-types/toolbar/ToolbarProps.d.ts +1 -1
- package/dist-types/utils/index.d.ts +1 -0
- package/dist-types/utils/useFloatingUI.d.ts +34 -0
- package/dist-types/window/ElectronWindow.d.ts +1 -1
- package/dist-types/window/WindowContext.d.ts +3 -3
- package/package.json +6 -6
- package/dist-cjs/packages/lab/src/card/Card.css.js +0 -9
- package/dist-cjs/packages/lab/src/card/Card.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/card/Card.js +0 -37
- package/dist-cjs/packages/lab/src/card/Card.js.map +0 -1
- package/dist-cjs/packages/lab/src/panel/Panel.css.js +0 -9
- package/dist-cjs/packages/lab/src/panel/Panel.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/panel/Panel.js +0 -28
- package/dist-cjs/packages/lab/src/panel/Panel.js.map +0 -1
- package/dist-cjs/packages/lab/src/popper/useFloatingUI.js +0 -37
- package/dist-cjs/packages/lab/src/popper/useFloatingUI.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/Spinner.css.js +0 -9
- package/dist-cjs/packages/lab/src/spinner/Spinner.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/Spinner.js +0 -80
- package/dist-cjs/packages/lab/src/spinner/Spinner.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -71
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -71
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -71
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js +0 -21
- package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
- package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js +0 -9
- package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js +0 -40
- package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
- package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js +0 -9
- package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
- package/dist-cjs/packages/lab/src/tooltip/Tooltip.js +0 -88
- package/dist-cjs/packages/lab/src/tooltip/Tooltip.js.map +0 -1
- package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js +0 -26
- package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
- package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js +0 -87
- package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
- package/dist-cjs/packages/lab/src/tooltip/useTooltip.js +0 -137
- package/dist-cjs/packages/lab/src/tooltip/useTooltip.js.map +0 -1
- package/dist-es/packages/lab/src/card/Card.css.js +0 -7
- package/dist-es/packages/lab/src/card/Card.css.js.map +0 -1
- package/dist-es/packages/lab/src/card/Card.js +0 -29
- package/dist-es/packages/lab/src/card/Card.js.map +0 -1
- package/dist-es/packages/lab/src/panel/Panel.css.js +0 -7
- package/dist-es/packages/lab/src/panel/Panel.css.js.map +0 -1
- package/dist-es/packages/lab/src/panel/Panel.js +0 -20
- package/dist-es/packages/lab/src/panel/Panel.js.map +0 -1
- package/dist-es/packages/lab/src/popper/useFloatingUI.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/Spinner.css.js +0 -7
- package/dist-es/packages/lab/src/spinner/Spinner.css.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/Spinner.js +0 -71
- package/dist-es/packages/lab/src/spinner/Spinner.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -67
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -67
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -67
- package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
- package/dist-es/packages/lab/src/spinner/svgSpinners/index.js +0 -17
- package/dist-es/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
- package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js +0 -7
- package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
- package/dist-es/packages/lab/src/split-layout/SplitLayout.js +0 -36
- package/dist-es/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
- package/dist-es/packages/lab/src/tooltip/Tooltip.css.js +0 -7
- package/dist-es/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
- package/dist-es/packages/lab/src/tooltip/Tooltip.js +0 -80
- package/dist-es/packages/lab/src/tooltip/Tooltip.js.map +0 -1
- package/dist-es/packages/lab/src/tooltip/TooltipContext.js +0 -21
- package/dist-es/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
- package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js +0 -83
- package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
- package/dist-es/packages/lab/src/tooltip/useTooltip.js +0 -133
- package/dist-es/packages/lab/src/tooltip/useTooltip.js.map +0 -1
- package/dist-types/card/Card.d.ts +0 -18
- package/dist-types/card/index.d.ts +0 -1
- package/dist-types/panel/Panel.d.ts +0 -20
- package/dist-types/panel/index.d.ts +0 -1
- package/dist-types/popper/index.d.ts +0 -1
- package/dist-types/popper/useFloatingUI.d.ts +0 -5
- package/dist-types/spinner/Spinner.d.ts +0 -45
- package/dist-types/spinner/index.d.ts +0 -1
- package/dist-types/spinner/svgSpinners/SpinnerLarge.d.ts +0 -2
- package/dist-types/spinner/svgSpinners/SpinnerMedium.d.ts +0 -2
- package/dist-types/spinner/svgSpinners/SpinnerSmall.d.ts +0 -2
- package/dist-types/spinner/svgSpinners/index.d.ts +0 -2
- package/dist-types/split-layout/SplitLayout.d.ts +0 -32
- package/dist-types/split-layout/index.d.ts +0 -1
- package/dist-types/tooltip/Tooltip.d.ts +0 -37
- package/dist-types/tooltip/TooltipContext.d.ts +0 -22
- package/dist-types/tooltip/index.d.ts +0 -3
- package/dist-types/tooltip/useAriaAnnounce.d.ts +0 -9
- package/dist-types/tooltip/useTooltip.d.ts +0 -31
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { flip, shift, limitShift, size } from '@floating-ui/react
|
|
3
|
-
import { useForkRef, useAriaAnnouncer } from '@salt-ds/core';
|
|
4
|
-
import { useRef,
|
|
2
|
+
import { flip, shift, limitShift, size } from '@floating-ui/react';
|
|
3
|
+
import { useForkRef, useAriaAnnouncer, useFloatingUI } from '@salt-ds/core';
|
|
4
|
+
import { useRef, useEffect, useState } from 'react';
|
|
5
|
+
import { Portal } from '../../portal/Portal.js';
|
|
5
6
|
import '../../list-deprecated/List.js';
|
|
6
7
|
import { ListBase } from '../../list-deprecated/ListBase.js';
|
|
7
8
|
import '../../list-deprecated/ListItemBase.js';
|
|
8
9
|
import '../../list-deprecated/ListItem.js';
|
|
9
10
|
import '../../list-deprecated/ListItemContext.js';
|
|
10
11
|
import { ListStateContext } from '../../list-deprecated/ListStateContext.js';
|
|
12
|
+
import '../../utils/useFloatingUI.js';
|
|
11
13
|
import { getAnnouncement } from './getAnnouncement.js';
|
|
12
14
|
import { useComboBox } from './useComboBox.js';
|
|
13
15
|
import { isDesktop, Window } from '../../window/WindowContext.js';
|
|
14
16
|
import '../../window/ElectronWindow.js';
|
|
15
|
-
import '../../tooltip/Tooltip.js';
|
|
16
|
-
import { TooltipContext } from '../../tooltip/TooltipContext.js';
|
|
17
|
-
import { useFloatingUI } from '../../popper/useFloatingUI.js';
|
|
18
17
|
import { Input } from '../../input/Input.js';
|
|
19
18
|
import '../../input/StaticInputAdornment.js';
|
|
20
|
-
import { Portal } from '../../portal/Portal.js';
|
|
21
19
|
|
|
22
20
|
const DefaultComboBox = function DefaultComboBox2(props) {
|
|
23
21
|
const {
|
|
24
22
|
ListItem,
|
|
25
|
-
Tooltip,
|
|
26
23
|
WindowProps: WindowProps2 = {},
|
|
27
|
-
tooltipEnterDelay,
|
|
28
|
-
tooltipLeaveDelay,
|
|
29
|
-
tooltipPlacement,
|
|
30
24
|
rootRef,
|
|
31
25
|
listRef: listRefProp,
|
|
32
26
|
inputRef: inputRefProp,
|
|
@@ -39,15 +33,6 @@ const DefaultComboBox = function DefaultComboBox2(props) {
|
|
|
39
33
|
const setInputRef = useForkRef(inputRef, inputRefProp);
|
|
40
34
|
const setListRef = useForkRef(listRef, listRefProp);
|
|
41
35
|
const { announce } = useAriaAnnouncer({ debounce: 1e3 });
|
|
42
|
-
const tooltipContext = useMemo(
|
|
43
|
-
() => ({
|
|
44
|
-
Tooltip,
|
|
45
|
-
enterDelay: tooltipEnterDelay,
|
|
46
|
-
leaveDelay: tooltipLeaveDelay,
|
|
47
|
-
placement: tooltipPlacement
|
|
48
|
-
}),
|
|
49
|
-
[Tooltip, tooltipEnterDelay, tooltipLeaveDelay, tooltipPlacement]
|
|
50
|
-
);
|
|
51
36
|
const {
|
|
52
37
|
inputRef: setHookInputRef,
|
|
53
38
|
listContext,
|
|
@@ -107,23 +92,20 @@ const DefaultComboBox = function DefaultComboBox2(props) {
|
|
|
107
92
|
},
|
|
108
93
|
...WindowProps2,
|
|
109
94
|
ref: floating,
|
|
110
|
-
children: /* @__PURE__ */ jsx(
|
|
111
|
-
value:
|
|
112
|
-
children: /* @__PURE__ */ jsx(
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
},
|
|
125
|
-
maxHeight: maxListHeight || listProps.maxHeight
|
|
126
|
-
})
|
|
95
|
+
children: /* @__PURE__ */ jsx(ListStateContext.Provider, {
|
|
96
|
+
value: listContext,
|
|
97
|
+
children: /* @__PURE__ */ jsx(ListBase, {
|
|
98
|
+
...{
|
|
99
|
+
ListItem,
|
|
100
|
+
disabled,
|
|
101
|
+
itemCount,
|
|
102
|
+
itemToString,
|
|
103
|
+
width: listWidth || rootWidth,
|
|
104
|
+
source,
|
|
105
|
+
...restListProps,
|
|
106
|
+
listRef: setListRef
|
|
107
|
+
},
|
|
108
|
+
maxHeight: maxListHeight || listProps.maxHeight
|
|
127
109
|
})
|
|
128
110
|
})
|
|
129
111
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultComboBox.js","sources":["../src/combo-box-deprecated/internal/DefaultComboBox.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"DefaultComboBox.js","sources":["../src/combo-box-deprecated/internal/DefaultComboBox.tsx"],"sourcesContent":["import { flip, limitShift, shift, size } from \"@floating-ui/react\";\nimport { useAriaAnnouncer, useFloatingUI, useForkRef } from \"@salt-ds/core\";\nimport {\n ComponentType,\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Portal } from \"../../portal\";\nimport {\n IndexedListItemProps,\n ListBase,\n ListProps,\n ListSelectionVariant,\n ListStateContext,\n} from \"../../list-deprecated\";\nimport { GetFilterRegex } from \"../filterHelpers\";\nimport { getAnnouncement } from \"./getAnnouncement\";\nimport { useComboBox } from \"./useComboBox\";\nimport { isDesktop, Window, WindowProps } from \"../../window\";\nimport { Input, InputProps } from \"../../input\";\n\nexport type BaseComboBoxProps<\n Item,\n Variant extends ListSelectionVariant = \"default\"\n> = Omit<\n HTMLAttributes<HTMLDivElement>,\n \"children\" | \"onChange\" | \"onSelect\" | \"onFocus\" | \"onBlur\" | \"onClick\"\n> &\n Pick<\n ListProps<Item, Variant>,\n | \"displayedItemCount\"\n | \"itemToString\"\n | \"listRef\"\n | \"onChange\"\n | \"onSelect\"\n | \"overscanCount\"\n | \"virtualized\"\n | \"width\"\n > & {\n ListItem?: ComponentType<IndexedListItemProps<Item>>;\n ListProps?: Partial<ListProps<Item, Variant>>;\n WindowProps?: Partial<WindowProps>;\n allowFreeText?: boolean;\n disabled?: boolean;\n getFilterRegex?: GetFilterRegex;\n initialOpen?: boolean;\n inputRef?: Ref<HTMLInputElement>;\n inputValue?: string;\n listWidth?: number | string;\n\n rootWidth?: string | number;\n rootRef: RefObject<HTMLElement>;\n disabledPortal?: boolean;\n source: ReadonlyArray<Item>;\n };\n\nexport interface DefaultComboBoxProps<Item>\n extends BaseComboBoxProps<Item>,\n Pick<InputProps, \"onFocus\" | \"onBlur\"> {\n InputProps?: InputProps;\n initialSelectedItem?: Item;\n selectedItem?: Item;\n multiSelect?: false;\n onInputFocus?: InputProps[\"onFocus\"];\n onInputBlur?: InputProps[\"onBlur\"];\n onInputChange?: InputProps[\"onChange\"];\n onInputSelect?: InputProps[\"onSelect\"];\n stringToItem?: (value?: string) => Item | null | undefined;\n}\n\nexport const DefaultComboBox = function DefaultComboBox<Item>(\n props: DefaultComboBoxProps<Item>\n): ReactNode {\n const {\n ListItem,\n WindowProps = {},\n rootRef,\n listRef: listRefProp,\n inputRef: inputRefProp,\n rootWidth,\n listWidth,\n ...restProps\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const listRef = useRef(null);\n\n const setInputRef = useForkRef(inputRef, inputRefProp);\n // Use callback ref as listRef could be null when it's closed\n const setListRef = useForkRef(listRef, listRefProp);\n\n const { announce } = useAriaAnnouncer({ debounce: 1000 });\n\n const {\n inputRef: setHookInputRef,\n listContext,\n inputProps,\n listProps,\n } = useComboBox(restProps);\n\n const { allowAnnouncement, disabled, value, ...restInputProps } = inputProps;\n const { isListOpen, itemCount, itemToString, source, ...restListProps } =\n listProps;\n\n const firstItem = null;\n\n const allowAnnouncementRef = useRef(allowAnnouncement);\n useEffect(() => {\n allowAnnouncementRef.current = allowAnnouncement;\n }, [allowAnnouncement]);\n\n useEffect(() => {\n if (allowAnnouncementRef.current && value && firstItem) {\n announce(getAnnouncement(itemCount, firstItem));\n }\n }, [firstItem, value, itemCount, announce]);\n\n const [maxListHeight, setMaxListHeight] = useState<number | undefined>(\n undefined\n );\n const middleware = isDesktop\n ? []\n : [\n flip({\n fallbackPlacements: [\"bottom-start\", \"top-start\"],\n }),\n shift({ limiter: limitShift() }),\n size({\n apply({ availableHeight }) {\n setMaxListHeight(availableHeight);\n },\n }),\n ];\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom-start\",\n middleware,\n });\n\n useEffect(() => {\n if (rootRef.current) {\n reference(rootRef.current);\n }\n }, [rootRef, reference]);\n\n return (\n <>\n <Input\n disabled={disabled}\n ref={useForkRef(setInputRef, setHookInputRef)}\n value={value}\n {...restInputProps}\n />\n {rootRef.current && isListOpen && (\n <Portal>\n <Window\n style={{\n top: y ?? \"\",\n left: x ?? \"\",\n position: strategy,\n maxHeight: maxListHeight ?? \"\",\n }}\n {...WindowProps}\n ref={floating}\n >\n <ListStateContext.Provider value={listContext}>\n <ListBase\n {...{\n ListItem,\n disabled,\n itemCount,\n itemToString,\n width: listWidth || rootWidth,\n source,\n ...restListProps,\n listRef: setListRef,\n }}\n maxHeight={maxListHeight || listProps.maxHeight}\n />\n </ListStateContext.Provider>\n </Window>\n </Portal>\n )}\n </>\n );\n};\n"],"names":["DefaultComboBox","WindowProps"],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { flip, shift, limitShift, size } from '@floating-ui/react
|
|
3
|
-
import { useAriaAnnouncer, useForkRef } from '@salt-ds/core';
|
|
4
|
-
import { useRef,
|
|
2
|
+
import { flip, shift, limitShift, size } from '@floating-ui/react';
|
|
3
|
+
import { useAriaAnnouncer, useForkRef, useFloatingUI } from '@salt-ds/core';
|
|
4
|
+
import { useRef, useEffect, useState } from 'react';
|
|
5
|
+
import { Portal } from '../../portal/Portal.js';
|
|
5
6
|
import '../../list-deprecated/List.js';
|
|
6
7
|
import { ListBase } from '../../list-deprecated/ListBase.js';
|
|
7
8
|
import '../../list-deprecated/ListItemBase.js';
|
|
8
9
|
import '../../list-deprecated/ListItem.js';
|
|
9
10
|
import '../../list-deprecated/ListItemContext.js';
|
|
10
11
|
import { ListStateContext } from '../../list-deprecated/ListStateContext.js';
|
|
12
|
+
import '../../utils/useFloatingUI.js';
|
|
11
13
|
import '../../tokenized-input/TokenizedInput.js';
|
|
12
14
|
import { TokenizedInputBase } from '../../tokenized-input/TokenizedInputBase.js';
|
|
13
15
|
import 'clipboard-copy';
|
|
@@ -16,19 +18,11 @@ import { getAnnouncement } from './getAnnouncement.js';
|
|
|
16
18
|
import { useMultiSelectComboBox } from './useMultiSelectComboBox.js';
|
|
17
19
|
import { isDesktop, useWindow } from '../../window/WindowContext.js';
|
|
18
20
|
import '../../window/ElectronWindow.js';
|
|
19
|
-
import { Portal } from '../../portal/Portal.js';
|
|
20
|
-
import { useFloatingUI } from '../../popper/useFloatingUI.js';
|
|
21
|
-
import '../../tooltip/Tooltip.js';
|
|
22
|
-
import { TooltipContext } from '../../tooltip/TooltipContext.js';
|
|
23
21
|
|
|
24
22
|
function MultiSelectComboBox(props) {
|
|
25
23
|
const {
|
|
26
24
|
ListItem,
|
|
27
|
-
Tooltip,
|
|
28
25
|
WindowProps,
|
|
29
|
-
tooltipEnterDelay,
|
|
30
|
-
tooltipLeaveDelay,
|
|
31
|
-
tooltipPlacement,
|
|
32
26
|
rootRef,
|
|
33
27
|
listRef: listRefProp,
|
|
34
28
|
rootWidth,
|
|
@@ -46,15 +40,6 @@ function MultiSelectComboBox(props) {
|
|
|
46
40
|
});
|
|
47
41
|
const { allowAnnouncement, disabled, value, ...restInputProps } = inputProps;
|
|
48
42
|
const { isListOpen, itemCount, itemToString, source, ...restListProps } = listProps;
|
|
49
|
-
const tooltipContext = useMemo(
|
|
50
|
-
() => ({
|
|
51
|
-
Tooltip,
|
|
52
|
-
enterDelay: tooltipEnterDelay,
|
|
53
|
-
leaveDelay: tooltipLeaveDelay,
|
|
54
|
-
placement: tooltipPlacement
|
|
55
|
-
}),
|
|
56
|
-
[Tooltip, tooltipEnterDelay, tooltipLeaveDelay, tooltipPlacement]
|
|
57
|
-
);
|
|
58
43
|
const firstItem = null;
|
|
59
44
|
const allowAnnouncementRef = useRef(allowAnnouncement);
|
|
60
45
|
useEffect(() => {
|
|
@@ -91,16 +76,13 @@ function MultiSelectComboBox(props) {
|
|
|
91
76
|
const Window = useWindow();
|
|
92
77
|
return /* @__PURE__ */ jsxs(Fragment, {
|
|
93
78
|
children: [
|
|
94
|
-
/* @__PURE__ */ jsx(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
helpers: inputHelpers,
|
|
102
|
-
...restInputProps
|
|
103
|
-
})
|
|
79
|
+
/* @__PURE__ */ jsx(TokenizedInputBase, {
|
|
80
|
+
disabled,
|
|
81
|
+
expandButtonRef,
|
|
82
|
+
inputRef: useForkRef(inputRef, inputRefProp),
|
|
83
|
+
value,
|
|
84
|
+
helpers: inputHelpers,
|
|
85
|
+
...restInputProps
|
|
104
86
|
}),
|
|
105
87
|
rootRef.current && isListOpen && /* @__PURE__ */ jsx(Portal, {
|
|
106
88
|
children: /* @__PURE__ */ jsx(Window, {
|
|
@@ -112,23 +94,20 @@ function MultiSelectComboBox(props) {
|
|
|
112
94
|
},
|
|
113
95
|
...WindowProps,
|
|
114
96
|
ref: floating,
|
|
115
|
-
children: /* @__PURE__ */ jsx(
|
|
116
|
-
value:
|
|
117
|
-
children: /* @__PURE__ */ jsx(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
},
|
|
130
|
-
maxHeight: maxListHeight || listProps.maxHeight
|
|
131
|
-
})
|
|
97
|
+
children: /* @__PURE__ */ jsx(ListStateContext.Provider, {
|
|
98
|
+
value: listContext,
|
|
99
|
+
children: /* @__PURE__ */ jsx(ListBase, {
|
|
100
|
+
...{
|
|
101
|
+
ListItem,
|
|
102
|
+
disabled,
|
|
103
|
+
itemCount,
|
|
104
|
+
itemToString,
|
|
105
|
+
width: listWidth || rootWidth,
|
|
106
|
+
source,
|
|
107
|
+
...restListProps,
|
|
108
|
+
listRef: setListRef
|
|
109
|
+
},
|
|
110
|
+
maxHeight: maxListHeight || listProps.maxHeight
|
|
132
111
|
})
|
|
133
112
|
})
|
|
134
113
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectComboBox.js","sources":["../src/combo-box-deprecated/internal/MultiSelectComboBox.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"MultiSelectComboBox.js","sources":["../src/combo-box-deprecated/internal/MultiSelectComboBox.tsx"],"sourcesContent":["import { flip, limitShift, shift, size } from \"@floating-ui/react\";\nimport { useAriaAnnouncer, useFloatingUI, useForkRef } from \"@salt-ds/core\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Portal } from \"../../portal\";\nimport { ListBase, ListStateContext } from \"../../list-deprecated\";\nimport { TokenizedInputBase, TokenizedInputProps } from \"../../tokenized-input\";\nimport { BaseComboBoxProps } from \"./DefaultComboBox\";\nimport { getAnnouncement } from \"./getAnnouncement\";\nimport { useMultiSelectComboBox } from \"./useMultiSelectComboBox\";\nimport { isDesktop, useWindow } from \"../../window\";\n\nexport type MultiSelectComboBoxProps<Item> = BaseComboBoxProps<\n Item,\n \"multiple\"\n> &\n Pick<\n TokenizedInputProps<Item>,\n | \"onFocus\"\n | \"onBlur\"\n | \"onInputFocus\"\n | \"onInputBlur\"\n | \"onInputChange\"\n | \"onInputSelect\"\n | \"stringToItem\"\n > & {\n InputProps?: Partial<TokenizedInputProps<Item>>;\n initialSelectedItem?: Item[];\n selectedItem?: Item[];\n multiSelect: true;\n delimiter?: string | string[];\n };\n\nexport function MultiSelectComboBox<Item>(\n props: MultiSelectComboBoxProps<Item>\n) {\n const {\n ListItem,\n WindowProps,\n rootRef,\n listRef: listRefProp,\n rootWidth,\n listWidth,\n inputRef: inputRefProp,\n ...restProps\n } = props;\n\n const { announce } = useAriaAnnouncer({ debounce: 1000 });\n\n const expandButtonRef = useRef(null);\n const listRef = useRef(null);\n // Use callback ref as listRef could be null when it's closed\n const setListRef = useForkRef(listRef, listRefProp);\n\n const { inputRef, listContext, inputProps, listProps, inputHelpers } =\n useMultiSelectComboBox({\n ...restProps,\n expandButtonRef,\n });\n\n const { allowAnnouncement, disabled, value, ...restInputProps } = inputProps;\n const { isListOpen, itemCount, itemToString, source, ...restListProps } =\n listProps;\n\n const firstItem = null;\n\n const allowAnnouncementRef = useRef(allowAnnouncement);\n useEffect(() => {\n allowAnnouncementRef.current = allowAnnouncement;\n }, [allowAnnouncement]);\n\n useEffect(() => {\n if (allowAnnouncementRef.current && value && firstItem) {\n announce(getAnnouncement(itemCount, firstItem));\n }\n }, [value, firstItem, itemCount, announce]);\n\n const [maxListHeight, setMaxListHeight] = useState<number | undefined>(\n undefined\n );\n const middleware = isDesktop\n ? []\n : [\n flip({\n fallbackPlacements: [\"bottom-start\", \"top-start\"],\n }),\n shift({ limiter: limitShift() }),\n size({\n apply({ availableHeight }) {\n setMaxListHeight(availableHeight);\n },\n }),\n ];\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom-start\",\n middleware,\n });\n\n useEffect(() => {\n if (rootRef.current) {\n reference(rootRef.current);\n }\n }, [rootRef, reference]);\n\n const Window = useWindow();\n\n return (\n <>\n <TokenizedInputBase\n disabled={disabled}\n expandButtonRef={expandButtonRef}\n inputRef={useForkRef(inputRef, inputRefProp)}\n value={value}\n helpers={inputHelpers}\n {...restInputProps}\n />\n {rootRef.current && isListOpen && (\n <Portal>\n <Window\n style={{\n top: y ?? \"\",\n left: x ?? \"\",\n position: strategy,\n maxHeight: maxListHeight ?? \"\",\n }}\n {...WindowProps}\n ref={floating}\n >\n <ListStateContext.Provider value={listContext}>\n <ListBase\n {...{\n ListItem,\n disabled,\n itemCount,\n itemToString,\n width: listWidth || rootWidth,\n source,\n ...restListProps,\n listRef: setListRef,\n }}\n maxHeight={maxListHeight || listProps.maxHeight}\n />\n </ListStateContext.Provider>\n </Window>\n </Portal>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import '../../list-deprecated/ListItem.js';
|
|
|
7
7
|
import '../../list-deprecated/ListItemContext.js';
|
|
8
8
|
import '../../list-deprecated/ListStateContext.js';
|
|
9
9
|
import { useList } from '../../list-deprecated/useList.js';
|
|
10
|
+
import '../../utils/useFloatingUI.js';
|
|
10
11
|
import { defaultItemToString } from '../../tokenized-input/internal/defaultItemToString.js';
|
|
11
12
|
import { getDefaultFilterRegex, getDefaultFilter } from '../filterHelpers.js';
|
|
12
13
|
import { usePopperStatus, isToggleList } from './usePopperStatus.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComboBox.js","sources":["../src/combo-box-deprecated/internal/useComboBox.ts"],"sourcesContent":["import {\n useControlled,\n useForkRef,\n useId,\n useIsFocusVisible,\n} from \"@salt-ds/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useList } from \"../../list-deprecated\";\nimport { defaultItemToString } from \"../../tokenized-input/internal/defaultItemToString\";\nimport { getDefaultFilter, getDefaultFilterRegex } from \"../filterHelpers\";\nimport { DefaultComboBoxProps } from \"./DefaultComboBox\";\nimport { isToggleList, usePopperStatus } from \"./usePopperStatus\";\nimport { InputProps } from \"../../input\";\n\nexport type UseComboBoxProps<Item> = Omit<\n DefaultComboBoxProps<Item>,\n | \"ListItem\"\n | \"Tooltip\"\n | \"tooltipEnterDelay\"\n | \"tooltipLeaveDelay\"\n | \"tooltipPlacement\"\n | \"rootRef\"\n | \"listRef\"\n | \"inputRef\"\n | \"rootWidth\"\n | \"listWidth\"\n>;\n\nexport const useComboBox = <Item>(props: UseComboBoxProps<Item>) => {\n // Deconstruct valid props for List, everything else will be passed to input using `restProps`\n const {\n initialOpen,\n initialSelectedItem,\n allowFreeText,\n displayedItemCount,\n virtualized,\n disabled,\n onBlur,\n onFocus,\n onChange,\n onSelect,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onInputSelect,\n id: idProp,\n source: sourceProp = [],\n selectedItem: selectedItemProp,\n inputValue: inputValueProp,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n getFilterRegex = getDefaultFilterRegex,\n itemToString = defaultItemToString,\n stringToItem: stringToItemProp = (value) => (value ? value.trim() : value),\n InputProps: inputProps = {\n onBlur: onBlur || onInputBlur,\n onFocus: onFocus || onInputFocus,\n onChange: onInputChange,\n onSelect: onInputSelect,\n },\n ListProps = {},\n ...restProps\n } = props;\n\n const id = useId(idProp);\n const inputId = `${id}-input`;\n const listId = `${id}-list`;\n\n const [inputValue, setInputValue] = useControlled({\n controlled: inputValueProp,\n default: \"\",\n name: \"ComboBox\",\n state: \"inputValue\",\n });\n\n const [selectionChanged, setSelectionChanged] = useState(false);\n const inputRef = useRef<HTMLElement>(null);\n\n const [allowAnnouncement, setAllowAnnouncement] = useState(false);\n\n const labels = useMemo(\n () => sourceProp.map(itemToString),\n [sourceProp, itemToString]\n );\n\n const source = useMemo(() => {\n if (inputValue && inputValue.trim().length) {\n const itemFilter = getDefaultFilter(inputValue, getFilterRegex);\n return sourceProp.filter((item) => itemFilter(itemToString(item)));\n }\n return sourceProp;\n }, [inputValue, sourceProp, getFilterRegex, itemToString]);\n\n const itemTextHighlightPattern = useMemo(\n () =>\n inputValue && inputValue.trim().length\n ? getFilterRegex(inputValue)\n : undefined,\n [inputValue, getFilterRegex]\n );\n\n const { focusedRef, state, helpers, listProps } = useList({\n ...ListProps,\n source,\n disabled,\n virtualized,\n itemToString,\n initialSelectedItem,\n selectedItem: selectedItemProp,\n displayedItemCount,\n onChange,\n onSelect,\n id: listId,\n tabToSelect: true,\n disableFocus: true,\n disableMouseDown: true,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n\n const handleFocusVisibleRef = useForkRef(focusVisibleRef, focusedRef);\n const handleInputRef = useForkRef(inputRef, handleFocusVisibleRef);\n\n const { \"aria-activedescendant\": ariaActiveDescendant, ...restListProps } =\n listProps;\n\n const { selectedItem, highlightedIndex } = state;\n const [quickSelection, setQuickSelection] = useState(false);\n const { setFocusVisible, setSelectedItem, setHighlightedIndex } = helpers;\n\n const reconcileInput = useCallback(() => {\n setInputValue(selectedItem == null ? \"\" : itemToString(selectedItem));\n }, [selectedItem, itemToString, setInputValue]);\n\n const selectInputValue = (event: ChangeEvent) => {\n const nextIndex = inputValue ? labels.indexOf(inputValue.trim()) : -1;\n\n // Select the item if we can match its label; otherwise create a new one\n const nextItem = (\n nextIndex >= 0 ? sourceProp[nextIndex] : stringToItemProp(inputValue)\n ) as Item;\n\n if (onSelect) {\n onSelect(event, nextItem);\n }\n\n if (nextItem !== selectedItem) {\n setSelectedItem(nextItem);\n onChange && onChange(event, nextItem);\n }\n };\n\n const { isOpen: isListOpen, notifyPopper } = usePopperStatus({\n initialOpen,\n });\n\n // Reconcile input when the function is updated - most likely to be a selectItem change\n useEffect(reconcileInput, [reconcileInput]);\n\n // Reset highlight when list closes\n useEffect(() => {\n if (!isListOpen) {\n setHighlightedIndex(undefined);\n setQuickSelection(false);\n }\n }, [isListOpen, setHighlightedIndex, quickSelection]);\n\n const initHighlightedIndex = () => {\n setHighlightedIndex(selectedItem ? source.indexOf(selectedItem) : -1);\n };\n\n const handleInputFocus = (event: FocusEvent<HTMLInputElement>) => {\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n setFocusVisible(true);\n }\n\n if (highlightedIndex == null) {\n initHighlightedIndex();\n }\n\n if (inputProps.onFocus) {\n inputProps.onFocus(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n console.log(\"BLUR\");\n handleBlurVisible();\n setAllowAnnouncement(false);\n\n if (allowFreeText) {\n selectInputValue(event as ChangeEvent);\n } else {\n reconcileInput();\n }\n\n if (restListProps.onBlur) {\n restListProps.onBlur(event as FocusEvent<HTMLDivElement>);\n }\n\n if (inputProps.onBlur) {\n inputProps.onBlur(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n setInputValue(newValue);\n\n setHighlightedIndex(undefined);\n setQuickSelection(newValue.length > 0 && !allowFreeText);\n\n // Clear the selection when input is cleared\n if (newValue.length === 0) {\n setSelectedItem(undefined);\n onChange && onChange(event, null);\n }\n\n if (inputProps.onChange) {\n inputProps.onChange(event, \"\");\n }\n };\n\n const handleInputSelect = (event: SyntheticEvent<HTMLDivElement>) => {\n console.log(`handleInputSelect setSelectionChanged = true`);\n setSelectionChanged(true);\n if (inputProps.onSelect) {\n inputProps.onSelect(event);\n }\n };\n\n const handleInputKeyDown = (event: KeyboardEvent) => {\n if (\"Escape\" === event.key) {\n setHighlightedIndex(undefined);\n\n if (allowFreeText) {\n setInputValue(\"\");\n } else {\n reconcileInput();\n }\n }\n\n if (inputProps.onKeyDown) {\n inputProps.onKeyDown(event as KeyboardEvent<HTMLInputElement>);\n }\n };\n\n const handleFirstItemSelection = (event: KeyboardEvent | ChangeEvent) => {\n if (\n !allowFreeText &&\n (event as KeyboardEvent).key === \"Enter\" &&\n quickSelection\n ) {\n setSelectedItem(source[0]);\n onSelect && onSelect(event, source[0]);\n onChange && onChange(event as ChangeEvent, source[0]);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // Don't handle Alt modification key - pass it to popper as it should just toggle the open/close\n if (isToggleList(event)) {\n notifyPopper(event);\n return;\n }\n\n if (\n [\"ArrowUp\", \"ArrowDown\"].indexOf(event.key) !== -1 &&\n highlightedIndex == null\n ) {\n initHighlightedIndex();\n }\n\n handleFirstItemSelection(event);\n\n // Space, Home and End keydown should stay on input - don't pass it to list\n if ([\" \", \"Home\", \"End\"].indexOf(event.key) === -1) {\n if (restListProps.onKeyDown) {\n restListProps.onKeyDown(event as KeyboardEvent<HTMLDivElement>);\n }\n console.log(`handleKeyDown ${event.key} setSelectionCHanged = false`);\n setSelectionChanged(false);\n }\n\n // Don't announce for deleting values\n setAllowAnnouncement(\"Backspace\" !== event.key);\n handleInputKeyDown(event);\n notifyPopper(event);\n };\n\n const handleListClick = (event: MouseEvent) => {\n console.log(\"handle list click\");\n const inputEl = inputRef.current;\n if (inputEl != null) {\n inputEl.focus();\n }\n\n if (restListProps.onClick) {\n restListProps.onClick(event as MouseEvent<HTMLDivElement>);\n }\n\n notifyPopper(event);\n };\n\n const mergedInputProps = {\n ...inputProps.inputProps,\n role: \"combobox\",\n \"aria-owns\": listId,\n \"aria-label\": ariaLabel,\n \"aria-expanded\": isListOpen,\n \"aria-activedescendant\":\n isListOpen && selectionChanged ? null : ariaActiveDescendant,\n };\n\n return {\n inputRef: handleInputRef,\n listContext: {\n state,\n helpers,\n },\n inputProps: {\n ...restProps,\n ...inputProps,\n disabled,\n allowAnnouncement,\n id: inputId,\n value: inputValue,\n onFocus: handleInputFocus,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onKeyDown: handleKeyDown,\n onSelect: handleInputSelect,\n inputProps: mergedInputProps,\n } as Partial<InputProps> & { allowAnnouncement: boolean },\n listProps: {\n ...restListProps,\n source,\n itemToString,\n itemTextHighlightPattern,\n onClick: handleListClick,\n isListOpen: isListOpen && Boolean(source.length),\n },\n };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useComboBox.js","sources":["../src/combo-box-deprecated/internal/useComboBox.ts"],"sourcesContent":["import {\n useControlled,\n useForkRef,\n useId,\n useIsFocusVisible,\n} from \"@salt-ds/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useList } from \"../../list-deprecated\";\nimport { defaultItemToString } from \"../../tokenized-input/internal/defaultItemToString\";\nimport { getDefaultFilter, getDefaultFilterRegex } from \"../filterHelpers\";\nimport { DefaultComboBoxProps } from \"./DefaultComboBox\";\nimport { isToggleList, usePopperStatus } from \"./usePopperStatus\";\nimport { InputProps } from \"../../input\";\n\nexport type UseComboBoxProps<Item> = Omit<\n DefaultComboBoxProps<Item>,\n | \"ListItem\"\n | \"Tooltip\"\n | \"tooltipEnterDelay\"\n | \"tooltipLeaveDelay\"\n | \"tooltipPlacement\"\n | \"rootRef\"\n | \"listRef\"\n | \"inputRef\"\n | \"rootWidth\"\n | \"listWidth\"\n>;\n\nexport const useComboBox = <Item>(props: UseComboBoxProps<Item>) => {\n // Deconstruct valid props for List, everything else will be passed to input using `restProps`\n const {\n initialOpen,\n initialSelectedItem,\n allowFreeText,\n displayedItemCount,\n virtualized,\n disabled,\n onBlur,\n onFocus,\n onChange,\n onSelect,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onInputSelect,\n id: idProp,\n source: sourceProp = [],\n selectedItem: selectedItemProp,\n inputValue: inputValueProp,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n getFilterRegex = getDefaultFilterRegex,\n itemToString = defaultItemToString,\n stringToItem: stringToItemProp = (value) => (value ? value.trim() : value),\n InputProps: inputProps = {\n onBlur: onBlur || onInputBlur,\n onFocus: onFocus || onInputFocus,\n onChange: onInputChange,\n onSelect: onInputSelect,\n },\n ListProps = {},\n ...restProps\n } = props;\n\n const id = useId(idProp);\n const inputId = `${id}-input`;\n const listId = `${id}-list`;\n\n const [inputValue, setInputValue] = useControlled({\n controlled: inputValueProp,\n default: \"\",\n name: \"ComboBox\",\n state: \"inputValue\",\n });\n\n const [selectionChanged, setSelectionChanged] = useState(false);\n const inputRef = useRef<HTMLElement>(null);\n\n const [allowAnnouncement, setAllowAnnouncement] = useState(false);\n\n const labels = useMemo(\n () => sourceProp.map(itemToString),\n [sourceProp, itemToString]\n );\n\n const source = useMemo(() => {\n if (inputValue && inputValue.trim().length) {\n const itemFilter = getDefaultFilter(inputValue, getFilterRegex);\n return sourceProp.filter((item) => itemFilter(itemToString(item)));\n }\n return sourceProp;\n }, [inputValue, sourceProp, getFilterRegex, itemToString]);\n\n const itemTextHighlightPattern = useMemo(\n () =>\n inputValue && inputValue.trim().length\n ? getFilterRegex(inputValue)\n : undefined,\n [inputValue, getFilterRegex]\n );\n\n const { focusedRef, state, helpers, listProps } = useList({\n ...ListProps,\n source,\n disabled,\n virtualized,\n itemToString,\n initialSelectedItem,\n selectedItem: selectedItemProp,\n displayedItemCount,\n onChange,\n onSelect,\n id: listId,\n tabToSelect: true,\n disableFocus: true,\n disableMouseDown: true,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n\n const handleFocusVisibleRef = useForkRef(focusVisibleRef, focusedRef);\n const handleInputRef = useForkRef(inputRef, handleFocusVisibleRef);\n\n const { \"aria-activedescendant\": ariaActiveDescendant, ...restListProps } =\n listProps;\n\n const { selectedItem, highlightedIndex } = state;\n const [quickSelection, setQuickSelection] = useState(false);\n const { setFocusVisible, setSelectedItem, setHighlightedIndex } = helpers;\n\n const reconcileInput = useCallback(() => {\n setInputValue(selectedItem == null ? \"\" : itemToString(selectedItem));\n }, [selectedItem, itemToString, setInputValue]);\n\n const selectInputValue = (event: ChangeEvent) => {\n const nextIndex = inputValue ? labels.indexOf(inputValue.trim()) : -1;\n\n // Select the item if we can match its label; otherwise create a new one\n const nextItem = (\n nextIndex >= 0 ? sourceProp[nextIndex] : stringToItemProp(inputValue)\n ) as Item;\n\n if (onSelect) {\n onSelect(event, nextItem);\n }\n\n if (nextItem !== selectedItem) {\n setSelectedItem(nextItem);\n onChange && onChange(event, nextItem);\n }\n };\n\n const { isOpen: isListOpen, notifyPopper } = usePopperStatus({\n initialOpen,\n });\n\n // Reconcile input when the function is updated - most likely to be a selectItem change\n useEffect(reconcileInput, [reconcileInput]);\n\n // Reset highlight when list closes\n useEffect(() => {\n if (!isListOpen) {\n setHighlightedIndex(undefined);\n setQuickSelection(false);\n }\n }, [isListOpen, setHighlightedIndex, quickSelection]);\n\n const initHighlightedIndex = () => {\n setHighlightedIndex(selectedItem ? source.indexOf(selectedItem) : -1);\n };\n\n const handleInputFocus = (event: FocusEvent<HTMLInputElement>) => {\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n setFocusVisible(true);\n }\n\n if (highlightedIndex == null) {\n initHighlightedIndex();\n }\n\n if (inputProps.onFocus) {\n inputProps.onFocus(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n console.log(\"BLUR\");\n handleBlurVisible();\n setAllowAnnouncement(false);\n\n if (allowFreeText) {\n selectInputValue(event as ChangeEvent);\n } else {\n reconcileInput();\n }\n\n if (restListProps.onBlur) {\n restListProps.onBlur(event as FocusEvent<HTMLDivElement>);\n }\n\n if (inputProps.onBlur) {\n inputProps.onBlur(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n setInputValue(newValue);\n\n setHighlightedIndex(undefined);\n setQuickSelection(newValue.length > 0 && !allowFreeText);\n\n // Clear the selection when input is cleared\n if (newValue.length === 0) {\n setSelectedItem(undefined);\n onChange && onChange(event, null);\n }\n\n if (inputProps.onChange) {\n inputProps.onChange(event, \"\");\n }\n };\n\n const handleInputSelect = (event: SyntheticEvent<HTMLDivElement>) => {\n console.log(`handleInputSelect setSelectionChanged = true`);\n setSelectionChanged(true);\n if (inputProps.onSelect) {\n inputProps.onSelect(event);\n }\n };\n\n const handleInputKeyDown = (event: KeyboardEvent) => {\n if (\"Escape\" === event.key) {\n setHighlightedIndex(undefined);\n\n if (allowFreeText) {\n setInputValue(\"\");\n } else {\n reconcileInput();\n }\n }\n\n if (inputProps.onKeyDown) {\n inputProps.onKeyDown(event as KeyboardEvent<HTMLInputElement>);\n }\n };\n\n const handleFirstItemSelection = (event: KeyboardEvent | ChangeEvent) => {\n if (\n !allowFreeText &&\n (event as KeyboardEvent).key === \"Enter\" &&\n quickSelection\n ) {\n setSelectedItem(source[0]);\n onSelect && onSelect(event, source[0]);\n onChange && onChange(event as ChangeEvent, source[0]);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // Don't handle Alt modification key - pass it to popper as it should just toggle the open/close\n if (isToggleList(event)) {\n notifyPopper(event);\n return;\n }\n\n if (\n [\"ArrowUp\", \"ArrowDown\"].indexOf(event.key) !== -1 &&\n highlightedIndex == null\n ) {\n initHighlightedIndex();\n }\n\n handleFirstItemSelection(event);\n\n // Space, Home and End keydown should stay on input - don't pass it to list\n if ([\" \", \"Home\", \"End\"].indexOf(event.key) === -1) {\n if (restListProps.onKeyDown) {\n restListProps.onKeyDown(event as KeyboardEvent<HTMLDivElement>);\n }\n console.log(`handleKeyDown ${event.key} setSelectionCHanged = false`);\n setSelectionChanged(false);\n }\n\n // Don't announce for deleting values\n setAllowAnnouncement(\"Backspace\" !== event.key);\n handleInputKeyDown(event);\n notifyPopper(event);\n };\n\n const handleListClick = (event: MouseEvent) => {\n console.log(\"handle list click\");\n const inputEl = inputRef.current;\n if (inputEl != null) {\n inputEl.focus();\n }\n\n if (restListProps.onClick) {\n restListProps.onClick(event as MouseEvent<HTMLDivElement>);\n }\n\n notifyPopper(event);\n };\n\n const mergedInputProps = {\n ...inputProps.inputProps,\n role: \"combobox\",\n \"aria-owns\": listId,\n \"aria-label\": ariaLabel,\n \"aria-expanded\": isListOpen,\n \"aria-activedescendant\":\n isListOpen && selectionChanged ? null : ariaActiveDescendant,\n };\n\n return {\n inputRef: handleInputRef,\n listContext: {\n state,\n helpers,\n },\n inputProps: {\n ...restProps,\n ...inputProps,\n disabled,\n allowAnnouncement,\n id: inputId,\n value: inputValue,\n onFocus: handleInputFocus,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onKeyDown: handleKeyDown,\n onSelect: handleInputSelect,\n inputProps: mergedInputProps,\n } as Partial<InputProps> & { allowAnnouncement: boolean },\n listProps: {\n ...restListProps,\n source,\n itemToString,\n itemTextHighlightPattern,\n onClick: handleListClick,\n isListOpen: isListOpen && Boolean(source.length),\n },\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import '../../list-deprecated/ListItem.js';
|
|
|
7
7
|
import '../../list-deprecated/ListItemContext.js';
|
|
8
8
|
import '../../list-deprecated/ListStateContext.js';
|
|
9
9
|
import { useList } from '../../list-deprecated/useList.js';
|
|
10
|
+
import '../../utils/useFloatingUI.js';
|
|
10
11
|
import '../../tokenized-input/TokenizedInput.js';
|
|
11
12
|
import '../../tokenized-input/TokenizedInputBase.js';
|
|
12
13
|
import { useTokenizedInput } from '../../tokenized-input/useTokenizedInput.js';
|
package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultiSelectComboBox.js","sources":["../src/combo-box-deprecated/internal/useMultiSelectComboBox.ts"],"sourcesContent":["import {\n useControlled,\n useForkRef,\n useId,\n useIsFocusVisible,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n RefObject,\n SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useList } from \"../../list-deprecated\";\nimport { ExpandButtonProps, useTokenizedInput } from \"../../tokenized-input\";\nimport { defaultItemToString } from \"../../tokenized-input/internal/defaultItemToString\";\nimport { usePrevious } from \"@salt-ds/core\";\nimport { getDefaultFilter, getDefaultFilterRegex } from \"../filterHelpers\";\nimport { MultiSelectComboBoxProps } from \"./MultiSelectComboBox\";\nimport { isToggleList, usePopperStatus } from \"./usePopperStatus\";\n\nconst REQUIRE_PREV_HIGHLIGHT = [\"ArrowUp\", \"ArrowDown\", \"PageUp\", \"PageDown\"];\n\nexport type UseMultiSelectComboBoxProps<Item> = Omit<\n MultiSelectComboBoxProps<Item>,\n \"inputRef\" | \"listContext\" | \"inputHelpers\" | \"inputProps\" | \"listProps\"\n> & { expandButtonRef: RefObject<HTMLElement> };\n\nexport const useMultiSelectComboBox = <Item>(\n props: Omit<UseMultiSelectComboBoxProps<Item>, \"rootRef\" | \"classes\">\n) => {\n // Deconstruct valid props for List, everything else will be passed to `useTokenizedInput` using `restProps`\n const {\n allowFreeText,\n displayedItemCount,\n virtualized,\n disabled,\n expandButtonRef,\n onBlur,\n onFocus,\n onChange,\n onSelect,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onInputSelect,\n id: idProp,\n source: sourceProp,\n selectedItem: selectedItemProp,\n inputValue: inputValueProp,\n initialOpen,\n initialSelectedItem: initialSelectedItems,\n \"aria-labelledby\": ariaLabelledBy,\n getFilterRegex = getDefaultFilterRegex,\n itemToString = defaultItemToString,\n stringToItem: stringToItemProp = (_: any, value: string) => value.trim(),\n InputProps = {\n onBlur,\n onFocus,\n onInputBlur,\n onInputFocus,\n onInputChange,\n onInputSelect,\n },\n ListProps = {},\n ...restProps\n } = props;\n\n const id = useId(idProp);\n const inputId = `${id}-input`;\n const listId = `${id}-list`;\n\n const [inputValue, setInputValue] = useControlled({\n controlled: inputValueProp,\n default: \"\",\n name: \"MultiSelectComboBox\",\n state: \"inputValue\",\n });\n\n const { isOpen: isListOpen, notifyPopper } = usePopperStatus({\n initialOpen,\n isMultiSelect: true,\n });\n\n const [selectionChanged, setSelectionChanged] = useState(false);\n const inputBlurTimeout = useRef<number>(null);\n\n const [allowAnnouncement, setAllowAnnouncement] = useState(false);\n\n const labels = useMemo(\n () => sourceProp.map(itemToString),\n [sourceProp, itemToString]\n );\n\n const source = useMemo(() => {\n if (inputValue && inputValue.trim().length) {\n const itemFilter = getDefaultFilter(inputValue, getFilterRegex);\n return sourceProp.filter((item: Item) => itemFilter(itemToString(item)));\n }\n return sourceProp;\n }, [inputValue, sourceProp, getFilterRegex, itemToString]);\n\n const itemTextHighlightPattern = useMemo(\n () =>\n inputValue && inputValue.trim().length\n ? getFilterRegex(inputValue)\n : undefined,\n [inputValue, getFilterRegex]\n );\n\n const {\n focusedRef,\n listProps,\n state: listState,\n helpers: listHelpers,\n } = useList<Item, \"multiple\">({\n ...ListProps,\n source,\n disabled,\n virtualized,\n itemToString,\n displayedItemCount,\n onChange,\n onSelect,\n id: listId,\n disableFocus: true,\n disableMouseDown: true,\n selectionVariant: \"multiple\",\n initialSelectedItem: initialSelectedItems,\n selectedItem: selectedItemProp,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const { \"aria-activedescendant\": ariaActiveDescendant, ...restListProps } =\n listProps;\n const { selectedItem } = listState;\n const [quickSelection, setQuickSelection] = useState(false);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n const selectedItems = selectedItem as Item[];\n const {\n setSelectedItem: setSelectedItems,\n setHighlightedIndex: setHighlightedListIndex,\n } = listHelpers;\n\n const handleInputFocus = (event: FocusEvent<HTMLInputElement>) => {\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n listHelpers.setFocusVisible(true);\n }\n\n if (InputProps.onInputFocus) {\n InputProps.onInputFocus(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputBlur = (\n event: FocusEvent<HTMLDivElement | HTMLInputElement>\n ) => {\n handleBlurVisible();\n setAllowAnnouncement(false);\n setInputValue(\"\");\n\n if (restListProps.onBlur) {\n restListProps.onBlur(event);\n }\n\n if (InputProps.onInputBlur) {\n InputProps.onInputBlur(event as FocusEvent<HTMLInputElement>);\n }\n\n notifyPopper(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n\n setQuickSelection(event.target.value.length > 0 && !allowFreeText);\n\n if (InputProps.onInputChange) {\n InputProps.onInputChange(event);\n }\n };\n\n const handleItemsChange = (newItems: Item[] | undefined) => {\n const uniqueItems = Array.from(new Set(newItems));\n setSelectedItems(uniqueItems);\n onChange && onChange(null as unknown as ChangeEvent, uniqueItems);\n };\n\n const handleInputSelect = (event: SyntheticEvent<HTMLInputElement>) => {\n event.persist();\n setSelectionChanged(true);\n\n if (InputProps.onInputSelect) {\n InputProps.onInputSelect(event);\n }\n };\n\n const handleClear = () => {\n setSelectedItems([]);\n };\n\n const stringToItem = (selected: Item[], value: string): Item | null => {\n const trimmed = value.trim();\n const item = stringToItemProp(selected, trimmed);\n const isSelected = selected.map(itemToString).indexOf(trimmed) !== -1;\n\n // Either allow free text item OR the item has to be in the source list\n return !isSelected && (allowFreeText || labels.indexOf(trimmed) !== -1)\n ? (item as Item)\n : null;\n };\n\n // Reuse selectItem from list state for a controlled version of tokenized input\n const {\n inputRef,\n inputProps,\n state: inputState,\n helpers: inputHelpers,\n } = useTokenizedInput({\n ...restProps,\n ...InputProps,\n disabled,\n itemToString,\n stringToItem,\n selectedItems,\n initialSelectedItems,\n onInputFocus: handleInputFocus,\n onInputBlur: handleInputBlur,\n onInputChange: handleInputChange,\n onInputSelect: handleInputSelect,\n onChange: handleItemsChange,\n onClear: handleClear,\n onKeyDown: InputProps.onKeyDown as KeyboardEventHandler<\n HTMLInputElement | HTMLButtonElement\n >,\n });\n\n const handleFocusVisibleRef = useForkRef(focusVisibleRef, focusedRef);\n const handleInputRef = useForkRef(inputRef, handleFocusVisibleRef);\n\n const { setHighlightedIndex: setHighlightedPillIndex } = inputHelpers;\n\n // Reset highlight when list closes\n useEffect(() => {\n if (!isListOpen) {\n setHighlightedListIndex(undefined);\n setQuickSelection(false);\n }\n }, [isListOpen, setHighlightedListIndex, setQuickSelection]);\n\n const previousSelectedItems = usePrevious(selectedItems);\n\n // Reset list highlight when selectItems change\n useIsomorphicLayoutEffect(() => {\n if (\n selectedItems.some(\n (item) => !(previousSelectedItems || []).includes(item)\n )\n ) {\n setInputValue(\"\");\n }\n\n if (!selectedItems.length) {\n setHighlightedListIndex(undefined);\n }\n }, [\n selectedItems,\n previousSelectedItems,\n setInputValue,\n setHighlightedListIndex,\n ]);\n\n // Remove highlight from list if a pill is highlighted\n useEffect(() => {\n if (\n inputState.highlightedIndex != null &&\n inputState.highlightedIndex >= 0\n ) {\n setHighlightedListIndex(undefined);\n setQuickSelection(false);\n }\n }, [inputState.highlightedIndex, setHighlightedListIndex, setQuickSelection]);\n\n const highlightedIndex = listState && listState.highlightedIndex;\n\n // Remove highlight from pills if a list item is highlighted\n useEffect(() => {\n if (highlightedIndex != null && highlightedIndex >= 0) {\n setHighlightedPillIndex(undefined);\n }\n }, [highlightedIndex, setHighlightedPillIndex]);\n\n // Keep highlighted index in sync with the filtered source\n useEffect(() => {\n setHighlightedListIndex(undefined);\n }, [source, setHighlightedListIndex]);\n\n const handleFirstItemSelection = (event: KeyboardEvent | ChangeEvent) => {\n if (\n !allowFreeText &&\n (event as KeyboardEvent).key === \"Enter\" &&\n quickSelection\n ) {\n const newItem = source[0];\n const newSelectedItems =\n selectedItems.indexOf(newItem) === -1\n ? selectedItems.concat(source.slice(0, 1))\n : selectedItems.filter((item) => item !== newItem);\n setSelectedItems(newSelectedItems);\n onSelect && onSelect(event, newItem);\n onChange && onChange(event as ChangeEvent, newSelectedItems);\n }\n };\n\n const handleListOpenKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (\"Escape\" === event.key && inputProps.expanded) {\n setTimeout(() => {\n if (expandButtonRef.current) {\n expandButtonRef.current.focus();\n }\n }, 250);\n }\n\n handleFirstItemSelection(event);\n\n if (\n \"Home\" !== event.key &&\n \"End\" !== event.key &&\n !(\" \" === event.key && !event.ctrlKey)\n ) {\n if (restListProps.onKeyDown) {\n restListProps.onKeyDown(event);\n }\n setSelectionChanged(false);\n }\n };\n\n const handleInputKeyDown = (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement | HTMLDivElement>\n ) => {\n if (\"Escape\" === event.key) {\n setInputValue(\"\");\n setHighlightedListIndex(undefined);\n }\n\n // Space key clashes with the remove action of TokenizedInput\n // For combo box, pressing a space key should just add a space\n if (\" \" === event.key && !event.ctrlKey) {\n setHighlightedPillIndex(undefined);\n } else {\n if (inputProps.onKeyDown) {\n inputProps.onKeyDown(\n event as KeyboardEvent<HTMLInputElement | HTMLButtonElement>\n );\n }\n }\n\n if (\n !isToggleList(event) &&\n listState.highlightedIndex == null &&\n REQUIRE_PREV_HIGHLIGHT.indexOf(event.key) !== -1\n ) {\n event.preventDefault();\n // Initialize list highlight if there's no previous value\n setHighlightedListIndex(\n Math.min(quickSelection ? 1 : 0, source.length - 1)\n );\n setQuickSelection(false);\n setSelectionChanged(false);\n } else if (isListOpen) {\n handleListOpenKeyDown(event as KeyboardEvent<HTMLDivElement>);\n }\n\n // Don't announce for deleting values\n setAllowAnnouncement(\"Backspace\" !== event.key);\n notifyPopper(event);\n };\n\n const handleListClick = (event: MouseEvent<HTMLDivElement>) => {\n clearTimeout(\n inputBlurTimeout.current == null ? undefined : inputBlurTimeout.current\n );\n const inputEl = inputRef && (inputRef as RefObject<HTMLElement>).current;\n if (inputEl) {\n inputEl.focus();\n }\n\n if (restListProps.onClick) {\n restListProps.onClick(event);\n }\n };\n\n const mergedInputProps = {\n ...inputProps.InputProps,\n inputProps: {\n ...(inputProps.InputProps || {}).inputProps,\n role: \"textbox\",\n \"aria-roledescription\": \"MultiSelect Combobox\",\n },\n };\n\n if (ariaActiveDescendant && !selectionChanged) {\n // either null or undefined will prevent tokenized-input from\n // setting active-descendant based on pill selection.\n mergedInputProps.inputProps[\"aria-activedescendant\"] = ariaActiveDescendant;\n }\n\n const expandButtonProps = {\n accessibleText: undefined,\n role: \"button\",\n \"aria-roledescription\": \"Expand combobox button\",\n \"aria-labelledby\": [ariaLabelledBy, `${inputId}-input`]\n .filter(Boolean)\n .join(\" \"),\n } as ExpandButtonProps;\n\n return {\n inputHelpers,\n inputRef: handleInputRef,\n listContext: {\n state: listState,\n helpers: listHelpers,\n },\n inputProps: {\n ...inputProps,\n selectedItems,\n allowAnnouncement,\n id: inputId,\n value: inputValue,\n ExpandButtonProps: expandButtonProps,\n InputProps: mergedInputProps,\n onKeyDown: handleInputKeyDown,\n },\n listProps: {\n ...restListProps,\n source,\n itemToString,\n itemTextHighlightPattern,\n onClick: handleListClick,\n isListOpen: isListOpen && Boolean(source.length),\n },\n };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMultiSelectComboBox.js","sources":["../src/combo-box-deprecated/internal/useMultiSelectComboBox.ts"],"sourcesContent":["import {\n useControlled,\n useForkRef,\n useId,\n useIsFocusVisible,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n RefObject,\n SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useList } from \"../../list-deprecated\";\nimport { ExpandButtonProps, useTokenizedInput } from \"../../tokenized-input\";\nimport { defaultItemToString } from \"../../tokenized-input/internal/defaultItemToString\";\nimport { usePrevious } from \"@salt-ds/core\";\nimport { getDefaultFilter, getDefaultFilterRegex } from \"../filterHelpers\";\nimport { MultiSelectComboBoxProps } from \"./MultiSelectComboBox\";\nimport { isToggleList, usePopperStatus } from \"./usePopperStatus\";\n\nconst REQUIRE_PREV_HIGHLIGHT = [\"ArrowUp\", \"ArrowDown\", \"PageUp\", \"PageDown\"];\n\nexport type UseMultiSelectComboBoxProps<Item> = Omit<\n MultiSelectComboBoxProps<Item>,\n \"inputRef\" | \"listContext\" | \"inputHelpers\" | \"inputProps\" | \"listProps\"\n> & { expandButtonRef: RefObject<HTMLElement> };\n\nexport const useMultiSelectComboBox = <Item>(\n props: Omit<UseMultiSelectComboBoxProps<Item>, \"rootRef\" | \"classes\">\n) => {\n // Deconstruct valid props for List, everything else will be passed to `useTokenizedInput` using `restProps`\n const {\n allowFreeText,\n displayedItemCount,\n virtualized,\n disabled,\n expandButtonRef,\n onBlur,\n onFocus,\n onChange,\n onSelect,\n onInputChange,\n onInputFocus,\n onInputBlur,\n onInputSelect,\n id: idProp,\n source: sourceProp,\n selectedItem: selectedItemProp,\n inputValue: inputValueProp,\n initialOpen,\n initialSelectedItem: initialSelectedItems,\n \"aria-labelledby\": ariaLabelledBy,\n getFilterRegex = getDefaultFilterRegex,\n itemToString = defaultItemToString,\n stringToItem: stringToItemProp = (_: any, value: string) => value.trim(),\n InputProps = {\n onBlur,\n onFocus,\n onInputBlur,\n onInputFocus,\n onInputChange,\n onInputSelect,\n },\n ListProps = {},\n ...restProps\n } = props;\n\n const id = useId(idProp);\n const inputId = `${id}-input`;\n const listId = `${id}-list`;\n\n const [inputValue, setInputValue] = useControlled({\n controlled: inputValueProp,\n default: \"\",\n name: \"MultiSelectComboBox\",\n state: \"inputValue\",\n });\n\n const { isOpen: isListOpen, notifyPopper } = usePopperStatus({\n initialOpen,\n isMultiSelect: true,\n });\n\n const [selectionChanged, setSelectionChanged] = useState(false);\n const inputBlurTimeout = useRef<number>(null);\n\n const [allowAnnouncement, setAllowAnnouncement] = useState(false);\n\n const labels = useMemo(\n () => sourceProp.map(itemToString),\n [sourceProp, itemToString]\n );\n\n const source = useMemo(() => {\n if (inputValue && inputValue.trim().length) {\n const itemFilter = getDefaultFilter(inputValue, getFilterRegex);\n return sourceProp.filter((item: Item) => itemFilter(itemToString(item)));\n }\n return sourceProp;\n }, [inputValue, sourceProp, getFilterRegex, itemToString]);\n\n const itemTextHighlightPattern = useMemo(\n () =>\n inputValue && inputValue.trim().length\n ? getFilterRegex(inputValue)\n : undefined,\n [inputValue, getFilterRegex]\n );\n\n const {\n focusedRef,\n listProps,\n state: listState,\n helpers: listHelpers,\n } = useList<Item, \"multiple\">({\n ...ListProps,\n source,\n disabled,\n virtualized,\n itemToString,\n displayedItemCount,\n onChange,\n onSelect,\n id: listId,\n disableFocus: true,\n disableMouseDown: true,\n selectionVariant: \"multiple\",\n initialSelectedItem: initialSelectedItems,\n selectedItem: selectedItemProp,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const { \"aria-activedescendant\": ariaActiveDescendant, ...restListProps } =\n listProps;\n const { selectedItem } = listState;\n const [quickSelection, setQuickSelection] = useState(false);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n const selectedItems = selectedItem as Item[];\n const {\n setSelectedItem: setSelectedItems,\n setHighlightedIndex: setHighlightedListIndex,\n } = listHelpers;\n\n const handleInputFocus = (event: FocusEvent<HTMLInputElement>) => {\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n listHelpers.setFocusVisible(true);\n }\n\n if (InputProps.onInputFocus) {\n InputProps.onInputFocus(event);\n }\n\n notifyPopper(event);\n };\n\n const handleInputBlur = (\n event: FocusEvent<HTMLDivElement | HTMLInputElement>\n ) => {\n handleBlurVisible();\n setAllowAnnouncement(false);\n setInputValue(\"\");\n\n if (restListProps.onBlur) {\n restListProps.onBlur(event);\n }\n\n if (InputProps.onInputBlur) {\n InputProps.onInputBlur(event as FocusEvent<HTMLInputElement>);\n }\n\n notifyPopper(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n\n setQuickSelection(event.target.value.length > 0 && !allowFreeText);\n\n if (InputProps.onInputChange) {\n InputProps.onInputChange(event);\n }\n };\n\n const handleItemsChange = (newItems: Item[] | undefined) => {\n const uniqueItems = Array.from(new Set(newItems));\n setSelectedItems(uniqueItems);\n onChange && onChange(null as unknown as ChangeEvent, uniqueItems);\n };\n\n const handleInputSelect = (event: SyntheticEvent<HTMLInputElement>) => {\n event.persist();\n setSelectionChanged(true);\n\n if (InputProps.onInputSelect) {\n InputProps.onInputSelect(event);\n }\n };\n\n const handleClear = () => {\n setSelectedItems([]);\n };\n\n const stringToItem = (selected: Item[], value: string): Item | null => {\n const trimmed = value.trim();\n const item = stringToItemProp(selected, trimmed);\n const isSelected = selected.map(itemToString).indexOf(trimmed) !== -1;\n\n // Either allow free text item OR the item has to be in the source list\n return !isSelected && (allowFreeText || labels.indexOf(trimmed) !== -1)\n ? (item as Item)\n : null;\n };\n\n // Reuse selectItem from list state for a controlled version of tokenized input\n const {\n inputRef,\n inputProps,\n state: inputState,\n helpers: inputHelpers,\n } = useTokenizedInput({\n ...restProps,\n ...InputProps,\n disabled,\n itemToString,\n stringToItem,\n selectedItems,\n initialSelectedItems,\n onInputFocus: handleInputFocus,\n onInputBlur: handleInputBlur,\n onInputChange: handleInputChange,\n onInputSelect: handleInputSelect,\n onChange: handleItemsChange,\n onClear: handleClear,\n onKeyDown: InputProps.onKeyDown as KeyboardEventHandler<\n HTMLInputElement | HTMLButtonElement\n >,\n });\n\n const handleFocusVisibleRef = useForkRef(focusVisibleRef, focusedRef);\n const handleInputRef = useForkRef(inputRef, handleFocusVisibleRef);\n\n const { setHighlightedIndex: setHighlightedPillIndex } = inputHelpers;\n\n // Reset highlight when list closes\n useEffect(() => {\n if (!isListOpen) {\n setHighlightedListIndex(undefined);\n setQuickSelection(false);\n }\n }, [isListOpen, setHighlightedListIndex, setQuickSelection]);\n\n const previousSelectedItems = usePrevious(selectedItems);\n\n // Reset list highlight when selectItems change\n useIsomorphicLayoutEffect(() => {\n if (\n selectedItems.some(\n (item) => !(previousSelectedItems || []).includes(item)\n )\n ) {\n setInputValue(\"\");\n }\n\n if (!selectedItems.length) {\n setHighlightedListIndex(undefined);\n }\n }, [\n selectedItems,\n previousSelectedItems,\n setInputValue,\n setHighlightedListIndex,\n ]);\n\n // Remove highlight from list if a pill is highlighted\n useEffect(() => {\n if (\n inputState.highlightedIndex != null &&\n inputState.highlightedIndex >= 0\n ) {\n setHighlightedListIndex(undefined);\n setQuickSelection(false);\n }\n }, [inputState.highlightedIndex, setHighlightedListIndex, setQuickSelection]);\n\n const highlightedIndex = listState && listState.highlightedIndex;\n\n // Remove highlight from pills if a list item is highlighted\n useEffect(() => {\n if (highlightedIndex != null && highlightedIndex >= 0) {\n setHighlightedPillIndex(undefined);\n }\n }, [highlightedIndex, setHighlightedPillIndex]);\n\n // Keep highlighted index in sync with the filtered source\n useEffect(() => {\n setHighlightedListIndex(undefined);\n }, [source, setHighlightedListIndex]);\n\n const handleFirstItemSelection = (event: KeyboardEvent | ChangeEvent) => {\n if (\n !allowFreeText &&\n (event as KeyboardEvent).key === \"Enter\" &&\n quickSelection\n ) {\n const newItem = source[0];\n const newSelectedItems =\n selectedItems.indexOf(newItem) === -1\n ? selectedItems.concat(source.slice(0, 1))\n : selectedItems.filter((item) => item !== newItem);\n setSelectedItems(newSelectedItems);\n onSelect && onSelect(event, newItem);\n onChange && onChange(event as ChangeEvent, newSelectedItems);\n }\n };\n\n const handleListOpenKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (\"Escape\" === event.key && inputProps.expanded) {\n setTimeout(() => {\n if (expandButtonRef.current) {\n expandButtonRef.current.focus();\n }\n }, 250);\n }\n\n handleFirstItemSelection(event);\n\n if (\n \"Home\" !== event.key &&\n \"End\" !== event.key &&\n !(\" \" === event.key && !event.ctrlKey)\n ) {\n if (restListProps.onKeyDown) {\n restListProps.onKeyDown(event);\n }\n setSelectionChanged(false);\n }\n };\n\n const handleInputKeyDown = (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement | HTMLDivElement>\n ) => {\n if (\"Escape\" === event.key) {\n setInputValue(\"\");\n setHighlightedListIndex(undefined);\n }\n\n // Space key clashes with the remove action of TokenizedInput\n // For combo box, pressing a space key should just add a space\n if (\" \" === event.key && !event.ctrlKey) {\n setHighlightedPillIndex(undefined);\n } else {\n if (inputProps.onKeyDown) {\n inputProps.onKeyDown(\n event as KeyboardEvent<HTMLInputElement | HTMLButtonElement>\n );\n }\n }\n\n if (\n !isToggleList(event) &&\n listState.highlightedIndex == null &&\n REQUIRE_PREV_HIGHLIGHT.indexOf(event.key) !== -1\n ) {\n event.preventDefault();\n // Initialize list highlight if there's no previous value\n setHighlightedListIndex(\n Math.min(quickSelection ? 1 : 0, source.length - 1)\n );\n setQuickSelection(false);\n setSelectionChanged(false);\n } else if (isListOpen) {\n handleListOpenKeyDown(event as KeyboardEvent<HTMLDivElement>);\n }\n\n // Don't announce for deleting values\n setAllowAnnouncement(\"Backspace\" !== event.key);\n notifyPopper(event);\n };\n\n const handleListClick = (event: MouseEvent<HTMLDivElement>) => {\n clearTimeout(\n inputBlurTimeout.current == null ? undefined : inputBlurTimeout.current\n );\n const inputEl = inputRef && (inputRef as RefObject<HTMLElement>).current;\n if (inputEl) {\n inputEl.focus();\n }\n\n if (restListProps.onClick) {\n restListProps.onClick(event);\n }\n };\n\n const mergedInputProps = {\n ...inputProps.InputProps,\n inputProps: {\n ...(inputProps.InputProps || {}).inputProps,\n role: \"textbox\",\n \"aria-roledescription\": \"MultiSelect Combobox\",\n },\n };\n\n if (ariaActiveDescendant && !selectionChanged) {\n // either null or undefined will prevent tokenized-input from\n // setting active-descendant based on pill selection.\n mergedInputProps.inputProps[\"aria-activedescendant\"] = ariaActiveDescendant;\n }\n\n const expandButtonProps = {\n accessibleText: undefined,\n role: \"button\",\n \"aria-roledescription\": \"Expand combobox button\",\n \"aria-labelledby\": [ariaLabelledBy, `${inputId}-input`]\n .filter(Boolean)\n .join(\" \"),\n } as ExpandButtonProps;\n\n return {\n inputHelpers,\n inputRef: handleInputRef,\n listContext: {\n state: listState,\n helpers: listHelpers,\n },\n inputProps: {\n ...inputProps,\n selectedItems,\n allowAnnouncement,\n id: inputId,\n value: inputValue,\n ExpandButtonProps: expandButtonProps,\n InputProps: mergedInputProps,\n onKeyDown: handleInputKeyDown,\n },\n listProps: {\n ...restListProps,\n source,\n itemToString,\n itemTextHighlightPattern,\n onClick: handleListClick,\n isListOpen: isListOpen && Boolean(source.length),\n },\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { useState, useCallback
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
import { useIsomorphicLayoutEffect } from '@salt-ds/core';
|
|
2
3
|
|
|
3
4
|
function useAutoSizer(props) {
|
|
4
5
|
const { containerRef: ref, responsive, width, height } = props;
|
|
@@ -11,10 +12,10 @@ function useAutoSizer(props) {
|
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
14
|
}, []);
|
|
14
|
-
|
|
15
|
+
useIsomorphicLayoutEffect(() => {
|
|
15
16
|
setSize({ width, height });
|
|
16
17
|
}, [width, height]);
|
|
17
|
-
|
|
18
|
+
useIsomorphicLayoutEffect(() => {
|
|
18
19
|
if (responsive) {
|
|
19
20
|
let observer;
|
|
20
21
|
if (ref.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoSizer.js","sources":["../src/common-hooks/useAutoSizer.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useAutoSizer.js","sources":["../src/common-hooks/useAutoSizer.ts"],"sourcesContent":["import { RefObject, useState, useCallback } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"@salt-ds/core\";\n\nexport interface ListAutosizerProps {\n containerRef: RefObject<Element>;\n responsive: boolean;\n height?: number | string;\n width?: number | string;\n}\n\ninterface size {\n height?: number | string;\n width?: number | string;\n}\n\nexport function useAutoSizer<Element extends HTMLElement>(\n props: ListAutosizerProps\n): size {\n const { containerRef: ref, responsive, width, height } = props;\n const [size, setSize] = useState({ width, height });\n\n const handleResize = useCallback(function handleResize(contentRect: DOMRect) {\n if (contentRect.width > 0 && contentRect.height > 0) {\n setSize({\n width: contentRect.width,\n height: contentRect.height,\n });\n }\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n setSize({ width, height });\n }, [width, height]);\n\n useIsomorphicLayoutEffect(() => {\n if (responsive) {\n let observer: ResizeObserver;\n if (ref.current) {\n handleResize(ref.current.getBoundingClientRect());\n observer = new ResizeObserver(\n ([{ contentRect }]: ResizeObserverEntry[]) => {\n // TODO (currently firing because of scrollbar)\n // handleResize(contentRect);\n }\n );\n observer.observe(ref.current);\n }\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }\n }, [handleResize, responsive]);\n\n return size;\n}\n"],"names":["handleResize"],"mappings":";;;AAeO,SAAS,aACd,KACM,EAAA;AACN,EAAA,MAAM,EAAE,YAAc,EAAA,GAAA,EAAK,UAAY,EAAA,KAAA,EAAO,QAAW,GAAA,KAAA,CAAA;AACzD,EAAM,MAAA,CAAC,MAAM,OAAO,CAAA,GAAI,SAAS,EAAE,KAAA,EAAO,QAAQ,CAAA,CAAA;AAElD,EAAA,MAAM,YAAe,GAAA,WAAA,CAAY,SAASA,aAAAA,CAAa,WAAsB,EAAA;AAC3E,IAAA,IAAI,WAAY,CAAA,KAAA,GAAQ,CAAK,IAAA,WAAA,CAAY,SAAS,CAAG,EAAA;AACnD,MAAQ,OAAA,CAAA;AAAA,QACN,OAAO,WAAY,CAAA,KAAA;AAAA,QACnB,QAAQ,WAAY,CAAA,MAAA;AAAA,OACrB,CAAA,CAAA;AAAA,KACH;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAQ,OAAA,CAAA,EAAE,KAAO,EAAA,MAAA,EAAQ,CAAA,CAAA;AAAA,GACxB,EAAA,CAAC,KAAO,EAAA,MAAM,CAAC,CAAA,CAAA;AAElB,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,UAAY,EAAA;AACd,MAAI,IAAA,QAAA,CAAA;AACJ,MAAA,IAAI,IAAI,OAAS,EAAA;AACf,QAAa,YAAA,CAAA,GAAA,CAAI,OAAQ,CAAA,qBAAA,EAAuB,CAAA,CAAA;AAChD,QAAA,QAAA,GAAW,IAAI,cAAA;AAAA,UACb,CAAC,CAAC,EAAE,WAAA,EAAa,CAA6B,KAAA;AAAA,WAG9C;AAAA,SACF,CAAA;AACA,QAAS,QAAA,CAAA,OAAA,CAAQ,IAAI,OAAO,CAAA,CAAA;AAAA,OAC9B;AACA,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,QAAA,CAAS,UAAW,EAAA,CAAA;AAAA,SACtB;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACC,EAAA,CAAC,YAAc,EAAA,UAAU,CAAC,CAAA,CAAA;AAE7B,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { useRef, useCallback
|
|
2
|
-
import '@salt-ds/core';
|
|
1
|
+
import { useRef, useCallback } from 'react';
|
|
2
|
+
import { useIsomorphicLayoutEffect } from '@salt-ds/core';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import { useResizeObserver } from '../responsive/useResizeObserver.js';
|
|
5
|
+
import '../utils/useFloatingUI.js';
|
|
5
6
|
|
|
6
7
|
const HeightOnly = ["height"];
|
|
7
8
|
const HeightWithScroll = ["height", "scrollHeight"];
|
|
@@ -79,7 +80,7 @@ const useViewportTracking = ({
|
|
|
79
80
|
},
|
|
80
81
|
[containerRef, contentRef, scrollTo, stickyHeaders]
|
|
81
82
|
);
|
|
82
|
-
|
|
83
|
+
useIsomorphicLayoutEffect(() => {
|
|
83
84
|
const { height, contentHeight } = viewport.current;
|
|
84
85
|
const item = indexPositions[highlightedIdx];
|
|
85
86
|
if (contentHeight > height && item) {
|