@react-md/core 1.0.0-next.7 → 1.0.0-next.9
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/.stylelintrc.json +14 -0
- package/.turbo/turbo-build.log +6 -6
- package/.turbo/turbo-lint.log +13 -12
- package/CHANGELOG.md +15 -0
- package/README.md +39 -24
- package/coverage/clover.xml +1013 -529
- package/coverage/coverage-final.json +9 -3
- package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
- package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
- package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
- package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
- package/coverage/lcov-report/RootHtml.tsx.html +370 -0
- package/coverage/lcov-report/Select.tsx.html +1411 -0
- package/coverage/lcov-report/SrOnly.tsx.html +328 -0
- package/coverage/lcov-report/Typography.tsx.html +1027 -0
- package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
- package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +283 -0
- package/coverage/lcov-report/autocomplete/index.html +161 -0
- package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
- package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +775 -0
- package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
- package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +346 -0
- package/coverage/lcov-report/autocomplete/utils.ts.html +106 -0
- package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
- package/coverage/lcov-report/avatar/index.html +19 -34
- package/coverage/lcov-report/avatar/styles.ts.html +1 -1
- package/coverage/lcov-report/button/Button.tsx.html +85 -85
- package/coverage/lcov-report/button/index.html +12 -12
- package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
- package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
- package/coverage/lcov-report/dialog/index.html +34 -19
- package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
- package/coverage/lcov-report/form/Form.tsx.html +22 -22
- package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
- package/coverage/lcov-report/form/Option.tsx.html +727 -0
- package/coverage/lcov-report/form/Select.tsx.html +962 -1112
- package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
- package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
- package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
- package/coverage/lcov-report/form/index.html +57 -12
- package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
- package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
- package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
- package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
- package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
- package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
- package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
- package/coverage/lcov-report/form/utils.ts.html +209 -170
- package/coverage/lcov-report/icon/FontIcon.tsx.html +28 -28
- package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
- package/coverage/lcov-report/icon/index.html +1 -1
- package/coverage/lcov-report/index.html +32 -32
- package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
- package/coverage/lcov-report/media-queries/index.html +1 -1
- package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
- package/coverage/lcov-report/menu/Menu.tsx.html +271 -265
- package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
- package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
- package/coverage/lcov-report/menu/index.html +45 -15
- package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
- package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
- package/coverage/lcov-report/movement/index.html +19 -19
- package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
- package/coverage/lcov-report/positioning/constants.ts.html +463 -0
- package/coverage/lcov-report/positioning/index.html +30 -30
- package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
- package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
- package/coverage/lcov-report/progress/index.html +19 -34
- package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
- package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
- package/coverage/lcov-report/searching/index.html +161 -0
- package/coverage/lcov-report/searching/toSearchQuery.ts.html +139 -0
- package/coverage/lcov-report/searching/utils.ts.html +247 -0
- package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
- package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
- package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
- package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
- package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +1 -1
- package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
- package/coverage/lcov-report/src/app-bar/index.html +1 -1
- package/coverage/lcov-report/src/avatar/Avatar.tsx.html +1 -1
- package/coverage/lcov-report/src/avatar/index.html +1 -1
- package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
- package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
- package/coverage/lcov-report/src/badge/index.html +1 -1
- package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
- package/coverage/lcov-report/src/box/index.html +1 -1
- package/coverage/lcov-report/src/box/styles.ts.html +1 -1
- package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
- package/coverage/lcov-report/src/button/Button.tsx.html +1 -1
- package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
- package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +1 -1
- package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +1 -1
- package/coverage/lcov-report/src/button/buttonStyles.ts.html +1 -1
- package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
- package/coverage/lcov-report/src/button/index.html +1 -1
- package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
- package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
- package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
- package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
- package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
- package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
- package/coverage/lcov-report/src/card/ClickableCard.tsx.html +1 -1
- package/coverage/lcov-report/src/card/index.html +1 -1
- package/coverage/lcov-report/src/card/styles.ts.html +1 -1
- package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
- package/coverage/lcov-report/src/chip/index.html +1 -1
- package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
- package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
- package/coverage/lcov-report/src/delegateEvent.ts.html +1 -1
- package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
- package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
- package/coverage/lcov-report/src/dialog/index.html +1 -1
- package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
- package/coverage/lcov-report/src/divider/Divider.tsx.html +1 -1
- package/coverage/lcov-report/src/divider/index.html +1 -1
- package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
- package/coverage/lcov-report/src/draggable/index.html +1 -1
- package/coverage/lcov-report/src/draggable/useDraggable.ts.html +1 -1
- package/coverage/lcov-report/src/draggable/utils.ts.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/index.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
- package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
- package/coverage/lcov-report/src/focus/index.html +1 -1
- package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
- package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
- package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
- package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
- package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
- package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
- package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
- package/coverage/lcov-report/src/form/InputToggle.tsx.html +1 -1
- package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +56 -56
- package/coverage/lcov-report/src/form/Label.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
- package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
- package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
- package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
- package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
- package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
- package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
- package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
- package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Select.tsx.html +894 -1146
- package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
- package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
- package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
- package/coverage/lcov-report/src/form/TextArea.tsx.html +1 -1
- package/coverage/lcov-report/src/form/TextField.tsx.html +1 -1
- package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
- package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
- package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
- package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/index.html +30 -900
- package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
- package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
- package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
- package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
- package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/textAreaStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
- package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
- package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
- package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
- package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
- package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
- package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
- package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
- package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
- package/coverage/lcov-report/src/form/useRadioGroup.ts.html +1 -1
- package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
- package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +1 -1
- package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
- package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
- package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
- package/coverage/lcov-report/src/form/utils.ts.html +200 -170
- package/coverage/lcov-report/src/form/validation.ts.html +1 -1
- package/coverage/lcov-report/src/hoverMode/index.html +1 -1
- package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +1 -1
- package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +1 -1
- package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
- package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
- package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
- package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
- package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
- package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
- package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
- package/coverage/lcov-report/src/icon/index.html +1 -1
- package/coverage/lcov-report/src/icon/material.ts.html +1 -1
- package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
- package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
- package/coverage/lcov-report/src/index.html +9 -354
- package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
- package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
- package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
- package/coverage/lcov-report/src/interaction/index.html +1 -1
- package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +83 -83
- package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +7 -7
- package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
- package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
- package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +1 -1
- package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
- package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
- package/coverage/lcov-report/src/layout/index.html +1 -1
- package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +1 -1
- package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
- package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
- package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
- package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
- package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
- package/coverage/lcov-report/src/link/index.html +1 -1
- package/coverage/lcov-report/src/link/styles.ts.html +1 -1
- package/coverage/lcov-report/src/list/List.tsx.html +30 -30
- package/coverage/lcov-report/src/list/ListItem.tsx.html +124 -124
- package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +35 -35
- package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +79 -79
- package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
- package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
- package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
- package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
- package/coverage/lcov-report/src/list/index.html +5 -5
- package/coverage/lcov-report/src/list/listItemStyles.ts.html +65 -65
- package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +49 -49
- package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
- package/coverage/lcov-report/src/media-queries/index.html +1 -1
- package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
- package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/Menu.tsx.html +3 -3
- package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/menu/index.html +1 -1
- package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
- package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
- package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
- package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
- package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
- package/coverage/lcov-report/src/movement/index.html +17 -62
- package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +1 -1
- package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
- package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
- package/coverage/lcov-report/src/overlay/index.html +1 -1
- package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
- package/coverage/lcov-report/src/portal/Portal.tsx.html +1 -1
- package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +36 -36
- package/coverage/lcov-report/src/portal/index.html +1 -1
- package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
- package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +1 -1
- package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +1 -1
- package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +1 -1
- package/coverage/lcov-report/src/positioning/index.html +1 -1
- package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +1 -1
- package/coverage/lcov-report/src/positioning/utils.ts.html +1 -1
- package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +81 -81
- package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +1 -1
- package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
- package/coverage/lcov-report/src/progress/index.html +1 -1
- package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
- package/coverage/lcov-report/src/responsive-item/index.html +1 -1
- package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
- package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
- package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
- package/coverage/lcov-report/src/scroll/index.html +1 -1
- package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
- package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
- package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/segmented-button/index.html +1 -1
- package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
- package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
- package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
- package/coverage/lcov-report/src/sheet/index.html +1 -1
- package/coverage/lcov-report/src/sheet/styles.ts.html +1 -1
- package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/Toast.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/snackbar/index.html +1 -1
- package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +1 -1
- package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +1 -1
- package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
- package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
- package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
- package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
- package/coverage/lcov-report/src/suspense/index.html +32 -32
- package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableCell.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableCellContent.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableRadio.tsx.html +1 -1
- package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
- package/coverage/lcov-report/src/table/index.html +1 -1
- package/coverage/lcov-report/src/table/tableCellStyles.ts.html +1 -1
- package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +1 -1
- package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +1 -1
- package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +1 -1
- package/coverage/lcov-report/src/table/tableRowStyles.ts.html +1 -1
- package/coverage/lcov-report/src/table/tableStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/Tab.tsx.html +1 -1
- package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
- package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
- package/coverage/lcov-report/src/tabs/index.html +1 -1
- package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/tabStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/useTabList.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
- package/coverage/lcov-report/src/tabs/utils.ts.html +1 -1
- package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
- package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
- package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
- package/coverage/lcov-report/src/test-utils/index.html +7 -7
- package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
- package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
- package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
- package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
- package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
- package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
- package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
- package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
- package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
- package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
- package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
- package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
- package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
- package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
- package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
- package/coverage/lcov-report/src/theme/index.html +1 -1
- package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
- package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
- package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
- package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
- package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
- package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
- package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +1 -1
- package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
- package/coverage/lcov-report/src/tooltip/index.html +1 -1
- package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +1 -1
- package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +1 -1
- package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +1 -1
- package/coverage/lcov-report/src/tooltip/utils.ts.html +1 -1
- package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
- package/coverage/lcov-report/src/transition/config.ts.html +3 -3
- package/coverage/lcov-report/src/transition/index.html +7 -7
- package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +96 -150
- package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
- package/coverage/lcov-report/src/transition/useTransition.ts.html +152 -152
- package/coverage/lcov-report/src/transition/utils.ts.html +14 -14
- package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +1 -1
- package/coverage/lcov-report/src/tree/Tree.tsx.html +1 -1
- package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
- package/coverage/lcov-report/src/tree/TreeItem.tsx.html +1 -1
- package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
- package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +8 -8
- package/coverage/lcov-report/src/tree/index.html +1 -1
- package/coverage/lcov-report/src/tree/styles.ts.html +5 -5
- package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
- package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
- package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
- package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
- package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
- package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
- package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
- package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
- package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/typography/index.html +1 -1
- package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
- package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
- package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
- package/coverage/lcov-report/src/useElementSize.ts.html +1 -1
- package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
- package/coverage/lcov-report/src/useEnsuredRef.ts.html +11 -11
- package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
- package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
- package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
- package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
- package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
- package/coverage/lcov-report/src/usePageInactive.ts.html +1 -1
- package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
- package/coverage/lcov-report/src/useResizeObserver.ts.html +23 -23
- package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
- package/coverage/lcov-report/src/useToggle.ts.html +1 -1
- package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
- package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
- package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
- package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
- package/coverage/lcov-report/src/utils/applyRef.ts.html +1 -1
- package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
- package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
- package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
- package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +1 -1
- package/coverage/lcov-report/src/utils/getPercentage.ts.html +1 -1
- package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
- package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
- package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +13 -268
- package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
- package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
- package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
- package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +1 -1
- package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
- package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
- package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
- package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
- package/coverage/lcov-report/src/window-splitter/index.html +1 -1
- package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
- package/coverage/lcov-report/transition/config.ts.html +5 -5
- package/coverage/lcov-report/transition/index.html +1 -1
- package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
- package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
- package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
- package/coverage/lcov-report/useCombobox.ts.html +1513 -0
- package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
- package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
- package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
- package/coverage/lcov-report/utils/filters.ts.html +1056 -201
- package/coverage/lcov-report/utils/index.html +10 -10
- package/coverage/lcov-report/utils/searching.ts.html +85 -0
- package/coverage/lcov-report/utils.ts.html +109 -277
- package/coverage/lcov.info +900 -363
- package/dist/RootHtml.d.ts +62 -0
- package/dist/RootHtml.js +49 -0
- package/dist/RootHtml.js.map +1 -0
- package/dist/_core.scss +49 -43
- package/dist/avatar/Avatar.d.ts +14 -0
- package/dist/avatar/Avatar.js +5 -2
- package/dist/avatar/Avatar.js.map +1 -1
- package/dist/badge/_badge.scss +23 -19
- package/dist/dialog/FixedDialog.d.ts +5 -4
- package/dist/dialog/FixedDialog.js +5 -4
- package/dist/dialog/FixedDialog.js.map +1 -1
- package/dist/form/MenuItemInputToggle.d.ts +2 -15
- package/dist/form/MenuItemInputToggle.js +26 -37
- package/dist/form/MenuItemInputToggle.js.map +1 -1
- package/dist/form/NativeSelect.d.ts +5 -2
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Option.js +3 -2
- package/dist/form/Option.js.map +1 -1
- package/dist/form/Select.d.ts +105 -15
- package/dist/form/Select.js +160 -249
- package/dist/form/Select.js.map +1 -1
- package/dist/form/SelectedOption.d.ts +21 -0
- package/dist/form/SelectedOption.js +37 -0
- package/dist/form/SelectedOption.js.map +1 -0
- package/dist/form/TextField.d.ts +2 -2
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/_form.scss +47 -29
- package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
- package/dist/form/menuItemInputToggleStyles.js +31 -0
- package/dist/form/menuItemInputToggleStyles.js.map +1 -0
- package/dist/form/selectUtils.d.ts +1 -3
- package/dist/form/selectUtils.js +2 -10
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/types.d.ts +6 -6
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCombobox.d.ts +157 -0
- package/dist/form/useCombobox.js +206 -0
- package/dist/form/useCombobox.js.map +1 -0
- package/dist/form/useEditableCombobox.d.ts +15 -0
- package/dist/form/useEditableCombobox.js +101 -0
- package/dist/form/useEditableCombobox.js.map +1 -0
- package/dist/form/useFormReset.d.ts +16 -0
- package/dist/form/useFormReset.js +32 -0
- package/dist/form/useFormReset.js.map +1 -0
- package/dist/form/useListboxProvider.d.ts +1 -0
- package/dist/form/useListboxProvider.js +1 -0
- package/dist/form/useListboxProvider.js.map +1 -1
- package/dist/form/useSelectCombobox.d.ts +17 -0
- package/dist/form/useSelectCombobox.js +36 -0
- package/dist/form/useSelectCombobox.js.map +1 -0
- package/dist/form/utils.d.ts +11 -1
- package/dist/form/utils.js +6 -0
- package/dist/form/utils.js.map +1 -1
- package/dist/icon/_icon.scss +7 -5
- package/dist/index.d.ts +15 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/interaction/_interaction.scss +56 -44
- package/dist/list/types.d.ts +10 -1
- package/dist/list/types.js.map +1 -1
- package/dist/menu/Menu.js +12 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/_menu.scss +1 -0
- package/dist/menu/useContextMenu.d.ts +3 -3
- package/dist/menu/useContextMenu.js +3 -3
- package/dist/menu/useContextMenu.js.map +1 -1
- package/dist/movement/types.d.ts +40 -21
- package/dist/movement/types.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.js +15 -4
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/movement/utils.d.ts +7 -2
- package/dist/movement/utils.js +10 -0
- package/dist/movement/utils.js.map +1 -1
- package/dist/positioning/useFixedPositioning.js +0 -8
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/searching/caseInsensitive.d.ts +150 -0
- package/dist/searching/caseInsensitive.js +30 -0
- package/dist/searching/caseInsensitive.js.map +1 -0
- package/dist/searching/fuzzy.d.ts +128 -0
- package/dist/searching/fuzzy.js +54 -0
- package/dist/searching/fuzzy.js.map +1 -0
- package/dist/searching/toSearchQuery.d.ts +5 -0
- package/dist/searching/toSearchQuery.js +13 -0
- package/dist/searching/toSearchQuery.js.map +1 -0
- package/dist/searching/types.d.ts +28 -0
- package/dist/searching/types.js +5 -0
- package/dist/searching/types.js.map +1 -0
- package/dist/searching/utils.d.ts +21 -0
- package/dist/searching/utils.js +28 -0
- package/dist/searching/utils.js.map +1 -0
- package/dist/test-utils/IntersectionObserver.d.ts +12 -0
- package/dist/test-utils/ResizeObserver.d.ts +172 -0
- package/dist/test-utils/data-testid.d.ts +7 -0
- package/dist/test-utils/data-testid.js +1 -0
- package/dist/test-utils/data-testid.js.map +1 -1
- package/dist/test-utils/drag.d.ts +26 -0
- package/dist/test-utils/index.d.ts +7 -0
- package/dist/test-utils/jest-setup.d.ts +1 -0
- package/dist/test-utils/matchMedia.d.ts +101 -0
- package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
- package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
- package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
- package/dist/test-utils/polyfills/TextDecoder.js +8 -0
- package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
- package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
- package/dist/test-utils/polyfills/TextEncoder.js +6 -0
- package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
- package/dist/test-utils/polyfills/index.d.ts +7 -0
- package/dist/test-utils/polyfills/index.js +2 -0
- package/dist/test-utils/polyfills/index.js.map +1 -1
- package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
- package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
- package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
- package/dist/test-utils/render.d.ts +13 -0
- package/dist/test-utils/timers.d.ts +39 -0
- package/dist/theme/_theme.scss +192 -34
- package/dist/transition/useCollapseTransition.d.ts +3 -18
- package/dist/transition/useCollapseTransition.js +1 -10
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/utils.js +7 -2
- package/dist/transition/utils.js.map +1 -1
- package/dist/typography/SrOnly.d.ts +3 -3
- package/dist/typography/SrOnly.js +4 -4
- package/dist/typography/SrOnly.js.map +1 -1
- package/dist/typography/Typography.d.ts +19 -19
- package/dist/typography/Typography.js +19 -19
- package/dist/typography/Typography.js.map +1 -1
- package/dist/typography/_typography.scss +65 -25
- package/dist/useEnsuredState.d.ts +1 -1
- package/dist/useEnsuredState.js.map +1 -1
- package/dist/utils/alphaNumericSort.d.ts +1 -1
- package/dist/utils/alphaNumericSort.js +2 -10
- package/dist/utils/alphaNumericSort.js.map +1 -1
- package/jest.config.ts +4 -0
- package/package.json +21 -20
- package/src/RootHtml.tsx +95 -0
- package/src/__tests__/RootHtml.node.tsx +46 -0
- package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
- package/src/_core.scss +49 -43
- package/src/avatar/Avatar.tsx +24 -3
- package/src/avatar/__tests__/Avatar.tsx +1 -1
- package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
- package/src/badge/_badge.scss +23 -19
- package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
- package/src/dialog/FixedDialog.tsx +5 -4
- package/src/form/MenuItemInputToggle.tsx +46 -64
- package/src/form/NativeSelect.tsx +6 -3
- package/src/form/Option.tsx +8 -2
- package/src/form/Select.tsx +251 -335
- package/src/form/SelectedOption.tsx +55 -0
- package/src/form/TextField.tsx +2 -2
- package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
- package/src/form/__tests__/MenuItemRadio.tsx +53 -0
- package/src/form/__tests__/Select.tsx +439 -0
- package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
- package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
- package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
- package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
- package/src/form/__tests__/useFormReset.tsx +195 -0
- package/src/form/_form.scss +47 -29
- package/src/form/menuItemInputToggleStyles.ts +78 -0
- package/src/form/selectUtils.ts +3 -14
- package/src/form/types.ts +6 -6
- package/src/form/useCombobox.ts +523 -0
- package/src/form/useEditableCombobox.ts +139 -0
- package/src/form/useFormReset.ts +48 -0
- package/src/form/useListboxProvider.ts +2 -0
- package/src/form/useSelectCombobox.ts +70 -0
- package/src/form/utils.ts +17 -4
- package/src/icon/_icon.scss +7 -5
- package/src/index.ts +15 -1
- package/src/interaction/_interaction.scss +56 -44
- package/src/list/types.ts +12 -1
- package/src/menu/Menu.tsx +9 -1
- package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
- package/src/menu/__tests__/useContextMenu.tsx +41 -0
- package/src/menu/_menu.scss +1 -0
- package/src/menu/useContextMenu.ts +3 -3
- package/src/movement/types.ts +50 -25
- package/src/movement/useKeyboardMovementProvider.ts +21 -8
- package/src/movement/utils.ts +12 -2
- package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
- package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
- package/src/positioning/useFixedPositioning.ts +0 -6
- package/src/searching/__tests__/caseInsensitive.ts +165 -0
- package/src/searching/__tests__/fuzzy.ts +169 -0
- package/src/searching/__tests__/toSearchQuery.ts +21 -0
- package/src/searching/caseInsensitive.ts +200 -0
- package/src/searching/fuzzy.ts +175 -0
- package/src/searching/toSearchQuery.ts +18 -0
- package/src/searching/types.ts +34 -0
- package/src/searching/utils.ts +54 -0
- package/src/test-utils/data-testid.ts +5 -1
- package/src/test-utils/polyfills/TextDecoder.ts +7 -0
- package/src/test-utils/polyfills/TextEncoder.ts +5 -0
- package/src/test-utils/polyfills/index.ts +2 -0
- package/src/theme/_theme.scss +192 -34
- package/src/transition/__tests__/utils.ts +25 -0
- package/src/transition/useCollapseTransition.ts +6 -24
- package/src/transition/utils.ts +10 -5
- package/src/typography/SrOnly.tsx +9 -9
- package/src/typography/Typography.tsx +19 -19
- package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
- package/src/typography/_typography.scss +65 -25
- package/src/useEnsuredState.ts +1 -1
- package/src/utils/alphaNumericSort.ts +3 -16
- package/tsconfig.json +2 -2
- package/tsconfig.types.json +1 -1
- package/dist/form/SelectValue.d.ts +0 -17
- package/dist/form/SelectValue.js +0 -32
- package/dist/form/SelectValue.js.map +0 -1
- package/dist/utils/filters.d.ts +0 -196
- package/dist/utils/filters.js +0 -67
- package/dist/utils/filters.js.map +0 -1
- package/src/form/SelectValue.tsx +0 -39
- package/src/utils/filters.ts +0 -320
|
@@ -198,6 +198,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
198
198
|
onFocus = noop,
|
|
199
199
|
onKeyDown = noop,
|
|
200
200
|
loopable = false,
|
|
201
|
+
disabled,
|
|
201
202
|
searchable = false,
|
|
202
203
|
horizontal = false,
|
|
203
204
|
includeDisabled = false,
|
|
@@ -211,6 +212,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
211
212
|
jumpToLastKeys: propJumpToLastKeys,
|
|
212
213
|
getFocusableElements = defaultGetFocusableElements,
|
|
213
214
|
getDefaultFocusedIndex = returnNegative1,
|
|
215
|
+
isNegativeOneAllowed = false,
|
|
214
216
|
} = options;
|
|
215
217
|
|
|
216
218
|
const isRTL = useDir().dir === "rtl";
|
|
@@ -273,21 +275,27 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
273
275
|
}, []);
|
|
274
276
|
}
|
|
275
277
|
|
|
278
|
+
let tabIndex: number | undefined;
|
|
279
|
+
if (tabIndexBehavior) {
|
|
280
|
+
tabIndex =
|
|
281
|
+
disabled || (tabIndexBehavior === "roving" && activeDescendantId)
|
|
282
|
+
? -1
|
|
283
|
+
: 0;
|
|
284
|
+
}
|
|
285
|
+
|
|
276
286
|
return {
|
|
277
287
|
movementProps: {
|
|
278
288
|
"aria-activedescendant":
|
|
279
289
|
tabIndexBehavior === "virtual" ? activeDescendantId : undefined,
|
|
280
|
-
tabIndex
|
|
281
|
-
tabIndexBehavior === "roving"
|
|
282
|
-
? activeDescendantId
|
|
283
|
-
? -1
|
|
284
|
-
: 0
|
|
285
|
-
: undefined,
|
|
290
|
+
tabIndex,
|
|
286
291
|
|
|
287
292
|
// Note: This used to be on the `onFocus` event, but this causes issues in
|
|
288
293
|
// Chromium browsers for drag and drop behavior
|
|
289
294
|
onClick(event) {
|
|
290
295
|
onClick(event);
|
|
296
|
+
if (disabled) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
291
299
|
|
|
292
300
|
// This makes it so you can click an element with a mouse and then
|
|
293
301
|
// keyboard navigate from that element instead of the last keyboard focus
|
|
@@ -353,7 +361,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
353
361
|
// This allows my custom `getDefaultFocusedIndex` implementations to
|
|
354
362
|
// have a nice fallback without having to re-implement the "focus
|
|
355
363
|
// first" behavior
|
|
356
|
-
if (defaultFocusIndex === -1) {
|
|
364
|
+
if (!isNegativeOneAllowed && defaultFocusIndex === -1) {
|
|
357
365
|
if (tabIndexBehavior === "virtual") {
|
|
358
366
|
// virtual keyboard navigation **must** always focus at least one element
|
|
359
367
|
defaultFocusIndex = getVirtualFocusDefaultIndex({
|
|
@@ -392,6 +400,10 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
392
400
|
},
|
|
393
401
|
onKeyDown(event) {
|
|
394
402
|
onKeyDown(event);
|
|
403
|
+
if (disabled) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
|
|
395
407
|
const { currentTarget } = event;
|
|
396
408
|
|
|
397
409
|
const setFocusIndex = (
|
|
@@ -439,7 +451,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
439
451
|
// TODO: Figure this part out. This is currently required for the tree
|
|
440
452
|
// movement when the asterisk key is pressed. There might be other cases
|
|
441
453
|
// as well.
|
|
442
|
-
if (currentFocusIndex.current === -1) {
|
|
454
|
+
if (!isNegativeOneAllowed && currentFocusIndex.current === -1) {
|
|
443
455
|
currentFocusIndex.current = recalculateFocusIndex({
|
|
444
456
|
focusables: getFocusableElements(currentTarget, programmatic),
|
|
445
457
|
includeDisabled,
|
|
@@ -529,6 +541,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
529
541
|
},
|
|
530
542
|
movementContext,
|
|
531
543
|
currentFocusIndex,
|
|
544
|
+
activeDescendantId,
|
|
532
545
|
setActiveDescendantId,
|
|
533
546
|
};
|
|
534
547
|
}
|
package/src/movement/utils.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type KeyboardEvent } from "react";
|
|
2
2
|
import { loop } from "../utils/loop.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type FocusableIndexOptions, type TabIndexBehavior } from "./types.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @remarks \@since 6.0.0
|
|
@@ -260,3 +260,13 @@ export function isSearchableEvent(event: KeyboardEvent): boolean {
|
|
|
260
260
|
!metaKey
|
|
261
261
|
);
|
|
262
262
|
}
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* @remarks \@since 6.0.0
|
|
266
|
+
* @internal
|
|
267
|
+
*/
|
|
268
|
+
export function isTypeEvent(event: KeyboardEvent): boolean {
|
|
269
|
+
return (
|
|
270
|
+
isSearchableEvent(event) || ["Backspace", "Delete", " "].includes(event.key)
|
|
271
|
+
);
|
|
272
|
+
}
|
|
@@ -85,35 +85,3 @@ exports[`useFixedPositioning should default to fixing itself with the BELOW_CENT
|
|
|
85
85
|
</button>
|
|
86
86
|
</div>
|
|
87
87
|
`;
|
|
88
|
-
|
|
89
|
-
exports[`useFixedPositioning should update the style correctly based on the initialX and initialY so that it can be used for context menus 1`] = `
|
|
90
|
-
<div>
|
|
91
|
-
<button
|
|
92
|
-
type="button"
|
|
93
|
-
>
|
|
94
|
-
Toggle
|
|
95
|
-
</button>
|
|
96
|
-
<div
|
|
97
|
-
data-testid="element"
|
|
98
|
-
style="position: fixed; left: 16px; top: 0px;"
|
|
99
|
-
>
|
|
100
|
-
Some content.
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
`;
|
|
104
|
-
|
|
105
|
-
exports[`useFixedPositioning should update the style correctly based on the initialX and initialY so that it can be used for context menus 2`] = `
|
|
106
|
-
<div>
|
|
107
|
-
<button
|
|
108
|
-
type="button"
|
|
109
|
-
>
|
|
110
|
-
Toggle
|
|
111
|
-
</button>
|
|
112
|
-
<div
|
|
113
|
-
data-testid="element"
|
|
114
|
-
style="position: fixed; left: 30px; top: 40px;"
|
|
115
|
-
>
|
|
116
|
-
Some content.
|
|
117
|
-
</div>
|
|
118
|
-
</div>
|
|
119
|
-
`;
|
|
@@ -141,20 +141,6 @@ describe("useFixedPositioning", () => {
|
|
|
141
141
|
expect(onResize).toHaveBeenCalled();
|
|
142
142
|
});
|
|
143
143
|
|
|
144
|
-
it("should update the style correctly based on the initialX and initialY so that it can be used for context menus", () => {
|
|
145
|
-
const { container, rerender } = render(<Test />);
|
|
146
|
-
const toggle = screen.getByRole("button");
|
|
147
|
-
|
|
148
|
-
fireEvent.click(toggle);
|
|
149
|
-
act(() => {
|
|
150
|
-
jest.runAllTimers();
|
|
151
|
-
});
|
|
152
|
-
expect(container).toMatchSnapshot();
|
|
153
|
-
|
|
154
|
-
rerender(<Test initialX={30} initialY={40} />);
|
|
155
|
-
expect(container).toMatchSnapshot();
|
|
156
|
-
});
|
|
157
|
-
|
|
158
144
|
it("should correctly call the transition callbacks", () => {
|
|
159
145
|
const onEnter = jest.fn();
|
|
160
146
|
const onEntering = jest.fn();
|
|
@@ -380,12 +380,6 @@ export function useFixedPositioning<
|
|
|
380
380
|
};
|
|
381
381
|
}, [active, fixedTo, onResize, onScroll, ref, updateStyle]);
|
|
382
382
|
|
|
383
|
-
useEffect(() => {
|
|
384
|
-
if (!ref.current || !ref.current.hidden) {
|
|
385
|
-
updateStyle();
|
|
386
|
-
}
|
|
387
|
-
}, [ref, updateStyle]);
|
|
388
|
-
|
|
389
383
|
const callbacks: Required<FixedPositioningTransitionCallbacks> = {
|
|
390
384
|
onEnter(appearing) {
|
|
391
385
|
onEnter(appearing);
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { describe, expect, it } from "@jest/globals";
|
|
2
|
+
import { caseInsensitiveSearch } from "../caseInsensitive.js";
|
|
3
|
+
|
|
4
|
+
const FRUITS = ["Apple", "Banana", "Mango", "Orange"];
|
|
5
|
+
|
|
6
|
+
describe("caseInsensitiveSearch", () => {
|
|
7
|
+
it("should return the list if it is empty or there is no query string", () => {
|
|
8
|
+
const list1: string[] = [];
|
|
9
|
+
const list2 = ["item1", "item2"];
|
|
10
|
+
|
|
11
|
+
expect(caseInsensitiveSearch({ query: "", list: list1 })).toBe(list1);
|
|
12
|
+
expect(caseInsensitiveSearch({ query: "", list: list2 })).toBe(list2);
|
|
13
|
+
|
|
14
|
+
expect(caseInsensitiveSearch({ query: "string", list: list1 })).toBe(list1);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("should filter out all items that do not contain the query string ignoring case", () => {
|
|
18
|
+
const expected1 = ["Apple"];
|
|
19
|
+
expect(caseInsensitiveSearch({ query: "ap", list: FRUITS })).toEqual(
|
|
20
|
+
expected1
|
|
21
|
+
);
|
|
22
|
+
expect(caseInsensitiveSearch({ query: "aP", list: FRUITS })).toEqual(
|
|
23
|
+
expected1
|
|
24
|
+
);
|
|
25
|
+
expect(caseInsensitiveSearch({ query: "AP", list: FRUITS })).toEqual(
|
|
26
|
+
expected1
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const expected2 = ["Banana", "Mango", "Orange"];
|
|
30
|
+
expect(caseInsensitiveSearch({ query: "an", list: FRUITS })).toEqual(
|
|
31
|
+
expected2
|
|
32
|
+
);
|
|
33
|
+
expect(caseInsensitiveSearch({ query: "AN", list: FRUITS })).toEqual(
|
|
34
|
+
expected2
|
|
35
|
+
);
|
|
36
|
+
expect(caseInsensitiveSearch({ query: "aN", list: FRUITS })).toEqual(
|
|
37
|
+
expected2
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("should allow for filtering by matches that start with the query string instead of contain only", () => {
|
|
42
|
+
expect(
|
|
43
|
+
caseInsensitiveSearch({
|
|
44
|
+
query: "ap",
|
|
45
|
+
list: FRUITS,
|
|
46
|
+
startsWith: true,
|
|
47
|
+
})
|
|
48
|
+
).toEqual(["Apple"]);
|
|
49
|
+
expect(
|
|
50
|
+
caseInsensitiveSearch({
|
|
51
|
+
query: "an",
|
|
52
|
+
list: FRUITS,
|
|
53
|
+
startsWith: true,
|
|
54
|
+
})
|
|
55
|
+
).toEqual([]);
|
|
56
|
+
|
|
57
|
+
const list = ["Item 1", "This is Item 1"];
|
|
58
|
+
expect(
|
|
59
|
+
caseInsensitiveSearch({
|
|
60
|
+
query: "item",
|
|
61
|
+
list,
|
|
62
|
+
startsWith: true,
|
|
63
|
+
})
|
|
64
|
+
).toEqual(["Item 1"]);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("should work on objects", () => {
|
|
68
|
+
const apple = { name: "Apple", value: 0 };
|
|
69
|
+
const banana = { name: "Banana", value: 1 };
|
|
70
|
+
const mango = { name: "Mango", value: 2 };
|
|
71
|
+
const orange = { name: "Orange", value: 3 };
|
|
72
|
+
const list = [apple, banana, mango, orange];
|
|
73
|
+
|
|
74
|
+
expect(
|
|
75
|
+
caseInsensitiveSearch({
|
|
76
|
+
query: "ap",
|
|
77
|
+
list,
|
|
78
|
+
extractor: (item) => item.name,
|
|
79
|
+
})
|
|
80
|
+
).toEqual([apple]);
|
|
81
|
+
expect(
|
|
82
|
+
caseInsensitiveSearch({
|
|
83
|
+
query: "2",
|
|
84
|
+
list,
|
|
85
|
+
extractor: (item) => `${item.value}`,
|
|
86
|
+
})
|
|
87
|
+
).toEqual([mango]);
|
|
88
|
+
|
|
89
|
+
expect(
|
|
90
|
+
caseInsensitiveSearch({
|
|
91
|
+
query: "an",
|
|
92
|
+
list,
|
|
93
|
+
extractor: (item) => item.name,
|
|
94
|
+
})
|
|
95
|
+
).toEqual([banana, mango, orange]);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("should allow whitespace to be trimmed", () => {
|
|
99
|
+
expect(
|
|
100
|
+
caseInsensitiveSearch({
|
|
101
|
+
list: FRUITS,
|
|
102
|
+
query: " app",
|
|
103
|
+
whitespace: "trim",
|
|
104
|
+
})
|
|
105
|
+
).toEqual(["Apple"]);
|
|
106
|
+
expect(
|
|
107
|
+
caseInsensitiveSearch({
|
|
108
|
+
list: FRUITS,
|
|
109
|
+
query: " app ",
|
|
110
|
+
whitespace: "trim",
|
|
111
|
+
})
|
|
112
|
+
).toEqual(["Apple"]);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it("should throw an error if an extractor is not provided for a non-string list", () => {
|
|
116
|
+
expect(() =>
|
|
117
|
+
// @ts-expect-error
|
|
118
|
+
caseInsensitiveSearch({ query: "q", list: [0, 1, 2] })
|
|
119
|
+
).toThrow(
|
|
120
|
+
"A `TextExtractor` must be provided to `caseInsensitiveSearch` for lists that do not contain strings"
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
expect(() =>
|
|
124
|
+
// @ts-expect-error
|
|
125
|
+
caseInsensitiveSearch({ query: "q", list: [null, undefined] })
|
|
126
|
+
).toThrow(
|
|
127
|
+
"A `TextExtractor` must be provided to `caseInsensitiveSearch` for lists that do not contain strings"
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
expect(() =>
|
|
131
|
+
// @ts-expect-error
|
|
132
|
+
caseInsensitiveSearch({ query: "q", list: [{ name: "Qwerty" }] })
|
|
133
|
+
).toThrow(
|
|
134
|
+
"A `TextExtractor` must be provided to `caseInsensitiveSearch` for lists that do not contain strings"
|
|
135
|
+
);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it("should find the first match when the type is set to search", () => {
|
|
139
|
+
const fruits = ["Banana", "Grape", "Apple", "Orange"];
|
|
140
|
+
expect(
|
|
141
|
+
caseInsensitiveSearch({
|
|
142
|
+
list: fruits,
|
|
143
|
+
query: "ap",
|
|
144
|
+
type: "search",
|
|
145
|
+
})
|
|
146
|
+
).toBe("Grape");
|
|
147
|
+
|
|
148
|
+
expect(
|
|
149
|
+
caseInsensitiveSearch({
|
|
150
|
+
list: fruits,
|
|
151
|
+
query: "ap",
|
|
152
|
+
type: "search",
|
|
153
|
+
startsWith: true,
|
|
154
|
+
})
|
|
155
|
+
).toBe("Apple");
|
|
156
|
+
|
|
157
|
+
expect(
|
|
158
|
+
caseInsensitiveSearch({
|
|
159
|
+
list: [],
|
|
160
|
+
query: "",
|
|
161
|
+
type: "search",
|
|
162
|
+
})
|
|
163
|
+
).toBe(undefined);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { describe, expect, it, jest } from "@jest/globals";
|
|
2
|
+
import { fuzzySearch } from "../fuzzy.js";
|
|
3
|
+
|
|
4
|
+
const FRUITS = ["Apple", "Banana", "Mango", "Orange"];
|
|
5
|
+
const NON_DEPRECATED_STRING_PROPERTY_NAMES = [
|
|
6
|
+
"at",
|
|
7
|
+
"charAt",
|
|
8
|
+
"charCodeAt",
|
|
9
|
+
"codePointAt",
|
|
10
|
+
"concat",
|
|
11
|
+
"constructor",
|
|
12
|
+
"endsWith",
|
|
13
|
+
"includes",
|
|
14
|
+
"indexOf",
|
|
15
|
+
"lastIndexOf",
|
|
16
|
+
"length",
|
|
17
|
+
"localeCompare",
|
|
18
|
+
"match",
|
|
19
|
+
"matchAll",
|
|
20
|
+
"normalize",
|
|
21
|
+
"padEnd",
|
|
22
|
+
"padStart",
|
|
23
|
+
"repeat",
|
|
24
|
+
"replace",
|
|
25
|
+
"replaceAll",
|
|
26
|
+
"search",
|
|
27
|
+
"slice",
|
|
28
|
+
"split",
|
|
29
|
+
"startsWith",
|
|
30
|
+
"substring",
|
|
31
|
+
"toLocaleLowerCase",
|
|
32
|
+
"toLocaleUpperCase",
|
|
33
|
+
"toLowerCase",
|
|
34
|
+
"toString",
|
|
35
|
+
"toUpperCase",
|
|
36
|
+
"trim",
|
|
37
|
+
"trimEnd",
|
|
38
|
+
"trimStart",
|
|
39
|
+
"valueOf",
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
describe("fuzzySearch", () => {
|
|
43
|
+
it("should return the list as-is if it is empty or there is no query string", () => {
|
|
44
|
+
const list1: string[] = [];
|
|
45
|
+
const list2 = ["item1", "item2"];
|
|
46
|
+
|
|
47
|
+
expect(
|
|
48
|
+
fuzzySearch({
|
|
49
|
+
list: list1,
|
|
50
|
+
query: "",
|
|
51
|
+
})
|
|
52
|
+
).toBe(list1);
|
|
53
|
+
expect(
|
|
54
|
+
fuzzySearch({
|
|
55
|
+
list: list1,
|
|
56
|
+
query: "query",
|
|
57
|
+
})
|
|
58
|
+
).toBe(list1);
|
|
59
|
+
|
|
60
|
+
expect(
|
|
61
|
+
fuzzySearch({
|
|
62
|
+
list: list2,
|
|
63
|
+
query: "",
|
|
64
|
+
})
|
|
65
|
+
).toBe(list2);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should filter the list by ensuring that the letters just appear in order in the string", () => {
|
|
69
|
+
expect(
|
|
70
|
+
fuzzySearch({
|
|
71
|
+
list: FRUITS,
|
|
72
|
+
query: "ae",
|
|
73
|
+
})
|
|
74
|
+
).toEqual(["Apple", "Orange"]);
|
|
75
|
+
expect(
|
|
76
|
+
fuzzySearch({
|
|
77
|
+
list: FRUITS,
|
|
78
|
+
query: "aE",
|
|
79
|
+
})
|
|
80
|
+
).toEqual(["Apple", "Orange"]);
|
|
81
|
+
|
|
82
|
+
expect(
|
|
83
|
+
fuzzySearch({
|
|
84
|
+
list: NON_DEPRECATED_STRING_PROPERTY_NAMES,
|
|
85
|
+
query: "la",
|
|
86
|
+
})
|
|
87
|
+
).toEqual([
|
|
88
|
+
"lastIndexOf",
|
|
89
|
+
"localeCompare",
|
|
90
|
+
"replace",
|
|
91
|
+
"replaceAll",
|
|
92
|
+
"toLocaleLowerCase",
|
|
93
|
+
"toLocaleUpperCase",
|
|
94
|
+
"toLowerCase",
|
|
95
|
+
]);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("should lazy-create the regexp", () => {
|
|
99
|
+
const reg = jest.spyOn(global, "RegExp");
|
|
100
|
+
|
|
101
|
+
const list = Array.from({ length: 100000 }, (_, i) => `${i} Item`);
|
|
102
|
+
fuzzySearch({ list, query: "1" });
|
|
103
|
+
expect(reg).toHaveBeenCalledTimes(1);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it("should support ignoring whitespace", () => {
|
|
107
|
+
const item1 = "Lorem ipsum";
|
|
108
|
+
const item2 = "another item";
|
|
109
|
+
const item3 = "in this string";
|
|
110
|
+
const item4 = "not interested, mate";
|
|
111
|
+
const item5 = "not in my house";
|
|
112
|
+
const list = [item1, item2, item3, item4, item5];
|
|
113
|
+
|
|
114
|
+
expect(
|
|
115
|
+
fuzzySearch({
|
|
116
|
+
list,
|
|
117
|
+
query: "ti",
|
|
118
|
+
whitespace: "ignore",
|
|
119
|
+
})
|
|
120
|
+
).toEqual([item2, item3, item4, item5]);
|
|
121
|
+
|
|
122
|
+
expect(
|
|
123
|
+
fuzzySearch({
|
|
124
|
+
list,
|
|
125
|
+
query: "t i",
|
|
126
|
+
whitespace: "ignore",
|
|
127
|
+
})
|
|
128
|
+
).toEqual([item2, item3, item4, item5]);
|
|
129
|
+
|
|
130
|
+
expect(
|
|
131
|
+
fuzzySearch({
|
|
132
|
+
list,
|
|
133
|
+
query: "rem",
|
|
134
|
+
whitespace: "ignore",
|
|
135
|
+
})
|
|
136
|
+
).toEqual([item1, item2]);
|
|
137
|
+
expect(
|
|
138
|
+
fuzzySearch({
|
|
139
|
+
list,
|
|
140
|
+
query: "tem",
|
|
141
|
+
whitespace: "ignore",
|
|
142
|
+
})
|
|
143
|
+
).toEqual([item2]);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it("should return the first match when the is set to search", () => {
|
|
147
|
+
expect(
|
|
148
|
+
fuzzySearch({
|
|
149
|
+
list: NON_DEPRECATED_STRING_PROPERTY_NAMES,
|
|
150
|
+
query: "ad",
|
|
151
|
+
type: "search",
|
|
152
|
+
})
|
|
153
|
+
).toBe("charCodeAt");
|
|
154
|
+
expect(
|
|
155
|
+
fuzzySearch({
|
|
156
|
+
list: NON_DEPRECATED_STRING_PROPERTY_NAMES,
|
|
157
|
+
query: "add",
|
|
158
|
+
type: "search",
|
|
159
|
+
})
|
|
160
|
+
).toBe("padEnd");
|
|
161
|
+
expect(
|
|
162
|
+
fuzzySearch({
|
|
163
|
+
list: NON_DEPRECATED_STRING_PROPERTY_NAMES,
|
|
164
|
+
query: "addition",
|
|
165
|
+
type: "search",
|
|
166
|
+
})
|
|
167
|
+
).toBe(undefined);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { expect, describe, it } from "@jest/globals";
|
|
2
|
+
import { toSearchQuery } from "../toSearchQuery.js";
|
|
3
|
+
|
|
4
|
+
describe("toSearchQuery", () => {
|
|
5
|
+
it("should lowercase the string and keep whitespace by default", () => {
|
|
6
|
+
expect(toSearchQuery("")).toBe("");
|
|
7
|
+
expect(toSearchQuery("Hello, World!")).toBe("hello, world!");
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it("should support ignoring whitespace by removing it all", () => {
|
|
11
|
+
expect(toSearchQuery(" Hell o, Wor ld! ", "ignore")).toBe(
|
|
12
|
+
"hello,world!"
|
|
13
|
+
);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it("should support removing leading and trailing whitespace by setting the whitespace to trim", () => {
|
|
17
|
+
expect(toSearchQuery(" Hell o, Wor ld! ", "trim")).toBe(
|
|
18
|
+
"hell o, wor ld!"
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
});
|