@react-md/core 6.3.3 → 6.4.0
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/CoreProviders.d.ts +1 -0
- package/dist/CoreProviders.js.map +1 -1
- package/dist/_base.scss +3 -0
- package/dist/_core.scss +1 -0
- package/dist/_utils.scss +15 -7
- package/dist/app-bar/AppBar.js.map +1 -1
- package/dist/app-bar/AppBarTitle.js.map +1 -1
- package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
- package/dist/autocomplete/types.js.map +1 -1
- package/dist/autocomplete/utils.js.map +1 -1
- package/dist/avatar/Avatar.js.map +1 -1
- package/dist/box/_box.scss +20 -1
- package/dist/box/styles.d.ts +39 -0
- package/dist/box/styles.js +39 -0
- package/dist/box/styles.js.map +1 -1
- package/dist/button/Button.js.map +1 -1
- package/dist/button/FloatingActionButton.js.map +1 -1
- package/dist/card/Card.js.map +1 -1
- package/dist/card/CardContent.js.map +1 -1
- package/dist/card/ClickableCard.js.map +1 -1
- package/dist/chip/Chip.js.map +1 -1
- package/dist/datetime/NativeDateField.js.map +1 -1
- package/dist/datetime/NativeTimeField.js.map +1 -1
- package/dist/datetime/useDateField.js.map +1 -1
- package/dist/datetime/useTimeField.js.map +1 -1
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/DialogContainer.js.map +1 -1
- package/dist/dialog/DialogContent.js.map +1 -1
- package/dist/dialog/DialogFooter.js.map +1 -1
- package/dist/divider/Divider.js.map +1 -1
- package/dist/draggable/useDraggable.js.map +1 -1
- package/dist/draggable/utils.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
- package/dist/files/FileInput.js.map +1 -1
- package/dist/files/useFileUpload.js.map +1 -1
- package/dist/files/validation.js.map +1 -1
- package/dist/focus/useFocusContainer.js.map +1 -1
- package/dist/form/Fieldset.d.ts +19 -0
- package/dist/form/Fieldset.js +22 -2
- package/dist/form/Fieldset.js.map +1 -1
- package/dist/form/FormMessageContainer.js.map +1 -1
- package/dist/form/FormMessageCounter.js.map +1 -1
- package/dist/form/InputToggle.js.map +1 -1
- package/dist/form/Legend.d.ts +27 -5
- package/dist/form/Legend.js +39 -6
- package/dist/form/Legend.js.map +1 -1
- package/dist/form/Listbox.js.map +1 -1
- package/dist/form/ListboxProvider.js.map +1 -1
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Password.js.map +1 -1
- package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
- package/dist/form/Select.js.map +1 -1
- package/dist/form/Slider.js.map +1 -1
- package/dist/form/SliderContainer.js.map +1 -1
- package/dist/form/SliderThumb.js.map +1 -1
- package/dist/form/SliderTrack.js.map +1 -1
- package/dist/form/SliderValueMarks.js.map +1 -1
- package/dist/form/Switch.js.map +1 -1
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/TextFieldContainer.js.map +1 -1
- package/dist/form/_fieldset.scss +7 -0
- package/dist/form/_legend.scss +68 -0
- package/dist/form/_text-field.scss +39 -4
- package/dist/form/fieldsetStyles.d.ts +6 -1
- package/dist/form/fieldsetStyles.js +3 -2
- package/dist/form/fieldsetStyles.js.map +1 -1
- package/dist/form/inputToggleStyles.js.map +1 -1
- package/dist/form/labelStyles.d.ts +1 -1
- package/dist/form/labelStyles.js +1 -1
- package/dist/form/labelStyles.js.map +1 -1
- package/dist/form/legendStyles.d.ts +83 -0
- package/dist/form/legendStyles.js +25 -0
- package/dist/form/legendStyles.js.map +1 -0
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/textFieldContainerStyles.js.map +1 -1
- package/dist/form/types.d.ts +28 -6
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCheckboxGroup.js.map +1 -1
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useNumberField.js +16 -19
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useRangeSlider.js.map +1 -1
- package/dist/form/useSlider.js.map +1 -1
- package/dist/form/useTextField.d.ts +1 -1
- package/dist/form/useTextField.js.map +1 -1
- package/dist/hoverMode/useHoverMode.js.map +1 -1
- package/dist/icon/FontIcon.js.map +1 -1
- package/dist/icon/IconRotator.js.map +1 -1
- package/dist/icon/MaterialIcon.js.map +1 -1
- package/dist/icon/MaterialSymbol.js.map +1 -1
- package/dist/icon/SVGIcon.js.map +1 -1
- package/dist/icon/config.d.ts +0 -1
- package/dist/icon/config.js +10 -7
- package/dist/icon/config.js.map +1 -1
- package/dist/icon/materialConfig.js.map +1 -1
- package/dist/icon/styles.js.map +1 -1
- package/dist/interaction/UserInteractionModeProvider.js +6 -4
- package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
- package/dist/interaction/types.js.map +1 -1
- package/dist/interaction/useElementInteraction.js.map +1 -1
- package/dist/layout/LayoutAppBar.d.ts +6 -6
- package/dist/layout/LayoutAppBar.js +6 -6
- package/dist/layout/LayoutAppBar.js.map +1 -1
- package/dist/layout/LayoutNav.js.map +1 -1
- package/dist/layout/LayoutWindowSplitter.js.map +1 -1
- package/dist/layout/Main.js.map +1 -1
- package/dist/layout/useExpandableLayout.js +43 -0
- package/dist/layout/useExpandableLayout.js.map +1 -1
- package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
- package/dist/layout/useLayoutTree.js.map +1 -1
- package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
- package/dist/layout/useResizableLayout.js.map +1 -1
- package/dist/link/Link.js.map +1 -1
- package/dist/link/SkipToMainContent.js +19 -21
- package/dist/link/SkipToMainContent.js.map +1 -1
- package/dist/list/List.js.map +1 -1
- package/dist/list/ListItem.js.map +1 -1
- package/dist/list/ListItemAddon.js.map +1 -1
- package/dist/list/ListItemLink.js.map +1 -1
- package/dist/list/ListSubheader.js.map +1 -1
- package/dist/list/getListItemHeight.js.map +1 -1
- package/dist/list/listItemStyles.js.map +1 -1
- package/dist/list/types.js.map +1 -1
- package/dist/media-queries/AppSizeProvider.d.ts +2 -0
- package/dist/media-queries/AppSizeProvider.js +3 -2
- package/dist/media-queries/AppSizeProvider.js.map +1 -1
- package/dist/media-queries/appSize.d.ts +3 -0
- package/dist/media-queries/appSize.js +3 -1
- package/dist/media-queries/appSize.js.map +1 -1
- package/dist/media-queries/config.d.ts +11 -0
- package/dist/media-queries/config.js +26 -0
- package/dist/media-queries/config.js.map +1 -0
- package/dist/menu/DropdownMenu.js.map +1 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuItemButton.js.map +1 -1
- package/dist/menu/MenuItemFileInput.js.map +1 -1
- package/dist/menu/MenuItemInputToggle.js.map +1 -1
- package/dist/menu/MenuItemSeparator.js.map +1 -1
- package/dist/menu/MenuVisibilityProvider.js.map +1 -1
- package/dist/menu/MenuWidget.js.map +1 -1
- package/dist/menu/useContextMenu.js.map +1 -1
- package/dist/movement/types.d.ts +28 -3
- package/dist/movement/types.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.js +96 -47
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
- package/dist/navigation/NavItem.js.map +1 -1
- package/dist/navigation/NavItemButton.js.map +1 -1
- package/dist/navigation/NavItemLink.js.map +1 -1
- package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
- package/dist/navigation/types.js.map +1 -1
- package/dist/overlay/Overlay.js.map +1 -1
- package/dist/positioning/createHorizontalPosition.js.map +1 -1
- package/dist/positioning/createVerticalPosition.js.map +1 -1
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/progress/CircularProgress.js.map +1 -1
- package/dist/progress/LinearProgress.js.map +1 -1
- package/dist/progress/linearProgressStyles.js.map +1 -1
- package/dist/responsive-item/ResponsiveItem.js.map +1 -1
- package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
- package/dist/searching/caseInsensitive.js.map +1 -1
- package/dist/segmented-button/SegmentedButton.js.map +1 -1
- package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
- package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
- package/dist/sheet/Sheet.js.map +1 -1
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/spinbutton/SpinButton.d.ts +16 -0
- package/dist/spinbutton/SpinButton.js +55 -0
- package/dist/spinbutton/SpinButton.js.map +1 -0
- package/dist/spinbutton/SpinButtonGroupProvider.d.ts +17 -0
- package/dist/spinbutton/SpinButtonGroupProvider.js +19 -0
- package/dist/spinbutton/SpinButtonGroupProvider.js.map +1 -0
- package/dist/spinbutton/defaults.d.ts +9 -0
- package/dist/spinbutton/defaults.js +25 -0
- package/dist/spinbutton/defaults.js.map +1 -0
- package/dist/spinbutton/types.d.ts +324 -0
- package/dist/spinbutton/types.js +5 -0
- package/dist/spinbutton/types.js.map +1 -0
- package/dist/spinbutton/useSpinButton.d.ts +5 -0
- package/dist/spinbutton/useSpinButton.js +260 -0
- package/dist/spinbutton/useSpinButton.js.map +1 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.d.ts +27 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.js +49 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.js.map +1 -0
- package/dist/spinbutton/utils/deselectNode.d.ts +5 -0
- package/dist/spinbutton/utils/deselectNode.js +17 -0
- package/dist/spinbutton/utils/deselectNode.js.map +1 -0
- package/dist/spinbutton/utils/resolveInputEvent.d.ts +30 -0
- package/dist/spinbutton/utils/resolveInputEvent.js +53 -0
- package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -0
- package/dist/spinbutton/utils/selectNode.d.ts +5 -0
- package/dist/spinbutton/utils/selectNode.js +15 -0
- package/dist/spinbutton/utils/selectNode.js.map +1 -0
- package/dist/table/StickyTableSection.js.map +1 -1
- package/dist/table/Table.js.map +1 -1
- package/dist/table/TableBody.js.map +1 -1
- package/dist/table/TableCellContent.js.map +1 -1
- package/dist/table/TableCheckbox.js.map +1 -1
- package/dist/table/TableFooter.js.map +1 -1
- package/dist/table/TableHeader.js.map +1 -1
- package/dist/table/TableRadio.js.map +1 -1
- package/dist/table/TableRow.js.map +1 -1
- package/dist/table/useStickyTableSection.js.map +1 -1
- package/dist/tabs/SimpleTabPanel.js.map +1 -1
- package/dist/tabs/SimpleTabPanels.js.map +1 -1
- package/dist/tabs/Tab.js.map +1 -1
- package/dist/tabs/TabList.js.map +1 -1
- package/dist/tabs/TabListScrollButton.js.map +1 -1
- package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
- package/dist/test-utils/data-testid.js.map +1 -1
- package/dist/test-utils/mocks/match-media.js +5 -5
- package/dist/test-utils/mocks/match-media.js.map +1 -1
- package/dist/test-utils/vitest/timers.d.ts +1 -1
- package/dist/test-utils/vitest/timers.js +1 -1
- package/dist/test-utils/vitest/timers.js.map +1 -1
- package/dist/tooltip/Tooltip.js.map +1 -1
- package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
- package/dist/tooltip/useTooltip.js.map +1 -1
- package/dist/transition/CSSTransition.js.map +1 -1
- package/dist/transition/Collapse.js.map +1 -1
- package/dist/transition/CrossFade.js.map +1 -1
- package/dist/transition/ScaleTransition.js.map +1 -1
- package/dist/transition/SkeletonPlaceholder.js.map +1 -1
- package/dist/transition/Slide.js.map +1 -1
- package/dist/transition/SlideContainer.js.map +1 -1
- package/dist/transition/types.js.map +1 -1
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/useCrossFadeTransition.js.map +1 -1
- package/dist/transition/useMaxWidthTransition.js.map +1 -1
- package/dist/transition/useScaleTransition.js.map +1 -1
- package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
- package/dist/tree/Tree.js.map +1 -1
- package/dist/tree/TreeItem.js.map +1 -1
- package/dist/tree/TreeProvider.js.map +1 -1
- package/dist/tree/styles.js.map +1 -1
- package/dist/tree/types.js.map +1 -1
- package/dist/tree/useTreeMovement.js.map +1 -1
- package/dist/typography/HighlightTextMark.js.map +1 -1
- package/dist/typography/Mark.js.map +1 -1
- package/dist/typography/TextContainer.js.map +1 -1
- package/dist/typography/Typography.js.map +1 -1
- package/dist/typography/_typography.scss +0 -1
- package/dist/useElementSize.js.map +1 -1
- package/dist/useIntersectionObserver.js.map +1 -1
- package/dist/useMutationObserver.js.map +1 -1
- package/dist/useWindowSize.js.map +1 -1
- package/dist/utils/getNumberOfDigits.d.ts +7 -0
- package/dist/utils/getNumberOfDigits.js +11 -0
- package/dist/utils/getNumberOfDigits.js.map +1 -0
- package/dist/utils/nearest.js +2 -1
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/useDevEffect.d.ts +7 -0
- package/dist/utils/useDevEffect.js +8 -0
- package/dist/utils/useDevEffect.js.map +1 -0
- package/dist/window-splitter/WindowSplitter.js +3 -2
- package/dist/window-splitter/WindowSplitter.js.map +1 -1
- package/dist/window-splitter/_window-splitter.scss +60 -12
- package/dist/window-splitter/styles.d.ts +9 -0
- package/dist/window-splitter/styles.js +3 -2
- package/dist/window-splitter/styles.js.map +1 -1
- package/dist/window-splitter/useWindowSplitter.js.map +1 -1
- package/package.json +38 -30
- package/src/CoreProviders.tsx +1 -0
- package/src/app-bar/AppBar.tsx +1 -2
- package/src/app-bar/AppBarTitle.tsx +1 -2
- package/src/autocomplete/AutocompleteListboxChildren.tsx +3 -1
- package/src/autocomplete/types.ts +24 -19
- package/src/autocomplete/utils.ts +9 -6
- package/src/avatar/Avatar.tsx +2 -1
- package/src/box/styles.ts +39 -0
- package/src/button/Button.tsx +2 -1
- package/src/button/FloatingActionButton.tsx +2 -1
- package/src/card/Card.tsx +2 -1
- package/src/card/CardContent.tsx +1 -2
- package/src/card/ClickableCard.tsx +1 -2
- package/src/chip/Chip.tsx +2 -1
- package/src/datetime/NativeDateField.tsx +2 -1
- package/src/datetime/NativeTimeField.tsx +2 -1
- package/src/datetime/useDateField.ts +13 -8
- package/src/datetime/useTimeField.ts +13 -8
- package/src/dialog/Dialog.tsx +2 -1
- package/src/dialog/DialogContainer.tsx +1 -2
- package/src/dialog/DialogContent.tsx +1 -2
- package/src/dialog/DialogFooter.tsx +1 -2
- package/src/divider/Divider.tsx +1 -2
- package/src/draggable/useDraggable.ts +4 -4
- package/src/draggable/utils.ts +4 -2
- package/src/expansion-panel/ExpansionPanelHeader.tsx +1 -2
- package/src/files/FileInput.tsx +2 -1
- package/src/files/useFileUpload.ts +6 -6
- package/src/files/validation.ts +1 -2
- package/src/focus/useFocusContainer.ts +4 -4
- package/src/form/Fieldset.tsx +25 -3
- package/src/form/FormMessageContainer.tsx +1 -2
- package/src/form/FormMessageCounter.tsx +1 -2
- package/src/form/InputToggle.tsx +3 -3
- package/src/form/Legend.tsx +55 -10
- package/src/form/Listbox.tsx +1 -2
- package/src/form/ListboxProvider.ts +3 -2
- package/src/form/NativeSelect.tsx +2 -1
- package/src/form/Password.tsx +4 -2
- package/src/form/ResizingTextAreaWrapper.tsx +1 -2
- package/src/form/Select.tsx +2 -1
- package/src/form/Slider.tsx +2 -1
- package/src/form/SliderContainer.tsx +1 -2
- package/src/form/SliderThumb.tsx +6 -3
- package/src/form/SliderTrack.tsx +2 -1
- package/src/form/SliderValueMarks.tsx +1 -2
- package/src/form/Switch.tsx +2 -1
- package/src/form/TextArea.tsx +1 -2
- package/src/form/TextField.tsx +2 -1
- package/src/form/TextFieldContainer.tsx +1 -2
- package/src/form/fieldsetStyles.ts +18 -3
- package/src/form/inputToggleStyles.ts +4 -2
- package/src/form/labelStyles.ts +1 -1
- package/src/form/legendStyles.ts +132 -0
- package/src/form/selectUtils.ts +3 -2
- package/src/form/textFieldContainerStyles.ts +1 -2
- package/src/form/types.ts +35 -17
- package/src/form/useCheckboxGroup.ts +3 -2
- package/src/form/useCombobox.ts +8 -3
- package/src/form/useNumberField.ts +36 -35
- package/src/form/useRangeSlider.ts +1 -2
- package/src/form/useSlider.ts +1 -2
- package/src/form/useTextField.ts +9 -4
- package/src/hoverMode/useHoverMode.ts +4 -8
- package/src/icon/FontIcon.tsx +1 -2
- package/src/icon/IconRotator.tsx +1 -2
- package/src/icon/MaterialIcon.tsx +2 -1
- package/src/icon/MaterialSymbol.tsx +2 -1
- package/src/icon/SVGIcon.tsx +1 -2
- package/src/icon/config.tsx +10 -7
- package/src/icon/materialConfig.ts +1 -2
- package/src/icon/styles.ts +1 -2
- package/src/interaction/UserInteractionModeProvider.tsx +9 -4
- package/src/interaction/types.ts +1 -2
- package/src/interaction/useElementInteraction.tsx +3 -2
- package/src/layout/LayoutAppBar.tsx +6 -6
- package/src/layout/LayoutNav.tsx +2 -1
- package/src/layout/LayoutWindowSplitter.tsx +2 -1
- package/src/layout/Main.tsx +1 -2
- package/src/layout/useExpandableLayout.ts +63 -5
- package/src/layout/useHorizontalLayoutTransition.ts +1 -2
- package/src/layout/useLayoutTree.ts +2 -2
- package/src/layout/useLayoutWindowSplitter.ts +6 -6
- package/src/layout/useResizableLayout.ts +3 -6
- package/src/link/Link.tsx +1 -2
- package/src/link/SkipToMainContent.tsx +20 -23
- package/src/list/List.tsx +1 -2
- package/src/list/ListItem.tsx +2 -1
- package/src/list/ListItemAddon.tsx +2 -1
- package/src/list/ListItemLink.tsx +2 -1
- package/src/list/ListSubheader.tsx +1 -2
- package/src/list/getListItemHeight.ts +8 -9
- package/src/list/listItemStyles.ts +1 -2
- package/src/list/types.ts +1 -2
- package/src/media-queries/AppSizeProvider.tsx +8 -10
- package/src/media-queries/appSize.ts +3 -0
- package/src/media-queries/config.ts +41 -0
- package/src/menu/DropdownMenu.tsx +4 -5
- package/src/menu/Menu.tsx +2 -1
- package/src/menu/MenuItemButton.tsx +1 -2
- package/src/menu/MenuItemFileInput.tsx +2 -1
- package/src/menu/MenuItemInputToggle.tsx +3 -3
- package/src/menu/MenuItemSeparator.tsx +2 -1
- package/src/menu/MenuVisibilityProvider.tsx +4 -2
- package/src/menu/MenuWidget.tsx +1 -2
- package/src/menu/useContextMenu.ts +4 -2
- package/src/movement/types.ts +52 -13
- package/src/movement/useKeyboardMovementProvider.ts +77 -38
- package/src/navigation/CollapsibleNavGroup.tsx +1 -2
- package/src/navigation/NavItem.tsx +1 -2
- package/src/navigation/NavItemButton.tsx +2 -1
- package/src/navigation/NavItemLink.tsx +2 -1
- package/src/navigation/getTableOfContentsHeadings.ts +1 -2
- package/src/navigation/types.ts +1 -2
- package/src/overlay/Overlay.tsx +2 -1
- package/src/positioning/createHorizontalPosition.ts +10 -12
- package/src/positioning/createVerticalPosition.ts +10 -11
- package/src/positioning/useFixedPositioning.ts +6 -3
- package/src/progress/CircularProgress.tsx +2 -1
- package/src/progress/LinearProgress.tsx +2 -1
- package/src/progress/linearProgressStyles.ts +1 -2
- package/src/responsive-item/ResponsiveItem.tsx +1 -2
- package/src/responsive-item/ResponsiveItemOverlay.tsx +2 -1
- package/src/searching/caseInsensitive.ts +2 -4
- package/src/segmented-button/SegmentedButton.tsx +2 -1
- package/src/segmented-button/SegmentedButtonContainer.tsx +2 -1
- package/src/segmented-button/segmentedButtonStyles.ts +1 -2
- package/src/sheet/Sheet.tsx +1 -2
- package/src/snackbar/Toast.tsx +2 -1
- package/src/spinbutton/SpinButton.tsx +98 -0
- package/src/spinbutton/SpinButtonGroupProvider.tsx +32 -0
- package/src/spinbutton/defaults.ts +45 -0
- package/src/spinbutton/types.ts +413 -0
- package/src/spinbutton/useSpinButton.ts +311 -0
- package/src/spinbutton/useSpinButtonGroupProvider.ts +104 -0
- package/src/spinbutton/utils/deselectNode.ts +17 -0
- package/src/spinbutton/utils/resolveInputEvent.ts +112 -0
- package/src/spinbutton/utils/selectNode.ts +15 -0
- package/src/table/StickyTableSection.tsx +2 -1
- package/src/table/Table.tsx +1 -2
- package/src/table/TableBody.tsx +2 -1
- package/src/table/TableCellContent.tsx +1 -2
- package/src/table/TableCheckbox.tsx +1 -2
- package/src/table/TableFooter.tsx +1 -2
- package/src/table/TableHeader.tsx +1 -2
- package/src/table/TableRadio.tsx +1 -2
- package/src/table/TableRow.tsx +1 -2
- package/src/table/useStickyTableSection.tsx +1 -2
- package/src/tabs/SimpleTabPanel.tsx +2 -1
- package/src/tabs/SimpleTabPanels.tsx +2 -1
- package/src/tabs/Tab.tsx +3 -6
- package/src/tabs/TabList.tsx +2 -1
- package/src/tabs/TabListScrollButton.tsx +1 -2
- package/src/tabs/useMaxTabPanelHeight.ts +7 -4
- package/src/test-utils/data-testid.ts +1 -2
- package/src/test-utils/mocks/match-media.ts +5 -10
- package/src/test-utils/vitest/timers.ts +1 -1
- package/src/tooltip/Tooltip.tsx +2 -1
- package/src/tooltip/TooltipHoverModeProvider.tsx +1 -2
- package/src/tooltip/useTooltip.ts +9 -5
- package/src/transition/CSSTransition.tsx +2 -1
- package/src/transition/Collapse.tsx +4 -2
- package/src/transition/CrossFade.tsx +2 -1
- package/src/transition/ScaleTransition.tsx +2 -1
- package/src/transition/SkeletonPlaceholder.tsx +1 -2
- package/src/transition/Slide.tsx +2 -1
- package/src/transition/SlideContainer.tsx +1 -2
- package/src/transition/types.ts +15 -16
- package/src/transition/useCollapseTransition.ts +6 -5
- package/src/transition/useCrossFadeTransition.ts +3 -2
- package/src/transition/useMaxWidthTransition.ts +1 -2
- package/src/transition/useScaleTransition.ts +3 -2
- package/src/transition/useSkeletonPlaceholder.ts +1 -2
- package/src/tree/Tree.tsx +2 -1
- package/src/tree/TreeItem.tsx +2 -1
- package/src/tree/TreeProvider.tsx +4 -4
- package/src/tree/styles.ts +1 -2
- package/src/tree/types.ts +1 -2
- package/src/tree/useTreeMovement.ts +1 -2
- package/src/typography/HighlightTextMark.tsx +1 -2
- package/src/typography/Mark.tsx +1 -2
- package/src/typography/TextContainer.tsx +1 -2
- package/src/typography/Typography.tsx +1 -2
- package/src/useElementSize.ts +7 -4
- package/src/useIntersectionObserver.ts +3 -2
- package/src/useMutationObserver.ts +3 -2
- package/src/useWindowSize.ts +4 -2
- package/src/utils/getNumberOfDigits.ts +18 -0
- package/src/utils/nearest.ts +2 -1
- package/src/utils/useDevEffect.ts +9 -0
- package/src/window-splitter/WindowSplitter.tsx +5 -2
- package/src/window-splitter/styles.ts +13 -2
- package/src/window-splitter/useWindowSplitter.ts +3 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { cnb } from "cnbuilder";
|
|
2
|
+
|
|
3
|
+
import { cssUtils } from "../cssUtils.js";
|
|
4
|
+
import { bem } from "../utils/bem.js";
|
|
5
|
+
import { getFormConfig } from "./formConfig.js";
|
|
6
|
+
import { label } from "./labelStyles.js";
|
|
7
|
+
import { type FormTheme, type LabelClassNameOptions } from "./types.js";
|
|
8
|
+
|
|
9
|
+
const styles = bem("rmd-legend");
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @since 6.4.0
|
|
13
|
+
*/
|
|
14
|
+
export type LegendLabelClassNameOptions = Pick<
|
|
15
|
+
LabelClassNameOptions,
|
|
16
|
+
"active" | "gap" | "dense" | "error" | "stacked" | "disabled" | "reversed"
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 6.4.0
|
|
21
|
+
*/
|
|
22
|
+
export interface LegendClassNameOptions extends LegendLabelClassNameOptions {
|
|
23
|
+
className?: string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @defaultValue `false`
|
|
27
|
+
*/
|
|
28
|
+
srOnly?: boolean;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Set this to `true` to make the `<legend>` have the styles of a floating label.
|
|
32
|
+
* This requires the parent `<fieldset>` to have the `floatingLegend` flag
|
|
33
|
+
* enabled.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `false`
|
|
36
|
+
*/
|
|
37
|
+
floating?: boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* This will only apply if {@link floating} is `true`.
|
|
41
|
+
*
|
|
42
|
+
* @see {@link FormTheme}
|
|
43
|
+
* @defaultValue `getFormConfig("theme")`
|
|
44
|
+
*/
|
|
45
|
+
theme?: FormTheme;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* This will only apply if {@link floating} is `true`.
|
|
49
|
+
*
|
|
50
|
+
* @see {@link LabelClassNameOptions.active}
|
|
51
|
+
* @defaultValue `false`
|
|
52
|
+
*/
|
|
53
|
+
active?: boolean;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* This will only apply if {@link floating} is `true`.
|
|
57
|
+
*
|
|
58
|
+
* @see {@link LabelClassNameOptions.gap}
|
|
59
|
+
* @defaultValue `false`
|
|
60
|
+
*/
|
|
61
|
+
gap?: boolean;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This will only apply if {@link floating} is `true`.
|
|
65
|
+
*
|
|
66
|
+
* @see {@link LabelClassNameOptions.disabled}
|
|
67
|
+
* @defaultValue `false`
|
|
68
|
+
*/
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* This will only apply if {@link floating} is `true`.
|
|
73
|
+
*
|
|
74
|
+
* @see {@link LabelClassNameOptions.dense}
|
|
75
|
+
* @defaultValue `false`
|
|
76
|
+
*/
|
|
77
|
+
dense?: boolean;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* This will only apply if {@link floating} is `true`.
|
|
81
|
+
*
|
|
82
|
+
* @see {@link LabelClassNameOptions.error}
|
|
83
|
+
* @defaultValue `false`
|
|
84
|
+
*/
|
|
85
|
+
error?: boolean;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This will only apply if {@link floating} is `true`.
|
|
89
|
+
*
|
|
90
|
+
* @see {@link LabelClassNameOptions.stacked}
|
|
91
|
+
* @defaultValue `false`
|
|
92
|
+
*/
|
|
93
|
+
stacked?: boolean;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* This will only apply if {@link floating} is `true`.
|
|
97
|
+
*
|
|
98
|
+
* @see {@link LabelClassNameOptions.reversed}
|
|
99
|
+
* @defaultValue `false`
|
|
100
|
+
*/
|
|
101
|
+
reversed?: boolean;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @since 6.4.0
|
|
106
|
+
*/
|
|
107
|
+
export function legend(options: LegendClassNameOptions = {}): string {
|
|
108
|
+
const {
|
|
109
|
+
className,
|
|
110
|
+
srOnly,
|
|
111
|
+
floating,
|
|
112
|
+
theme = getFormConfig("theme"),
|
|
113
|
+
...labelOptions
|
|
114
|
+
} = options;
|
|
115
|
+
|
|
116
|
+
return cnb(
|
|
117
|
+
styles({
|
|
118
|
+
floating,
|
|
119
|
+
"floating-filled": floating && theme === "filled",
|
|
120
|
+
"floating-underline": floating && theme === "underline",
|
|
121
|
+
"floating-outline": floating && theme === "outline",
|
|
122
|
+
}),
|
|
123
|
+
floating &&
|
|
124
|
+
label({
|
|
125
|
+
...labelOptions,
|
|
126
|
+
floating: true,
|
|
127
|
+
floatingActive: true,
|
|
128
|
+
}),
|
|
129
|
+
cssUtils({ srOnly }),
|
|
130
|
+
className
|
|
131
|
+
);
|
|
132
|
+
}
|
package/src/form/selectUtils.ts
CHANGED
|
@@ -6,8 +6,9 @@ import { type MenuItemProps } from "../menu/MenuItem.js";
|
|
|
6
6
|
* @internal
|
|
7
7
|
* @since 6.0.0
|
|
8
8
|
*/
|
|
9
|
-
export interface SelectOption<
|
|
10
|
-
extends
|
|
9
|
+
export interface SelectOption<
|
|
10
|
+
Value extends string | number = string,
|
|
11
|
+
> extends MenuItemProps {
|
|
11
12
|
value: Value;
|
|
12
13
|
}
|
|
13
14
|
|
|
@@ -8,8 +8,7 @@ const styles = bem("rmd-text-field-container");
|
|
|
8
8
|
|
|
9
9
|
/** @since 6.0.0 */
|
|
10
10
|
export interface TextFieldContainerClassNameOptions
|
|
11
|
-
extends FormThemeOptions,
|
|
12
|
-
FormComponentStates {
|
|
11
|
+
extends FormThemeOptions, FormComponentStates {
|
|
13
12
|
className?: string;
|
|
14
13
|
|
|
15
14
|
/** @defaultValue `false` */
|
package/src/form/types.ts
CHANGED
|
@@ -31,15 +31,27 @@ declare module "react" {
|
|
|
31
31
|
"--rmd-text-field-addon-spacing"?: string | number;
|
|
32
32
|
"--rmd-text-field-addon-margin-top"?: string | number;
|
|
33
33
|
"--rmd-text-field-addon-left-offset"?: string | number;
|
|
34
|
+
/** @since 6.4.0 */
|
|
35
|
+
"--rmd-text-field-base-height"?: string | number;
|
|
34
36
|
"--rmd-text-field-height"?: string | number;
|
|
37
|
+
/** @since 6.4.0 */
|
|
38
|
+
"--rmd-text-field-dense-height"?: string | number;
|
|
39
|
+
/** @since 6.4.0 */
|
|
40
|
+
"--rmd-text-field-label-height"?: string | number;
|
|
41
|
+
/** @since 6.4.0 */
|
|
42
|
+
"--rmd-text-field-dense-label-height"?: string | number;
|
|
35
43
|
"--rmd-text-field-padding-left"?: string | number;
|
|
36
44
|
"--rmd-text-field-padding-right"?: string | number;
|
|
37
45
|
"--rmd-text-field-padding-top"?: string | number;
|
|
38
46
|
"--rmd-text-field-border-color"?: string;
|
|
47
|
+
/** @since 6.4.0 */
|
|
48
|
+
"--rmd-text-field-border-radius"?: string | number;
|
|
39
49
|
"--rmd-text-field-hover-border-color"?: string;
|
|
40
50
|
"--rmd-text-field-filled-color"?: string;
|
|
41
51
|
"--rmd-text-field-filled-padding"?: string | number;
|
|
42
52
|
"--rmd-text-field-outlined-padding"?: string | number;
|
|
53
|
+
/** @since 6.4.0 */
|
|
54
|
+
"--rmd-text-field-outlined-border-radius"?: string | number;
|
|
43
55
|
"--rmd-text-field-underlined-padding"?: string | number;
|
|
44
56
|
}
|
|
45
57
|
}
|
|
@@ -102,20 +114,30 @@ export interface FormConfiguration extends Required<FormThemeOptions> {
|
|
|
102
114
|
}
|
|
103
115
|
|
|
104
116
|
/**
|
|
105
|
-
* @since 6.
|
|
117
|
+
* @since 6.4.0
|
|
106
118
|
*/
|
|
107
|
-
export interface
|
|
119
|
+
export interface InteractableFormComponentStates {
|
|
108
120
|
/** @defaultValue `false` */
|
|
109
|
-
|
|
121
|
+
disabled?: boolean;
|
|
110
122
|
|
|
111
123
|
/** @defaultValue `false` */
|
|
112
|
-
|
|
124
|
+
readOnly?: boolean;
|
|
125
|
+
}
|
|
113
126
|
|
|
127
|
+
/**
|
|
128
|
+
* @since 6.4.0
|
|
129
|
+
*/
|
|
130
|
+
export interface EditableFormComponentStates extends InteractableFormComponentStates {
|
|
114
131
|
/** @defaultValue `false` */
|
|
115
|
-
|
|
132
|
+
error?: boolean;
|
|
133
|
+
}
|
|
116
134
|
|
|
135
|
+
/**
|
|
136
|
+
* @since 6.0.0
|
|
137
|
+
*/
|
|
138
|
+
export interface FormComponentStates extends EditableFormComponentStates {
|
|
117
139
|
/** @defaultValue `false` */
|
|
118
|
-
|
|
140
|
+
active?: boolean;
|
|
119
141
|
}
|
|
120
142
|
|
|
121
143
|
/**
|
|
@@ -255,7 +277,8 @@ export interface FormMessageClassNameOptions {
|
|
|
255
277
|
}
|
|
256
278
|
|
|
257
279
|
export interface FormMessageProps
|
|
258
|
-
extends
|
|
280
|
+
extends
|
|
281
|
+
Omit<HTMLAttributes<HTMLDivElement>, "minLength" | "maxLength">,
|
|
259
282
|
FormMessageClassNameOptions {
|
|
260
283
|
/**
|
|
261
284
|
* If this component is acting as a form-level error message handler, the role
|
|
@@ -359,8 +382,7 @@ export interface FormMessageInputLengthCounterProps {
|
|
|
359
382
|
}
|
|
360
383
|
|
|
361
384
|
export interface FormMessageWithCounterProps
|
|
362
|
-
extends FormMessageProps,
|
|
363
|
-
FormMessageInputLengthCounterProps {}
|
|
385
|
+
extends FormMessageProps, FormMessageInputLengthCounterProps {}
|
|
364
386
|
|
|
365
387
|
/**
|
|
366
388
|
* @since 6.0.0
|
|
@@ -477,14 +499,12 @@ export interface LabelClassNameOptions {
|
|
|
477
499
|
}
|
|
478
500
|
|
|
479
501
|
export interface LabelProps
|
|
480
|
-
extends LabelHTMLAttributes<HTMLLabelElement>,
|
|
481
|
-
LabelClassNameOptions {}
|
|
502
|
+
extends LabelHTMLAttributes<HTMLLabelElement>, LabelClassNameOptions {}
|
|
482
503
|
|
|
483
504
|
/**
|
|
484
505
|
* @since 6.0.0
|
|
485
506
|
*/
|
|
486
|
-
export interface ConfigurableTextFieldAddonProps
|
|
487
|
-
extends HTMLAttributes<HTMLSpanElement> {
|
|
507
|
+
export interface ConfigurableTextFieldAddonProps extends HTMLAttributes<HTMLSpanElement> {
|
|
488
508
|
/**
|
|
489
509
|
* Boolean if the addon should be presentational only and prevent pointer
|
|
490
510
|
* events.
|
|
@@ -519,8 +539,7 @@ export interface TextFieldAddonProps extends ConfigurableTextFieldAddonProps {
|
|
|
519
539
|
* `leftAddonProps` / `rightAddonProps`. Removed `stretch`
|
|
520
540
|
*/
|
|
521
541
|
export interface TextFieldContainerOptions
|
|
522
|
-
extends FormThemeOptions,
|
|
523
|
-
FormComponentStates {
|
|
542
|
+
extends FormThemeOptions, FormComponentStates {
|
|
524
543
|
/**
|
|
525
544
|
* Set this to `true` to enable the dense spec which reduces the height.
|
|
526
545
|
*
|
|
@@ -578,8 +597,7 @@ export interface TextFieldContainerOptions
|
|
|
578
597
|
}
|
|
579
598
|
|
|
580
599
|
export interface FormFieldOptions
|
|
581
|
-
extends TextFieldContainerOptions,
|
|
582
|
-
FormMessageContainerExtension {
|
|
600
|
+
extends TextFieldContainerOptions, FormMessageContainerExtension {
|
|
583
601
|
/**
|
|
584
602
|
* An optional floating label to use with the text field. A label is generally
|
|
585
603
|
* recommended for accessibility, but can be omitted if an `aria-label` or
|
|
@@ -70,8 +70,9 @@ export interface CheckboxGroupImplementation<V extends string> {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/** @since 6.0.0 */
|
|
73
|
-
export interface IndeterminateCheckboxGroupImplementation<
|
|
74
|
-
extends
|
|
73
|
+
export interface IndeterminateCheckboxGroupImplementation<
|
|
74
|
+
V extends string,
|
|
75
|
+
> extends CheckboxGroupImplementation<V> {
|
|
75
76
|
getIndeterminateProps: () => {
|
|
76
77
|
"aria-checked": "mixed" | undefined;
|
|
77
78
|
name: string;
|
package/src/form/useCombobox.ts
CHANGED
|
@@ -141,7 +141,9 @@ export interface ComboboxVisibilityOptions {
|
|
|
141
141
|
export interface ConfigurableComboboxOptions<
|
|
142
142
|
ComboboxEl extends HTMLElement = HTMLInputElement,
|
|
143
143
|
PopupEl extends HTMLElement = HTMLElement,
|
|
144
|
-
>
|
|
144
|
+
>
|
|
145
|
+
extends
|
|
146
|
+
ComboboxKeyboardMovementOptions<ComboboxEl>,
|
|
145
147
|
ComboboxVisibilityOptions {
|
|
146
148
|
/**
|
|
147
149
|
* This is the {@link InputHTMLAttributes.form} attribute and is used to
|
|
@@ -259,7 +261,9 @@ export type ConfigurableComboboxMenuProps = Partial<
|
|
|
259
261
|
*/
|
|
260
262
|
export interface ProvidedComboboxMenuProps<
|
|
261
263
|
PopupEl extends HTMLElement = HTMLDivElement,
|
|
262
|
-
>
|
|
264
|
+
>
|
|
265
|
+
extends
|
|
266
|
+
Required<ComboboxTransitionCallbacks>,
|
|
263
267
|
ComboboxWidgetPopupProps<PopupEl> {
|
|
264
268
|
visible: boolean;
|
|
265
269
|
onRequestClose: () => void;
|
|
@@ -276,7 +280,8 @@ export interface ProvidedComboboxMenuProps<
|
|
|
276
280
|
* @since 6.0.0
|
|
277
281
|
*/
|
|
278
282
|
export interface ComboboxMenuProps<PopupEl extends HTMLElement = HTMLDivElement>
|
|
279
|
-
extends
|
|
283
|
+
extends
|
|
284
|
+
Omit<ConfigurableComboboxMenuProps, keyof ProvidedComboboxMenuProps>,
|
|
280
285
|
ProvidedComboboxMenuProps<PopupEl> {}
|
|
281
286
|
|
|
282
287
|
/**
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useRef, useState } from "react";
|
|
4
4
|
|
|
5
5
|
import { type UseStateInitializer, type UseStateSetter } from "../types.js";
|
|
6
|
+
import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
|
|
6
7
|
import { withinRange } from "../utils/withinRange.js";
|
|
7
8
|
import { useFormReset } from "./useFormReset.js";
|
|
8
9
|
import {
|
|
@@ -47,7 +48,8 @@ export interface NumberFieldConstraints {
|
|
|
47
48
|
* - Renamed `fixOnBlur` to `updateValueOnBlur`
|
|
48
49
|
*/
|
|
49
50
|
export interface NumberFieldHookOptions
|
|
50
|
-
extends
|
|
51
|
+
extends
|
|
52
|
+
Omit<TextFieldHookOptions, "defaultValue" | "isNumber">,
|
|
51
53
|
NumberFieldConstraints {
|
|
52
54
|
/**
|
|
53
55
|
* @defaultValue `undefined`
|
|
@@ -112,42 +114,45 @@ export interface NumberFieldHookOptions
|
|
|
112
114
|
}
|
|
113
115
|
|
|
114
116
|
/** @since 6.0.0 */
|
|
115
|
-
export interface NumberFieldHookState
|
|
116
|
-
|
|
117
|
+
export interface NumberFieldHookState extends Omit<
|
|
118
|
+
TextFieldHookState,
|
|
119
|
+
"value"
|
|
120
|
+
> {
|
|
117
121
|
value: number | undefined;
|
|
118
122
|
}
|
|
119
123
|
|
|
120
124
|
/** @since 2.5.6 */
|
|
121
125
|
export interface ProvidedNumberFieldProps
|
|
122
|
-
extends ProvidedTextFieldProps,
|
|
123
|
-
NumberFieldConstraints {
|
|
126
|
+
extends ProvidedTextFieldProps, NumberFieldConstraints {
|
|
124
127
|
type: "number";
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
/** @since 2.5.6 */
|
|
128
131
|
export interface ProvidedNumberFieldMessageProps
|
|
129
|
-
extends ProvidedTextFieldMessageProps,
|
|
130
|
-
NumberFieldConstraints {
|
|
132
|
+
extends ProvidedTextFieldMessageProps, NumberFieldConstraints {
|
|
131
133
|
type: "number";
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
/** @since 6.0.0 */
|
|
135
|
-
export interface NumberFieldImplementation
|
|
136
|
-
|
|
137
|
+
export interface NumberFieldImplementation extends Omit<
|
|
138
|
+
TextFieldImplementation,
|
|
139
|
+
"value" | "setState"
|
|
140
|
+
> {
|
|
137
141
|
value: number | undefined;
|
|
138
142
|
setState: UseStateSetter<NumberFieldHookState>;
|
|
139
143
|
fieldProps: ProvidedNumberFieldProps;
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
/** @since 6.0.0 */
|
|
143
|
-
export interface NumberFieldWithMessageImplementation
|
|
144
|
-
extends NumberFieldImplementation {
|
|
147
|
+
export interface NumberFieldWithMessageImplementation extends NumberFieldImplementation {
|
|
145
148
|
fieldProps: ProvidedNumberFieldMessageProps;
|
|
146
149
|
}
|
|
147
150
|
|
|
148
151
|
/** @since 6.0.0 */
|
|
149
|
-
export interface ValidatedNumberFieldImplementation
|
|
150
|
-
|
|
152
|
+
export interface ValidatedNumberFieldImplementation extends Omit<
|
|
153
|
+
ValidatedTextFieldImplementation,
|
|
154
|
+
"value" | "setState"
|
|
155
|
+
> {
|
|
151
156
|
value: number | undefined;
|
|
152
157
|
setState: UseStateSetter<NumberFieldHookState>;
|
|
153
158
|
fieldProps: ProvidedNumberFieldProps | ProvidedNumberFieldMessageProps;
|
|
@@ -439,35 +444,31 @@ export function useNumberField(
|
|
|
439
444
|
},
|
|
440
445
|
});
|
|
441
446
|
|
|
447
|
+
const { error, errorMessage } = remaining;
|
|
448
|
+
const prevState = useRef({
|
|
449
|
+
error,
|
|
450
|
+
errorMessage,
|
|
451
|
+
value: number,
|
|
452
|
+
} satisfies NumberFieldHookState);
|
|
453
|
+
useIsomorphicLayoutEffect(() => {
|
|
454
|
+
prevState.current = {
|
|
455
|
+
error,
|
|
456
|
+
errorMessage,
|
|
457
|
+
value: number,
|
|
458
|
+
};
|
|
459
|
+
});
|
|
442
460
|
const reset = useCallback(() => {
|
|
443
461
|
resetTextField();
|
|
444
462
|
setNumber(initial.current);
|
|
445
463
|
}, [resetTextField]);
|
|
446
464
|
const setState = useCallback<UseStateSetter<NumberFieldHookState>>(
|
|
447
465
|
(nextState) => {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
const updated = nextState({
|
|
453
|
-
...prevState,
|
|
454
|
-
value: prevNumber,
|
|
455
|
-
});
|
|
456
|
-
|
|
457
|
-
nextNumber = updated.value;
|
|
458
|
-
|
|
459
|
-
return {
|
|
460
|
-
...updated,
|
|
461
|
-
value: `${nextNumber ?? ""}`,
|
|
462
|
-
};
|
|
463
|
-
});
|
|
464
|
-
|
|
465
|
-
return nextNumber;
|
|
466
|
-
});
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
466
|
+
const resolvedNextState =
|
|
467
|
+
typeof nextState === "function"
|
|
468
|
+
? nextState(prevState.current)
|
|
469
|
+
: nextState;
|
|
469
470
|
|
|
470
|
-
const { value, error, errorMessage } =
|
|
471
|
+
const { value, error, errorMessage } = resolvedNextState;
|
|
471
472
|
setNumber(value);
|
|
472
473
|
setTextFieldState({
|
|
473
474
|
value: `${value ?? ""}`,
|
|
@@ -31,8 +31,7 @@ export interface RangeSliderOptions extends SliderValueOptions {
|
|
|
31
31
|
* @since 6.0.0
|
|
32
32
|
*/
|
|
33
33
|
export interface RangeSliderImplementation
|
|
34
|
-
extends Required<SliderValueOptions>,
|
|
35
|
-
RangeSliderState {}
|
|
34
|
+
extends Required<SliderValueOptions>, RangeSliderState {}
|
|
36
35
|
|
|
37
36
|
/**
|
|
38
37
|
* @example Range Slider Example
|
package/src/form/useSlider.ts
CHANGED
package/src/form/useTextField.ts
CHANGED
|
@@ -125,7 +125,8 @@ export interface TextFieldHookState {
|
|
|
125
125
|
* @since 2.5.0
|
|
126
126
|
*/
|
|
127
127
|
export interface ProvidedFormMessageProps
|
|
128
|
-
extends
|
|
128
|
+
extends
|
|
129
|
+
Pick<FormMessageProps, "id" | "theme" | "children">,
|
|
129
130
|
Required<Pick<TextFieldProps, "error">>,
|
|
130
131
|
Partial<Pick<FormMessageInputLengthCounterProps, "length" | "maxLength">> {}
|
|
131
132
|
|
|
@@ -137,8 +138,10 @@ export interface ProvidedFormMessageProps
|
|
|
137
138
|
*/
|
|
138
139
|
export interface ProvidedTextFieldProps<
|
|
139
140
|
E extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,
|
|
140
|
-
>
|
|
141
|
-
|
|
141
|
+
>
|
|
142
|
+
extends
|
|
143
|
+
TextFieldValidationOptions,
|
|
144
|
+
Required<TextFieldChangeHandlers<E>>,
|
|
142
145
|
Required<Pick<TextFieldProps, "id" | "name" | "value" | "error">>,
|
|
143
146
|
Pick<TextFieldProps, "aria-describedby" | "rightAddon"> {
|
|
144
147
|
/**
|
|
@@ -288,7 +291,9 @@ export interface TextFieldHookComponentOptions<
|
|
|
288
291
|
/** @since 2.5.6 */
|
|
289
292
|
export interface TextFieldHookOptions<
|
|
290
293
|
E extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,
|
|
291
|
-
>
|
|
294
|
+
>
|
|
295
|
+
extends
|
|
296
|
+
TextFieldValidationOptions,
|
|
292
297
|
TextFieldHookComponentOptions<E>,
|
|
293
298
|
TextFieldChangeHandlers<E> {
|
|
294
299
|
/**
|
|
@@ -36,8 +36,7 @@ export interface HoverModeConfigurationOptions extends SimpleHoverModeContext {
|
|
|
36
36
|
/**
|
|
37
37
|
* @since 6.0.0
|
|
38
38
|
*/
|
|
39
|
-
export interface ControlledHoverModeOptions
|
|
40
|
-
extends HoverModeConfigurationOptions {
|
|
39
|
+
export interface ControlledHoverModeOptions extends HoverModeConfigurationOptions {
|
|
41
40
|
setVisible: UseStateSetter<boolean>;
|
|
42
41
|
}
|
|
43
42
|
|
|
@@ -53,16 +52,14 @@ export interface ControlledHoverModeImplementation {
|
|
|
53
52
|
/**
|
|
54
53
|
* @since 6.0.0
|
|
55
54
|
*/
|
|
56
|
-
export interface UncontrolledHoverModeOptions
|
|
57
|
-
extends HoverModeConfigurationOptions {
|
|
55
|
+
export interface UncontrolledHoverModeOptions extends HoverModeConfigurationOptions {
|
|
58
56
|
defaultVisible?: UseStateInitializer<boolean>;
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
/**
|
|
62
60
|
* @since 6.0.0
|
|
63
61
|
*/
|
|
64
|
-
export interface UncontrolledHoverModeImplementation
|
|
65
|
-
extends ControlledHoverModeImplementation {
|
|
62
|
+
export interface UncontrolledHoverModeImplementation extends ControlledHoverModeImplementation {
|
|
66
63
|
visible: boolean;
|
|
67
64
|
setVisible: UseStateSetter<boolean>;
|
|
68
65
|
}
|
|
@@ -70,8 +67,7 @@ export interface UncontrolledHoverModeImplementation
|
|
|
70
67
|
/**
|
|
71
68
|
* @since 6.0.0
|
|
72
69
|
*/
|
|
73
|
-
export interface HoverModeImplementation
|
|
74
|
-
extends ControlledHoverModeImplementation {
|
|
70
|
+
export interface HoverModeImplementation extends ControlledHoverModeImplementation {
|
|
75
71
|
visible?: boolean;
|
|
76
72
|
setVisible?: UseStateSetter<boolean>;
|
|
77
73
|
}
|
package/src/icon/FontIcon.tsx
CHANGED
|
@@ -12,8 +12,7 @@ import { type FontIconClassNameOptions, icon } from "./styles.js";
|
|
|
12
12
|
* `inline` and `theme` props.
|
|
13
13
|
*/
|
|
14
14
|
export interface FontIconProps
|
|
15
|
-
extends HTMLAttributes<HTMLSpanElement>,
|
|
16
|
-
FontIconClassNameOptions {
|
|
15
|
+
extends HTMLAttributes<HTMLSpanElement>, FontIconClassNameOptions {
|
|
17
16
|
/** @defaultValue `true` */
|
|
18
17
|
"aria-hidden"?: AriaAttributes["aria-hidden"];
|
|
19
18
|
|
package/src/icon/IconRotator.tsx
CHANGED
|
@@ -15,8 +15,7 @@ import { type IconRotatorClassNameOptions, iconRotator } from "./styles.js";
|
|
|
15
15
|
* @since 6.0.0 Removed `animate` prop and added `disableTransition`
|
|
16
16
|
*/
|
|
17
17
|
export interface IconRotatorBaseProps
|
|
18
|
-
extends HTMLAttributes<HTMLSpanElement>,
|
|
19
|
-
IconRotatorClassNameOptions {
|
|
18
|
+
extends HTMLAttributes<HTMLSpanElement>, IconRotatorClassNameOptions {
|
|
20
19
|
/**
|
|
21
20
|
* An optional style to apply to the surrounding span when the `forceIconWrap`
|
|
22
21
|
* prop is enabled or the children is not a single react element.
|
|
@@ -6,7 +6,8 @@ import { type MaterialIconClassNameOptions, icon } from "./styles.js";
|
|
|
6
6
|
|
|
7
7
|
/** @since 6.0.0 */
|
|
8
8
|
export interface MaterialIconProps
|
|
9
|
-
extends
|
|
9
|
+
extends
|
|
10
|
+
HTMLAttributes<HTMLSpanElement>,
|
|
10
11
|
Partial<MaterialIconClassNameOptions> {
|
|
11
12
|
/**
|
|
12
13
|
* The icon name to use
|
|
@@ -24,7 +24,8 @@ declare module "react" {
|
|
|
24
24
|
* @since 6.0.0
|
|
25
25
|
*/
|
|
26
26
|
export interface MaterialSymbolProps
|
|
27
|
-
extends
|
|
27
|
+
extends
|
|
28
|
+
HTMLAttributes<HTMLSpanElement>,
|
|
28
29
|
MaterialSymbolCustomization,
|
|
29
30
|
Partial<MaterialSymbolClassNameOptions> {
|
|
30
31
|
/** @defaultValue `true` */
|
package/src/icon/SVGIcon.tsx
CHANGED
|
@@ -6,8 +6,7 @@ import { type SVGIconClassNameOptions, icon } from "./styles.js";
|
|
|
6
6
|
* @since 6.0.0 Added the `inline` and `theme` props.
|
|
7
7
|
*/
|
|
8
8
|
export interface SVGIconProps
|
|
9
|
-
extends HTMLAttributes<SVGSVGElement>,
|
|
10
|
-
SVGIconClassNameOptions {
|
|
9
|
+
extends HTMLAttributes<SVGSVGElement>, SVGIconClassNameOptions {
|
|
11
10
|
/**
|
|
12
11
|
* Boolean if the SVG should gain the `focusable` attribute. This is disabled
|
|
13
12
|
* by default since IE11 and Edge actually default this to true and keyboard's
|
package/src/icon/config.tsx
CHANGED
|
@@ -213,7 +213,6 @@ export type ConfigurableIconName = keyof ConfigurableIcons;
|
|
|
213
213
|
* ICON_CONFIG.upload = <FileUploadIcon />;
|
|
214
214
|
* ```
|
|
215
215
|
*
|
|
216
|
-
*
|
|
217
216
|
* @since 6.0.0
|
|
218
217
|
*/
|
|
219
218
|
export const ICON_CONFIG: ConfiguredIcons = {
|
|
@@ -289,13 +288,17 @@ export const ICON_CONFIG: ConfiguredIcons = {
|
|
|
289
288
|
* @since 6.0.0
|
|
290
289
|
*/
|
|
291
290
|
export function configureIcons(overrides: ConfiguredIcons): void {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
291
|
+
if (process.env.NODE_ENV !== "production") {
|
|
292
|
+
Object.entries(overrides).forEach(([name, value]) => {
|
|
293
|
+
if (!(name in ICON_CONFIG)) {
|
|
294
|
+
throw new Error(`${name} is an invalid react-md icon name.`);
|
|
295
|
+
}
|
|
296
296
|
|
|
297
|
-
|
|
298
|
-
|
|
297
|
+
ICON_CONFIG[name as keyof ConfiguredIcons] = value;
|
|
298
|
+
});
|
|
299
|
+
} else {
|
|
300
|
+
Object.assign(ICON_CONFIG, overrides);
|
|
301
|
+
}
|
|
299
302
|
}
|
|
300
303
|
|
|
301
304
|
/**
|
|
@@ -152,8 +152,7 @@ export type MaterialSymbolConfiguration = Required<MaterialSymbolCustomization>;
|
|
|
152
152
|
* @since 6.0.0
|
|
153
153
|
*/
|
|
154
154
|
export interface MaterialConfiguration
|
|
155
|
-
extends MaterialIconConfiguration,
|
|
156
|
-
MaterialSymbolConfiguration {}
|
|
155
|
+
extends MaterialIconConfiguration, MaterialSymbolConfiguration {}
|
|
157
156
|
|
|
158
157
|
/**
|
|
159
158
|
* @since 6.0.0
|
package/src/icon/styles.ts
CHANGED
|
@@ -87,8 +87,7 @@ export interface MaterialIconClassNameOptions extends SVGIconClassNameOptions {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/** @since 6.0.0 */
|
|
90
|
-
export interface MaterialSymbolClassNameOptions
|
|
91
|
-
extends SVGIconClassNameOptions {
|
|
90
|
+
export interface MaterialSymbolClassNameOptions extends SVGIconClassNameOptions {
|
|
92
91
|
family: MaterialSymbolFamily;
|
|
93
92
|
}
|
|
94
93
|
|