@react-md/core 6.5.0 → 6.5.2

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.
Files changed (402) hide show
  1. package/dist/_utils.scss +5 -1
  2. package/dist/autocomplete/AutocompleteChip.js +2 -2
  3. package/dist/autocomplete/AutocompleteChip.js.map +1 -1
  4. package/dist/autocomplete/AutocompleteListboxChildren.js +1 -1
  5. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
  6. package/dist/autocomplete/useAutocomplete.js +4 -4
  7. package/dist/autocomplete/useAutocomplete.js.map +1 -1
  8. package/dist/autocomplete/utils.js +3 -3
  9. package/dist/autocomplete/utils.js.map +1 -1
  10. package/dist/box/styles.js +2 -2
  11. package/dist/box/styles.js.map +1 -1
  12. package/dist/button/AsyncButton.js +1 -1
  13. package/dist/button/AsyncButton.js.map +1 -1
  14. package/dist/chip/Chip.js +1 -1
  15. package/dist/chip/Chip.js.map +1 -1
  16. package/dist/cssUtils.d.ts +11 -6
  17. package/dist/cssUtils.js.map +1 -1
  18. package/dist/datetime/useTimeField.js +1 -1
  19. package/dist/datetime/useTimeField.js.map +1 -1
  20. package/dist/delegateEvent.js +9 -9
  21. package/dist/delegateEvent.js.map +1 -1
  22. package/dist/draggable/useDraggable.js +4 -4
  23. package/dist/draggable/useDraggable.js.map +1 -1
  24. package/dist/draggable/utils.js +1 -1
  25. package/dist/draggable/utils.js.map +1 -1
  26. package/dist/expansion-panel/ExpansionPanel.js +1 -1
  27. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  28. package/dist/expansion-panel/useExpansionPanels.js +1 -1
  29. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  30. package/dist/files/FileInput.js +1 -1
  31. package/dist/files/FileInput.js.map +1 -1
  32. package/dist/files/createAcceptFromExtensions.d.ts +5 -0
  33. package/dist/files/createAcceptFromExtensions.js +15 -0
  34. package/dist/files/createAcceptFromExtensions.js.map +1 -0
  35. package/dist/files/useFileUpload.js +45 -41
  36. package/dist/files/useFileUpload.js.map +1 -1
  37. package/dist/files/utils.js +14 -10
  38. package/dist/files/utils.js.map +1 -1
  39. package/dist/files/validation.js +7 -8
  40. package/dist/files/validation.js.map +1 -1
  41. package/dist/focus/useFocusContainer.js +1 -1
  42. package/dist/focus/useFocusContainer.js.map +1 -1
  43. package/dist/focus/utils.js +12 -7
  44. package/dist/focus/utils.js.map +1 -1
  45. package/dist/form/InputToggleIcon.js +5 -1
  46. package/dist/form/InputToggleIcon.js.map +1 -1
  47. package/dist/form/NativeSelect.js +1 -1
  48. package/dist/form/NativeSelect.js.map +1 -1
  49. package/dist/form/Select.js +5 -5
  50. package/dist/form/Select.js.map +1 -1
  51. package/dist/form/formConfig.js +1 -1
  52. package/dist/form/formConfig.js.map +1 -1
  53. package/dist/form/inputToggleStyles.js +7 -1
  54. package/dist/form/inputToggleStyles.js.map +1 -1
  55. package/dist/form/selectUtils.js +2 -2
  56. package/dist/form/selectUtils.js.map +1 -1
  57. package/dist/form/useCombobox.js +1 -0
  58. package/dist/form/useCombobox.js.map +1 -1
  59. package/dist/form/useFormReset.js +2 -2
  60. package/dist/form/useFormReset.js.map +1 -1
  61. package/dist/form/useNumberField.js +1 -1
  62. package/dist/form/useNumberField.js.map +1 -1
  63. package/dist/form/useResizingTextArea.js +4 -4
  64. package/dist/form/useResizingTextArea.js.map +1 -1
  65. package/dist/form/useSelectCombobox.js +1 -1
  66. package/dist/form/useSelectCombobox.js.map +1 -1
  67. package/dist/form/validation.js +1 -1
  68. package/dist/form/validation.js.map +1 -1
  69. package/dist/hoverMode/useHoverMode.js +8 -8
  70. package/dist/hoverMode/useHoverMode.js.map +1 -1
  71. package/dist/hoverMode/useHoverModeProvider.js +3 -3
  72. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  73. package/dist/icon/config.js +3 -3
  74. package/dist/icon/config.js.map +1 -1
  75. package/dist/icon/materialConfig.js +1 -1
  76. package/dist/icon/materialConfig.js.map +1 -1
  77. package/dist/interaction/UserInteractionModeProvider.js +11 -10
  78. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  79. package/dist/interaction/utils.js +7 -3
  80. package/dist/interaction/utils.js.map +1 -1
  81. package/dist/layout/useExpandableLayout.js +3 -4
  82. package/dist/layout/useExpandableLayout.js.map +1 -1
  83. package/dist/layout/useMainTabIndex.js +1 -1
  84. package/dist/layout/useMainTabIndex.js.map +1 -1
  85. package/dist/list/ListItem.js +1 -1
  86. package/dist/list/ListItem.js.map +1 -1
  87. package/dist/media-queries/AppSizeProvider.js +1 -1
  88. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  89. package/dist/media-queries/config.js +2 -2
  90. package/dist/media-queries/config.js.map +1 -1
  91. package/dist/media-queries/useMediaQuery.js +3 -3
  92. package/dist/media-queries/useMediaQuery.js.map +1 -1
  93. package/dist/menu/Menu.js +4 -4
  94. package/dist/menu/Menu.js.map +1 -1
  95. package/dist/menu/MenuItemButton.js +1 -1
  96. package/dist/menu/MenuItemButton.js.map +1 -1
  97. package/dist/menu/MenuItemFileInput.js +1 -1
  98. package/dist/menu/MenuItemFileInput.js.map +1 -1
  99. package/dist/menu/MenuWidget.js +2 -2
  100. package/dist/menu/MenuWidget.js.map +1 -1
  101. package/dist/movement/findMatchIndex.js +2 -2
  102. package/dist/movement/findMatchIndex.js.map +1 -1
  103. package/dist/movement/useKeyboardMovementProvider.js +2 -2
  104. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  105. package/dist/movement/utils.js +12 -10
  106. package/dist/movement/utils.js.map +1 -1
  107. package/dist/navigation/getTableOfContentsHeadings.js +4 -3
  108. package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
  109. package/dist/navigation/useActiveHeadingId.js +9 -9
  110. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  111. package/dist/navigation/useTableOfContentsHeadings.js +1 -1
  112. package/dist/navigation/useTableOfContentsHeadings.js.map +1 -1
  113. package/dist/navigation/utils.js +6 -5
  114. package/dist/navigation/utils.js.map +1 -1
  115. package/dist/portal/PortalContainerProvider.js +5 -3
  116. package/dist/portal/PortalContainerProvider.js.map +1 -1
  117. package/dist/positioning/getFixedPosition.js +2 -4
  118. package/dist/positioning/getFixedPosition.js.map +1 -1
  119. package/dist/positioning/useFixedPositioning.js +2 -2
  120. package/dist/positioning/useFixedPositioning.js.map +1 -1
  121. package/dist/positioning/utils.js +3 -3
  122. package/dist/positioning/utils.js.map +1 -1
  123. package/dist/scroll/getScrollbarWidth.js +4 -4
  124. package/dist/scroll/getScrollbarWidth.js.map +1 -1
  125. package/dist/searching/fuzzy.js +3 -2
  126. package/dist/searching/fuzzy.js.map +1 -1
  127. package/dist/searching/toSearchQuery.js +1 -1
  128. package/dist/searching/toSearchQuery.js.map +1 -1
  129. package/dist/searching/utils.js +1 -1
  130. package/dist/searching/utils.js.map +1 -1
  131. package/dist/snackbar/Toast.js +1 -1
  132. package/dist/snackbar/Toast.js.map +1 -1
  133. package/dist/snackbar/ToastContent.js +2 -2
  134. package/dist/snackbar/ToastContent.js.map +1 -1
  135. package/dist/snackbar/ToastManager.d.ts +1 -1
  136. package/dist/snackbar/ToastManager.js +11 -11
  137. package/dist/snackbar/ToastManager.js.map +1 -1
  138. package/dist/spinbutton/useSpinButton.js +1 -1
  139. package/dist/spinbutton/useSpinButton.js.map +1 -1
  140. package/dist/spinbutton/utils/deselectNode.js +1 -1
  141. package/dist/spinbutton/utils/deselectNode.js.map +1 -1
  142. package/dist/spinbutton/utils/resolveInputEvent.js +1 -1
  143. package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -1
  144. package/dist/spinbutton/utils/selectNode.js +1 -1
  145. package/dist/spinbutton/utils/selectNode.js.map +1 -1
  146. package/dist/storage/useStorage.js +8 -3
  147. package/dist/storage/useStorage.js.map +1 -1
  148. package/dist/table/useStickyTableSection.js +1 -1
  149. package/dist/table/useStickyTableSection.js.map +1 -1
  150. package/dist/tabs/TabList.js +2 -2
  151. package/dist/tabs/TabList.js.map +1 -1
  152. package/dist/tabs/useMaxTabPanelHeight.js +4 -3
  153. package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
  154. package/dist/tabs/useTabList.js +1 -1
  155. package/dist/tabs/useTabList.js.map +1 -1
  156. package/dist/test-utils/jest-globals/match-media.d.ts +1 -1
  157. package/dist/test-utils/jest-globals/match-media.js +1 -1
  158. package/dist/test-utils/jest-globals/match-media.js.map +1 -1
  159. package/dist/test-utils/jest-globals/timers.js +1 -1
  160. package/dist/test-utils/jest-globals/timers.js.map +1 -1
  161. package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js +1 -1
  162. package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js.map +1 -1
  163. package/dist/test-utils/mocks/ResizeObserver.js +2 -2
  164. package/dist/test-utils/mocks/ResizeObserver.js.map +1 -1
  165. package/dist/test-utils/polyfills/IntersectionObserver.js +2 -2
  166. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
  167. package/dist/test-utils/polyfills/ResizeObserver.js +2 -2
  168. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
  169. package/dist/test-utils/polyfills/TextDecoder.js +2 -2
  170. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  171. package/dist/test-utils/polyfills/TextEncoder.js +2 -2
  172. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
  173. package/dist/test-utils/polyfills/matchMedia.js +2 -2
  174. package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
  175. package/dist/test-utils/polyfills/offsetParent.js +2 -2
  176. package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
  177. package/dist/test-utils/polyfills/scrollIntoView.js +1 -1
  178. package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
  179. package/dist/test-utils/queries/select.js +2 -2
  180. package/dist/test-utils/queries/select.js.map +1 -1
  181. package/dist/test-utils/queries/slider.js +1 -1
  182. package/dist/test-utils/queries/slider.js.map +1 -1
  183. package/dist/test-utils/utils/createFileList.js +2 -0
  184. package/dist/test-utils/utils/createFileList.js.map +1 -1
  185. package/dist/test-utils/utils/createMatchMediaSpy.d.ts +1 -1
  186. package/dist/test-utils/utils/createMatchMediaSpy.js +3 -3
  187. package/dist/test-utils/utils/createMatchMediaSpy.js.map +1 -1
  188. package/dist/test-utils/vitest/match-media.d.ts +1 -1
  189. package/dist/test-utils/vitest/match-media.js +1 -1
  190. package/dist/test-utils/vitest/match-media.js.map +1 -1
  191. package/dist/test-utils/vitest/timers.js +1 -1
  192. package/dist/test-utils/vitest/timers.js.map +1 -1
  193. package/dist/test-utils/vitest/uploadMenuItemFileInput.js +1 -1
  194. package/dist/test-utils/vitest/uploadMenuItemFileInput.js.map +1 -1
  195. package/dist/theme/ThemeProvider.js +2 -2
  196. package/dist/theme/ThemeProvider.js.map +1 -1
  197. package/dist/theme/getDerivedTheme.js +1 -1
  198. package/dist/theme/getDerivedTheme.js.map +1 -1
  199. package/dist/theme/useCSSVariables.js +5 -5
  200. package/dist/theme/useCSSVariables.js.map +1 -1
  201. package/dist/theme/useColorSchemeMetaTag.js +2 -2
  202. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  203. package/dist/theme/useInlineCSSVariables.js +4 -3
  204. package/dist/theme/useInlineCSSVariables.js.map +1 -1
  205. package/dist/theme/utils.js +8 -8
  206. package/dist/theme/utils.js.map +1 -1
  207. package/dist/tooltip/useTooltip.js +7 -7
  208. package/dist/tooltip/useTooltip.js.map +1 -1
  209. package/dist/tooltip/useTooltipPosition.js +1 -1
  210. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  211. package/dist/transition/useCarousel.js +2 -2
  212. package/dist/transition/useCarousel.js.map +1 -1
  213. package/dist/transition/useCollapseTransition.js +1 -1
  214. package/dist/transition/useCollapseTransition.js.map +1 -1
  215. package/dist/transition/useSkeletonPlaceholder.js +4 -4
  216. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  217. package/dist/transition/useTransition.js +2 -2
  218. package/dist/transition/useTransition.js.map +1 -1
  219. package/dist/transition/utils.js +5 -5
  220. package/dist/transition/utils.js.map +1 -1
  221. package/dist/tree/TreeItem.js +1 -1
  222. package/dist/tree/TreeItem.js.map +1 -1
  223. package/dist/tree/useTreeItems.js +7 -5
  224. package/dist/tree/useTreeItems.js.map +1 -1
  225. package/dist/tree/useTreeMovement.js +1 -1
  226. package/dist/tree/useTreeMovement.js.map +1 -1
  227. package/dist/tree/utils.js +6 -9
  228. package/dist/tree/utils.js.map +1 -1
  229. package/dist/typography/HighlightText.js +2 -1
  230. package/dist/typography/HighlightText.js.map +1 -1
  231. package/dist/typography/SrOnly.js +7 -1
  232. package/dist/typography/SrOnly.js.map +1 -1
  233. package/dist/useDebouncedFunction.js +4 -4
  234. package/dist/useDebouncedFunction.js.map +1 -1
  235. package/dist/useDropzone.js +9 -9
  236. package/dist/useDropzone.js.map +1 -1
  237. package/dist/useEnsuredState.js +5 -5
  238. package/dist/useEnsuredState.js.map +1 -1
  239. package/dist/useIntersectionObserver.js +3 -3
  240. package/dist/useIntersectionObserver.js.map +1 -1
  241. package/dist/useIsomorphicLayoutEffect.js +1 -1
  242. package/dist/useIsomorphicLayoutEffect.js.map +1 -1
  243. package/dist/useOrientation.js +1 -1
  244. package/dist/useOrientation.js.map +1 -1
  245. package/dist/useReadonlySet.js +1 -1
  246. package/dist/useReadonlySet.js.map +1 -1
  247. package/dist/useResizeListener.js +2 -2
  248. package/dist/useResizeListener.js.map +1 -1
  249. package/dist/useResizeObserver.js +3 -4
  250. package/dist/useResizeObserver.js.map +1 -1
  251. package/dist/useThrottledFunction.js +3 -3
  252. package/dist/useThrottledFunction.js.map +1 -1
  253. package/dist/useWindowSize.js +1 -1
  254. package/dist/useWindowSize.js.map +1 -1
  255. package/dist/utils/alphaNumericSort.js +3 -1
  256. package/dist/utils/alphaNumericSort.js.map +1 -1
  257. package/dist/utils/bem.js +9 -12
  258. package/dist/utils/bem.js.map +1 -1
  259. package/dist/utils/getNumberOfDigits.js +1 -0
  260. package/dist/utils/getNumberOfDigits.js.map +1 -1
  261. package/dist/utils/getRangeDefaultValue.js +1 -1
  262. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  263. package/dist/utils/nearest.js +2 -2
  264. package/dist/utils/nearest.js.map +1 -1
  265. package/dist/utils/parseCssLengthUnit.js +3 -3
  266. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  267. package/dist/utils/trigonometry.js +1 -1
  268. package/dist/utils/trigonometry.js.map +1 -1
  269. package/package.json +3 -1
  270. package/src/autocomplete/AutocompleteChip.tsx +2 -2
  271. package/src/autocomplete/AutocompleteListboxChildren.tsx +1 -1
  272. package/src/autocomplete/useAutocomplete.ts +4 -4
  273. package/src/autocomplete/utils.ts +3 -3
  274. package/src/box/styles.ts +2 -2
  275. package/src/button/AsyncButton.tsx +1 -3
  276. package/src/chip/Chip.tsx +1 -2
  277. package/src/cssUtils.ts +12 -6
  278. package/src/datetime/useTimeField.ts +1 -1
  279. package/src/delegateEvent.ts +9 -9
  280. package/src/draggable/useDraggable.ts +4 -4
  281. package/src/draggable/utils.ts +1 -1
  282. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  283. package/src/expansion-panel/useExpansionPanels.ts +1 -1
  284. package/src/files/FileInput.tsx +1 -1
  285. package/src/files/createAcceptFromExtensions.ts +18 -0
  286. package/src/files/useFileUpload.ts +36 -37
  287. package/src/files/utils.ts +15 -11
  288. package/src/files/validation.ts +7 -9
  289. package/src/focus/useFocusContainer.ts +1 -1
  290. package/src/focus/utils.ts +11 -6
  291. package/src/form/InputToggleIcon.tsx +5 -5
  292. package/src/form/NativeSelect.tsx +1 -1
  293. package/src/form/Select.tsx +5 -5
  294. package/src/form/formConfig.ts +1 -1
  295. package/src/form/inputToggleStyles.ts +9 -4
  296. package/src/form/selectUtils.ts +2 -2
  297. package/src/form/useCombobox.ts +1 -0
  298. package/src/form/useFormReset.ts +2 -2
  299. package/src/form/useNumberField.ts +1 -1
  300. package/src/form/useResizingTextArea.ts +5 -5
  301. package/src/form/useSelectCombobox.ts +1 -4
  302. package/src/form/validation.ts +1 -1
  303. package/src/hoverMode/useHoverMode.ts +9 -9
  304. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  305. package/src/icon/config.tsx +3 -3
  306. package/src/icon/materialConfig.ts +1 -1
  307. package/src/interaction/UserInteractionModeProvider.tsx +11 -10
  308. package/src/interaction/utils.ts +3 -3
  309. package/src/layout/useExpandableLayout.ts +3 -4
  310. package/src/layout/useMainTabIndex.ts +1 -1
  311. package/src/list/ListItem.tsx +1 -1
  312. package/src/media-queries/AppSizeProvider.tsx +1 -1
  313. package/src/media-queries/config.ts +2 -2
  314. package/src/media-queries/useMediaQuery.ts +3 -3
  315. package/src/menu/Menu.tsx +4 -4
  316. package/src/menu/MenuItemButton.tsx +1 -1
  317. package/src/menu/MenuItemFileInput.tsx +1 -1
  318. package/src/menu/MenuWidget.tsx +6 -4
  319. package/src/movement/findMatchIndex.ts +2 -2
  320. package/src/movement/useKeyboardMovementProvider.ts +2 -2
  321. package/src/movement/utils.ts +15 -14
  322. package/src/navigation/getTableOfContentsHeadings.ts +4 -3
  323. package/src/navigation/useActiveHeadingId.ts +8 -8
  324. package/src/navigation/useTableOfContentsHeadings.ts +1 -1
  325. package/src/navigation/utils.ts +6 -5
  326. package/src/portal/PortalContainerProvider.tsx +5 -3
  327. package/src/positioning/getFixedPosition.ts +9 -6
  328. package/src/positioning/useFixedPositioning.ts +2 -2
  329. package/src/positioning/utils.ts +3 -3
  330. package/src/scroll/getScrollbarWidth.ts +4 -4
  331. package/src/searching/fuzzy.ts +7 -3
  332. package/src/searching/toSearchQuery.ts +1 -1
  333. package/src/searching/utils.ts +1 -1
  334. package/src/snackbar/Toast.tsx +1 -1
  335. package/src/snackbar/ToastContent.tsx +2 -2
  336. package/src/snackbar/ToastManager.ts +11 -12
  337. package/src/spinbutton/useSpinButton.ts +1 -1
  338. package/src/spinbutton/utils/deselectNode.ts +1 -1
  339. package/src/spinbutton/utils/resolveInputEvent.ts +1 -1
  340. package/src/spinbutton/utils/selectNode.ts +1 -1
  341. package/src/storage/useStorage.ts +7 -2
  342. package/src/table/useStickyTableSection.tsx +1 -1
  343. package/src/tabs/TabList.tsx +2 -2
  344. package/src/tabs/useMaxTabPanelHeight.ts +6 -3
  345. package/src/tabs/useTabList.ts +2 -2
  346. package/src/test-utils/jest-globals/match-media.ts +5 -2
  347. package/src/test-utils/jest-globals/timers.ts +1 -1
  348. package/src/test-utils/jest-globals/uploadMenuItemFileInput.ts +1 -1
  349. package/src/test-utils/mocks/ResizeObserver.ts +2 -2
  350. package/src/test-utils/polyfills/IntersectionObserver.ts +2 -2
  351. package/src/test-utils/polyfills/ResizeObserver.ts +2 -2
  352. package/src/test-utils/polyfills/TextDecoder.ts +2 -2
  353. package/src/test-utils/polyfills/TextEncoder.ts +2 -2
  354. package/src/test-utils/polyfills/matchMedia.ts +5 -2
  355. package/src/test-utils/polyfills/offsetParent.ts +2 -2
  356. package/src/test-utils/polyfills/scrollIntoView.ts +1 -1
  357. package/src/test-utils/queries/select.ts +2 -2
  358. package/src/test-utils/queries/slider.ts +1 -1
  359. package/src/test-utils/utils/createFileList.ts +2 -0
  360. package/src/test-utils/utils/createMatchMediaSpy.ts +4 -4
  361. package/src/test-utils/vitest/match-media.ts +2 -2
  362. package/src/test-utils/vitest/timers.ts +1 -1
  363. package/src/test-utils/vitest/uploadMenuItemFileInput.ts +1 -1
  364. package/src/theme/ThemeProvider.tsx +2 -2
  365. package/src/theme/getDerivedTheme.ts +1 -1
  366. package/src/theme/useCSSVariables.ts +5 -5
  367. package/src/theme/useColorSchemeMetaTag.ts +2 -2
  368. package/src/theme/useInlineCSSVariables.ts +6 -7
  369. package/src/theme/utils.ts +8 -8
  370. package/src/tooltip/useTooltip.ts +7 -7
  371. package/src/tooltip/useTooltipPosition.ts +1 -1
  372. package/src/transition/useCarousel.ts +2 -2
  373. package/src/transition/useCollapseTransition.ts +1 -1
  374. package/src/transition/useSkeletonPlaceholder.ts +4 -4
  375. package/src/transition/useTransition.ts +2 -2
  376. package/src/transition/utils.ts +5 -5
  377. package/src/tree/TreeItem.tsx +1 -1
  378. package/src/tree/useTreeItems.ts +5 -5
  379. package/src/tree/useTreeMovement.ts +1 -1
  380. package/src/tree/utils.ts +9 -9
  381. package/src/typography/HighlightText.tsx +4 -3
  382. package/src/typography/SrOnly.tsx +9 -2
  383. package/src/useDebouncedFunction.ts +5 -5
  384. package/src/useDropzone.ts +10 -10
  385. package/src/useEnsuredState.ts +5 -5
  386. package/src/useIntersectionObserver.ts +3 -3
  387. package/src/useIsomorphicLayoutEffect.ts +3 -3
  388. package/src/useOrientation.ts +1 -1
  389. package/src/useReadonlySet.ts +3 -1
  390. package/src/useResizeListener.ts +2 -2
  391. package/src/useResizeObserver.ts +3 -4
  392. package/src/useThrottledFunction.ts +4 -4
  393. package/src/useWindowSize.ts +1 -1
  394. package/src/utils/alphaNumericSort.ts +1 -1
  395. package/src/utils/bem.ts +15 -16
  396. package/src/utils/getNumberOfDigits.ts +1 -0
  397. package/src/utils/getRangeDefaultValue.ts +1 -1
  398. package/src/utils/nearest.ts +5 -2
  399. package/src/utils/parseCssLengthUnit.ts +5 -4
  400. package/src/utils/trigonometry.ts +1 -1
  401. package/dist/form/defaultGetSelectedOptionChildren.d.ts +0 -1
  402. package/dist/form/getSelectedOptionChildren.d.ts +0 -1
