@react-md/core 6.4.0 → 6.5.1
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/_a11y.scss +3 -1
- package/dist/_box-shadows.scss +20 -12
- package/dist/_core.scss +1 -1
- package/dist/_utils.scss +26 -11
- package/dist/app-bar/_app-bar.scss +3 -3
- package/dist/autocomplete/AutocompleteChip.js +2 -2
- package/dist/autocomplete/AutocompleteChip.js.map +1 -1
- package/dist/autocomplete/AutocompleteListboxChildren.js +1 -1
- package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
- package/dist/autocomplete/_autocomplete.scss +20 -16
- package/dist/autocomplete/useAutocomplete.js +4 -4
- package/dist/autocomplete/useAutocomplete.js.map +1 -1
- package/dist/autocomplete/utils.js +3 -3
- package/dist/autocomplete/utils.js.map +1 -1
- package/dist/avatar/_avatar.scss +2 -1
- package/dist/box/styles.js +2 -2
- package/dist/box/styles.js.map +1 -1
- package/dist/button/AsyncButton.js +1 -1
- package/dist/button/AsyncButton.js.map +1 -1
- package/dist/button/_button.scss +9 -5
- package/dist/card/_card.scss +6 -6
- package/dist/chip/Chip.js +1 -1
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/_chip.scss +6 -6
- package/dist/cssUtils.d.ts +11 -6
- package/dist/cssUtils.js.map +1 -1
- package/dist/datetime/useTimeField.js +1 -1
- package/dist/datetime/useTimeField.js.map +1 -1
- package/dist/delegateEvent.js +9 -9
- package/dist/delegateEvent.js.map +1 -1
- package/dist/dialog/_dialog.scss +6 -6
- package/dist/divider/_divider.scss +6 -2
- package/dist/draggable/useDraggable.js +4 -4
- package/dist/draggable/useDraggable.js.map +1 -1
- package/dist/draggable/utils.js +1 -1
- package/dist/draggable/utils.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanel.js +1 -1
- package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
- package/dist/expansion-panel/useExpansionPanels.js +1 -1
- package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
- package/dist/files/FileInput.js +1 -1
- package/dist/files/FileInput.js.map +1 -1
- package/dist/files/createAcceptFromExtensions.d.ts +5 -0
- package/dist/files/createAcceptFromExtensions.js +15 -0
- package/dist/files/createAcceptFromExtensions.js.map +1 -0
- package/dist/files/useFileUpload.js +45 -41
- package/dist/files/useFileUpload.js.map +1 -1
- package/dist/files/utils.js +14 -10
- package/dist/files/utils.js.map +1 -1
- package/dist/files/validation.js +7 -8
- package/dist/files/validation.js.map +1 -1
- package/dist/focus/useFocusContainer.js +1 -1
- package/dist/focus/useFocusContainer.js.map +1 -1
- package/dist/focus/utils.js +12 -7
- package/dist/focus/utils.js.map +1 -1
- package/dist/form/InputToggleIcon.js +5 -1
- package/dist/form/InputToggleIcon.js.map +1 -1
- package/dist/form/NativeSelect.js +1 -1
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Select.d.ts +24 -0
- package/dist/form/Select.js +19 -8
- 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/_input-toggle.scss +6 -5
- package/dist/form/_label.scss +2 -2
- package/dist/form/_legend.scss +22 -13
- package/dist/form/_slider.scss +7 -5
- package/dist/form/_switch.scss +7 -5
- package/dist/form/_text-field.scss +13 -11
- package/dist/form/formConfig.js +1 -1
- package/dist/form/formConfig.js.map +1 -1
- package/dist/form/inputToggleStyles.js +7 -1
- package/dist/form/inputToggleStyles.js.map +1 -1
- package/dist/form/legendStyles.d.ts +1 -1
- package/dist/form/legendStyles.js.map +1 -1
- package/dist/form/selectUtils.js +2 -2
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/useCombobox.js +1 -0
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useFormReset.js +2 -2
- package/dist/form/useFormReset.js.map +1 -1
- package/dist/form/useNumberField.js +1 -1
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useResizingTextArea.js +4 -4
- package/dist/form/useResizingTextArea.js.map +1 -1
- package/dist/form/useSelectCombobox.js +1 -1
- package/dist/form/useSelectCombobox.js.map +1 -1
- package/dist/form/validation.js +1 -1
- package/dist/form/validation.js.map +1 -1
- package/dist/hoverMode/useHoverMode.js +8 -8
- package/dist/hoverMode/useHoverMode.js.map +1 -1
- package/dist/hoverMode/useHoverModeProvider.js +3 -3
- package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
- package/dist/icon/config.js +3 -3
- package/dist/icon/config.js.map +1 -1
- package/dist/icon/materialConfig.js +1 -1
- package/dist/icon/materialConfig.js.map +1 -1
- package/dist/interaction/UserInteractionModeProvider.js +11 -10
- package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
- package/dist/interaction/_interaction.scss +5 -3
- package/dist/interaction/utils.js +7 -3
- package/dist/interaction/utils.js.map +1 -1
- package/dist/layout/useExpandableLayout.js +3 -4
- package/dist/layout/useExpandableLayout.js.map +1 -1
- package/dist/layout/useMainTabIndex.js +1 -1
- package/dist/layout/useMainTabIndex.js.map +1 -1
- package/dist/list/ListItem.js +1 -1
- package/dist/list/ListItem.js.map +1 -1
- package/dist/media-queries/AppSizeProvider.js +1 -1
- package/dist/media-queries/AppSizeProvider.js.map +1 -1
- package/dist/media-queries/config.js +2 -2
- package/dist/media-queries/config.js.map +1 -1
- package/dist/media-queries/useMediaQuery.js +3 -3
- package/dist/media-queries/useMediaQuery.js.map +1 -1
- package/dist/menu/Menu.js +4 -4
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuItemButton.js +1 -1
- package/dist/menu/MenuItemButton.js.map +1 -1
- package/dist/menu/MenuItemFileInput.js +1 -1
- package/dist/menu/MenuItemFileInput.js.map +1 -1
- package/dist/menu/MenuWidget.js +2 -2
- package/dist/menu/MenuWidget.js.map +1 -1
- package/dist/movement/findMatchIndex.js +2 -2
- package/dist/movement/findMatchIndex.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.js +2 -2
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/movement/utils.js +12 -10
- package/dist/movement/utils.js.map +1 -1
- package/dist/navigation/getTableOfContentsHeadings.js +4 -3
- package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
- package/dist/navigation/useActiveHeadingId.js +9 -9
- package/dist/navigation/useActiveHeadingId.js.map +1 -1
- package/dist/navigation/useTableOfContentsHeadings.js +1 -1
- package/dist/navigation/useTableOfContentsHeadings.js.map +1 -1
- package/dist/navigation/utils.js +6 -5
- package/dist/navigation/utils.js.map +1 -1
- package/dist/portal/PortalContainerProvider.js +5 -3
- package/dist/portal/PortalContainerProvider.js.map +1 -1
- package/dist/positioning/getFixedPosition.js +2 -4
- package/dist/positioning/getFixedPosition.js.map +1 -1
- package/dist/positioning/useFixedPositioning.js +2 -2
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/positioning/utils.js +3 -3
- package/dist/positioning/utils.js.map +1 -1
- package/dist/scroll/getScrollbarWidth.js +4 -4
- package/dist/scroll/getScrollbarWidth.js.map +1 -1
- package/dist/searching/fuzzy.js +3 -2
- package/dist/searching/fuzzy.js.map +1 -1
- package/dist/searching/toSearchQuery.js +1 -1
- package/dist/searching/toSearchQuery.js.map +1 -1
- package/dist/searching/utils.js +1 -1
- package/dist/searching/utils.js.map +1 -1
- package/dist/snackbar/Toast.js +1 -1
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/snackbar/ToastContent.js +2 -2
- package/dist/snackbar/ToastContent.js.map +1 -1
- package/dist/snackbar/ToastManager.d.ts +1 -1
- package/dist/snackbar/ToastManager.js +11 -11
- package/dist/snackbar/ToastManager.js.map +1 -1
- package/dist/snackbar/_snackbar.scss +3 -3
- package/dist/spinbutton/useSpinButton.js +1 -1
- package/dist/spinbutton/useSpinButton.js.map +1 -1
- package/dist/spinbutton/utils/deselectNode.js +1 -1
- package/dist/spinbutton/utils/deselectNode.js.map +1 -1
- package/dist/spinbutton/utils/resolveInputEvent.js +1 -1
- package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -1
- package/dist/spinbutton/utils/selectNode.js +1 -1
- package/dist/spinbutton/utils/selectNode.js.map +1 -1
- package/dist/storage/useStorage.js +8 -3
- package/dist/storage/useStorage.js.map +1 -1
- package/dist/table/useStickyTableSection.js +1 -1
- package/dist/table/useStickyTableSection.js.map +1 -1
- package/dist/tabs/TabList.js +2 -2
- package/dist/tabs/TabList.js.map +1 -1
- package/dist/tabs/_tabs.scss +5 -6
- package/dist/tabs/useMaxTabPanelHeight.js +4 -3
- package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
- package/dist/tabs/useTabList.js +1 -1
- package/dist/tabs/useTabList.js.map +1 -1
- package/dist/test-utils/jest-globals/match-media.d.ts +1 -1
- package/dist/test-utils/jest-globals/match-media.js +1 -1
- package/dist/test-utils/jest-globals/match-media.js.map +1 -1
- package/dist/test-utils/jest-globals/timers.js +1 -1
- package/dist/test-utils/jest-globals/timers.js.map +1 -1
- package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js +1 -1
- package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js.map +1 -1
- package/dist/test-utils/mocks/ResizeObserver.js +2 -2
- package/dist/test-utils/mocks/ResizeObserver.js.map +1 -1
- package/dist/test-utils/polyfills/IntersectionObserver.js +2 -2
- package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
- package/dist/test-utils/polyfills/ResizeObserver.js +2 -2
- package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
- package/dist/test-utils/polyfills/TextDecoder.js +2 -2
- package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
- package/dist/test-utils/polyfills/TextEncoder.js +2 -2
- package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
- package/dist/test-utils/polyfills/matchMedia.js +2 -2
- package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
- package/dist/test-utils/polyfills/offsetParent.js +2 -2
- package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
- package/dist/test-utils/polyfills/scrollIntoView.js +1 -1
- package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
- package/dist/test-utils/queries/select.js +2 -2
- package/dist/test-utils/queries/select.js.map +1 -1
- package/dist/test-utils/queries/slider.js +1 -1
- package/dist/test-utils/queries/slider.js.map +1 -1
- package/dist/test-utils/utils/createFileList.js +2 -0
- package/dist/test-utils/utils/createFileList.js.map +1 -1
- package/dist/test-utils/utils/createMatchMediaSpy.d.ts +1 -1
- package/dist/test-utils/utils/createMatchMediaSpy.js +3 -3
- package/dist/test-utils/utils/createMatchMediaSpy.js.map +1 -1
- package/dist/test-utils/vitest/match-media.d.ts +1 -1
- package/dist/test-utils/vitest/match-media.js +1 -1
- package/dist/test-utils/vitest/match-media.js.map +1 -1
- package/dist/test-utils/vitest/timers.js +1 -1
- package/dist/test-utils/vitest/timers.js.map +1 -1
- package/dist/test-utils/vitest/uploadMenuItemFileInput.js +1 -1
- package/dist/test-utils/vitest/uploadMenuItemFileInput.js.map +1 -1
- package/dist/theme/ThemeProvider.js +2 -2
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/_a11y.scss +3 -1
- package/dist/theme/_theme.scss +16 -12
- package/dist/theme/getDerivedTheme.js +1 -1
- package/dist/theme/getDerivedTheme.js.map +1 -1
- package/dist/theme/useCSSVariables.js +5 -5
- package/dist/theme/useCSSVariables.js.map +1 -1
- package/dist/theme/useColorSchemeMetaTag.js +2 -2
- package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
- package/dist/theme/useInlineCSSVariables.js +4 -3
- package/dist/theme/useInlineCSSVariables.js.map +1 -1
- package/dist/theme/utils.js +8 -8
- package/dist/theme/utils.js.map +1 -1
- package/dist/tooltip/useTooltip.js +7 -7
- package/dist/tooltip/useTooltip.js.map +1 -1
- package/dist/tooltip/useTooltipPosition.js +1 -1
- package/dist/tooltip/useTooltipPosition.js.map +1 -1
- package/dist/transition/useCarousel.js +2 -2
- package/dist/transition/useCarousel.js.map +1 -1
- package/dist/transition/useCollapseTransition.js +1 -1
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/useSkeletonPlaceholder.js +4 -4
- package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
- package/dist/transition/useTransition.js +2 -2
- package/dist/transition/useTransition.js.map +1 -1
- package/dist/transition/utils.js +5 -5
- package/dist/transition/utils.js.map +1 -1
- package/dist/tree/TreeItem.js +1 -1
- package/dist/tree/TreeItem.js.map +1 -1
- package/dist/tree/useTreeItems.js +7 -5
- package/dist/tree/useTreeItems.js.map +1 -1
- package/dist/tree/useTreeMovement.js +1 -1
- package/dist/tree/useTreeMovement.js.map +1 -1
- package/dist/tree/utils.js +6 -9
- package/dist/tree/utils.js.map +1 -1
- package/dist/typography/HighlightText.js +2 -1
- package/dist/typography/HighlightText.js.map +1 -1
- package/dist/typography/SrOnly.js +7 -1
- package/dist/typography/SrOnly.js.map +1 -1
- package/dist/useDebouncedFunction.js +4 -4
- package/dist/useDebouncedFunction.js.map +1 -1
- package/dist/useDropzone.js +9 -9
- package/dist/useDropzone.js.map +1 -1
- package/dist/useEnsuredState.js +5 -5
- package/dist/useEnsuredState.js.map +1 -1
- package/dist/useIntersectionObserver.js +3 -3
- package/dist/useIntersectionObserver.js.map +1 -1
- package/dist/useIsomorphicLayoutEffect.js +1 -1
- package/dist/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/useOrientation.js +1 -1
- package/dist/useOrientation.js.map +1 -1
- package/dist/useReadonlySet.js +1 -1
- package/dist/useReadonlySet.js.map +1 -1
- package/dist/useResizeListener.js +2 -2
- package/dist/useResizeListener.js.map +1 -1
- package/dist/useResizeObserver.js +3 -4
- package/dist/useResizeObserver.js.map +1 -1
- package/dist/useThrottledFunction.js +3 -3
- package/dist/useThrottledFunction.js.map +1 -1
- package/dist/useWindowSize.js +1 -1
- package/dist/useWindowSize.js.map +1 -1
- package/dist/utils/alphaNumericSort.js +3 -1
- package/dist/utils/alphaNumericSort.js.map +1 -1
- package/dist/utils/bem.js +9 -12
- package/dist/utils/bem.js.map +1 -1
- package/dist/utils/getNumberOfDigits.js +1 -0
- package/dist/utils/getNumberOfDigits.js.map +1 -1
- package/dist/utils/getRangeDefaultValue.js +1 -1
- package/dist/utils/getRangeDefaultValue.js.map +1 -1
- package/dist/utils/nearest.js +2 -2
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/parseCssLengthUnit.js +3 -3
- package/dist/utils/parseCssLengthUnit.js.map +1 -1
- package/dist/utils/trigonometry.js +1 -1
- package/dist/utils/trigonometry.js.map +1 -1
- package/dist/window-splitter/_window-splitter.scss +15 -17
- package/package.json +9 -7
- package/src/autocomplete/AutocompleteChip.tsx +2 -2
- package/src/autocomplete/AutocompleteListboxChildren.tsx +1 -1
- package/src/autocomplete/useAutocomplete.ts +4 -4
- package/src/autocomplete/utils.ts +3 -3
- package/src/box/styles.ts +2 -2
- package/src/button/AsyncButton.tsx +1 -3
- package/src/chip/Chip.tsx +1 -2
- package/src/cssUtils.ts +12 -6
- package/src/datetime/useTimeField.ts +1 -1
- package/src/delegateEvent.ts +9 -9
- package/src/draggable/useDraggable.ts +4 -4
- package/src/draggable/utils.ts +1 -1
- package/src/expansion-panel/ExpansionPanel.tsx +1 -1
- package/src/expansion-panel/useExpansionPanels.ts +1 -1
- package/src/files/FileInput.tsx +1 -1
- package/src/files/createAcceptFromExtensions.ts +18 -0
- package/src/files/useFileUpload.ts +36 -37
- package/src/files/utils.ts +15 -11
- package/src/files/validation.ts +7 -9
- package/src/focus/useFocusContainer.ts +1 -1
- package/src/focus/utils.ts +11 -6
- package/src/form/InputToggleIcon.tsx +5 -5
- package/src/form/NativeSelect.tsx +1 -1
- package/src/form/Select.tsx +58 -7
- package/src/form/SelectedOption.tsx +2 -4
- package/src/form/formConfig.ts +1 -1
- package/src/form/inputToggleStyles.ts +9 -4
- package/src/form/legendStyles.ts +1 -1
- package/src/form/selectUtils.ts +2 -2
- package/src/form/useCombobox.ts +1 -0
- package/src/form/useFormReset.ts +2 -2
- package/src/form/useNumberField.ts +1 -1
- package/src/form/useResizingTextArea.ts +5 -5
- package/src/form/useSelectCombobox.ts +1 -4
- package/src/form/validation.ts +1 -1
- package/src/hoverMode/useHoverMode.ts +9 -9
- package/src/hoverMode/useHoverModeProvider.ts +4 -4
- package/src/icon/config.tsx +3 -3
- package/src/icon/materialConfig.ts +1 -1
- package/src/interaction/UserInteractionModeProvider.tsx +11 -10
- package/src/interaction/utils.ts +3 -3
- package/src/layout/useExpandableLayout.ts +3 -4
- package/src/layout/useMainTabIndex.ts +1 -1
- package/src/list/ListItem.tsx +1 -1
- package/src/media-queries/AppSizeProvider.tsx +1 -1
- package/src/media-queries/config.ts +2 -2
- package/src/media-queries/useMediaQuery.ts +3 -3
- package/src/menu/Menu.tsx +4 -4
- package/src/menu/MenuItemButton.tsx +1 -1
- package/src/menu/MenuItemFileInput.tsx +1 -1
- package/src/menu/MenuWidget.tsx +6 -4
- package/src/movement/findMatchIndex.ts +2 -2
- package/src/movement/useKeyboardMovementProvider.ts +2 -2
- package/src/movement/utils.ts +15 -14
- package/src/navigation/getTableOfContentsHeadings.ts +4 -3
- package/src/navigation/useActiveHeadingId.ts +8 -8
- package/src/navigation/useTableOfContentsHeadings.ts +1 -1
- package/src/navigation/utils.ts +6 -5
- package/src/portal/PortalContainerProvider.tsx +5 -3
- package/src/positioning/getFixedPosition.ts +9 -6
- package/src/positioning/useFixedPositioning.ts +2 -2
- package/src/positioning/utils.ts +3 -3
- package/src/scroll/getScrollbarWidth.ts +4 -4
- package/src/searching/fuzzy.ts +7 -3
- package/src/searching/toSearchQuery.ts +1 -1
- package/src/searching/utils.ts +1 -1
- package/src/snackbar/Toast.tsx +1 -1
- package/src/snackbar/ToastContent.tsx +2 -2
- package/src/snackbar/ToastManager.ts +11 -12
- package/src/spinbutton/useSpinButton.ts +1 -1
- package/src/spinbutton/utils/deselectNode.ts +1 -1
- package/src/spinbutton/utils/resolveInputEvent.ts +1 -1
- package/src/spinbutton/utils/selectNode.ts +1 -1
- package/src/storage/useStorage.ts +7 -2
- package/src/table/useStickyTableSection.tsx +1 -1
- package/src/tabs/TabList.tsx +2 -2
- package/src/tabs/useMaxTabPanelHeight.ts +6 -3
- package/src/tabs/useTabList.ts +2 -2
- package/src/test-utils/jest-globals/match-media.ts +5 -2
- package/src/test-utils/jest-globals/timers.ts +1 -1
- package/src/test-utils/jest-globals/uploadMenuItemFileInput.ts +1 -1
- package/src/test-utils/mocks/ResizeObserver.ts +2 -2
- package/src/test-utils/polyfills/IntersectionObserver.ts +2 -2
- package/src/test-utils/polyfills/ResizeObserver.ts +2 -2
- package/src/test-utils/polyfills/TextDecoder.ts +2 -2
- package/src/test-utils/polyfills/TextEncoder.ts +2 -2
- package/src/test-utils/polyfills/matchMedia.ts +5 -2
- package/src/test-utils/polyfills/offsetParent.ts +2 -2
- package/src/test-utils/polyfills/scrollIntoView.ts +1 -1
- package/src/test-utils/queries/select.ts +2 -2
- package/src/test-utils/queries/slider.ts +1 -1
- package/src/test-utils/utils/createFileList.ts +2 -0
- package/src/test-utils/utils/createMatchMediaSpy.ts +4 -4
- package/src/test-utils/vitest/match-media.ts +2 -2
- package/src/test-utils/vitest/timers.ts +1 -1
- package/src/test-utils/vitest/uploadMenuItemFileInput.ts +1 -1
- package/src/theme/ThemeProvider.tsx +2 -2
- package/src/theme/getDerivedTheme.ts +1 -1
- package/src/theme/useCSSVariables.ts +5 -5
- package/src/theme/useColorSchemeMetaTag.ts +2 -2
- package/src/theme/useInlineCSSVariables.ts +6 -7
- package/src/theme/utils.ts +8 -8
- package/src/tooltip/useTooltip.ts +7 -7
- package/src/tooltip/useTooltipPosition.ts +1 -1
- package/src/transition/useCarousel.ts +2 -2
- package/src/transition/useCollapseTransition.ts +1 -1
- package/src/transition/useSkeletonPlaceholder.ts +4 -4
- package/src/transition/useTransition.ts +2 -2
- package/src/transition/utils.ts +5 -5
- package/src/tree/TreeItem.tsx +1 -1
- package/src/tree/useTreeItems.ts +5 -5
- package/src/tree/useTreeMovement.ts +1 -1
- package/src/tree/utils.ts +9 -9
- package/src/typography/HighlightText.tsx +4 -3
- package/src/typography/SrOnly.tsx +9 -2
- package/src/useDebouncedFunction.ts +5 -5
- package/src/useDropzone.ts +10 -10
- package/src/useEnsuredState.ts +5 -5
- package/src/useIntersectionObserver.ts +3 -3
- package/src/useIsomorphicLayoutEffect.ts +3 -3
- package/src/useOrientation.ts +1 -1
- package/src/useReadonlySet.ts +3 -1
- package/src/useResizeListener.ts +2 -2
- package/src/useResizeObserver.ts +3 -4
- package/src/useThrottledFunction.ts +4 -4
- package/src/useWindowSize.ts +1 -1
- package/src/utils/alphaNumericSort.ts +1 -1
- package/src/utils/bem.ts +15 -16
- package/src/utils/getNumberOfDigits.ts +1 -0
- package/src/utils/getRangeDefaultValue.ts +1 -1
- package/src/utils/nearest.ts +5 -2
- package/src/utils/parseCssLengthUnit.ts +5 -4
- package/src/utils/trigonometry.ts +1 -1
package/src/tree/useTreeItems.ts
CHANGED
|
@@ -68,19 +68,19 @@ export function buildTree<T extends TreeItemNode>(
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
if (
|
|
71
|
+
if (childItems.length === 0) {
|
|
72
72
|
return undefined;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
treeItemChildIds.set(parentId, childIds);
|
|
76
|
-
|
|
76
|
+
for (const childItem of childItems) {
|
|
77
77
|
childItem.items = buildTree({
|
|
78
78
|
sort,
|
|
79
79
|
nodes,
|
|
80
80
|
parentId: childItem.itemId,
|
|
81
81
|
treeItemChildIds,
|
|
82
82
|
});
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
|
|
85
85
|
return sort(childItems);
|
|
86
86
|
}
|
|
@@ -125,10 +125,10 @@ export function useTreeItems<T extends TreeItemNode>(
|
|
|
125
125
|
treeItemChildIds,
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
-
if (process.env.NODE_ENV !== "production" && values.length) {
|
|
128
|
+
if (process.env.NODE_ENV !== "production" && values.length > 0) {
|
|
129
129
|
/* eslint-disable no-console */
|
|
130
130
|
console.warn("The following tree items are orphaned without a parent:");
|
|
131
|
-
console.warn(values
|
|
131
|
+
console.warn([...values]);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
return {
|
|
@@ -174,7 +174,7 @@ export function useTreeMovement<T extends TreeItemNode>(
|
|
|
174
174
|
const expandableIds = [...itemIds].filter(
|
|
175
175
|
(itemId) => expandable[itemId]
|
|
176
176
|
);
|
|
177
|
-
if (expandableIds.length) {
|
|
177
|
+
if (expandableIds.length > 0) {
|
|
178
178
|
expandMultipleTreeItems(
|
|
179
179
|
(prev) => new Set([...prev, ...expandableIds])
|
|
180
180
|
);
|
package/src/tree/utils.ts
CHANGED
|
@@ -54,15 +54,15 @@ export function getChildTreeItems<T extends TreeItemNode = DefaultTreeItemNode>(
|
|
|
54
54
|
): readonly T[] {
|
|
55
55
|
const items: readonly T[] = Array.isArray(data) ? data : Object.values(data);
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
const treeItems: T[] = [];
|
|
58
|
+
for (const item of items) {
|
|
59
|
+
if (parentId === item.parentId) {
|
|
60
|
+
treeItems.push(
|
|
61
|
+
item,
|
|
62
|
+
...(recursive ? getChildTreeItems(items, item.itemId, recursive) : [])
|
|
63
|
+
);
|
|
60
64
|
}
|
|
65
|
+
}
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
...list,
|
|
64
|
-
item,
|
|
65
|
-
...(recursive ? getChildTreeItems(items, item.itemId, recursive) : []),
|
|
66
|
-
];
|
|
67
|
-
}, []);
|
|
67
|
+
return treeItems;
|
|
68
68
|
}
|
|
@@ -154,10 +154,11 @@ export function HighlightText(
|
|
|
154
154
|
|
|
155
155
|
const parts: ReactNode[] = [];
|
|
156
156
|
const text = removeAccents(child).trim();
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
const escapedQuery = cleanQuery.replaceAll(
|
|
158
|
+
SPECIAL_CHARACTERS_REGEXP,
|
|
159
|
+
String.raw`\$&`
|
|
160
160
|
);
|
|
161
|
+
const regex = new RegExp(`(${escapedQuery})`, "gi");
|
|
161
162
|
|
|
162
163
|
let match: RegExpExecArray | null;
|
|
163
164
|
let lastIndex = 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ElementType, type HTMLAttributes, forwardRef } from "react";
|
|
2
2
|
|
|
3
|
-
import { cssUtils } from "../cssUtils.js";
|
|
3
|
+
import { type SrOnlyBehavior, cssUtils } from "../cssUtils.js";
|
|
4
4
|
import {
|
|
5
5
|
type CustomTypographyComponent,
|
|
6
6
|
type TypographyHTMLElement,
|
|
@@ -67,13 +67,20 @@ export const SrOnly = forwardRef<TypographyHTMLElement, SrOnlyProps>(
|
|
|
67
67
|
// do some type-casting so ref works
|
|
68
68
|
const Component = AsComponent as ElementType;
|
|
69
69
|
|
|
70
|
+
let srOnly: SrOnlyBehavior = true;
|
|
71
|
+
if (focusable) {
|
|
72
|
+
srOnly = "focusable";
|
|
73
|
+
} else if (phoneOnly) {
|
|
74
|
+
srOnly = "phone";
|
|
75
|
+
}
|
|
76
|
+
|
|
70
77
|
return (
|
|
71
78
|
<Component
|
|
72
79
|
{...remaining}
|
|
73
80
|
ref={ref}
|
|
74
81
|
tabIndex={tabIndex ?? (focusable ? 0 : undefined)}
|
|
75
82
|
className={cssUtils({
|
|
76
|
-
srOnly
|
|
83
|
+
srOnly,
|
|
77
84
|
className,
|
|
78
85
|
})}
|
|
79
86
|
>
|
|
@@ -87,7 +87,7 @@ export function useDebouncedFunction<F extends AnyFunction>(
|
|
|
87
87
|
func: F,
|
|
88
88
|
wait: number
|
|
89
89
|
): DebouncedFunction<F> {
|
|
90
|
-
const timeout = useRef<
|
|
90
|
+
const timeout = useRef<NodeJS.Timeout>();
|
|
91
91
|
const funcRef = useRef(func);
|
|
92
92
|
useIsomorphicLayoutEffect(() => {
|
|
93
93
|
funcRef.current = func;
|
|
@@ -95,19 +95,19 @@ export function useDebouncedFunction<F extends AnyFunction>(
|
|
|
95
95
|
|
|
96
96
|
useEffect(() => {
|
|
97
97
|
return () => {
|
|
98
|
-
|
|
98
|
+
globalThis.clearTimeout(timeout.current);
|
|
99
99
|
};
|
|
100
100
|
}, []);
|
|
101
101
|
|
|
102
102
|
return useMemo(() => {
|
|
103
103
|
const debounced: DebouncedFunction<F> = (...args) => {
|
|
104
|
-
|
|
105
|
-
timeout.current =
|
|
104
|
+
globalThis.clearTimeout(timeout.current);
|
|
105
|
+
timeout.current = globalThis.setTimeout(() => {
|
|
106
106
|
funcRef.current(...args);
|
|
107
107
|
}, wait);
|
|
108
108
|
};
|
|
109
109
|
debounced.cancel = () => {
|
|
110
|
-
|
|
110
|
+
globalThis.clearTimeout(timeout.current);
|
|
111
111
|
};
|
|
112
112
|
|
|
113
113
|
return debounced;
|
package/src/useDropzone.ts
CHANGED
|
@@ -162,15 +162,15 @@ export function useDropzone(options: DropzoneOptions): DropzoneImplementation {
|
|
|
162
162
|
enable: startDragging,
|
|
163
163
|
disable: stopDragging,
|
|
164
164
|
} = useToggle();
|
|
165
|
-
const draggingTimeout = useRef<
|
|
165
|
+
const draggingTimeout = useRef<NodeJS.Timeout>();
|
|
166
166
|
|
|
167
167
|
// Browsers sometimes don't trigger a dragleave event for the entire
|
|
168
168
|
// document, so we have to work around that by using the `dragover` event
|
|
169
169
|
// instead. The `dragover` event will continually fire within the window
|
|
170
170
|
// until the user drops the file or moves the file outside of the window.
|
|
171
171
|
const delayedStopDragging = useCallback(() => {
|
|
172
|
-
|
|
173
|
-
draggingTimeout.current =
|
|
172
|
+
globalThis.clearTimeout(draggingTimeout.current);
|
|
173
|
+
draggingTimeout.current = globalThis.setTimeout(() => {
|
|
174
174
|
stopDragging();
|
|
175
175
|
}, 100);
|
|
176
176
|
}, [stopDragging]);
|
|
@@ -180,12 +180,12 @@ export function useDropzone(options: DropzoneOptions): DropzoneImplementation {
|
|
|
180
180
|
return;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
globalThis.addEventListener("dragenter", startDragging);
|
|
184
|
+
globalThis.addEventListener("dragover", delayedStopDragging);
|
|
185
185
|
return () => {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
globalThis.clearTimeout(draggingTimeout.current);
|
|
187
|
+
globalThis.removeEventListener("dragenter", startDragging);
|
|
188
|
+
globalThis.removeEventListener("dragover", delayedStopDragging);
|
|
189
189
|
};
|
|
190
190
|
}, [delayedStopDragging, disableDragging, startDragging]);
|
|
191
191
|
|
|
@@ -204,7 +204,7 @@ export function useDropzone(options: DropzoneOptions): DropzoneImplementation {
|
|
|
204
204
|
event.preventDefault();
|
|
205
205
|
event.stopPropagation();
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
globalThis.clearTimeout(draggingTimeout.current);
|
|
208
208
|
onDrop(event);
|
|
209
209
|
setOver(false);
|
|
210
210
|
stopDragging();
|
|
@@ -213,7 +213,7 @@ export function useDropzone(options: DropzoneOptions): DropzoneImplementation {
|
|
|
213
213
|
event.preventDefault();
|
|
214
214
|
event.stopPropagation();
|
|
215
215
|
|
|
216
|
-
|
|
216
|
+
globalThis.clearTimeout(draggingTimeout.current);
|
|
217
217
|
onDragOver(event);
|
|
218
218
|
setOver(true);
|
|
219
219
|
},
|
package/src/useEnsuredState.ts
CHANGED
|
@@ -32,19 +32,19 @@ export function useEnsuredState<
|
|
|
32
32
|
options: EnsuredStateOptions<V, Setter>
|
|
33
33
|
): readonly [value: V, setValue: Setter] {
|
|
34
34
|
const { name = "value", value, setValue, defaultValue } = options;
|
|
35
|
-
if (
|
|
35
|
+
if (value !== undefined && setValue !== undefined) {
|
|
36
36
|
return [value, setValue];
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
if (
|
|
40
|
-
const pascalName = name.charAt(0).toUpperCase() + name.
|
|
39
|
+
if (value !== undefined || setValue !== undefined) {
|
|
40
|
+
const pascalName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
41
41
|
throw new Error(
|
|
42
42
|
`Both a \`${name}\` and \`set${pascalName}\` must be defined for controlled components.`
|
|
43
43
|
);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
if (
|
|
47
|
-
const pascalName = name.charAt(0).toUpperCase() + name.
|
|
46
|
+
if (defaultValue === undefined) {
|
|
47
|
+
const pascalName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
48
48
|
throw new Error(
|
|
49
49
|
`A \`default${pascalName}\` must be defined for uncontrolled components.`
|
|
50
50
|
);
|
|
@@ -277,7 +277,7 @@ export function useIntersectionObserver<E extends HTMLElement>(
|
|
|
277
277
|
targets = [element];
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
if (disabled ||
|
|
280
|
+
if (disabled || targets.length === 0) {
|
|
281
281
|
return;
|
|
282
282
|
}
|
|
283
283
|
|
|
@@ -303,9 +303,9 @@ export function useIntersectionObserver<E extends HTMLElement>(
|
|
|
303
303
|
// - when cleaning up, check if there are any other existing callbacks
|
|
304
304
|
// - disconnect and remove the observer if there are none left
|
|
305
305
|
const observer = new IntersectionObserver(onUpdate, options);
|
|
306
|
-
|
|
306
|
+
for (const target of targets) {
|
|
307
307
|
observer.observe(target);
|
|
308
|
-
}
|
|
308
|
+
}
|
|
309
309
|
|
|
310
310
|
return () => {
|
|
311
311
|
observer.disconnect();
|
|
@@ -9,8 +9,8 @@ import { useEffect, useLayoutEffect } from "react";
|
|
|
9
9
|
* @see {@link https://github.com/reduxjs/react-redux/blob/4c907c0870c6b9a136dd69be294c17d1dc63c8f5/src/utils/useIsomorphicLayoutEffect.js}
|
|
10
10
|
*/
|
|
11
11
|
export const useIsomorphicLayoutEffect =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
globalThis.window !== undefined &&
|
|
13
|
+
globalThis.document !== undefined &&
|
|
14
|
+
globalThis.document.createElement !== undefined
|
|
15
15
|
? useLayoutEffect
|
|
16
16
|
: useEffect;
|
package/src/useOrientation.ts
CHANGED
package/src/useReadonlySet.ts
CHANGED
|
@@ -87,7 +87,9 @@ export function useReadonlySet<T>(
|
|
|
87
87
|
const { defaultValue, toggleType = "multiple" } = options;
|
|
88
88
|
const [value, setValue] = useState<ReadonlySet<T>>(() => {
|
|
89
89
|
const initial =
|
|
90
|
-
|
|
90
|
+
typeof defaultValue === "function"
|
|
91
|
+
? defaultValue()
|
|
92
|
+
: (defaultValue ?? []);
|
|
91
93
|
|
|
92
94
|
return new Set(initial);
|
|
93
95
|
});
|
package/src/useResizeListener.ts
CHANGED
|
@@ -95,7 +95,7 @@ export function useResizeListener(options: ResizeListenerOptions): void {
|
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
const eventHandler = delegateEvent("resize", window, throttle, {
|
|
98
|
+
const eventHandler = delegateEvent("resize", globalThis.window, throttle, {
|
|
99
99
|
once,
|
|
100
100
|
signal,
|
|
101
101
|
capture,
|
|
@@ -103,7 +103,7 @@ export function useResizeListener(options: ResizeListenerOptions): void {
|
|
|
103
103
|
});
|
|
104
104
|
eventHandler.add(onUpdate);
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
globalThis.dispatchEvent(new Event("resize"));
|
|
107
107
|
return () => {
|
|
108
108
|
eventHandler.remove(onUpdate);
|
|
109
109
|
};
|
package/src/useResizeObserver.ts
CHANGED
|
@@ -47,7 +47,7 @@ interface SubscribeOptions {
|
|
|
47
47
|
* `src/tests-utils/ResizeObserver.ts`
|
|
48
48
|
*/
|
|
49
49
|
export class ResizeObserverManager {
|
|
50
|
-
frame: number;
|
|
50
|
+
frame: number = 0;
|
|
51
51
|
subscriptions: Map<Element, Set<TargetSubscription>>;
|
|
52
52
|
|
|
53
53
|
/**
|
|
@@ -62,7 +62,6 @@ export class ResizeObserverManager {
|
|
|
62
62
|
sharedObserver: ResizeObserver | undefined;
|
|
63
63
|
|
|
64
64
|
constructor() {
|
|
65
|
-
this.frame = 0;
|
|
66
65
|
this.subscriptions = new Map();
|
|
67
66
|
}
|
|
68
67
|
|
|
@@ -74,8 +73,8 @@ export class ResizeObserverManager {
|
|
|
74
73
|
this.sharedObserver ||
|
|
75
74
|
new ResizeObserver((entries) => {
|
|
76
75
|
// this prevents the `ResizeObserver loop limit exceeded`
|
|
77
|
-
|
|
78
|
-
this.frame =
|
|
76
|
+
globalThis.cancelAnimationFrame(this.frame);
|
|
77
|
+
this.frame = globalThis.requestAnimationFrame(() => {
|
|
79
78
|
this.handleResizeEntries(entries);
|
|
80
79
|
});
|
|
81
80
|
});
|
|
@@ -88,7 +88,7 @@ export function useThrottledFunction<F extends AnyFunction>(
|
|
|
88
88
|
): ThrottledFunction<F> {
|
|
89
89
|
const args = useRef<Parameters<F>>();
|
|
90
90
|
const result = useRef<ReturnType<F>>();
|
|
91
|
-
const timeout = useRef<
|
|
91
|
+
const timeout = useRef<NodeJS.Timeout>();
|
|
92
92
|
const funcRef = useRef(func);
|
|
93
93
|
const lastCalledTime = useRef(0);
|
|
94
94
|
|
|
@@ -98,7 +98,7 @@ export function useThrottledFunction<F extends AnyFunction>(
|
|
|
98
98
|
|
|
99
99
|
useEffect(() => {
|
|
100
100
|
return () => {
|
|
101
|
-
|
|
101
|
+
globalThis.clearTimeout(timeout.current);
|
|
102
102
|
};
|
|
103
103
|
}, []);
|
|
104
104
|
|
|
@@ -113,7 +113,7 @@ export function useThrottledFunction<F extends AnyFunction>(
|
|
|
113
113
|
|
|
114
114
|
result.current = funcRef.current(...args.current);
|
|
115
115
|
} else if (!timeout.current) {
|
|
116
|
-
timeout.current =
|
|
116
|
+
timeout.current = globalThis.setTimeout(() => {
|
|
117
117
|
lastCalledTime.current = Date.now();
|
|
118
118
|
timeout.current = undefined;
|
|
119
119
|
// should exist by this time
|
|
@@ -125,7 +125,7 @@ export function useThrottledFunction<F extends AnyFunction>(
|
|
|
125
125
|
return result.current as ReturnType<F>;
|
|
126
126
|
};
|
|
127
127
|
throttled.cancel = () => {
|
|
128
|
-
|
|
128
|
+
globalThis.clearTimeout(timeout.current);
|
|
129
129
|
};
|
|
130
130
|
|
|
131
131
|
return throttled;
|
package/src/useWindowSize.ts
CHANGED
|
@@ -87,7 +87,7 @@ export function useWindowSize(options: WindowSizeOptions = {}): ElementSize {
|
|
|
87
87
|
|
|
88
88
|
const ssr = useSsr();
|
|
89
89
|
const [size, setSize] = useState(() => {
|
|
90
|
-
if (
|
|
90
|
+
if (globalThis.window === undefined || ssr) {
|
|
91
91
|
return {
|
|
92
92
|
height: ssrHeight,
|
|
93
93
|
width: ssrWidth,
|
package/src/utils/bem.ts
CHANGED
|
@@ -6,13 +6,14 @@ function modify(base: string, modifier?: BEMModifier): string {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
const hasOwn = Object.prototype.hasOwnProperty;
|
|
9
|
-
|
|
9
|
+
let className = base;
|
|
10
|
+
for (const mod of Object.keys(modifier)) {
|
|
10
11
|
if (hasOwn.call(modifier, mod) && modifier[mod]) {
|
|
11
|
-
|
|
12
|
+
className += ` ${base}--${mod}`;
|
|
12
13
|
}
|
|
14
|
+
}
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
}, base);
|
|
16
|
+
return className;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -105,24 +106,22 @@ export interface BEMResult {
|
|
|
105
106
|
* @returns a function to call that generates the full class name
|
|
106
107
|
*/
|
|
107
108
|
export function bem(base: string): BEMResult {
|
|
108
|
-
if (process.env.NODE_ENV !== "production") {
|
|
109
|
-
|
|
110
|
-
throw new Error(
|
|
111
|
-
"bem requires a base block class but none were provided."
|
|
112
|
-
);
|
|
113
|
-
}
|
|
109
|
+
if (process.env.NODE_ENV !== "production" && !base) {
|
|
110
|
+
throw new Error("bem requires a base block class but none were provided.");
|
|
114
111
|
}
|
|
115
112
|
|
|
116
113
|
function block(
|
|
117
114
|
elementOrModifier?: BEMModifier | string,
|
|
118
115
|
modifier?: BEMModifier
|
|
119
116
|
): string {
|
|
120
|
-
if (
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
if (
|
|
118
|
+
process.env.NODE_ENV !== "production" &&
|
|
119
|
+
typeof elementOrModifier !== "string" &&
|
|
120
|
+
modifier
|
|
121
|
+
) {
|
|
122
|
+
throw new TypeError(
|
|
123
|
+
"bem does not support having two modifier arguments."
|
|
124
|
+
);
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
if (!elementOrModifier) {
|
|
@@ -20,7 +20,7 @@ export function getRangeDefaultValue(
|
|
|
20
20
|
options: RangeDefaultValueOptions
|
|
21
21
|
): UseStateInitializer<number> {
|
|
22
22
|
const { defaultValue } = options;
|
|
23
|
-
if (
|
|
23
|
+
if (defaultValue !== undefined) {
|
|
24
24
|
return defaultValue;
|
|
25
25
|
}
|
|
26
26
|
|
package/src/utils/nearest.ts
CHANGED
|
@@ -36,10 +36,13 @@ export function nearest(options: NearestOptions): number {
|
|
|
36
36
|
const step = range / steps;
|
|
37
37
|
const decimals = Number.isInteger(step)
|
|
38
38
|
? range % steps
|
|
39
|
-
: getNumberOfDigits(parseInt(`${step}`.split(".")[1]));
|
|
39
|
+
: getNumberOfDigits(Number.parseInt(`${step}`.split(".")[1]));
|
|
40
40
|
|
|
41
41
|
return Math.min(
|
|
42
42
|
max,
|
|
43
|
-
Math.max(
|
|
43
|
+
Math.max(
|
|
44
|
+
min,
|
|
45
|
+
Number.parseFloat((zeroToOne * range + min).toFixed(decimals))
|
|
46
|
+
)
|
|
44
47
|
);
|
|
45
48
|
}
|
|
@@ -47,20 +47,21 @@ export function parseCssLengthUnit(options: ParseCssLengthUnitOptions): number {
|
|
|
47
47
|
throw new Error(`Unable to parse a unit with \`calc\`: "${value}"`);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
const parsed = parseFloat(value);
|
|
50
|
+
const parsed = Number.parseFloat(value);
|
|
51
51
|
if (/px$/i.test(value)) {
|
|
52
52
|
return parsed;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
if (
|
|
55
|
+
if (globalThis.window === undefined) {
|
|
56
56
|
return parsed * fallbackFontSize;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
const styleContainer =
|
|
60
60
|
!container || /rem$/i.test(value) ? document.documentElement : container;
|
|
61
61
|
|
|
62
|
-
const fontSize = parseFloat(
|
|
63
|
-
|
|
62
|
+
const fontSize = Number.parseFloat(
|
|
63
|
+
globalThis.getComputedStyle(styleContainer).fontSize ||
|
|
64
|
+
`${fallbackFontSize}px`
|
|
64
65
|
);
|
|
65
66
|
|
|
66
67
|
return parsed * fontSize;
|