@react-md/core 6.3.4 → 6.5.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/_a11y.scss +3 -1
- package/dist/_base.scss +3 -0
- package/dist/_box-shadows.scss +20 -12
- package/dist/_core.scss +2 -1
- package/dist/_utils.scss +32 -10
- package/dist/app-bar/AppBar.js.map +1 -1
- package/dist/app-bar/AppBarTitle.js.map +1 -1
- package/dist/app-bar/_app-bar.scss +3 -3
- package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
- package/dist/autocomplete/_autocomplete.scss +20 -16
- 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/avatar/_avatar.scss +2 -1
- package/dist/button/Button.js.map +1 -1
- package/dist/button/FloatingActionButton.js.map +1 -1
- package/dist/button/_button.scss +9 -5
- 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/card/_card.scss +6 -6
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/_chip.scss +6 -6
- 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/dialog/_dialog.scss +6 -6
- package/dist/divider/Divider.js.map +1 -1
- package/dist/divider/_divider.scss +6 -2
- 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.d.ts +24 -0
- package/dist/form/Select.js +14 -3
- package/dist/form/Select.js.map +1 -1
- package/dist/form/SelectedOption.d.ts +1 -2
- package/dist/form/SelectedOption.js +2 -2
- package/dist/form/SelectedOption.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/_input-toggle.scss +6 -5
- package/dist/form/_label.scss +2 -2
- package/dist/form/_legend.scss +77 -0
- package/dist/form/_slider.scss +7 -5
- package/dist/form/_switch.scss +7 -5
- package/dist/form/_text-field.scss +52 -15
- package/dist/form/defaultGetSelectedOptionChildren.d.ts +1 -0
- 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/getSelectedOptionChildren.d.ts +1 -0
- 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.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/_interaction.scss +5 -3
- 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/snackbar/_snackbar.scss +3 -3
- 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/_tabs.scss +5 -6
- 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/theme/_a11y.scss +3 -1
- package/dist/theme/_theme.scss +16 -12
- 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 +65 -19
- 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/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 +55 -3
- package/src/form/SelectedOption.tsx +2 -4
- 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 +8 -3
- 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
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
type KeyboardMovementContext,
|
|
29
29
|
type KeyboardMovementProviderImplementation,
|
|
30
30
|
type KeyboardMovementProviderOptions,
|
|
31
|
+
type KeyboardMovementUpdateFocusIndexOptions,
|
|
31
32
|
} from "./types.js";
|
|
32
33
|
import {
|
|
33
34
|
getFirstFocusableIndex,
|
|
@@ -62,6 +63,8 @@ export const DEFAULT_KEYBOARD_MOVEMENT_CONTEXT: Readonly<KeyboardMovementContext
|
|
|
62
63
|
focusNext: noop,
|
|
63
64
|
focusPrevious: noop,
|
|
64
65
|
focusFromKey: noop,
|
|
66
|
+
focusCurrent: (): undefined => {},
|
|
67
|
+
updateFocusIndex: noop,
|
|
65
68
|
};
|
|
66
69
|
|
|
67
70
|
/**
|
|
@@ -291,14 +294,18 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
291
294
|
|
|
292
295
|
return getFocusableElements(container, programmatic);
|
|
293
296
|
}, [getFocusableElements, nodeRef, programmatic]);
|
|
294
|
-
const
|
|
295
|
-
(
|
|
296
|
-
|
|
297
|
+
const focusCurrent = useCallback(
|
|
298
|
+
(focusables = getFocusableElementsFromRef()): HTMLElement | undefined => {
|
|
299
|
+
const index = currentFocusIndex.current;
|
|
300
|
+
if (index === -1) {
|
|
297
301
|
return;
|
|
298
302
|
}
|
|
299
303
|
|
|
300
|
-
currentFocusIndex.current = index;
|
|
301
304
|
const focused = focusables[index];
|
|
305
|
+
if (!focused) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
|
|
302
309
|
if (tabIndexBehavior) {
|
|
303
310
|
focused.scrollIntoView({
|
|
304
311
|
block: "nearest",
|
|
@@ -311,65 +318,89 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
311
318
|
focused.focus();
|
|
312
319
|
}
|
|
313
320
|
|
|
314
|
-
|
|
321
|
+
return focused;
|
|
322
|
+
},
|
|
323
|
+
[getFocusableElementsFromRef, tabIndexBehavior]
|
|
324
|
+
);
|
|
325
|
+
const updateFocusIndex = useCallback(
|
|
326
|
+
(options: KeyboardMovementUpdateFocusIndexOptions) => {
|
|
327
|
+
const {
|
|
315
328
|
index,
|
|
316
|
-
|
|
317
|
-
|
|
329
|
+
force,
|
|
330
|
+
focusables = getFocusableElementsFromRef(),
|
|
331
|
+
} = options;
|
|
332
|
+
const isSameIndex = currentFocusIndex.current === index;
|
|
333
|
+
if ((!force && isSameIndex) || index === -1) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
currentFocusIndex.current = index;
|
|
338
|
+
const focused = focusCurrent(focusables);
|
|
339
|
+
if (focused && !isSameIndex) {
|
|
340
|
+
onFocusChange({
|
|
341
|
+
index,
|
|
342
|
+
element: focused,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
318
345
|
},
|
|
319
|
-
[getFocusableElementsFromRef, onFocusChange
|
|
346
|
+
[focusCurrent, getFocusableElementsFromRef, onFocusChange]
|
|
320
347
|
);
|
|
321
348
|
|
|
322
349
|
const focusNext = useCallback(
|
|
323
|
-
(focusables = getFocusableElementsFromRef()) => {
|
|
324
|
-
updateFocusIndex(
|
|
325
|
-
getNextFocusableIndex({
|
|
350
|
+
(focusables = getFocusableElementsFromRef(), force = false) => {
|
|
351
|
+
updateFocusIndex({
|
|
352
|
+
index: getNextFocusableIndex({
|
|
326
353
|
loopable,
|
|
327
354
|
increment: true,
|
|
328
355
|
focusables,
|
|
329
356
|
includeDisabled: true,
|
|
330
357
|
currentFocusIndex: currentFocusIndex.current,
|
|
331
358
|
}),
|
|
332
|
-
|
|
333
|
-
|
|
359
|
+
force,
|
|
360
|
+
focusables,
|
|
361
|
+
});
|
|
334
362
|
},
|
|
335
363
|
[getFocusableElementsFromRef, loopable, updateFocusIndex]
|
|
336
364
|
);
|
|
337
365
|
const focusPrevious = useCallback(
|
|
338
|
-
(focusables = getFocusableElementsFromRef()) => {
|
|
339
|
-
updateFocusIndex(
|
|
340
|
-
getNextFocusableIndex({
|
|
366
|
+
(focusables = getFocusableElementsFromRef(), force = false) => {
|
|
367
|
+
updateFocusIndex({
|
|
368
|
+
index: getNextFocusableIndex({
|
|
341
369
|
loopable,
|
|
342
370
|
increment: false,
|
|
343
371
|
focusables,
|
|
344
372
|
includeDisabled: true,
|
|
345
373
|
currentFocusIndex: currentFocusIndex.current,
|
|
346
374
|
}),
|
|
347
|
-
|
|
348
|
-
|
|
375
|
+
force,
|
|
376
|
+
focusables,
|
|
377
|
+
});
|
|
349
378
|
},
|
|
350
379
|
[getFocusableElementsFromRef, loopable, updateFocusIndex]
|
|
351
380
|
);
|
|
352
381
|
const focusFirst = useCallback(
|
|
353
|
-
(focusables = getFocusableElementsFromRef()) => {
|
|
354
|
-
updateFocusIndex(
|
|
355
|
-
getFirstFocusableIndex({
|
|
382
|
+
(focusables = getFocusableElementsFromRef(), force = false) => {
|
|
383
|
+
updateFocusIndex({
|
|
384
|
+
index: getFirstFocusableIndex({
|
|
356
385
|
focusables,
|
|
357
386
|
includeDisabled,
|
|
358
387
|
}),
|
|
359
|
-
|
|
360
|
-
|
|
388
|
+
force,
|
|
389
|
+
focusables,
|
|
390
|
+
});
|
|
361
391
|
},
|
|
362
392
|
[getFocusableElementsFromRef, includeDisabled, updateFocusIndex]
|
|
363
393
|
);
|
|
364
394
|
const focusLast = useCallback(
|
|
365
|
-
(focusables = getFocusableElementsFromRef()) => {
|
|
366
|
-
updateFocusIndex(
|
|
367
|
-
getLastFocusableIndex({
|
|
395
|
+
(focusables = getFocusableElementsFromRef(), force = false) => {
|
|
396
|
+
updateFocusIndex({
|
|
397
|
+
index: getLastFocusableIndex({
|
|
368
398
|
focusables,
|
|
369
399
|
includeDisabled,
|
|
370
400
|
}),
|
|
371
|
-
|
|
372
|
-
|
|
401
|
+
force,
|
|
402
|
+
focusables,
|
|
403
|
+
});
|
|
373
404
|
},
|
|
374
405
|
[getFocusableElementsFromRef, includeDisabled, updateFocusIndex]
|
|
375
406
|
);
|
|
@@ -377,6 +408,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
377
408
|
(options: KeyboardFocusFromKeyOptions) => {
|
|
378
409
|
const {
|
|
379
410
|
key,
|
|
411
|
+
force,
|
|
380
412
|
reversed,
|
|
381
413
|
focusables = getFocusableElementsFromRef(),
|
|
382
414
|
} = options;
|
|
@@ -391,7 +423,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
391
423
|
),
|
|
392
424
|
startIndex: reversed ? -1 : currentFocusIndex.current,
|
|
393
425
|
});
|
|
394
|
-
updateFocusIndex(index, focusables);
|
|
426
|
+
updateFocusIndex({ index, force, focusables });
|
|
395
427
|
},
|
|
396
428
|
[getFocusableElementsFromRef, includeDisabled, searchable, updateFocusIndex]
|
|
397
429
|
);
|
|
@@ -407,12 +439,15 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
407
439
|
focusNext,
|
|
408
440
|
focusPrevious,
|
|
409
441
|
focusFromKey,
|
|
442
|
+
focusCurrent,
|
|
443
|
+
updateFocusIndex,
|
|
410
444
|
includeDisabled,
|
|
411
445
|
tabIndexBehavior,
|
|
412
446
|
activeDescendantId,
|
|
413
447
|
}),
|
|
414
448
|
[
|
|
415
449
|
activeDescendantId,
|
|
450
|
+
focusCurrent,
|
|
416
451
|
focusFirst,
|
|
417
452
|
focusFromKey,
|
|
418
453
|
focusLast,
|
|
@@ -423,6 +458,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
423
458
|
loopable,
|
|
424
459
|
searchable,
|
|
425
460
|
tabIndexBehavior,
|
|
461
|
+
updateFocusIndex,
|
|
426
462
|
]
|
|
427
463
|
);
|
|
428
464
|
|
|
@@ -557,7 +593,7 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
557
593
|
): void => {
|
|
558
594
|
event.preventDefault();
|
|
559
595
|
event.stopPropagation();
|
|
560
|
-
updateFocusIndex(index, focusables);
|
|
596
|
+
updateFocusIndex({ index, focusables });
|
|
561
597
|
};
|
|
562
598
|
|
|
563
599
|
extendKeyDown({
|
|
@@ -619,7 +655,13 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
619
655
|
}
|
|
620
656
|
|
|
621
657
|
if (trackTabKeys && key === "Tab") {
|
|
622
|
-
currentFocusIndex.current
|
|
658
|
+
currentFocusIndex.current = getNextFocusableIndex({
|
|
659
|
+
loopable,
|
|
660
|
+
increment: !event.shiftKey,
|
|
661
|
+
focusables: getFocusableElements(currentTarget, programmatic),
|
|
662
|
+
includeDisabled,
|
|
663
|
+
currentFocusIndex: currentFocusIndex.current,
|
|
664
|
+
});
|
|
623
665
|
return;
|
|
624
666
|
}
|
|
625
667
|
|
|
@@ -633,21 +675,18 @@ export function useKeyboardMovementProvider<E extends HTMLElement>(
|
|
|
633
675
|
!increment &&
|
|
634
676
|
decrementKeys.includes(key);
|
|
635
677
|
|
|
636
|
-
if (jumpToFirst) {
|
|
678
|
+
if (jumpToFirst || jumpToLast || increment || decrement) {
|
|
637
679
|
event.preventDefault();
|
|
638
680
|
event.stopPropagation();
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
if (jumpToFirst) {
|
|
639
684
|
focusFirst();
|
|
640
685
|
} else if (jumpToLast) {
|
|
641
|
-
event.preventDefault();
|
|
642
|
-
event.stopPropagation();
|
|
643
686
|
focusLast();
|
|
644
687
|
} else if (increment) {
|
|
645
|
-
event.preventDefault();
|
|
646
|
-
event.stopPropagation();
|
|
647
688
|
focusNext();
|
|
648
689
|
} else if (decrement) {
|
|
649
|
-
event.preventDefault();
|
|
650
|
-
event.stopPropagation();
|
|
651
690
|
focusPrevious();
|
|
652
691
|
}
|
|
653
692
|
},
|
|
@@ -23,8 +23,7 @@ const noop = (): void => {
|
|
|
23
23
|
* @since 6.0.0
|
|
24
24
|
*/
|
|
25
25
|
export interface CollapsibleNavGroupProps
|
|
26
|
-
extends NavGroupProps,
|
|
27
|
-
NavItemButtonRotatorProps {
|
|
26
|
+
extends NavGroupProps, NavItemButtonRotatorProps {
|
|
28
27
|
liProps?: PropsWithRef<LiHTMLAttributes<HTMLLIElement>>;
|
|
29
28
|
buttonProps?: PropsWithRef<ButtonProps>;
|
|
30
29
|
collapseOptions?: Omit<
|
|
@@ -8,8 +8,7 @@ import { type NavItemClassNameOptions, navItem } from "./navItemStyles.js";
|
|
|
8
8
|
* augmentation.
|
|
9
9
|
*/
|
|
10
10
|
export interface NavItemProps
|
|
11
|
-
extends LiHTMLAttributes<HTMLLIElement>,
|
|
12
|
-
NavItemClassNameOptions {
|
|
11
|
+
extends LiHTMLAttributes<HTMLLIElement>, NavItemClassNameOptions {
|
|
13
12
|
children: ReactNode;
|
|
14
13
|
}
|
|
15
14
|
|
|
@@ -25,7 +25,8 @@ export interface NavItemButtonRotatorProps {
|
|
|
25
25
|
* @since 6.0.0
|
|
26
26
|
*/
|
|
27
27
|
export interface NavItemButtonProps
|
|
28
|
-
extends
|
|
28
|
+
extends
|
|
29
|
+
Omit<ButtonProps, "children">,
|
|
29
30
|
NavItemButtonRotatorProps,
|
|
30
31
|
NavItemContentProps {
|
|
31
32
|
onClick: MouseEventHandler<HTMLButtonElement>;
|
|
@@ -25,7 +25,8 @@ import {
|
|
|
25
25
|
* @since 6.0.0
|
|
26
26
|
*/
|
|
27
27
|
export interface NavItemLinkProps
|
|
28
|
-
extends
|
|
28
|
+
extends
|
|
29
|
+
Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "children">,
|
|
29
30
|
NavItemContentProps,
|
|
30
31
|
ComponentWithRippleProps {
|
|
31
32
|
/** @defaultValue `"a"` */
|
|
@@ -8,8 +8,7 @@ import {
|
|
|
8
8
|
* @internal
|
|
9
9
|
* @since 6.0.0
|
|
10
10
|
*/
|
|
11
|
-
export interface GetTableOfContentsHeadingsOptions
|
|
12
|
-
extends Required<TableOfContentsHeadingsOptions> {
|
|
11
|
+
export interface GetTableOfContentsHeadingsOptions extends Required<TableOfContentsHeadingsOptions> {
|
|
13
12
|
ssr: boolean;
|
|
14
13
|
}
|
|
15
14
|
|
package/src/navigation/types.ts
CHANGED
|
@@ -265,8 +265,7 @@ export interface TableOfContentsHeading extends HeadingReference {
|
|
|
265
265
|
|
|
266
266
|
/** @since 6.0.0 */
|
|
267
267
|
export interface TableOfContentsHeadingItem
|
|
268
|
-
extends TableOfContentsHeading,
|
|
269
|
-
HeadingReferenceWithChildren {
|
|
268
|
+
extends TableOfContentsHeading, HeadingReferenceWithChildren {
|
|
270
269
|
items?: TableOfContentsHeadingItem[];
|
|
271
270
|
}
|
|
272
271
|
|
package/src/overlay/Overlay.tsx
CHANGED
|
@@ -31,13 +31,12 @@ export interface HorizontalFixConfig extends XCoordConfig {
|
|
|
31
31
|
/**
|
|
32
32
|
* @internal
|
|
33
33
|
*/
|
|
34
|
-
export interface CreateHorizontalPositionOptions
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
> {
|
|
34
|
+
export interface CreateHorizontalPositionOptions extends Required<
|
|
35
|
+
Pick<
|
|
36
|
+
FixedPositionOptions,
|
|
37
|
+
"vwMargin" | "xMargin" | "width" | "disableSwapping"
|
|
38
|
+
>
|
|
39
|
+
> {
|
|
41
40
|
x: HorizontalPosition;
|
|
42
41
|
vw: number;
|
|
43
42
|
elWidth: number;
|
|
@@ -205,11 +204,10 @@ export function createAnchoredRight(config: HorizontalFixConfig): XPosition {
|
|
|
205
204
|
return { actualX, left };
|
|
206
205
|
}
|
|
207
206
|
|
|
208
|
-
export interface EqualWidthOptions
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
> {
|
|
207
|
+
export interface EqualWidthOptions extends Pick<
|
|
208
|
+
CreateHorizontalPositionOptions,
|
|
209
|
+
"x" | "elWidth" | "xMargin" | "vwMargin" | "containerRect" | "initialX"
|
|
210
|
+
> {
|
|
213
211
|
screenRight: number;
|
|
214
212
|
isMinWidth: boolean;
|
|
215
213
|
}
|
|
@@ -27,17 +27,16 @@ export interface VerticalFixConfig extends YCoordConfig {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/** @internal */
|
|
30
|
-
export interface CreateVerticalPositionOptions
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
> {
|
|
30
|
+
export interface CreateVerticalPositionOptions extends Required<
|
|
31
|
+
Pick<
|
|
32
|
+
FixedPositionOptions,
|
|
33
|
+
| "yMargin"
|
|
34
|
+
| "vhMargin"
|
|
35
|
+
| "preventOverlap"
|
|
36
|
+
| "disableSwapping"
|
|
37
|
+
| "disableVHBounds"
|
|
38
|
+
>
|
|
39
|
+
> {
|
|
41
40
|
y: VerticalPosition;
|
|
42
41
|
vh: number;
|
|
43
42
|
initialY?: number;
|
|
@@ -42,8 +42,9 @@ export type FixedPositioningTransitionCallbacks = Pick<
|
|
|
42
42
|
* transition.
|
|
43
43
|
* @since 4.0.0
|
|
44
44
|
*/
|
|
45
|
-
export interface FixedPositioningTransitionOptions<
|
|
46
|
-
extends
|
|
45
|
+
export interface FixedPositioningTransitionOptions<
|
|
46
|
+
E extends HTMLElement,
|
|
47
|
+
> extends FixedPositioningTransitionCallbacks {
|
|
47
48
|
/** {@inheritDoc TransitionOptions.nodeRef} */
|
|
48
49
|
nodeRef?: Ref<E>;
|
|
49
50
|
}
|
|
@@ -94,7 +95,9 @@ export type TransitionScrollCallback<
|
|
|
94
95
|
export interface FixedPositioningOptions<
|
|
95
96
|
FixedToElement extends HTMLElement,
|
|
96
97
|
FixedElement extends HTMLElement,
|
|
97
|
-
>
|
|
98
|
+
>
|
|
99
|
+
extends
|
|
100
|
+
FixedPositioningTransitionOptions<FixedElement>,
|
|
98
101
|
CalculateFixedPositionOptions {
|
|
99
102
|
/**
|
|
100
103
|
* An optional style that will be merged with the fixed positioning required
|
|
@@ -24,7 +24,8 @@ import { type ProgressProps } from "./types.js";
|
|
|
24
24
|
* longer rotates while increasing value.
|
|
25
25
|
*/
|
|
26
26
|
export interface CircularProgressProps
|
|
27
|
-
extends
|
|
27
|
+
extends
|
|
28
|
+
Omit<HTMLAttributes<HTMLSpanElement>, "id">,
|
|
28
29
|
ProgressProps,
|
|
29
30
|
CircularProgressClassNameOptions {
|
|
30
31
|
/**
|
|
@@ -21,7 +21,8 @@ import { type ProgressProps } from "./types.js";
|
|
|
21
21
|
* module augmentation.
|
|
22
22
|
*/
|
|
23
23
|
export interface LinearProgressProps
|
|
24
|
-
extends
|
|
24
|
+
extends
|
|
25
|
+
Omit<HTMLAttributes<HTMLSpanElement>, "id" | "children">,
|
|
25
26
|
BaseLinearProgressClassNameOptions,
|
|
26
27
|
ProgressProps {
|
|
27
28
|
/**
|
|
@@ -36,8 +36,7 @@ export interface BaseLinearProgressClassNameOptions {
|
|
|
36
36
|
/**
|
|
37
37
|
* @since 6.2.0
|
|
38
38
|
*/
|
|
39
|
-
export interface LinearProgressClassNameOptions
|
|
40
|
-
extends BaseLinearProgressClassNameOptions {
|
|
39
|
+
export interface LinearProgressClassNameOptions extends BaseLinearProgressClassNameOptions {
|
|
41
40
|
/** @defaultValue `false` */
|
|
42
41
|
indeterminate?: boolean;
|
|
43
42
|
}
|
|
@@ -15,8 +15,7 @@ import {
|
|
|
15
15
|
* {@link ResponsiveItemProps.responsive} prop.
|
|
16
16
|
*/
|
|
17
17
|
export interface ResponsiveItemProps
|
|
18
|
-
extends HTMLAttributes<HTMLSpanElement>,
|
|
19
|
-
ResponsiveItemClassNameOptions {}
|
|
18
|
+
extends HTMLAttributes<HTMLSpanElement>, ResponsiveItemClassNameOptions {}
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* @example Image Example
|
|
@@ -62,8 +62,7 @@ export interface CaseInsensitiveStartsWithOptions {
|
|
|
62
62
|
/**
|
|
63
63
|
* @since 6.0.0
|
|
64
64
|
*/
|
|
65
|
-
export interface IsCaseInsensitiveMatchOptions
|
|
66
|
-
extends CaseInsensitiveStartsWithOptions {
|
|
65
|
+
export interface IsCaseInsensitiveMatchOptions extends CaseInsensitiveStartsWithOptions {
|
|
67
66
|
/**
|
|
68
67
|
* The current search query.
|
|
69
68
|
*/
|
|
@@ -94,8 +93,7 @@ export function isCaseInsensitiveMatch(
|
|
|
94
93
|
* @since 6.0.0
|
|
95
94
|
*/
|
|
96
95
|
export interface CaseInsensitiveOptions<T>
|
|
97
|
-
extends BaseSearchOptions<T>,
|
|
98
|
-
CaseInsensitiveStartsWithOptions {}
|
|
96
|
+
extends BaseSearchOptions<T>, CaseInsensitiveStartsWithOptions {}
|
|
99
97
|
|
|
100
98
|
/**
|
|
101
99
|
* @example String list
|
|
@@ -23,7 +23,8 @@ import {
|
|
|
23
23
|
* module augmentation.
|
|
24
24
|
*/
|
|
25
25
|
export interface SegmentedButtonProps
|
|
26
|
-
extends
|
|
26
|
+
extends
|
|
27
|
+
ButtonHTMLAttributes<HTMLButtonElement>,
|
|
27
28
|
BaseMaxWidthTransitionOptions,
|
|
28
29
|
BaseSegmentedButtonClassNameOptions,
|
|
29
30
|
ComponentWithRippleProps {
|
|
@@ -42,8 +42,7 @@ export interface BaseSegmentedButtonClassNameOptions {
|
|
|
42
42
|
* @since 6.0.0
|
|
43
43
|
* @since 6.3.1 Extends BaseSegmentedButtonClassNameOptions
|
|
44
44
|
*/
|
|
45
|
-
export interface SegmentedButtonClassNameOptions
|
|
46
|
-
extends BaseSegmentedButtonClassNameOptions {
|
|
45
|
+
export interface SegmentedButtonClassNameOptions extends BaseSegmentedButtonClassNameOptions {
|
|
47
46
|
/** @internal */
|
|
48
47
|
pressedClassName?: string;
|
|
49
48
|
}
|
package/src/sheet/Sheet.tsx
CHANGED
|
@@ -21,8 +21,7 @@ export type SheetDialogProps = Omit<BaseDialogProps, "role" | "type" | "modal">;
|
|
|
21
21
|
* and exports the `SheetDialogProps`.
|
|
22
22
|
*/
|
|
23
23
|
export interface BaseSheetProps
|
|
24
|
-
extends SheetDialogProps,
|
|
25
|
-
BaseSheetClassNameOptions {
|
|
24
|
+
extends SheetDialogProps, BaseSheetClassNameOptions {
|
|
26
25
|
/**
|
|
27
26
|
* @defaultValue `"dialog"`
|
|
28
27
|
*/
|
package/src/snackbar/Toast.tsx
CHANGED
|
@@ -27,7 +27,8 @@ import { type BaseToastClasNameOptions, toast } from "./toastStyles.js";
|
|
|
27
27
|
* @since 6.0.0
|
|
28
28
|
*/
|
|
29
29
|
export interface ConfigurableToastProps
|
|
30
|
-
extends
|
|
30
|
+
extends
|
|
31
|
+
HTMLAttributes<HTMLDivElement>,
|
|
31
32
|
BaseToastClasNameOptions,
|
|
32
33
|
TransitionCallbacks {
|
|
33
34
|
/**
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { type HTMLAttributes, forwardRef } from "react";
|
|
4
|
+
|
|
5
|
+
import { type LabelRequiredForA11y } from "../types.js";
|
|
6
|
+
import { defaultGetSpinButtonTextContent } from "./defaults.js";
|
|
7
|
+
import {
|
|
8
|
+
type SpinButtonOptions,
|
|
9
|
+
type SpinButtonUncontrolledValueOptions,
|
|
10
|
+
type SpinButtonValueOptions,
|
|
11
|
+
} from "./types.js";
|
|
12
|
+
import { useSpinButton } from "./useSpinButton.js";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @since 6.4.0
|
|
16
|
+
*/
|
|
17
|
+
export interface SpinButtonProps
|
|
18
|
+
extends
|
|
19
|
+
Omit<HTMLAttributes<HTMLDivElement>, keyof SpinButtonOptions>,
|
|
20
|
+
Omit<SpinButtonOptions<HTMLDivElement>, "ref" | "children"> {}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The `SpinButton` component can be used as a simple wrapper around the
|
|
24
|
+
* {@link useSpinButton} hook if it should be rendered within a `<div>` and
|
|
25
|
+
* only the rendering behavior is required.
|
|
26
|
+
*
|
|
27
|
+
* @since 6.4.0
|
|
28
|
+
*/
|
|
29
|
+
export const SpinButton = forwardRef<
|
|
30
|
+
HTMLDivElement,
|
|
31
|
+
LabelRequiredForA11y<SpinButtonProps> & SpinButtonValueOptions
|
|
32
|
+
>(function SpinButton(props, ref) {
|
|
33
|
+
const {
|
|
34
|
+
id,
|
|
35
|
+
min,
|
|
36
|
+
max,
|
|
37
|
+
minDigits,
|
|
38
|
+
maxDigits,
|
|
39
|
+
step,
|
|
40
|
+
form,
|
|
41
|
+
error,
|
|
42
|
+
disabled,
|
|
43
|
+
readOnly,
|
|
44
|
+
required,
|
|
45
|
+
fallback,
|
|
46
|
+
mappings,
|
|
47
|
+
value,
|
|
48
|
+
defaultValue,
|
|
49
|
+
onValueChange,
|
|
50
|
+
getValueText,
|
|
51
|
+
getTextContent = defaultGetSpinButtonTextContent,
|
|
52
|
+
placeholderChar,
|
|
53
|
+
defaultKeyboardValue,
|
|
54
|
+
...remaining
|
|
55
|
+
} = props;
|
|
56
|
+
|
|
57
|
+
const valueProps = {
|
|
58
|
+
value,
|
|
59
|
+
defaultValue,
|
|
60
|
+
} as SpinButtonUncontrolledValueOptions<HTMLDivElement>;
|
|
61
|
+
|
|
62
|
+
const { value: currentValue, spinButtonProps } = useSpinButton({
|
|
63
|
+
id,
|
|
64
|
+
ref,
|
|
65
|
+
min,
|
|
66
|
+
max,
|
|
67
|
+
minDigits,
|
|
68
|
+
maxDigits,
|
|
69
|
+
step,
|
|
70
|
+
form,
|
|
71
|
+
fallback,
|
|
72
|
+
mappings,
|
|
73
|
+
error,
|
|
74
|
+
disabled,
|
|
75
|
+
readOnly,
|
|
76
|
+
required,
|
|
77
|
+
...valueProps,
|
|
78
|
+
onValueChange,
|
|
79
|
+
getValueText,
|
|
80
|
+
getTextContent,
|
|
81
|
+
placeholderChar,
|
|
82
|
+
defaultKeyboardValue,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<div {...remaining} {...spinButtonProps}>
|
|
87
|
+
{getTextContent({
|
|
88
|
+
min,
|
|
89
|
+
max,
|
|
90
|
+
minDigits,
|
|
91
|
+
maxDigits,
|
|
92
|
+
value: currentValue,
|
|
93
|
+
fallback,
|
|
94
|
+
placeholderChar,
|
|
95
|
+
})}
|
|
96
|
+
</div>
|
|
97
|
+
);
|
|
98
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
|
|
5
|
+
import { type KeyboardMovementContext } from "../movement/types.js";
|
|
6
|
+
import { DEFAULT_KEYBOARD_MOVEMENT_CONTEXT } from "../movement/useKeyboardMovementProvider.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @since 6.4.0
|
|
10
|
+
*/
|
|
11
|
+
export type SpinButtonGroupContext = KeyboardMovementContext;
|
|
12
|
+
|
|
13
|
+
const context = createContext<SpinButtonGroupContext>(
|
|
14
|
+
DEFAULT_KEYBOARD_MOVEMENT_CONTEXT
|
|
15
|
+
);
|
|
16
|
+
context.displayName = "SpinButtonGroup";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* This should be used along with the `useSpinButtonGroupProvider` to link
|
|
20
|
+
* `SpinButton` components together. The next `SpinButton` will be focused as
|
|
21
|
+
* an value is typed to completion.
|
|
22
|
+
*
|
|
23
|
+
* @since 6.4.0
|
|
24
|
+
*/
|
|
25
|
+
export const { Provider: SpinButtonGroupProvider } = context;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @since 6.4.0
|
|
29
|
+
*/
|
|
30
|
+
export function useSpinButtonGroup(): Readonly<SpinButtonGroupContext> {
|
|
31
|
+
return useContext(context);
|
|
32
|
+
}
|