@react-md/core 6.3.4 → 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/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.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 +37 -29
- 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 +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 +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
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
DEFAULT_LTR_KEYBOARD_MOVEMENT_WITHOUT_JUMP,
|
|
5
|
+
DEFAULT_RTL_KEYBOARD_MOVEMENT_WITHOUT_JUMP,
|
|
6
|
+
} from "../movement/constants.js";
|
|
7
|
+
import {
|
|
8
|
+
type KeyboardMovementProps,
|
|
9
|
+
type KeyboardMovementProviderImplementation,
|
|
10
|
+
type SimpleKeyboardMovementWrapperOptions,
|
|
11
|
+
} from "../movement/types.js";
|
|
12
|
+
import { useKeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
|
|
13
|
+
import { useDir } from "../typography/WritingDirectionProvider.js";
|
|
14
|
+
|
|
15
|
+
const SPINBUTTON_ROLE = '[role="spinbutton"]';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
* @since 6.4.0
|
|
20
|
+
*/
|
|
21
|
+
const getSpinButtonsOnly = (container: HTMLElement): readonly HTMLElement[] => [
|
|
22
|
+
...container.querySelectorAll<HTMLElement>(SPINBUTTON_ROLE),
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @since 6.4.0
|
|
27
|
+
*/
|
|
28
|
+
export interface SpinButtonGroupProviderOptions<
|
|
29
|
+
E extends HTMLElement = HTMLElement,
|
|
30
|
+
> extends SimpleKeyboardMovementWrapperOptions<E> {
|
|
31
|
+
/**
|
|
32
|
+
* Set this to `true` to update the container's `onClick` handler to move
|
|
33
|
+
* focus to the first spinbutton that does not have a value or the first
|
|
34
|
+
* spinbutton in the group so that focus is always moved to the spin buttons.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue `false`
|
|
37
|
+
*/
|
|
38
|
+
forceFocusWithin?: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface ProvidedSpinButtonGroupProps<
|
|
42
|
+
E extends HTMLElement = HTMLElement,
|
|
43
|
+
> extends KeyboardMovementProps<E> {
|
|
44
|
+
role: "group";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @since 6.4.0
|
|
49
|
+
*/
|
|
50
|
+
export interface SpinButtonGroupProviderImplementation<
|
|
51
|
+
E extends HTMLElement = HTMLElement,
|
|
52
|
+
> extends KeyboardMovementProviderImplementation<E> {
|
|
53
|
+
movementProps: Readonly<ProvidedSpinButtonGroupProps<E>>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @since 6.4.0
|
|
58
|
+
*/
|
|
59
|
+
export function useSpinButtonGroupProvider<E extends HTMLElement = HTMLElement>(
|
|
60
|
+
options: SpinButtonGroupProviderOptions<E> = {}
|
|
61
|
+
): SpinButtonGroupProviderImplementation<E> {
|
|
62
|
+
const { disabled, forceFocusWithin } = options;
|
|
63
|
+
|
|
64
|
+
const isRTL = useDir().dir === "rtl";
|
|
65
|
+
const movementKeys = isRTL
|
|
66
|
+
? DEFAULT_RTL_KEYBOARD_MOVEMENT_WITHOUT_JUMP
|
|
67
|
+
: DEFAULT_LTR_KEYBOARD_MOVEMENT_WITHOUT_JUMP;
|
|
68
|
+
|
|
69
|
+
const { movementProps, ...remaining } = useKeyboardMovementProvider({
|
|
70
|
+
...options,
|
|
71
|
+
...movementKeys,
|
|
72
|
+
loopable: false,
|
|
73
|
+
trackTabKeys: true,
|
|
74
|
+
getFocusableElements: getSpinButtonsOnly,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
...remaining,
|
|
79
|
+
movementProps: {
|
|
80
|
+
...movementProps,
|
|
81
|
+
role: "group",
|
|
82
|
+
onClick: (event) => {
|
|
83
|
+
movementProps.onClick(event);
|
|
84
|
+
|
|
85
|
+
const { target, currentTarget } = event;
|
|
86
|
+
if (
|
|
87
|
+
disabled ||
|
|
88
|
+
!forceFocusWithin ||
|
|
89
|
+
!(target instanceof HTMLElement) ||
|
|
90
|
+
target.closest(SPINBUTTON_ROLE)
|
|
91
|
+
) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const buttons = [...currentTarget.querySelectorAll(SPINBUTTON_ROLE)];
|
|
96
|
+
const i = buttons.findIndex((button) => !button.ariaValueNow);
|
|
97
|
+
remaining.movementContext.updateFocusIndex({
|
|
98
|
+
index: Math.max(0, i),
|
|
99
|
+
force: true,
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 6.4.0
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export function deselectNode(node: Node): void {
|
|
6
|
+
const selection = window.getSelection();
|
|
7
|
+
if (!selection) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
for (let i = 0; i < selection.rangeCount; i++) {
|
|
12
|
+
const range = selection.getRangeAt(i);
|
|
13
|
+
if (range.startContainer.contains(node)) {
|
|
14
|
+
selection.removeRange(range);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type MinMaxRange } from "../../types.js";
|
|
2
|
+
import { getNumberOfDigits } from "../../utils/getNumberOfDigits.js";
|
|
3
|
+
import {
|
|
4
|
+
type SpinButtonChangeReason,
|
|
5
|
+
type SpinButtonCharacterValueMap,
|
|
6
|
+
type SpinButtonValue,
|
|
7
|
+
} from "../types.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @since 6.4.0
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
interface ResolveInputEventOptions extends Partial<MinMaxRange> {
|
|
14
|
+
text: string;
|
|
15
|
+
mappings?: SpinButtonCharacterValueMap;
|
|
16
|
+
minDigits?: number;
|
|
17
|
+
maxDigits?: number;
|
|
18
|
+
prevText: string;
|
|
19
|
+
prevValue: SpinButtonValue;
|
|
20
|
+
typedCount: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type SpinButtonResolvedInputReason =
|
|
24
|
+
| SpinButtonChangeReason
|
|
25
|
+
| "ignored"
|
|
26
|
+
| "placeholder-digit";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @since 6.4.0
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
interface ResolveInputEvent {
|
|
33
|
+
reason: SpinButtonResolvedInputReason;
|
|
34
|
+
nextValue: SpinButtonValue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @since 6.4.0
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function resolveInputEvent(
|
|
42
|
+
options: ResolveInputEventOptions
|
|
43
|
+
): ResolveInputEvent {
|
|
44
|
+
const {
|
|
45
|
+
min,
|
|
46
|
+
max,
|
|
47
|
+
minDigits = getNumberOfDigits(min),
|
|
48
|
+
maxDigits = getNumberOfDigits(max),
|
|
49
|
+
text,
|
|
50
|
+
mappings,
|
|
51
|
+
typedCount,
|
|
52
|
+
prevValue,
|
|
53
|
+
} = options;
|
|
54
|
+
|
|
55
|
+
let { prevText } = options;
|
|
56
|
+
if (typedCount === 0) {
|
|
57
|
+
prevText = "";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!text) {
|
|
61
|
+
return {
|
|
62
|
+
reason: "cleared",
|
|
63
|
+
nextValue: null,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (mappings) {
|
|
68
|
+
const nextValue = mappings[text] ?? prevValue;
|
|
69
|
+
|
|
70
|
+
let reason: SpinButtonResolvedInputReason = "ignored";
|
|
71
|
+
if (typeof mappings[text] === "number") {
|
|
72
|
+
reason = "typed-to-completion";
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
reason,
|
|
77
|
+
nextValue,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (/[^0-9]/.test(text)) {
|
|
82
|
+
return {
|
|
83
|
+
reason: "ignored",
|
|
84
|
+
nextValue: prevValue,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
let reason: SpinButtonResolvedInputReason = "type";
|
|
89
|
+
let nextValue: SpinButtonValue = parseInt(prevText + text, 10);
|
|
90
|
+
if (typeof minDigits === "number" && typedCount + 1 < minDigits) {
|
|
91
|
+
reason = "placeholder-digit";
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (typeof max === "number" && nextValue > max) {
|
|
95
|
+
nextValue = prevValue;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (
|
|
99
|
+
typeof nextValue === "number" &&
|
|
100
|
+
// if typing a new value surpasses the number of digits allowed
|
|
101
|
+
((typeof maxDigits === "number" && typedCount + 1 >= maxDigits) ||
|
|
102
|
+
// typing a new value would exceed the max value
|
|
103
|
+
(typeof max === "number" && nextValue * 10 > max))
|
|
104
|
+
) {
|
|
105
|
+
reason = "typed-to-completion";
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
reason,
|
|
110
|
+
nextValue,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 6.4.0
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export function selectNode(node: Node): void {
|
|
6
|
+
const selection = window.getSelection();
|
|
7
|
+
if (!selection) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const range = document.createRange();
|
|
12
|
+
range.selectNodeContents(node);
|
|
13
|
+
selection.removeAllRanges();
|
|
14
|
+
selection.addRange(range);
|
|
15
|
+
}
|
|
@@ -14,7 +14,8 @@ import { useTableSectionConfig } from "./useTableSectionConfig.js";
|
|
|
14
14
|
|
|
15
15
|
/** @since 6.0.0 */
|
|
16
16
|
export interface StickyTableSectionProps
|
|
17
|
-
extends
|
|
17
|
+
extends
|
|
18
|
+
HTMLAttributes<HTMLTableSectionElement>,
|
|
18
19
|
TableStickySectionConfiguration,
|
|
19
20
|
TableSectionConfiguration {
|
|
20
21
|
type: "header" | "footer";
|
package/src/table/Table.tsx
CHANGED
package/src/table/TableBody.tsx
CHANGED
|
@@ -10,7 +10,8 @@ import {
|
|
|
10
10
|
import { type TableConfig, type TableConfigContext } from "./types.js";
|
|
11
11
|
|
|
12
12
|
export interface TableBodyProps
|
|
13
|
-
extends
|
|
13
|
+
extends
|
|
14
|
+
HTMLAttributes<HTMLTableSectionElement>,
|
|
14
15
|
Omit<TableConfig, "header"> {}
|
|
15
16
|
|
|
16
17
|
/**
|
|
@@ -19,8 +19,7 @@ export type TableCellContentsIconRotatorProps = Omit<
|
|
|
19
19
|
* can be passed to the `ButtonUnstyled`
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
export interface TableCellContentProps
|
|
23
|
-
extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
22
|
+
export interface TableCellContentProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
24
23
|
/**
|
|
25
24
|
* The current sort order for this cell. Setting this to `null` will prevent
|
|
26
25
|
* the button from being rendered.
|
|
@@ -48,8 +48,7 @@ export type TableCheckboxSupportedCheckboxProps = Pick<
|
|
|
48
48
|
* `"Toggle Row Selection"` to `"Select Row"`.
|
|
49
49
|
*/
|
|
50
50
|
export interface TableCheckboxProps
|
|
51
|
-
extends TableCheckboxTdHTMLAttributes,
|
|
52
|
-
TableCheckboxSupportedCheckboxProps {
|
|
51
|
+
extends TableCheckboxTdHTMLAttributes, TableCheckboxSupportedCheckboxProps {
|
|
53
52
|
/**
|
|
54
53
|
* @defaultValue `!props["aria-labelledby"] ? "Select Row" : undefined`
|
|
55
54
|
*/
|
|
@@ -8,8 +8,7 @@ import { type TableSectionConfiguration } from "./types.js";
|
|
|
8
8
|
import { useTableSectionConfig } from "./useTableSectionConfig.js";
|
|
9
9
|
|
|
10
10
|
export interface TableFooterProps
|
|
11
|
-
extends HTMLAttributes<HTMLTableSectionElement>,
|
|
12
|
-
TableSectionConfiguration {
|
|
11
|
+
extends HTMLAttributes<HTMLTableSectionElement>, TableSectionConfiguration {
|
|
13
12
|
/**
|
|
14
13
|
* NOTE: It is recommended to use the `StickyTableSection` component instead
|
|
15
14
|
* of enabling this prop since it supports dynamically adding styles while the
|
|
@@ -8,8 +8,7 @@ import { type TableSectionConfiguration } from "./types.js";
|
|
|
8
8
|
import { useTableSectionConfig } from "./useTableSectionConfig.js";
|
|
9
9
|
|
|
10
10
|
export interface TableHeaderProps
|
|
11
|
-
extends HTMLAttributes<HTMLTableSectionElement>,
|
|
12
|
-
TableSectionConfiguration {
|
|
11
|
+
extends HTMLAttributes<HTMLTableSectionElement>, TableSectionConfiguration {
|
|
13
12
|
/**
|
|
14
13
|
* NOTE: It is recommended to use the `StickyTableSection` component instead
|
|
15
14
|
* of enabling this prop since it supports dynamically adding styles while the
|
package/src/table/TableRadio.tsx
CHANGED
|
@@ -43,8 +43,7 @@ export type TableRadioSupportedRadioProps = Pick<
|
|
|
43
43
|
* @since 6.0.0
|
|
44
44
|
*/
|
|
45
45
|
export interface TableRadioProps
|
|
46
|
-
extends TableRadioTdHTMLAttributes,
|
|
47
|
-
TableRadioSupportedRadioProps {
|
|
46
|
+
extends TableRadioTdHTMLAttributes, TableRadioSupportedRadioProps {
|
|
48
47
|
/**
|
|
49
48
|
* @defaultValue `!props["aria-labelledby"] ? "Select Row" : undefined`
|
|
50
49
|
*/
|
package/src/table/TableRow.tsx
CHANGED
|
@@ -7,8 +7,7 @@ import { tableRow } from "./tableRowStyles.js";
|
|
|
7
7
|
import { type TableRowConfiguration } from "./types.js";
|
|
8
8
|
|
|
9
9
|
export interface TableRowProps
|
|
10
|
-
extends HTMLAttributes<HTMLTableRowElement>,
|
|
11
|
-
TableRowConfiguration {
|
|
10
|
+
extends HTMLAttributes<HTMLTableRowElement>, TableRowConfiguration {
|
|
12
11
|
/**
|
|
13
12
|
* Boolean if the current row has been selected and should apply the selected
|
|
14
13
|
* background-color.
|
|
@@ -44,8 +44,7 @@ export const isTableFooterStickyActive: IsStickyTableSectionActive = (
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
/** @since 6.0.0 */
|
|
47
|
-
export interface TableStickySectionOptions
|
|
48
|
-
extends TableStickySectionConfiguration {
|
|
47
|
+
export interface TableStickySectionOptions extends TableStickySectionConfiguration {
|
|
49
48
|
ref?: Ref<HTMLTableSectionElement>;
|
|
50
49
|
type: "header" | "footer";
|
|
51
50
|
}
|
|
@@ -8,7 +8,8 @@ import { type ProvidedTabPanelProps } from "./useTabs.js";
|
|
|
8
8
|
* @since 6.0.0
|
|
9
9
|
*/
|
|
10
10
|
export interface SimpleTabPanelProps
|
|
11
|
-
extends
|
|
11
|
+
extends
|
|
12
|
+
Omit<HTMLAttributes<HTMLDivElement>, keyof ProvidedTabPanelProps>,
|
|
12
13
|
ProvidedTabPanelProps {
|
|
13
14
|
children: ReactNode;
|
|
14
15
|
}
|
|
@@ -6,7 +6,8 @@ import { type ProvidedTabPanelsProps } from "./useTabs.js";
|
|
|
6
6
|
* @since 6.0.0
|
|
7
7
|
*/
|
|
8
8
|
export interface SimpleTabPanelsProps
|
|
9
|
-
extends
|
|
9
|
+
extends
|
|
10
|
+
HTMLAttributes<HTMLDivElement>,
|
|
10
11
|
Omit<ProvidedTabPanelsProps<HTMLDivElement>, "ref"> {
|
|
11
12
|
children: ReactNode;
|
|
12
13
|
}
|
package/src/tabs/Tab.tsx
CHANGED
|
@@ -21,8 +21,7 @@ import { type useTabs } from "./useTabs.js";
|
|
|
21
21
|
* @since 6.0.0
|
|
22
22
|
*/
|
|
23
23
|
export interface BaseTabProps
|
|
24
|
-
extends ComponentWithRippleProps,
|
|
25
|
-
BaseTabClassNameOptions {
|
|
24
|
+
extends ComponentWithRippleProps, BaseTabClassNameOptions {
|
|
26
25
|
/**
|
|
27
26
|
* Set this to `true` if the tab is currently active.
|
|
28
27
|
*
|
|
@@ -51,8 +50,7 @@ export interface BaseTabProps
|
|
|
51
50
|
* @since 6.0.0
|
|
52
51
|
*/
|
|
53
52
|
export interface TabButtonProps
|
|
54
|
-
extends BaseTabProps,
|
|
55
|
-
ButtonHTMLAttributes<HTMLButtonElement> {
|
|
53
|
+
extends BaseTabProps, ButtonHTMLAttributes<HTMLButtonElement> {
|
|
56
54
|
as?: "button";
|
|
57
55
|
}
|
|
58
56
|
|
|
@@ -60,8 +58,7 @@ export interface TabButtonProps
|
|
|
60
58
|
* @since 6.0.0
|
|
61
59
|
*/
|
|
62
60
|
export interface TabLinkProps
|
|
63
|
-
extends BaseTabProps,
|
|
64
|
-
AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
61
|
+
extends BaseTabProps, AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
65
62
|
as: CustomLinkComponent;
|
|
66
63
|
}
|
|
67
64
|
|
package/src/tabs/TabList.tsx
CHANGED
|
@@ -27,7 +27,8 @@ import { type useTabs } from "./useTabs.js";
|
|
|
27
27
|
* @since 6.0.0
|
|
28
28
|
*/
|
|
29
29
|
export interface TabListProps
|
|
30
|
-
extends
|
|
30
|
+
extends
|
|
31
|
+
HTMLAttributes<HTMLDivElement>,
|
|
31
32
|
Omit<TabListClassNameOptions, "animate" | "indicator"> {
|
|
32
33
|
activeIndex: number;
|
|
33
34
|
setActiveIndex: (nextActiveIndex: number) => void;
|
|
@@ -29,8 +29,7 @@ import {
|
|
|
29
29
|
* @since 6.0.0
|
|
30
30
|
*/
|
|
31
31
|
export interface BaseTabListScrollButtonProps
|
|
32
|
-
extends HTMLAttributes<HTMLDivElement>,
|
|
33
|
-
ButtonClassNameThemeOptions {
|
|
32
|
+
extends HTMLAttributes<HTMLDivElement>, ButtonClassNameThemeOptions {
|
|
34
33
|
buttonProps?: PropsWithRef<ButtonProps>;
|
|
35
34
|
|
|
36
35
|
/** @defaultValue `false` */
|
|
@@ -12,8 +12,10 @@ import { getTabPanelRoleOnly } from "./utils.js";
|
|
|
12
12
|
/**
|
|
13
13
|
* @since 6.0.0
|
|
14
14
|
*/
|
|
15
|
-
export interface MaxTabPanelHeightOptions<E extends HTMLElement>
|
|
16
|
-
|
|
15
|
+
export interface MaxTabPanelHeightOptions<E extends HTMLElement> extends Pick<
|
|
16
|
+
TabsImplementation,
|
|
17
|
+
"getTabPanelsProps"
|
|
18
|
+
> {
|
|
17
19
|
ref?: Ref<E>;
|
|
18
20
|
style?: CSSProperties;
|
|
19
21
|
|
|
@@ -26,8 +28,9 @@ export interface MaxTabPanelHeightOptions<E extends HTMLElement>
|
|
|
26
28
|
/**
|
|
27
29
|
* @since 6.0.0
|
|
28
30
|
*/
|
|
29
|
-
export interface ProvidedMaxTabPanelsHeightProps<
|
|
30
|
-
extends
|
|
31
|
+
export interface ProvidedMaxTabPanelsHeightProps<
|
|
32
|
+
E extends HTMLElement,
|
|
33
|
+
> extends ProvidedTabPanelsProps<E> {
|
|
31
34
|
style: CSSProperties;
|
|
32
35
|
}
|
|
33
36
|
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEFAULT_DESKTOP_LARGE_MIN_WIDTH,
|
|
3
|
-
DEFAULT_DESKTOP_MIN_WIDTH,
|
|
4
|
-
DEFAULT_PHONE_MAX_WIDTH,
|
|
5
|
-
DEFAULT_TABLET_MIN_WIDTH,
|
|
6
|
-
} from "../../media-queries/appSize.js";
|
|
1
|
+
import { MEDIA_QUERY_CONFIG } from "../../media-queries/config.js";
|
|
7
2
|
|
|
8
3
|
/**
|
|
9
4
|
* @since 6.0.0
|
|
@@ -64,28 +59,28 @@ export type MatchMediaMatcher = (query: string) => boolean;
|
|
|
64
59
|
* @returns `true` for phone media queries
|
|
65
60
|
*/
|
|
66
61
|
export const matchPhone: MatchMediaMatcher = (query) =>
|
|
67
|
-
query.includes(
|
|
62
|
+
query.includes(`${MEDIA_QUERY_CONFIG.phoneMaxWidth}`);
|
|
68
63
|
|
|
69
64
|
/**
|
|
70
65
|
* @since 6.0.0
|
|
71
66
|
* @returns `true` for tablet media queries
|
|
72
67
|
*/
|
|
73
68
|
export const matchTablet: MatchMediaMatcher = (query) =>
|
|
74
|
-
query.includes(
|
|
69
|
+
query.includes(`${MEDIA_QUERY_CONFIG.tabletMinWidth}`);
|
|
75
70
|
|
|
76
71
|
/**
|
|
77
72
|
* @since 6.0.0
|
|
78
73
|
* @returns `true` for desktop media queries
|
|
79
74
|
*/
|
|
80
75
|
export const matchDesktop: MatchMediaMatcher = (query) =>
|
|
81
|
-
query.includes(
|
|
76
|
+
query.includes(`${MEDIA_QUERY_CONFIG.desktopMinWidth}`);
|
|
82
77
|
|
|
83
78
|
/**
|
|
84
79
|
* @since 6.0.0
|
|
85
80
|
* @returns `true` for large desktop media queries
|
|
86
81
|
*/
|
|
87
82
|
export const matchLargeDesktop: MatchMediaMatcher = (query) =>
|
|
88
|
-
query.includes(
|
|
83
|
+
query.includes(`${MEDIA_QUERY_CONFIG.desktopLargeMinWidth}`);
|
|
89
84
|
|
|
90
85
|
/**
|
|
91
86
|
* @since 6.0.0
|
|
@@ -27,7 +27,7 @@ export type RafSpy = MockInstance<typeof requestAnimationFrame>;
|
|
|
27
27
|
* import { testImmediateRaf } from "@react-md/core/test-utils/vitest";
|
|
28
28
|
*
|
|
29
29
|
* afterEach(() => {
|
|
30
|
-
*
|
|
30
|
+
* vi.restoreAllMocks();
|
|
31
31
|
* });
|
|
32
32
|
*
|
|
33
33
|
* describe("some test suite", () => {
|
package/src/tooltip/Tooltip.tsx
CHANGED
|
@@ -32,7 +32,8 @@ import { type TooltipClassNameOptions, tooltip } from "./styles.js";
|
|
|
32
32
|
* augmentation.
|
|
33
33
|
*/
|
|
34
34
|
export interface TooltipProps
|
|
35
|
-
extends
|
|
35
|
+
extends
|
|
36
|
+
HTMLAttributes<HTMLSpanElement>,
|
|
36
37
|
TooltipClassNameOptions,
|
|
37
38
|
CSSTransitionComponentProps,
|
|
38
39
|
SSRTransitionOptions,
|
|
@@ -38,8 +38,7 @@ export function useTooltipHoverMode(): Readonly<TooltipHoverModeContext> {
|
|
|
38
38
|
/**
|
|
39
39
|
* @since 6.0.0
|
|
40
40
|
*/
|
|
41
|
-
export interface TooltipHoverModeProviderProps
|
|
42
|
-
extends Partial<HoverModeConfiguration> {
|
|
41
|
+
export interface TooltipHoverModeProviderProps extends Partial<HoverModeConfiguration> {
|
|
43
42
|
children: ReactNode;
|
|
44
43
|
|
|
45
44
|
/**
|
|
@@ -129,8 +129,9 @@ export interface TooltippedElementEventHandlers<
|
|
|
129
129
|
* @since 2.8.0
|
|
130
130
|
* @since 6.0.0 Renamed from `TooltipHookProvidedElementProps`
|
|
131
131
|
*/
|
|
132
|
-
export interface ProvidedTooltippedElementProps<
|
|
133
|
-
extends
|
|
132
|
+
export interface ProvidedTooltippedElementProps<
|
|
133
|
+
E extends HTMLElement,
|
|
134
|
+
> extends Required<TooltippedElementEventHandlers<E>> {
|
|
134
135
|
"aria-describedby": string | undefined;
|
|
135
136
|
id: string;
|
|
136
137
|
}
|
|
@@ -144,7 +145,9 @@ export interface ProvidedTooltippedElementProps<E extends HTMLElement>
|
|
|
144
145
|
*/
|
|
145
146
|
export interface TooltipOptions<
|
|
146
147
|
TooltippedElement extends HTMLElement = HTMLButtonElement,
|
|
147
|
-
>
|
|
148
|
+
>
|
|
149
|
+
extends
|
|
150
|
+
FixedPositioningTransitionCallbacks,
|
|
148
151
|
TooltippedElementEventHandlers<TooltippedElement>,
|
|
149
152
|
TooltipPositioningOptions,
|
|
150
153
|
TooltipPositionHookOptions {
|
|
@@ -263,8 +266,9 @@ export interface TooltipOptions<
|
|
|
263
266
|
* @since 2.8.0
|
|
264
267
|
* @since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`
|
|
265
268
|
*/
|
|
266
|
-
export interface ProvidedTooltipProps<
|
|
267
|
-
extends
|
|
269
|
+
export interface ProvidedTooltipProps<
|
|
270
|
+
E extends HTMLElement = HTMLSpanElement,
|
|
271
|
+
> extends Required<FixedPositioningTransitionCallbacks> {
|
|
268
272
|
id: string;
|
|
269
273
|
ref: Ref<E>;
|
|
270
274
|
dense: boolean;
|
|
@@ -15,7 +15,8 @@ import { useCSSTransition } from "./useCSSTransition.js";
|
|
|
15
15
|
* @since 4.0.0
|
|
16
16
|
*/
|
|
17
17
|
export interface CSSTransitionProps<E extends HTMLElement>
|
|
18
|
-
extends
|
|
18
|
+
extends
|
|
19
|
+
CSSTransitionHookOptions<E>,
|
|
19
20
|
CSSTransitionComponentImplementation<E> {}
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -16,8 +16,10 @@ import {
|
|
|
16
16
|
* @since 2.0.0
|
|
17
17
|
* @since 4.0.0 Updated for the new CSS Transition API.
|
|
18
18
|
*/
|
|
19
|
-
export interface CollapseProps<E extends HTMLElement>
|
|
20
|
-
|
|
19
|
+
export interface CollapseProps<E extends HTMLElement> extends Omit<
|
|
20
|
+
CollapseTransitionHookOptions<E>,
|
|
21
|
+
"transitionIn"
|
|
22
|
+
> {
|
|
21
23
|
/**
|
|
22
24
|
* The child element that should have a `ref` and the `style`/`className`
|
|
23
25
|
* props cloned into using the `cloneElement` API. If the child is a custom
|
|
@@ -16,7 +16,8 @@ import {
|
|
|
16
16
|
* @since 4.0.0 Updated for the new CSS Transition API
|
|
17
17
|
*/
|
|
18
18
|
export interface CrossFadeProps<E extends HTMLElement>
|
|
19
|
-
extends
|
|
19
|
+
extends
|
|
20
|
+
CrossFadeTransitionHookOptions<E>,
|
|
20
21
|
CSSTransitionComponentImplementation<E> {
|
|
21
22
|
/**
|
|
22
23
|
* Unlike the {@link useCrossFadeTransition}, the `appear` value is defaulted
|
|
@@ -17,7 +17,8 @@ import {
|
|
|
17
17
|
* @since 6.0.0 Removed portal props
|
|
18
18
|
*/
|
|
19
19
|
export interface ScaleTransitionProps<E extends HTMLElement>
|
|
20
|
-
extends
|
|
20
|
+
extends
|
|
21
|
+
CSSTransitionComponentImplementation<E>,
|
|
21
22
|
ScaleTransitionHookOptions<E> {}
|
|
22
23
|
|
|
23
24
|
/**
|
|
@@ -14,8 +14,7 @@ import {
|
|
|
14
14
|
|
|
15
15
|
/** @since 6.0.0 */
|
|
16
16
|
export interface SkeletonPlaceholderProps
|
|
17
|
-
extends HTMLAttributes<HTMLDivElement>,
|
|
18
|
-
SkeletonPlaceholderOptions {
|
|
17
|
+
extends HTMLAttributes<HTMLDivElement>, SkeletonPlaceholderOptions {
|
|
19
18
|
/**
|
|
20
19
|
* @defaultValue `!!children`
|
|
21
20
|
* @see {@link SkeletonPlaceholderOptions.disabled}
|
package/src/transition/Slide.tsx
CHANGED
|
@@ -72,8 +72,7 @@ export function slideContainer(
|
|
|
72
72
|
|
|
73
73
|
/** @since 6.0.0 */
|
|
74
74
|
export interface SlideContainerProps
|
|
75
|
-
extends HTMLAttributes<HTMLDivElement>,
|
|
76
|
-
SlideContainerClassNameOptions {}
|
|
75
|
+
extends HTMLAttributes<HTMLDivElement>, SlideContainerClassNameOptions {}
|
|
77
76
|
|
|
78
77
|
/**
|
|
79
78
|
* The `SlideContainer` is used to enable a slide transition when child `Slide`
|