@@ -314,7 +314,7 @@ export function useCollapseTransition<E extends HTMLElement>(
314
314
  const [nodeRef, refCallback] = useEnsuredRef(propNodeRef);
315
315
  const [style, setStyle] = useState<CSSProperties | undefined>(() => {
316
316
  if (transitionIn) {
317
- return undefined;
317
+ return;
318
318
  }
319
319
 
320
320
  return {
@@ -238,10 +238,10 @@ export function useSkeletonPlaceholder(
238
238
  } = options;
239
239
  const ssr = useSsr();
240
240
 
241
- const isDefinedWidth = typeof propWidth !== "undefined";
242
- const isDefinedDelay = typeof propDelay !== "undefined";
241
+ const isDefinedWidth = propWidth !== undefined;
242
+ const isDefinedDelay = propDelay !== undefined;
243
243
  const [randomStyles, setRandomStyles] = useState<CSSProperties>(() => {
244
- if (typeof window === "undefined" || ssr || disabled) {
244
+ if (globalThis.window === undefined || ssr || disabled) {
245
245
  return {};
246
246
  }
247
247
 
@@ -289,7 +289,7 @@ export function useSkeletonPlaceholder(
289
289
  }
290
290
 
291
291
  let style: CSSProperties | undefined = propStyle;
292
- if (!!width || !!animationDelay || typeof height !== "undefined") {
292
+ if (!!width || !!animationDelay || height !== undefined) {
293
293
  style = {
294
294
  ...style,
295
295
  height: height ?? style?.height,
@@ -271,12 +271,12 @@ export function useTransition<E extends HTMLElement>(
271
271
  return;
272
272
  }
273
273
 
274
- const timer = window.setTimeout(() => {
274
+ const timer = globalThis.setTimeout(() => {
275
275
  dispatch(dispatchStage);
276
276
  }, duration);
277
277
 
278
278
  return () => {
279
- window.clearTimeout(timer);
279
+ globalThis.clearTimeout(timer);
280
280
  };
281
281
  }, [appearing, ref, ssr, stage, temporary, transitionIn]);
282
282
 
@@ -71,24 +71,24 @@ export function getElementSizing(element: HTMLElement | null): CollapseSizing {
71
71
  cloned.style.visibility = "hidden";
72
72
 
73
73
  const container = element.parentElement || document.body;
74
- container.appendChild(cloned);
74
+ container.append(cloned);
75
75
  maxHeight = cloned.scrollHeight;
76
- const style = window.getComputedStyle(cloned);
76
+ const style = globalThis.getComputedStyle(cloned);
77
77
  const isContentBox = style.boxSizing === "content-box";
78
78
  if (style.paddingTop) {
79
- paddingTop = parseFloat(style.paddingTop);
79
+ paddingTop = Number.parseFloat(style.paddingTop);
80
80
  if (isContentBox) {
81
81
  maxHeight += paddingTop;
82
82
  }
83
83
  }
84
84
 
85
85
  if (style.paddingBottom) {
86
- paddingBottom = parseFloat(style.paddingBottom);
86
+ paddingBottom = Number.parseFloat(style.paddingBottom);
87
87
  if (isContentBox) {
88
88
  maxHeight += paddingBottom;
89
89
  }
90
90
  }
91
- container.removeChild(cloned);
91
+ cloned.remove();
92
92
  }
93
93
 
94
94
  return { maxHeight, paddingTop, paddingBottom };
@@ -225,7 +225,7 @@ export function TreeItem(props: TreeItemProps): ReactElement {
225
225
  const leftAddonType =
226
226
  (propLeftAddonType ?? (expanderLeft && leftAddon)) ? "media" : undefined;
227
227
  const isMediaLeftAddon =
228
- typeof propLeftAddonType === "undefined" && leftAddonType === "media";
228
+ propLeftAddonType === undefined && leftAddonType === "media";
229
229
  const disableLeftAddonCenteredMedia =
230
230
  propDisableLeftAddonCenteredMedia ?? isMediaLeftAddon;
231
231
 
@@ -68,19 +68,19 @@ export function buildTree<T extends TreeItemNode>(
68
68
  }
69
69
  }
70
70
 
71
- if (!childItems.length) {
71
+ if (childItems.length === 0) {
72
72
  return undefined;
73
73
  }
74
74
 
75
75
  treeItemChildIds.set(parentId, childIds);
76
- childItems.forEach((childItem) => {
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.slice());
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
- return items.reduce<T[]>((list, item) => {
58
- if (parentId !== item.parentId) {
59
- return list;
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
- return [
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 regex = new RegExp(
158
- "(" + cleanQuery.replace(SPECIAL_CHARACTERS_REGEXP, "\\$&") + ")",
159
- "gi"
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: focusable ? "focusable" : phoneOnly ? "phone" : true,
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<number | undefined>();
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
- window.clearTimeout(timeout.current);
98
+ globalThis.clearTimeout(timeout.current);
99
99
  };
100
100
  }, []);
101
101
 
102
102
  return useMemo(() => {
103
103
  const debounced: DebouncedFunction<F> = (...args) => {
104
- window.clearTimeout(timeout.current);
105
- timeout.current = window.setTimeout(() => {
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
- window.clearTimeout(timeout.current);
110
+ globalThis.clearTimeout(timeout.current);
111
111
  };
112
112
 
113
113
  return debounced;
@@ -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<number | undefined>();
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
- window.clearTimeout(draggingTimeout.current);
173
- draggingTimeout.current = window.setTimeout(() => {
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
- window.addEventListener("dragenter", startDragging);
184
- window.addEventListener("dragover", delayedStopDragging);
183
+ globalThis.addEventListener("dragenter", startDragging);
184
+ globalThis.addEventListener("dragover", delayedStopDragging);
185
185
  return () => {
186
- window.clearTimeout(draggingTimeout.current);
187
- window.removeEventListener("dragenter", startDragging);
188
- window.removeEventListener("dragover", delayedStopDragging);
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
- window.clearTimeout(draggingTimeout.current);
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
- window.clearTimeout(draggingTimeout.current);
216
+ globalThis.clearTimeout(draggingTimeout.current);
217
217
  onDragOver(event);
218
218
  setOver(true);
219
219
  },
@@ -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 (typeof value !== "undefined" && typeof setValue !== "undefined") {
35
+ if (value !== undefined && setValue !== undefined) {
36
36
  return [value, setValue];
37
37
  }
38
38
 
39
- if (typeof value !== "undefined" || typeof setValue !== "undefined") {
40
- const pascalName = name.charAt(0).toUpperCase() + name.substring(1);
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 (typeof defaultValue === "undefined") {
47
- const pascalName = name.charAt(0).toUpperCase() + name.substring(1);
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 || !targets.length) {
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
- targets.forEach((target) => {
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
- typeof window !== "undefined" &&
13
- typeof window.document !== "undefined" &&
14
- typeof window.document.createElement !== "undefined"
12
+ globalThis.window !== undefined &&
13
+ globalThis.document !== undefined &&
14
+ globalThis.document.createElement !== undefined
15
15
  ? useLayoutEffect
16
16
  : useEffect;
@@ -12,7 +12,7 @@ import { useEffect, useState } from "react";
12
12
  * @internal
13
13
  */
14
14
  export const getOrientationType = (): OrientationType => {
15
- if (typeof window === "undefined") {
15
+ if (globalThis.window === undefined) {
16
16
  return "landscape-primary";
17
17
  }
18
18
 
@@ -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
- defaultValue instanceof Function ? defaultValue() : (defaultValue ?? []);
90
+ typeof defaultValue === "function"
91
+ ? defaultValue()
92
+ : (defaultValue ?? []);
91
93
 
92
94
  return new Set(initial);
93
95
  });
@@ -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
- window.dispatchEvent(new Event("resize"));
106
+ globalThis.dispatchEvent(new Event("resize"));
107
107
  return () => {
108
108
  eventHandler.remove(onUpdate);
109
109
  };
@@ -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
- window.cancelAnimationFrame(this.frame);
78
- this.frame = window.requestAnimationFrame(() => {
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<number | undefined>();
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
- window.clearTimeout(timeout.current);
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 = window.setTimeout(() => {
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
- window.clearTimeout(timeout.current);
128
+ globalThis.clearTimeout(timeout.current);
129
129
  };
130
130
 
131
131
  return throttled;
@@ -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 (typeof window === "undefined" || ssr) {
90
+ if (globalThis.window === undefined || ssr) {
91
91
  return {
92
92
  height: ssrHeight,
93
93
  width: ssrWidth,
@@ -129,7 +129,7 @@ export function alphaNumericSort<T>(
129
129
  descending = false,
130
130
  } = options;
131
131
 
132
- const sorted = list.slice();
132
+ const sorted = [...list];
133
133
  sorted.sort((a, b) => {
134
134
  const aValue = extractor(a);
135
135
  const bValue = extractor(b);
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
- return Object.keys(modifier).reduce((s, mod) => {
9
+ let className = base;
10
+ for (const mod of Object.keys(modifier)) {
10
11
  if (hasOwn.call(modifier, mod) && modifier[mod]) {
11
- return `${s} ${base}--${mod}`;
12
+ className += ` ${base}--${mod}`;
12
13
  }
14
+ }
13
15
 
14
- return s;
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
- if (!base) {
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 (process.env.NODE_ENV !== "production") {
121
- if (typeof elementOrModifier !== "string" && modifier) {
122
- throw new TypeError(
123
- "bem does not support having two modifier arguments."
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) {
@@ -14,5 +14,6 @@ export function getNumberOfDigits(
14
14
  return;
15
15
  }
16
16
 
17
+ // eslint-disable-next-line unicorn/prefer-math-trunc
17
18
  return (Math.log10((value ^ (value >> 31)) - (value >> 31)) | 0) + 1;
18
19
  }
@@ -20,7 +20,7 @@ export function getRangeDefaultValue(
20
20
  options: RangeDefaultValueOptions
21
21
  ): UseStateInitializer<number> {
22
22
  const { defaultValue } = options;
23
- if (typeof defaultValue !== "undefined") {
23
+ if (defaultValue !== undefined) {
24
24
  return defaultValue;
25
25
  }
26
26
 
@@ -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(min, parseFloat((zeroToOne * range + min).toFixed(decimals)))
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 (typeof window === "undefined") {
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
- window.getComputedStyle(styleContainer).fontSize || `${fallbackFontSize}px`
62
+ const fontSize = Number.parseFloat(
63
+ globalThis.getComputedStyle(styleContainer).fontSize ||
64
+ `${fallbackFontSize}px`
64
65
  );
65
66
 
66
67
  return parsed * fontSize;
@@ -42,5 +42,5 @@ export function isPointInCircle(options: IsPointInCircleOptions): boolean {
42
42
  export function calcHypotenuse(point: Point): number {
43
43
  const { x, y } = point;
44
44
 
45
- return Math.sqrt(x * x + y * y);
45
+ return Math.hypot(x, y);
46
46
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};