@react-md/core 1.0.0-next.11 → 1.0.0-next.13

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 (1558) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/CHANGELOG.md +36 -0
  3. package/coverage/clover.xml +255 -3
  4. package/coverage/coverage-final.json +5 -1
  5. package/coverage/lcov-report/DefaultNavigationRenderer.tsx.html +298 -0
  6. package/coverage/lcov-report/Navigation.tsx.html +358 -0
  7. package/coverage/lcov-report/app-bar/AppBar.tsx.html +125 -134
  8. package/coverage/lcov-report/app-bar/AppBarTitle.tsx.html +54 -75
  9. package/coverage/lcov-report/app-bar/index.html +24 -9
  10. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +34 -181
  11. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +1 -1
  12. package/coverage/lcov-report/autocomplete/index.html +11 -11
  13. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +102 -336
  14. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +1 -1
  15. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +1 -1
  16. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +31 -7
  17. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +67 -4
  18. package/coverage/lcov-report/autocomplete/utils.ts.html +1 -1
  19. package/coverage/lcov-report/box/Box.tsx.html +115 -103
  20. package/coverage/lcov-report/box/index.html +22 -7
  21. package/coverage/lcov-report/box/styles.ts.html +622 -0
  22. package/coverage/lcov-report/button/Button.tsx.html +93 -105
  23. package/coverage/lcov-report/button/TooltippedButton.tsx.html +55 -67
  24. package/coverage/lcov-report/button/index.html +10 -10
  25. package/coverage/lcov-report/form/Form.tsx.html +18 -18
  26. package/coverage/lcov-report/form/Radio.tsx.html +8 -14
  27. package/coverage/lcov-report/form/index.html +35 -95
  28. package/coverage/lcov-report/form/useRadioGroup.ts.html +68 -80
  29. package/coverage/lcov-report/getHrefFromParents.ts.html +133 -0
  30. package/coverage/lcov-report/icon/FontIcon.tsx.html +65 -65
  31. package/coverage/lcov-report/icon/index.html +19 -19
  32. package/coverage/lcov-report/index.html +41 -11
  33. package/coverage/lcov-report/layout/LayoutNav.tsx.html +74 -86
  34. package/coverage/lcov-report/layout/Main.tsx.html +47 -38
  35. package/coverage/lcov-report/layout/index.html +54 -9
  36. package/coverage/lcov-report/layout/useExpandableLayout.ts.html +275 -89
  37. package/coverage/lcov-report/layout/useHorizontalLayoutTransition.ts.html +18 -18
  38. package/coverage/lcov-report/media-queries/AppSizeProvider.tsx.html +79 -64
  39. package/coverage/lcov-report/media-queries/index.html +18 -18
  40. package/coverage/lcov-report/navigation/CollapsibleNavGroup.tsx.html +334 -0
  41. package/coverage/lcov-report/navigation/DefaultNavigationRenderer.tsx.html +298 -0
  42. package/coverage/lcov-report/navigation/NavGroup.tsx.html +193 -0
  43. package/coverage/lcov-report/navigation/NavItem.tsx.html +160 -0
  44. package/coverage/lcov-report/navigation/NavItemButton.tsx.html +397 -0
  45. package/coverage/lcov-report/navigation/NavItemLink.tsx.html +574 -0
  46. package/coverage/lcov-report/navigation/NavSubheader.tsx.html +184 -0
  47. package/coverage/lcov-report/navigation/Navigation.tsx.html +358 -0
  48. package/coverage/lcov-report/navigation/getHrefFromParents.ts.html +130 -0
  49. package/coverage/lcov-report/navigation/index.html +146 -0
  50. package/coverage/lcov-report/navigation/navGroupStyles.ts.html +148 -0
  51. package/coverage/lcov-report/navigation/navItemStyles.ts.html +298 -0
  52. package/coverage/lcov-report/sheet/Sheet.tsx.html +50 -56
  53. package/coverage/lcov-report/sheet/index.html +8 -8
  54. package/coverage/lcov-report/snackbar/DefaultToastRenderer.tsx.html +307 -304
  55. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +377 -356
  56. package/coverage/lcov-report/snackbar/index.html +16 -106
  57. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +56 -92
  58. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +1 -1
  59. package/coverage/lcov-report/src/autocomplete/index.html +11 -11
  60. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +513 -111
  61. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +7 -7
  62. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +1 -1
  63. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +32 -8
  64. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +146 -14
  65. package/coverage/lcov-report/src/autocomplete/utils.ts.html +1 -1
  66. package/coverage/lcov-report/src/divider/Divider.tsx.html +6 -9
  67. package/coverage/lcov-report/src/divider/index.html +8 -23
  68. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +29 -29
  69. package/coverage/lcov-report/src/icon/index.html +1 -1
  70. package/coverage/lcov-report/src/index.html +21 -21
  71. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +33 -42
  72. package/coverage/lcov-report/src/layout/Main.tsx.html +33 -36
  73. package/coverage/lcov-report/src/layout/index.html +15 -195
  74. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +37 -46
  75. package/coverage/lcov-report/src/list/List.tsx.html +39 -42
  76. package/coverage/lcov-report/src/list/index.html +10 -130
  77. package/coverage/lcov-report/src/navigation/CollapsibleNavGroup.tsx.html +367 -0
  78. package/coverage/lcov-report/src/navigation/DefaultNavigationRenderer.tsx.html +325 -0
  79. package/coverage/lcov-report/src/navigation/NavGroup.tsx.html +202 -0
  80. package/coverage/lcov-report/src/navigation/NavItem.tsx.html +172 -0
  81. package/coverage/lcov-report/src/navigation/NavSubheader.tsx.html +193 -0
  82. package/coverage/lcov-report/src/navigation/Navigation.tsx.html +358 -0
  83. package/coverage/lcov-report/src/navigation/index.html +191 -0
  84. package/coverage/lcov-report/src/tree/Tree.tsx.html +12 -24
  85. package/coverage/lcov-report/src/tree/index.html +18 -18
  86. package/coverage/lcov-report/src/useElementSize.ts.html +115 -40
  87. package/coverage/lcov-report/src/useMutationObserver.ts.html +310 -0
  88. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +151 -52
  89. package/coverage/lcov-report/src/utils/index.html +10 -10
  90. package/coverage/lcov-report/test-utils/index.html +21 -21
  91. package/coverage/lcov-report/test-utils/matchMedia.ts.html +98 -95
  92. package/coverage/lcov-report/transition/config.ts.html +7 -7
  93. package/coverage/lcov-report/transition/index.html +1 -1
  94. package/coverage/lcov-report/useExpandableLayout.ts.html +171 -105
  95. package/coverage/lcov-report/useMutationObserver.ts.html +310 -0
  96. package/coverage/lcov-report/utils/index.html +16 -16
  97. package/coverage/lcov-report/utils/isElementVisible.ts.html +21 -24
  98. package/coverage/lcov.info +302 -0
  99. package/dist/CoreProviders.d.ts +3 -3
  100. package/dist/CoreProviders.js +1 -1
  101. package/dist/CoreProviders.js.map +1 -1
  102. package/dist/NoSsr.d.ts +3 -4
  103. package/dist/NoSsr.js +2 -3
  104. package/dist/NoSsr.js.map +1 -1
  105. package/dist/RootHtml.d.ts +3 -4
  106. package/dist/RootHtml.js +2 -3
  107. package/dist/RootHtml.js.map +1 -1
  108. package/dist/SsrProvider.d.ts +3 -3
  109. package/dist/SsrProvider.js +2 -2
  110. package/dist/SsrProvider.js.map +1 -1
  111. package/dist/_core.scss +5 -0
  112. package/dist/app-bar/AppBar.d.ts +11 -14
  113. package/dist/app-bar/AppBar.js +3 -5
  114. package/dist/app-bar/AppBar.js.map +1 -1
  115. package/dist/app-bar/AppBarTitle.d.ts +9 -10
  116. package/dist/app-bar/AppBarTitle.js +4 -6
  117. package/dist/app-bar/AppBarTitle.js.map +1 -1
  118. package/dist/avatar/Avatar.d.ts +5 -6
  119. package/dist/avatar/Avatar.js +2 -3
  120. package/dist/avatar/Avatar.js.map +1 -1
  121. package/dist/avatar/styles.d.ts +4 -4
  122. package/dist/avatar/styles.js +2 -2
  123. package/dist/avatar/styles.js.map +1 -1
  124. package/dist/badge/Badge.d.ts +4 -6
  125. package/dist/badge/Badge.js +3 -5
  126. package/dist/badge/Badge.js.map +1 -1
  127. package/dist/box/Box.d.ts +6 -9
  128. package/dist/box/Box.js +14 -9
  129. package/dist/box/Box.js.map +1 -1
  130. package/dist/box/_box.scss +1 -1
  131. package/dist/box/styles.d.ts +9 -9
  132. package/dist/box/styles.js +1 -1
  133. package/dist/box/styles.js.map +1 -1
  134. package/dist/button/AsyncButton.d.ts +5 -7
  135. package/dist/button/AsyncButton.js +3 -5
  136. package/dist/button/AsyncButton.js.map +1 -1
  137. package/dist/button/Button.d.ts +4 -8
  138. package/dist/button/Button.js +4 -8
  139. package/dist/button/Button.js.map +1 -1
  140. package/dist/button/ButtonUnstyled.d.ts +2 -2
  141. package/dist/button/ButtonUnstyled.js +1 -1
  142. package/dist/button/ButtonUnstyled.js.map +1 -1
  143. package/dist/button/FloatingActionButton.d.ts +5 -5
  144. package/dist/button/FloatingActionButton.js +2 -2
  145. package/dist/button/FloatingActionButton.js.map +1 -1
  146. package/dist/button/TooltippedButton.d.ts +2 -2
  147. package/dist/button/TooltippedButton.js +2 -5
  148. package/dist/button/TooltippedButton.js.map +1 -1
  149. package/dist/button/buttonStyles.d.ts +3 -3
  150. package/dist/button/buttonStyles.js +1 -1
  151. package/dist/button/buttonStyles.js.map +1 -1
  152. package/dist/button/buttonUnstyledStyles.d.ts +2 -2
  153. package/dist/button/buttonUnstyledStyles.js +1 -1
  154. package/dist/button/buttonUnstyledStyles.js.map +1 -1
  155. package/dist/card/Card.d.ts +3 -4
  156. package/dist/card/Card.js +2 -3
  157. package/dist/card/Card.js.map +1 -1
  158. package/dist/card/CardContent.d.ts +2 -4
  159. package/dist/card/CardContent.js +1 -2
  160. package/dist/card/CardContent.js.map +1 -1
  161. package/dist/card/CardFooter.d.ts +2 -2
  162. package/dist/card/CardFooter.js +1 -1
  163. package/dist/card/CardFooter.js.map +1 -1
  164. package/dist/card/CardHeader.d.ts +10 -12
  165. package/dist/card/CardHeader.js +6 -7
  166. package/dist/card/CardHeader.js.map +1 -1
  167. package/dist/card/CardSubtitle.d.ts +2 -2
  168. package/dist/card/CardSubtitle.js +1 -1
  169. package/dist/card/CardSubtitle.js.map +1 -1
  170. package/dist/card/CardTitle.d.ts +2 -2
  171. package/dist/card/CardTitle.js +1 -1
  172. package/dist/card/CardTitle.js.map +1 -1
  173. package/dist/card/ClickableCard.d.ts +3 -4
  174. package/dist/card/ClickableCard.js +2 -3
  175. package/dist/card/ClickableCard.js.map +1 -1
  176. package/dist/card/styles.d.ts +15 -15
  177. package/dist/card/styles.js +7 -7
  178. package/dist/card/styles.js.map +1 -1
  179. package/dist/chip/Chip.d.ts +10 -14
  180. package/dist/chip/Chip.js +4 -7
  181. package/dist/chip/Chip.js.map +1 -1
  182. package/dist/chip/styles.d.ts +4 -4
  183. package/dist/chip/styles.js +2 -2
  184. package/dist/chip/styles.js.map +1 -1
  185. package/dist/cssUtils.d.ts +10 -10
  186. package/dist/cssUtils.js +1 -1
  187. package/dist/cssUtils.js.map +1 -1
  188. package/dist/delegateEvent.js.map +1 -1
  189. package/dist/dialog/Dialog.d.ts +5 -6
  190. package/dist/dialog/Dialog.js +4 -5
  191. package/dist/dialog/Dialog.js.map +1 -1
  192. package/dist/dialog/DialogContainer.d.ts +2 -2
  193. package/dist/dialog/DialogContainer.js +1 -1
  194. package/dist/dialog/DialogContainer.js.map +1 -1
  195. package/dist/dialog/DialogContent.js.map +1 -1
  196. package/dist/dialog/DialogFooter.js.map +1 -1
  197. package/dist/dialog/DialogHeader.js.map +1 -1
  198. package/dist/dialog/DialogTitle.d.ts +3 -2
  199. package/dist/dialog/DialogTitle.js.map +1 -1
  200. package/dist/dialog/FixedDialog.d.ts +1 -2
  201. package/dist/dialog/FixedDialog.js +1 -2
  202. package/dist/dialog/FixedDialog.js.map +1 -1
  203. package/dist/dialog/NestedDialogProvider.js.map +1 -1
  204. package/dist/dialog/styles.d.ts +9 -9
  205. package/dist/dialog/styles.js +4 -4
  206. package/dist/dialog/styles.js.map +1 -1
  207. package/dist/divider/Divider.d.ts +2 -3
  208. package/dist/divider/Divider.js +1 -2
  209. package/dist/divider/Divider.js.map +1 -1
  210. package/dist/divider/styles.d.ts +2 -2
  211. package/dist/divider/styles.js +1 -1
  212. package/dist/divider/styles.js.map +1 -1
  213. package/dist/draggable/useDraggable.d.ts +17 -18
  214. package/dist/draggable/useDraggable.js +2 -2
  215. package/dist/draggable/useDraggable.js.map +1 -1
  216. package/dist/draggable/utils.d.ts +2 -2
  217. package/dist/draggable/utils.js +1 -1
  218. package/dist/draggable/utils.js.map +1 -1
  219. package/dist/expansion-panel/ExpansionList.d.ts +2 -2
  220. package/dist/expansion-panel/ExpansionList.js +1 -1
  221. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  222. package/dist/expansion-panel/ExpansionPanel.d.ts +8 -9
  223. package/dist/expansion-panel/ExpansionPanel.js +2 -3
  224. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  225. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +5 -5
  226. package/dist/expansion-panel/ExpansionPanelHeader.js +3 -4
  227. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  228. package/dist/expansion-panel/useExpansionList.d.ts +5 -6
  229. package/dist/expansion-panel/useExpansionList.js +4 -5
  230. package/dist/expansion-panel/useExpansionList.js.map +1 -1
  231. package/dist/expansion-panel/useExpansionPanels.d.ts +9 -14
  232. package/dist/expansion-panel/useExpansionPanels.js +3 -6
  233. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  234. package/dist/focus/useFocusContainer.d.ts +9 -10
  235. package/dist/focus/useFocusContainer.js +2 -3
  236. package/dist/focus/useFocusContainer.js.map +1 -1
  237. package/dist/focus/utils.d.ts +4 -5
  238. package/dist/focus/utils.js +3 -4
  239. package/dist/focus/utils.js.map +1 -1
  240. package/dist/form/Checkbox.d.ts +1 -2
  241. package/dist/form/Checkbox.js +1 -2
  242. package/dist/form/Checkbox.js.map +1 -1
  243. package/dist/form/Fieldset.d.ts +5 -6
  244. package/dist/form/Fieldset.js +2 -3
  245. package/dist/form/Fieldset.js.map +1 -1
  246. package/dist/form/FileInput.d.ts +6 -7
  247. package/dist/form/FileInput.js +3 -4
  248. package/dist/form/FileInput.js.map +1 -1
  249. package/dist/form/Form.js.map +1 -1
  250. package/dist/form/FormMessage.js.map +1 -1
  251. package/dist/form/FormMessageContainer.d.ts +2 -2
  252. package/dist/form/FormMessageContainer.js +1 -1
  253. package/dist/form/FormMessageContainer.js.map +1 -1
  254. package/dist/form/FormMessageCounter.d.ts +4 -6
  255. package/dist/form/FormMessageCounter.js +2 -3
  256. package/dist/form/FormMessageCounter.js.map +1 -1
  257. package/dist/form/InputToggle.d.ts +11 -12
  258. package/dist/form/InputToggle.js +1 -1
  259. package/dist/form/InputToggle.js.map +1 -1
  260. package/dist/form/InputToggleIcon.d.ts +4 -6
  261. package/dist/form/InputToggleIcon.js +2 -3
  262. package/dist/form/InputToggleIcon.js.map +1 -1
  263. package/dist/form/Label.d.ts +2 -2
  264. package/dist/form/Label.js +2 -2
  265. package/dist/form/Label.js.map +1 -1
  266. package/dist/form/Legend.d.ts +2 -2
  267. package/dist/form/Legend.js +1 -1
  268. package/dist/form/Legend.js.map +1 -1
  269. package/dist/form/MenuItemCheckbox.d.ts +2 -3
  270. package/dist/form/MenuItemCheckbox.js +2 -3
  271. package/dist/form/MenuItemCheckbox.js.map +1 -1
  272. package/dist/form/MenuItemFileInput.d.ts +3 -5
  273. package/dist/form/MenuItemFileInput.js +2 -3
  274. package/dist/form/MenuItemFileInput.js.map +1 -1
  275. package/dist/form/MenuItemInputToggle.d.ts +7 -9
  276. package/dist/form/MenuItemInputToggle.js +1 -1
  277. package/dist/form/MenuItemInputToggle.js.map +1 -1
  278. package/dist/form/MenuItemRadio.d.ts +3 -5
  279. package/dist/form/MenuItemRadio.js +3 -5
  280. package/dist/form/MenuItemRadio.js.map +1 -1
  281. package/dist/form/MenuItemSwitch.d.ts +2 -3
  282. package/dist/form/MenuItemSwitch.js +2 -3
  283. package/dist/form/MenuItemSwitch.js.map +1 -1
  284. package/dist/form/MenuItemTextField.d.ts +2 -2
  285. package/dist/form/MenuItemTextField.js +1 -1
  286. package/dist/form/MenuItemTextField.js.map +1 -1
  287. package/dist/form/NativeSelect.d.ts +3 -5
  288. package/dist/form/NativeSelect.js +2 -4
  289. package/dist/form/NativeSelect.js.map +1 -1
  290. package/dist/form/OptGroup.d.ts +3 -4
  291. package/dist/form/OptGroup.js +2 -3
  292. package/dist/form/OptGroup.js.map +1 -1
  293. package/dist/form/Option.d.ts +5 -7
  294. package/dist/form/Option.js +3 -4
  295. package/dist/form/Option.js.map +1 -1
  296. package/dist/form/Password.d.ts +7 -13
  297. package/dist/form/Password.js +1 -2
  298. package/dist/form/Password.js.map +1 -1
  299. package/dist/form/Radio.d.ts +1 -2
  300. package/dist/form/Radio.js +1 -2
  301. package/dist/form/Radio.js.map +1 -1
  302. package/dist/form/ResizingTextAreaWrapper.d.ts +2 -2
  303. package/dist/form/ResizingTextAreaWrapper.js +1 -1
  304. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  305. package/dist/form/Select.d.ts +6 -9
  306. package/dist/form/Select.js +3 -5
  307. package/dist/form/Select.js.map +1 -1
  308. package/dist/form/SelectedOption.d.ts +2 -2
  309. package/dist/form/SelectedOption.js +1 -1
  310. package/dist/form/SelectedOption.js.map +1 -1
  311. package/dist/form/Slider.d.ts +16 -25
  312. package/dist/form/Slider.js.map +1 -1
  313. package/dist/form/SliderContainer.d.ts +6 -9
  314. package/dist/form/SliderContainer.js +2 -3
  315. package/dist/form/SliderContainer.js.map +1 -1
  316. package/dist/form/SliderMark.d.ts +2 -2
  317. package/dist/form/SliderMark.js +1 -1
  318. package/dist/form/SliderMark.js.map +1 -1
  319. package/dist/form/SliderMarkLabel.d.ts +5 -4
  320. package/dist/form/SliderMarkLabel.js +1 -1
  321. package/dist/form/SliderMarkLabel.js.map +1 -1
  322. package/dist/form/SliderThumb.d.ts +6 -8
  323. package/dist/form/SliderThumb.js +3 -4
  324. package/dist/form/SliderThumb.js.map +1 -1
  325. package/dist/form/SliderTrack.d.ts +4 -6
  326. package/dist/form/SliderTrack.js +2 -3
  327. package/dist/form/SliderTrack.js.map +1 -1
  328. package/dist/form/SliderValueMarks.d.ts +7 -9
  329. package/dist/form/SliderValueMarks.js +1 -1
  330. package/dist/form/SliderValueMarks.js.map +1 -1
  331. package/dist/form/SliderValueTooltip.d.ts +4 -6
  332. package/dist/form/SliderValueTooltip.js +2 -3
  333. package/dist/form/SliderValueTooltip.js.map +1 -1
  334. package/dist/form/Switch.d.ts +3 -4
  335. package/dist/form/Switch.js +2 -3
  336. package/dist/form/Switch.js.map +1 -1
  337. package/dist/form/SwitchTrack.js.map +1 -1
  338. package/dist/form/TextArea.d.ts +2 -3
  339. package/dist/form/TextArea.js +1 -2
  340. package/dist/form/TextArea.js.map +1 -1
  341. package/dist/form/TextField.d.ts +7 -10
  342. package/dist/form/TextField.js +2 -4
  343. package/dist/form/TextField.js.map +1 -1
  344. package/dist/form/TextFieldAddon.d.ts +3 -3
  345. package/dist/form/TextFieldAddon.js +1 -1
  346. package/dist/form/TextFieldAddon.js.map +1 -1
  347. package/dist/form/TextFieldContainer.js.map +1 -1
  348. package/dist/form/fileUtils.d.ts +33 -36
  349. package/dist/form/fileUtils.js +14 -14
  350. package/dist/form/fileUtils.js.map +1 -1
  351. package/dist/form/formConfig.d.ts +2 -2
  352. package/dist/form/formConfig.js +2 -2
  353. package/dist/form/formConfig.js.map +1 -1
  354. package/dist/form/formMessageStyles.d.ts +5 -5
  355. package/dist/form/formMessageStyles.js +3 -3
  356. package/dist/form/formMessageStyles.js.map +1 -1
  357. package/dist/form/inputToggleStyles.d.ts +3 -3
  358. package/dist/form/inputToggleStyles.js +1 -1
  359. package/dist/form/inputToggleStyles.js.map +1 -1
  360. package/dist/form/menuItemInputToggleStyles.d.ts +8 -8
  361. package/dist/form/menuItemInputToggleStyles.js +4 -4
  362. package/dist/form/menuItemInputToggleStyles.js.map +1 -1
  363. package/dist/form/nativeSelectStyles.d.ts +4 -4
  364. package/dist/form/nativeSelectStyles.js +2 -2
  365. package/dist/form/nativeSelectStyles.js.map +1 -1
  366. package/dist/form/optionStyles.d.ts +2 -2
  367. package/dist/form/optionStyles.js +1 -1
  368. package/dist/form/optionStyles.js.map +1 -1
  369. package/dist/form/passwordStyles.d.ts +4 -4
  370. package/dist/form/passwordStyles.js +1 -1
  371. package/dist/form/passwordStyles.js.map +1 -1
  372. package/dist/form/selectStyles.d.ts +2 -2
  373. package/dist/form/selectStyles.js +1 -1
  374. package/dist/form/selectStyles.js.map +1 -1
  375. package/dist/form/selectUtils.d.ts +3 -3
  376. package/dist/form/selectUtils.js +2 -2
  377. package/dist/form/selectUtils.js.map +1 -1
  378. package/dist/form/sliderUtils.d.ts +9 -9
  379. package/dist/form/sliderUtils.js +4 -4
  380. package/dist/form/sliderUtils.js.map +1 -1
  381. package/dist/form/switchStyles.d.ts +2 -2
  382. package/dist/form/switchStyles.js +1 -1
  383. package/dist/form/switchStyles.js.map +1 -1
  384. package/dist/form/textAreaStyles.d.ts +4 -4
  385. package/dist/form/textAreaStyles.js +2 -2
  386. package/dist/form/textAreaStyles.js.map +1 -1
  387. package/dist/form/textFieldContainerStyles.d.ts +2 -2
  388. package/dist/form/textFieldContainerStyles.js +1 -1
  389. package/dist/form/textFieldContainerStyles.js.map +1 -1
  390. package/dist/form/textFieldStyles.d.ts +2 -2
  391. package/dist/form/textFieldStyles.js +1 -1
  392. package/dist/form/textFieldStyles.js.map +1 -1
  393. package/dist/form/types.d.ts +10 -10
  394. package/dist/form/types.js.map +1 -1
  395. package/dist/form/useCheckboxGroup.d.ts +15 -20
  396. package/dist/form/useCheckboxGroup.js.map +1 -1
  397. package/dist/form/useCombobox.d.ts +16 -16
  398. package/dist/form/useCombobox.js +2 -2
  399. package/dist/form/useCombobox.js.map +1 -1
  400. package/dist/form/useEditableCombobox.d.ts +3 -3
  401. package/dist/form/useEditableCombobox.js +1 -1
  402. package/dist/form/useEditableCombobox.js.map +1 -1
  403. package/dist/form/useFileUpload.d.ts +7 -8
  404. package/dist/form/useFileUpload.js +1 -1
  405. package/dist/form/useFileUpload.js.map +1 -1
  406. package/dist/form/useFormReset.d.ts +2 -2
  407. package/dist/form/useFormReset.js +1 -1
  408. package/dist/form/useFormReset.js.map +1 -1
  409. package/dist/form/useListboxProvider.d.ts +3 -3
  410. package/dist/form/useListboxProvider.js +2 -2
  411. package/dist/form/useListboxProvider.js.map +1 -1
  412. package/dist/form/useNumberField.d.ts +17 -25
  413. package/dist/form/useNumberField.js.map +1 -1
  414. package/dist/form/useRadioGroup.d.ts +12 -15
  415. package/dist/form/useRadioGroup.js +2 -3
  416. package/dist/form/useRadioGroup.js.map +1 -1
  417. package/dist/form/useRangeSlider.d.ts +8 -11
  418. package/dist/form/useRangeSlider.js +3 -5
  419. package/dist/form/useRangeSlider.js.map +1 -1
  420. package/dist/form/useResizingTextArea.js.map +1 -1
  421. package/dist/form/useSelectCombobox.d.ts +3 -3
  422. package/dist/form/useSelectCombobox.js +1 -1
  423. package/dist/form/useSelectCombobox.js.map +1 -1
  424. package/dist/form/useSlider.d.ts +7 -9
  425. package/dist/form/useSlider.js +3 -5
  426. package/dist/form/useSlider.js.map +1 -1
  427. package/dist/form/useTextField.d.ts +22 -31
  428. package/dist/form/useTextField.js.map +1 -1
  429. package/dist/form/utils.d.ts +7 -8
  430. package/dist/form/utils.js +5 -6
  431. package/dist/form/utils.js.map +1 -1
  432. package/dist/form/validation.d.ts +16 -16
  433. package/dist/form/validation.js +7 -7
  434. package/dist/form/validation.js.map +1 -1
  435. package/dist/hoverMode/useHoverMode.d.ts +9 -10
  436. package/dist/hoverMode/useHoverMode.js.map +1 -1
  437. package/dist/hoverMode/useHoverModeProvider.d.ts +11 -15
  438. package/dist/hoverMode/useHoverModeProvider.js +3 -4
  439. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  440. package/dist/icon/FontIcon.d.ts +1 -1
  441. package/dist/icon/FontIcon.js +1 -1
  442. package/dist/icon/FontIcon.js.map +1 -1
  443. package/dist/icon/IconRotator.d.ts +1 -1
  444. package/dist/icon/IconRotator.js.map +1 -1
  445. package/dist/icon/MaterialIcon.d.ts +2 -2
  446. package/dist/icon/MaterialIcon.js +1 -1
  447. package/dist/icon/MaterialIcon.js.map +1 -1
  448. package/dist/icon/MaterialSymbol.d.ts +3 -4
  449. package/dist/icon/MaterialSymbol.js +2 -3
  450. package/dist/icon/MaterialSymbol.js.map +1 -1
  451. package/dist/icon/SVGIcon.d.ts +0 -1
  452. package/dist/icon/SVGIcon.js.map +1 -1
  453. package/dist/icon/TextIconSpacing.d.ts +3 -5
  454. package/dist/icon/TextIconSpacing.js +2 -4
  455. package/dist/icon/TextIconSpacing.js.map +1 -1
  456. package/dist/icon/iconConfig.d.ts +14 -16
  457. package/dist/icon/iconConfig.js +5 -7
  458. package/dist/icon/iconConfig.js.map +1 -1
  459. package/dist/icon/material.d.ts +4 -4
  460. package/dist/icon/material.js +1 -1
  461. package/dist/icon/material.js.map +1 -1
  462. package/dist/icon/materialConfig.d.ts +12 -12
  463. package/dist/icon/materialConfig.js +2 -2
  464. package/dist/icon/materialConfig.js.map +1 -1
  465. package/dist/icon/styles.d.ts +8 -8
  466. package/dist/icon/styles.js +2 -2
  467. package/dist/icon/styles.js.map +1 -1
  468. package/dist/interaction/Ripple.js.map +1 -1
  469. package/dist/interaction/RippleContainer.js.map +1 -1
  470. package/dist/interaction/UserInteractionModeProvider.d.ts +1 -2
  471. package/dist/interaction/UserInteractionModeProvider.js +1 -2
  472. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  473. package/dist/interaction/config.d.ts +2 -2
  474. package/dist/interaction/config.js +1 -1
  475. package/dist/interaction/config.js.map +1 -1
  476. package/dist/interaction/types.d.ts +8 -8
  477. package/dist/interaction/types.js +1 -1
  478. package/dist/interaction/types.js.map +1 -1
  479. package/dist/interaction/useElementInteraction.d.ts +6 -7
  480. package/dist/interaction/useElementInteraction.js +3 -4
  481. package/dist/interaction/useElementInteraction.js.map +1 -1
  482. package/dist/interaction/useHigherContrastChildren.d.ts +2 -3
  483. package/dist/interaction/useHigherContrastChildren.js +2 -3
  484. package/dist/interaction/useHigherContrastChildren.js.map +1 -1
  485. package/dist/interaction/utils.js.map +1 -1
  486. package/dist/layout/LayoutAppBar.d.ts +4 -7
  487. package/dist/layout/LayoutAppBar.js +3 -6
  488. package/dist/layout/LayoutAppBar.js.map +1 -1
  489. package/dist/layout/LayoutNav.d.ts +4 -6
  490. package/dist/layout/LayoutNav.js +3 -5
  491. package/dist/layout/LayoutNav.js.map +1 -1
  492. package/dist/layout/LayoutWindowSplitter.d.ts +3 -4
  493. package/dist/layout/LayoutWindowSplitter.js +2 -3
  494. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  495. package/dist/layout/Main.d.ts +4 -5
  496. package/dist/layout/Main.js +2 -3
  497. package/dist/layout/Main.js.map +1 -1
  498. package/dist/layout/_layout.scss +12 -1
  499. package/dist/layout/layoutNavStyles.d.ts +2 -2
  500. package/dist/layout/layoutNavStyles.js +1 -1
  501. package/dist/layout/layoutNavStyles.js.map +1 -1
  502. package/dist/layout/layoutWindowSplitterStyles.d.ts +2 -2
  503. package/dist/layout/layoutWindowSplitterStyles.js +1 -1
  504. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
  505. package/dist/layout/mainStyles.d.ts +2 -2
  506. package/dist/layout/mainStyles.js +1 -1
  507. package/dist/layout/mainStyles.js.map +1 -1
  508. package/dist/layout/useExpandableLayout.d.ts +66 -14
  509. package/dist/layout/useExpandableLayout.js +50 -5
  510. package/dist/layout/useExpandableLayout.js.map +1 -1
  511. package/dist/layout/useHorizontalLayoutTransition.d.ts +4 -4
  512. package/dist/layout/useHorizontalLayoutTransition.js +2 -2
  513. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  514. package/dist/layout/useLayoutAppBarHeight.d.ts +7 -9
  515. package/dist/layout/useLayoutAppBarHeight.js +7 -8
  516. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  517. package/dist/layout/useLayoutTree.d.ts +6 -6
  518. package/dist/layout/useLayoutTree.js +1 -1
  519. package/dist/layout/useLayoutTree.js.map +1 -1
  520. package/dist/layout/useLayoutWindowSplitter.d.ts +5 -6
  521. package/dist/layout/useLayoutWindowSplitter.js +2 -3
  522. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  523. package/dist/layout/useMainTabIndex.d.ts +1 -1
  524. package/dist/layout/useMainTabIndex.js +1 -1
  525. package/dist/layout/useMainTabIndex.js.map +1 -1
  526. package/dist/layout/useResizableLayout.d.ts +54 -8
  527. package/dist/layout/useResizableLayout.js +51 -5
  528. package/dist/layout/useResizableLayout.js.map +1 -1
  529. package/dist/layout/useTemporaryLayout.d.ts +12 -12
  530. package/dist/layout/useTemporaryLayout.js +1 -1
  531. package/dist/layout/useTemporaryLayout.js.map +1 -1
  532. package/dist/link/Link.d.ts +10 -13
  533. package/dist/link/Link.js +5 -7
  534. package/dist/link/Link.js.map +1 -1
  535. package/dist/link/SkipToMainContent.d.ts +2 -4
  536. package/dist/link/SkipToMainContent.js +1 -2
  537. package/dist/link/SkipToMainContent.js.map +1 -1
  538. package/dist/link/styles.d.ts +4 -4
  539. package/dist/link/styles.js +2 -2
  540. package/dist/link/styles.js.map +1 -1
  541. package/dist/list/List.d.ts +3 -4
  542. package/dist/list/List.js +2 -3
  543. package/dist/list/List.js.map +1 -1
  544. package/dist/list/ListItem.d.ts +4 -6
  545. package/dist/list/ListItem.js +2 -4
  546. package/dist/list/ListItem.js.map +1 -1
  547. package/dist/list/ListItemAddon.js.map +1 -1
  548. package/dist/list/ListItemChildren.d.ts +1 -2
  549. package/dist/list/ListItemChildren.js +1 -2
  550. package/dist/list/ListItemChildren.js.map +1 -1
  551. package/dist/list/ListItemLink.js.map +1 -1
  552. package/dist/list/ListItemText.js.map +1 -1
  553. package/dist/list/ListSubheader.d.ts +3 -3
  554. package/dist/list/ListSubheader.js +1 -1
  555. package/dist/list/ListSubheader.js.map +1 -1
  556. package/dist/list/getListItemHeight.d.ts +1 -1
  557. package/dist/list/getListItemHeight.js.map +1 -1
  558. package/dist/list/listItemStyles.d.ts +9 -9
  559. package/dist/list/listItemStyles.js +3 -3
  560. package/dist/list/listItemStyles.js.map +1 -1
  561. package/dist/list/types.d.ts +11 -11
  562. package/dist/list/types.js.map +1 -1
  563. package/dist/media-queries/AppSizeProvider.d.ts +1 -2
  564. package/dist/media-queries/AppSizeProvider.js +1 -2
  565. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  566. package/dist/media-queries/appSize.js.map +1 -1
  567. package/dist/media-queries/useMediaQuery.d.ts +2 -3
  568. package/dist/media-queries/useMediaQuery.js +2 -3
  569. package/dist/media-queries/useMediaQuery.js.map +1 -1
  570. package/dist/menu/DropdownMenu.d.ts +7 -11
  571. package/dist/menu/DropdownMenu.js +4 -7
  572. package/dist/menu/DropdownMenu.js.map +1 -1
  573. package/dist/menu/Menu.d.ts +10 -13
  574. package/dist/menu/Menu.js +2 -3
  575. package/dist/menu/Menu.js.map +1 -1
  576. package/dist/menu/MenuBar.d.ts +3 -4
  577. package/dist/menu/MenuBar.js +3 -4
  578. package/dist/menu/MenuBar.js.map +1 -1
  579. package/dist/menu/MenuButton.d.ts +8 -8
  580. package/dist/menu/MenuButton.js +2 -2
  581. package/dist/menu/MenuButton.js.map +1 -1
  582. package/dist/menu/MenuConfigurationProvider.d.ts +8 -8
  583. package/dist/menu/MenuConfigurationProvider.js +5 -5
  584. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  585. package/dist/menu/MenuItem.d.ts +2 -2
  586. package/dist/menu/MenuItem.js +1 -1
  587. package/dist/menu/MenuItem.js.map +1 -1
  588. package/dist/menu/MenuItemButton.d.ts +2 -2
  589. package/dist/menu/MenuItemButton.js +1 -1
  590. package/dist/menu/MenuItemButton.js.map +1 -1
  591. package/dist/menu/MenuItemCircularProgress.d.ts +3 -4
  592. package/dist/menu/MenuItemCircularProgress.js +2 -3
  593. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  594. package/dist/menu/MenuItemGroup.d.ts +3 -4
  595. package/dist/menu/MenuItemGroup.js +2 -3
  596. package/dist/menu/MenuItemGroup.js.map +1 -1
  597. package/dist/menu/MenuItemSeparator.d.ts +2 -2
  598. package/dist/menu/MenuItemSeparator.js +1 -1
  599. package/dist/menu/MenuItemSeparator.js.map +1 -1
  600. package/dist/menu/MenuSheet.d.ts +7 -9
  601. package/dist/menu/MenuSheet.js +2 -3
  602. package/dist/menu/MenuSheet.js.map +1 -1
  603. package/dist/menu/MenuVisibilityProvider.d.ts +6 -8
  604. package/dist/menu/MenuVisibilityProvider.js +5 -6
  605. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  606. package/dist/menu/MenuWidget.d.ts +2 -2
  607. package/dist/menu/MenuWidget.js +1 -1
  608. package/dist/menu/MenuWidget.js.map +1 -1
  609. package/dist/menu/MenuWidgetKeyboardProvider.d.ts +2 -2
  610. package/dist/menu/MenuWidgetKeyboardProvider.js +1 -1
  611. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
  612. package/dist/menu/useContextMenu.d.ts +8 -12
  613. package/dist/menu/useContextMenu.js +3 -5
  614. package/dist/menu/useContextMenu.js.map +1 -1
  615. package/dist/menu/useMenuBarProvider.d.ts +6 -6
  616. package/dist/menu/useMenuBarProvider.js +3 -3
  617. package/dist/menu/useMenuBarProvider.js.map +1 -1
  618. package/dist/menu/utils.d.ts +2 -2
  619. package/dist/menu/utils.js +1 -1
  620. package/dist/menu/utils.js.map +1 -1
  621. package/dist/movement/constants.d.ts +3 -3
  622. package/dist/movement/constants.js +3 -3
  623. package/dist/movement/constants.js.map +1 -1
  624. package/dist/movement/findMatchIndex.js.map +1 -1
  625. package/dist/movement/types.d.ts +16 -17
  626. package/dist/movement/types.js +1 -1
  627. package/dist/movement/types.js.map +1 -1
  628. package/dist/movement/useKeyboardMovementProvider.d.ts +5 -8
  629. package/dist/movement/useKeyboardMovementProvider.js +6 -9
  630. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  631. package/dist/movement/utils.d.ts +13 -13
  632. package/dist/movement/utils.js +10 -10
  633. package/dist/movement/utils.js.map +1 -1
  634. package/dist/navigation/CollapsibleNavGroup.d.ts +29 -0
  635. package/dist/navigation/CollapsibleNavGroup.js +49 -0
  636. package/dist/navigation/CollapsibleNavGroup.js.map +1 -0
  637. package/dist/navigation/DefaultNavigationRenderer.d.ts +22 -0
  638. package/dist/navigation/DefaultNavigationRenderer.js +58 -0
  639. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -0
  640. package/dist/navigation/NavGroup.d.ts +18 -0
  641. package/dist/navigation/NavGroup.js +29 -0
  642. package/dist/navigation/NavGroup.js.map +1 -0
  643. package/dist/navigation/NavItem.d.ts +17 -0
  644. package/dist/navigation/NavItem.js +24 -0
  645. package/dist/navigation/NavItem.js.map +1 -0
  646. package/dist/navigation/NavItemButton.d.ts +26 -0
  647. package/dist/navigation/NavItemButton.js +65 -0
  648. package/dist/navigation/NavItemButton.js.map +1 -0
  649. package/dist/navigation/NavItemLink.d.ts +40 -0
  650. package/dist/navigation/NavItemLink.js +88 -0
  651. package/dist/navigation/NavItemLink.js.map +1 -0
  652. package/dist/navigation/NavSubheader.d.ts +16 -0
  653. package/dist/navigation/NavSubheader.js +26 -0
  654. package/dist/navigation/NavSubheader.js.map +1 -0
  655. package/dist/navigation/Navigation.d.ts +31 -0
  656. package/dist/navigation/Navigation.js +46 -0
  657. package/dist/navigation/Navigation.js.map +1 -0
  658. package/dist/navigation/_navigation.scss +99 -0
  659. package/dist/navigation/getHrefFromParents.d.ts +5 -0
  660. package/dist/navigation/getHrefFromParents.js +13 -0
  661. package/dist/navigation/getHrefFromParents.js.map +1 -0
  662. package/dist/navigation/navGroupStyles.d.ts +11 -0
  663. package/dist/navigation/navGroupStyles.js +13 -0
  664. package/dist/navigation/navGroupStyles.js.map +1 -0
  665. package/dist/navigation/navItemStyles.d.ts +33 -0
  666. package/dist/navigation/navItemStyles.js +31 -0
  667. package/dist/navigation/navItemStyles.js.map +1 -0
  668. package/dist/navigation/types.d.ts +137 -0
  669. package/dist/navigation/types.js +5 -0
  670. package/dist/navigation/types.js.map +1 -0
  671. package/dist/navigation/useActiveHeadingId.d.ts +54 -0
  672. package/dist/navigation/useActiveHeadingId.js +117 -0
  673. package/dist/navigation/useActiveHeadingId.js.map +1 -0
  674. package/dist/overlay/Overlay.d.ts +5 -6
  675. package/dist/overlay/Overlay.js +2 -3
  676. package/dist/overlay/Overlay.js.map +1 -1
  677. package/dist/overlay/overlayStyles.d.ts +4 -4
  678. package/dist/overlay/overlayStyles.js +3 -3
  679. package/dist/overlay/overlayStyles.js.map +1 -1
  680. package/dist/portal/Portal.d.ts +1 -2
  681. package/dist/portal/Portal.js +1 -2
  682. package/dist/portal/Portal.js.map +1 -1
  683. package/dist/portal/PortalContainerProvider.d.ts +4 -4
  684. package/dist/portal/PortalContainerProvider.js +2 -2
  685. package/dist/portal/PortalContainerProvider.js.map +1 -1
  686. package/dist/positioning/constants.js.map +1 -1
  687. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  688. package/dist/positioning/createVerticalPosition.d.ts +1 -1
  689. package/dist/positioning/createVerticalPosition.js.map +1 -1
  690. package/dist/positioning/getFixedPosition.js +1 -1
  691. package/dist/positioning/getFixedPosition.js.map +1 -1
  692. package/dist/positioning/types.d.ts +4 -4
  693. package/dist/positioning/types.js.map +1 -1
  694. package/dist/positioning/useFixedPositioning.d.ts +8 -9
  695. package/dist/positioning/useFixedPositioning.js +2 -3
  696. package/dist/positioning/useFixedPositioning.js.map +1 -1
  697. package/dist/positioning/utils.d.ts +3 -3
  698. package/dist/positioning/utils.js +1 -1
  699. package/dist/positioning/utils.js.map +1 -1
  700. package/dist/progress/CircularProgress.d.ts +7 -10
  701. package/dist/progress/CircularProgress.js +3 -5
  702. package/dist/progress/CircularProgress.js.map +1 -1
  703. package/dist/progress/LinearProgress.d.ts +4 -6
  704. package/dist/progress/LinearProgress.js +3 -5
  705. package/dist/progress/LinearProgress.js.map +1 -1
  706. package/dist/progress/getProgressA11y.js.map +1 -1
  707. package/dist/progress/types.d.ts +5 -5
  708. package/dist/progress/types.js +1 -1
  709. package/dist/progress/types.js.map +1 -1
  710. package/dist/responsive-item/ResponsiveItemContainer.d.ts +10 -15
  711. package/dist/responsive-item/ResponsiveItemContainer.js +5 -8
  712. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
  713. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +6 -7
  714. package/dist/responsive-item/ResponsiveItemOverlay.js +3 -4
  715. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  716. package/dist/responsive-item/styles.d.ts +2 -2
  717. package/dist/responsive-item/styles.js +1 -1
  718. package/dist/responsive-item/styles.js.map +1 -1
  719. package/dist/scroll/ScrollLock.d.ts +1 -1
  720. package/dist/scroll/ScrollLock.js +1 -1
  721. package/dist/scroll/ScrollLock.js.map +1 -1
  722. package/dist/scroll/getScrollbarWidth.js.map +1 -1
  723. package/dist/scroll/useScrollLock.d.ts +2 -3
  724. package/dist/scroll/useScrollLock.js +2 -3
  725. package/dist/scroll/useScrollLock.js.map +1 -1
  726. package/dist/searching/caseInsensitive.d.ts +9 -13
  727. package/dist/searching/caseInsensitive.js +1 -1
  728. package/dist/searching/caseInsensitive.js.map +1 -1
  729. package/dist/searching/fuzzy.d.ts +4 -5
  730. package/dist/searching/fuzzy.js +1 -1
  731. package/dist/searching/fuzzy.js.map +1 -1
  732. package/dist/searching/toSearchQuery.d.ts +1 -1
  733. package/dist/searching/toSearchQuery.js +1 -1
  734. package/dist/searching/toSearchQuery.js.map +1 -1
  735. package/dist/searching/types.d.ts +2 -2
  736. package/dist/searching/types.js +1 -1
  737. package/dist/searching/types.js.map +1 -1
  738. package/dist/searching/useFuzzyMatch.d.ts +3 -3
  739. package/dist/searching/useFuzzyMatch.js +1 -1
  740. package/dist/searching/useFuzzyMatch.js.map +1 -1
  741. package/dist/searching/utils.d.ts +3 -3
  742. package/dist/searching/utils.js +2 -2
  743. package/dist/searching/utils.js.map +1 -1
  744. package/dist/segmented-button/SegmentedButton.d.ts +3 -4
  745. package/dist/segmented-button/SegmentedButton.js +2 -3
  746. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  747. package/dist/segmented-button/SegmentedButtonContainer.d.ts +3 -4
  748. package/dist/segmented-button/SegmentedButtonContainer.js +2 -3
  749. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  750. package/dist/segmented-button/segmentedButtonContainerStyles.d.ts +2 -2
  751. package/dist/segmented-button/segmentedButtonContainerStyles.js +1 -1
  752. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
  753. package/dist/segmented-button/segmentedButtonStyles.d.ts +2 -2
  754. package/dist/segmented-button/segmentedButtonStyles.js +1 -1
  755. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  756. package/dist/sheet/Sheet.d.ts +1 -1
  757. package/dist/sheet/Sheet.js.map +1 -1
  758. package/dist/sheet/styles.d.ts +3 -3
  759. package/dist/sheet/styles.js +1 -1
  760. package/dist/sheet/styles.js.map +1 -1
  761. package/dist/snackbar/DefaultToastRenderer.d.ts +2 -2
  762. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  763. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  764. package/dist/snackbar/Snackbar.d.ts +3 -4
  765. package/dist/snackbar/Snackbar.js +2 -3
  766. package/dist/snackbar/Snackbar.js.map +1 -1
  767. package/dist/snackbar/Toast.d.ts +3 -3
  768. package/dist/snackbar/Toast.js +1 -1
  769. package/dist/snackbar/Toast.js.map +1 -1
  770. package/dist/snackbar/ToastActionButton.d.ts +2 -2
  771. package/dist/snackbar/ToastActionButton.js +1 -1
  772. package/dist/snackbar/ToastActionButton.js.map +1 -1
  773. package/dist/snackbar/ToastCloseButton.d.ts +2 -2
  774. package/dist/snackbar/ToastCloseButton.js +1 -1
  775. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  776. package/dist/snackbar/ToastContent.d.ts +2 -2
  777. package/dist/snackbar/ToastContent.js +1 -1
  778. package/dist/snackbar/ToastContent.js.map +1 -1
  779. package/dist/snackbar/ToastManager.d.ts +17 -18
  780. package/dist/snackbar/ToastManager.js +21 -19
  781. package/dist/snackbar/ToastManager.js.map +1 -1
  782. package/dist/snackbar/ToastManagerProvider.d.ts +6 -6
  783. package/dist/snackbar/ToastManagerProvider.js +5 -5
  784. package/dist/snackbar/ToastManagerProvider.js.map +1 -1
  785. package/dist/snackbar/snackbarStyles.d.ts +4 -5
  786. package/dist/snackbar/snackbarStyles.js +1 -1
  787. package/dist/snackbar/snackbarStyles.js.map +1 -1
  788. package/dist/snackbar/toastContentStyles.d.ts +2 -2
  789. package/dist/snackbar/toastContentStyles.js +1 -1
  790. package/dist/snackbar/toastContentStyles.js.map +1 -1
  791. package/dist/snackbar/toastStyles.d.ts +2 -2
  792. package/dist/snackbar/toastStyles.js +1 -1
  793. package/dist/snackbar/toastStyles.js.map +1 -1
  794. package/dist/snackbar/useCurrentToastActions.d.ts +3 -3
  795. package/dist/snackbar/useCurrentToastActions.js +2 -2
  796. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  797. package/dist/suspense/CircularProgressSuspense.d.ts +3 -4
  798. package/dist/suspense/CircularProgressSuspense.js +2 -3
  799. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  800. package/dist/suspense/NullSuspense.d.ts +3 -4
  801. package/dist/suspense/NullSuspense.js +2 -3
  802. package/dist/suspense/NullSuspense.js.map +1 -1
  803. package/dist/table/Table.d.ts +1 -2
  804. package/dist/table/Table.js +1 -2
  805. package/dist/table/Table.js.map +1 -1
  806. package/dist/table/TableBody.js.map +1 -1
  807. package/dist/table/TableCell.d.ts +7 -7
  808. package/dist/table/TableCell.js.map +1 -1
  809. package/dist/table/TableCellContent.d.ts +3 -3
  810. package/dist/table/TableCellContent.js.map +1 -1
  811. package/dist/table/TableCheckbox.d.ts +11 -15
  812. package/dist/table/TableCheckbox.js +4 -6
  813. package/dist/table/TableCheckbox.js.map +1 -1
  814. package/dist/table/TableConfigurationProvider.js.map +1 -1
  815. package/dist/table/TableContainer.js.map +1 -1
  816. package/dist/table/TableContainerProvider.d.ts +3 -3
  817. package/dist/table/TableContainerProvider.js +2 -2
  818. package/dist/table/TableContainerProvider.js.map +1 -1
  819. package/dist/table/TableFooter.d.ts +2 -2
  820. package/dist/table/TableFooter.js +1 -1
  821. package/dist/table/TableFooter.js.map +1 -1
  822. package/dist/table/TableHeader.d.ts +2 -2
  823. package/dist/table/TableHeader.js +1 -1
  824. package/dist/table/TableHeader.js.map +1 -1
  825. package/dist/table/TableRadio.d.ts +7 -9
  826. package/dist/table/TableRadio.js +2 -3
  827. package/dist/table/TableRadio.js.map +1 -1
  828. package/dist/table/TableRow.js.map +1 -1
  829. package/dist/table/tableCellStyles.d.ts +2 -2
  830. package/dist/table/tableCellStyles.js +1 -1
  831. package/dist/table/tableCellStyles.js.map +1 -1
  832. package/dist/table/tableContainerStyles.d.ts +2 -2
  833. package/dist/table/tableContainerStyles.js +1 -1
  834. package/dist/table/tableContainerStyles.js.map +1 -1
  835. package/dist/table/tableFooterStyles.d.ts +1 -1
  836. package/dist/table/tableFooterStyles.js.map +1 -1
  837. package/dist/table/tableHeaderStyles.d.ts +2 -2
  838. package/dist/table/tableHeaderStyles.js +1 -1
  839. package/dist/table/tableHeaderStyles.js.map +1 -1
  840. package/dist/table/tableRowStyles.d.ts +2 -2
  841. package/dist/table/tableRowStyles.js +1 -1
  842. package/dist/table/tableRowStyles.js.map +1 -1
  843. package/dist/table/tableStyles.d.ts +2 -2
  844. package/dist/table/tableStyles.js +1 -1
  845. package/dist/table/tableStyles.js.map +1 -1
  846. package/dist/table/types.d.ts +7 -9
  847. package/dist/table/types.js +1 -1
  848. package/dist/table/types.js.map +1 -1
  849. package/dist/tabs/Tab.d.ts +4 -4
  850. package/dist/tabs/Tab.js +1 -1
  851. package/dist/tabs/Tab.js.map +1 -1
  852. package/dist/tabs/TabList.d.ts +2 -2
  853. package/dist/tabs/TabList.js +1 -1
  854. package/dist/tabs/TabList.js.map +1 -1
  855. package/dist/tabs/TabListScrollButton.d.ts +3 -3
  856. package/dist/tabs/TabListScrollButton.js +1 -1
  857. package/dist/tabs/TabListScrollButton.js.map +1 -1
  858. package/dist/tabs/tabIndicatorStyles.d.ts +2 -2
  859. package/dist/tabs/tabIndicatorStyles.js +1 -1
  860. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  861. package/dist/tabs/tabListScrollButtonStyles.d.ts +4 -4
  862. package/dist/tabs/tabListScrollButtonStyles.js +2 -2
  863. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  864. package/dist/tabs/tabListStyles.d.ts +2 -2
  865. package/dist/tabs/tabListStyles.js +1 -1
  866. package/dist/tabs/tabListStyles.js.map +1 -1
  867. package/dist/tabs/tabStyles.d.ts +2 -2
  868. package/dist/tabs/tabStyles.js +1 -1
  869. package/dist/tabs/tabStyles.js.map +1 -1
  870. package/dist/tabs/useTabList.js.map +1 -1
  871. package/dist/tabs/useTabs.d.ts +15 -20
  872. package/dist/tabs/useTabs.js +1 -1
  873. package/dist/tabs/useTabs.js.map +1 -1
  874. package/dist/tabs/utils.d.ts +3 -3
  875. package/dist/tabs/utils.js +1 -1
  876. package/dist/tabs/utils.js.map +1 -1
  877. package/dist/test-utils/IntersectionObserver.js.map +1 -1
  878. package/dist/test-utils/ResizeObserver.d.ts +9 -11
  879. package/dist/test-utils/ResizeObserver.js +6 -8
  880. package/dist/test-utils/ResizeObserver.js.map +1 -1
  881. package/dist/test-utils/data-testid.js.map +1 -1
  882. package/dist/test-utils/index.js.map +1 -1
  883. package/dist/test-utils/jest-setup.js.map +1 -1
  884. package/dist/test-utils/matchMedia.d.ts +13 -17
  885. package/dist/test-utils/matchMedia.js +9 -11
  886. package/dist/test-utils/matchMedia.js.map +1 -1
  887. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
  888. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
  889. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  890. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
  891. package/dist/test-utils/polyfills/index.js.map +1 -1
  892. package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
  893. package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
  894. package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
  895. package/dist/test-utils/render.d.ts +2 -2
  896. package/dist/test-utils/render.js +1 -1
  897. package/dist/test-utils/render.js.map +1 -1
  898. package/dist/test-utils/timers.d.ts +2 -3
  899. package/dist/test-utils/timers.js +2 -3
  900. package/dist/test-utils/timers.js.map +1 -1
  901. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +2 -2
  902. package/dist/theme/LocalStorageColorSchemeProvider.js +1 -1
  903. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  904. package/dist/theme/ThemeProvider.d.ts +17 -20
  905. package/dist/theme/ThemeProvider.js +7 -8
  906. package/dist/theme/ThemeProvider.js.map +1 -1
  907. package/dist/theme/colors.js.map +1 -1
  908. package/dist/theme/cssVars.js.map +1 -1
  909. package/dist/theme/types.d.ts +3 -3
  910. package/dist/theme/types.js +1 -1
  911. package/dist/theme/types.js.map +1 -1
  912. package/dist/theme/useCSSVariables.d.ts +7 -9
  913. package/dist/theme/useCSSVariables.js +1 -1
  914. package/dist/theme/useCSSVariables.js.map +1 -1
  915. package/dist/theme/useColorScheme.d.ts +6 -7
  916. package/dist/theme/useColorScheme.js +2 -3
  917. package/dist/theme/useColorScheme.js.map +1 -1
  918. package/dist/theme/useColorSchemeMetaTag.d.ts +2 -2
  919. package/dist/theme/useColorSchemeMetaTag.js +1 -1
  920. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  921. package/dist/theme/useColorSchemeProvider.d.ts +2 -2
  922. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  923. package/dist/theme/usePrefersColorScheme.d.ts +1 -1
  924. package/dist/theme/usePrefersColorScheme.js +1 -1
  925. package/dist/theme/usePrefersColorScheme.js.map +1 -1
  926. package/dist/theme/utils.d.ts +1 -1
  927. package/dist/theme/utils.js +1 -1
  928. package/dist/theme/utils.js.map +1 -1
  929. package/dist/tooltip/Tooltip.d.ts +3 -5
  930. package/dist/tooltip/Tooltip.js +1 -2
  931. package/dist/tooltip/Tooltip.js.map +1 -1
  932. package/dist/tooltip/TooltipHoverModeProvider.d.ts +5 -6
  933. package/dist/tooltip/TooltipHoverModeProvider.js +3 -4
  934. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  935. package/dist/tooltip/constants.d.ts +9 -9
  936. package/dist/tooltip/constants.js +9 -9
  937. package/dist/tooltip/constants.js.map +1 -1
  938. package/dist/tooltip/tooltipStyles.d.ts +2 -2
  939. package/dist/tooltip/tooltipStyles.js +1 -1
  940. package/dist/tooltip/tooltipStyles.js.map +1 -1
  941. package/dist/tooltip/useTooltip.d.ts +18 -26
  942. package/dist/tooltip/useTooltip.js +4 -7
  943. package/dist/tooltip/useTooltip.js.map +1 -1
  944. package/dist/tooltip/useTooltipPosition.d.ts +4 -4
  945. package/dist/tooltip/useTooltipPosition.js +1 -1
  946. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  947. package/dist/tooltip/utils.js.map +1 -1
  948. package/dist/transition/CSSTransition.d.ts +3 -4
  949. package/dist/transition/CSSTransition.js +2 -3
  950. package/dist/transition/CSSTransition.js.map +1 -1
  951. package/dist/transition/Collapse.d.ts +5 -8
  952. package/dist/transition/Collapse.js +3 -5
  953. package/dist/transition/Collapse.js.map +1 -1
  954. package/dist/transition/CrossFade.d.ts +5 -8
  955. package/dist/transition/CrossFade.js +3 -5
  956. package/dist/transition/CrossFade.js.map +1 -1
  957. package/dist/transition/ScaleTransition.d.ts +7 -10
  958. package/dist/transition/ScaleTransition.js +4 -6
  959. package/dist/transition/ScaleTransition.js.map +1 -1
  960. package/dist/transition/SkeletonPlaceholder.d.ts +4 -6
  961. package/dist/transition/SkeletonPlaceholder.js +3 -5
  962. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  963. package/dist/transition/Slide.d.ts +2 -2
  964. package/dist/transition/Slide.js +1 -1
  965. package/dist/transition/Slide.js.map +1 -1
  966. package/dist/transition/SlideContainer.d.ts +9 -13
  967. package/dist/transition/SlideContainer.js +4 -6
  968. package/dist/transition/SlideContainer.js.map +1 -1
  969. package/dist/transition/collapseStyles.d.ts +2 -2
  970. package/dist/transition/collapseStyles.js +1 -1
  971. package/dist/transition/collapseStyles.js.map +1 -1
  972. package/dist/transition/config.d.ts +2 -2
  973. package/dist/transition/config.js +2 -2
  974. package/dist/transition/config.js.map +1 -1
  975. package/dist/transition/maxWidthTransition.js.map +1 -1
  976. package/dist/transition/skeletonPlaceholderUtils.d.ts +3 -3
  977. package/dist/transition/skeletonPlaceholderUtils.js +2 -2
  978. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  979. package/dist/transition/types.d.ts +34 -37
  980. package/dist/transition/types.js +1 -1
  981. package/dist/transition/types.js.map +1 -1
  982. package/dist/transition/useCSSTransition.d.ts +4 -7
  983. package/dist/transition/useCSSTransition.js +4 -7
  984. package/dist/transition/useCSSTransition.js.map +1 -1
  985. package/dist/transition/useCarousel.d.ts +6 -7
  986. package/dist/transition/useCarousel.js +2 -3
  987. package/dist/transition/useCarousel.js.map +1 -1
  988. package/dist/transition/useCollapseTransition.d.ts +10 -13
  989. package/dist/transition/useCollapseTransition.js +4 -6
  990. package/dist/transition/useCollapseTransition.js.map +1 -1
  991. package/dist/transition/useCrossFadeTransition.d.ts +5 -6
  992. package/dist/transition/useCrossFadeTransition.js +4 -5
  993. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  994. package/dist/transition/useMaxWidthTransition.d.ts +2 -2
  995. package/dist/transition/useMaxWidthTransition.js +1 -1
  996. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  997. package/dist/transition/useScaleTransition.d.ts +8 -11
  998. package/dist/transition/useScaleTransition.js +7 -10
  999. package/dist/transition/useScaleTransition.js.map +1 -1
  1000. package/dist/transition/useSkeletonPlaceholder.d.ts +6 -10
  1001. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  1002. package/dist/transition/useSlideTransition.d.ts +5 -6
  1003. package/dist/transition/useSlideTransition.js +4 -5
  1004. package/dist/transition/useSlideTransition.js.map +1 -1
  1005. package/dist/transition/useTransition.d.ts +1 -1
  1006. package/dist/transition/useTransition.js +1 -1
  1007. package/dist/transition/useTransition.js.map +1 -1
  1008. package/dist/transition/utils.d.ts +6 -6
  1009. package/dist/transition/utils.js +3 -3
  1010. package/dist/transition/utils.js.map +1 -1
  1011. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  1012. package/dist/tree/DefaultTreeItemRenderer.js +1 -1
  1013. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  1014. package/dist/tree/Tree.d.ts +7 -11
  1015. package/dist/tree/Tree.js +4 -6
  1016. package/dist/tree/Tree.js.map +1 -1
  1017. package/dist/tree/TreeGroup.d.ts +3 -3
  1018. package/dist/tree/TreeGroup.js +1 -1
  1019. package/dist/tree/TreeGroup.js.map +1 -1
  1020. package/dist/tree/TreeItem.d.ts +3 -4
  1021. package/dist/tree/TreeItem.js +2 -3
  1022. package/dist/tree/TreeItem.js.map +1 -1
  1023. package/dist/tree/TreeItemExpander.d.ts +2 -2
  1024. package/dist/tree/TreeItemExpander.js +1 -1
  1025. package/dist/tree/TreeItemExpander.js.map +1 -1
  1026. package/dist/tree/TreeProvider.d.ts +6 -6
  1027. package/dist/tree/TreeProvider.js +2 -2
  1028. package/dist/tree/TreeProvider.js.map +1 -1
  1029. package/dist/tree/styles.d.ts +10 -10
  1030. package/dist/tree/styles.js +5 -5
  1031. package/dist/tree/styles.js.map +1 -1
  1032. package/dist/tree/types.d.ts +6 -7
  1033. package/dist/tree/types.js.map +1 -1
  1034. package/dist/tree/useTree.d.ts +4 -5
  1035. package/dist/tree/useTree.js +2 -3
  1036. package/dist/tree/useTree.js.map +1 -1
  1037. package/dist/tree/useTreeExpansion.d.ts +2 -2
  1038. package/dist/tree/useTreeExpansion.js +1 -1
  1039. package/dist/tree/useTreeExpansion.js.map +1 -1
  1040. package/dist/tree/useTreeItems.d.ts +7 -7
  1041. package/dist/tree/useTreeItems.js +2 -2
  1042. package/dist/tree/useTreeItems.js.map +1 -1
  1043. package/dist/tree/useTreeMovement.d.ts +3 -3
  1044. package/dist/tree/useTreeMovement.js +3 -3
  1045. package/dist/tree/useTreeMovement.js.map +1 -1
  1046. package/dist/tree/useTreeSelection.d.ts +2 -2
  1047. package/dist/tree/useTreeSelection.js +1 -1
  1048. package/dist/tree/useTreeSelection.js.map +1 -1
  1049. package/dist/tree/utils.d.ts +2 -2
  1050. package/dist/tree/utils.js +2 -2
  1051. package/dist/tree/utils.js.map +1 -1
  1052. package/dist/types.d.ts +14 -16
  1053. package/dist/types.js +1 -1
  1054. package/dist/types.js.map +1 -1
  1055. package/dist/typography/SrOnly.d.ts +1 -2
  1056. package/dist/typography/SrOnly.js +1 -2
  1057. package/dist/typography/SrOnly.js.map +1 -1
  1058. package/dist/typography/TextContainer.d.ts +4 -44
  1059. package/dist/typography/TextContainer.js +3 -33
  1060. package/dist/typography/TextContainer.js.map +1 -1
  1061. package/dist/typography/Typography.d.ts +4 -116
  1062. package/dist/typography/Typography.js +2 -91
  1063. package/dist/typography/Typography.js.map +1 -1
  1064. package/dist/typography/WritingDirectionProvider.d.ts +10 -13
  1065. package/dist/typography/WritingDirectionProvider.js +6 -9
  1066. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  1067. package/dist/typography/textContainerStyles.d.ts +39 -0
  1068. package/dist/typography/textContainerStyles.js +31 -0
  1069. package/dist/typography/textContainerStyles.js.map +1 -0
  1070. package/dist/typography/typographyStyles.d.ts +110 -0
  1071. package/dist/typography/typographyStyles.js +89 -0
  1072. package/dist/typography/typographyStyles.js.map +1 -0
  1073. package/dist/useAsyncAction.d.ts +7 -9
  1074. package/dist/useAsyncAction.js +3 -5
  1075. package/dist/useAsyncAction.js.map +1 -1
  1076. package/dist/useDebouncedFunction.d.ts +3 -4
  1077. package/dist/useDebouncedFunction.js +2 -3
  1078. package/dist/useDebouncedFunction.js.map +1 -1
  1079. package/dist/useDropzone.d.ts +9 -14
  1080. package/dist/useDropzone.js +4 -7
  1081. package/dist/useDropzone.js.map +1 -1
  1082. package/dist/useElementSize.d.ts +26 -5
  1083. package/dist/useElementSize.js +7 -5
  1084. package/dist/useElementSize.js.map +1 -1
  1085. package/dist/useEnsuredId.d.ts +2 -3
  1086. package/dist/useEnsuredId.js +2 -3
  1087. package/dist/useEnsuredId.js.map +1 -1
  1088. package/dist/useEnsuredRef.d.ts +3 -4
  1089. package/dist/useEnsuredRef.js +2 -3
  1090. package/dist/useEnsuredRef.js.map +1 -1
  1091. package/dist/useEnsuredState.d.ts +2 -2
  1092. package/dist/useEnsuredState.js +1 -1
  1093. package/dist/useEnsuredState.js.map +1 -1
  1094. package/dist/useHtmlClassName.d.ts +1 -1
  1095. package/dist/useHtmlClassName.js +1 -1
  1096. package/dist/useHtmlClassName.js.map +1 -1
  1097. package/dist/useIntersectionObserver.d.ts +13 -20
  1098. package/dist/useIntersectionObserver.js +2 -3
  1099. package/dist/useIntersectionObserver.js.map +1 -1
  1100. package/dist/useIsomorphicLayoutEffect.js.map +1 -1
  1101. package/dist/useLocalStorage.d.ts +17 -22
  1102. package/dist/useLocalStorage.js +9 -13
  1103. package/dist/useLocalStorage.js.map +1 -1
  1104. package/dist/useOrientation.js.map +1 -1
  1105. package/dist/usePageInactive.d.ts +3 -3
  1106. package/dist/usePageInactive.js +1 -1
  1107. package/dist/usePageInactive.js.map +1 -1
  1108. package/dist/useResizeListener.d.ts +3 -4
  1109. package/dist/useResizeListener.js +2 -3
  1110. package/dist/useResizeListener.js.map +1 -1
  1111. package/dist/useResizeObserver.d.ts +8 -10
  1112. package/dist/useResizeObserver.js +4 -5
  1113. package/dist/useResizeObserver.js.map +1 -1
  1114. package/dist/useThrottledFunction.d.ts +3 -4
  1115. package/dist/useThrottledFunction.js +2 -3
  1116. package/dist/useThrottledFunction.js.map +1 -1
  1117. package/dist/useToggle.d.ts +2 -3
  1118. package/dist/useToggle.js +1 -2
  1119. package/dist/useToggle.js.map +1 -1
  1120. package/dist/useUnmounted.d.ts +2 -3
  1121. package/dist/useUnmounted.js +2 -3
  1122. package/dist/useUnmounted.js.map +1 -1
  1123. package/dist/useWindowSize.d.ts +3 -4
  1124. package/dist/useWindowSize.js +2 -3
  1125. package/dist/useWindowSize.js.map +1 -1
  1126. package/dist/utils/RenderRecursively.d.ts +26 -7
  1127. package/dist/utils/RenderRecursively.js +19 -3
  1128. package/dist/utils/RenderRecursively.js.map +1 -1
  1129. package/dist/utils/alphaNumericSort.d.ts +6 -11
  1130. package/dist/utils/alphaNumericSort.js +1 -1
  1131. package/dist/utils/alphaNumericSort.js.map +1 -1
  1132. package/dist/utils/applyRef.d.ts +1 -2
  1133. package/dist/utils/applyRef.js +1 -2
  1134. package/dist/utils/applyRef.js.map +1 -1
  1135. package/dist/utils/bem.d.ts +2 -3
  1136. package/dist/utils/bem.js +2 -3
  1137. package/dist/utils/bem.js.map +1 -1
  1138. package/dist/utils/getClientPosition.d.ts +4 -4
  1139. package/dist/utils/getClientPosition.js +2 -2
  1140. package/dist/utils/getClientPosition.js.map +1 -1
  1141. package/dist/utils/getMiddleOfRange.d.ts +2 -2
  1142. package/dist/utils/getMiddleOfRange.js +1 -1
  1143. package/dist/utils/getMiddleOfRange.js.map +1 -1
  1144. package/dist/utils/getPercentage.d.ts +3 -4
  1145. package/dist/utils/getPercentage.js +3 -4
  1146. package/dist/utils/getPercentage.js.map +1 -1
  1147. package/dist/utils/getRangeDefaultValue.d.ts +2 -2
  1148. package/dist/utils/getRangeDefaultValue.js +1 -1
  1149. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  1150. package/dist/utils/getRangeSteps.d.ts +3 -4
  1151. package/dist/utils/getRangeSteps.js +3 -4
  1152. package/dist/utils/getRangeSteps.js.map +1 -1
  1153. package/dist/utils/identity.d.ts +1 -1
  1154. package/dist/utils/identity.js +1 -1
  1155. package/dist/utils/identity.js.map +1 -1
  1156. package/dist/utils/isElementVisible.d.ts +3 -4
  1157. package/dist/utils/isElementVisible.js +3 -4
  1158. package/dist/utils/isElementVisible.js.map +1 -1
  1159. package/dist/utils/loop.d.ts +2 -2
  1160. package/dist/utils/loop.js +2 -2
  1161. package/dist/utils/loop.js.map +1 -1
  1162. package/dist/utils/nearest.d.ts +3 -4
  1163. package/dist/utils/nearest.js +3 -4
  1164. package/dist/utils/nearest.js.map +1 -1
  1165. package/dist/utils/parseCssLengthUnit.d.ts +2 -4
  1166. package/dist/utils/parseCssLengthUnit.js +2 -4
  1167. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  1168. package/dist/utils/randomInt.d.ts +2 -2
  1169. package/dist/utils/randomInt.js +2 -2
  1170. package/dist/utils/randomInt.js.map +1 -1
  1171. package/dist/utils/wait.d.ts +2 -3
  1172. package/dist/utils/wait.js +2 -3
  1173. package/dist/utils/wait.js.map +1 -1
  1174. package/dist/utils/withinRange.d.ts +3 -4
  1175. package/dist/utils/withinRange.js +3 -4
  1176. package/dist/utils/withinRange.js.map +1 -1
  1177. package/dist/window-splitter/WindowSplitter.d.ts +5 -5
  1178. package/dist/window-splitter/WindowSplitter.js +2 -2
  1179. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  1180. package/dist/window-splitter/useWindowSplitter.d.ts +6 -7
  1181. package/dist/window-splitter/useWindowSplitter.js +2 -3
  1182. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  1183. package/package.json +24 -357
  1184. package/src/CoreProviders.tsx +3 -3
  1185. package/src/NoSsr.tsx +3 -4
  1186. package/src/RootHtml.tsx +3 -4
  1187. package/src/SsrProvider.tsx +3 -3
  1188. package/src/_core.scss +5 -0
  1189. package/src/app-bar/AppBar.tsx +11 -14
  1190. package/src/app-bar/AppBarTitle.tsx +9 -14
  1191. package/src/avatar/Avatar.tsx +5 -6
  1192. package/src/avatar/__tests__/Avatar.tsx +1 -1
  1193. package/src/avatar/styles.ts +4 -4
  1194. package/src/badge/Badge.tsx +4 -6
  1195. package/src/box/Box.tsx +16 -9
  1196. package/src/box/__tests__/Box.tsx +158 -0
  1197. package/src/box/__tests__/__snapshots__/Box.tsx.snap +544 -0
  1198. package/src/box/_box.scss +1 -1
  1199. package/src/box/styles.ts +9 -9
  1200. package/src/button/AsyncButton.tsx +5 -7
  1201. package/src/button/Button.tsx +4 -8
  1202. package/src/button/ButtonUnstyled.tsx +2 -2
  1203. package/src/button/FloatingActionButton.tsx +5 -5
  1204. package/src/button/TooltippedButton.tsx +9 -13
  1205. package/src/button/buttonStyles.ts +3 -3
  1206. package/src/button/buttonUnstyledStyles.ts +2 -2
  1207. package/src/card/Card.tsx +3 -4
  1208. package/src/card/CardContent.tsx +2 -4
  1209. package/src/card/CardFooter.tsx +2 -2
  1210. package/src/card/CardHeader.tsx +10 -12
  1211. package/src/card/CardSubtitle.tsx +2 -2
  1212. package/src/card/CardTitle.tsx +2 -2
  1213. package/src/card/ClickableCard.tsx +3 -4
  1214. package/src/card/styles.ts +15 -15
  1215. package/src/chip/Chip.tsx +10 -14
  1216. package/src/chip/styles.ts +4 -4
  1217. package/src/cssUtils.ts +10 -10
  1218. package/src/dialog/Dialog.tsx +5 -6
  1219. package/src/dialog/DialogContainer.tsx +2 -2
  1220. package/src/dialog/DialogTitle.tsx +2 -2
  1221. package/src/dialog/FixedDialog.tsx +1 -2
  1222. package/src/dialog/styles.ts +9 -9
  1223. package/src/divider/Divider.tsx +2 -3
  1224. package/src/divider/styles.ts +2 -2
  1225. package/src/draggable/useDraggable.ts +18 -19
  1226. package/src/draggable/utils.ts +2 -2
  1227. package/src/expansion-panel/ExpansionList.tsx +2 -2
  1228. package/src/expansion-panel/ExpansionPanel.tsx +8 -9
  1229. package/src/expansion-panel/ExpansionPanelHeader.tsx +6 -10
  1230. package/src/expansion-panel/useExpansionList.ts +6 -7
  1231. package/src/expansion-panel/useExpansionPanels.ts +9 -14
  1232. package/src/focus/useFocusContainer.ts +9 -10
  1233. package/src/focus/utils.ts +4 -5
  1234. package/src/form/Checkbox.tsx +1 -2
  1235. package/src/form/Fieldset.tsx +5 -6
  1236. package/src/form/FileInput.tsx +6 -7
  1237. package/src/form/FormMessageContainer.tsx +2 -2
  1238. package/src/form/FormMessageCounter.tsx +4 -6
  1239. package/src/form/InputToggle.tsx +11 -12
  1240. package/src/form/InputToggleIcon.tsx +4 -6
  1241. package/src/form/Label.tsx +2 -2
  1242. package/src/form/Legend.tsx +2 -2
  1243. package/src/form/MenuItemCheckbox.tsx +2 -3
  1244. package/src/form/MenuItemFileInput.tsx +3 -5
  1245. package/src/form/MenuItemInputToggle.tsx +7 -9
  1246. package/src/form/MenuItemRadio.tsx +3 -5
  1247. package/src/form/MenuItemSwitch.tsx +2 -3
  1248. package/src/form/MenuItemTextField.tsx +2 -2
  1249. package/src/form/NativeSelect.tsx +3 -5
  1250. package/src/form/OptGroup.tsx +3 -4
  1251. package/src/form/Option.tsx +5 -7
  1252. package/src/form/Password.tsx +7 -13
  1253. package/src/form/Radio.tsx +1 -2
  1254. package/src/form/ResizingTextAreaWrapper.tsx +2 -2
  1255. package/src/form/Select.tsx +6 -9
  1256. package/src/form/SelectedOption.tsx +2 -2
  1257. package/src/form/Slider.tsx +16 -25
  1258. package/src/form/SliderContainer.tsx +6 -9
  1259. package/src/form/SliderMark.tsx +2 -2
  1260. package/src/form/SliderMarkLabel.tsx +4 -4
  1261. package/src/form/SliderThumb.tsx +8 -10
  1262. package/src/form/SliderTrack.tsx +4 -6
  1263. package/src/form/SliderValueMarks.tsx +7 -9
  1264. package/src/form/SliderValueTooltip.tsx +4 -6
  1265. package/src/form/Switch.tsx +3 -4
  1266. package/src/form/TextArea.tsx +2 -3
  1267. package/src/form/TextField.tsx +7 -10
  1268. package/src/form/TextFieldAddon.tsx +3 -3
  1269. package/src/form/fileUtils.ts +33 -36
  1270. package/src/form/formConfig.ts +2 -2
  1271. package/src/form/formMessageStyles.ts +5 -5
  1272. package/src/form/inputToggleStyles.ts +3 -3
  1273. package/src/form/menuItemInputToggleStyles.ts +8 -8
  1274. package/src/form/nativeSelectStyles.ts +4 -4
  1275. package/src/form/optionStyles.ts +2 -2
  1276. package/src/form/passwordStyles.ts +4 -4
  1277. package/src/form/selectStyles.ts +2 -2
  1278. package/src/form/selectUtils.ts +4 -4
  1279. package/src/form/sliderUtils.ts +9 -9
  1280. package/src/form/switchStyles.ts +2 -2
  1281. package/src/form/textAreaStyles.ts +4 -4
  1282. package/src/form/textFieldContainerStyles.ts +2 -2
  1283. package/src/form/textFieldStyles.ts +2 -2
  1284. package/src/form/types.ts +10 -10
  1285. package/src/form/useCheckboxGroup.ts +15 -20
  1286. package/src/form/useCombobox.ts +18 -16
  1287. package/src/form/useEditableCombobox.ts +3 -3
  1288. package/src/form/useFileUpload.ts +7 -8
  1289. package/src/form/useFormReset.ts +2 -2
  1290. package/src/form/useListboxProvider.ts +3 -3
  1291. package/src/form/useNumberField.ts +17 -25
  1292. package/src/form/useRadioGroup.ts +14 -18
  1293. package/src/form/useRangeSlider.ts +8 -11
  1294. package/src/form/useSelectCombobox.ts +3 -3
  1295. package/src/form/useSlider.ts +7 -9
  1296. package/src/form/useTextField.ts +22 -31
  1297. package/src/form/utils.ts +7 -8
  1298. package/src/form/validation.ts +18 -18
  1299. package/src/hoverMode/useHoverMode.ts +9 -10
  1300. package/src/hoverMode/useHoverModeProvider.ts +11 -15
  1301. package/src/icon/FontIcon.tsx +1 -1
  1302. package/src/icon/IconRotator.tsx +1 -1
  1303. package/src/icon/MaterialIcon.tsx +2 -2
  1304. package/src/icon/MaterialSymbol.tsx +3 -4
  1305. package/src/icon/SVGIcon.tsx +0 -1
  1306. package/src/icon/TextIconSpacing.tsx +3 -5
  1307. package/src/icon/iconConfig.tsx +14 -16
  1308. package/src/icon/material.ts +4 -4
  1309. package/src/icon/materialConfig.ts +12 -12
  1310. package/src/icon/styles.ts +8 -8
  1311. package/src/interaction/UserInteractionModeProvider.tsx +1 -2
  1312. package/src/interaction/config.ts +2 -2
  1313. package/src/interaction/types.ts +8 -8
  1314. package/src/interaction/useElementInteraction.tsx +6 -7
  1315. package/src/interaction/useHigherContrastChildren.tsx +2 -3
  1316. package/src/layout/LayoutAppBar.tsx +4 -7
  1317. package/src/layout/LayoutNav.tsx +4 -6
  1318. package/src/layout/LayoutWindowSplitter.tsx +3 -4
  1319. package/src/layout/Main.tsx +4 -5
  1320. package/src/layout/__tests__/LayoutAppBar.tsx +23 -0
  1321. package/src/layout/__tests__/useExpandableLayout.tsx +8 -0
  1322. package/src/layout/_layout.scss +12 -1
  1323. package/src/layout/layoutNavStyles.ts +2 -2
  1324. package/src/layout/layoutWindowSplitterStyles.ts +2 -2
  1325. package/src/layout/mainStyles.ts +2 -2
  1326. package/src/layout/useExpandableLayout.ts +85 -23
  1327. package/src/layout/useHorizontalLayoutTransition.ts +8 -8
  1328. package/src/layout/useLayoutAppBarHeight.ts +10 -13
  1329. package/src/layout/useLayoutTree.ts +10 -10
  1330. package/src/layout/useLayoutWindowSplitter.ts +5 -6
  1331. package/src/layout/useMainTabIndex.ts +1 -1
  1332. package/src/layout/useResizableLayout.ts +54 -8
  1333. package/src/layout/useTemporaryLayout.ts +12 -13
  1334. package/src/link/Link.tsx +10 -13
  1335. package/src/link/SkipToMainContent.tsx +2 -4
  1336. package/src/link/styles.ts +4 -4
  1337. package/src/list/List.tsx +3 -4
  1338. package/src/list/ListItem.tsx +4 -6
  1339. package/src/list/ListItemChildren.tsx +1 -2
  1340. package/src/list/ListSubheader.tsx +3 -3
  1341. package/src/list/getListItemHeight.ts +1 -1
  1342. package/src/list/listItemStyles.ts +9 -9
  1343. package/src/list/types.ts +11 -11
  1344. package/src/media-queries/AppSizeProvider.tsx +1 -2
  1345. package/src/media-queries/useMediaQuery.ts +2 -3
  1346. package/src/menu/DropdownMenu.tsx +7 -11
  1347. package/src/menu/Menu.tsx +10 -13
  1348. package/src/menu/MenuBar.tsx +3 -4
  1349. package/src/menu/MenuButton.tsx +8 -8
  1350. package/src/menu/MenuConfigurationProvider.tsx +10 -10
  1351. package/src/menu/MenuItem.tsx +2 -2
  1352. package/src/menu/MenuItemButton.tsx +2 -2
  1353. package/src/menu/MenuItemCircularProgress.tsx +3 -4
  1354. package/src/menu/MenuItemGroup.tsx +3 -4
  1355. package/src/menu/MenuItemSeparator.tsx +2 -2
  1356. package/src/menu/MenuSheet.tsx +7 -9
  1357. package/src/menu/MenuVisibilityProvider.tsx +8 -10
  1358. package/src/menu/MenuWidget.tsx +2 -2
  1359. package/src/menu/MenuWidgetKeyboardProvider.tsx +2 -2
  1360. package/src/menu/useContextMenu.ts +8 -12
  1361. package/src/menu/useMenuBarProvider.ts +6 -6
  1362. package/src/menu/utils.ts +2 -2
  1363. package/src/movement/constants.ts +3 -3
  1364. package/src/movement/types.ts +16 -17
  1365. package/src/movement/useKeyboardMovementProvider.ts +6 -9
  1366. package/src/movement/utils.ts +13 -13
  1367. package/src/navigation/CollapsibleNavGroup.tsx +94 -0
  1368. package/src/navigation/DefaultNavigationRenderer.tsx +71 -0
  1369. package/src/navigation/NavGroup.tsx +39 -0
  1370. package/src/navigation/NavItem.tsx +29 -0
  1371. package/src/navigation/NavItemButton.tsx +104 -0
  1372. package/src/navigation/NavItemLink.tsx +163 -0
  1373. package/src/navigation/NavSubheader.tsx +36 -0
  1374. package/src/navigation/Navigation.tsx +91 -0
  1375. package/src/navigation/__tests__/Navigation.tsx +97 -0
  1376. package/src/navigation/__tests__/__snapshots__/Navigation.tsx.snap +165 -0
  1377. package/src/navigation/_navigation.scss +99 -0
  1378. package/src/navigation/getHrefFromParents.ts +15 -0
  1379. package/src/navigation/navGroupStyles.ts +21 -0
  1380. package/src/navigation/navItemStyles.ts +71 -0
  1381. package/src/navigation/types.ts +166 -0
  1382. package/src/navigation/useActiveHeadingId.ts +190 -0
  1383. package/src/overlay/Overlay.tsx +5 -6
  1384. package/src/overlay/overlayStyles.ts +4 -4
  1385. package/src/portal/Portal.tsx +1 -2
  1386. package/src/portal/PortalContainerProvider.tsx +4 -4
  1387. package/src/positioning/createVerticalPosition.ts +1 -1
  1388. package/src/positioning/getFixedPosition.ts +1 -1
  1389. package/src/positioning/types.ts +4 -4
  1390. package/src/positioning/useFixedPositioning.ts +8 -9
  1391. package/src/positioning/utils.ts +3 -3
  1392. package/src/progress/CircularProgress.tsx +7 -10
  1393. package/src/progress/LinearProgress.tsx +4 -6
  1394. package/src/progress/types.ts +5 -5
  1395. package/src/responsive-item/ResponsiveItemContainer.tsx +10 -15
  1396. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -7
  1397. package/src/responsive-item/styles.ts +2 -2
  1398. package/src/scroll/ScrollLock.tsx +1 -1
  1399. package/src/scroll/useScrollLock.ts +2 -3
  1400. package/src/searching/caseInsensitive.ts +9 -13
  1401. package/src/searching/fuzzy.ts +4 -5
  1402. package/src/searching/toSearchQuery.ts +1 -1
  1403. package/src/searching/types.ts +2 -2
  1404. package/src/searching/useFuzzyMatch.ts +3 -3
  1405. package/src/searching/utils.ts +3 -3
  1406. package/src/segmented-button/SegmentedButton.tsx +3 -4
  1407. package/src/segmented-button/SegmentedButtonContainer.tsx +3 -4
  1408. package/src/segmented-button/segmentedButtonContainerStyles.ts +2 -2
  1409. package/src/segmented-button/segmentedButtonStyles.ts +2 -2
  1410. package/src/sheet/Sheet.tsx +1 -1
  1411. package/src/sheet/styles.ts +3 -3
  1412. package/src/snackbar/DefaultToastRenderer.tsx +2 -2
  1413. package/src/snackbar/Snackbar.tsx +3 -4
  1414. package/src/snackbar/Toast.tsx +3 -3
  1415. package/src/snackbar/ToastActionButton.tsx +2 -2
  1416. package/src/snackbar/ToastCloseButton.tsx +2 -2
  1417. package/src/snackbar/ToastContent.tsx +2 -2
  1418. package/src/snackbar/ToastManager.tsx +30 -24
  1419. package/src/snackbar/ToastManagerProvider.tsx +6 -6
  1420. package/src/snackbar/__tests__/ToastManagerProvider.tsx +34 -0
  1421. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +21 -21
  1422. package/src/snackbar/snackbarStyles.ts +4 -5
  1423. package/src/snackbar/toastContentStyles.ts +2 -2
  1424. package/src/snackbar/toastStyles.ts +2 -2
  1425. package/src/snackbar/useCurrentToastActions.ts +3 -3
  1426. package/src/suspense/CircularProgressSuspense.tsx +3 -4
  1427. package/src/suspense/NullSuspense.tsx +3 -4
  1428. package/src/table/Table.tsx +1 -2
  1429. package/src/table/TableCell.tsx +7 -7
  1430. package/src/table/TableCellContent.tsx +3 -3
  1431. package/src/table/TableCheckbox.tsx +11 -15
  1432. package/src/table/TableContainerProvider.tsx +3 -3
  1433. package/src/table/TableFooter.tsx +2 -2
  1434. package/src/table/TableHeader.tsx +2 -2
  1435. package/src/table/TableRadio.tsx +7 -9
  1436. package/src/table/tableCellStyles.ts +2 -2
  1437. package/src/table/tableContainerStyles.ts +2 -2
  1438. package/src/table/tableFooterStyles.ts +1 -1
  1439. package/src/table/tableHeaderStyles.ts +2 -2
  1440. package/src/table/tableRowStyles.ts +2 -2
  1441. package/src/table/tableStyles.ts +2 -2
  1442. package/src/table/types.ts +7 -9
  1443. package/src/tabs/Tab.tsx +4 -4
  1444. package/src/tabs/TabList.tsx +2 -2
  1445. package/src/tabs/TabListScrollButton.tsx +3 -3
  1446. package/src/tabs/tabIndicatorStyles.ts +2 -2
  1447. package/src/tabs/tabListScrollButtonStyles.ts +4 -4
  1448. package/src/tabs/tabListStyles.ts +2 -2
  1449. package/src/tabs/tabStyles.ts +2 -2
  1450. package/src/tabs/useTabs.ts +16 -21
  1451. package/src/tabs/utils.ts +3 -3
  1452. package/src/test-utils/ResizeObserver.ts +9 -11
  1453. package/src/test-utils/matchMedia.ts +13 -17
  1454. package/src/test-utils/render.tsx +2 -2
  1455. package/src/test-utils/timers.ts +2 -3
  1456. package/src/theme/LocalStorageColorSchemeProvider.tsx +2 -2
  1457. package/src/theme/ThemeProvider.tsx +18 -21
  1458. package/src/theme/types.ts +3 -3
  1459. package/src/theme/useCSSVariables.ts +8 -10
  1460. package/src/theme/useColorScheme.ts +6 -7
  1461. package/src/theme/useColorSchemeMetaTag.ts +2 -2
  1462. package/src/theme/useColorSchemeProvider.ts +2 -2
  1463. package/src/theme/usePrefersColorScheme.ts +1 -1
  1464. package/src/theme/utils.ts +1 -1
  1465. package/src/tooltip/Tooltip.tsx +3 -5
  1466. package/src/tooltip/TooltipHoverModeProvider.tsx +5 -6
  1467. package/src/tooltip/constants.ts +9 -9
  1468. package/src/tooltip/tooltipStyles.ts +2 -2
  1469. package/src/tooltip/useTooltip.ts +18 -26
  1470. package/src/tooltip/useTooltipPosition.ts +4 -4
  1471. package/src/transition/CSSTransition.tsx +3 -4
  1472. package/src/transition/Collapse.tsx +5 -8
  1473. package/src/transition/CrossFade.tsx +5 -8
  1474. package/src/transition/ScaleTransition.tsx +7 -10
  1475. package/src/transition/SkeletonPlaceholder.tsx +4 -6
  1476. package/src/transition/Slide.tsx +2 -2
  1477. package/src/transition/SlideContainer.tsx +9 -13
  1478. package/src/transition/collapseStyles.ts +2 -2
  1479. package/src/transition/config.ts +2 -2
  1480. package/src/transition/skeletonPlaceholderUtils.ts +3 -3
  1481. package/src/transition/types.ts +34 -37
  1482. package/src/transition/useCSSTransition.ts +4 -7
  1483. package/src/transition/useCarousel.ts +6 -7
  1484. package/src/transition/useCollapseTransition.ts +10 -13
  1485. package/src/transition/useCrossFadeTransition.ts +5 -6
  1486. package/src/transition/useMaxWidthTransition.ts +2 -2
  1487. package/src/transition/useScaleTransition.ts +8 -11
  1488. package/src/transition/useSkeletonPlaceholder.ts +6 -10
  1489. package/src/transition/useSlideTransition.ts +5 -6
  1490. package/src/transition/useTransition.ts +1 -1
  1491. package/src/transition/utils.ts +6 -6
  1492. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  1493. package/src/tree/Tree.tsx +8 -12
  1494. package/src/tree/TreeGroup.tsx +3 -3
  1495. package/src/tree/TreeItem.tsx +3 -4
  1496. package/src/tree/TreeItemExpander.tsx +2 -2
  1497. package/src/tree/TreeProvider.tsx +6 -6
  1498. package/src/tree/styles.ts +10 -10
  1499. package/src/tree/types.ts +6 -7
  1500. package/src/tree/useTree.ts +4 -5
  1501. package/src/tree/useTreeExpansion.ts +2 -2
  1502. package/src/tree/useTreeItems.ts +7 -7
  1503. package/src/tree/useTreeMovement.ts +5 -5
  1504. package/src/tree/useTreeSelection.ts +2 -2
  1505. package/src/tree/utils.ts +2 -2
  1506. package/src/types.ts +14 -16
  1507. package/src/typography/SrOnly.tsx +1 -2
  1508. package/src/typography/TextContainer.tsx +7 -57
  1509. package/src/typography/Typography.tsx +8 -149
  1510. package/src/typography/WritingDirectionProvider.tsx +10 -13
  1511. package/src/typography/__tests__/TextContainer.tsx +2 -1
  1512. package/src/typography/__tests__/Typography.tsx +2 -1
  1513. package/src/typography/textContainerStyles.ts +52 -0
  1514. package/src/typography/typographyStyles.ts +143 -0
  1515. package/src/useAsyncAction.ts +7 -9
  1516. package/src/useDebouncedFunction.ts +3 -4
  1517. package/src/useDropzone.ts +9 -14
  1518. package/src/useElementSize.ts +31 -6
  1519. package/src/useEnsuredId.ts +2 -3
  1520. package/src/useEnsuredRef.ts +3 -4
  1521. package/src/useEnsuredState.ts +2 -2
  1522. package/src/useHtmlClassName.ts +1 -1
  1523. package/src/useIntersectionObserver.ts +13 -20
  1524. package/src/useLocalStorage.ts +17 -22
  1525. package/src/usePageInactive.ts +3 -3
  1526. package/src/useResizeListener.ts +3 -4
  1527. package/src/useResizeObserver.ts +8 -10
  1528. package/src/useThrottledFunction.ts +3 -4
  1529. package/src/useToggle.ts +2 -3
  1530. package/src/useUnmounted.ts +2 -3
  1531. package/src/useWindowSize.ts +3 -4
  1532. package/src/utils/RenderRecursively.tsx +42 -9
  1533. package/src/utils/__tests__/RenderRecursively.tsx +1 -1
  1534. package/src/utils/alphaNumericSort.ts +6 -11
  1535. package/src/utils/applyRef.ts +1 -2
  1536. package/src/utils/bem.ts +2 -3
  1537. package/src/utils/getClientPosition.ts +4 -4
  1538. package/src/utils/getMiddleOfRange.ts +2 -2
  1539. package/src/utils/getPercentage.ts +3 -4
  1540. package/src/utils/getRangeDefaultValue.ts +2 -2
  1541. package/src/utils/getRangeSteps.ts +3 -4
  1542. package/src/utils/identity.ts +1 -1
  1543. package/src/utils/isElementVisible.ts +3 -4
  1544. package/src/utils/loop.ts +2 -2
  1545. package/src/utils/nearest.ts +3 -4
  1546. package/src/utils/parseCssLengthUnit.ts +2 -4
  1547. package/src/utils/randomInt.ts +2 -2
  1548. package/src/utils/wait.ts +2 -3
  1549. package/src/utils/withinRange.ts +3 -4
  1550. package/src/window-splitter/WindowSplitter.tsx +5 -5
  1551. package/src/window-splitter/useWindowSplitter.ts +6 -7
  1552. package/tsconfig.types.json +1 -1
  1553. package/tsdoc.json +14 -0
  1554. package/.turbo/turbo-typecheck.log +0 -4
  1555. package/dist/index.d.ts +0 -344
  1556. package/dist/index.js +0 -345
  1557. package/dist/index.js.map +0 -1
  1558. package/src/index.ts +0 -347
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabs/useTabList.ts"],"sourcesContent":["\"use client\";\nimport type {\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n} from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport type {\n KeyboardMovementContext,\n KeyboardMovementProps,\n} from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useResizeObserver } from \"../useResizeObserver.js\";\nimport { getTabRoleOnly, scrollTabIntoView } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tab-size\"?: string;\n \"--rmd-tab-offset\"?: string | number;\n \"--rmd-tab-indicator-background\"?: string;\n }\n}\n\nconst TAB_SIZE_VAR = \"--rmd-tab-size\";\nconst TAB_OFFSET_VAR = \"--rmd-tab-offset\";\n\nconst noop = (): void => {\n // do nothing\n};\n\nexport type TabWidthVar = typeof TAB_SIZE_VAR;\nexport type TabOffsetVar = typeof TAB_OFFSET_VAR;\n\nexport type IndicatorCSSProperties = CSSProperties &\n Record<TabWidthVar | TabOffsetVar, string>;\n\nexport interface TabListHookOptions {\n ref: Ref<HTMLDivElement> | undefined;\n style: CSSProperties | undefined;\n activeIndex: number;\n setActiveIndex(nextActiveIndex: number): void;\n scrollButtons: boolean;\n activationMode: \"manual\" | \"automatic\";\n vertical: boolean;\n onClick: MouseEventHandler<HTMLDivElement> | undefined;\n onFocus: FocusEventHandler<HTMLDivElement> | undefined;\n onKeyDown: KeyboardEventHandler<HTMLDivElement> | undefined;\n disableTransition: boolean;\n}\n\nexport interface TabListHookReturnValue {\n elementProps: KeyboardMovementProps<HTMLDivElement> & {\n \"aria-orientation\": \"horizontal\" | \"vertical\";\n style: CSSProperties;\n ref: Ref<HTMLDivElement>;\n onClick: MouseEventHandler<HTMLDivElement>;\n };\n movementContext: KeyboardMovementContext;\n backwardProps: {\n ref: RefObject<HTMLDivElement>;\n type: \"back\";\n vertical: boolean;\n };\n forwardProps: {\n ref: RefObject<HTMLDivElement>;\n type: \"forward\";\n vertical: boolean;\n };\n}\n\n/**\n * @internal\n */\nexport function useTabList(\n options: TabListHookOptions\n): TabListHookReturnValue {\n const {\n ref: propRef,\n style,\n activeIndex,\n scrollButtons,\n onClick = noop,\n onFocus,\n onKeyDown,\n activationMode,\n vertical,\n setActiveIndex,\n disableTransition,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n\n const [indicatorStyles, setIndicatorStyles] =\n useState<IndicatorCSSProperties>(() => {\n const tabWidth = `${100 / 3}%`;\n return {\n [TAB_SIZE_VAR]: tabWidth,\n [TAB_OFFSET_VAR]: \"0px\",\n };\n });\n\n const [nodeRef, ref] = useEnsuredRef(propRef);\n const tabListRef = useResizeObserver({\n ref,\n disabled: disableTransition,\n onUpdate: useCallback(\n (entry) => {\n // this is kind of hacky -- the styles should update when switching between\n // RTL, but the RTL state isn't required for any styles. Just reference it\n // so that the hooks eslint rule doesn't show a warning...\n isRTL;\n\n const activeTab = getTabRoleOnly(entry.target)[activeIndex];\n if (!activeTab) {\n return;\n }\n\n const size = vertical ? activeTab.offsetHeight : activeTab.offsetWidth;\n const offset = vertical ? activeTab.offsetTop : activeTab.offsetLeft;\n const cssVars: IndicatorCSSProperties = {\n [TAB_SIZE_VAR]: `${size}px`,\n [TAB_OFFSET_VAR]: `${offset}px`,\n };\n\n setIndicatorStyles((prevStyles) => {\n if (\n prevStyles &&\n prevStyles[TAB_SIZE_VAR] === cssVars[TAB_SIZE_VAR] &&\n prevStyles[TAB_OFFSET_VAR] === cssVars[TAB_OFFSET_VAR]\n ) {\n return prevStyles;\n }\n\n return cssVars;\n });\n },\n [activeIndex, isRTL, vertical]\n ),\n });\n const forwardRef = useRef<HTMLDivElement>(null);\n const backwardRef = useRef<HTMLDivElement>(null);\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick(event) {\n onClick(event);\n if (event.isPropagationStopped() || !(event.target instanceof Element)) {\n return;\n }\n\n const clickedTab = event.target.closest(\"[role='tab']\");\n const tabs = getTabRoleOnly(event.currentTarget);\n const i = tabs.findIndex((tab) => tab === clickedTab);\n if (i !== -1) {\n setActiveIndex(i);\n }\n },\n onFocus,\n onKeyDown,\n onFocusChange(event) {\n const { index } = event;\n if (activationMode === \"automatic\") {\n setActiveIndex(index);\n } else if (scrollButtons) {\n scrollTabIntoView({\n activeIndex: index,\n backward: backwardRef.current,\n container: nodeRef.current,\n forward: forwardRef.current,\n vertical,\n });\n }\n },\n loopable: true,\n searchable: true,\n horizontal: !vertical,\n includeDisabled: true,\n tabIndexBehavior: \"roving\",\n getFocusableElements: getTabRoleOnly,\n });\n\n useEffect(() => {\n scrollTabIntoView({\n activeIndex,\n backward: backwardRef.current,\n container: nodeRef.current,\n forward: forwardRef.current,\n vertical,\n });\n }, [activeIndex, nodeRef, vertical]);\n\n return {\n elementProps: {\n \"aria-orientation\": vertical ? \"vertical\" : \"horizontal\",\n ref: tabListRef,\n style: {\n ...style,\n ...(disableTransition ? undefined : indicatorStyles),\n },\n ...movementProps,\n },\n backwardProps: {\n ref: backwardRef,\n type: \"back\",\n vertical,\n },\n forwardProps: {\n ref: forwardRef,\n type: \"forward\",\n vertical,\n },\n movementContext,\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useKeyboardMovementProvider","useDir","useEnsuredRef","useResizeObserver","getTabRoleOnly","scrollTabIntoView","TAB_SIZE_VAR","TAB_OFFSET_VAR","noop","useTabList","options","ref","propRef","style","activeIndex","scrollButtons","onClick","onFocus","onKeyDown","activationMode","vertical","setActiveIndex","disableTransition","isRTL","dir","indicatorStyles","setIndicatorStyles","tabWidth","nodeRef","tabListRef","disabled","onUpdate","entry","activeTab","target","size","offsetHeight","offsetWidth","offset","offsetTop","offsetLeft","cssVars","prevStyles","forwardRef","backwardRef","movementProps","movementContext","event","isPropagationStopped","Element","clickedTab","closest","tabs","currentTarget","i","findIndex","tab","onFocusChange","index","backward","current","container","forward","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","getFocusableElements","elementProps","undefined","backwardProps","type","forwardProps"],"mappings":"AAAA;AASA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AAKjE,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,MAAM,QAAQ,4CAA4C;AACnE,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,cAAc,EAAEC,iBAAiB,QAAQ,aAAa;AAU/D,MAAMC,eAAe;AACrB,MAAMC,iBAAiB;AAEvB,MAAMC,OAAO;AACX,aAAa;AACf;AA0CA;;CAEC,GACD,OAAO,SAASC,WACdC,OAA2B;IAE3B,MAAM,EACJC,KAAKC,OAAO,EACZC,KAAK,EACLC,WAAW,EACXC,aAAa,EACbC,UAAUR,IAAI,EACdS,OAAO,EACPC,SAAS,EACTC,cAAc,EACdC,QAAQ,EACRC,cAAc,EACdC,iBAAiB,EAClB,GAAGZ;IAEJ,MAAMa,QAAQtB,SAASuB,GAAG,KAAK;IAE/B,MAAM,CAACC,iBAAiBC,mBAAmB,GACzC3B,SAAiC;QAC/B,MAAM4B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9B,OAAO;YACL,CAACrB,aAAa,EAAEqB;YAChB,CAACpB,eAAe,EAAE;QACpB;IACF;IAEF,MAAM,CAACqB,SAASjB,IAAI,GAAGT,cAAcU;IACrC,MAAMiB,aAAa1B,kBAAkB;QACnCQ;QACAmB,UAAUR;QACVS,UAAUnC,YACR,CAACoC;YACC,2EAA2E;YAC3E,0EAA0E;YAC1E,0DAA0D;YAC1DT;YAEA,MAAMU,YAAY7B,eAAe4B,MAAME,MAAM,CAAC,CAACpB,YAAY;YAC3D,IAAI,CAACmB,WAAW;gBACd;YACF;YAEA,MAAME,OAAOf,WAAWa,UAAUG,YAAY,GAAGH,UAAUI,WAAW;YACtE,MAAMC,SAASlB,WAAWa,UAAUM,SAAS,GAAGN,UAAUO,UAAU;YACpE,MAAMC,UAAkC;gBACtC,CAACnC,aAAa,EAAE,CAAC,EAAE6B,KAAK,EAAE,CAAC;gBAC3B,CAAC5B,eAAe,EAAE,CAAC,EAAE+B,OAAO,EAAE,CAAC;YACjC;YAEAZ,mBAAmB,CAACgB;gBAClB,IACEA,cACAA,UAAU,CAACpC,aAAa,KAAKmC,OAAO,CAACnC,aAAa,IAClDoC,UAAU,CAACnC,eAAe,KAAKkC,OAAO,CAAClC,eAAe,EACtD;oBACA,OAAOmC;gBACT;gBAEA,OAAOD;YACT;QACF,GACA;YAAC3B;YAAaS;YAAOH;SAAS;IAElC;IACA,MAAMuB,aAAa7C,OAAuB;IAC1C,MAAM8C,cAAc9C,OAAuB;IAC3C,MAAM,EAAE+C,aAAa,EAAEC,eAAe,EAAE,GAAG9C,4BAA4B;QACrEgB,SAAQ+B,KAAK;YACX/B,QAAQ+B;YACR,IAAIA,MAAMC,oBAAoB,MAAM,CAAED,CAAAA,MAAMb,MAAM,YAAYe,OAAM,GAAI;gBACtE;YACF;YAEA,MAAMC,aAAaH,MAAMb,MAAM,CAACiB,OAAO,CAAC;YACxC,MAAMC,OAAOhD,eAAe2C,MAAMM,aAAa;YAC/C,MAAMC,IAAIF,KAAKG,SAAS,CAAC,CAACC,MAAQA,QAAQN;YAC1C,IAAII,MAAM,CAAC,GAAG;gBACZjC,eAAeiC;YACjB;QACF;QACArC;QACAC;QACAuC,eAAcV,KAAK;YACjB,MAAM,EAAEW,KAAK,EAAE,GAAGX;YAClB,IAAI5B,mBAAmB,aAAa;gBAClCE,eAAeqC;YACjB,OAAO,IAAI3C,eAAe;gBACxBV,kBAAkB;oBAChBS,aAAa4C;oBACbC,UAAUf,YAAYgB,OAAO;oBAC7BC,WAAWjC,QAAQgC,OAAO;oBAC1BE,SAASnB,WAAWiB,OAAO;oBAC3BxC;gBACF;YACF;QACF;QACA2C,UAAU;QACVC,YAAY;QACZC,YAAY,CAAC7C;QACb8C,iBAAiB;QACjBC,kBAAkB;QAClBC,sBAAsBhE;IACxB;IAEAP,UAAU;QACRQ,kBAAkB;YAChBS;YACA6C,UAAUf,YAAYgB,OAAO;YAC7BC,WAAWjC,QAAQgC,OAAO;YAC1BE,SAASnB,WAAWiB,OAAO;YAC3BxC;QACF;IACF,GAAG;QAACN;QAAac;QAASR;KAAS;IAEnC,OAAO;QACLiD,cAAc;YACZ,oBAAoBjD,WAAW,aAAa;YAC5CT,KAAKkB;YACLhB,OAAO;gBACL,GAAGA,KAAK;gBACR,GAAIS,oBAAoBgD,YAAY7C,eAAe;YACrD;YACA,GAAGoB,aAAa;QAClB;QACA0B,eAAe;YACb5D,KAAKiC;YACL4B,MAAM;YACNpD;QACF;QACAqD,cAAc;YACZ9D,KAAKgC;YACL6B,MAAM;YACNpD;QACF;QACA0B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/tabs/useTabList.ts"],"sourcesContent":["\"use client\";\nimport type {\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n} from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport type {\n KeyboardMovementContext,\n KeyboardMovementProps,\n} from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useResizeObserver } from \"../useResizeObserver.js\";\nimport { getTabRoleOnly, scrollTabIntoView } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tab-size\"?: string;\n \"--rmd-tab-offset\"?: string | number;\n \"--rmd-tab-indicator-background\"?: string;\n }\n}\n\nconst TAB_SIZE_VAR = \"--rmd-tab-size\";\nconst TAB_OFFSET_VAR = \"--rmd-tab-offset\";\n\nconst noop = (): void => {\n // do nothing\n};\n\nexport type TabWidthVar = typeof TAB_SIZE_VAR;\nexport type TabOffsetVar = typeof TAB_OFFSET_VAR;\n\nexport type IndicatorCSSProperties = CSSProperties &\n Record<TabWidthVar | TabOffsetVar, string>;\n\nexport interface TabListHookOptions {\n ref: Ref<HTMLDivElement> | undefined;\n style: CSSProperties | undefined;\n activeIndex: number;\n setActiveIndex(nextActiveIndex: number): void;\n scrollButtons: boolean;\n activationMode: \"manual\" | \"automatic\";\n vertical: boolean;\n onClick: MouseEventHandler<HTMLDivElement> | undefined;\n onFocus: FocusEventHandler<HTMLDivElement> | undefined;\n onKeyDown: KeyboardEventHandler<HTMLDivElement> | undefined;\n disableTransition: boolean;\n}\n\nexport interface TabListHookReturnValue {\n elementProps: KeyboardMovementProps<HTMLDivElement> & {\n \"aria-orientation\": \"horizontal\" | \"vertical\";\n style: CSSProperties;\n ref: Ref<HTMLDivElement>;\n onClick: MouseEventHandler<HTMLDivElement>;\n };\n movementContext: KeyboardMovementContext;\n backwardProps: {\n ref: RefObject<HTMLDivElement>;\n type: \"back\";\n vertical: boolean;\n };\n forwardProps: {\n ref: RefObject<HTMLDivElement>;\n type: \"forward\";\n vertical: boolean;\n };\n}\n\n/**\n * @internal\n */\nexport function useTabList(\n options: TabListHookOptions\n): TabListHookReturnValue {\n const {\n ref: propRef,\n style,\n activeIndex,\n scrollButtons,\n onClick = noop,\n onFocus,\n onKeyDown,\n activationMode,\n vertical,\n setActiveIndex,\n disableTransition,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n\n const [indicatorStyles, setIndicatorStyles] =\n useState<IndicatorCSSProperties>(() => {\n const tabWidth = `${100 / 3}%`;\n return {\n [TAB_SIZE_VAR]: tabWidth,\n [TAB_OFFSET_VAR]: \"0px\",\n };\n });\n\n const [nodeRef, ref] = useEnsuredRef(propRef);\n const tabListRef = useResizeObserver({\n ref,\n disabled: disableTransition,\n onUpdate: useCallback(\n (entry) => {\n // this is kind of hacky -- the styles should update when switching between\n // RTL, but the RTL state isn't required for any styles. Just reference it\n // so that the hooks eslint rule doesn't show a warning...\n isRTL;\n\n const activeTab = getTabRoleOnly(entry.target)[activeIndex];\n if (!activeTab) {\n return;\n }\n\n const size = vertical ? activeTab.offsetHeight : activeTab.offsetWidth;\n const offset = vertical ? activeTab.offsetTop : activeTab.offsetLeft;\n const cssVars: IndicatorCSSProperties = {\n [TAB_SIZE_VAR]: `${size}px`,\n [TAB_OFFSET_VAR]: `${offset}px`,\n };\n\n setIndicatorStyles((prevStyles) => {\n if (\n prevStyles &&\n prevStyles[TAB_SIZE_VAR] === cssVars[TAB_SIZE_VAR] &&\n prevStyles[TAB_OFFSET_VAR] === cssVars[TAB_OFFSET_VAR]\n ) {\n return prevStyles;\n }\n\n return cssVars;\n });\n },\n [activeIndex, isRTL, vertical]\n ),\n });\n const forwardRef = useRef<HTMLDivElement>(null);\n const backwardRef = useRef<HTMLDivElement>(null);\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick(event) {\n onClick(event);\n if (event.isPropagationStopped() || !(event.target instanceof Element)) {\n return;\n }\n\n const clickedTab = event.target.closest(\"[role='tab']\");\n const tabs = getTabRoleOnly(event.currentTarget);\n const i = tabs.findIndex((tab) => tab === clickedTab);\n if (i !== -1) {\n setActiveIndex(i);\n }\n },\n onFocus,\n onKeyDown,\n onFocusChange(event) {\n const { index } = event;\n if (activationMode === \"automatic\") {\n setActiveIndex(index);\n } else if (scrollButtons) {\n scrollTabIntoView({\n activeIndex: index,\n backward: backwardRef.current,\n container: nodeRef.current,\n forward: forwardRef.current,\n vertical,\n });\n }\n },\n loopable: true,\n searchable: true,\n horizontal: !vertical,\n includeDisabled: true,\n tabIndexBehavior: \"roving\",\n getFocusableElements: getTabRoleOnly,\n });\n\n useEffect(() => {\n scrollTabIntoView({\n activeIndex,\n backward: backwardRef.current,\n container: nodeRef.current,\n forward: forwardRef.current,\n vertical,\n });\n }, [activeIndex, nodeRef, vertical]);\n\n return {\n elementProps: {\n \"aria-orientation\": vertical ? \"vertical\" : \"horizontal\",\n ref: tabListRef,\n style: {\n ...style,\n ...(disableTransition ? undefined : indicatorStyles),\n },\n ...movementProps,\n },\n backwardProps: {\n ref: backwardRef,\n type: \"back\",\n vertical,\n },\n forwardProps: {\n ref: forwardRef,\n type: \"forward\",\n vertical,\n },\n movementContext,\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useKeyboardMovementProvider","useDir","useEnsuredRef","useResizeObserver","getTabRoleOnly","scrollTabIntoView","TAB_SIZE_VAR","TAB_OFFSET_VAR","noop","useTabList","options","ref","propRef","style","activeIndex","scrollButtons","onClick","onFocus","onKeyDown","activationMode","vertical","setActiveIndex","disableTransition","isRTL","dir","indicatorStyles","setIndicatorStyles","tabWidth","nodeRef","tabListRef","disabled","onUpdate","entry","activeTab","target","size","offsetHeight","offsetWidth","offset","offsetTop","offsetLeft","cssVars","prevStyles","forwardRef","backwardRef","movementProps","movementContext","event","isPropagationStopped","Element","clickedTab","closest","tabs","currentTarget","i","findIndex","tab","onFocusChange","index","backward","current","container","forward","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","getFocusableElements","elementProps","undefined","backwardProps","type","forwardProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -2,7 +2,7 @@ import type { Dispatch, Ref } from "react";
2
2
  import type { SlideDirection } from "../transition/SlideContainer.js";
3
3
  import type { UseStateInitializer, UseStateSetter } from "../types.js";
4
4
  /**
5
- * @remarks \@since 6.0.0
5
+ * @since 6.0.0
6
6
  */
7
7
  export interface TabsHookOptions<TabValue extends string | number = number> {
8
8
  /**
@@ -44,7 +44,7 @@ export interface TabsHookOptions<TabValue extends string | number = number> {
44
44
  defaultActiveTab?: UseStateInitializer<TabValue>;
45
45
  }
46
46
  /**
47
- * @remarks \@since 6.0.0
47
+ * @since 6.0.0
48
48
  */
49
49
  export interface ProvidedTabProps {
50
50
  "aria-controls": string;
@@ -52,14 +52,14 @@ export interface ProvidedTabProps {
52
52
  active: boolean;
53
53
  }
54
54
  /**
55
- * @remarks \@since 6.0.0
55
+ * @since 6.0.0
56
56
  */
57
57
  export interface ProvidedTabListProps {
58
58
  activeIndex: number;
59
59
  setActiveIndex: Dispatch<number>;
60
60
  }
61
61
  /**
62
- * @remarks \@since 6.0.0
62
+ * @since 6.0.0
63
63
  */
64
64
  export interface ProvidedTabPanelProps {
65
65
  "aria-labelledby": string;
@@ -68,14 +68,14 @@ export interface ProvidedTabPanelProps {
68
68
  active: boolean;
69
69
  }
70
70
  /**
71
- * @remarks \@since 6.0.0
71
+ * @since 6.0.0
72
72
  */
73
73
  export interface ProvidedTabPanelsProps<E extends HTMLElement> {
74
74
  ref: Ref<E>;
75
75
  direction: SlideDirection;
76
76
  }
77
77
  /**
78
- * @remarks \@since 6.0.0
78
+ * @since 6.0.0
79
79
  */
80
80
  export interface TabsImplementation<TabValue extends string | number = number> {
81
81
  direction: SlideDirection;
@@ -88,8 +88,7 @@ export interface TabsImplementation<TabValue extends string | number = number> {
88
88
  getTabPanelsProps<E extends HTMLElement>(): ProvidedTabPanelsProps<E>;
89
89
  }
90
90
  /**
91
- * @example
92
- * Super Simple
91
+ * @example Super Simple
93
92
  * ```tsx
94
93
  * import { TabList, Tab, SlideContainer, Slide, useTabs } from "@react-md/core";
95
94
  * import type { ReactElement } from "react";
@@ -123,7 +122,7 @@ export interface TabsImplementation<TabValue extends string | number = number> {
123
122
  * }
124
123
  * ```
125
124
  *
126
- * @remarks \@since 6.0.0
125
+ * @since 6.0.0
127
126
  */
128
127
  export declare function useTabs(): TabsImplementation<number> & {
129
128
  activeTab: number;
@@ -133,8 +132,7 @@ export declare function useTabs(): TabsImplementation<number> & {
133
132
  * The tab behavior can be controlled by providing the `activeTab` and
134
133
  * `setActiveTab` options.
135
134
  *
136
- * @example
137
- * Controlled
135
+ * @example Controlled
138
136
  * ```tsx
139
137
  * import { TabList, Tab, SlideContainer, Slide, useTabs } from "@react-md/core";
140
138
  * import type { ReactElement } from "react";
@@ -172,7 +170,7 @@ export declare function useTabs(): TabsImplementation<number> & {
172
170
  * }
173
171
  * ```
174
172
  *
175
- * @remarks \@since 6.0.0
173
+ * @since 6.0.0
176
174
  */
177
175
  export declare function useTabs<TabValue extends number>(options: TabsHookOptions<TabValue> & {
178
176
  tabs?: readonly TabValue[];
@@ -196,8 +194,7 @@ export declare function useTabs<TabValue extends number>(options: TabsHookOption
196
194
  * When using string values, the {@link TabsHookOptions.tabs} option **must** be
197
195
  * provided to determine the correct active tab index.
198
196
  *
199
- * @example
200
- * String Value Simple
197
+ * @example String Value Simple
201
198
  * ```tsx
202
199
  * import { TabList, Tab, SlideContainer, Slide, useTabs } from "@react-md/core";
203
200
  * import type { ReactElement } from "react";
@@ -233,7 +230,7 @@ export declare function useTabs<TabValue extends number>(options: TabsHookOption
233
230
  * }
234
231
  * ```
235
232
  *
236
- * @remarks \@since 6.0.0
233
+ * @since 6.0.0
237
234
  */
238
235
  export declare function useTabs<TabValue extends string>(options: TabsHookOptions<TabValue> & {
239
236
  tabs: readonly TabValue[];
@@ -248,8 +245,7 @@ export declare function useTabs<TabValue extends string>(options: TabsHookOption
248
245
  * When using string values, the {@link TabsHookOptions.tabs} option **must** be
249
246
  * provided to determine the correct active tab index.
250
247
  *
251
- * @example
252
- * String Controlled Simple
248
+ * @example String Controlled Simple
253
249
  * ```tsx
254
250
  * import { TabList, Tab, SlideContainer, Slide, useTabs } from "@react-md/core";
255
251
  * import type { ReactElement } from "react";
@@ -289,8 +285,7 @@ export declare function useTabs<TabValue extends string>(options: TabsHookOption
289
285
  * }
290
286
  * ```
291
287
  *
292
- * @example
293
- * Navigation Tabs
288
+ * @example Navigation Tabs
294
289
  * ```tsx
295
290
  * "use client";
296
291
  * import {
@@ -374,7 +369,7 @@ export declare function useTabs<TabValue extends string>(options: TabsHookOption
374
369
  * }
375
370
  * ```
376
371
  *
377
- * @remarks \@since 6.0.0
372
+ * @since 6.0.0
378
373
  */
379
374
  export declare function useTabs<TabValue extends string>(options: TabsHookOptions<TabValue> & {
380
375
  tabs: readonly TabValue[];
@@ -8,7 +8,7 @@ const PANEL_PREFIX = "panel-";
8
8
  * This hook can be uncontrolled/controlled and supports strongly typing the tab
9
9
  * values if needed. Check out the overloads for examples.
10
10
  *
11
- * @remarks \@since 6.0.0
11
+ * @since 6.0.0
12
12
  */ export function useTabs(options = {}) {
13
13
  const { baseId: propBaseId, disableScrollFix, tabs = EMPTY_LIST, activeTab: propActiveTab, setActiveTab: propSetActiveTab, defaultActiveTab } = options;
14
14
  const baseId = useEnsuredId(propBaseId, "tab");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabs/useTabs.ts"],"sourcesContent":["\"use client\";\nimport type { Dispatch, Ref, RefObject } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { SlideDirection } from \"../transition/SlideContainer.js\";\nimport type { UseStateInitializer, UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\n\nconst EMPTY_LIST = [] as const;\nconst PANEL_PREFIX = \"panel-\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TabsHookOptions<TabValue extends string | number = number> {\n /**\n * This can be used to generate the ids for the different components within\n * the tab widget.\n *\n * @defaultValue `\"tab-\" + useId()`\n */\n baseId?: string;\n\n /**\n * Set this to `true` if changing active tabs should no longer attempt to\n * scroll to the top of the tab panels container when using the\n * {@link TabsImplementation.getTabPanelsProps}.\n *\n * @defaultValue `false`\n */\n disableScrollFix?: boolean;\n\n /**\n * Set this to an **ordered** list of tab values when:\n * - using a `string` tab value\n * - using a `number` tab value does not represent a tab index\n *\n * See the examples on the {@link useTabs} for usage.\n */\n tabs?: readonly TabValue[];\n\n /**\n * Provide this value and {@link setActiveTab} to control the active tab\n * behavior.\n */\n activeTab?: TabValue;\n\n /** @see {@link activeTab} */\n setActiveTab?: Dispatch<TabValue>;\n\n /**\n * Set this to the default tab index when not controlling the active tab value\n * through {@link activeTab} and {@link setActiveTab}.\n *\n * @defaultValue `0`\n */\n defaultActiveTab?: UseStateInitializer<TabValue>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedTabProps {\n \"aria-controls\": string;\n id: string;\n active: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedTabListProps {\n activeIndex: number;\n setActiveIndex: Dispatch<number>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedTabPanelProps {\n \"aria-labelledby\": string;\n id: string;\n role: \"tabpanel\";\n active: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedTabPanelsProps<E extends HTMLElement> {\n ref: Ref<E>;\n direction: SlideDirection;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TabsImplementation<TabValue extends string | number = number> {\n direction: SlideDirection;\n setDirection: UseStateSetter<SlideDirection>;\n activeTab?: TabValue;\n setActiveTab?(nextActiveTab: TabValue): void;\n getTabProps(tabValue: TabValue): ProvidedTabProps;\n getTabListProps(): ProvidedTabListProps;\n getTabPanelProps(tabValue: TabValue): ProvidedTabPanelProps;\n getTabPanelsProps<E extends HTMLElement>(): ProvidedTabPanelsProps<E>;\n}\n\n/**\n * @example\n * Super Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const {\n * activeTab,\n * setActiveTab,\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs();\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <Tab {...getTabProps(0)}>Tab 1</Tab>\n * <Tab {...getTabProps(1)}>Tab 2</Tab>\n * <Tab {...getTabProps(2)}>Tab 3</Tab>\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * <Slide {...getTabPanelProps(0)}>Tab 1 Content</Slide>\n * <Slide {...getTabPanelProps(1)}>Tab 2 Content</Slide>\n * <Slide {...getTabPanelProps(2)}>Tab 3 Content</Slide>\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTabs(): TabsImplementation<number> & {\n activeTab: number;\n setActiveTab: number;\n};\n/**\n * The tab behavior can be controlled by providing the `activeTab` and\n * `setActiveTab` options.\n *\n * @example\n * Controlled\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useState } from \"react\";\n *\n * function Example(): ReactElement {\n * const [activeTab, setActiveTab] = useState(1);\n *\n * const {\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({\n * activeTab,\n * setActiveTab,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <Tab {...getTabProps(0)}>Tab 1</Tab>\n * <Tab {...getTabProps(1)}>Tab 2</Tab>\n * <Tab {...getTabProps(2)}>Tab 3</Tab>\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * <Slide {...getTabPanelProps(0)}>Tab 1 Content</Slide>\n * <Slide {...getTabPanelProps(1)}>Tab 2 Content</Slide>\n * <Slide {...getTabPanelProps(2)}>Tab 3 Content</Slide>\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTabs<TabValue extends number>(\n options: TabsHookOptions<TabValue> & {\n tabs?: readonly TabValue[];\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n defaultActiveTab?: never;\n }\n): TabsImplementation<TabValue> & { activeTab?: never; setActiveTab?: never };\nexport function useTabs<TabValue extends number>(\n options: TabsHookOptions<TabValue> & {\n tabs?: readonly TabValue[];\n activeTab?: never;\n setActiveTab?: never;\n defaultActiveTab?: UseStateInitializer<TabValue>;\n }\n): TabsImplementation<TabValue> & {\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n};\n/**\n * When using string values, the {@link TabsHookOptions.tabs} option **must** be\n * provided to determine the correct active tab index.\n *\n * @example\n * String Value Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const tabs = [\"value-1\", \"value-2\", \"value-3\"];\n *\n * function Example(): ReactElement {\n * const {\n * activeTab,\n * setActiveTab,\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({ tabs });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * {tabs.map((value) => (\n * <Tab key={value} {...getTabProps(value)}>{value}</Tab>\n * ))}\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * {tabs.map((value) => (\n * <Slide key={value}>{value} Content</Slide>\n * ))}\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTabs<TabValue extends string>(\n options: TabsHookOptions<TabValue> & {\n tabs: readonly TabValue[];\n activeTab?: never;\n setActiveTab?: never;\n defaultActiveTab?: UseStateInitializer<TabValue>;\n }\n): TabsImplementation<TabValue> & {\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n};\n/**\n * When using string values, the {@link TabsHookOptions.tabs} option **must** be\n * provided to determine the correct active tab index.\n *\n * @example\n * String Controlled Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const tabs = [\"value-1\", \"value-2\", \"value-3\"] as const;\n *\n * function Example(): ReactElement {\n * const [activeTab, setActiveTab] = useState(tabs[0]);\n *\n * const {\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({\n * tabs,\n * activeTab,\n * setActiveTab,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * {tabs.map((value) => (\n * <Tab key={value} {...getTabProps(value)}>{value}</Tab>\n * ))}\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * {tabs.map((value) => (\n * <Slide key={value}>{value} Content</Slide>\n * ))}\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @example\n * Navigation Tabs\n * ```tsx\n * \"use client\";\n * import {\n * RippleContainer,\n * Tab,\n * TabList,\n * useElementInteraction,\n * useEnsuredId,\n * useHigherContrastChildren,\n * useKeyboardMovementContext,\n * useTabs,\n * } from \"@react-md/core\";\n * import type { LinkProps } from \"next/link\";\n * import Link from \"next/link\";\n * import type { PropsWithChildren, ReactElement } from \"react\";\n * import { usePathname } from \"next/navigation\";\n *\n * interface TabLinkProps extends LinkProps {\n * active: boolean;\n * }\n *\n * function TabLink(props: LinkProps): ReactElement {\n * const {\n * id: propId,\n * children: propChildren,\n * active,\n * className,\n * ...remaining,\n * } = props;\n *\n * const id = useEnsuredId(propId, \"tab\");\n * const { activeDescendantId } = useKeyboardMovementContext();\n * const { handlers, ripples } = useElementInteraction(props);\n * const children = useHigherContrastChildren(propChildren);\n *\n * return (\n * <Link\n * {...props}\n * {...handlers}\n * id={id}\n * aria-selected={active}\n * role=\"tab\"\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * className={tab({\n * className,\n * active,\n * // stacked,\n * // reversed,\n * })}\n * >\n * {children}\n * {ripples}\n * </Link>\n * );\n * }\n *\n * const noop = (): void => {\n * // do nothing\n * };\n *\n * const PATHNAME_TABS = [\"/\", \"/page-1\", \"/page-2\"];\n *\n * function Layout({ children }: PropsWithChildren) {\n * const pathname = usePathname();\n * const { getTabListProps, getTabProps } = useTabs({\n * tabs: PATHNAME_TABS,\n * activeTab: pathname,\n * setActiveTab: noop,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <TabLink {...getTabProps(\"/\")} href=\"/\">Home</TabLink>\n * <TabLink {...getTabProps(\"/page-1\")} href=\"/page-1\">Page 1</TabLink>\n * <TabLink {...getTabProps(\"/page-2\")} href=\"/page-2\">Page 2</TabLink>\n * </TabList>\n * <main>{children}</main>\n * </>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTabs<TabValue extends string>(\n options: TabsHookOptions<TabValue> & {\n tabs: readonly TabValue[];\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n defaultActiveTab?: never;\n }\n): TabsImplementation<TabValue> & { activeTab?: never; setActiveTab?: never };\n/**\n * This hook can be uncontrolled/controlled and supports strongly typing the tab\n * values if needed. Check out the overloads for examples.\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTabs<TabValue extends string | number>(\n options: TabsHookOptions<TabValue> = {}\n): TabsImplementation<TabValue> {\n const {\n baseId: propBaseId,\n disableScrollFix,\n tabs = EMPTY_LIST,\n activeTab: propActiveTab,\n setActiveTab: propSetActiveTab,\n defaultActiveTab,\n } = options;\n\n const baseId = useEnsuredId(propBaseId, \"tab\");\n const [direction, setDirection] = useState<SlideDirection>(\"left\");\n\n const [activeTab, setActiveTab] = useEnsuredState({\n value: propActiveTab,\n setValue: propSetActiveTab,\n defaultValue: defaultActiveTab ?? (0 as TabValue),\n });\n\n const getTabIndex = (tabValue: TabValue): number =>\n typeof tabValue === \"string\" || tabs.length > 0\n ? tabs.indexOf(tabValue)\n : tabValue;\n const getTabId = (tabValue: TabValue, prefix = \"\"): string =>\n `${baseId}-${prefix}${getTabIndex(tabValue) + 1}`;\n\n const activeIndex = getTabIndex(activeTab);\n const tabPanelsRef = useRef<HTMLElement>(null);\n useEffect(() => {\n const container = tabPanelsRef.current;\n if (!container || disableScrollFix) {\n return;\n }\n\n container.scrollTop = 0;\n }, [disableScrollFix, activeTab]);\n\n return {\n activeTab,\n setActiveTab,\n direction,\n setDirection,\n getTabProps(tabValue) {\n return {\n \"aria-controls\": getTabId(tabValue, PANEL_PREFIX),\n id: getTabId(tabValue),\n active: tabValue === activeTab,\n };\n },\n getTabListProps() {\n return {\n activeIndex,\n setActiveIndex: (nextActiveIndex) => {\n setDirection(activeIndex < nextActiveIndex ? \"left\" : \"right\");\n if (typeof activeTab === \"string\" || tabs.length > 0) {\n setActiveTab(tabs[nextActiveIndex]);\n } else {\n setActiveTab(nextActiveIndex as TabValue);\n }\n },\n };\n },\n getTabPanelProps(tabValue) {\n return {\n \"aria-labelledby\": getTabId(tabValue),\n id: getTabId(tabValue, PANEL_PREFIX),\n role: \"tabpanel\",\n active: tabValue === activeTab,\n };\n },\n getTabPanelsProps<E>() {\n return {\n ref: tabPanelsRef as RefObject<E>,\n direction,\n };\n },\n };\n}\n"],"names":["useEffect","useRef","useState","useEnsuredId","useEnsuredState","EMPTY_LIST","PANEL_PREFIX","useTabs","options","baseId","propBaseId","disableScrollFix","tabs","activeTab","propActiveTab","setActiveTab","propSetActiveTab","defaultActiveTab","direction","setDirection","value","setValue","defaultValue","getTabIndex","tabValue","length","indexOf","getTabId","prefix","activeIndex","tabPanelsRef","container","current","scrollTop","getTabProps","id","active","getTabListProps","setActiveIndex","nextActiveIndex","getTabPanelProps","role","getTabPanelsProps","ref"],"mappings":"AAAA;AAEA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AAGpD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,eAAe,QAAQ,wBAAwB;AAExD,MAAMC,aAAa,EAAE;AACrB,MAAMC,eAAe;AA+YrB;;;;;CAKC,GACD,OAAO,SAASC,QACdC,UAAqC,CAAC,CAAC;IAEvC,MAAM,EACJC,QAAQC,UAAU,EAClBC,gBAAgB,EAChBC,OAAOP,UAAU,EACjBQ,WAAWC,aAAa,EACxBC,cAAcC,gBAAgB,EAC9BC,gBAAgB,EACjB,GAAGT;IAEJ,MAAMC,SAASN,aAAaO,YAAY;IACxC,MAAM,CAACQ,WAAWC,aAAa,GAAGjB,SAAyB;IAE3D,MAAM,CAACW,WAAWE,aAAa,GAAGX,gBAAgB;QAChDgB,OAAON;QACPO,UAAUL;QACVM,cAAcL,oBAAqB;IACrC;IAEA,MAAMM,cAAc,CAACC,WACnB,OAAOA,aAAa,YAAYZ,KAAKa,MAAM,GAAG,IAC1Cb,KAAKc,OAAO,CAACF,YACbA;IACN,MAAMG,WAAW,CAACH,UAAoBI,SAAS,EAAE,GAC/C,CAAC,EAAEnB,OAAO,CAAC,EAAEmB,OAAO,EAAEL,YAAYC,YAAY,EAAE,CAAC;IAEnD,MAAMK,cAAcN,YAAYV;IAChC,MAAMiB,eAAe7B,OAAoB;IACzCD,UAAU;QACR,MAAM+B,YAAYD,aAAaE,OAAO;QACtC,IAAI,CAACD,aAAapB,kBAAkB;YAClC;QACF;QAEAoB,UAAUE,SAAS,GAAG;IACxB,GAAG;QAACtB;QAAkBE;KAAU;IAEhC,OAAO;QACLA;QACAE;QACAG;QACAC;QACAe,aAAYV,QAAQ;YAClB,OAAO;gBACL,iBAAiBG,SAASH,UAAUlB;gBACpC6B,IAAIR,SAASH;gBACbY,QAAQZ,aAAaX;YACvB;QACF;QACAwB;YACE,OAAO;gBACLR;gBACAS,gBAAgB,CAACC;oBACfpB,aAAaU,cAAcU,kBAAkB,SAAS;oBACtD,IAAI,OAAO1B,cAAc,YAAYD,KAAKa,MAAM,GAAG,GAAG;wBACpDV,aAAaH,IAAI,CAAC2B,gBAAgB;oBACpC,OAAO;wBACLxB,aAAawB;oBACf;gBACF;YACF;QACF;QACAC,kBAAiBhB,QAAQ;YACvB,OAAO;gBACL,mBAAmBG,SAASH;gBAC5BW,IAAIR,SAASH,UAAUlB;gBACvBmC,MAAM;gBACNL,QAAQZ,aAAaX;YACvB;QACF;QACA6B;YACE,OAAO;gBACLC,KAAKb;gBACLZ;YACF;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/tabs/useTabs.ts"],"sourcesContent":["\"use client\";\nimport type { Dispatch, Ref, RefObject } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { SlideDirection } from \"../transition/SlideContainer.js\";\nimport type { UseStateInitializer, UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\n\nconst EMPTY_LIST = [] as const;\nconst PANEL_PREFIX = \"panel-\";\n\n/**\n * @since 6.0.0\n */\nexport interface TabsHookOptions<TabValue extends string | number = number> {\n /**\n * This can be used to generate the ids for the different components within\n * the tab widget.\n *\n * @defaultValue `\"tab-\" + useId()`\n */\n baseId?: string;\n\n /**\n * Set this to `true` if changing active tabs should no longer attempt to\n * scroll to the top of the tab panels container when using the\n * {@link TabsImplementation.getTabPanelsProps}.\n *\n * @defaultValue `false`\n */\n disableScrollFix?: boolean;\n\n /**\n * Set this to an **ordered** list of tab values when:\n * - using a `string` tab value\n * - using a `number` tab value does not represent a tab index\n *\n * See the examples on the {@link useTabs} for usage.\n */\n tabs?: readonly TabValue[];\n\n /**\n * Provide this value and {@link setActiveTab} to control the active tab\n * behavior.\n */\n activeTab?: TabValue;\n\n /** @see {@link activeTab} */\n setActiveTab?: Dispatch<TabValue>;\n\n /**\n * Set this to the default tab index when not controlling the active tab value\n * through {@link activeTab} and {@link setActiveTab}.\n *\n * @defaultValue `0`\n */\n defaultActiveTab?: UseStateInitializer<TabValue>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedTabProps {\n \"aria-controls\": string;\n id: string;\n active: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedTabListProps {\n activeIndex: number;\n setActiveIndex: Dispatch<number>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedTabPanelProps {\n \"aria-labelledby\": string;\n id: string;\n role: \"tabpanel\";\n active: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedTabPanelsProps<E extends HTMLElement> {\n ref: Ref<E>;\n direction: SlideDirection;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface TabsImplementation<TabValue extends string | number = number> {\n direction: SlideDirection;\n setDirection: UseStateSetter<SlideDirection>;\n activeTab?: TabValue;\n setActiveTab?(nextActiveTab: TabValue): void;\n getTabProps(tabValue: TabValue): ProvidedTabProps;\n getTabListProps(): ProvidedTabListProps;\n getTabPanelProps(tabValue: TabValue): ProvidedTabPanelProps;\n getTabPanelsProps<E extends HTMLElement>(): ProvidedTabPanelsProps<E>;\n}\n\n/**\n * @example Super Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const {\n * activeTab,\n * setActiveTab,\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs();\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <Tab {...getTabProps(0)}>Tab 1</Tab>\n * <Tab {...getTabProps(1)}>Tab 2</Tab>\n * <Tab {...getTabProps(2)}>Tab 3</Tab>\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * <Slide {...getTabPanelProps(0)}>Tab 1 Content</Slide>\n * <Slide {...getTabPanelProps(1)}>Tab 2 Content</Slide>\n * <Slide {...getTabPanelProps(2)}>Tab 3 Content</Slide>\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTabs(): TabsImplementation<number> & {\n activeTab: number;\n setActiveTab: number;\n};\n/**\n * The tab behavior can be controlled by providing the `activeTab` and\n * `setActiveTab` options.\n *\n * @example Controlled\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useState } from \"react\";\n *\n * function Example(): ReactElement {\n * const [activeTab, setActiveTab] = useState(1);\n *\n * const {\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({\n * activeTab,\n * setActiveTab,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <Tab {...getTabProps(0)}>Tab 1</Tab>\n * <Tab {...getTabProps(1)}>Tab 2</Tab>\n * <Tab {...getTabProps(2)}>Tab 3</Tab>\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * <Slide {...getTabPanelProps(0)}>Tab 1 Content</Slide>\n * <Slide {...getTabPanelProps(1)}>Tab 2 Content</Slide>\n * <Slide {...getTabPanelProps(2)}>Tab 3 Content</Slide>\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTabs<TabValue extends number>(\n options: TabsHookOptions<TabValue> & {\n tabs?: readonly TabValue[];\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n defaultActiveTab?: never;\n }\n): TabsImplementation<TabValue> & { activeTab?: never; setActiveTab?: never };\nexport function useTabs<TabValue extends number>(\n options: TabsHookOptions<TabValue> & {\n tabs?: readonly TabValue[];\n activeTab?: never;\n setActiveTab?: never;\n defaultActiveTab?: UseStateInitializer<TabValue>;\n }\n): TabsImplementation<TabValue> & {\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n};\n/**\n * When using string values, the {@link TabsHookOptions.tabs} option **must** be\n * provided to determine the correct active tab index.\n *\n * @example String Value Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const tabs = [\"value-1\", \"value-2\", \"value-3\"];\n *\n * function Example(): ReactElement {\n * const {\n * activeTab,\n * setActiveTab,\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({ tabs });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * {tabs.map((value) => (\n * <Tab key={value} {...getTabProps(value)}>{value}</Tab>\n * ))}\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * {tabs.map((value) => (\n * <Slide key={value}>{value} Content</Slide>\n * ))}\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTabs<TabValue extends string>(\n options: TabsHookOptions<TabValue> & {\n tabs: readonly TabValue[];\n activeTab?: never;\n setActiveTab?: never;\n defaultActiveTab?: UseStateInitializer<TabValue>;\n }\n): TabsImplementation<TabValue> & {\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n};\n/**\n * When using string values, the {@link TabsHookOptions.tabs} option **must** be\n * provided to determine the correct active tab index.\n *\n * @example String Controlled Simple\n * ```tsx\n * import { TabList, Tab, SlideContainer, Slide, useTabs } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const tabs = [\"value-1\", \"value-2\", \"value-3\"] as const;\n *\n * function Example(): ReactElement {\n * const [activeTab, setActiveTab] = useState(tabs[0]);\n *\n * const {\n * direction,\n * setDirection,\n * getTabListProps,\n * getTabPanelProps,\n * getTabPanelsProps,\n * getTabProps,\n * } = useTabs({\n * tabs,\n * activeTab,\n * setActiveTab,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * {tabs.map((value) => (\n * <Tab key={value} {...getTabProps(value)}>{value}</Tab>\n * ))}\n * </TabList>\n * <SlideContainer {...getTabPanelsProps()}>\n * {tabs.map((value) => (\n * <Slide key={value}>{value} Content</Slide>\n * ))}\n * </SlideContainer>\n * </>\n * );\n * }\n * ```\n *\n * @example Navigation Tabs\n * ```tsx\n * \"use client\";\n * import {\n * RippleContainer,\n * Tab,\n * TabList,\n * useElementInteraction,\n * useEnsuredId,\n * useHigherContrastChildren,\n * useKeyboardMovementContext,\n * useTabs,\n * } from \"@react-md/core\";\n * import type { LinkProps } from \"next/link\";\n * import Link from \"next/link\";\n * import type { PropsWithChildren, ReactElement } from \"react\";\n * import { usePathname } from \"next/navigation\";\n *\n * interface TabLinkProps extends LinkProps {\n * active: boolean;\n * }\n *\n * function TabLink(props: LinkProps): ReactElement {\n * const {\n * id: propId,\n * children: propChildren,\n * active,\n * className,\n * ...remaining,\n * } = props;\n *\n * const id = useEnsuredId(propId, \"tab\");\n * const { activeDescendantId } = useKeyboardMovementContext();\n * const { handlers, ripples } = useElementInteraction(props);\n * const children = useHigherContrastChildren(propChildren);\n *\n * return (\n * <Link\n * {...props}\n * {...handlers}\n * id={id}\n * aria-selected={active}\n * role=\"tab\"\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * className={tab({\n * className,\n * active,\n * // stacked,\n * // reversed,\n * })}\n * >\n * {children}\n * {ripples}\n * </Link>\n * );\n * }\n *\n * const noop = (): void => {\n * // do nothing\n * };\n *\n * const PATHNAME_TABS = [\"/\", \"/page-1\", \"/page-2\"];\n *\n * function Layout({ children }: PropsWithChildren) {\n * const pathname = usePathname();\n * const { getTabListProps, getTabProps } = useTabs({\n * tabs: PATHNAME_TABS,\n * activeTab: pathname,\n * setActiveTab: noop,\n * });\n *\n * return (\n * <>\n * <TabList {...getTabListProps()}>\n * <TabLink {...getTabProps(\"/\")} href=\"/\">Home</TabLink>\n * <TabLink {...getTabProps(\"/page-1\")} href=\"/page-1\">Page 1</TabLink>\n * <TabLink {...getTabProps(\"/page-2\")} href=\"/page-2\">Page 2</TabLink>\n * </TabList>\n * <main>{children}</main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTabs<TabValue extends string>(\n options: TabsHookOptions<TabValue> & {\n tabs: readonly TabValue[];\n activeTab: TabValue;\n setActiveTab: Dispatch<TabValue>;\n defaultActiveTab?: never;\n }\n): TabsImplementation<TabValue> & { activeTab?: never; setActiveTab?: never };\n/**\n * This hook can be uncontrolled/controlled and supports strongly typing the tab\n * values if needed. Check out the overloads for examples.\n *\n * @since 6.0.0\n */\nexport function useTabs<TabValue extends string | number>(\n options: TabsHookOptions<TabValue> = {}\n): TabsImplementation<TabValue> {\n const {\n baseId: propBaseId,\n disableScrollFix,\n tabs = EMPTY_LIST,\n activeTab: propActiveTab,\n setActiveTab: propSetActiveTab,\n defaultActiveTab,\n } = options;\n\n const baseId = useEnsuredId(propBaseId, \"tab\");\n const [direction, setDirection] = useState<SlideDirection>(\"left\");\n\n const [activeTab, setActiveTab] = useEnsuredState({\n value: propActiveTab,\n setValue: propSetActiveTab,\n defaultValue: defaultActiveTab ?? (0 as TabValue),\n });\n\n const getTabIndex = (tabValue: TabValue): number =>\n typeof tabValue === \"string\" || tabs.length > 0\n ? tabs.indexOf(tabValue)\n : tabValue;\n const getTabId = (tabValue: TabValue, prefix = \"\"): string =>\n `${baseId}-${prefix}${getTabIndex(tabValue) + 1}`;\n\n const activeIndex = getTabIndex(activeTab);\n const tabPanelsRef = useRef<HTMLElement>(null);\n useEffect(() => {\n const container = tabPanelsRef.current;\n if (!container || disableScrollFix) {\n return;\n }\n\n container.scrollTop = 0;\n }, [disableScrollFix, activeTab]);\n\n return {\n activeTab,\n setActiveTab,\n direction,\n setDirection,\n getTabProps(tabValue) {\n return {\n \"aria-controls\": getTabId(tabValue, PANEL_PREFIX),\n id: getTabId(tabValue),\n active: tabValue === activeTab,\n };\n },\n getTabListProps() {\n return {\n activeIndex,\n setActiveIndex: (nextActiveIndex) => {\n setDirection(activeIndex < nextActiveIndex ? \"left\" : \"right\");\n if (typeof activeTab === \"string\" || tabs.length > 0) {\n setActiveTab(tabs[nextActiveIndex]);\n } else {\n setActiveTab(nextActiveIndex as TabValue);\n }\n },\n };\n },\n getTabPanelProps(tabValue) {\n return {\n \"aria-labelledby\": getTabId(tabValue),\n id: getTabId(tabValue, PANEL_PREFIX),\n role: \"tabpanel\",\n active: tabValue === activeTab,\n };\n },\n getTabPanelsProps<E>() {\n return {\n ref: tabPanelsRef as RefObject<E>,\n direction,\n };\n },\n };\n}\n"],"names":["useEffect","useRef","useState","useEnsuredId","useEnsuredState","EMPTY_LIST","PANEL_PREFIX","useTabs","options","baseId","propBaseId","disableScrollFix","tabs","activeTab","propActiveTab","setActiveTab","propSetActiveTab","defaultActiveTab","direction","setDirection","value","setValue","defaultValue","getTabIndex","tabValue","length","indexOf","getTabId","prefix","activeIndex","tabPanelsRef","container","current","scrollTop","getTabProps","id","active","getTabListProps","setActiveIndex","nextActiveIndex","getTabPanelProps","role","getTabPanelsProps","ref"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AAGpD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,eAAe,QAAQ,wBAAwB;AAExD,MAAMC,aAAa,EAAE;AACrB,MAAMC,eAAe;AA0YrB;;;;;CAKC,GACD,OAAO,SAASC,QACdC,UAAqC,CAAC,CAAC;IAEvC,MAAM,EACJC,QAAQC,UAAU,EAClBC,gBAAgB,EAChBC,OAAOP,UAAU,EACjBQ,WAAWC,aAAa,EACxBC,cAAcC,gBAAgB,EAC9BC,gBAAgB,EACjB,GAAGT;IAEJ,MAAMC,SAASN,aAAaO,YAAY;IACxC,MAAM,CAACQ,WAAWC,aAAa,GAAGjB,SAAyB;IAE3D,MAAM,CAACW,WAAWE,aAAa,GAAGX,gBAAgB;QAChDgB,OAAON;QACPO,UAAUL;QACVM,cAAcL,oBAAqB;IACrC;IAEA,MAAMM,cAAc,CAACC,WACnB,OAAOA,aAAa,YAAYZ,KAAKa,MAAM,GAAG,IAC1Cb,KAAKc,OAAO,CAACF,YACbA;IACN,MAAMG,WAAW,CAACH,UAAoBI,SAAS,EAAE,GAC/C,CAAC,EAAEnB,OAAO,CAAC,EAAEmB,OAAO,EAAEL,YAAYC,YAAY,EAAE,CAAC;IAEnD,MAAMK,cAAcN,YAAYV;IAChC,MAAMiB,eAAe7B,OAAoB;IACzCD,UAAU;QACR,MAAM+B,YAAYD,aAAaE,OAAO;QACtC,IAAI,CAACD,aAAapB,kBAAkB;YAClC;QACF;QAEAoB,UAAUE,SAAS,GAAG;IACxB,GAAG;QAACtB;QAAkBE;KAAU;IAEhC,OAAO;QACLA;QACAE;QACAG;QACAC;QACAe,aAAYV,QAAQ;YAClB,OAAO;gBACL,iBAAiBG,SAASH,UAAUlB;gBACpC6B,IAAIR,SAASH;gBACbY,QAAQZ,aAAaX;YACvB;QACF;QACAwB;YACE,OAAO;gBACLR;gBACAS,gBAAgB,CAACC;oBACfpB,aAAaU,cAAcU,kBAAkB,SAAS;oBACtD,IAAI,OAAO1B,cAAc,YAAYD,KAAKa,MAAM,GAAG,GAAG;wBACpDV,aAAaH,IAAI,CAAC2B,gBAAgB;oBACpC,OAAO;wBACLxB,aAAawB;oBACf;gBACF;YACF;QACF;QACAC,kBAAiBhB,QAAQ;YACvB,OAAO;gBACL,mBAAmBG,SAASH;gBAC5BW,IAAIR,SAASH,UAAUlB;gBACvBmC,MAAM;gBACNL,QAAQZ,aAAaX;YACvB;QACF;QACA6B;YACE,OAAO;gBACLC,KAAKb;gBACLZ;YACF;QACF;IACF;AACF"}
@@ -15,7 +15,7 @@ interface ScrollOptions {
15
15
  */
16
16
  export declare const scrollTabIntoView: (options: ScrollOptions) => void;
17
17
  /**
18
- * @remarks \@since 6.0.0
18
+ * @since 6.0.0
19
19
  */
20
20
  export interface TabListScrollToOptions {
21
21
  isRTL: boolean;
@@ -25,11 +25,11 @@ export interface TabListScrollToOptions {
25
25
  container: HTMLElement;
26
26
  }
27
27
  /**
28
- * @remarks \@since 6.0.0
28
+ * @since 6.0.0
29
29
  */
30
30
  export type GetTabListScrollToOptions = (options: TabListScrollToOptions) => ScrollToOptions | undefined;
31
31
  /**
32
- * @remarks \@since 6.0.0
32
+ * @since 6.0.0
33
33
  */
34
34
  export declare const getTabListScrollToOptions: GetTabListScrollToOptions;
35
35
  export {};
@@ -31,7 +31,7 @@
31
31
  }
32
32
  };
33
33
  /**
34
- * @remarks \@since 6.0.0
34
+ * @since 6.0.0
35
35
  */ export const getTabListScrollToOptions = (options)=>{
36
36
  const { isRTL, animate, vertical, increment, container } = options;
37
37
  const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabs/utils.ts"],"sourcesContent":["/**\n * @internal\n */\nexport const getTabRoleOnly = (container: Element): readonly HTMLElement[] => [\n ...container.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n];\n\n/** @internal */\ninterface ScrollOptions {\n container: HTMLElement | null;\n forward: HTMLElement | null;\n backward: HTMLElement | null;\n vertical: boolean;\n activeIndex: number;\n}\n\n/**\n * @internal\n */\nexport const scrollTabIntoView = (options: ScrollOptions): void => {\n const { container, vertical, forward, backward, activeIndex } = options;\n if (!container) {\n return;\n }\n\n const activeTab = getTabRoleOnly(container)[activeIndex];\n if (!activeTab) {\n return;\n }\n\n const sizeAttribute = vertical ? \"offsetHeight\" : \"offsetWidth\";\n const offsetAttribute = vertical ? \"offsetTop\" : \"offsetLeft\";\n const scrollAttribute = vertical ? \"scrollTop\" : \"scrollLeft\";\n const firstOffset = backward?.[sizeAttribute] || 0;\n const lastOffset = forward?.[sizeAttribute] || 0;\n const elementStart = activeTab[offsetAttribute];\n const elementEnd = elementStart + activeTab[sizeAttribute];\n const containerStart = container[scrollAttribute];\n const containerEnd = containerStart + container[sizeAttribute] - lastOffset;\n if (elementEnd > containerEnd) {\n const containerSize = container[sizeAttribute] - lastOffset;\n container[scrollAttribute] = elementEnd - containerSize;\n } else if (elementStart < containerStart + firstOffset) {\n container[scrollAttribute] = elementStart - firstOffset;\n }\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TabListScrollToOptions {\n isRTL: boolean;\n animate: boolean;\n vertical: boolean;\n increment: boolean;\n container: HTMLElement;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type GetTabListScrollToOptions = (\n options: TabListScrollToOptions\n) => ScrollToOptions | undefined;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport const getTabListScrollToOptions: GetTabListScrollToOptions = (\n options\n) => {\n const { isRTL, animate, vertical, increment, container } = options;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n const currentScroll = vertical ? scrollTop : scrollLeft;\n const scrollDistance = vertical ? scrollHeight : scrollWidth;\n const amount = (scrollDistance / 10) * (increment ? 1 : -1);\n const distance = currentScroll + amount * (vertical || !isRTL ? 1 : -1);\n\n return {\n left: vertical ? undefined : distance,\n top: vertical ? distance : undefined,\n behavior: animate ? \"smooth\" : \"auto\",\n };\n};\n"],"names":["getTabRoleOnly","container","querySelectorAll","scrollTabIntoView","options","vertical","forward","backward","activeIndex","activeTab","sizeAttribute","offsetAttribute","scrollAttribute","firstOffset","lastOffset","elementStart","elementEnd","containerStart","containerEnd","containerSize","getTabListScrollToOptions","isRTL","animate","increment","scrollLeft","scrollTop","scrollWidth","scrollHeight","currentScroll","scrollDistance","amount","distance","left","undefined","top","behavior"],"mappings":"AAAA;;CAEC,GACD,OAAO,MAAMA,iBAAiB,CAACC,YAA+C;WACzEA,UAAUC,gBAAgB,CAAc;KAC5C,CAAC;AAWF;;CAEC,GACD,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAM,EAAEH,SAAS,EAAEI,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAGJ;IAChE,IAAI,CAACH,WAAW;QACd;IACF;IAEA,MAAMQ,YAAYT,eAAeC,UAAU,CAACO,YAAY;IACxD,IAAI,CAACC,WAAW;QACd;IACF;IAEA,MAAMC,gBAAgBL,WAAW,iBAAiB;IAClD,MAAMM,kBAAkBN,WAAW,cAAc;IACjD,MAAMO,kBAAkBP,WAAW,cAAc;IACjD,MAAMQ,cAAcN,UAAU,CAACG,cAAc,IAAI;IACjD,MAAMI,aAAaR,SAAS,CAACI,cAAc,IAAI;IAC/C,MAAMK,eAAeN,SAAS,CAACE,gBAAgB;IAC/C,MAAMK,aAAaD,eAAeN,SAAS,CAACC,cAAc;IAC1D,MAAMO,iBAAiBhB,SAAS,CAACW,gBAAgB;IACjD,MAAMM,eAAeD,iBAAiBhB,SAAS,CAACS,cAAc,GAAGI;IACjE,IAAIE,aAAaE,cAAc;QAC7B,MAAMC,gBAAgBlB,SAAS,CAACS,cAAc,GAAGI;QACjDb,SAAS,CAACW,gBAAgB,GAAGI,aAAaG;IAC5C,OAAO,IAAIJ,eAAeE,iBAAiBJ,aAAa;QACtDZ,SAAS,CAACW,gBAAgB,GAAGG,eAAeF;IAC9C;AACF,EAAE;AAoBF;;CAEC,GACD,OAAO,MAAMO,4BAAuD,CAClEhB;IAEA,MAAM,EAAEiB,KAAK,EAAEC,OAAO,EAAEjB,QAAQ,EAAEkB,SAAS,EAAEtB,SAAS,EAAE,GAAGG;IAC3D,MAAM,EAAEoB,UAAU,EAAEC,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAE,GAAG1B;IAC7D,MAAM2B,gBAAgBvB,WAAWoB,YAAYD;IAC7C,MAAMK,iBAAiBxB,WAAWsB,eAAeD;IACjD,MAAMI,SAAS,AAACD,iBAAiB,KAAON,CAAAA,YAAY,IAAI,CAAC,CAAA;IACzD,MAAMQ,WAAWH,gBAAgBE,SAAUzB,CAAAA,YAAY,CAACgB,QAAQ,IAAI,CAAC,CAAA;IAErE,OAAO;QACLW,MAAM3B,WAAW4B,YAAYF;QAC7BG,KAAK7B,WAAW0B,WAAWE;QAC3BE,UAAUb,UAAU,WAAW;IACjC;AACF,EAAE"}
1
+ {"version":3,"sources":["../../src/tabs/utils.ts"],"sourcesContent":["/**\n * @internal\n */\nexport const getTabRoleOnly = (container: Element): readonly HTMLElement[] => [\n ...container.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n];\n\n/** @internal */\ninterface ScrollOptions {\n container: HTMLElement | null;\n forward: HTMLElement | null;\n backward: HTMLElement | null;\n vertical: boolean;\n activeIndex: number;\n}\n\n/**\n * @internal\n */\nexport const scrollTabIntoView = (options: ScrollOptions): void => {\n const { container, vertical, forward, backward, activeIndex } = options;\n if (!container) {\n return;\n }\n\n const activeTab = getTabRoleOnly(container)[activeIndex];\n if (!activeTab) {\n return;\n }\n\n const sizeAttribute = vertical ? \"offsetHeight\" : \"offsetWidth\";\n const offsetAttribute = vertical ? \"offsetTop\" : \"offsetLeft\";\n const scrollAttribute = vertical ? \"scrollTop\" : \"scrollLeft\";\n const firstOffset = backward?.[sizeAttribute] || 0;\n const lastOffset = forward?.[sizeAttribute] || 0;\n const elementStart = activeTab[offsetAttribute];\n const elementEnd = elementStart + activeTab[sizeAttribute];\n const containerStart = container[scrollAttribute];\n const containerEnd = containerStart + container[sizeAttribute] - lastOffset;\n if (elementEnd > containerEnd) {\n const containerSize = container[sizeAttribute] - lastOffset;\n container[scrollAttribute] = elementEnd - containerSize;\n } else if (elementStart < containerStart + firstOffset) {\n container[scrollAttribute] = elementStart - firstOffset;\n }\n};\n\n/**\n * @since 6.0.0\n */\nexport interface TabListScrollToOptions {\n isRTL: boolean;\n animate: boolean;\n vertical: boolean;\n increment: boolean;\n container: HTMLElement;\n}\n\n/**\n * @since 6.0.0\n */\nexport type GetTabListScrollToOptions = (\n options: TabListScrollToOptions\n) => ScrollToOptions | undefined;\n\n/**\n * @since 6.0.0\n */\nexport const getTabListScrollToOptions: GetTabListScrollToOptions = (\n options\n) => {\n const { isRTL, animate, vertical, increment, container } = options;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n const currentScroll = vertical ? scrollTop : scrollLeft;\n const scrollDistance = vertical ? scrollHeight : scrollWidth;\n const amount = (scrollDistance / 10) * (increment ? 1 : -1);\n const distance = currentScroll + amount * (vertical || !isRTL ? 1 : -1);\n\n return {\n left: vertical ? undefined : distance,\n top: vertical ? distance : undefined,\n behavior: animate ? \"smooth\" : \"auto\",\n };\n};\n"],"names":["getTabRoleOnly","container","querySelectorAll","scrollTabIntoView","options","vertical","forward","backward","activeIndex","activeTab","sizeAttribute","offsetAttribute","scrollAttribute","firstOffset","lastOffset","elementStart","elementEnd","containerStart","containerEnd","containerSize","getTabListScrollToOptions","isRTL","animate","increment","scrollLeft","scrollTop","scrollWidth","scrollHeight","currentScroll","scrollDistance","amount","distance","left","undefined","top","behavior"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,MAAMA,iBAAiB,CAACC,YAA+C;WACzEA,UAAUC,gBAAgB,CAAc;KAC5C,CAAC;AAWF;;CAEC,GACD,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAM,EAAEH,SAAS,EAAEI,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAGJ;IAChE,IAAI,CAACH,WAAW;QACd;IACF;IAEA,MAAMQ,YAAYT,eAAeC,UAAU,CAACO,YAAY;IACxD,IAAI,CAACC,WAAW;QACd;IACF;IAEA,MAAMC,gBAAgBL,WAAW,iBAAiB;IAClD,MAAMM,kBAAkBN,WAAW,cAAc;IACjD,MAAMO,kBAAkBP,WAAW,cAAc;IACjD,MAAMQ,cAAcN,UAAU,CAACG,cAAc,IAAI;IACjD,MAAMI,aAAaR,SAAS,CAACI,cAAc,IAAI;IAC/C,MAAMK,eAAeN,SAAS,CAACE,gBAAgB;IAC/C,MAAMK,aAAaD,eAAeN,SAAS,CAACC,cAAc;IAC1D,MAAMO,iBAAiBhB,SAAS,CAACW,gBAAgB;IACjD,MAAMM,eAAeD,iBAAiBhB,SAAS,CAACS,cAAc,GAAGI;IACjE,IAAIE,aAAaE,cAAc;QAC7B,MAAMC,gBAAgBlB,SAAS,CAACS,cAAc,GAAGI;QACjDb,SAAS,CAACW,gBAAgB,GAAGI,aAAaG;IAC5C,OAAO,IAAIJ,eAAeE,iBAAiBJ,aAAa;QACtDZ,SAAS,CAACW,gBAAgB,GAAGG,eAAeF;IAC9C;AACF,EAAE;AAoBF;;CAEC,GACD,OAAO,MAAMO,4BAAuD,CAClEhB;IAEA,MAAM,EAAEiB,KAAK,EAAEC,OAAO,EAAEjB,QAAQ,EAAEkB,SAAS,EAAEtB,SAAS,EAAE,GAAGG;IAC3D,MAAM,EAAEoB,UAAU,EAAEC,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAE,GAAG1B;IAC7D,MAAM2B,gBAAgBvB,WAAWoB,YAAYD;IAC7C,MAAMK,iBAAiBxB,WAAWsB,eAAeD;IACjD,MAAMI,SAAS,AAACD,iBAAiB,KAAON,CAAAA,YAAY,IAAI,CAAC,CAAA;IACzD,MAAMQ,WAAWH,gBAAgBE,SAAUzB,CAAAA,YAAY,CAACgB,QAAQ,IAAI,CAAC,CAAA;IAErE,OAAO;QACLW,MAAM3B,WAAW4B,YAAYF;QAC7BG,KAAK7B,WAAW0B,WAAWE;QAC3BE,UAAUb,UAAU,WAAW;IACjC;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/IntersectionObserver.ts"],"sourcesContent":["export class IntersectionObserverMock implements IntersectionObserver {\n root: Document | Element | null;\n rootMargin: string;\n thresholds: readonly number[];\n\n elements: Set<Element>;\n\n constructor(\n public callback: IntersectionObserverCallback,\n options: IntersectionObserverInit = {}\n ) {\n this.root = options.root || null;\n this.rootMargin = options.rootMargin || \"\";\n this.thresholds =\n typeof options.threshold === \"number\"\n ? [options.threshold]\n : options.threshold ?? [];\n\n this.elements = new Set();\n }\n\n observe(target: Element): void {\n this.elements.add(target);\n\n this.callback(this.takeRecords(), this);\n }\n\n unobserve(target: Element): void {\n this.elements.delete(target);\n }\n\n takeRecords(): IntersectionObserverEntry[] {\n return [...this.elements].map<IntersectionObserverEntry>((target) => ({\n time: Date.now(),\n target,\n boundingClientRect: target.getBoundingClientRect(),\n intersectionRatio: 0,\n intersectionRect: target.getBoundingClientRect(),\n isIntersecting: false,\n rootBounds:\n this.root && \"getBoundingClientRect\" in this.root\n ? this.root.getBoundingClientRect()\n : null,\n }));\n }\n\n disconnect(): void {\n this.elements.clear();\n }\n}\n"],"names":["IntersectionObserverMock","observe","target","elements","add","callback","takeRecords","unobserve","delete","map","time","Date","now","boundingClientRect","getBoundingClientRect","intersectionRatio","intersectionRect","isIntersecting","rootBounds","root","disconnect","clear","constructor","options","rootMargin","thresholds","threshold","Set"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,MAAMA;IAqBXC,QAAQC,MAAe,EAAQ;QAC7B,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACF;QAElB,IAAI,CAACG,QAAQ,CAAC,IAAI,CAACC,WAAW,IAAI,IAAI;IACxC;IAEAC,UAAUL,MAAe,EAAQ;QAC/B,IAAI,CAACC,QAAQ,CAACK,MAAM,CAACN;IACvB;IAEAI,cAA2C;QACzC,OAAO;eAAI,IAAI,CAACH,QAAQ;SAAC,CAACM,GAAG,CAA4B,CAACP,SAAY,CAAA;gBACpEQ,MAAMC,KAAKC,GAAG;gBACdV;gBACAW,oBAAoBX,OAAOY,qBAAqB;gBAChDC,mBAAmB;gBACnBC,kBAAkBd,OAAOY,qBAAqB;gBAC9CG,gBAAgB;gBAChBC,YACE,IAAI,CAACC,IAAI,IAAI,2BAA2B,IAAI,CAACA,IAAI,GAC7C,IAAI,CAACA,IAAI,CAACL,qBAAqB,KAC/B;YACR,CAAA;IACF;IAEAM,aAAmB;QACjB,IAAI,CAACjB,QAAQ,CAACkB,KAAK;IACrB;IAzCAC,YACE,AAAOjB,QAAsC,EAC7CkB,UAAoC,CAAC,CAAC,CACtC;;QATFJ,uBAAAA,QAAAA,KAAAA;QACAK,uBAAAA,cAAAA,KAAAA;QACAC,uBAAAA,cAAAA,KAAAA;QAEAtB,uBAAAA,YAAAA,KAAAA;aAGSE,WAAAA;QAGP,IAAI,CAACc,IAAI,GAAGI,QAAQJ,IAAI,IAAI;QAC5B,IAAI,CAACK,UAAU,GAAGD,QAAQC,UAAU,IAAI;QACxC,IAAI,CAACC,UAAU,GACb,OAAOF,QAAQG,SAAS,KAAK,WACzB;YAACH,QAAQG,SAAS;SAAC,GACnBH,QAAQG,SAAS,IAAI,EAAE;QAE7B,IAAI,CAACvB,QAAQ,GAAG,IAAIwB;IACtB;AA8BF"}
1
+ {"version":3,"sources":["../../src/test-utils/IntersectionObserver.ts"],"sourcesContent":["export class IntersectionObserverMock implements IntersectionObserver {\n root: Document | Element | null;\n rootMargin: string;\n thresholds: readonly number[];\n\n elements: Set<Element>;\n\n constructor(\n public callback: IntersectionObserverCallback,\n options: IntersectionObserverInit = {}\n ) {\n this.root = options.root || null;\n this.rootMargin = options.rootMargin || \"\";\n this.thresholds =\n typeof options.threshold === \"number\"\n ? [options.threshold]\n : options.threshold ?? [];\n\n this.elements = new Set();\n }\n\n observe(target: Element): void {\n this.elements.add(target);\n\n this.callback(this.takeRecords(), this);\n }\n\n unobserve(target: Element): void {\n this.elements.delete(target);\n }\n\n takeRecords(): IntersectionObserverEntry[] {\n return [...this.elements].map<IntersectionObserverEntry>((target) => ({\n time: Date.now(),\n target,\n boundingClientRect: target.getBoundingClientRect(),\n intersectionRatio: 0,\n intersectionRect: target.getBoundingClientRect(),\n isIntersecting: false,\n rootBounds:\n this.root && \"getBoundingClientRect\" in this.root\n ? this.root.getBoundingClientRect()\n : null,\n }));\n }\n\n disconnect(): void {\n this.elements.clear();\n }\n}\n"],"names":["IntersectionObserverMock","observe","target","elements","add","callback","takeRecords","unobserve","delete","map","time","Date","now","boundingClientRect","getBoundingClientRect","intersectionRatio","intersectionRect","isIntersecting","rootBounds","root","disconnect","clear","constructor","options","rootMargin","thresholds","threshold","Set"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;;;AAAA,OAAO,MAAMA;IAqBXC,QAAQC,MAAe,EAAQ;QAC7B,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACF;QAElB,IAAI,CAACG,QAAQ,CAAC,IAAI,CAACC,WAAW,IAAI,IAAI;IACxC;IAEAC,UAAUL,MAAe,EAAQ;QAC/B,IAAI,CAACC,QAAQ,CAACK,MAAM,CAACN;IACvB;IAEAI,cAA2C;QACzC,OAAO;eAAI,IAAI,CAACH,QAAQ;SAAC,CAACM,GAAG,CAA4B,CAACP,SAAY,CAAA;gBACpEQ,MAAMC,KAAKC,GAAG;gBACdV;gBACAW,oBAAoBX,OAAOY,qBAAqB;gBAChDC,mBAAmB;gBACnBC,kBAAkBd,OAAOY,qBAAqB;gBAC9CG,gBAAgB;gBAChBC,YACE,IAAI,CAACC,IAAI,IAAI,2BAA2B,IAAI,CAACA,IAAI,GAC7C,IAAI,CAACA,IAAI,CAACL,qBAAqB,KAC/B;YACR,CAAA;IACF;IAEAM,aAAmB;QACjB,IAAI,CAACjB,QAAQ,CAACkB,KAAK;IACrB;IAzCAC,YACE,AAAOjB,QAAsC,EAC7CkB,UAAoC,CAAC,CAAC,CACtC;;QATFJ,uBAAAA,QAAAA,KAAAA;QACAK,uBAAAA,cAAAA,KAAAA;QACAC,uBAAAA,cAAAA,KAAAA;QAEAtB,uBAAAA,YAAAA,KAAAA;aAGSE,WAAAA;QAGP,IAAI,CAACc,IAAI,GAAGI,QAAQJ,IAAI,IAAI;QAC5B,IAAI,CAACK,UAAU,GAAGD,QAAQC,UAAU,IAAI;QACxC,IAAI,CAACC,UAAU,GACb,OAAOF,QAAQG,SAAS,KAAK,WACzB;YAACH,QAAQG,SAAS;SAAC,GACnBH,QAAQG,SAAS,IAAI,EAAE;QAE7B,IAAI,CAACvB,QAAQ,GAAG,IAAIwB;IACtB;AA8BF"}
@@ -1,20 +1,20 @@
1
1
  import { type ResizeObserverManager } from "../useResizeObserver.js";
2
2
  /**
3
- * @remarks \@since 6.0.0
3
+ * @since 6.0.0
4
4
  */
5
5
  export interface ResizeObserverEntrySize {
6
6
  height?: number;
7
7
  width?: number;
8
8
  }
9
9
  /**
10
- * @remarks \@since 6.0.0
10
+ * @since 6.0.0
11
11
  */
12
12
  export type GetResizeObserverEntryMock = (target: Element, size?: ResizeObserverEntrySize) => ResizeObserverEntry;
13
13
  /**
14
14
  * This is mostly an internal function to be used with the {@link ResizeObserverMock}
15
15
  * and {@link setupResizeObserverMock}
16
16
  *
17
- * @remarks \@since 6.0.0
17
+ * @since 6.0.0
18
18
  */
19
19
  export declare const createResizeObserverEntry: GetResizeObserverEntryMock;
20
20
  /**
@@ -22,7 +22,7 @@ export declare const createResizeObserverEntry: GetResizeObserverEntryMock;
22
22
  * exist in jsdom. You normally should not use this directly and instead use the
23
23
  * {@link setupResizeObserverMock} instead.
24
24
  *
25
- * @remarks \@since 6.0.0
25
+ * @since 6.0.0
26
26
  */
27
27
  export declare class ResizeObserverMock implements ResizeObserver {
28
28
  callback: ResizeObserverCallback;
@@ -35,8 +35,7 @@ export declare class ResizeObserverMock implements ResizeObserver {
35
35
  * Triggers the resize event for a specific element. This must be wrapped in
36
36
  * `act`.
37
37
  *
38
- * @example
39
- * Main Usage
38
+ * @example Main Usage
40
39
  * ```tsx
41
40
  * import {
42
41
  * cleanupResizeObserverAfterEach,
@@ -114,7 +113,7 @@ export declare class ResizeObserverMock implements ResizeObserver {
114
113
  resizeAllElements: (getEntry?: GetResizeObserverEntryMock) => void;
115
114
  }
116
115
  /**
117
- * @remarks \@since 6.0.0
116
+ * @since 6.0.0
118
117
  */
119
118
  export interface SetupResizeObserverMockOptions {
120
119
  /**
@@ -138,8 +137,7 @@ export interface SetupResizeObserverMockOptions {
138
137
  /**
139
138
  * Initializes the `ResizeObserverMock` to be used for tests.
140
139
  *
141
- * @example
142
- * Main Usage
140
+ * @example Main Usage
143
141
  * ```tsx
144
142
  * import { useCallback, useState } from "react";
145
143
  * import {
@@ -204,11 +202,11 @@ export interface SetupResizeObserverMockOptions {
204
202
  * })
205
203
  * ```
206
204
  *
207
- * @remarks \@since 6.0.0
205
+ * @since 6.0.0
208
206
  */
209
207
  export declare function setupResizeObserverMock(options?: SetupResizeObserverMockOptions): ResizeObserverMock;
210
208
  /**
211
209
  * @see {@link setupResizeObserverMock}
212
- * @remarks \@since 6.0.0
210
+ * @since 6.0.0
213
211
  */
214
212
  export declare function cleanupResizeObserverAfterEach(restoreAllMocks?: boolean): void;
@@ -17,7 +17,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
17
17
  * This is mostly an internal function to be used with the {@link ResizeObserverMock}
18
18
  * and {@link setupResizeObserverMock}
19
19
  *
20
- * @remarks \@since 6.0.0
20
+ * @since 6.0.0
21
21
  */ export const createResizeObserverEntry = (target, size)=>{
22
22
  const contentRect = target.getBoundingClientRect();
23
23
  if (typeof size?.height === "number") {
@@ -47,7 +47,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
47
47
  * exist in jsdom. You normally should not use this directly and instead use the
48
48
  * {@link setupResizeObserverMock} instead.
49
49
  *
50
- * @remarks \@since 6.0.0
50
+ * @since 6.0.0
51
51
  */ export class ResizeObserverMock {
52
52
  constructor(callback){
53
53
  _define_property(this, "callback", void 0);
@@ -59,8 +59,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
59
59
  * Triggers the resize event for a specific element. This must be wrapped in
60
60
  * `act`.
61
61
  *
62
- * @example
63
- * Main Usage
62
+ * @example Main Usage
64
63
  * ```tsx
65
64
  * import {
66
65
  * cleanupResizeObserverAfterEach,
@@ -173,8 +172,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
173
172
  /**
174
173
  * Initializes the `ResizeObserverMock` to be used for tests.
175
174
  *
176
- * @example
177
- * Main Usage
175
+ * @example Main Usage
178
176
  * ```tsx
179
177
  * import { useCallback, useState } from "react";
180
178
  * import {
@@ -239,7 +237,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
239
237
  * })
240
238
  * ```
241
239
  *
242
- * @remarks \@since 6.0.0
240
+ * @since 6.0.0
243
241
  */ export function setupResizeObserverMock(options = {}) {
244
242
  const { raf, manager = resizeObserverManager } = options;
245
243
  const resizeObserver = new ResizeObserverMock((entries)=>{
@@ -257,7 +255,7 @@ import { resizeObserverManager } from "../useResizeObserver.js";
257
255
  }
258
256
  /**
259
257
  * @see {@link setupResizeObserverMock}
260
- * @remarks \@since 6.0.0
258
+ * @since 6.0.0
261
259
  */ export function cleanupResizeObserverAfterEach(restoreAllMocks = true) {
262
260
  afterEach(()=>{
263
261
  resizeObserverManager.frame = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/ResizeObserver.ts"],"sourcesContent":["import { afterEach, jest } from \"@jest/globals\";\nimport {\n resizeObserverManager,\n type ResizeObserverManager,\n} from \"../useResizeObserver.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ResizeObserverEntrySize {\n height?: number;\n width?: number;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type GetResizeObserverEntryMock = (\n target: Element,\n size?: ResizeObserverEntrySize\n) => ResizeObserverEntry;\n\n/**\n * This is mostly an internal function to be used with the {@link ResizeObserverMock}\n * and {@link setupResizeObserverMock}\n *\n * @remarks \\@since 6.0.0\n */\nexport const createResizeObserverEntry: GetResizeObserverEntryMock = (\n target,\n size\n) => {\n const contentRect = target.getBoundingClientRect();\n if (typeof size?.height === \"number\") {\n contentRect.height = size.height;\n }\n if (typeof size?.width === \"number\") {\n contentRect.width = size.width;\n }\n\n const boxSize: ResizeObserverSize = {\n blockSize: contentRect.height,\n inlineSize: contentRect.width,\n };\n\n return {\n target,\n contentRect,\n borderBoxSize: [boxSize],\n contentBoxSize: [boxSize],\n devicePixelContentBoxSize: [],\n };\n};\n\n/**\n * This is the default ResizeObserver implementation if it does not already\n * exist in jsdom. You normally should not use this directly and instead use the\n * {@link setupResizeObserverMock} instead.\n *\n * @remarks \\@since 6.0.0\n */\nexport class ResizeObserverMock implements ResizeObserver {\n elements: Set<Element>;\n\n constructor(public callback: ResizeObserverCallback) {\n this.elements = new Set();\n }\n\n observe = (target: Element): void => {\n this.elements.add(target);\n this.resizeAllElements(createResizeObserverEntry);\n };\n\n unobserve = (target: Element): void => {\n this.elements.delete(target);\n };\n\n disconnect = (): void => {\n this.elements.clear();\n };\n\n /**\n * Triggers the resize event for a specific element. This must be wrapped in\n * `act`.\n *\n * @example\n * Main Usage\n * ```tsx\n * import {\n * cleanupResizeObserverAfterEach,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n * import { useResizeObserver } from \"@react-md/core\";\n * import { ExampleComponent } from \"../ExampleComponent.js\";\n *\n * cleanupResizeObserverAfterEach();\n *\n * describe(\"ExampleComponent\", () => {\n * it(\"should do stuff\", () => {\n * const observer = setupResizeObserverMock();\n * render(<ExampleComponent />)\n *\n * const resizeTarget = screen.getByTestId(\"resize-target\")\n *\n * // you can trigger with a custom change\n * act(() => {\n * observer.resizeElement(resizeTarget, { height: 100, width: 100 });\n * });\n * // expect resize changes\n * });\n * })\n * ```\n */\n resizeElement = (\n target: Element,\n changesOrGetEntry:\n | GetResizeObserverEntryMock\n | ResizeObserverEntrySize\n | ResizeObserverEntry = createResizeObserverEntry\n ): void => {\n if (!this.elements.has(target)) {\n throw new Error(\n \"The `ResizeObserverMock` is not watching the target element and cannot be resized\"\n );\n }\n\n let entry: ResizeObserverEntry;\n if (typeof changesOrGetEntry === \"function\") {\n entry = changesOrGetEntry(target);\n } else if (!(\"contentRect\" in changesOrGetEntry)) {\n entry = createResizeObserverEntry(target, changesOrGetEntry);\n } else {\n entry = changesOrGetEntry;\n }\n\n this.callback([entry], this);\n };\n\n /**\n * You'll normally want to use {@link resizeElement} instead, but this can be\n * used to resize all the watched elements at once.\n *\n * @example\n * ```tsx\n * import {\n * act,\n * createResizeObserverEntry,\n * render,\n * screen,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n *\n * const observer = setupResizeObserverMock();\n * const { container } = render(<Test />)\n * expect(container).toMatchSnapshot()\n *\n * const target1 = screen.getByTestId('target-1');\n * const target2 = screen.getByTestId('target-2');\n * const target3 = screen.getByTestId('target-3');\n *\n * act(() => {\n * observer.resizeAllElements((element) => {\n * let height: number | undefined;\n * let width: number | undefined;\n * switch (element) {\n * case target1:\n * height = 400;\n * width = 250;\n * break;\n * case target2:\n * height = 100;\n * width = 380;\n * break;\n * case target3:\n * height = 24;\n * width = 24;\n * break;\n * }\n *\n * return createResizeObserverEntry(element, { height, width });\n * });\n * });\n * expect(container).toMatchSnapshot()\n * ```\n */\n resizeAllElements = (getEntry = createResizeObserverEntry): void => {\n const entries = [...this.elements].map((element) => getEntry(element));\n this.callback(entries, this);\n };\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SetupResizeObserverMockOptions {\n /**\n * Set this to `true` to mimic the real `ResizeObserver` behavior where the\n * updates occur after an animation frame instead of invoking immediately.\n *\n * Keeping this as `false` is recommended since this option was only added to\n * make testing this function itself easier.\n *\n * @defaultValue `false`\n */\n raf?: boolean;\n\n /**\n * Keeping this as the `resizeObserverManager` is recommended since this\n * option was only added to make testing this function easier itself.\n *\n * @defaultValue `resizeObserverManager`\n */\n manager?: ResizeObserverManager;\n}\n\n/**\n * Initializes the `ResizeObserverMock` to be used for tests.\n *\n * @example\n * Main Usage\n * ```tsx\n * import { useCallback, useState } from \"react\";\n * import {\n * cleanupResizeObserverAfterEach,\n * render,\n * screen,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n * import { useResizeObserver } from \"@react-md/core\";\n *\n * function ExampleComponent() {\n * const [size, setSize] = useState({ height: 0, width: 0 });\n * const ref = useResizeObserver({\n * onUpdate: useCallback((entry) => {\n * setSize({\n * height: entry.contentRect.height,\n * width: entry.contentRect.width,\n * });\n * });\n * });\n *\n * return (\n * <>\n * <div data-testid=\"size\">{JSON.stringify(size)}</div>\n * <div data-testid=\"resize-target\" ref={ref} />\n * </>\n * );\n * }\n *\n * cleanupResizeObserverAfterEach();\n *\n * describe(\"ExampleComponent\", () => {\n * it(\"should do stuff\", () => {\n * const observer = setupResizeObserverMock();\n * render(<ExampleComponent />)\n *\n * const size = screen.getByTestId(\"size\");\n * const resizeTarget = screen.getByTestId(\"resize-target\")\n *\n * // jsdom sets all element sizes to 0 by default\n * expect(size).toHaveTextContent(JSON.stringify({ height: 0, width: 0 }));\n *\n * // you can trigger with a custom change\n * act(() => {\n * observer.resizeElement(resizeTarget, { height: 100, width: 100 });\n * });\n * expect(size).toHaveTextContent(JSON.stringify({ height: 100, width: 100 }));\n *\n * // or you can mock the `getBoundingClientRect` result\n * jest.spyOn(resizeTarget, \"getBoundingClientRect\")\n * .mockReturnValue({\n * ...document.body.getBoundingClientRect(),\n * height: 200,\n * width: 200,\n * }):\n *\n * act(() => {\n * observer.resizeElement(resizeTarget);\n * });\n * expect(size).toHaveTextContent(JSON.stringify({ height: 200, width: 200 }));\n * });\n * })\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function setupResizeObserverMock(\n options: SetupResizeObserverMockOptions = {}\n): ResizeObserverMock {\n const { raf, manager = resizeObserverManager } = options;\n\n const resizeObserver = new ResizeObserverMock((entries) => {\n if (raf) {\n window.cancelAnimationFrame(manager.frame);\n manager.frame = window.requestAnimationFrame(() => {\n manager.handleResizeEntries(entries);\n });\n } else {\n manager.handleResizeEntries(entries);\n }\n });\n manager.sharedObserver = resizeObserver;\n return resizeObserver;\n}\n\n/**\n * @see {@link setupResizeObserverMock}\n * @remarks \\@since 6.0.0\n */\nexport function cleanupResizeObserverAfterEach(restoreAllMocks = true): void {\n afterEach(() => {\n resizeObserverManager.frame = 0;\n resizeObserverManager.subscriptions = new Map();\n resizeObserverManager.sharedObserver = undefined;\n\n if (restoreAllMocks) {\n jest.restoreAllMocks();\n }\n });\n}\n"],"names":["afterEach","jest","resizeObserverManager","createResizeObserverEntry","target","size","contentRect","getBoundingClientRect","height","width","boxSize","blockSize","inlineSize","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","ResizeObserverMock","constructor","callback","elements","observe","unobserve","disconnect","resizeElement","resizeAllElements","add","delete","clear","changesOrGetEntry","has","Error","entry","getEntry","entries","map","element","Set","setupResizeObserverMock","options","raf","manager","resizeObserver","window","cancelAnimationFrame","frame","requestAnimationFrame","handleResizeEntries","sharedObserver","cleanupResizeObserverAfterEach","restoreAllMocks","subscriptions","Map","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/test-utils/ResizeObserver.ts"],"sourcesContent":["import { afterEach, jest } from \"@jest/globals\";\nimport {\n resizeObserverManager,\n type ResizeObserverManager,\n} from \"../useResizeObserver.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface ResizeObserverEntrySize {\n height?: number;\n width?: number;\n}\n\n/**\n * @since 6.0.0\n */\nexport type GetResizeObserverEntryMock = (\n target: Element,\n size?: ResizeObserverEntrySize\n) => ResizeObserverEntry;\n\n/**\n * This is mostly an internal function to be used with the {@link ResizeObserverMock}\n * and {@link setupResizeObserverMock}\n *\n * @since 6.0.0\n */\nexport const createResizeObserverEntry: GetResizeObserverEntryMock = (\n target,\n size\n) => {\n const contentRect = target.getBoundingClientRect();\n if (typeof size?.height === \"number\") {\n contentRect.height = size.height;\n }\n if (typeof size?.width === \"number\") {\n contentRect.width = size.width;\n }\n\n const boxSize: ResizeObserverSize = {\n blockSize: contentRect.height,\n inlineSize: contentRect.width,\n };\n\n return {\n target,\n contentRect,\n borderBoxSize: [boxSize],\n contentBoxSize: [boxSize],\n devicePixelContentBoxSize: [],\n };\n};\n\n/**\n * This is the default ResizeObserver implementation if it does not already\n * exist in jsdom. You normally should not use this directly and instead use the\n * {@link setupResizeObserverMock} instead.\n *\n * @since 6.0.0\n */\nexport class ResizeObserverMock implements ResizeObserver {\n elements: Set<Element>;\n\n constructor(public callback: ResizeObserverCallback) {\n this.elements = new Set();\n }\n\n observe = (target: Element): void => {\n this.elements.add(target);\n this.resizeAllElements(createResizeObserverEntry);\n };\n\n unobserve = (target: Element): void => {\n this.elements.delete(target);\n };\n\n disconnect = (): void => {\n this.elements.clear();\n };\n\n /**\n * Triggers the resize event for a specific element. This must be wrapped in\n * `act`.\n *\n * @example Main Usage\n * ```tsx\n * import {\n * cleanupResizeObserverAfterEach,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n * import { useResizeObserver } from \"@react-md/core\";\n * import { ExampleComponent } from \"../ExampleComponent.js\";\n *\n * cleanupResizeObserverAfterEach();\n *\n * describe(\"ExampleComponent\", () => {\n * it(\"should do stuff\", () => {\n * const observer = setupResizeObserverMock();\n * render(<ExampleComponent />)\n *\n * const resizeTarget = screen.getByTestId(\"resize-target\")\n *\n * // you can trigger with a custom change\n * act(() => {\n * observer.resizeElement(resizeTarget, { height: 100, width: 100 });\n * });\n * // expect resize changes\n * });\n * })\n * ```\n */\n resizeElement = (\n target: Element,\n changesOrGetEntry:\n | GetResizeObserverEntryMock\n | ResizeObserverEntrySize\n | ResizeObserverEntry = createResizeObserverEntry\n ): void => {\n if (!this.elements.has(target)) {\n throw new Error(\n \"The `ResizeObserverMock` is not watching the target element and cannot be resized\"\n );\n }\n\n let entry: ResizeObserverEntry;\n if (typeof changesOrGetEntry === \"function\") {\n entry = changesOrGetEntry(target);\n } else if (!(\"contentRect\" in changesOrGetEntry)) {\n entry = createResizeObserverEntry(target, changesOrGetEntry);\n } else {\n entry = changesOrGetEntry;\n }\n\n this.callback([entry], this);\n };\n\n /**\n * You'll normally want to use {@link resizeElement} instead, but this can be\n * used to resize all the watched elements at once.\n *\n * @example\n * ```tsx\n * import {\n * act,\n * createResizeObserverEntry,\n * render,\n * screen,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n *\n * const observer = setupResizeObserverMock();\n * const { container } = render(<Test />)\n * expect(container).toMatchSnapshot()\n *\n * const target1 = screen.getByTestId('target-1');\n * const target2 = screen.getByTestId('target-2');\n * const target3 = screen.getByTestId('target-3');\n *\n * act(() => {\n * observer.resizeAllElements((element) => {\n * let height: number | undefined;\n * let width: number | undefined;\n * switch (element) {\n * case target1:\n * height = 400;\n * width = 250;\n * break;\n * case target2:\n * height = 100;\n * width = 380;\n * break;\n * case target3:\n * height = 24;\n * width = 24;\n * break;\n * }\n *\n * return createResizeObserverEntry(element, { height, width });\n * });\n * });\n * expect(container).toMatchSnapshot()\n * ```\n */\n resizeAllElements = (getEntry = createResizeObserverEntry): void => {\n const entries = [...this.elements].map((element) => getEntry(element));\n this.callback(entries, this);\n };\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SetupResizeObserverMockOptions {\n /**\n * Set this to `true` to mimic the real `ResizeObserver` behavior where the\n * updates occur after an animation frame instead of invoking immediately.\n *\n * Keeping this as `false` is recommended since this option was only added to\n * make testing this function itself easier.\n *\n * @defaultValue `false`\n */\n raf?: boolean;\n\n /**\n * Keeping this as the `resizeObserverManager` is recommended since this\n * option was only added to make testing this function easier itself.\n *\n * @defaultValue `resizeObserverManager`\n */\n manager?: ResizeObserverManager;\n}\n\n/**\n * Initializes the `ResizeObserverMock` to be used for tests.\n *\n * @example Main Usage\n * ```tsx\n * import { useCallback, useState } from \"react\";\n * import {\n * cleanupResizeObserverAfterEach,\n * render,\n * screen,\n * setupResizeObserverMock,\n * } from \"@react-md/core/test-utils\";\n * import { useResizeObserver } from \"@react-md/core\";\n *\n * function ExampleComponent() {\n * const [size, setSize] = useState({ height: 0, width: 0 });\n * const ref = useResizeObserver({\n * onUpdate: useCallback((entry) => {\n * setSize({\n * height: entry.contentRect.height,\n * width: entry.contentRect.width,\n * });\n * });\n * });\n *\n * return (\n * <>\n * <div data-testid=\"size\">{JSON.stringify(size)}</div>\n * <div data-testid=\"resize-target\" ref={ref} />\n * </>\n * );\n * }\n *\n * cleanupResizeObserverAfterEach();\n *\n * describe(\"ExampleComponent\", () => {\n * it(\"should do stuff\", () => {\n * const observer = setupResizeObserverMock();\n * render(<ExampleComponent />)\n *\n * const size = screen.getByTestId(\"size\");\n * const resizeTarget = screen.getByTestId(\"resize-target\")\n *\n * // jsdom sets all element sizes to 0 by default\n * expect(size).toHaveTextContent(JSON.stringify({ height: 0, width: 0 }));\n *\n * // you can trigger with a custom change\n * act(() => {\n * observer.resizeElement(resizeTarget, { height: 100, width: 100 });\n * });\n * expect(size).toHaveTextContent(JSON.stringify({ height: 100, width: 100 }));\n *\n * // or you can mock the `getBoundingClientRect` result\n * jest.spyOn(resizeTarget, \"getBoundingClientRect\")\n * .mockReturnValue({\n * ...document.body.getBoundingClientRect(),\n * height: 200,\n * width: 200,\n * }):\n *\n * act(() => {\n * observer.resizeElement(resizeTarget);\n * });\n * expect(size).toHaveTextContent(JSON.stringify({ height: 200, width: 200 }));\n * });\n * })\n * ```\n *\n * @since 6.0.0\n */\nexport function setupResizeObserverMock(\n options: SetupResizeObserverMockOptions = {}\n): ResizeObserverMock {\n const { raf, manager = resizeObserverManager } = options;\n\n const resizeObserver = new ResizeObserverMock((entries) => {\n if (raf) {\n window.cancelAnimationFrame(manager.frame);\n manager.frame = window.requestAnimationFrame(() => {\n manager.handleResizeEntries(entries);\n });\n } else {\n manager.handleResizeEntries(entries);\n }\n });\n manager.sharedObserver = resizeObserver;\n return resizeObserver;\n}\n\n/**\n * @see {@link setupResizeObserverMock}\n * @since 6.0.0\n */\nexport function cleanupResizeObserverAfterEach(restoreAllMocks = true): void {\n afterEach(() => {\n resizeObserverManager.frame = 0;\n resizeObserverManager.subscriptions = new Map();\n resizeObserverManager.sharedObserver = undefined;\n\n if (restoreAllMocks) {\n jest.restoreAllMocks();\n }\n });\n}\n"],"names":["afterEach","jest","resizeObserverManager","createResizeObserverEntry","target","size","contentRect","getBoundingClientRect","height","width","boxSize","blockSize","inlineSize","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","ResizeObserverMock","constructor","callback","elements","observe","unobserve","disconnect","resizeElement","resizeAllElements","add","delete","clear","changesOrGetEntry","has","Error","entry","getEntry","entries","map","element","Set","setupResizeObserverMock","options","raf","manager","resizeObserver","window","cancelAnimationFrame","frame","requestAnimationFrame","handleResizeEntries","sharedObserver","cleanupResizeObserverAfterEach","restoreAllMocks","subscriptions","Map","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/data-testid.ts"],"sourcesContent":["/// <reference types=\"react\" />\n\ndeclare module \"react\" {\n interface HTMLAttributes<T>\n extends React.AriaAttributes,\n React.DOMAttributes<T> {\n \"data-testid\"?: string | number;\n }\n}\n"],"names":[],"mappings":"AAAA,+BAA+B"}
1
+ {"version":3,"sources":["../../src/test-utils/data-testid.ts"],"sourcesContent":["/// <reference types=\"react\" />\n\ndeclare module \"react\" {\n interface HTMLAttributes<T>\n extends React.AriaAttributes,\n React.DOMAttributes<T> {\n \"data-testid\"?: string | number;\n }\n}\n"],"names":[],"rangeMappings":"","mappings":"AAAA,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/index.ts"],"sourcesContent":["export * from \"@testing-library/react\";\nexport * from \"@testing-library/user-event\";\n\nexport * from \"./IntersectionObserver.js\";\nexport * from \"./ResizeObserver.js\";\nexport * from \"./matchMedia.js\";\nexport * from \"./render.js\";\nexport * from \"./timers.js\";\n"],"names":[],"mappings":"AAAA,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAE5C,cAAc,4BAA4B;AAC1C,cAAc,sBAAsB;AACpC,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,cAAc"}
1
+ {"version":3,"sources":["../../src/test-utils/index.ts"],"sourcesContent":["export * from \"@testing-library/react\";\nexport * from \"@testing-library/user-event\";\n\nexport * from \"./IntersectionObserver.js\";\nexport * from \"./ResizeObserver.js\";\nexport * from \"./matchMedia.js\";\nexport * from \"./render.js\";\nexport * from \"./timers.js\";\n"],"names":[],"rangeMappings":";;;;;;","mappings":"AAAA,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAE5C,cAAc,4BAA4B;AAC1C,cAAc,sBAAsB;AACpC,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/jest-setup.ts"],"sourcesContent":["import { beforeEach } from \"@jest/globals\";\nimport { INTERACTION_CONFIG } from \"../interaction/config.js\";\nimport { TRANSITION_CONFIG } from \"../transition/config.js\";\n\nbeforeEach(() => {\n // set the mode to `none` in tests since ripples require\n // `getBoundingClientRect()` to create correct CSS. You'll either see warnings\n // in the console around invalid css values or `NaN`.\n INTERACTION_CONFIG.mode = \"none\";\n\n // disable transitions in tests since it just makes it more difficult\n TRANSITION_CONFIG.disabled = true;\n});\n"],"names":["beforeEach","INTERACTION_CONFIG","TRANSITION_CONFIG","mode","disabled"],"mappings":"AAAA,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,iBAAiB,QAAQ,0BAA0B;AAE5DF,WAAW;IACT,wDAAwD;IACxD,8EAA8E;IAC9E,qDAAqD;IACrDC,mBAAmBE,IAAI,GAAG;IAE1B,qEAAqE;IACrED,kBAAkBE,QAAQ,GAAG;AAC/B"}
1
+ {"version":3,"sources":["../../src/test-utils/jest-setup.ts"],"sourcesContent":["import { beforeEach } from \"@jest/globals\";\nimport { INTERACTION_CONFIG } from \"../interaction/config.js\";\nimport { TRANSITION_CONFIG } from \"../transition/config.js\";\n\nbeforeEach(() => {\n // set the mode to `none` in tests since ripples require\n // `getBoundingClientRect()` to create correct CSS. You'll either see warnings\n // in the console around invalid css values or `NaN`.\n INTERACTION_CONFIG.mode = \"none\";\n\n // disable transitions in tests since it just makes it more difficult\n TRANSITION_CONFIG.disabled = true;\n});\n"],"names":["beforeEach","INTERACTION_CONFIG","TRANSITION_CONFIG","mode","disabled"],"rangeMappings":";;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,iBAAiB,QAAQ,0BAA0B;AAE5DF,WAAW;IACT,wDAAwD;IACxD,8EAA8E;IAC9E,qDAAqD;IACrDC,mBAAmBE,IAAI,GAAG;IAE1B,qEAAqE;IACrED,kBAAkBE,QAAQ,GAAG;AAC/B"}