@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
|
@@ -15,7 +15,11 @@ import { useEnsuredRef } from "../useEnsuredRef.js";
|
|
|
15
15
|
import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
|
|
16
16
|
import { BELOW_CENTER_ANCHOR } from "./constants.js";
|
|
17
17
|
import { getFixedPosition } from "./getFixedPosition.js";
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
type CalculateFixedPositionOptions,
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
|
+
type FixedPositionStyle,
|
|
22
|
+
} from "./types.js";
|
|
19
23
|
import { isWithinViewport } from "./utils.js";
|
|
20
24
|
|
|
21
25
|
const noop = (): undefined => undefined;
|
|
@@ -109,7 +113,7 @@ export interface FixedPositioningOptions<
|
|
|
109
113
|
* some options require the element to be in the DOM for specific
|
|
110
114
|
* calculations.
|
|
111
115
|
*/
|
|
112
|
-
getFixedPositionOptions
|
|
116
|
+
getFixedPositionOptions?: () => CalculateFixedPositionOptions;
|
|
113
117
|
|
|
114
118
|
/**
|
|
115
119
|
* An optional function to call if the page resizes while the `FixedElement`
|
|
@@ -118,6 +122,17 @@ export interface FixedPositioningOptions<
|
|
|
118
122
|
onResize?: EventListener;
|
|
119
123
|
/** @see {@link TransitionScrollCallback} */
|
|
120
124
|
onScroll?: TransitionScrollCallback<FixedToElement, FixedElement>;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Set this to `true` to disable the fixed positioning behavior so it can be
|
|
128
|
+
* customized within CSS or manually instead. This was added mostly to just
|
|
129
|
+
* support rendering menus inline with other content (like autocompletes
|
|
130
|
+
* within a dialog).
|
|
131
|
+
*
|
|
132
|
+
* @defaultValue `false`
|
|
133
|
+
* @since 6.0.0
|
|
134
|
+
*/
|
|
135
|
+
disabled?: boolean;
|
|
121
136
|
}
|
|
122
137
|
|
|
123
138
|
/**
|
|
@@ -135,9 +150,12 @@ export interface FixedPositioningHookReturnValue<E extends HTMLElement> {
|
|
|
135
150
|
ref: RefCallback<E>;
|
|
136
151
|
|
|
137
152
|
/**
|
|
138
|
-
*
|
|
153
|
+
* This is the {@link FixedPositionStyle} merged with the
|
|
154
|
+
* {@link FixedPositioningOptions.style}. This will only return `undefined`
|
|
155
|
+
* when {@link FixedPositioningOptions.disabled} is `true` and no `style` was
|
|
156
|
+
* provided.
|
|
139
157
|
*/
|
|
140
|
-
style: CSSProperties;
|
|
158
|
+
style: CSSProperties | undefined;
|
|
141
159
|
|
|
142
160
|
/**
|
|
143
161
|
* This should really only be used if the {@link transitionOptions} is not
|
|
@@ -148,7 +166,7 @@ export interface FixedPositioningHookReturnValue<E extends HTMLElement> {
|
|
|
148
166
|
/**
|
|
149
167
|
* A function that can be called to update the style for the fixed element.
|
|
150
168
|
*/
|
|
151
|
-
updateStyle()
|
|
169
|
+
updateStyle: () => void;
|
|
152
170
|
|
|
153
171
|
/** {@inheritDoc FixedPositioningTransitionOptions} */
|
|
154
172
|
transitionOptions: Readonly<Required<FixedPositioningTransitionOptions<E>>>;
|
|
@@ -219,6 +237,7 @@ export function useFixedPositioning<
|
|
|
219
237
|
style: propStyle,
|
|
220
238
|
nodeRef,
|
|
221
239
|
fixedTo,
|
|
240
|
+
disabled,
|
|
222
241
|
onEnter = noop,
|
|
223
242
|
onEntering = noop,
|
|
224
243
|
onEntered = noop,
|
|
@@ -310,6 +329,10 @@ export function useFixedPositioning<
|
|
|
310
329
|
);
|
|
311
330
|
|
|
312
331
|
const updateStyle = useCallback(() => {
|
|
332
|
+
if (disabled) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
|
|
313
336
|
const {
|
|
314
337
|
ref,
|
|
315
338
|
fixedTo,
|
|
@@ -348,12 +371,12 @@ export function useFixedPositioning<
|
|
|
348
371
|
setStyle(style);
|
|
349
372
|
setActive(!!element && !element.hidden);
|
|
350
373
|
|
|
351
|
-
// Only changing the initialX
|
|
352
|
-
// to trigger, which is why everything else is set in a ref.
|
|
353
|
-
}, [initialX, initialY]);
|
|
374
|
+
// Only changing the initialX, initialY, or disabled should cause the
|
|
375
|
+
// useEffect below to trigger, which is why everything else is set in a ref.
|
|
376
|
+
}, [disabled, initialX, initialY]);
|
|
354
377
|
|
|
355
378
|
useEffect(() => {
|
|
356
|
-
if (!active) {
|
|
379
|
+
if (!active || disabled) {
|
|
357
380
|
return;
|
|
358
381
|
}
|
|
359
382
|
|
|
@@ -385,7 +408,7 @@ export function useFixedPositioning<
|
|
|
385
408
|
resizeHandler.remove(resizeCallback);
|
|
386
409
|
scrollHandler.remove(scrollCallback);
|
|
387
410
|
};
|
|
388
|
-
}, [active, fixedTo, onResize, onScroll, ref, updateStyle]);
|
|
411
|
+
}, [active, disabled, fixedTo, onResize, onScroll, ref, updateStyle]);
|
|
389
412
|
|
|
390
413
|
const callbacks: Required<FixedPositioningTransitionCallbacks> = {
|
|
391
414
|
onEnter(appearing) {
|
|
@@ -408,7 +431,7 @@ export function useFixedPositioning<
|
|
|
408
431
|
|
|
409
432
|
return {
|
|
410
433
|
ref: refHandler,
|
|
411
|
-
style: { ...style, ...propStyle },
|
|
434
|
+
style: disabled ? propStyle : { ...style, ...propStyle },
|
|
412
435
|
callbacks,
|
|
413
436
|
updateStyle,
|
|
414
437
|
transitionOptions: {
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { forwardRef, type HTMLAttributes } from "react";
|
|
2
|
+
import {
|
|
3
|
+
responsiveItem,
|
|
4
|
+
type ResponsiveItemClassNameOptions,
|
|
5
|
+
} from "./responsiveItemStyles.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @since 6.0.0 Renamed from `MediaContainerProps` to
|
|
9
|
+
* `ResponsiveItemProps`
|
|
10
|
+
* @since 6.0.0 The `height` and `width` props were removed in favor of the
|
|
11
|
+
* `aspectRatio` props since the latest typescript string interpolation supports
|
|
12
|
+
* enforcing the correct format.
|
|
13
|
+
* @since 6.0.0 The `auto` prop was removed in favor of the new
|
|
14
|
+
* {@link ResponsiveItemProps.responsive} prop.
|
|
15
|
+
*/
|
|
16
|
+
export interface ResponsiveItemProps
|
|
17
|
+
extends HTMLAttributes<HTMLSpanElement>,
|
|
18
|
+
ResponsiveItemClassNameOptions {}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @example Image Example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* import { ResponsiveItem } from "@react-md/core";
|
|
24
|
+
* import type { ReactElement } from "react";
|
|
25
|
+
*
|
|
26
|
+
* function Example(): ReactElement {
|
|
27
|
+
* return (
|
|
28
|
+
* <ResponsiveItem>
|
|
29
|
+
* <img alt="" src="/some-image.png" />
|
|
30
|
+
* </ResponsiveItem>
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Iframe Example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* import { ResponsiveItem } from "@react-md/core";
|
|
38
|
+
* import type { ReactElement } from "react";
|
|
39
|
+
*
|
|
40
|
+
* function Example(): ReactElement {
|
|
41
|
+
* return (
|
|
42
|
+
* <ResponsiveItem>
|
|
43
|
+
* <iframe
|
|
44
|
+
* src="https://youtube.com/some-video-url"
|
|
45
|
+
* title="Some YouTube video"
|
|
46
|
+
* allowFullScreen
|
|
47
|
+
* />
|
|
48
|
+
* </ResponsiveItem>
|
|
49
|
+
* );
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @example Forced Aspect Ratio
|
|
54
|
+
* ```tsx
|
|
55
|
+
* import { ResponsiveItem } from "@react-md/core";
|
|
56
|
+
* import type { ReactElement } from "react";
|
|
57
|
+
*
|
|
58
|
+
* function Example(): ReactElement {
|
|
59
|
+
* return (
|
|
60
|
+
* <ResponsiveItem aspectRatio="16-9">
|
|
61
|
+
* <img alt="" src="/some-image.png" />
|
|
62
|
+
* </ResponsiveItem>
|
|
63
|
+
* );
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @since 6.0.0 Renamed from `MediaContainer` to
|
|
68
|
+
* `ResponsiveItem` and renders a `<span>` instead of a `<div>`.
|
|
69
|
+
*/
|
|
70
|
+
export const ResponsiveItem = forwardRef<HTMLSpanElement, ResponsiveItemProps>(
|
|
71
|
+
function ResponsiveItem(props, ref) {
|
|
72
|
+
const {
|
|
73
|
+
className,
|
|
74
|
+
fullWidth = false,
|
|
75
|
+
aspectRatio,
|
|
76
|
+
responsive = "auto",
|
|
77
|
+
children,
|
|
78
|
+
...remaining
|
|
79
|
+
} = props;
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<span
|
|
83
|
+
{...remaining}
|
|
84
|
+
ref={ref}
|
|
85
|
+
className={responsiveItem({
|
|
86
|
+
className,
|
|
87
|
+
fullWidth,
|
|
88
|
+
aspectRatio,
|
|
89
|
+
responsive,
|
|
90
|
+
})}
|
|
91
|
+
>
|
|
92
|
+
{children}
|
|
93
|
+
</span>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
);
|
|
@@ -1,50 +1,10 @@
|
|
|
1
|
-
import { cnb } from "cnbuilder";
|
|
2
1
|
import { forwardRef, type HTMLAttributes } from "react";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* the sizes are self-explanatory, but the `middle` position will be centered
|
|
10
|
-
* vertically while `center` will be centered `horizontally`.
|
|
11
|
-
*
|
|
12
|
-
* @since 6.0.0 Renamed from `MediaOverlayPosition` to
|
|
13
|
-
* `ResponsiveItemOverlayProps`.
|
|
14
|
-
*/
|
|
15
|
-
export type ResponsiveItemOverlayPosition =
|
|
16
|
-
| "top"
|
|
17
|
-
| "right"
|
|
18
|
-
| "bottom"
|
|
19
|
-
| "left"
|
|
20
|
-
| "middle"
|
|
21
|
-
| "center"
|
|
22
|
-
| "absolute-center";
|
|
23
|
-
|
|
24
|
-
/** @since 6.0.0 */
|
|
25
|
-
export interface ResponsiveItemOverlayClassNameOptions {
|
|
26
|
-
className?: string;
|
|
27
|
-
/** @defaultValue `"bottom"` */
|
|
28
|
-
position?: ResponsiveItemOverlayPosition;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @since 6.0.0
|
|
33
|
-
*/
|
|
34
|
-
export function responsiveItemOverlay(
|
|
35
|
-
options: ResponsiveItemOverlayClassNameOptions = {}
|
|
36
|
-
): string {
|
|
37
|
-
const { className, position = "bottom" } = options;
|
|
38
|
-
|
|
39
|
-
return cnb(
|
|
40
|
-
styles({
|
|
41
|
-
[position]: true,
|
|
42
|
-
horizontal:
|
|
43
|
-
position !== "top" && position !== "bottom" && position !== "middle",
|
|
44
|
-
}),
|
|
45
|
-
className
|
|
46
|
-
);
|
|
47
|
-
}
|
|
2
|
+
import {
|
|
3
|
+
responsiveItemOverlay,
|
|
4
|
+
type ResponsiveItemOverlayClassNameOptions,
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
+
type ResponsiveItemOverlayPosition,
|
|
7
|
+
} from "./responsiveItemOverlayStyles.js";
|
|
48
8
|
|
|
49
9
|
/**
|
|
50
10
|
* @since 6.0.0 Renamed from `MediaOverlayProps` to
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { cnb } from "cnbuilder";
|
|
2
|
+
import { bem } from "../utils/bem.js";
|
|
3
|
+
|
|
4
|
+
const styles = bem("rmd-responsive-item-overlay");
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The overlay positions relative to the `MediaContainer` component. Most of
|
|
8
|
+
* the sizes are self-explanatory, but the `middle` position will be centered
|
|
9
|
+
* vertically while `center` will be centered `horizontally`.
|
|
10
|
+
*
|
|
11
|
+
* @since 6.0.0 Renamed from `MediaOverlayPosition` to
|
|
12
|
+
* `ResponsiveItemOverlayProps`.
|
|
13
|
+
*/
|
|
14
|
+
export type ResponsiveItemOverlayPosition =
|
|
15
|
+
| "top"
|
|
16
|
+
| "right"
|
|
17
|
+
| "bottom"
|
|
18
|
+
| "left"
|
|
19
|
+
| "middle"
|
|
20
|
+
| "center"
|
|
21
|
+
| "absolute-center";
|
|
22
|
+
|
|
23
|
+
/** @since 6.0.0 */
|
|
24
|
+
export interface ResponsiveItemOverlayClassNameOptions {
|
|
25
|
+
className?: string;
|
|
26
|
+
/** @defaultValue `"bottom"` */
|
|
27
|
+
position?: ResponsiveItemOverlayPosition;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @since 6.0.0
|
|
32
|
+
*/
|
|
33
|
+
export function responsiveItemOverlay(
|
|
34
|
+
options: ResponsiveItemOverlayClassNameOptions = {}
|
|
35
|
+
): string {
|
|
36
|
+
const { className, position = "bottom" } = options;
|
|
37
|
+
|
|
38
|
+
return cnb(
|
|
39
|
+
styles({
|
|
40
|
+
[position]: true,
|
|
41
|
+
horizontal:
|
|
42
|
+
position !== "top" && position !== "bottom" && position !== "middle",
|
|
43
|
+
}),
|
|
44
|
+
className
|
|
45
|
+
);
|
|
46
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cnb } from "cnbuilder";
|
|
2
|
+
import { bem } from "../utils/bem.js";
|
|
3
|
+
|
|
4
|
+
const styles = bem("rmd-responsive-item");
|
|
5
|
+
|
|
6
|
+
/** @since 6.0.0 */
|
|
7
|
+
export interface ResponsiveItemClassNameOptions {
|
|
8
|
+
className?: string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Set this to `true` if the container should gain the following styles:
|
|
12
|
+
*
|
|
13
|
+
* ```scss
|
|
14
|
+
* display: block;
|
|
15
|
+
* width: 100%;
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @defaultValue `false`
|
|
19
|
+
*/
|
|
20
|
+
fullWidth?: boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Set this to a custom aspect ratio to use.
|
|
24
|
+
*
|
|
25
|
+
* @example Valid Aspect Ratios
|
|
26
|
+
* ```tsx
|
|
27
|
+
* aspectRatio="16-9"
|
|
28
|
+
* aspectRatio="9-16"
|
|
29
|
+
* aspectRatio="3-4"
|
|
30
|
+
* aspectRatio="4-3"
|
|
31
|
+
* aspectRatio="1-1"
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* These values are based on the `core.$responsive-item-aspect-ratios` map.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue `""`
|
|
37
|
+
*/
|
|
38
|
+
aspectRatio?: `${number}-${number}`;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Set this to `"manual"` if you want to manually specify which elements are
|
|
42
|
+
* responsive items using custom class names. You probably don't really want
|
|
43
|
+
* to use this.
|
|
44
|
+
*
|
|
45
|
+
* Set this to `"auto"` to automatically update all visual media that appear
|
|
46
|
+
* as a child in this component to a responsive item.
|
|
47
|
+
*
|
|
48
|
+
* Set this to `"container"` to automatically update all visual media that
|
|
49
|
+
* appear as a child in this component to be a responsive item that scales to
|
|
50
|
+
* the container's dimensions.
|
|
51
|
+
*
|
|
52
|
+
* Note: The `"auto"` and `"container"` values use the
|
|
53
|
+
* `core.$responsive-item-selectors` value for their behavior.
|
|
54
|
+
*
|
|
55
|
+
* @defaultValue `"auto"`
|
|
56
|
+
*/
|
|
57
|
+
responsive?: "auto" | "manual" | "container";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** @since 6.0.0 */
|
|
61
|
+
export function responsiveItem(
|
|
62
|
+
options: ResponsiveItemClassNameOptions = {}
|
|
63
|
+
): string {
|
|
64
|
+
const {
|
|
65
|
+
className,
|
|
66
|
+
fullWidth = false,
|
|
67
|
+
aspectRatio = "",
|
|
68
|
+
responsive = "auto",
|
|
69
|
+
} = options;
|
|
70
|
+
|
|
71
|
+
return cnb(
|
|
72
|
+
styles({
|
|
73
|
+
auto: responsive !== "manual",
|
|
74
|
+
"auto-scale": responsive === "container",
|
|
75
|
+
"aspect-ratio": aspectRatio,
|
|
76
|
+
[aspectRatio]: aspectRatio,
|
|
77
|
+
"full-width": fullWidth,
|
|
78
|
+
}),
|
|
79
|
+
className
|
|
80
|
+
);
|
|
81
|
+
}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
import { useEffect } from "react";
|
|
3
3
|
import { getScrollbarWidth } from "./getScrollbarWidth.js";
|
|
4
4
|
|
|
5
|
+
declare module "react" {
|
|
6
|
+
interface CSSProperties {
|
|
7
|
+
"--rmd-scrollbar-size"?: string;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
export const SCROLLBAR_SIZE_VAR = "--rmd-scrollbar-size";
|
|
6
12
|
|
|
7
13
|
// this is really just so that nested dialogs will work correctly. Only the
|
package/src/searching/utils.ts
CHANGED
|
@@ -7,8 +7,8 @@ import { type BaseSearchOptions } from "./types.js";
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export const defaultExtractor =
|
|
10
|
-
|
|
11
|
-
(item:
|
|
10
|
+
(name: string) =>
|
|
11
|
+
(item: unknown): string => {
|
|
12
12
|
if (typeof item === "string") {
|
|
13
13
|
return item;
|
|
14
14
|
}
|
|
@@ -24,7 +24,7 @@ export const defaultExtractor =
|
|
|
24
24
|
*/
|
|
25
25
|
export interface SearchOptions<T> extends BaseSearchOptions<T> {
|
|
26
26
|
type: "search" | "filter";
|
|
27
|
-
filter(query: string, value: string)
|
|
27
|
+
filter: (query: string, value: string) => boolean;
|
|
28
28
|
extractor: TextExtractor<T>;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from "react";
|
|
3
3
|
import { getIcon } from "../icon/iconConfig.js";
|
|
4
|
+
import { type ComponentWithRippleProps } from "../interaction/types.js";
|
|
4
5
|
import { useElementInteraction } from "../interaction/useElementInteraction.js";
|
|
5
6
|
import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
|
|
6
7
|
import { useMaxWidthTransition } from "../transition/useMaxWidthTransition.js";
|
|
@@ -10,7 +11,8 @@ import { segmentedButton } from "./segmentedButtonStyles.js";
|
|
|
10
11
|
* @since 6.0.0
|
|
11
12
|
*/
|
|
12
13
|
export interface SegmentedButtonProps
|
|
13
|
-
extends ButtonHTMLAttributes<HTMLButtonElement
|
|
14
|
+
extends ButtonHTMLAttributes<HTMLButtonElement>,
|
|
15
|
+
ComponentWithRippleProps {
|
|
14
16
|
/**
|
|
15
17
|
* Set this to `true` to apply selected styles and an optional
|
|
16
18
|
* {@link selectedIcon}
|
|
@@ -126,6 +128,7 @@ export const SegmentedButton = forwardRef<
|
|
|
126
128
|
onTouchEnd,
|
|
127
129
|
onTouchMove,
|
|
128
130
|
disabled,
|
|
131
|
+
disableRipple,
|
|
129
132
|
...remaining
|
|
130
133
|
} = props;
|
|
131
134
|
|
|
@@ -138,6 +141,7 @@ export const SegmentedButton = forwardRef<
|
|
|
138
141
|
disableTransition: disableSelectedTransition,
|
|
139
142
|
});
|
|
140
143
|
const { pressedClassName, handlers, ripples } = useElementInteraction({
|
|
144
|
+
mode: disableRipple ? "none" : undefined,
|
|
141
145
|
onBlur,
|
|
142
146
|
onClick,
|
|
143
147
|
onKeyDown,
|
|
@@ -542,8 +542,9 @@ export const toastManager = new ToastManager();
|
|
|
542
542
|
* @see {@link ToastManager.addToast}
|
|
543
543
|
* @since 6.0.0
|
|
544
544
|
*/
|
|
545
|
-
export const addToast: ToastManager["addToast"] = (toast) =>
|
|
545
|
+
export const addToast: ToastManager["addToast"] = (toast) => {
|
|
546
546
|
toastManager.addToast(toast);
|
|
547
|
+
};
|
|
547
548
|
|
|
548
549
|
/**
|
|
549
550
|
* @see {@link ToastManager.startRemoveTimeout}
|
|
@@ -551,23 +552,33 @@ export const addToast: ToastManager["addToast"] = (toast) =>
|
|
|
551
552
|
*/
|
|
552
553
|
export const startRemoveToastTimeout: ToastManager["startRemoveTimeout"] = (
|
|
553
554
|
toastId
|
|
554
|
-
) =>
|
|
555
|
+
) => {
|
|
556
|
+
toastManager.startRemoveTimeout(toastId);
|
|
557
|
+
};
|
|
555
558
|
|
|
556
559
|
/**
|
|
557
560
|
* @see {@link ToastManager.popToast}
|
|
558
561
|
* @since 6.0.0
|
|
559
562
|
*/
|
|
560
|
-
export const popToast: ToastManager["popToast"] = () =>
|
|
563
|
+
export const popToast: ToastManager["popToast"] = () => {
|
|
564
|
+
toastManager.popToast();
|
|
565
|
+
};
|
|
561
566
|
|
|
562
567
|
/**
|
|
563
568
|
* @see {@link ToastManager.removeToast}
|
|
564
569
|
* @since 6.0.0
|
|
565
570
|
*/
|
|
566
|
-
export const removeToast: ToastManager["removeToast"] = (
|
|
571
|
+
export const removeToast: ToastManager["removeToast"] = (
|
|
572
|
+
toastId,
|
|
573
|
+
transition
|
|
574
|
+
) => {
|
|
567
575
|
toastManager.removeToast(toastId, transition);
|
|
576
|
+
};
|
|
568
577
|
|
|
569
578
|
/**
|
|
570
579
|
* @see {@link ToastManager.clearToasts}
|
|
571
580
|
* @since 6.0.0
|
|
572
581
|
*/
|
|
573
|
-
export const clearToasts = (): void =>
|
|
582
|
+
export const clearToasts = (): void => {
|
|
583
|
+
toastManager.clearToasts();
|
|
584
|
+
};
|
|
@@ -9,15 +9,15 @@ import { createContext, useContext } from "react";
|
|
|
9
9
|
*/
|
|
10
10
|
export interface CurrentToastActions {
|
|
11
11
|
/** @see {@link ToastManager.clearTimer} */
|
|
12
|
-
clearTimer()
|
|
12
|
+
clearTimer: () => void;
|
|
13
13
|
/** @see {@link ToastManager.removeToast} */
|
|
14
|
-
removeToast(transition: boolean)
|
|
14
|
+
removeToast: (transition: boolean) => void;
|
|
15
15
|
/** @see {@link ToastManager.startRemoveTimeout} */
|
|
16
|
-
startRemoveTimeout()
|
|
16
|
+
startRemoveTimeout: () => void;
|
|
17
17
|
/** @see {@link ToastManager.pauseRemoveTimeout} */
|
|
18
|
-
pauseRemoveTimeout()
|
|
18
|
+
pauseRemoveTimeout: () => void;
|
|
19
19
|
/** @see {@link ToastManager.resumeRemoveTimeout} */
|
|
20
|
-
resumeRemoveTimeout()
|
|
20
|
+
resumeRemoveTimeout: () => void;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const context = createContext<CurrentToastActions | null>(null);
|
|
@@ -12,14 +12,18 @@ export interface TableCellClassNameOptions {
|
|
|
12
12
|
/**
|
|
13
13
|
* Set this to `true` if the cell is rendered as a `<th>` so that the correct
|
|
14
14
|
* sticky styles can be applied.
|
|
15
|
+
*
|
|
16
|
+
* @defaultValue `false`
|
|
15
17
|
*/
|
|
16
|
-
header
|
|
18
|
+
header?: boolean;
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* Set this to true if the cell is rendered in a `<thead>` so that the correct
|
|
20
22
|
* sticky styles can be applied.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `header`
|
|
21
25
|
*/
|
|
22
|
-
isInTableHeader
|
|
26
|
+
isInTableHeader?: boolean;
|
|
23
27
|
|
|
24
28
|
/** @defaultValue `false` */
|
|
25
29
|
grow?: boolean;
|
|
@@ -45,17 +49,17 @@ export interface TableCellClassNameOptions {
|
|
|
45
49
|
/**
|
|
46
50
|
* @since 6.0.0
|
|
47
51
|
*/
|
|
48
|
-
export function tableCell(options: TableCellClassNameOptions): string {
|
|
52
|
+
export function tableCell(options: TableCellClassNameOptions = {}): string {
|
|
49
53
|
const {
|
|
50
54
|
grow,
|
|
51
55
|
sticky,
|
|
52
56
|
header,
|
|
53
57
|
inputToggle,
|
|
54
|
-
hAlign,
|
|
55
|
-
vAlign,
|
|
58
|
+
hAlign = "left",
|
|
59
|
+
vAlign = "middle",
|
|
56
60
|
lineWrap = true,
|
|
57
61
|
padding = "horizontal",
|
|
58
|
-
isInTableHeader,
|
|
62
|
+
isInTableHeader = header,
|
|
59
63
|
className,
|
|
60
64
|
} = options;
|
|
61
65
|
|
package/src/tabs/Tab.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
type ReactElement,
|
|
6
6
|
type ReactNode,
|
|
7
7
|
} from "react";
|
|
8
|
+
import { type ComponentWithRippleProps } from "../interaction/types.js";
|
|
8
9
|
import { useElementInteraction } from "../interaction/useElementInteraction.js";
|
|
9
10
|
import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
|
|
10
11
|
import { type CustomLinkComponent } from "../link/Link.js";
|
|
@@ -20,7 +21,7 @@ import { type TabListProps } from "./TabList.js";
|
|
|
20
21
|
/**
|
|
21
22
|
* @since 6.0.0
|
|
22
23
|
*/
|
|
23
|
-
export interface BaseTabProps {
|
|
24
|
+
export interface BaseTabProps extends ComponentWithRippleProps {
|
|
24
25
|
/**
|
|
25
26
|
* Set this to `true` if the tab is currently active.
|
|
26
27
|
*
|
|
@@ -126,6 +127,7 @@ export function Tab(props: TabProps): ReactElement {
|
|
|
126
127
|
onTouchStart,
|
|
127
128
|
onTouchEnd,
|
|
128
129
|
onTouchMove,
|
|
130
|
+
disableRipple,
|
|
129
131
|
...remaining
|
|
130
132
|
} = props as TabButtonProps;
|
|
131
133
|
const { disabled } = props as TabButtonProps;
|
|
@@ -133,6 +135,7 @@ export function Tab(props: TabProps): ReactElement {
|
|
|
133
135
|
const id = useEnsuredId(propId, "tab");
|
|
134
136
|
const { activeDescendantId } = useKeyboardMovementContext();
|
|
135
137
|
const { ripples, handlers } = useElementInteraction({
|
|
138
|
+
mode: disableRipple ? "none" : undefined,
|
|
136
139
|
onBlur,
|
|
137
140
|
onClick,
|
|
138
141
|
onKeyDown,
|
package/src/tabs/TabList.tsx
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
} from "react";
|
|
9
9
|
import { useAppSize } from "../media-queries/AppSizeProvider.js";
|
|
10
10
|
import { KeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
|
|
11
|
+
import { type GetTabListScrollToOptions } from "./getTabListScrollToOptions.js";
|
|
11
12
|
import {
|
|
12
13
|
TabListScrollButton,
|
|
13
14
|
type BaseTabListScrollButtonProps,
|
|
14
15
|
} from "./TabListScrollButton.js";
|
|
15
16
|
import { tabList, type TabsAlignment } from "./tabListStyles.js";
|
|
16
17
|
import { useTabList } from "./useTabList.js";
|
|
17
|
-
import { type GetTabListScrollToOptions } from "./utils.js";
|
|
18
18
|
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
20
20
|
import { type useTabs } from "./useTabs.js";
|
|
@@ -24,7 +24,7 @@ import { type useTabs } from "./useTabs.js";
|
|
|
24
24
|
*/
|
|
25
25
|
export interface TabListProps extends HTMLAttributes<HTMLDivElement> {
|
|
26
26
|
activeIndex: number;
|
|
27
|
-
setActiveIndex(nextActiveIndex: number)
|
|
27
|
+
setActiveIndex: (nextActiveIndex: number) => void;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* @defaultValue `"left"`
|
|
@@ -13,14 +13,14 @@ import { type PropsWithRef } from "../types.js";
|
|
|
13
13
|
import { useDir } from "../typography/WritingDirectionProvider.js";
|
|
14
14
|
import { useIntersectionObserver } from "../useIntersectionObserver.js";
|
|
15
15
|
import { applyRef } from "../utils/applyRef.js";
|
|
16
|
+
import {
|
|
17
|
+
getTabListScrollToOptions,
|
|
18
|
+
type GetTabListScrollToOptions,
|
|
19
|
+
} from "./getTabListScrollToOptions.js";
|
|
16
20
|
import {
|
|
17
21
|
tabListScrollButton,
|
|
18
22
|
tabListScrollButtonContainer,
|
|
19
23
|
} from "./tabListScrollButtonStyles.js";
|
|
20
|
-
import {
|
|
21
|
-
getTabListScrollToOptions,
|
|
22
|
-
type GetTabListScrollToOptions,
|
|
23
|
-
} from "./utils.js";
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* @internal
|