@react-md/core 1.0.0-next.16 → 1.0.0-next.17
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/_box-shadows.scss +76 -0
- package/dist/_colors.scss +279 -277
- package/dist/_core.scss +107 -16
- package/dist/_object-fit.scss +86 -0
- package/dist/_utils.scss +246 -72
- package/dist/app-bar/AppBar.d.ts +1 -90
- package/dist/app-bar/AppBar.js +1 -40
- package/dist/app-bar/AppBar.js.map +1 -1
- package/dist/app-bar/AppBarTitle.d.ts +1 -27
- package/dist/app-bar/AppBarTitle.js +1 -15
- package/dist/app-bar/AppBarTitle.js.map +1 -1
- package/dist/app-bar/_app-bar.scss +156 -25
- package/dist/app-bar/styles.d.ts +117 -0
- package/dist/app-bar/styles.js +55 -0
- package/dist/app-bar/styles.js.map +1 -0
- package/dist/autocomplete/Autocomplete.d.ts +8 -79
- package/dist/autocomplete/Autocomplete.js +112 -83
- package/dist/autocomplete/Autocomplete.js.map +1 -1
- package/dist/autocomplete/AutocompleteChip.d.ts +8 -0
- package/dist/autocomplete/AutocompleteChip.js +34 -0
- package/dist/autocomplete/AutocompleteChip.js.map +1 -0
- package/dist/autocomplete/AutocompleteCircularProgress.d.ts +5 -11
- package/dist/autocomplete/AutocompleteCircularProgress.js +4 -0
- package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
- package/dist/autocomplete/AutocompleteClearButton.d.ts +9 -0
- package/dist/autocomplete/AutocompleteClearButton.js +29 -0
- package/dist/autocomplete/AutocompleteClearButton.js.map +1 -0
- package/dist/autocomplete/AutocompleteDropdownButton.d.ts +4 -26
- package/dist/autocomplete/AutocompleteDropdownButton.js +5 -1
- package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
- package/dist/autocomplete/AutocompleteListboxChildren.d.ts +22 -0
- package/dist/autocomplete/AutocompleteListboxChildren.js +37 -0
- package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -0
- package/dist/autocomplete/_autocomplete.scss +362 -34
- package/dist/autocomplete/autocompleteStyles.d.ts +22 -0
- package/dist/autocomplete/autocompleteStyles.js +17 -8
- package/dist/autocomplete/autocompleteStyles.js.map +1 -1
- package/dist/autocomplete/defaults.d.ts +9 -9
- package/dist/autocomplete/defaults.js +13 -13
- package/dist/autocomplete/defaults.js.map +1 -1
- package/dist/autocomplete/types.d.ts +554 -56
- package/dist/autocomplete/types.js.map +1 -1
- package/dist/autocomplete/useAutocomplete.d.ts +22 -0
- package/dist/autocomplete/useAutocomplete.js +281 -0
- package/dist/autocomplete/useAutocomplete.js.map +1 -0
- package/dist/autocomplete/utils.d.ts +81 -0
- package/dist/autocomplete/utils.js +108 -0
- package/dist/autocomplete/utils.js.map +1 -0
- package/dist/avatar/_avatar.scss +93 -2
- package/dist/badge/Badge.d.ts +1 -20
- package/dist/badge/Badge.js +1 -14
- package/dist/badge/Badge.js.map +1 -1
- package/dist/badge/_badge.scss +90 -3
- package/dist/badge/styles.d.ts +26 -0
- package/dist/badge/styles.js +18 -0
- package/dist/badge/styles.js.map +1 -0
- package/dist/box/Box.js +2 -1
- package/dist/box/Box.js.map +1 -1
- package/dist/box/_box.scss +130 -17
- package/dist/box/styles.d.ts +6 -0
- package/dist/box/styles.js +2 -1
- package/dist/box/styles.js.map +1 -1
- package/dist/button/AsyncButton.d.ts +1 -1
- package/dist/button/AsyncButton.js.map +1 -1
- package/dist/button/Button.d.ts +2 -1
- package/dist/button/Button.js +2 -1
- package/dist/button/Button.js.map +1 -1
- package/dist/button/_button.scss +157 -25
- package/dist/card/Card.d.ts +16 -0
- package/dist/card/Card.js +11 -3
- package/dist/card/Card.js.map +1 -1
- package/dist/card/ClickableCard.d.ts +2 -1
- package/dist/card/ClickableCard.js +5 -2
- package/dist/card/ClickableCard.js.map +1 -1
- package/dist/card/_card.scss +90 -19
- package/dist/card/styles.d.ts +0 -7
- package/dist/card/styles.js +2 -3
- package/dist/card/styles.js.map +1 -1
- package/dist/chip/Chip.d.ts +2 -1
- package/dist/chip/Chip.js +2 -1
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/_chip.scss +42 -20
- package/dist/chip/styles.d.ts +12 -10
- package/dist/chip/styles.js.map +1 -1
- package/dist/cssUtils.js.map +1 -1
- package/dist/delegateEvent.d.ts +2 -2
- package/dist/delegateEvent.js.map +1 -1
- package/dist/dialog/Dialog.d.ts +8 -21
- package/dist/dialog/Dialog.js +27 -27
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/FixedDialog.d.ts +1 -3
- package/dist/dialog/FixedDialog.js +0 -8
- package/dist/dialog/FixedDialog.js.map +1 -1
- package/dist/dialog/_dialog.scss +67 -13
- package/dist/dialog/styles.d.ts +56 -0
- package/dist/dialog/styles.js +29 -2
- package/dist/dialog/styles.js.map +1 -1
- package/dist/divider/Divider.d.ts +0 -11
- package/dist/divider/Divider.js.map +1 -1
- package/dist/divider/_divider.scss +7 -1
- package/dist/divider/styles.d.ts +11 -0
- package/dist/divider/styles.js.map +1 -1
- package/dist/draggable/useDraggable.d.ts +6 -6
- package/dist/draggable/useDraggable.js.map +1 -1
- package/dist/draggable/utils.d.ts +3 -3
- package/dist/draggable/utils.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanel.d.ts +1 -1
- package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
- package/dist/expansion-panel/_expansion-panel.scss +5 -1
- package/dist/expansion-panel/useExpansionPanels.js +12 -24
- package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
- package/dist/{form → files}/FileInput.d.ts +3 -6
- package/dist/{form → files}/FileInput.js +3 -6
- package/dist/files/FileInput.js.map +1 -0
- package/dist/files/_files.scss +22 -0
- package/dist/files/styles.d.ts +5 -0
- package/dist/files/styles.js +7 -0
- package/dist/files/styles.js.map +1 -0
- package/dist/{form → files}/useFileUpload.d.ts +7 -9
- package/dist/{form → files}/useFileUpload.js +5 -7
- package/dist/files/useFileUpload.js.map +1 -0
- package/dist/files/utils.d.ts +169 -0
- package/dist/files/utils.js +114 -0
- package/dist/files/utils.js.map +1 -0
- package/dist/{form/fileUtils.d.ts → files/validation.d.ts} +9 -174
- package/dist/{form/fileUtils.js → files/validation.js} +9 -134
- package/dist/files/validation.js.map +1 -0
- package/dist/focus/useFocusContainer.d.ts +2 -2
- package/dist/focus/useFocusContainer.js.map +1 -1
- package/dist/focus/utils.js.map +1 -1
- package/dist/form/FormMessage.js.map +1 -1
- package/dist/form/FormMessageContainer.js +4 -2
- package/dist/form/FormMessageContainer.js.map +1 -1
- package/dist/form/InputToggle.d.ts +2 -1
- package/dist/form/InputToggle.js +2 -1
- package/dist/form/InputToggle.js.map +1 -1
- package/dist/form/InputToggleIcon.js.map +1 -1
- package/dist/form/Label.js +2 -2
- package/dist/form/Label.js.map +1 -1
- package/dist/form/Listbox.d.ts +24 -0
- package/dist/form/Listbox.js +46 -0
- package/dist/form/Listbox.js.map +1 -0
- package/dist/form/ListboxProvider.d.ts +21 -0
- package/dist/form/{useListboxProvider.js → ListboxProvider.js} +1 -1
- package/dist/form/ListboxProvider.js.map +1 -0
- package/dist/form/MenuItemTextField.js +1 -2
- package/dist/form/MenuItemTextField.js.map +1 -1
- package/dist/form/NativeSelect.js +7 -4
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Option.d.ts +49 -10
- package/dist/form/Option.js +11 -9
- package/dist/form/Option.js.map +1 -1
- package/dist/form/Password.js.map +1 -1
- package/dist/form/Select.d.ts +2 -2
- package/dist/form/Select.js +81 -85
- package/dist/form/Select.js.map +1 -1
- package/dist/form/Slider.d.ts +4 -4
- package/dist/form/Slider.js +6 -2
- package/dist/form/Slider.js.map +1 -1
- package/dist/form/SliderThumb.d.ts +3 -3
- package/dist/form/SliderThumb.js.map +1 -1
- package/dist/form/SliderValueMarks.d.ts +2 -2
- package/dist/form/SliderValueMarks.js.map +1 -1
- package/dist/form/SliderValueTooltip.js.map +1 -1
- package/dist/form/TextArea.js +1 -2
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextField.js +1 -2
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/TextFieldContainer.js +1 -2
- package/dist/form/TextFieldContainer.js.map +1 -1
- package/dist/form/_form.scss +186 -121
- package/dist/form/formMessageContainerStyles.d.ts +10 -0
- package/dist/form/formMessageContainerStyles.js +11 -0
- package/dist/form/formMessageContainerStyles.js.map +1 -0
- package/dist/form/inputToggleStyles.js.map +1 -1
- package/dist/form/optionStyles.d.ts +1 -0
- package/dist/form/optionStyles.js +2 -2
- package/dist/form/optionStyles.js.map +1 -1
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/sliderUtils.d.ts +1 -1
- package/dist/form/sliderUtils.js.map +1 -1
- package/dist/form/textFieldContainerStyles.d.ts +0 -2
- package/dist/form/textFieldContainerStyles.js +1 -2
- package/dist/form/textFieldContainerStyles.js.map +1 -1
- package/dist/form/types.d.ts +3 -10
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCheckboxGroup.d.ts +17 -17
- package/dist/form/useCheckboxGroup.js +9 -17
- package/dist/form/useCheckboxGroup.js.map +1 -1
- package/dist/form/useCombobox.d.ts +56 -21
- package/dist/form/useCombobox.js +19 -4
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useEditableCombobox.d.ts +24 -4
- package/dist/form/useEditableCombobox.js +5 -0
- package/dist/form/useEditableCombobox.js.map +1 -1
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useRadioGroup.d.ts +6 -6
- package/dist/form/useRadioGroup.js.map +1 -1
- package/dist/form/useResizingTextArea.js.map +1 -1
- package/dist/form/useSelectCombobox.d.ts +3 -4
- package/dist/form/useSelectCombobox.js.map +1 -1
- package/dist/form/useTextField.d.ts +1 -1
- package/dist/form/useTextField.js.map +1 -1
- package/dist/form/useTextFieldContainerAddons.js.map +1 -1
- package/dist/hoverMode/useHoverMode.d.ts +3 -3
- package/dist/hoverMode/useHoverMode.js.map +1 -1
- package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
- package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
- package/dist/icon/_icon.scss +151 -2
- package/dist/icon/iconConfig.d.ts +10 -0
- package/dist/icon/iconConfig.js +7 -0
- package/dist/icon/iconConfig.js.map +1 -1
- package/dist/icon/materialConfig.js.map +1 -1
- package/dist/icon/styles.js.map +1 -1
- package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
- package/dist/interaction/UserInteractionModeProvider.js +12 -8
- package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
- package/dist/interaction/types.d.ts +20 -2
- package/dist/interaction/types.js.map +1 -1
- package/dist/interaction/useElementInteraction.d.ts +7 -1
- package/dist/interaction/useElementInteraction.js +1 -2
- package/dist/interaction/useElementInteraction.js.map +1 -1
- package/dist/interaction/utils.d.ts +2 -2
- package/dist/interaction/utils.js +2 -2
- package/dist/interaction/utils.js.map +1 -1
- package/dist/layout/LayoutWindowSplitter.js.map +1 -1
- package/dist/layout/_layout.scss +23 -10
- package/dist/layout/useExpandableLayout.d.ts +3 -3
- package/dist/layout/useExpandableLayout.js.map +1 -1
- package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
- package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
- package/dist/layout/useTemporaryLayout.d.ts +2 -2
- package/dist/layout/useTemporaryLayout.js.map +1 -1
- package/dist/link/SkipToMainContent.js.map +1 -1
- package/dist/list/ListItem.d.ts +2 -1
- package/dist/list/ListItem.js +2 -1
- package/dist/list/ListItem.js.map +1 -1
- package/dist/list/ListItemChildren.js.map +1 -1
- package/dist/list/ListItemLink.d.ts +2 -1
- package/dist/list/ListItemLink.js +2 -1
- package/dist/list/ListItemLink.js.map +1 -1
- package/dist/list/_list.scss +6 -5
- package/dist/media-queries/_media-queries.scss +12 -0
- package/dist/media-queries/appSize.js.map +1 -1
- package/dist/media-queries/useMediaQuery.js +3 -1
- package/dist/media-queries/useMediaQuery.js.map +1 -1
- package/dist/menu/DropdownMenu.js.map +1 -1
- package/dist/menu/Menu.d.ts +8 -3
- package/dist/menu/Menu.js +2 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuItemButton.js +6 -2
- package/dist/menu/MenuItemButton.js.map +1 -1
- package/dist/menu/useContextMenu.d.ts +3 -3
- package/dist/menu/useContextMenu.js.map +1 -1
- package/dist/movement/types.d.ts +5 -5
- package/dist/movement/types.js.map +1 -1
- package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
- package/dist/navigation/CollapsibleNavGroup.js +3 -4
- package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
- package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
- package/dist/navigation/DefaultNavigationRenderer.js +6 -2
- package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
- package/dist/navigation/NavItemButton.d.ts +1 -1
- package/dist/navigation/NavItemButton.js +1 -0
- package/dist/navigation/NavItemButton.js.map +1 -1
- package/dist/navigation/NavItemLink.d.ts +3 -2
- package/dist/navigation/NavItemLink.js +6 -2
- package/dist/navigation/NavItemLink.js.map +1 -1
- package/dist/navigation/NavSubheader.d.ts +2 -3
- package/dist/navigation/NavSubheader.js.map +1 -1
- package/dist/navigation/Navigation.d.ts +1 -1
- package/dist/navigation/Navigation.js.map +1 -1
- package/dist/navigation/_navigation.scss +6 -5
- package/dist/navigation/types.d.ts +54 -6
- package/dist/navigation/types.js.map +1 -1
- package/dist/navigation/useActiveHeadingId.d.ts +1 -1
- package/dist/navigation/useActiveHeadingId.js.map +1 -1
- package/dist/navigation/useNavigationExpansion.d.ts +104 -0
- package/dist/navigation/useNavigationExpansion.js +77 -0
- package/dist/navigation/useNavigationExpansion.js.map +1 -0
- package/dist/navigation/utils.d.ts +13 -0
- package/dist/navigation/utils.js +36 -0
- package/dist/navigation/utils.js.map +1 -0
- package/dist/objectFit.d.ts +69 -0
- package/dist/objectFit.js +52 -0
- package/dist/objectFit.js.map +1 -0
- package/dist/overlay/_overlay.scss +2 -1
- package/dist/positioning/useFixedPositioning.d.ts +17 -4
- package/dist/positioning/useFixedPositioning.js +10 -5
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/positioning/utils.js.map +1 -1
- package/dist/progress/LinearProgress.js.map +1 -1
- package/dist/progress/_progress.scss +20 -14
- package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
- package/dist/responsive-item/ResponsiveItem.js +68 -0
- package/dist/responsive-item/ResponsiveItem.js.map +1 -0
- package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
- package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
- package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
- package/dist/responsive-item/_responsive-item.scss +110 -133
- package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
- package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
- package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
- package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
- package/dist/responsive-item/responsiveItemStyles.js +15 -0
- package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
- package/dist/scroll/useScrollLock.d.ts +5 -0
- package/dist/scroll/useScrollLock.js.map +1 -1
- package/dist/searching/utils.d.ts +2 -2
- package/dist/searching/utils.js.map +1 -1
- package/dist/segmented-button/SegmentedButton.d.ts +2 -1
- package/dist/segmented-button/SegmentedButton.js +2 -1
- package/dist/segmented-button/SegmentedButton.js.map +1 -1
- package/dist/segmented-button/_segmented-button.scss +6 -6
- package/dist/sheet/_sheet.scss +18 -6
- package/dist/snackbar/ToastManager.js +15 -5
- package/dist/snackbar/ToastManager.js.map +1 -1
- package/dist/snackbar/_snackbar.scss +30 -17
- package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
- package/dist/snackbar/useCurrentToastActions.js.map +1 -1
- package/dist/table/_table.scss +15 -3
- package/dist/table/tableCellStyles.d.ts +7 -3
- package/dist/table/tableCellStyles.js +2 -2
- package/dist/table/tableCellStyles.js.map +1 -1
- package/dist/tabs/Tab.d.ts +2 -1
- package/dist/tabs/Tab.js +2 -1
- package/dist/tabs/Tab.js.map +1 -1
- package/dist/tabs/TabList.d.ts +2 -2
- package/dist/tabs/TabList.js.map +1 -1
- package/dist/tabs/TabListScrollButton.d.ts +1 -1
- package/dist/tabs/TabListScrollButton.js +1 -1
- package/dist/tabs/TabListScrollButton.js.map +1 -1
- package/dist/tabs/_tabs.scss +30 -9
- package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
- package/dist/tabs/getTabListScrollToOptions.js +19 -0
- package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
- package/dist/tabs/tabStyles.d.ts +3 -0
- package/dist/tabs/tabStyles.js.map +1 -1
- package/dist/tabs/useTabList.d.ts +1 -8
- package/dist/tabs/useTabList.js +1 -0
- package/dist/tabs/useTabList.js.map +1 -1
- package/dist/tabs/useTabs.d.ts +6 -6
- package/dist/tabs/useTabs.js.map +1 -1
- package/dist/tabs/utils.d.ts +0 -18
- package/dist/tabs/utils.js +0 -15
- package/dist/tabs/utils.js.map +1 -1
- package/dist/test-utils/matchMedia.d.ts +1 -1
- package/dist/test-utils/matchMedia.js +4 -4
- package/dist/test-utils/matchMedia.js.map +1 -1
- package/dist/test-utils/polyfills/TextDecoder.js +0 -1
- package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
- package/dist/test-utils/timers.d.ts +9 -5
- package/dist/test-utils/timers.js +5 -5
- package/dist/test-utils/timers.js.map +1 -1
- package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
- package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
- package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
- package/dist/theme/ThemeProvider.js +3 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/_a11y.scss +77 -13
- package/dist/theme/_colors.scss +279 -277
- package/dist/theme/_theme.scss +308 -37
- package/dist/theme/isColorScheme.d.ts +16 -0
- package/dist/theme/isColorScheme.js +19 -0
- package/dist/theme/isColorScheme.js.map +1 -0
- package/dist/theme/types.d.ts +53 -1
- package/dist/theme/types.js +1 -23
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/useCSSVariables.d.ts +2 -19
- package/dist/theme/useCSSVariables.js.map +1 -1
- package/dist/theme/useColorScheme.d.ts +1 -35
- package/dist/theme/useColorScheme.js.map +1 -1
- package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
- package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
- package/dist/theme/useColorSchemeProvider.d.ts +1 -1
- package/dist/theme/useColorSchemeProvider.js +1 -1
- package/dist/theme/useColorSchemeProvider.js.map +1 -1
- package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
- package/dist/theme/usePrefersDarkScheme.js.map +1 -0
- package/dist/theme/utils.js.map +1 -1
- package/dist/tooltip/useTooltip.d.ts +14 -9
- package/dist/tooltip/useTooltip.js +2 -1
- package/dist/tooltip/useTooltip.js.map +1 -1
- package/dist/transition/_transition.scss +16 -9
- package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
- package/dist/transition/types.d.ts +1 -1
- package/dist/transition/types.js.map +1 -1
- package/dist/transition/useCarousel.d.ts +3 -3
- package/dist/transition/useCarousel.js.map +1 -1
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/useTransition.js +1 -0
- package/dist/transition/useTransition.js.map +1 -1
- package/dist/transition/utils.js.map +1 -1
- package/dist/tree/TreeItem.d.ts +2 -1
- package/dist/tree/TreeItem.js +4 -3
- package/dist/tree/TreeItem.js.map +1 -1
- package/dist/tree/TreeItemExpander.js.map +1 -1
- package/dist/tree/_tree.scss +8 -6
- package/dist/tree/useTreeExpansion.d.ts +1 -1
- package/dist/tree/useTreeExpansion.js +6 -18
- package/dist/tree/useTreeExpansion.js.map +1 -1
- package/dist/tree/useTreeSelection.d.ts +1 -1
- package/dist/tree/useTreeSelection.js +7 -25
- package/dist/tree/useTreeSelection.js.map +1 -1
- package/dist/tree/utils.d.ts +1 -1
- package/dist/tree/utils.js.map +1 -1
- package/dist/types.d.ts +12 -4
- package/dist/types.js.map +1 -1
- package/dist/typography/WritingDirectionProvider.d.ts +1 -1
- package/dist/typography/WritingDirectionProvider.js.map +1 -1
- package/dist/typography/_typography.scss +94 -37
- package/dist/typography/typographyStyles.js.map +1 -1
- package/dist/useDebouncedFunction.d.ts +1 -5
- package/dist/useDebouncedFunction.js +3 -1
- package/dist/useDebouncedFunction.js.map +1 -1
- package/dist/useDropzone.d.ts +4 -4
- package/dist/useDropzone.js.map +1 -1
- package/dist/useEnsuredId.js.map +1 -1
- package/dist/useIntersectionObserver.d.ts +5 -5
- package/dist/useIntersectionObserver.js.map +1 -1
- package/dist/useLocalStorage.d.ts +3 -3
- package/dist/useLocalStorage.js +1 -1
- package/dist/useLocalStorage.js.map +1 -1
- package/dist/useMutationObserver.d.ts +1 -1
- package/dist/useMutationObserver.js.map +1 -1
- package/dist/useOrientation.js +3 -1
- package/dist/useOrientation.js.map +1 -1
- package/dist/usePageInactive.d.ts +2 -2
- package/dist/usePageInactive.js.map +1 -1
- package/dist/useReadonlySet.d.ts +76 -0
- package/dist/useReadonlySet.js +72 -0
- package/dist/useReadonlySet.js.map +1 -0
- package/dist/useResizeListener.d.ts +1 -1
- package/dist/useResizeListener.js.map +1 -1
- package/dist/useThrottledFunction.d.ts +1 -5
- package/dist/useThrottledFunction.js +3 -1
- package/dist/useThrottledFunction.js.map +1 -1
- package/dist/useToggle.d.ts +3 -3
- package/dist/useToggle.js.map +1 -1
- package/dist/utils/RenderRecursively.d.ts +1 -1
- package/dist/utils/RenderRecursively.js.map +1 -1
- package/dist/utils/alphaNumericSort.d.ts +1 -1
- package/dist/utils/alphaNumericSort.js.map +1 -1
- package/dist/utils/bem.js.map +1 -1
- package/dist/utils/debounce.d.ts +5 -0
- package/dist/utils/debounce.js +17 -0
- package/dist/utils/debounce.js.map +1 -0
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/parseCssLengthUnit.js.map +1 -1
- package/dist/utils/throttle.d.ts +5 -0
- package/dist/utils/throttle.js +30 -0
- package/dist/utils/throttle.js.map +1 -0
- package/dist/utils/wait.js +3 -1
- package/dist/utils/wait.js.map +1 -1
- package/dist/window-splitter/WindowSplitter.d.ts +37 -15
- package/dist/window-splitter/WindowSplitter.js +38 -17
- package/dist/window-splitter/WindowSplitter.js.map +1 -1
- package/dist/window-splitter/_window-splitter.scss +32 -14
- package/dist/window-splitter/styles.d.ts +14 -0
- package/dist/window-splitter/styles.js +18 -0
- package/dist/window-splitter/styles.js.map +1 -0
- package/package.json +24 -23
- package/src/app-bar/AppBar.tsx +1 -170
- package/src/app-bar/AppBarTitle.tsx +1 -44
- package/src/app-bar/styles.ts +206 -0
- package/src/autocomplete/Autocomplete.tsx +194 -211
- package/src/autocomplete/AutocompleteChip.tsx +48 -0
- package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
- package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
- package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
- package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
- package/src/autocomplete/autocompleteStyles.ts +48 -9
- package/src/autocomplete/defaults.ts +26 -17
- package/src/autocomplete/types.ts +744 -61
- package/src/autocomplete/useAutocomplete.ts +428 -0
- package/src/autocomplete/utils.ts +211 -0
- package/src/badge/Badge.tsx +1 -39
- package/src/badge/styles.ts +45 -0
- package/src/box/Box.tsx +11 -9
- package/src/box/styles.ts +14 -5
- package/src/button/AsyncButton.tsx +1 -1
- package/src/button/Button.tsx +5 -1
- package/src/card/Card.tsx +35 -4
- package/src/card/ClickableCard.tsx +9 -2
- package/src/card/styles.ts +1 -10
- package/src/chip/Chip.tsx +6 -1
- package/src/chip/styles.ts +12 -10
- package/src/delegateEvent.ts +5 -5
- package/src/dialog/Dialog.tsx +48 -61
- package/src/dialog/FixedDialog.tsx +1 -11
- package/src/dialog/styles.ts +97 -0
- package/src/divider/Divider.tsx +0 -12
- package/src/divider/styles.ts +12 -0
- package/src/draggable/useDraggable.ts +17 -10
- package/src/draggable/utils.ts +3 -3
- package/src/expansion-panel/ExpansionPanel.tsx +1 -1
- package/src/expansion-panel/useExpansionPanels.ts +18 -27
- package/src/{form → files}/FileInput.tsx +7 -15
- package/src/files/styles.ts +10 -0
- package/src/{form → files}/useFileUpload.ts +30 -34
- package/src/files/utils.ts +234 -0
- package/src/{form/fileUtils.ts → files/validation.ts} +13 -242
- package/src/focus/useFocusContainer.ts +16 -8
- package/src/form/FormMessageContainer.tsx +2 -2
- package/src/form/InputToggle.tsx +5 -1
- package/src/form/Label.tsx +18 -18
- package/src/form/Listbox.tsx +87 -0
- package/src/form/ListboxProvider.ts +37 -0
- package/src/form/MenuItemTextField.tsx +1 -2
- package/src/form/NativeSelect.tsx +14 -10
- package/src/form/Option.tsx +74 -22
- package/src/form/Select.tsx +89 -85
- package/src/form/Slider.tsx +14 -11
- package/src/form/SliderThumb.tsx +4 -4
- package/src/form/SliderValueMarks.tsx +4 -4
- package/src/form/TextArea.tsx +6 -8
- package/src/form/TextField.tsx +0 -2
- package/src/form/TextFieldContainer.tsx +9 -11
- package/src/form/formMessageContainerStyles.ts +22 -0
- package/src/form/optionStyles.ts +7 -2
- package/src/form/sliderUtils.ts +1 -1
- package/src/form/textFieldContainerStyles.ts +9 -14
- package/src/form/types.ts +3 -11
- package/src/form/useCheckboxGroup.ts +28 -36
- package/src/form/useCombobox.ts +86 -38
- package/src/form/useEditableCombobox.ts +43 -8
- package/src/form/useRadioGroup.ts +6 -6
- package/src/form/useSelectCombobox.ts +4 -4
- package/src/form/useTextField.ts +1 -1
- package/src/hoverMode/useHoverMode.ts +3 -3
- package/src/hoverMode/useHoverModeProvider.ts +4 -4
- package/src/icon/iconConfig.tsx +12 -0
- package/src/interaction/UserInteractionModeProvider.tsx +12 -8
- package/src/interaction/types.ts +21 -2
- package/src/interaction/useElementInteraction.tsx +9 -2
- package/src/interaction/utils.ts +7 -7
- package/src/layout/useExpandableLayout.ts +3 -3
- package/src/layout/useLayoutAppBarHeight.ts +3 -4
- package/src/layout/useTemporaryLayout.ts +2 -2
- package/src/list/ListItem.tsx +5 -1
- package/src/list/ListItemLink.tsx +5 -1
- package/src/media-queries/useMediaQuery.ts +2 -1
- package/src/menu/Menu.tsx +11 -3
- package/src/menu/MenuItemButton.tsx +7 -1
- package/src/menu/useContextMenu.ts +3 -3
- package/src/movement/types.ts +5 -5
- package/src/navigation/CollapsibleNavGroup.tsx +16 -8
- package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
- package/src/navigation/NavItemButton.tsx +2 -1
- package/src/navigation/NavItemLink.tsx +11 -3
- package/src/navigation/NavSubheader.tsx +1 -1
- package/src/navigation/Navigation.tsx +1 -1
- package/src/navigation/types.ts +60 -10
- package/src/navigation/useActiveHeadingId.ts +1 -1
- package/src/navigation/useNavigationExpansion.ts +170 -0
- package/src/navigation/utils.ts +47 -0
- package/src/objectFit.ts +88 -0
- package/src/positioning/useFixedPositioning.ts +34 -11
- package/src/responsive-item/ResponsiveItem.tsx +96 -0
- package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
- package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
- package/src/responsive-item/responsiveItemStyles.ts +81 -0
- package/src/scroll/useScrollLock.ts +6 -0
- package/src/searching/utils.ts +3 -3
- package/src/segmented-button/SegmentedButton.tsx +5 -1
- package/src/snackbar/ToastManager.tsx +16 -5
- package/src/snackbar/useCurrentToastActions.ts +5 -5
- package/src/table/tableCellStyles.ts +10 -6
- package/src/tabs/Tab.tsx +4 -1
- package/src/tabs/TabList.tsx +2 -2
- package/src/tabs/TabListScrollButton.tsx +4 -4
- package/src/tabs/getTabListScrollToOptions.ts +37 -0
- package/src/tabs/tabStyles.ts +4 -0
- package/src/tabs/useTabList.ts +2 -9
- package/src/tabs/useTabs.ts +6 -6
- package/src/tabs/utils.ts +0 -38
- package/src/test-utils/matchMedia.ts +5 -5
- package/src/test-utils/polyfills/TextDecoder.ts +0 -1
- package/src/test-utils/timers.ts +10 -7
- package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
- package/src/theme/ThemeProvider.tsx +3 -3
- package/src/theme/isColorScheme.ts +22 -0
- package/src/theme/types.ts +67 -1
- package/src/theme/useCSSVariables.ts +7 -30
- package/src/theme/useColorScheme.ts +1 -40
- package/src/theme/useColorSchemeMetaTag.ts +1 -1
- package/src/theme/useColorSchemeProvider.ts +2 -2
- package/src/tooltip/useTooltip.ts +17 -9
- package/src/transition/types.ts +1 -1
- package/src/transition/useCarousel.ts +3 -3
- package/src/transition/useTransition.ts +1 -0
- package/src/tree/TreeItem.tsx +7 -1
- package/src/tree/TreeItemExpander.tsx +1 -1
- package/src/tree/useTreeExpansion.ts +7 -25
- package/src/tree/useTreeSelection.ts +8 -32
- package/src/tree/utils.ts +6 -2
- package/src/types.ts +20 -4
- package/src/typography/WritingDirectionProvider.tsx +1 -1
- package/src/useDebouncedFunction.ts +4 -9
- package/src/useDropzone.ts +4 -4
- package/src/useIntersectionObserver.ts +5 -5
- package/src/useLocalStorage.ts +6 -6
- package/src/useMutationObserver.ts +1 -1
- package/src/useOrientation.ts +3 -1
- package/src/usePageInactive.ts +2 -2
- package/src/useReadonlySet.ts +122 -0
- package/src/useResizeListener.ts +1 -1
- package/src/useThrottledFunction.ts +6 -9
- package/src/useToggle.ts +3 -3
- package/src/utils/RenderRecursively.tsx +1 -1
- package/src/utils/alphaNumericSort.ts +1 -1
- package/src/utils/debounce.ts +22 -0
- package/src/utils/throttle.ts +38 -0
- package/src/utils/wait.ts +5 -1
- package/src/window-splitter/WindowSplitter.tsx +38 -43
- package/src/window-splitter/styles.ts +42 -0
- package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
- package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
- package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
- package/dist/dialog/DialogContainer.d.ts +0 -14
- package/dist/dialog/DialogContainer.js +0 -20
- package/dist/dialog/DialogContainer.js.map +0 -1
- package/dist/form/FileInput.js.map +0 -1
- package/dist/form/fileUtils.js.map +0 -1
- package/dist/form/useFileUpload.js.map +0 -1
- package/dist/form/useListboxProvider.d.ts +0 -31
- package/dist/form/useListboxProvider.js.map +0 -1
- package/dist/navigation/getHrefFromParents.d.ts +0 -5
- package/dist/navigation/getHrefFromParents.js +0 -13
- package/dist/navigation/getHrefFromParents.js.map +0 -1
- package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
- package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
- package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
- package/dist/responsive-item/styles.d.ts +0 -34
- package/dist/responsive-item/styles.js +0 -17
- package/dist/responsive-item/styles.js.map +0 -1
- package/dist/theme/usePrefersColorScheme.js.map +0 -1
- package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
- package/src/dialog/DialogContainer.tsx +0 -28
- package/src/form/useListboxProvider.ts +0 -45
- package/src/navigation/getHrefFromParents.ts +0 -15
- package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
- package/src/responsive-item/styles.ts +0 -58
- /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
- /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
package/src/form/SliderThumb.tsx
CHANGED
|
@@ -101,7 +101,7 @@ export interface SliderThumbPresentation {
|
|
|
101
101
|
*
|
|
102
102
|
* @defaultValue `() => ""`
|
|
103
103
|
*/
|
|
104
|
-
getValueText
|
|
104
|
+
getValueText?: (value: number) => string;
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
107
|
* Set this to `true` if the slider's thumb position should only update when
|
|
@@ -145,11 +145,11 @@ export interface SliderThumbProps
|
|
|
145
145
|
vertical: boolean;
|
|
146
146
|
onChange: ChangeEventHandler<HTMLInputElement>;
|
|
147
147
|
tooltipProps?: Partial<TooltipProps>;
|
|
148
|
-
getTooltipProps(
|
|
148
|
+
getTooltipProps: (
|
|
149
149
|
value: number,
|
|
150
150
|
isFirstThumb: boolean
|
|
151
|
-
)
|
|
152
|
-
getTooltipChildren(value: number, isFirstThumb: boolean)
|
|
151
|
+
) => Partial<TooltipProps> | undefined;
|
|
152
|
+
getTooltipChildren: (value: number, isFirstThumb: boolean) => ReactNode;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
/**
|
|
@@ -90,9 +90,9 @@ export interface SliderMarksOptions {
|
|
|
90
90
|
/**
|
|
91
91
|
* This can be used to override any styles for the specific mark.
|
|
92
92
|
*/
|
|
93
|
-
getMarkProps
|
|
93
|
+
getMarkProps?: (
|
|
94
94
|
options: SliderValueMarkState
|
|
95
|
-
)
|
|
95
|
+
) => HTMLAttributes<HTMLSpanElement> | undefined;
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* This can be used to override any styles for a specific mark's label or
|
|
@@ -116,9 +116,9 @@ export interface SliderMarksOptions {
|
|
|
116
116
|
* />
|
|
117
117
|
* ```
|
|
118
118
|
*/
|
|
119
|
-
getMarkLabelProps
|
|
119
|
+
getMarkLabelProps?: (
|
|
120
120
|
options: SliderValueMarkState
|
|
121
|
-
)
|
|
121
|
+
) => Partial<CustomizableSliderMarkLabelProps> | undefined;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
/**
|
package/src/form/TextArea.tsx
CHANGED
|
@@ -128,15 +128,14 @@ export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(
|
|
|
128
128
|
areaClassName,
|
|
129
129
|
resizeContainerProps,
|
|
130
130
|
resize = "auto",
|
|
131
|
-
dense
|
|
132
|
-
error
|
|
133
|
-
active
|
|
134
|
-
inline: propInline
|
|
135
|
-
stretch = false,
|
|
131
|
+
dense,
|
|
132
|
+
error,
|
|
133
|
+
active,
|
|
134
|
+
inline: propInline,
|
|
136
135
|
leftAddon,
|
|
137
136
|
rightAddon,
|
|
138
|
-
disableLeftAddonStyles
|
|
139
|
-
disableRightAddonStyles
|
|
137
|
+
disableLeftAddonStyles,
|
|
138
|
+
disableRightAddonStyles,
|
|
140
139
|
theme: propTheme,
|
|
141
140
|
underlineDirection: propUnderlineDirection,
|
|
142
141
|
messageProps,
|
|
@@ -267,7 +266,6 @@ export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(
|
|
|
267
266
|
dense={dense}
|
|
268
267
|
inline={inline}
|
|
269
268
|
active={active}
|
|
270
|
-
stretch={stretch}
|
|
271
269
|
readOnly={readOnly}
|
|
272
270
|
disabled={disabled}
|
|
273
271
|
leftAddon={leftAddon}
|
package/src/form/TextField.tsx
CHANGED
|
@@ -136,7 +136,6 @@ export const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
136
136
|
error,
|
|
137
137
|
active,
|
|
138
138
|
inline,
|
|
139
|
-
stretch,
|
|
140
139
|
leftAddon,
|
|
141
140
|
leftAddonProps,
|
|
142
141
|
rightAddon,
|
|
@@ -182,7 +181,6 @@ export const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
182
181
|
dense={dense}
|
|
183
182
|
inline={inline}
|
|
184
183
|
active={active}
|
|
185
|
-
stretch={stretch}
|
|
186
184
|
readOnly={readOnly}
|
|
187
185
|
disabled={disabled}
|
|
188
186
|
leftAddon={leftAddon}
|
|
@@ -33,20 +33,19 @@ export const TextFieldContainer = forwardRef<
|
|
|
33
33
|
const {
|
|
34
34
|
children,
|
|
35
35
|
className,
|
|
36
|
-
dense
|
|
37
|
-
error
|
|
38
|
-
label
|
|
39
|
-
active
|
|
40
|
-
inline
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
disabled = false,
|
|
36
|
+
dense,
|
|
37
|
+
error,
|
|
38
|
+
label,
|
|
39
|
+
active,
|
|
40
|
+
inline,
|
|
41
|
+
readOnly,
|
|
42
|
+
disabled,
|
|
44
43
|
leftAddon,
|
|
45
44
|
leftAddonProps,
|
|
46
|
-
disableLeftAddonStyles
|
|
45
|
+
disableLeftAddonStyles,
|
|
47
46
|
rightAddon,
|
|
48
47
|
rightAddonProps,
|
|
49
|
-
disableRightAddonStyles
|
|
48
|
+
disableRightAddonStyles,
|
|
50
49
|
theme: propTheme,
|
|
51
50
|
underlineDirection: propUnderlineDirection,
|
|
52
51
|
...remaining
|
|
@@ -68,7 +67,6 @@ export const TextFieldContainer = forwardRef<
|
|
|
68
67
|
label,
|
|
69
68
|
inline,
|
|
70
69
|
active,
|
|
71
|
-
stretch,
|
|
72
70
|
readOnly,
|
|
73
71
|
disabled,
|
|
74
72
|
className,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { cnb } from "cnbuilder";
|
|
2
|
+
import { bem } from "../utils/bem.js";
|
|
3
|
+
|
|
4
|
+
const styles = bem("rmd-form-message-container");
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @since 6.0.0
|
|
8
|
+
*/
|
|
9
|
+
export interface FormMessageContainerClassNameOptions {
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 6.0.0
|
|
15
|
+
*/
|
|
16
|
+
export function formMessageContainer(
|
|
17
|
+
options: FormMessageContainerClassNameOptions = {}
|
|
18
|
+
): string {
|
|
19
|
+
const { className } = options;
|
|
20
|
+
|
|
21
|
+
return cnb(styles(), className);
|
|
22
|
+
}
|
package/src/form/optionStyles.ts
CHANGED
|
@@ -10,13 +10,18 @@ export interface OptionClassNameOptions {
|
|
|
10
10
|
className?: string;
|
|
11
11
|
icon: boolean;
|
|
12
12
|
selected: boolean;
|
|
13
|
+
selectedClassName?: string;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* @since 6.0.0
|
|
17
18
|
*/
|
|
18
19
|
export function option(options: OptionClassNameOptions): string {
|
|
19
|
-
const { className, icon, selected } = options;
|
|
20
|
+
const { className, icon, selected, selectedClassName } = options;
|
|
20
21
|
|
|
21
|
-
return cnb(
|
|
22
|
+
return cnb(
|
|
23
|
+
styles({ icon, selected }),
|
|
24
|
+
selected && selectedClassName,
|
|
25
|
+
className
|
|
26
|
+
);
|
|
22
27
|
}
|
package/src/form/sliderUtils.ts
CHANGED
|
@@ -45,7 +45,7 @@ export const getJumpValue = (options: JumpOptions): number => {
|
|
|
45
45
|
* @internal
|
|
46
46
|
*/
|
|
47
47
|
type RequiredThumbProps = Pick<
|
|
48
|
-
DraggableImplementation
|
|
48
|
+
DraggableImplementation,
|
|
49
49
|
| "dragging"
|
|
50
50
|
| keyof DraggableMouseEventHandlers<HTMLElement>
|
|
51
51
|
| keyof DraggableTouchEventHandlers<HTMLElement>
|
|
@@ -31,9 +31,6 @@ export interface TextFieldContainerClassNameOptions
|
|
|
31
31
|
/** @defaultValue `false` */
|
|
32
32
|
inline?: boolean;
|
|
33
33
|
|
|
34
|
-
/** @defaultValue `false` */
|
|
35
|
-
stretch?: boolean;
|
|
36
|
-
|
|
37
34
|
/** @defaultValue `false` */
|
|
38
35
|
label?: boolean;
|
|
39
36
|
|
|
@@ -53,16 +50,15 @@ export function textFieldContainer(
|
|
|
53
50
|
const {
|
|
54
51
|
className,
|
|
55
52
|
theme = "outline",
|
|
56
|
-
dense
|
|
57
|
-
error
|
|
58
|
-
label
|
|
59
|
-
active
|
|
60
|
-
inline
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
rightAddon = false,
|
|
53
|
+
dense,
|
|
54
|
+
error,
|
|
55
|
+
label,
|
|
56
|
+
active,
|
|
57
|
+
inline,
|
|
58
|
+
readOnly,
|
|
59
|
+
disabled,
|
|
60
|
+
leftAddon,
|
|
61
|
+
rightAddon,
|
|
66
62
|
underlineDirection = "left",
|
|
67
63
|
} = options;
|
|
68
64
|
const underline = theme === "underline";
|
|
@@ -82,7 +78,6 @@ export function textFieldContainer(
|
|
|
82
78
|
styles({
|
|
83
79
|
error,
|
|
84
80
|
inline,
|
|
85
|
-
stretch,
|
|
86
81
|
filled,
|
|
87
82
|
outline,
|
|
88
83
|
disabled: disabled || readOnly,
|
package/src/form/types.ts
CHANGED
|
@@ -90,7 +90,7 @@ export interface FormComponentStates {
|
|
|
90
90
|
* @see https://html.spec.whatwg.org/multipage/forms.html#autofill
|
|
91
91
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values
|
|
92
92
|
*/
|
|
93
|
-
export type
|
|
93
|
+
export type AutocompleteAttributeValue =
|
|
94
94
|
| "off"
|
|
95
95
|
| "on"
|
|
96
96
|
| "name"
|
|
@@ -182,11 +182,11 @@ export interface UserAgentAutocompleteProps {
|
|
|
182
182
|
*
|
|
183
183
|
* @see https://html.spec.whatwg.org/multipage/forms.html#autofill
|
|
184
184
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values
|
|
185
|
-
* @see {@link
|
|
185
|
+
* @see {@link AutocompleteAttributeValue}
|
|
186
186
|
* @see {@link autoComplete}
|
|
187
187
|
* @see {@link UserAgentAutocompleteProps.name}
|
|
188
188
|
*/
|
|
189
|
-
autoCompleteValue?:
|
|
189
|
+
autoCompleteValue?: AutocompleteAttributeValue;
|
|
190
190
|
|
|
191
191
|
/**
|
|
192
192
|
* @see {@link autoCompleteValue}
|
|
@@ -472,14 +472,6 @@ export interface TextFieldContainerOptions
|
|
|
472
472
|
*/
|
|
473
473
|
inline?: boolean;
|
|
474
474
|
|
|
475
|
-
/**
|
|
476
|
-
* Set this to `true` if this component should stretch to fill a flex or grid
|
|
477
|
-
* container using `flex: 1 1 auto`.
|
|
478
|
-
*
|
|
479
|
-
* @defaultValue `false`
|
|
480
|
-
*/
|
|
481
|
-
stretch?: boolean;
|
|
482
|
-
|
|
483
475
|
/**
|
|
484
476
|
* This should generally be an icon or a button that will be placed before the
|
|
485
477
|
* `TextField` or `TextArea`.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useCallback, useRef
|
|
2
|
+
import { useCallback, useRef } from "react";
|
|
3
3
|
import { type UseStateInitializer, type UseStateSetter } from "../types.js";
|
|
4
|
+
import { useReadonlySet } from "../useReadonlySet.js";
|
|
4
5
|
|
|
5
6
|
const EMPTY_LIST = [] as const;
|
|
6
7
|
|
|
@@ -55,37 +56,37 @@ export interface CheckboxGroupOptions<V> {
|
|
|
55
56
|
|
|
56
57
|
/** @since 6.0.0 */
|
|
57
58
|
export interface CheckboxGroupImplementation<V extends string> {
|
|
58
|
-
reset()
|
|
59
|
+
reset: () => void;
|
|
59
60
|
checkedValues: ReadonlySet<V>;
|
|
60
61
|
setCheckedValues: UseStateSetter<ReadonlySet<V>>;
|
|
61
|
-
getCheckboxProps(value: V)
|
|
62
|
+
getCheckboxProps: (value: V) => {
|
|
62
63
|
name: string;
|
|
63
64
|
value: V;
|
|
64
65
|
checked: boolean;
|
|
65
|
-
onChange()
|
|
66
|
+
onChange: () => void;
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
/** @since 6.0.0 */
|
|
70
71
|
export interface IndeterminateCheckboxGroupImplementation<V extends string>
|
|
71
72
|
extends CheckboxGroupImplementation<V> {
|
|
72
|
-
getIndeterminateProps()
|
|
73
|
+
getIndeterminateProps: () => {
|
|
73
74
|
"aria-checked": "mixed" | undefined;
|
|
74
75
|
name: string;
|
|
75
76
|
checked: boolean;
|
|
76
77
|
indeterminate: boolean;
|
|
77
|
-
onChange()
|
|
78
|
+
onChange: () => void;
|
|
78
79
|
};
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
/** @since 6.0.0 */
|
|
82
83
|
export interface MenuItemCheckboxGroupImplementation<V extends string> {
|
|
83
|
-
reset()
|
|
84
|
+
reset: () => void;
|
|
84
85
|
checkedValues: ReadonlySet<V>;
|
|
85
86
|
setCheckedValues: UseStateSetter<ReadonlySet<V>>;
|
|
86
|
-
getCheckboxProps(value: V)
|
|
87
|
+
getCheckboxProps: (value: V) => {
|
|
87
88
|
checked: boolean;
|
|
88
|
-
onCheckedChange()
|
|
89
|
+
onCheckedChange: () => void;
|
|
89
90
|
};
|
|
90
91
|
}
|
|
91
92
|
|
|
@@ -93,33 +94,33 @@ export interface MenuItemCheckboxGroupImplementation<V extends string> {
|
|
|
93
94
|
export interface IndeterminateMenuItemCheckboxGroupImplementation<
|
|
94
95
|
V extends string,
|
|
95
96
|
> extends MenuItemCheckboxGroupImplementation<V> {
|
|
96
|
-
getIndeterminateProps()
|
|
97
|
+
getIndeterminateProps: () => {
|
|
97
98
|
"aria-checked": "mixed" | undefined;
|
|
98
99
|
checked: boolean;
|
|
99
100
|
indeterminate: boolean;
|
|
100
|
-
onCheckedChange()
|
|
101
|
+
onCheckedChange: () => void;
|
|
101
102
|
};
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
/** @since 6.0.0 */
|
|
105
106
|
export interface CombinedCheckboxGroupReturnValue<V extends string> {
|
|
106
|
-
reset()
|
|
107
|
+
reset: () => void;
|
|
107
108
|
checkedValues: ReadonlySet<V>;
|
|
108
109
|
setCheckedValues: UseStateSetter<ReadonlySet<V>>;
|
|
109
|
-
getCheckboxProps(value: V)
|
|
110
|
+
getCheckboxProps: (value: V) => {
|
|
110
111
|
name?: string;
|
|
111
112
|
value?: V;
|
|
112
113
|
checked: boolean;
|
|
113
|
-
onChange
|
|
114
|
-
onCheckedChange
|
|
114
|
+
onChange?: () => void;
|
|
115
|
+
onCheckedChange?: () => void;
|
|
115
116
|
};
|
|
116
|
-
getIndeterminateProps
|
|
117
|
+
getIndeterminateProps?: () => {
|
|
117
118
|
"aria-checked": "mixed" | undefined;
|
|
118
119
|
name?: string;
|
|
119
120
|
checked: boolean;
|
|
120
121
|
indeterminate: boolean;
|
|
121
|
-
onChange
|
|
122
|
-
onCheckedChange
|
|
122
|
+
onChange?: () => void;
|
|
123
|
+
onCheckedChange?: () => void;
|
|
123
124
|
};
|
|
124
125
|
}
|
|
125
126
|
|
|
@@ -266,12 +267,12 @@ export function useCheckboxGroup<V extends string>(
|
|
|
266
267
|
values,
|
|
267
268
|
defaultCheckedValues = EMPTY_LIST,
|
|
268
269
|
} = options;
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
270
|
+
const {
|
|
271
|
+
value: checkedValues,
|
|
272
|
+
setValue: setCheckedValues,
|
|
273
|
+
toggleValue,
|
|
274
|
+
} = useReadonlySet({
|
|
275
|
+
defaultValue: defaultCheckedValues,
|
|
275
276
|
});
|
|
276
277
|
const initial = useRef(checkedValues);
|
|
277
278
|
|
|
@@ -287,7 +288,7 @@ export function useCheckboxGroup<V extends string>(
|
|
|
287
288
|
checked,
|
|
288
289
|
indeterminate,
|
|
289
290
|
[menu ? "onCheckedChange" : "onChange"]() {
|
|
290
|
-
setCheckedValues(() => {
|
|
291
|
+
setCheckedValues((checkedValues) => {
|
|
291
292
|
if (checkedValues.size === 0 || indeterminate) {
|
|
292
293
|
return new Set(values);
|
|
293
294
|
}
|
|
@@ -302,7 +303,7 @@ export function useCheckboxGroup<V extends string>(
|
|
|
302
303
|
return {
|
|
303
304
|
reset: useCallback(() => {
|
|
304
305
|
setCheckedValues(initial.current);
|
|
305
|
-
}, []),
|
|
306
|
+
}, [setCheckedValues]),
|
|
306
307
|
checkedValues,
|
|
307
308
|
setCheckedValues,
|
|
308
309
|
getIndeterminateProps,
|
|
@@ -312,16 +313,7 @@ export function useCheckboxGroup<V extends string>(
|
|
|
312
313
|
value: menu ? undefined : value,
|
|
313
314
|
checked: checkedValues.has(value),
|
|
314
315
|
[menu ? "onCheckedChange" : "onChange"]() {
|
|
315
|
-
|
|
316
|
-
const nextValues = new Set(prevValues);
|
|
317
|
-
if (prevValues.has(value)) {
|
|
318
|
-
nextValues.delete(value);
|
|
319
|
-
} else {
|
|
320
|
-
nextValues.add(value);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
return nextValues;
|
|
324
|
-
});
|
|
316
|
+
toggleValue(value);
|
|
325
317
|
},
|
|
326
318
|
};
|
|
327
319
|
},
|
package/src/form/useCombobox.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
+
useCallback,
|
|
3
4
|
useRef,
|
|
4
5
|
type FocusEventHandler,
|
|
5
6
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -38,7 +39,7 @@ import {
|
|
|
38
39
|
} from "../types.js";
|
|
39
40
|
import { useEnsuredId } from "../useEnsuredId.js";
|
|
40
41
|
import { useEnsuredRef } from "../useEnsuredRef.js";
|
|
41
|
-
import {
|
|
42
|
+
import { useEnsuredState } from "../useEnsuredState.js";
|
|
42
43
|
import { tryToSubmitRelatedForm } from "./utils.js";
|
|
43
44
|
|
|
44
45
|
const noop = (): void => {
|
|
@@ -67,8 +68,8 @@ export type SupportedComboboxPopup = "listbox" | "grid" | "dialog";
|
|
|
67
68
|
export interface ComboboxKeyboardMovementData<
|
|
68
69
|
E extends HTMLElement = HTMLInputElement,
|
|
69
70
|
> extends KeyboardMovementExtensionData<E> {
|
|
70
|
-
show()
|
|
71
|
-
hide()
|
|
71
|
+
show: () => void;
|
|
72
|
+
hide: () => void;
|
|
72
73
|
visible: boolean;
|
|
73
74
|
focusLast: NonNullMutableRef<boolean>;
|
|
74
75
|
}
|
|
@@ -100,10 +101,45 @@ export type ComboboxKeyboardMovementOptions<
|
|
|
100
101
|
/**
|
|
101
102
|
* @since 6.0.0
|
|
102
103
|
*/
|
|
103
|
-
export interface
|
|
104
|
+
export interface ComboboxVisibilityOptions {
|
|
105
|
+
/**
|
|
106
|
+
* This can be used to control the popup's visibility and **must** be used
|
|
107
|
+
* along with {@link setVisible}.
|
|
108
|
+
*/
|
|
109
|
+
visible?: boolean;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Used to control the popup's visibility and should generally be a `useState`
|
|
113
|
+
* setter.
|
|
114
|
+
*
|
|
115
|
+
* @example Controlling the Visibility
|
|
116
|
+
* ```tsx
|
|
117
|
+
* const [visible, setVisible] = useState(false);
|
|
118
|
+
*
|
|
119
|
+
* useCombobox({
|
|
120
|
+
* visible,
|
|
121
|
+
* setVisible,
|
|
122
|
+
* });
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
setVisible?: UseStateSetter<boolean>;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Set this to `true` to have the combobox's popup visible by default.
|
|
129
|
+
*
|
|
130
|
+
* @defaultValue `false`
|
|
131
|
+
*/
|
|
132
|
+
defaultVisible?: UseStateInitializer<boolean>;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* @since 6.0.0
|
|
137
|
+
*/
|
|
138
|
+
export interface ConfigurableComboboxOptions<
|
|
104
139
|
ComboboxEl extends HTMLElement = HTMLInputElement,
|
|
105
140
|
PopupEl extends HTMLElement = HTMLElement,
|
|
106
|
-
> extends ComboboxKeyboardMovementOptions<ComboboxEl
|
|
141
|
+
> extends ComboboxKeyboardMovementOptions<ComboboxEl>,
|
|
142
|
+
ComboboxVisibilityOptions {
|
|
107
143
|
/**
|
|
108
144
|
* This is the {@link InputHTMLAttributes.form} attribute and is used to
|
|
109
145
|
* attempt submitting a form when the enter key is pressed.
|
|
@@ -130,7 +166,7 @@ export interface BaseComboboxOptions<
|
|
|
130
166
|
/**
|
|
131
167
|
* @defaultValue `false`
|
|
132
168
|
*/
|
|
133
|
-
|
|
169
|
+
multiselect?: boolean;
|
|
134
170
|
|
|
135
171
|
extendKeyDown?: ExtendComboboxKeyDown<ComboboxEl>;
|
|
136
172
|
|
|
@@ -142,18 +178,25 @@ export interface BaseComboboxOptions<
|
|
|
142
178
|
getDefaultFocusedIndex?: GetDefaultFocusedIndex;
|
|
143
179
|
}
|
|
144
180
|
|
|
181
|
+
/**
|
|
182
|
+
* @since 6.0.0
|
|
183
|
+
*/
|
|
184
|
+
export interface ComboboxGetEnterDefaultFocusedIndexOptions {
|
|
185
|
+
focusLast: boolean;
|
|
186
|
+
focusables: readonly HTMLElement[];
|
|
187
|
+
currentFocusIndex: number;
|
|
188
|
+
}
|
|
189
|
+
|
|
145
190
|
/**
|
|
146
191
|
* @since 6.0.0
|
|
147
192
|
*/
|
|
148
193
|
export interface ComboboxOptions<
|
|
149
194
|
ComboboxEl extends HTMLElement = HTMLInputElement,
|
|
150
195
|
PopupEl extends HTMLElement = HTMLElement,
|
|
151
|
-
> extends
|
|
152
|
-
getEnterDefaultFocusedIndex
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
currentFocusIndex: number;
|
|
156
|
-
}): number;
|
|
196
|
+
> extends ConfigurableComboboxOptions<ComboboxEl, PopupEl> {
|
|
197
|
+
getEnterDefaultFocusedIndex: (
|
|
198
|
+
options: ComboboxGetEnterDefaultFocusedIndexOptions
|
|
199
|
+
) => number;
|
|
157
200
|
}
|
|
158
201
|
|
|
159
202
|
/**
|
|
@@ -180,6 +223,7 @@ export interface ComboboxWidgetProps<
|
|
|
180
223
|
export interface ComboboxWidgetPopupProps<
|
|
181
224
|
PopupEl extends HTMLElement = HTMLElement,
|
|
182
225
|
> {
|
|
226
|
+
"aria-multiselectable": true | undefined;
|
|
183
227
|
id: string;
|
|
184
228
|
ref: RefCallback<PopupEl>;
|
|
185
229
|
role: "listbox" | "dialog" | "grid";
|
|
@@ -215,16 +259,12 @@ export interface ProvidedComboboxMenuProps<
|
|
|
215
259
|
> extends Required<ComboboxTransitionCallbacks>,
|
|
216
260
|
ComboboxWidgetPopupProps<PopupEl> {
|
|
217
261
|
visible: boolean;
|
|
218
|
-
onRequestClose()
|
|
219
|
-
|
|
262
|
+
onRequestClose: () => void;
|
|
220
263
|
/** @defaultValue `"min"` */
|
|
221
264
|
width: PositionWidth;
|
|
222
|
-
|
|
223
265
|
/** @defaultValue `BELOW_CENTER_ANCHOR` */
|
|
224
266
|
anchor: PositionAnchor;
|
|
225
|
-
|
|
226
267
|
fixedTo: RefObject<HTMLElement>;
|
|
227
|
-
|
|
228
268
|
sheetProps: MenuSheetConfigurableProps &
|
|
229
269
|
Required<ComboboxTransitionCallbacks>;
|
|
230
270
|
}
|
|
@@ -236,14 +276,6 @@ export interface ComboboxMenuProps<PopupEl extends HTMLElement = HTMLDivElement>
|
|
|
236
276
|
extends Omit<ConfigurableComboboxMenuProps, keyof ProvidedComboboxMenuProps>,
|
|
237
277
|
ProvidedComboboxMenuProps<PopupEl> {}
|
|
238
278
|
|
|
239
|
-
/**
|
|
240
|
-
* Since the combobox usually uses the `Menu` as a popup element, this is a
|
|
241
|
-
* helper util to create the required props and merge any additional props
|
|
242
|
-
* with reasonable defaults.
|
|
243
|
-
*/
|
|
244
|
-
export type ComboboxGetMenuProps<PopupEl extends HTMLElement = HTMLDivElement> =
|
|
245
|
-
(props?: ConfigurableComboboxMenuProps) => ComboboxMenuProps<PopupEl>;
|
|
246
|
-
|
|
247
279
|
/**
|
|
248
280
|
* @since 6.0.0
|
|
249
281
|
*/
|
|
@@ -251,8 +283,8 @@ export interface ComboboxImplementation<
|
|
|
251
283
|
ComboboxEl extends HTMLElement = HTMLInputElement,
|
|
252
284
|
PopupEl extends HTMLElement = HTMLElement,
|
|
253
285
|
> extends KeyboardMovementProviderImplementation<ComboboxEl> {
|
|
254
|
-
show()
|
|
255
|
-
hide()
|
|
286
|
+
show: () => void;
|
|
287
|
+
hide: () => void;
|
|
256
288
|
visible: boolean;
|
|
257
289
|
setVisible: UseStateSetter<boolean>;
|
|
258
290
|
focusLast: NonNullMutableRef<boolean>;
|
|
@@ -260,11 +292,17 @@ export interface ComboboxImplementation<
|
|
|
260
292
|
popupProps: ComboboxWidgetPopupProps<PopupEl>;
|
|
261
293
|
comboboxRef: RefObject<ComboboxEl>;
|
|
262
294
|
comboboxProps: ComboboxWidgetProps<ComboboxEl>;
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
295
|
+
/**
|
|
296
|
+
* Since the combobox usually uses the `Menu` as a popup element, this is a
|
|
297
|
+
* helper util to create the required props and merge any additional props
|
|
298
|
+
* with reasonable defaults.
|
|
299
|
+
*/
|
|
300
|
+
getMenuProps: (
|
|
301
|
+
overrides?: ConfigurableComboboxMenuProps
|
|
302
|
+
) => ComboboxMenuProps<PopupEl>;
|
|
303
|
+
getTransitionCallbacks: (
|
|
266
304
|
options: ComboboxTransitionOptions
|
|
267
|
-
)
|
|
305
|
+
) => Required<ComboboxTransitionCallbacks>;
|
|
268
306
|
}
|
|
269
307
|
|
|
270
308
|
/**
|
|
@@ -283,14 +321,17 @@ export function useCombobox<
|
|
|
283
321
|
onFocus,
|
|
284
322
|
onKeyDown,
|
|
285
323
|
searchable,
|
|
324
|
+
multiselect,
|
|
286
325
|
isNegativeOneAllowed,
|
|
287
326
|
loopable,
|
|
288
327
|
disabled,
|
|
328
|
+
visible: propVisible,
|
|
329
|
+
setVisible: propSetVisible,
|
|
330
|
+
defaultVisible = false,
|
|
289
331
|
comboboxId: propComboboxId,
|
|
290
332
|
comboboxRef: propComboboxRef,
|
|
291
333
|
popupId: propPopupId,
|
|
292
334
|
popupRef: propPopupRef,
|
|
293
|
-
defaultVisible = false,
|
|
294
335
|
onFocusChange = noop,
|
|
295
336
|
extendKeyDown = noop,
|
|
296
337
|
getFocusableElements = getNonDisabledOptions,
|
|
@@ -298,12 +339,18 @@ export function useCombobox<
|
|
|
298
339
|
getDefaultFocusedIndex,
|
|
299
340
|
} = options;
|
|
300
341
|
|
|
301
|
-
const {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
342
|
+
const [visible, setVisible] = useEnsuredState({
|
|
343
|
+
value: propVisible,
|
|
344
|
+
setValue: propSetVisible,
|
|
345
|
+
defaultValue: defaultVisible,
|
|
346
|
+
});
|
|
347
|
+
const show = useCallback(() => {
|
|
348
|
+
setVisible(true);
|
|
349
|
+
}, [setVisible]);
|
|
350
|
+
const hide = useCallback(() => {
|
|
351
|
+
setVisible(false);
|
|
352
|
+
}, [setVisible]);
|
|
353
|
+
|
|
307
354
|
const popupId = useEnsuredId(propPopupId, "combobox-popup");
|
|
308
355
|
const comboboxId = useEnsuredId(propComboboxId, "combobox");
|
|
309
356
|
const [comboboxRef, comboboxRefCallback] = useEnsuredRef(propComboboxRef);
|
|
@@ -460,6 +507,7 @@ export function useCombobox<
|
|
|
460
507
|
};
|
|
461
508
|
|
|
462
509
|
const popupProps: ComboboxWidgetPopupProps<PopupEl> = {
|
|
510
|
+
"aria-multiselectable": multiselect || undefined,
|
|
463
511
|
id: popupId,
|
|
464
512
|
ref: popupRefCallback,
|
|
465
513
|
role: popup,
|