@react-md/core 1.0.0-next.12 → 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 (1511) hide show
  1. package/.turbo/turbo-build.log +22 -22
  2. package/CHANGELOG.md +30 -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 +7 -9
  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/dialog/Dialog.d.ts +5 -6
  189. package/dist/dialog/Dialog.js +4 -5
  190. package/dist/dialog/Dialog.js.map +1 -1
  191. package/dist/dialog/DialogContainer.d.ts +2 -2
  192. package/dist/dialog/DialogContainer.js +1 -1
  193. package/dist/dialog/DialogContainer.js.map +1 -1
  194. package/dist/dialog/DialogTitle.d.ts +1 -1
  195. package/dist/dialog/DialogTitle.js.map +1 -1
  196. package/dist/dialog/FixedDialog.d.ts +1 -2
  197. package/dist/dialog/FixedDialog.js +1 -2
  198. package/dist/dialog/FixedDialog.js.map +1 -1
  199. package/dist/dialog/styles.d.ts +9 -9
  200. package/dist/dialog/styles.js +4 -4
  201. package/dist/dialog/styles.js.map +1 -1
  202. package/dist/divider/Divider.d.ts +2 -3
  203. package/dist/divider/Divider.js +1 -2
  204. package/dist/divider/Divider.js.map +1 -1
  205. package/dist/divider/styles.d.ts +2 -2
  206. package/dist/divider/styles.js +1 -1
  207. package/dist/divider/styles.js.map +1 -1
  208. package/dist/draggable/useDraggable.d.ts +17 -18
  209. package/dist/draggable/useDraggable.js +2 -2
  210. package/dist/draggable/useDraggable.js.map +1 -1
  211. package/dist/draggable/utils.d.ts +2 -2
  212. package/dist/draggable/utils.js +1 -1
  213. package/dist/draggable/utils.js.map +1 -1
  214. package/dist/expansion-panel/ExpansionList.d.ts +2 -2
  215. package/dist/expansion-panel/ExpansionList.js +1 -1
  216. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  217. package/dist/expansion-panel/ExpansionPanel.d.ts +8 -9
  218. package/dist/expansion-panel/ExpansionPanel.js +2 -3
  219. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  220. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +3 -4
  221. package/dist/expansion-panel/ExpansionPanelHeader.js +2 -3
  222. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  223. package/dist/expansion-panel/useExpansionList.d.ts +5 -6
  224. package/dist/expansion-panel/useExpansionList.js +4 -5
  225. package/dist/expansion-panel/useExpansionList.js.map +1 -1
  226. package/dist/expansion-panel/useExpansionPanels.d.ts +9 -14
  227. package/dist/expansion-panel/useExpansionPanels.js +3 -6
  228. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  229. package/dist/focus/useFocusContainer.d.ts +9 -10
  230. package/dist/focus/useFocusContainer.js +2 -3
  231. package/dist/focus/useFocusContainer.js.map +1 -1
  232. package/dist/focus/utils.d.ts +4 -5
  233. package/dist/focus/utils.js +3 -4
  234. package/dist/focus/utils.js.map +1 -1
  235. package/dist/form/Checkbox.d.ts +1 -2
  236. package/dist/form/Checkbox.js +1 -2
  237. package/dist/form/Checkbox.js.map +1 -1
  238. package/dist/form/Fieldset.d.ts +5 -6
  239. package/dist/form/Fieldset.js +2 -3
  240. package/dist/form/Fieldset.js.map +1 -1
  241. package/dist/form/FileInput.d.ts +6 -7
  242. package/dist/form/FileInput.js +3 -4
  243. package/dist/form/FileInput.js.map +1 -1
  244. package/dist/form/FormMessageContainer.d.ts +2 -2
  245. package/dist/form/FormMessageContainer.js +1 -1
  246. package/dist/form/FormMessageContainer.js.map +1 -1
  247. package/dist/form/FormMessageCounter.d.ts +4 -6
  248. package/dist/form/FormMessageCounter.js +2 -3
  249. package/dist/form/FormMessageCounter.js.map +1 -1
  250. package/dist/form/InputToggle.d.ts +11 -12
  251. package/dist/form/InputToggle.js +1 -1
  252. package/dist/form/InputToggle.js.map +1 -1
  253. package/dist/form/InputToggleIcon.d.ts +4 -6
  254. package/dist/form/InputToggleIcon.js +2 -3
  255. package/dist/form/InputToggleIcon.js.map +1 -1
  256. package/dist/form/Label.d.ts +2 -2
  257. package/dist/form/Label.js +2 -2
  258. package/dist/form/Label.js.map +1 -1
  259. package/dist/form/Legend.d.ts +2 -2
  260. package/dist/form/Legend.js +1 -1
  261. package/dist/form/Legend.js.map +1 -1
  262. package/dist/form/MenuItemCheckbox.d.ts +2 -3
  263. package/dist/form/MenuItemCheckbox.js +2 -3
  264. package/dist/form/MenuItemCheckbox.js.map +1 -1
  265. package/dist/form/MenuItemFileInput.d.ts +3 -5
  266. package/dist/form/MenuItemFileInput.js +2 -3
  267. package/dist/form/MenuItemFileInput.js.map +1 -1
  268. package/dist/form/MenuItemInputToggle.d.ts +7 -9
  269. package/dist/form/MenuItemInputToggle.js +1 -1
  270. package/dist/form/MenuItemInputToggle.js.map +1 -1
  271. package/dist/form/MenuItemRadio.d.ts +3 -5
  272. package/dist/form/MenuItemRadio.js +3 -5
  273. package/dist/form/MenuItemRadio.js.map +1 -1
  274. package/dist/form/MenuItemSwitch.d.ts +2 -3
  275. package/dist/form/MenuItemSwitch.js +2 -3
  276. package/dist/form/MenuItemSwitch.js.map +1 -1
  277. package/dist/form/MenuItemTextField.d.ts +2 -2
  278. package/dist/form/MenuItemTextField.js +1 -1
  279. package/dist/form/MenuItemTextField.js.map +1 -1
  280. package/dist/form/NativeSelect.d.ts +3 -5
  281. package/dist/form/NativeSelect.js +2 -4
  282. package/dist/form/NativeSelect.js.map +1 -1
  283. package/dist/form/OptGroup.d.ts +3 -4
  284. package/dist/form/OptGroup.js +2 -3
  285. package/dist/form/OptGroup.js.map +1 -1
  286. package/dist/form/Option.d.ts +5 -7
  287. package/dist/form/Option.js +3 -4
  288. package/dist/form/Option.js.map +1 -1
  289. package/dist/form/Password.d.ts +7 -13
  290. package/dist/form/Password.js +1 -2
  291. package/dist/form/Password.js.map +1 -1
  292. package/dist/form/Radio.d.ts +1 -2
  293. package/dist/form/Radio.js +1 -2
  294. package/dist/form/Radio.js.map +1 -1
  295. package/dist/form/ResizingTextAreaWrapper.d.ts +2 -2
  296. package/dist/form/ResizingTextAreaWrapper.js +1 -1
  297. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  298. package/dist/form/Select.d.ts +6 -9
  299. package/dist/form/Select.js +3 -5
  300. package/dist/form/Select.js.map +1 -1
  301. package/dist/form/SelectedOption.d.ts +2 -2
  302. package/dist/form/SelectedOption.js +1 -1
  303. package/dist/form/SelectedOption.js.map +1 -1
  304. package/dist/form/Slider.d.ts +16 -25
  305. package/dist/form/Slider.js.map +1 -1
  306. package/dist/form/SliderContainer.d.ts +6 -9
  307. package/dist/form/SliderContainer.js +2 -3
  308. package/dist/form/SliderContainer.js.map +1 -1
  309. package/dist/form/SliderMark.d.ts +2 -2
  310. package/dist/form/SliderMark.js +1 -1
  311. package/dist/form/SliderMark.js.map +1 -1
  312. package/dist/form/SliderMarkLabel.d.ts +3 -3
  313. package/dist/form/SliderMarkLabel.js +1 -1
  314. package/dist/form/SliderMarkLabel.js.map +1 -1
  315. package/dist/form/SliderThumb.d.ts +6 -8
  316. package/dist/form/SliderThumb.js +3 -4
  317. package/dist/form/SliderThumb.js.map +1 -1
  318. package/dist/form/SliderTrack.d.ts +4 -6
  319. package/dist/form/SliderTrack.js +2 -3
  320. package/dist/form/SliderTrack.js.map +1 -1
  321. package/dist/form/SliderValueMarks.d.ts +7 -9
  322. package/dist/form/SliderValueMarks.js +1 -1
  323. package/dist/form/SliderValueMarks.js.map +1 -1
  324. package/dist/form/SliderValueTooltip.d.ts +4 -6
  325. package/dist/form/SliderValueTooltip.js +2 -3
  326. package/dist/form/SliderValueTooltip.js.map +1 -1
  327. package/dist/form/Switch.d.ts +3 -4
  328. package/dist/form/Switch.js +2 -3
  329. package/dist/form/Switch.js.map +1 -1
  330. package/dist/form/TextArea.d.ts +2 -3
  331. package/dist/form/TextArea.js +1 -2
  332. package/dist/form/TextArea.js.map +1 -1
  333. package/dist/form/TextField.d.ts +7 -10
  334. package/dist/form/TextField.js +2 -4
  335. package/dist/form/TextField.js.map +1 -1
  336. package/dist/form/TextFieldAddon.d.ts +3 -3
  337. package/dist/form/TextFieldAddon.js +1 -1
  338. package/dist/form/TextFieldAddon.js.map +1 -1
  339. package/dist/form/fileUtils.d.ts +33 -36
  340. package/dist/form/fileUtils.js +14 -14
  341. package/dist/form/fileUtils.js.map +1 -1
  342. package/dist/form/formConfig.d.ts +2 -2
  343. package/dist/form/formConfig.js +2 -2
  344. package/dist/form/formConfig.js.map +1 -1
  345. package/dist/form/formMessageStyles.d.ts +5 -5
  346. package/dist/form/formMessageStyles.js +3 -3
  347. package/dist/form/formMessageStyles.js.map +1 -1
  348. package/dist/form/inputToggleStyles.d.ts +3 -3
  349. package/dist/form/inputToggleStyles.js +1 -1
  350. package/dist/form/inputToggleStyles.js.map +1 -1
  351. package/dist/form/menuItemInputToggleStyles.d.ts +8 -8
  352. package/dist/form/menuItemInputToggleStyles.js +4 -4
  353. package/dist/form/menuItemInputToggleStyles.js.map +1 -1
  354. package/dist/form/nativeSelectStyles.d.ts +4 -4
  355. package/dist/form/nativeSelectStyles.js +2 -2
  356. package/dist/form/nativeSelectStyles.js.map +1 -1
  357. package/dist/form/optionStyles.d.ts +2 -2
  358. package/dist/form/optionStyles.js +1 -1
  359. package/dist/form/optionStyles.js.map +1 -1
  360. package/dist/form/passwordStyles.d.ts +4 -4
  361. package/dist/form/passwordStyles.js +1 -1
  362. package/dist/form/passwordStyles.js.map +1 -1
  363. package/dist/form/selectStyles.d.ts +2 -2
  364. package/dist/form/selectStyles.js +1 -1
  365. package/dist/form/selectStyles.js.map +1 -1
  366. package/dist/form/selectUtils.d.ts +3 -3
  367. package/dist/form/selectUtils.js +2 -2
  368. package/dist/form/selectUtils.js.map +1 -1
  369. package/dist/form/sliderUtils.d.ts +9 -9
  370. package/dist/form/sliderUtils.js +4 -4
  371. package/dist/form/sliderUtils.js.map +1 -1
  372. package/dist/form/switchStyles.d.ts +2 -2
  373. package/dist/form/switchStyles.js +1 -1
  374. package/dist/form/switchStyles.js.map +1 -1
  375. package/dist/form/textAreaStyles.d.ts +4 -4
  376. package/dist/form/textAreaStyles.js +2 -2
  377. package/dist/form/textAreaStyles.js.map +1 -1
  378. package/dist/form/textFieldContainerStyles.d.ts +2 -2
  379. package/dist/form/textFieldContainerStyles.js +1 -1
  380. package/dist/form/textFieldContainerStyles.js.map +1 -1
  381. package/dist/form/textFieldStyles.d.ts +2 -2
  382. package/dist/form/textFieldStyles.js +1 -1
  383. package/dist/form/textFieldStyles.js.map +1 -1
  384. package/dist/form/types.d.ts +10 -10
  385. package/dist/form/types.js.map +1 -1
  386. package/dist/form/useCheckboxGroup.d.ts +15 -20
  387. package/dist/form/useCheckboxGroup.js.map +1 -1
  388. package/dist/form/useCombobox.d.ts +16 -16
  389. package/dist/form/useCombobox.js +2 -2
  390. package/dist/form/useCombobox.js.map +1 -1
  391. package/dist/form/useEditableCombobox.d.ts +3 -3
  392. package/dist/form/useEditableCombobox.js +1 -1
  393. package/dist/form/useEditableCombobox.js.map +1 -1
  394. package/dist/form/useFileUpload.d.ts +7 -8
  395. package/dist/form/useFileUpload.js +1 -1
  396. package/dist/form/useFileUpload.js.map +1 -1
  397. package/dist/form/useFormReset.d.ts +2 -2
  398. package/dist/form/useFormReset.js +1 -1
  399. package/dist/form/useFormReset.js.map +1 -1
  400. package/dist/form/useListboxProvider.d.ts +3 -3
  401. package/dist/form/useListboxProvider.js +2 -2
  402. package/dist/form/useListboxProvider.js.map +1 -1
  403. package/dist/form/useNumberField.d.ts +17 -25
  404. package/dist/form/useNumberField.js.map +1 -1
  405. package/dist/form/useRadioGroup.d.ts +12 -15
  406. package/dist/form/useRadioGroup.js +2 -3
  407. package/dist/form/useRadioGroup.js.map +1 -1
  408. package/dist/form/useRangeSlider.d.ts +8 -11
  409. package/dist/form/useRangeSlider.js +3 -5
  410. package/dist/form/useRangeSlider.js.map +1 -1
  411. package/dist/form/useSelectCombobox.d.ts +3 -3
  412. package/dist/form/useSelectCombobox.js +1 -1
  413. package/dist/form/useSelectCombobox.js.map +1 -1
  414. package/dist/form/useSlider.d.ts +7 -9
  415. package/dist/form/useSlider.js +3 -5
  416. package/dist/form/useSlider.js.map +1 -1
  417. package/dist/form/useTextField.d.ts +22 -31
  418. package/dist/form/useTextField.js.map +1 -1
  419. package/dist/form/utils.d.ts +7 -8
  420. package/dist/form/utils.js +5 -6
  421. package/dist/form/utils.js.map +1 -1
  422. package/dist/form/validation.d.ts +16 -16
  423. package/dist/form/validation.js +7 -7
  424. package/dist/form/validation.js.map +1 -1
  425. package/dist/hoverMode/useHoverMode.d.ts +9 -10
  426. package/dist/hoverMode/useHoverMode.js.map +1 -1
  427. package/dist/hoverMode/useHoverModeProvider.d.ts +11 -15
  428. package/dist/hoverMode/useHoverModeProvider.js +3 -4
  429. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  430. package/dist/icon/FontIcon.d.ts +1 -1
  431. package/dist/icon/FontIcon.js +1 -1
  432. package/dist/icon/FontIcon.js.map +1 -1
  433. package/dist/icon/IconRotator.d.ts +1 -1
  434. package/dist/icon/IconRotator.js.map +1 -1
  435. package/dist/icon/MaterialIcon.d.ts +2 -2
  436. package/dist/icon/MaterialIcon.js +1 -1
  437. package/dist/icon/MaterialIcon.js.map +1 -1
  438. package/dist/icon/MaterialSymbol.d.ts +3 -4
  439. package/dist/icon/MaterialSymbol.js +2 -3
  440. package/dist/icon/MaterialSymbol.js.map +1 -1
  441. package/dist/icon/SVGIcon.d.ts +0 -1
  442. package/dist/icon/SVGIcon.js.map +1 -1
  443. package/dist/icon/TextIconSpacing.d.ts +3 -5
  444. package/dist/icon/TextIconSpacing.js +2 -4
  445. package/dist/icon/TextIconSpacing.js.map +1 -1
  446. package/dist/icon/iconConfig.d.ts +14 -16
  447. package/dist/icon/iconConfig.js +5 -7
  448. package/dist/icon/iconConfig.js.map +1 -1
  449. package/dist/icon/material.d.ts +4 -4
  450. package/dist/icon/material.js +1 -1
  451. package/dist/icon/material.js.map +1 -1
  452. package/dist/icon/materialConfig.d.ts +12 -12
  453. package/dist/icon/materialConfig.js +2 -2
  454. package/dist/icon/materialConfig.js.map +1 -1
  455. package/dist/icon/styles.d.ts +8 -8
  456. package/dist/icon/styles.js +2 -2
  457. package/dist/icon/styles.js.map +1 -1
  458. package/dist/interaction/UserInteractionModeProvider.d.ts +1 -2
  459. package/dist/interaction/UserInteractionModeProvider.js +1 -2
  460. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  461. package/dist/interaction/config.d.ts +2 -2
  462. package/dist/interaction/config.js +1 -1
  463. package/dist/interaction/config.js.map +1 -1
  464. package/dist/interaction/types.d.ts +8 -8
  465. package/dist/interaction/types.js +1 -1
  466. package/dist/interaction/types.js.map +1 -1
  467. package/dist/interaction/useElementInteraction.d.ts +6 -7
  468. package/dist/interaction/useElementInteraction.js +3 -4
  469. package/dist/interaction/useElementInteraction.js.map +1 -1
  470. package/dist/interaction/useHigherContrastChildren.d.ts +2 -3
  471. package/dist/interaction/useHigherContrastChildren.js +2 -3
  472. package/dist/interaction/useHigherContrastChildren.js.map +1 -1
  473. package/dist/layout/LayoutAppBar.d.ts +4 -7
  474. package/dist/layout/LayoutAppBar.js +3 -6
  475. package/dist/layout/LayoutAppBar.js.map +1 -1
  476. package/dist/layout/LayoutNav.d.ts +4 -6
  477. package/dist/layout/LayoutNav.js +3 -5
  478. package/dist/layout/LayoutNav.js.map +1 -1
  479. package/dist/layout/LayoutWindowSplitter.d.ts +3 -4
  480. package/dist/layout/LayoutWindowSplitter.js +2 -3
  481. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  482. package/dist/layout/Main.d.ts +4 -5
  483. package/dist/layout/Main.js +2 -3
  484. package/dist/layout/Main.js.map +1 -1
  485. package/dist/layout/_layout.scss +12 -1
  486. package/dist/layout/layoutNavStyles.d.ts +2 -2
  487. package/dist/layout/layoutNavStyles.js +1 -1
  488. package/dist/layout/layoutNavStyles.js.map +1 -1
  489. package/dist/layout/layoutWindowSplitterStyles.d.ts +2 -2
  490. package/dist/layout/layoutWindowSplitterStyles.js +1 -1
  491. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
  492. package/dist/layout/mainStyles.d.ts +2 -2
  493. package/dist/layout/mainStyles.js +1 -1
  494. package/dist/layout/mainStyles.js.map +1 -1
  495. package/dist/layout/useExpandableLayout.d.ts +66 -14
  496. package/dist/layout/useExpandableLayout.js +50 -5
  497. package/dist/layout/useExpandableLayout.js.map +1 -1
  498. package/dist/layout/useHorizontalLayoutTransition.d.ts +4 -4
  499. package/dist/layout/useHorizontalLayoutTransition.js +2 -2
  500. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  501. package/dist/layout/useLayoutAppBarHeight.d.ts +7 -9
  502. package/dist/layout/useLayoutAppBarHeight.js +7 -8
  503. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  504. package/dist/layout/useLayoutTree.d.ts +6 -6
  505. package/dist/layout/useLayoutTree.js +1 -1
  506. package/dist/layout/useLayoutTree.js.map +1 -1
  507. package/dist/layout/useLayoutWindowSplitter.d.ts +5 -6
  508. package/dist/layout/useLayoutWindowSplitter.js +2 -3
  509. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  510. package/dist/layout/useMainTabIndex.d.ts +1 -1
  511. package/dist/layout/useMainTabIndex.js +1 -1
  512. package/dist/layout/useMainTabIndex.js.map +1 -1
  513. package/dist/layout/useResizableLayout.d.ts +54 -8
  514. package/dist/layout/useResizableLayout.js +51 -5
  515. package/dist/layout/useResizableLayout.js.map +1 -1
  516. package/dist/layout/useTemporaryLayout.d.ts +12 -12
  517. package/dist/layout/useTemporaryLayout.js +1 -1
  518. package/dist/layout/useTemporaryLayout.js.map +1 -1
  519. package/dist/link/Link.d.ts +10 -13
  520. package/dist/link/Link.js +5 -7
  521. package/dist/link/Link.js.map +1 -1
  522. package/dist/link/SkipToMainContent.d.ts +2 -4
  523. package/dist/link/SkipToMainContent.js +1 -2
  524. package/dist/link/SkipToMainContent.js.map +1 -1
  525. package/dist/link/styles.d.ts +4 -4
  526. package/dist/link/styles.js +2 -2
  527. package/dist/link/styles.js.map +1 -1
  528. package/dist/list/List.d.ts +3 -4
  529. package/dist/list/List.js +2 -3
  530. package/dist/list/List.js.map +1 -1
  531. package/dist/list/ListItem.d.ts +4 -6
  532. package/dist/list/ListItem.js +2 -4
  533. package/dist/list/ListItem.js.map +1 -1
  534. package/dist/list/ListItemChildren.d.ts +1 -2
  535. package/dist/list/ListItemChildren.js +1 -2
  536. package/dist/list/ListItemChildren.js.map +1 -1
  537. package/dist/list/ListSubheader.d.ts +3 -3
  538. package/dist/list/ListSubheader.js +1 -1
  539. package/dist/list/ListSubheader.js.map +1 -1
  540. package/dist/list/getListItemHeight.d.ts +1 -1
  541. package/dist/list/getListItemHeight.js.map +1 -1
  542. package/dist/list/listItemStyles.d.ts +9 -9
  543. package/dist/list/listItemStyles.js +3 -3
  544. package/dist/list/listItemStyles.js.map +1 -1
  545. package/dist/list/types.d.ts +11 -11
  546. package/dist/list/types.js.map +1 -1
  547. package/dist/media-queries/AppSizeProvider.d.ts +1 -2
  548. package/dist/media-queries/AppSizeProvider.js +1 -2
  549. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  550. package/dist/media-queries/useMediaQuery.d.ts +2 -3
  551. package/dist/media-queries/useMediaQuery.js +2 -3
  552. package/dist/media-queries/useMediaQuery.js.map +1 -1
  553. package/dist/menu/DropdownMenu.d.ts +7 -11
  554. package/dist/menu/DropdownMenu.js +4 -7
  555. package/dist/menu/DropdownMenu.js.map +1 -1
  556. package/dist/menu/Menu.d.ts +10 -13
  557. package/dist/menu/Menu.js +2 -3
  558. package/dist/menu/Menu.js.map +1 -1
  559. package/dist/menu/MenuBar.d.ts +3 -4
  560. package/dist/menu/MenuBar.js +3 -4
  561. package/dist/menu/MenuBar.js.map +1 -1
  562. package/dist/menu/MenuButton.d.ts +8 -8
  563. package/dist/menu/MenuButton.js +2 -2
  564. package/dist/menu/MenuButton.js.map +1 -1
  565. package/dist/menu/MenuConfigurationProvider.d.ts +8 -8
  566. package/dist/menu/MenuConfigurationProvider.js +5 -5
  567. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  568. package/dist/menu/MenuItem.d.ts +2 -2
  569. package/dist/menu/MenuItem.js +1 -1
  570. package/dist/menu/MenuItem.js.map +1 -1
  571. package/dist/menu/MenuItemButton.d.ts +2 -2
  572. package/dist/menu/MenuItemButton.js +1 -1
  573. package/dist/menu/MenuItemButton.js.map +1 -1
  574. package/dist/menu/MenuItemCircularProgress.d.ts +3 -4
  575. package/dist/menu/MenuItemCircularProgress.js +2 -3
  576. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  577. package/dist/menu/MenuItemGroup.d.ts +3 -4
  578. package/dist/menu/MenuItemGroup.js +2 -3
  579. package/dist/menu/MenuItemGroup.js.map +1 -1
  580. package/dist/menu/MenuItemSeparator.d.ts +2 -2
  581. package/dist/menu/MenuItemSeparator.js +1 -1
  582. package/dist/menu/MenuItemSeparator.js.map +1 -1
  583. package/dist/menu/MenuSheet.d.ts +7 -9
  584. package/dist/menu/MenuSheet.js +2 -3
  585. package/dist/menu/MenuSheet.js.map +1 -1
  586. package/dist/menu/MenuVisibilityProvider.d.ts +6 -8
  587. package/dist/menu/MenuVisibilityProvider.js +5 -6
  588. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  589. package/dist/menu/MenuWidget.d.ts +2 -2
  590. package/dist/menu/MenuWidget.js +1 -1
  591. package/dist/menu/MenuWidget.js.map +1 -1
  592. package/dist/menu/MenuWidgetKeyboardProvider.d.ts +2 -2
  593. package/dist/menu/MenuWidgetKeyboardProvider.js +1 -1
  594. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
  595. package/dist/menu/useContextMenu.d.ts +8 -12
  596. package/dist/menu/useContextMenu.js +3 -5
  597. package/dist/menu/useContextMenu.js.map +1 -1
  598. package/dist/menu/useMenuBarProvider.d.ts +6 -6
  599. package/dist/menu/useMenuBarProvider.js +3 -3
  600. package/dist/menu/useMenuBarProvider.js.map +1 -1
  601. package/dist/menu/utils.d.ts +2 -2
  602. package/dist/menu/utils.js +1 -1
  603. package/dist/menu/utils.js.map +1 -1
  604. package/dist/movement/constants.d.ts +3 -3
  605. package/dist/movement/constants.js +3 -3
  606. package/dist/movement/constants.js.map +1 -1
  607. package/dist/movement/types.d.ts +16 -17
  608. package/dist/movement/types.js +1 -1
  609. package/dist/movement/types.js.map +1 -1
  610. package/dist/movement/useKeyboardMovementProvider.d.ts +5 -8
  611. package/dist/movement/useKeyboardMovementProvider.js +6 -9
  612. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  613. package/dist/movement/utils.d.ts +13 -13
  614. package/dist/movement/utils.js +10 -10
  615. package/dist/movement/utils.js.map +1 -1
  616. package/dist/navigation/CollapsibleNavGroup.d.ts +29 -0
  617. package/dist/navigation/CollapsibleNavGroup.js +49 -0
  618. package/dist/navigation/CollapsibleNavGroup.js.map +1 -0
  619. package/dist/navigation/DefaultNavigationRenderer.d.ts +22 -0
  620. package/dist/navigation/DefaultNavigationRenderer.js +58 -0
  621. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -0
  622. package/dist/navigation/NavGroup.d.ts +18 -0
  623. package/dist/navigation/NavGroup.js +29 -0
  624. package/dist/navigation/NavGroup.js.map +1 -0
  625. package/dist/navigation/NavItem.d.ts +17 -0
  626. package/dist/navigation/NavItem.js +24 -0
  627. package/dist/navigation/NavItem.js.map +1 -0
  628. package/dist/navigation/NavItemButton.d.ts +26 -0
  629. package/dist/navigation/NavItemButton.js +65 -0
  630. package/dist/navigation/NavItemButton.js.map +1 -0
  631. package/dist/navigation/NavItemLink.d.ts +40 -0
  632. package/dist/navigation/NavItemLink.js +88 -0
  633. package/dist/navigation/NavItemLink.js.map +1 -0
  634. package/dist/navigation/NavSubheader.d.ts +16 -0
  635. package/dist/navigation/NavSubheader.js +26 -0
  636. package/dist/navigation/NavSubheader.js.map +1 -0
  637. package/dist/navigation/Navigation.d.ts +31 -0
  638. package/dist/navigation/Navigation.js +46 -0
  639. package/dist/navigation/Navigation.js.map +1 -0
  640. package/dist/navigation/_navigation.scss +99 -0
  641. package/dist/navigation/getHrefFromParents.d.ts +5 -0
  642. package/dist/navigation/getHrefFromParents.js +13 -0
  643. package/dist/navigation/getHrefFromParents.js.map +1 -0
  644. package/dist/navigation/navGroupStyles.d.ts +11 -0
  645. package/dist/navigation/navGroupStyles.js +13 -0
  646. package/dist/navigation/navGroupStyles.js.map +1 -0
  647. package/dist/navigation/navItemStyles.d.ts +33 -0
  648. package/dist/navigation/navItemStyles.js +31 -0
  649. package/dist/navigation/navItemStyles.js.map +1 -0
  650. package/dist/navigation/types.d.ts +137 -0
  651. package/dist/navigation/types.js +5 -0
  652. package/dist/navigation/types.js.map +1 -0
  653. package/dist/navigation/useActiveHeadingId.d.ts +54 -0
  654. package/dist/navigation/useActiveHeadingId.js +117 -0
  655. package/dist/navigation/useActiveHeadingId.js.map +1 -0
  656. package/dist/overlay/Overlay.d.ts +5 -6
  657. package/dist/overlay/Overlay.js +2 -3
  658. package/dist/overlay/Overlay.js.map +1 -1
  659. package/dist/overlay/overlayStyles.d.ts +4 -4
  660. package/dist/overlay/overlayStyles.js +3 -3
  661. package/dist/overlay/overlayStyles.js.map +1 -1
  662. package/dist/portal/Portal.d.ts +1 -2
  663. package/dist/portal/Portal.js +1 -2
  664. package/dist/portal/Portal.js.map +1 -1
  665. package/dist/portal/PortalContainerProvider.d.ts +4 -4
  666. package/dist/portal/PortalContainerProvider.js +2 -2
  667. package/dist/portal/PortalContainerProvider.js.map +1 -1
  668. package/dist/positioning/createVerticalPosition.d.ts +1 -1
  669. package/dist/positioning/createVerticalPosition.js.map +1 -1
  670. package/dist/positioning/getFixedPosition.js +1 -1
  671. package/dist/positioning/getFixedPosition.js.map +1 -1
  672. package/dist/positioning/types.d.ts +4 -4
  673. package/dist/positioning/types.js.map +1 -1
  674. package/dist/positioning/useFixedPositioning.d.ts +8 -9
  675. package/dist/positioning/useFixedPositioning.js +2 -3
  676. package/dist/positioning/useFixedPositioning.js.map +1 -1
  677. package/dist/positioning/utils.d.ts +3 -3
  678. package/dist/positioning/utils.js +1 -1
  679. package/dist/positioning/utils.js.map +1 -1
  680. package/dist/progress/CircularProgress.d.ts +7 -10
  681. package/dist/progress/CircularProgress.js +3 -5
  682. package/dist/progress/CircularProgress.js.map +1 -1
  683. package/dist/progress/LinearProgress.d.ts +4 -6
  684. package/dist/progress/LinearProgress.js +3 -5
  685. package/dist/progress/LinearProgress.js.map +1 -1
  686. package/dist/progress/types.d.ts +5 -5
  687. package/dist/progress/types.js +1 -1
  688. package/dist/progress/types.js.map +1 -1
  689. package/dist/responsive-item/ResponsiveItemContainer.d.ts +10 -15
  690. package/dist/responsive-item/ResponsiveItemContainer.js +5 -8
  691. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
  692. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +6 -7
  693. package/dist/responsive-item/ResponsiveItemOverlay.js +3 -4
  694. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  695. package/dist/responsive-item/styles.d.ts +2 -2
  696. package/dist/responsive-item/styles.js +1 -1
  697. package/dist/responsive-item/styles.js.map +1 -1
  698. package/dist/scroll/ScrollLock.d.ts +1 -1
  699. package/dist/scroll/ScrollLock.js +1 -1
  700. package/dist/scroll/ScrollLock.js.map +1 -1
  701. package/dist/scroll/useScrollLock.d.ts +2 -3
  702. package/dist/scroll/useScrollLock.js +2 -3
  703. package/dist/scroll/useScrollLock.js.map +1 -1
  704. package/dist/searching/caseInsensitive.d.ts +9 -13
  705. package/dist/searching/caseInsensitive.js +1 -1
  706. package/dist/searching/caseInsensitive.js.map +1 -1
  707. package/dist/searching/fuzzy.d.ts +4 -5
  708. package/dist/searching/fuzzy.js +1 -1
  709. package/dist/searching/fuzzy.js.map +1 -1
  710. package/dist/searching/toSearchQuery.d.ts +1 -1
  711. package/dist/searching/toSearchQuery.js +1 -1
  712. package/dist/searching/toSearchQuery.js.map +1 -1
  713. package/dist/searching/types.d.ts +2 -2
  714. package/dist/searching/types.js +1 -1
  715. package/dist/searching/types.js.map +1 -1
  716. package/dist/searching/useFuzzyMatch.d.ts +3 -3
  717. package/dist/searching/useFuzzyMatch.js +1 -1
  718. package/dist/searching/useFuzzyMatch.js.map +1 -1
  719. package/dist/searching/utils.d.ts +3 -3
  720. package/dist/searching/utils.js +2 -2
  721. package/dist/searching/utils.js.map +1 -1
  722. package/dist/segmented-button/SegmentedButton.d.ts +3 -4
  723. package/dist/segmented-button/SegmentedButton.js +2 -3
  724. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  725. package/dist/segmented-button/SegmentedButtonContainer.d.ts +3 -4
  726. package/dist/segmented-button/SegmentedButtonContainer.js +2 -3
  727. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  728. package/dist/segmented-button/segmentedButtonContainerStyles.d.ts +2 -2
  729. package/dist/segmented-button/segmentedButtonContainerStyles.js +1 -1
  730. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
  731. package/dist/segmented-button/segmentedButtonStyles.d.ts +2 -2
  732. package/dist/segmented-button/segmentedButtonStyles.js +1 -1
  733. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  734. package/dist/sheet/Sheet.d.ts +1 -1
  735. package/dist/sheet/Sheet.js.map +1 -1
  736. package/dist/sheet/styles.d.ts +3 -3
  737. package/dist/sheet/styles.js +1 -1
  738. package/dist/sheet/styles.js.map +1 -1
  739. package/dist/snackbar/DefaultToastRenderer.d.ts +2 -2
  740. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  741. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  742. package/dist/snackbar/Snackbar.d.ts +3 -4
  743. package/dist/snackbar/Snackbar.js +2 -3
  744. package/dist/snackbar/Snackbar.js.map +1 -1
  745. package/dist/snackbar/Toast.d.ts +3 -3
  746. package/dist/snackbar/Toast.js +1 -1
  747. package/dist/snackbar/Toast.js.map +1 -1
  748. package/dist/snackbar/ToastActionButton.d.ts +2 -2
  749. package/dist/snackbar/ToastActionButton.js +1 -1
  750. package/dist/snackbar/ToastActionButton.js.map +1 -1
  751. package/dist/snackbar/ToastCloseButton.d.ts +2 -2
  752. package/dist/snackbar/ToastCloseButton.js +1 -1
  753. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  754. package/dist/snackbar/ToastContent.d.ts +2 -2
  755. package/dist/snackbar/ToastContent.js +1 -1
  756. package/dist/snackbar/ToastContent.js.map +1 -1
  757. package/dist/snackbar/ToastManager.d.ts +17 -18
  758. package/dist/snackbar/ToastManager.js +21 -19
  759. package/dist/snackbar/ToastManager.js.map +1 -1
  760. package/dist/snackbar/ToastManagerProvider.d.ts +6 -6
  761. package/dist/snackbar/ToastManagerProvider.js +5 -5
  762. package/dist/snackbar/ToastManagerProvider.js.map +1 -1
  763. package/dist/snackbar/snackbarStyles.d.ts +4 -5
  764. package/dist/snackbar/snackbarStyles.js +1 -1
  765. package/dist/snackbar/snackbarStyles.js.map +1 -1
  766. package/dist/snackbar/toastContentStyles.d.ts +2 -2
  767. package/dist/snackbar/toastContentStyles.js +1 -1
  768. package/dist/snackbar/toastContentStyles.js.map +1 -1
  769. package/dist/snackbar/toastStyles.d.ts +2 -2
  770. package/dist/snackbar/toastStyles.js +1 -1
  771. package/dist/snackbar/toastStyles.js.map +1 -1
  772. package/dist/snackbar/useCurrentToastActions.d.ts +3 -3
  773. package/dist/snackbar/useCurrentToastActions.js +2 -2
  774. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  775. package/dist/suspense/CircularProgressSuspense.d.ts +3 -4
  776. package/dist/suspense/CircularProgressSuspense.js +2 -3
  777. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  778. package/dist/suspense/NullSuspense.d.ts +3 -4
  779. package/dist/suspense/NullSuspense.js +2 -3
  780. package/dist/suspense/NullSuspense.js.map +1 -1
  781. package/dist/table/Table.d.ts +1 -2
  782. package/dist/table/Table.js +1 -2
  783. package/dist/table/Table.js.map +1 -1
  784. package/dist/table/TableCell.d.ts +7 -7
  785. package/dist/table/TableCell.js.map +1 -1
  786. package/dist/table/TableCellContent.d.ts +3 -3
  787. package/dist/table/TableCellContent.js.map +1 -1
  788. package/dist/table/TableCheckbox.d.ts +11 -15
  789. package/dist/table/TableCheckbox.js +4 -6
  790. package/dist/table/TableCheckbox.js.map +1 -1
  791. package/dist/table/TableContainerProvider.d.ts +3 -3
  792. package/dist/table/TableContainerProvider.js +2 -2
  793. package/dist/table/TableContainerProvider.js.map +1 -1
  794. package/dist/table/TableFooter.d.ts +2 -2
  795. package/dist/table/TableFooter.js +1 -1
  796. package/dist/table/TableFooter.js.map +1 -1
  797. package/dist/table/TableHeader.d.ts +2 -2
  798. package/dist/table/TableHeader.js +1 -1
  799. package/dist/table/TableHeader.js.map +1 -1
  800. package/dist/table/TableRadio.d.ts +7 -9
  801. package/dist/table/TableRadio.js +2 -3
  802. package/dist/table/TableRadio.js.map +1 -1
  803. package/dist/table/tableCellStyles.d.ts +2 -2
  804. package/dist/table/tableCellStyles.js +1 -1
  805. package/dist/table/tableCellStyles.js.map +1 -1
  806. package/dist/table/tableContainerStyles.d.ts +2 -2
  807. package/dist/table/tableContainerStyles.js +1 -1
  808. package/dist/table/tableContainerStyles.js.map +1 -1
  809. package/dist/table/tableFooterStyles.d.ts +1 -1
  810. package/dist/table/tableFooterStyles.js.map +1 -1
  811. package/dist/table/tableHeaderStyles.d.ts +2 -2
  812. package/dist/table/tableHeaderStyles.js +1 -1
  813. package/dist/table/tableHeaderStyles.js.map +1 -1
  814. package/dist/table/tableRowStyles.d.ts +2 -2
  815. package/dist/table/tableRowStyles.js +1 -1
  816. package/dist/table/tableRowStyles.js.map +1 -1
  817. package/dist/table/tableStyles.d.ts +2 -2
  818. package/dist/table/tableStyles.js +1 -1
  819. package/dist/table/tableStyles.js.map +1 -1
  820. package/dist/table/types.d.ts +7 -9
  821. package/dist/table/types.js +1 -1
  822. package/dist/table/types.js.map +1 -1
  823. package/dist/tabs/Tab.d.ts +4 -4
  824. package/dist/tabs/Tab.js +1 -1
  825. package/dist/tabs/Tab.js.map +1 -1
  826. package/dist/tabs/TabList.d.ts +2 -2
  827. package/dist/tabs/TabList.js +1 -1
  828. package/dist/tabs/TabList.js.map +1 -1
  829. package/dist/tabs/TabListScrollButton.d.ts +3 -3
  830. package/dist/tabs/TabListScrollButton.js +1 -1
  831. package/dist/tabs/TabListScrollButton.js.map +1 -1
  832. package/dist/tabs/tabIndicatorStyles.d.ts +2 -2
  833. package/dist/tabs/tabIndicatorStyles.js +1 -1
  834. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  835. package/dist/tabs/tabListScrollButtonStyles.d.ts +4 -4
  836. package/dist/tabs/tabListScrollButtonStyles.js +2 -2
  837. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  838. package/dist/tabs/tabListStyles.d.ts +2 -2
  839. package/dist/tabs/tabListStyles.js +1 -1
  840. package/dist/tabs/tabListStyles.js.map +1 -1
  841. package/dist/tabs/tabStyles.d.ts +2 -2
  842. package/dist/tabs/tabStyles.js +1 -1
  843. package/dist/tabs/tabStyles.js.map +1 -1
  844. package/dist/tabs/useTabs.d.ts +15 -20
  845. package/dist/tabs/useTabs.js +1 -1
  846. package/dist/tabs/useTabs.js.map +1 -1
  847. package/dist/tabs/utils.d.ts +3 -3
  848. package/dist/tabs/utils.js +1 -1
  849. package/dist/tabs/utils.js.map +1 -1
  850. package/dist/test-utils/ResizeObserver.d.ts +9 -11
  851. package/dist/test-utils/ResizeObserver.js +6 -8
  852. package/dist/test-utils/ResizeObserver.js.map +1 -1
  853. package/dist/test-utils/matchMedia.d.ts +13 -17
  854. package/dist/test-utils/matchMedia.js +9 -11
  855. package/dist/test-utils/matchMedia.js.map +1 -1
  856. package/dist/test-utils/render.d.ts +2 -2
  857. package/dist/test-utils/render.js +1 -1
  858. package/dist/test-utils/render.js.map +1 -1
  859. package/dist/test-utils/timers.d.ts +2 -3
  860. package/dist/test-utils/timers.js +2 -3
  861. package/dist/test-utils/timers.js.map +1 -1
  862. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +2 -2
  863. package/dist/theme/LocalStorageColorSchemeProvider.js +1 -1
  864. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  865. package/dist/theme/ThemeProvider.d.ts +17 -20
  866. package/dist/theme/ThemeProvider.js +7 -8
  867. package/dist/theme/ThemeProvider.js.map +1 -1
  868. package/dist/theme/types.d.ts +3 -3
  869. package/dist/theme/types.js +1 -1
  870. package/dist/theme/types.js.map +1 -1
  871. package/dist/theme/useCSSVariables.d.ts +7 -9
  872. package/dist/theme/useCSSVariables.js +1 -1
  873. package/dist/theme/useCSSVariables.js.map +1 -1
  874. package/dist/theme/useColorScheme.d.ts +6 -7
  875. package/dist/theme/useColorScheme.js +2 -3
  876. package/dist/theme/useColorScheme.js.map +1 -1
  877. package/dist/theme/useColorSchemeMetaTag.d.ts +2 -2
  878. package/dist/theme/useColorSchemeMetaTag.js +1 -1
  879. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  880. package/dist/theme/useColorSchemeProvider.d.ts +2 -2
  881. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  882. package/dist/theme/usePrefersColorScheme.d.ts +1 -1
  883. package/dist/theme/usePrefersColorScheme.js +1 -1
  884. package/dist/theme/usePrefersColorScheme.js.map +1 -1
  885. package/dist/theme/utils.d.ts +1 -1
  886. package/dist/theme/utils.js +1 -1
  887. package/dist/theme/utils.js.map +1 -1
  888. package/dist/tooltip/Tooltip.d.ts +3 -5
  889. package/dist/tooltip/Tooltip.js +1 -2
  890. package/dist/tooltip/Tooltip.js.map +1 -1
  891. package/dist/tooltip/TooltipHoverModeProvider.d.ts +5 -6
  892. package/dist/tooltip/TooltipHoverModeProvider.js +3 -4
  893. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  894. package/dist/tooltip/constants.d.ts +9 -9
  895. package/dist/tooltip/constants.js +9 -9
  896. package/dist/tooltip/constants.js.map +1 -1
  897. package/dist/tooltip/tooltipStyles.d.ts +2 -2
  898. package/dist/tooltip/tooltipStyles.js +1 -1
  899. package/dist/tooltip/tooltipStyles.js.map +1 -1
  900. package/dist/tooltip/useTooltip.d.ts +18 -26
  901. package/dist/tooltip/useTooltip.js +4 -7
  902. package/dist/tooltip/useTooltip.js.map +1 -1
  903. package/dist/tooltip/useTooltipPosition.d.ts +4 -4
  904. package/dist/tooltip/useTooltipPosition.js +1 -1
  905. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  906. package/dist/transition/CSSTransition.d.ts +3 -4
  907. package/dist/transition/CSSTransition.js +2 -3
  908. package/dist/transition/CSSTransition.js.map +1 -1
  909. package/dist/transition/Collapse.d.ts +5 -8
  910. package/dist/transition/Collapse.js +3 -5
  911. package/dist/transition/Collapse.js.map +1 -1
  912. package/dist/transition/CrossFade.d.ts +5 -8
  913. package/dist/transition/CrossFade.js +3 -5
  914. package/dist/transition/CrossFade.js.map +1 -1
  915. package/dist/transition/ScaleTransition.d.ts +7 -10
  916. package/dist/transition/ScaleTransition.js +4 -6
  917. package/dist/transition/ScaleTransition.js.map +1 -1
  918. package/dist/transition/SkeletonPlaceholder.d.ts +4 -6
  919. package/dist/transition/SkeletonPlaceholder.js +3 -5
  920. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  921. package/dist/transition/Slide.d.ts +2 -2
  922. package/dist/transition/Slide.js +1 -1
  923. package/dist/transition/Slide.js.map +1 -1
  924. package/dist/transition/SlideContainer.d.ts +9 -13
  925. package/dist/transition/SlideContainer.js +4 -6
  926. package/dist/transition/SlideContainer.js.map +1 -1
  927. package/dist/transition/collapseStyles.d.ts +2 -2
  928. package/dist/transition/collapseStyles.js +1 -1
  929. package/dist/transition/collapseStyles.js.map +1 -1
  930. package/dist/transition/config.d.ts +2 -2
  931. package/dist/transition/config.js +2 -2
  932. package/dist/transition/config.js.map +1 -1
  933. package/dist/transition/skeletonPlaceholderUtils.d.ts +3 -3
  934. package/dist/transition/skeletonPlaceholderUtils.js +2 -2
  935. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  936. package/dist/transition/types.d.ts +34 -37
  937. package/dist/transition/types.js +1 -1
  938. package/dist/transition/types.js.map +1 -1
  939. package/dist/transition/useCSSTransition.d.ts +4 -7
  940. package/dist/transition/useCSSTransition.js +4 -7
  941. package/dist/transition/useCSSTransition.js.map +1 -1
  942. package/dist/transition/useCarousel.d.ts +6 -7
  943. package/dist/transition/useCarousel.js +2 -3
  944. package/dist/transition/useCarousel.js.map +1 -1
  945. package/dist/transition/useCollapseTransition.d.ts +10 -13
  946. package/dist/transition/useCollapseTransition.js +4 -6
  947. package/dist/transition/useCollapseTransition.js.map +1 -1
  948. package/dist/transition/useCrossFadeTransition.d.ts +5 -6
  949. package/dist/transition/useCrossFadeTransition.js +4 -5
  950. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  951. package/dist/transition/useMaxWidthTransition.d.ts +2 -2
  952. package/dist/transition/useMaxWidthTransition.js +1 -1
  953. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  954. package/dist/transition/useScaleTransition.d.ts +8 -11
  955. package/dist/transition/useScaleTransition.js +7 -10
  956. package/dist/transition/useScaleTransition.js.map +1 -1
  957. package/dist/transition/useSkeletonPlaceholder.d.ts +6 -10
  958. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  959. package/dist/transition/useSlideTransition.d.ts +5 -6
  960. package/dist/transition/useSlideTransition.js +4 -5
  961. package/dist/transition/useSlideTransition.js.map +1 -1
  962. package/dist/transition/useTransition.d.ts +1 -1
  963. package/dist/transition/useTransition.js +1 -1
  964. package/dist/transition/useTransition.js.map +1 -1
  965. package/dist/transition/utils.d.ts +6 -6
  966. package/dist/transition/utils.js +3 -3
  967. package/dist/transition/utils.js.map +1 -1
  968. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  969. package/dist/tree/DefaultTreeItemRenderer.js +1 -1
  970. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  971. package/dist/tree/Tree.d.ts +7 -11
  972. package/dist/tree/Tree.js +4 -6
  973. package/dist/tree/Tree.js.map +1 -1
  974. package/dist/tree/TreeGroup.d.ts +3 -3
  975. package/dist/tree/TreeGroup.js +1 -1
  976. package/dist/tree/TreeGroup.js.map +1 -1
  977. package/dist/tree/TreeItem.d.ts +3 -4
  978. package/dist/tree/TreeItem.js +2 -3
  979. package/dist/tree/TreeItem.js.map +1 -1
  980. package/dist/tree/TreeItemExpander.d.ts +2 -2
  981. package/dist/tree/TreeItemExpander.js +1 -1
  982. package/dist/tree/TreeItemExpander.js.map +1 -1
  983. package/dist/tree/TreeProvider.d.ts +6 -6
  984. package/dist/tree/TreeProvider.js +2 -2
  985. package/dist/tree/TreeProvider.js.map +1 -1
  986. package/dist/tree/styles.d.ts +10 -10
  987. package/dist/tree/styles.js +5 -5
  988. package/dist/tree/styles.js.map +1 -1
  989. package/dist/tree/types.d.ts +6 -7
  990. package/dist/tree/types.js.map +1 -1
  991. package/dist/tree/useTree.d.ts +4 -5
  992. package/dist/tree/useTree.js +2 -3
  993. package/dist/tree/useTree.js.map +1 -1
  994. package/dist/tree/useTreeExpansion.d.ts +2 -2
  995. package/dist/tree/useTreeExpansion.js +1 -1
  996. package/dist/tree/useTreeExpansion.js.map +1 -1
  997. package/dist/tree/useTreeItems.d.ts +7 -7
  998. package/dist/tree/useTreeItems.js +2 -2
  999. package/dist/tree/useTreeItems.js.map +1 -1
  1000. package/dist/tree/useTreeMovement.d.ts +3 -3
  1001. package/dist/tree/useTreeMovement.js +3 -3
  1002. package/dist/tree/useTreeMovement.js.map +1 -1
  1003. package/dist/tree/useTreeSelection.d.ts +2 -2
  1004. package/dist/tree/useTreeSelection.js +1 -1
  1005. package/dist/tree/useTreeSelection.js.map +1 -1
  1006. package/dist/tree/utils.d.ts +2 -2
  1007. package/dist/tree/utils.js +2 -2
  1008. package/dist/tree/utils.js.map +1 -1
  1009. package/dist/types.d.ts +14 -16
  1010. package/dist/types.js +1 -1
  1011. package/dist/types.js.map +1 -1
  1012. package/dist/typography/SrOnly.d.ts +1 -2
  1013. package/dist/typography/SrOnly.js +1 -2
  1014. package/dist/typography/SrOnly.js.map +1 -1
  1015. package/dist/typography/TextContainer.d.ts +3 -4
  1016. package/dist/typography/TextContainer.js +2 -3
  1017. package/dist/typography/TextContainer.js.map +1 -1
  1018. package/dist/typography/Typography.d.ts +3 -4
  1019. package/dist/typography/Typography.js +1 -2
  1020. package/dist/typography/Typography.js.map +1 -1
  1021. package/dist/typography/WritingDirectionProvider.d.ts +10 -13
  1022. package/dist/typography/WritingDirectionProvider.js +6 -9
  1023. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  1024. package/dist/typography/textContainerStyles.d.ts +3 -4
  1025. package/dist/typography/textContainerStyles.js +2 -3
  1026. package/dist/typography/textContainerStyles.js.map +1 -1
  1027. package/dist/typography/typographyStyles.d.ts +6 -8
  1028. package/dist/typography/typographyStyles.js +3 -5
  1029. package/dist/typography/typographyStyles.js.map +1 -1
  1030. package/dist/useAsyncAction.d.ts +7 -9
  1031. package/dist/useAsyncAction.js +3 -5
  1032. package/dist/useAsyncAction.js.map +1 -1
  1033. package/dist/useDebouncedFunction.d.ts +3 -4
  1034. package/dist/useDebouncedFunction.js +2 -3
  1035. package/dist/useDebouncedFunction.js.map +1 -1
  1036. package/dist/useDropzone.d.ts +9 -14
  1037. package/dist/useDropzone.js +4 -7
  1038. package/dist/useDropzone.js.map +1 -1
  1039. package/dist/useElementSize.d.ts +26 -5
  1040. package/dist/useElementSize.js +7 -5
  1041. package/dist/useElementSize.js.map +1 -1
  1042. package/dist/useEnsuredId.d.ts +2 -3
  1043. package/dist/useEnsuredId.js +2 -3
  1044. package/dist/useEnsuredId.js.map +1 -1
  1045. package/dist/useEnsuredRef.d.ts +3 -4
  1046. package/dist/useEnsuredRef.js +2 -3
  1047. package/dist/useEnsuredRef.js.map +1 -1
  1048. package/dist/useEnsuredState.d.ts +2 -2
  1049. package/dist/useEnsuredState.js +1 -1
  1050. package/dist/useEnsuredState.js.map +1 -1
  1051. package/dist/useHtmlClassName.d.ts +1 -1
  1052. package/dist/useHtmlClassName.js +1 -1
  1053. package/dist/useHtmlClassName.js.map +1 -1
  1054. package/dist/useIntersectionObserver.d.ts +13 -20
  1055. package/dist/useIntersectionObserver.js +2 -3
  1056. package/dist/useIntersectionObserver.js.map +1 -1
  1057. package/dist/useLocalStorage.d.ts +17 -22
  1058. package/dist/useLocalStorage.js +9 -13
  1059. package/dist/useLocalStorage.js.map +1 -1
  1060. package/dist/usePageInactive.d.ts +3 -3
  1061. package/dist/usePageInactive.js +1 -1
  1062. package/dist/usePageInactive.js.map +1 -1
  1063. package/dist/useResizeListener.d.ts +3 -4
  1064. package/dist/useResizeListener.js +2 -3
  1065. package/dist/useResizeListener.js.map +1 -1
  1066. package/dist/useResizeObserver.d.ts +8 -10
  1067. package/dist/useResizeObserver.js +4 -5
  1068. package/dist/useResizeObserver.js.map +1 -1
  1069. package/dist/useThrottledFunction.d.ts +3 -4
  1070. package/dist/useThrottledFunction.js +2 -3
  1071. package/dist/useThrottledFunction.js.map +1 -1
  1072. package/dist/useToggle.d.ts +2 -3
  1073. package/dist/useToggle.js +1 -2
  1074. package/dist/useToggle.js.map +1 -1
  1075. package/dist/useUnmounted.d.ts +2 -3
  1076. package/dist/useUnmounted.js +2 -3
  1077. package/dist/useUnmounted.js.map +1 -1
  1078. package/dist/useWindowSize.d.ts +3 -4
  1079. package/dist/useWindowSize.js +2 -3
  1080. package/dist/useWindowSize.js.map +1 -1
  1081. package/dist/utils/RenderRecursively.d.ts +26 -7
  1082. package/dist/utils/RenderRecursively.js +19 -3
  1083. package/dist/utils/RenderRecursively.js.map +1 -1
  1084. package/dist/utils/alphaNumericSort.d.ts +6 -11
  1085. package/dist/utils/alphaNumericSort.js +1 -1
  1086. package/dist/utils/alphaNumericSort.js.map +1 -1
  1087. package/dist/utils/applyRef.d.ts +1 -2
  1088. package/dist/utils/applyRef.js +1 -2
  1089. package/dist/utils/applyRef.js.map +1 -1
  1090. package/dist/utils/bem.d.ts +2 -3
  1091. package/dist/utils/bem.js +2 -3
  1092. package/dist/utils/bem.js.map +1 -1
  1093. package/dist/utils/getClientPosition.d.ts +4 -4
  1094. package/dist/utils/getClientPosition.js +2 -2
  1095. package/dist/utils/getClientPosition.js.map +1 -1
  1096. package/dist/utils/getMiddleOfRange.d.ts +2 -2
  1097. package/dist/utils/getMiddleOfRange.js +1 -1
  1098. package/dist/utils/getMiddleOfRange.js.map +1 -1
  1099. package/dist/utils/getPercentage.d.ts +3 -4
  1100. package/dist/utils/getPercentage.js +3 -4
  1101. package/dist/utils/getPercentage.js.map +1 -1
  1102. package/dist/utils/getRangeDefaultValue.d.ts +2 -2
  1103. package/dist/utils/getRangeDefaultValue.js +1 -1
  1104. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  1105. package/dist/utils/getRangeSteps.d.ts +3 -4
  1106. package/dist/utils/getRangeSteps.js +3 -4
  1107. package/dist/utils/getRangeSteps.js.map +1 -1
  1108. package/dist/utils/identity.d.ts +1 -1
  1109. package/dist/utils/identity.js +1 -1
  1110. package/dist/utils/identity.js.map +1 -1
  1111. package/dist/utils/isElementVisible.d.ts +3 -4
  1112. package/dist/utils/isElementVisible.js +3 -4
  1113. package/dist/utils/isElementVisible.js.map +1 -1
  1114. package/dist/utils/loop.d.ts +2 -2
  1115. package/dist/utils/loop.js +2 -2
  1116. package/dist/utils/loop.js.map +1 -1
  1117. package/dist/utils/nearest.d.ts +3 -4
  1118. package/dist/utils/nearest.js +3 -4
  1119. package/dist/utils/nearest.js.map +1 -1
  1120. package/dist/utils/parseCssLengthUnit.d.ts +2 -4
  1121. package/dist/utils/parseCssLengthUnit.js +2 -4
  1122. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  1123. package/dist/utils/randomInt.d.ts +2 -2
  1124. package/dist/utils/randomInt.js +2 -2
  1125. package/dist/utils/randomInt.js.map +1 -1
  1126. package/dist/utils/wait.d.ts +2 -3
  1127. package/dist/utils/wait.js +2 -3
  1128. package/dist/utils/wait.js.map +1 -1
  1129. package/dist/utils/withinRange.d.ts +3 -4
  1130. package/dist/utils/withinRange.js +3 -4
  1131. package/dist/utils/withinRange.js.map +1 -1
  1132. package/dist/window-splitter/WindowSplitter.d.ts +5 -5
  1133. package/dist/window-splitter/WindowSplitter.js +2 -2
  1134. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  1135. package/dist/window-splitter/useWindowSplitter.d.ts +6 -7
  1136. package/dist/window-splitter/useWindowSplitter.js +2 -3
  1137. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  1138. package/package.json +19 -13
  1139. package/src/CoreProviders.tsx +3 -3
  1140. package/src/NoSsr.tsx +3 -4
  1141. package/src/RootHtml.tsx +3 -4
  1142. package/src/SsrProvider.tsx +3 -3
  1143. package/src/_core.scss +5 -0
  1144. package/src/app-bar/AppBar.tsx +11 -14
  1145. package/src/app-bar/AppBarTitle.tsx +7 -9
  1146. package/src/avatar/Avatar.tsx +5 -6
  1147. package/src/avatar/__tests__/Avatar.tsx +1 -1
  1148. package/src/avatar/styles.ts +4 -4
  1149. package/src/badge/Badge.tsx +4 -6
  1150. package/src/box/Box.tsx +16 -9
  1151. package/src/box/__tests__/Box.tsx +158 -0
  1152. package/src/box/__tests__/__snapshots__/Box.tsx.snap +544 -0
  1153. package/src/box/_box.scss +1 -1
  1154. package/src/box/styles.ts +9 -9
  1155. package/src/button/AsyncButton.tsx +5 -7
  1156. package/src/button/Button.tsx +4 -8
  1157. package/src/button/ButtonUnstyled.tsx +2 -2
  1158. package/src/button/FloatingActionButton.tsx +5 -5
  1159. package/src/button/TooltippedButton.tsx +9 -13
  1160. package/src/button/buttonStyles.ts +3 -3
  1161. package/src/button/buttonUnstyledStyles.ts +2 -2
  1162. package/src/card/Card.tsx +3 -4
  1163. package/src/card/CardContent.tsx +2 -4
  1164. package/src/card/CardFooter.tsx +2 -2
  1165. package/src/card/CardHeader.tsx +10 -12
  1166. package/src/card/CardSubtitle.tsx +2 -2
  1167. package/src/card/CardTitle.tsx +2 -2
  1168. package/src/card/ClickableCard.tsx +3 -4
  1169. package/src/card/styles.ts +15 -15
  1170. package/src/chip/Chip.tsx +10 -14
  1171. package/src/chip/styles.ts +4 -4
  1172. package/src/cssUtils.ts +10 -10
  1173. package/src/dialog/Dialog.tsx +5 -6
  1174. package/src/dialog/DialogContainer.tsx +2 -2
  1175. package/src/dialog/DialogTitle.tsx +1 -1
  1176. package/src/dialog/FixedDialog.tsx +1 -2
  1177. package/src/dialog/styles.ts +9 -9
  1178. package/src/divider/Divider.tsx +2 -3
  1179. package/src/divider/styles.ts +2 -2
  1180. package/src/draggable/useDraggable.ts +18 -19
  1181. package/src/draggable/utils.ts +2 -2
  1182. package/src/expansion-panel/ExpansionList.tsx +2 -2
  1183. package/src/expansion-panel/ExpansionPanel.tsx +8 -9
  1184. package/src/expansion-panel/ExpansionPanelHeader.tsx +3 -4
  1185. package/src/expansion-panel/useExpansionList.ts +6 -7
  1186. package/src/expansion-panel/useExpansionPanels.ts +9 -14
  1187. package/src/focus/useFocusContainer.ts +9 -10
  1188. package/src/focus/utils.ts +4 -5
  1189. package/src/form/Checkbox.tsx +1 -2
  1190. package/src/form/Fieldset.tsx +5 -6
  1191. package/src/form/FileInput.tsx +6 -7
  1192. package/src/form/FormMessageContainer.tsx +2 -2
  1193. package/src/form/FormMessageCounter.tsx +4 -6
  1194. package/src/form/InputToggle.tsx +11 -12
  1195. package/src/form/InputToggleIcon.tsx +4 -6
  1196. package/src/form/Label.tsx +2 -2
  1197. package/src/form/Legend.tsx +2 -2
  1198. package/src/form/MenuItemCheckbox.tsx +2 -3
  1199. package/src/form/MenuItemFileInput.tsx +3 -5
  1200. package/src/form/MenuItemInputToggle.tsx +7 -9
  1201. package/src/form/MenuItemRadio.tsx +3 -5
  1202. package/src/form/MenuItemSwitch.tsx +2 -3
  1203. package/src/form/MenuItemTextField.tsx +2 -2
  1204. package/src/form/NativeSelect.tsx +3 -5
  1205. package/src/form/OptGroup.tsx +3 -4
  1206. package/src/form/Option.tsx +5 -7
  1207. package/src/form/Password.tsx +7 -13
  1208. package/src/form/Radio.tsx +1 -2
  1209. package/src/form/ResizingTextAreaWrapper.tsx +2 -2
  1210. package/src/form/Select.tsx +6 -9
  1211. package/src/form/SelectedOption.tsx +2 -2
  1212. package/src/form/Slider.tsx +16 -25
  1213. package/src/form/SliderContainer.tsx +6 -9
  1214. package/src/form/SliderMark.tsx +2 -2
  1215. package/src/form/SliderMarkLabel.tsx +3 -3
  1216. package/src/form/SliderThumb.tsx +8 -10
  1217. package/src/form/SliderTrack.tsx +4 -6
  1218. package/src/form/SliderValueMarks.tsx +7 -9
  1219. package/src/form/SliderValueTooltip.tsx +4 -6
  1220. package/src/form/Switch.tsx +3 -4
  1221. package/src/form/TextArea.tsx +2 -3
  1222. package/src/form/TextField.tsx +7 -10
  1223. package/src/form/TextFieldAddon.tsx +3 -3
  1224. package/src/form/fileUtils.ts +33 -36
  1225. package/src/form/formConfig.ts +2 -2
  1226. package/src/form/formMessageStyles.ts +5 -5
  1227. package/src/form/inputToggleStyles.ts +3 -3
  1228. package/src/form/menuItemInputToggleStyles.ts +8 -8
  1229. package/src/form/nativeSelectStyles.ts +4 -4
  1230. package/src/form/optionStyles.ts +2 -2
  1231. package/src/form/passwordStyles.ts +4 -4
  1232. package/src/form/selectStyles.ts +2 -2
  1233. package/src/form/selectUtils.ts +4 -4
  1234. package/src/form/sliderUtils.ts +9 -9
  1235. package/src/form/switchStyles.ts +2 -2
  1236. package/src/form/textAreaStyles.ts +4 -4
  1237. package/src/form/textFieldContainerStyles.ts +2 -2
  1238. package/src/form/textFieldStyles.ts +2 -2
  1239. package/src/form/types.ts +10 -10
  1240. package/src/form/useCheckboxGroup.ts +15 -20
  1241. package/src/form/useCombobox.ts +18 -16
  1242. package/src/form/useEditableCombobox.ts +3 -3
  1243. package/src/form/useFileUpload.ts +7 -8
  1244. package/src/form/useFormReset.ts +2 -2
  1245. package/src/form/useListboxProvider.ts +3 -3
  1246. package/src/form/useNumberField.ts +17 -25
  1247. package/src/form/useRadioGroup.ts +14 -18
  1248. package/src/form/useRangeSlider.ts +8 -11
  1249. package/src/form/useSelectCombobox.ts +3 -3
  1250. package/src/form/useSlider.ts +7 -9
  1251. package/src/form/useTextField.ts +22 -31
  1252. package/src/form/utils.ts +7 -8
  1253. package/src/form/validation.ts +18 -18
  1254. package/src/hoverMode/useHoverMode.ts +9 -10
  1255. package/src/hoverMode/useHoverModeProvider.ts +11 -15
  1256. package/src/icon/FontIcon.tsx +1 -1
  1257. package/src/icon/IconRotator.tsx +1 -1
  1258. package/src/icon/MaterialIcon.tsx +2 -2
  1259. package/src/icon/MaterialSymbol.tsx +3 -4
  1260. package/src/icon/SVGIcon.tsx +0 -1
  1261. package/src/icon/TextIconSpacing.tsx +3 -5
  1262. package/src/icon/iconConfig.tsx +14 -16
  1263. package/src/icon/material.ts +4 -4
  1264. package/src/icon/materialConfig.ts +12 -12
  1265. package/src/icon/styles.ts +8 -8
  1266. package/src/interaction/UserInteractionModeProvider.tsx +1 -2
  1267. package/src/interaction/config.ts +2 -2
  1268. package/src/interaction/types.ts +8 -8
  1269. package/src/interaction/useElementInteraction.tsx +6 -7
  1270. package/src/interaction/useHigherContrastChildren.tsx +2 -3
  1271. package/src/layout/LayoutAppBar.tsx +4 -7
  1272. package/src/layout/LayoutNav.tsx +4 -6
  1273. package/src/layout/LayoutWindowSplitter.tsx +3 -4
  1274. package/src/layout/Main.tsx +4 -5
  1275. package/src/layout/__tests__/LayoutAppBar.tsx +23 -0
  1276. package/src/layout/__tests__/useExpandableLayout.tsx +8 -0
  1277. package/src/layout/_layout.scss +12 -1
  1278. package/src/layout/layoutNavStyles.ts +2 -2
  1279. package/src/layout/layoutWindowSplitterStyles.ts +2 -2
  1280. package/src/layout/mainStyles.ts +2 -2
  1281. package/src/layout/useExpandableLayout.ts +85 -23
  1282. package/src/layout/useHorizontalLayoutTransition.ts +8 -8
  1283. package/src/layout/useLayoutAppBarHeight.ts +10 -13
  1284. package/src/layout/useLayoutTree.ts +10 -10
  1285. package/src/layout/useLayoutWindowSplitter.ts +5 -6
  1286. package/src/layout/useMainTabIndex.ts +1 -1
  1287. package/src/layout/useResizableLayout.ts +54 -8
  1288. package/src/layout/useTemporaryLayout.ts +12 -13
  1289. package/src/link/Link.tsx +10 -13
  1290. package/src/link/SkipToMainContent.tsx +2 -4
  1291. package/src/link/styles.ts +4 -4
  1292. package/src/list/List.tsx +3 -4
  1293. package/src/list/ListItem.tsx +4 -6
  1294. package/src/list/ListItemChildren.tsx +1 -2
  1295. package/src/list/ListSubheader.tsx +3 -3
  1296. package/src/list/getListItemHeight.ts +1 -1
  1297. package/src/list/listItemStyles.ts +9 -9
  1298. package/src/list/types.ts +11 -11
  1299. package/src/media-queries/AppSizeProvider.tsx +1 -2
  1300. package/src/media-queries/useMediaQuery.ts +2 -3
  1301. package/src/menu/DropdownMenu.tsx +7 -11
  1302. package/src/menu/Menu.tsx +10 -13
  1303. package/src/menu/MenuBar.tsx +3 -4
  1304. package/src/menu/MenuButton.tsx +8 -8
  1305. package/src/menu/MenuConfigurationProvider.tsx +10 -10
  1306. package/src/menu/MenuItem.tsx +2 -2
  1307. package/src/menu/MenuItemButton.tsx +2 -2
  1308. package/src/menu/MenuItemCircularProgress.tsx +3 -4
  1309. package/src/menu/MenuItemGroup.tsx +3 -4
  1310. package/src/menu/MenuItemSeparator.tsx +2 -2
  1311. package/src/menu/MenuSheet.tsx +7 -9
  1312. package/src/menu/MenuVisibilityProvider.tsx +8 -10
  1313. package/src/menu/MenuWidget.tsx +2 -2
  1314. package/src/menu/MenuWidgetKeyboardProvider.tsx +2 -2
  1315. package/src/menu/useContextMenu.ts +8 -12
  1316. package/src/menu/useMenuBarProvider.ts +6 -6
  1317. package/src/menu/utils.ts +2 -2
  1318. package/src/movement/constants.ts +3 -3
  1319. package/src/movement/types.ts +16 -17
  1320. package/src/movement/useKeyboardMovementProvider.ts +6 -9
  1321. package/src/movement/utils.ts +13 -13
  1322. package/src/navigation/CollapsibleNavGroup.tsx +94 -0
  1323. package/src/navigation/DefaultNavigationRenderer.tsx +71 -0
  1324. package/src/navigation/NavGroup.tsx +39 -0
  1325. package/src/navigation/NavItem.tsx +29 -0
  1326. package/src/navigation/NavItemButton.tsx +104 -0
  1327. package/src/navigation/NavItemLink.tsx +163 -0
  1328. package/src/navigation/NavSubheader.tsx +36 -0
  1329. package/src/navigation/Navigation.tsx +91 -0
  1330. package/src/navigation/__tests__/Navigation.tsx +97 -0
  1331. package/src/navigation/__tests__/__snapshots__/Navigation.tsx.snap +165 -0
  1332. package/src/navigation/_navigation.scss +99 -0
  1333. package/src/navigation/getHrefFromParents.ts +15 -0
  1334. package/src/navigation/navGroupStyles.ts +21 -0
  1335. package/src/navigation/navItemStyles.ts +71 -0
  1336. package/src/navigation/types.ts +166 -0
  1337. package/src/navigation/useActiveHeadingId.ts +190 -0
  1338. package/src/overlay/Overlay.tsx +5 -6
  1339. package/src/overlay/overlayStyles.ts +4 -4
  1340. package/src/portal/Portal.tsx +1 -2
  1341. package/src/portal/PortalContainerProvider.tsx +4 -4
  1342. package/src/positioning/createVerticalPosition.ts +1 -1
  1343. package/src/positioning/getFixedPosition.ts +1 -1
  1344. package/src/positioning/types.ts +4 -4
  1345. package/src/positioning/useFixedPositioning.ts +8 -9
  1346. package/src/positioning/utils.ts +3 -3
  1347. package/src/progress/CircularProgress.tsx +7 -10
  1348. package/src/progress/LinearProgress.tsx +4 -6
  1349. package/src/progress/types.ts +5 -5
  1350. package/src/responsive-item/ResponsiveItemContainer.tsx +10 -15
  1351. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -7
  1352. package/src/responsive-item/styles.ts +2 -2
  1353. package/src/scroll/ScrollLock.tsx +1 -1
  1354. package/src/scroll/useScrollLock.ts +2 -3
  1355. package/src/searching/caseInsensitive.ts +9 -13
  1356. package/src/searching/fuzzy.ts +4 -5
  1357. package/src/searching/toSearchQuery.ts +1 -1
  1358. package/src/searching/types.ts +2 -2
  1359. package/src/searching/useFuzzyMatch.ts +3 -3
  1360. package/src/searching/utils.ts +3 -3
  1361. package/src/segmented-button/SegmentedButton.tsx +3 -4
  1362. package/src/segmented-button/SegmentedButtonContainer.tsx +3 -4
  1363. package/src/segmented-button/segmentedButtonContainerStyles.ts +2 -2
  1364. package/src/segmented-button/segmentedButtonStyles.ts +2 -2
  1365. package/src/sheet/Sheet.tsx +1 -1
  1366. package/src/sheet/styles.ts +3 -3
  1367. package/src/snackbar/DefaultToastRenderer.tsx +2 -2
  1368. package/src/snackbar/Snackbar.tsx +3 -4
  1369. package/src/snackbar/Toast.tsx +3 -3
  1370. package/src/snackbar/ToastActionButton.tsx +2 -2
  1371. package/src/snackbar/ToastCloseButton.tsx +2 -2
  1372. package/src/snackbar/ToastContent.tsx +2 -2
  1373. package/src/snackbar/ToastManager.tsx +30 -24
  1374. package/src/snackbar/ToastManagerProvider.tsx +6 -6
  1375. package/src/snackbar/__tests__/ToastManagerProvider.tsx +34 -0
  1376. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +21 -21
  1377. package/src/snackbar/snackbarStyles.ts +4 -5
  1378. package/src/snackbar/toastContentStyles.ts +2 -2
  1379. package/src/snackbar/toastStyles.ts +2 -2
  1380. package/src/snackbar/useCurrentToastActions.ts +3 -3
  1381. package/src/suspense/CircularProgressSuspense.tsx +3 -4
  1382. package/src/suspense/NullSuspense.tsx +3 -4
  1383. package/src/table/Table.tsx +1 -2
  1384. package/src/table/TableCell.tsx +7 -7
  1385. package/src/table/TableCellContent.tsx +3 -3
  1386. package/src/table/TableCheckbox.tsx +11 -15
  1387. package/src/table/TableContainerProvider.tsx +3 -3
  1388. package/src/table/TableFooter.tsx +2 -2
  1389. package/src/table/TableHeader.tsx +2 -2
  1390. package/src/table/TableRadio.tsx +7 -9
  1391. package/src/table/tableCellStyles.ts +2 -2
  1392. package/src/table/tableContainerStyles.ts +2 -2
  1393. package/src/table/tableFooterStyles.ts +1 -1
  1394. package/src/table/tableHeaderStyles.ts +2 -2
  1395. package/src/table/tableRowStyles.ts +2 -2
  1396. package/src/table/tableStyles.ts +2 -2
  1397. package/src/table/types.ts +7 -9
  1398. package/src/tabs/Tab.tsx +4 -4
  1399. package/src/tabs/TabList.tsx +2 -2
  1400. package/src/tabs/TabListScrollButton.tsx +3 -3
  1401. package/src/tabs/tabIndicatorStyles.ts +2 -2
  1402. package/src/tabs/tabListScrollButtonStyles.ts +4 -4
  1403. package/src/tabs/tabListStyles.ts +2 -2
  1404. package/src/tabs/tabStyles.ts +2 -2
  1405. package/src/tabs/useTabs.ts +16 -21
  1406. package/src/tabs/utils.ts +3 -3
  1407. package/src/test-utils/ResizeObserver.ts +9 -11
  1408. package/src/test-utils/matchMedia.ts +13 -17
  1409. package/src/test-utils/render.tsx +2 -2
  1410. package/src/test-utils/timers.ts +2 -3
  1411. package/src/theme/LocalStorageColorSchemeProvider.tsx +2 -2
  1412. package/src/theme/ThemeProvider.tsx +18 -21
  1413. package/src/theme/types.ts +3 -3
  1414. package/src/theme/useCSSVariables.ts +8 -10
  1415. package/src/theme/useColorScheme.ts +6 -7
  1416. package/src/theme/useColorSchemeMetaTag.ts +2 -2
  1417. package/src/theme/useColorSchemeProvider.ts +2 -2
  1418. package/src/theme/usePrefersColorScheme.ts +1 -1
  1419. package/src/theme/utils.ts +1 -1
  1420. package/src/tooltip/Tooltip.tsx +3 -5
  1421. package/src/tooltip/TooltipHoverModeProvider.tsx +5 -6
  1422. package/src/tooltip/constants.ts +9 -9
  1423. package/src/tooltip/tooltipStyles.ts +2 -2
  1424. package/src/tooltip/useTooltip.ts +18 -26
  1425. package/src/tooltip/useTooltipPosition.ts +4 -4
  1426. package/src/transition/CSSTransition.tsx +3 -4
  1427. package/src/transition/Collapse.tsx +5 -8
  1428. package/src/transition/CrossFade.tsx +5 -8
  1429. package/src/transition/ScaleTransition.tsx +7 -10
  1430. package/src/transition/SkeletonPlaceholder.tsx +4 -6
  1431. package/src/transition/Slide.tsx +2 -2
  1432. package/src/transition/SlideContainer.tsx +9 -13
  1433. package/src/transition/collapseStyles.ts +2 -2
  1434. package/src/transition/config.ts +2 -2
  1435. package/src/transition/skeletonPlaceholderUtils.ts +3 -3
  1436. package/src/transition/types.ts +34 -37
  1437. package/src/transition/useCSSTransition.ts +4 -7
  1438. package/src/transition/useCarousel.ts +6 -7
  1439. package/src/transition/useCollapseTransition.ts +10 -13
  1440. package/src/transition/useCrossFadeTransition.ts +5 -6
  1441. package/src/transition/useMaxWidthTransition.ts +2 -2
  1442. package/src/transition/useScaleTransition.ts +8 -11
  1443. package/src/transition/useSkeletonPlaceholder.ts +6 -10
  1444. package/src/transition/useSlideTransition.ts +5 -6
  1445. package/src/transition/useTransition.ts +1 -1
  1446. package/src/transition/utils.ts +6 -6
  1447. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  1448. package/src/tree/Tree.tsx +8 -12
  1449. package/src/tree/TreeGroup.tsx +3 -3
  1450. package/src/tree/TreeItem.tsx +3 -4
  1451. package/src/tree/TreeItemExpander.tsx +2 -2
  1452. package/src/tree/TreeProvider.tsx +6 -6
  1453. package/src/tree/styles.ts +10 -10
  1454. package/src/tree/types.ts +6 -7
  1455. package/src/tree/useTree.ts +4 -5
  1456. package/src/tree/useTreeExpansion.ts +2 -2
  1457. package/src/tree/useTreeItems.ts +7 -7
  1458. package/src/tree/useTreeMovement.ts +5 -5
  1459. package/src/tree/useTreeSelection.ts +2 -2
  1460. package/src/tree/utils.ts +2 -2
  1461. package/src/types.ts +14 -16
  1462. package/src/typography/SrOnly.tsx +1 -2
  1463. package/src/typography/TextContainer.tsx +3 -4
  1464. package/src/typography/Typography.tsx +3 -4
  1465. package/src/typography/WritingDirectionProvider.tsx +10 -13
  1466. package/src/typography/textContainerStyles.ts +3 -4
  1467. package/src/typography/typographyStyles.ts +6 -8
  1468. package/src/useAsyncAction.ts +7 -9
  1469. package/src/useDebouncedFunction.ts +3 -4
  1470. package/src/useDropzone.ts +9 -14
  1471. package/src/useElementSize.ts +31 -6
  1472. package/src/useEnsuredId.ts +2 -3
  1473. package/src/useEnsuredRef.ts +3 -4
  1474. package/src/useEnsuredState.ts +2 -2
  1475. package/src/useHtmlClassName.ts +1 -1
  1476. package/src/useIntersectionObserver.ts +13 -20
  1477. package/src/useLocalStorage.ts +17 -22
  1478. package/src/usePageInactive.ts +3 -3
  1479. package/src/useResizeListener.ts +3 -4
  1480. package/src/useResizeObserver.ts +8 -10
  1481. package/src/useThrottledFunction.ts +3 -4
  1482. package/src/useToggle.ts +2 -3
  1483. package/src/useUnmounted.ts +2 -3
  1484. package/src/useWindowSize.ts +3 -4
  1485. package/src/utils/RenderRecursively.tsx +42 -9
  1486. package/src/utils/__tests__/RenderRecursively.tsx +1 -1
  1487. package/src/utils/alphaNumericSort.ts +6 -11
  1488. package/src/utils/applyRef.ts +1 -2
  1489. package/src/utils/bem.ts +2 -3
  1490. package/src/utils/getClientPosition.ts +4 -4
  1491. package/src/utils/getMiddleOfRange.ts +2 -2
  1492. package/src/utils/getPercentage.ts +3 -4
  1493. package/src/utils/getRangeDefaultValue.ts +2 -2
  1494. package/src/utils/getRangeSteps.ts +3 -4
  1495. package/src/utils/identity.ts +1 -1
  1496. package/src/utils/isElementVisible.ts +3 -4
  1497. package/src/utils/loop.ts +2 -2
  1498. package/src/utils/nearest.ts +3 -4
  1499. package/src/utils/parseCssLengthUnit.ts +2 -4
  1500. package/src/utils/randomInt.ts +2 -2
  1501. package/src/utils/wait.ts +2 -3
  1502. package/src/utils/withinRange.ts +3 -4
  1503. package/src/window-splitter/WindowSplitter.tsx +5 -5
  1504. package/src/window-splitter/useWindowSplitter.ts +6 -7
  1505. package/tsdoc.json +14 -0
  1506. package/.turbo/turbo-lint.log +0 -12
  1507. package/.turbo/turbo-typecheck.log +0 -4
  1508. package/dist/index.d.ts +0 -346
  1509. package/dist/index.js +0 -347
  1510. package/dist/index.js.map +0 -1
  1511. package/src/index.ts +0 -349
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/NativeSelect.tsx"],"sourcesContent":["import {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n type SelectHTMLAttributes,\n} from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { nativeSelect, nativeSelectContainer } from \"./nativeSelectStyles.js\";\nimport {\n type FormFieldOptions,\n type UserAgentAutocompleteProps,\n} from \"./types.js\";\n\n/**\n * @remarks \\@since 6.0.0 Added support for {@link UserAgentAutocompleteProps}\n */\nexport interface NativeSelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"autoComplete\">,\n UserAgentAutocompleteProps,\n FormFieldOptions {\n /**\n * A custom dropdown icon to use instead of the browser's default select\n * dropdown icon.\n *\n * Set this to `null` if the browser's default icon should be used instead.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * This applies custom inline styles to the `<select>` element since the\n * `style` prop is applied to the container element instead.\n */\n selectStyle?: CSSProperties;\n\n /**\n * This applies custom className to the `<select>` element since the\n * `className` prop is applied to the container element instead.\n */\n selectClassName?: string;\n\n /**\n * This should be a list of `<option>` elements for specific values within the\n * `<select>`.\n *\n * Check out the {@link NativeSelect} for examples around using \"placeholder\"\n * text and requiring a value to be selected.\n */\n children: ReactNode;\n\n /**\n * Optional props to provide to the {@link TextFieldContainer} component.\n * There probably isn't any real use for this prop other than if you need to\n * add a `ref` for some DOM behavior.\n */\n containerProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n}\n\n/**\n * **Server Component**\n *\n * This component is a wrapper for the native `<select>` field that applies the\n * same theming as `TextField` and `TextArea` components. This component might\n * not be used much since the `Select` offers more styling options.\n *\n * @example\n * Simple Example\n * ```tsx\n * <NativeSelect label=\"Label\">\n * <option value=\"a\">Value 1</option>\n * <option value=\"b\">Value 2</option>\n * <option value=\"c\">Value 3</option>\n * <option value=\"d\">Value 4</option>\n * </NativeSelect>\n * ```\n *\n * @example\n * Required Value Example\n * ```tsx\n * function Example(): ReactElement {\n * // using `defaultValue=\"\"` makes it so the first option selected by default\n * // and considered an \"invalid\" value since it is `disabled`\n * //\n * // a `name` must be set with `required` so that the form validation will\n * // fire if the value is still the empty string when the form is submitted\n * //\n * // the first `<option>` is kind of like placeholder text since it doesn't\n * // have a value and is disabled by default\n *\n * return (\n * <NativeSelect\n * label=\"State\"\n * name=\"state\"\n * required\n * defaultValue=\"\"\n * >\n * <option value=\"\" disabled>Choose a state</option>\n * {states.map(({ name, code }) => (\n * <option key={code} value={code}>{name}</option>\n * ))}\n * </NativeSelect>\n * );\n * }\n * ```\n */\nexport const NativeSelect = forwardRef<HTMLSelectElement, NativeSelectProps>(\n function NativeSelect(props, ref) {\n const {\n id: propId,\n style,\n className,\n icon: propIcon,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n selectStyle,\n selectClassName,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n dense = false,\n error = false,\n active = false,\n inline = false,\n stretch = false,\n leftAddon,\n rightAddon: propRightAddon,\n leftAddonProps,\n rightAddonProps,\n disableLeftAddonStyles = false,\n disableRightAddonStyles = false,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n containerProps,\n children,\n ...remaining\n } = props;\n const { disabled = false, readOnly = false, multiple = false } = props;\n const id = useEnsuredId(propId, \"select\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const icon = getIcon(\"dropdown\", propIcon);\n const underlined = theme === \"underline\" || theme === \"filled\";\n\n let rightAddon = propRightAddon;\n if (typeof propRightAddon === \"undefined\" && !multiple) {\n rightAddon = icon;\n }\n\n return (\n <FormMessageContainer\n {...messageContainerProps}\n messageProps={messageProps}\n >\n <TextFieldContainer\n {...containerProps}\n style={style}\n className={nativeSelectContainer({\n label: !!label,\n multiple,\n underlined,\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n stretch={stretch}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonProps={leftAddonProps}\n rightAddon={rightAddon}\n rightAddonProps={rightAddonProps}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n >\n <select\n {...remaining}\n id={id}\n ref={ref}\n autoComplete={autoComplete}\n name={name}\n disabled={disabled}\n style={selectStyle}\n className={nativeSelect({\n icon: !!icon,\n className: selectClassName,\n })}\n >\n {children}\n </select>\n {label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n )}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n }\n);\n"],"names":["forwardRef","getIcon","useEnsuredId","FormMessageContainer","Label","TextFieldContainer","getFormConfig","nativeSelect","nativeSelectContainer","NativeSelect","props","ref","id","propId","style","className","icon","propIcon","label","labelProps","labelStyle","labelClassName","selectStyle","selectClassName","autoCompleteValue","autoComplete","name","dense","error","active","inline","stretch","leftAddon","rightAddon","propRightAddon","leftAddonProps","rightAddonProps","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","containerProps","children","remaining","disabled","readOnly","multiple","underlined","select","htmlFor","floating"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SACEA,UAAU,QAKL,QAAQ;AACf,SAASC,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,YAAY,EAAEC,qBAAqB,QAAQ,0BAA0B;AAoD9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CC,GACD,OAAO,MAAMC,6BAAeT,WAC1B,SAASS,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,SAAS,EACTC,MAAMC,QAAQ,EACdC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,eAAeD,iBAAiB,EAChCE,OAAOF,iBAAiB,EACxBG,QAAQ,KAAK,EACbC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,SAAS,EACTC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,eAAe,EACfC,yBAAyB,KAAK,EAC9BC,0BAA0B,KAAK,EAC/BC,OAAOC,SAAS,EAChBC,oBAAoBC,sBAAsB,EAC1CC,YAAY,EACZC,qBAAqB,EACrBC,cAAc,EACdC,QAAQ,EACR,GAAGC,WACJ,GAAGrC;IACJ,MAAM,EAAEsC,WAAW,KAAK,EAAEC,WAAW,KAAK,EAAEC,WAAW,KAAK,EAAE,GAAGxC;IACjE,MAAME,KAAKV,aAAaW,QAAQ;IAChC,MAAM0B,QAAQjC,cAAc,SAASkC;IACrC,MAAMC,qBAAqBnC,cACzB,sBACAoC;IAEF,MAAM1B,OAAOf,QAAQ,YAAYgB;IACjC,MAAMkC,aAAaZ,UAAU,eAAeA,UAAU;IAEtD,IAAIN,aAAaC;IACjB,IAAI,OAAOA,mBAAmB,eAAe,CAACgB,UAAU;QACtDjB,aAAajB;IACf;IAEA,qBACE,KAACb;QACE,GAAGyC,qBAAqB;QACzBD,cAAcA;kBAEd,cAAA,MAACtC;YACE,GAAGwC,cAAc;YAClB/B,OAAOA;YACPC,WAAWP,sBAAsB;gBAC/BU,OAAO,CAAC,CAACA;gBACTgC;gBACAC;gBACApC;YACF;YACAwB,OAAOA;YACPrB,OAAO,CAAC,CAACA;YACTU,OAAOA;YACPD,OAAOA;YACPG,QAAQA;YACRD,QAAQA;YACRE,SAASA;YACTkB,UAAUA;YACVD,UAAUA;YACVhB,WAAWA;YACXG,gBAAgBA;YAChBF,YAAYA;YACZG,iBAAiBA;YACjBK,oBAAoBA;YACpBJ,wBAAwBA;YACxBC,yBAAyBA;;8BAEzB,KAACc;oBACE,GAAGL,SAAS;oBACbnC,IAAIA;oBACJD,KAAKA;oBACLc,cAAcA;oBACdC,MAAMA;oBACNsB,UAAUA;oBACVlC,OAAOQ;oBACPP,WAAWR,aAAa;wBACtBS,MAAM,CAAC,CAACA;wBACRD,WAAWQ;oBACb;8BAECuB;;gBAEF5B,uBACC,KAACd;oBACE,GAAGe,UAAU;oBACdkC,SAASzC;oBACTE,OAAOK,YAAYL,SAASM;oBAC5BL,WAAWI,YAAYJ,aAAaM;oBACpCiC,QAAQ;oBACR3B,OAAOA;oBACPC,OAAOA;oBACPC,QAAQA;oBACRmB,UAAUA;8BAET9B;;;;;AAMb,GACA"}
1
+ {"version":3,"sources":["../../src/form/NativeSelect.tsx"],"sourcesContent":["import {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n type SelectHTMLAttributes,\n} from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { nativeSelect, nativeSelectContainer } from \"./nativeSelectStyles.js\";\nimport {\n type FormFieldOptions,\n type UserAgentAutocompleteProps,\n} from \"./types.js\";\n\n/**\n * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}\n */\nexport interface NativeSelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"autoComplete\">,\n UserAgentAutocompleteProps,\n FormFieldOptions {\n /**\n * A custom dropdown icon to use instead of the browser's default select\n * dropdown icon.\n *\n * Set this to `null` if the browser's default icon should be used instead.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * This applies custom inline styles to the `<select>` element since the\n * `style` prop is applied to the container element instead.\n */\n selectStyle?: CSSProperties;\n\n /**\n * This applies custom className to the `<select>` element since the\n * `className` prop is applied to the container element instead.\n */\n selectClassName?: string;\n\n /**\n * This should be a list of `<option>` elements for specific values within the\n * `<select>`.\n *\n * Check out the {@link NativeSelect} for examples around using \"placeholder\"\n * text and requiring a value to be selected.\n */\n children: ReactNode;\n\n /**\n * Optional props to provide to the {@link TextFieldContainer} component.\n * There probably isn't any real use for this prop other than if you need to\n * add a `ref` for some DOM behavior.\n */\n containerProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n}\n\n/**\n * **Server Component**\n *\n * This component is a wrapper for the native `<select>` field that applies the\n * same theming as `TextField` and `TextArea` components. This component might\n * not be used much since the `Select` offers more styling options.\n *\n * @example Simple Example\n * ```tsx\n * <NativeSelect label=\"Label\">\n * <option value=\"a\">Value 1</option>\n * <option value=\"b\">Value 2</option>\n * <option value=\"c\">Value 3</option>\n * <option value=\"d\">Value 4</option>\n * </NativeSelect>\n * ```\n *\n * @example Required Value Example\n * ```tsx\n * function Example(): ReactElement {\n * // using `defaultValue=\"\"` makes it so the first option selected by default\n * // and considered an \"invalid\" value since it is `disabled`\n * //\n * // a `name` must be set with `required` so that the form validation will\n * // fire if the value is still the empty string when the form is submitted\n * //\n * // the first `<option>` is kind of like placeholder text since it doesn't\n * // have a value and is disabled by default\n *\n * return (\n * <NativeSelect\n * label=\"State\"\n * name=\"state\"\n * required\n * defaultValue=\"\"\n * >\n * <option value=\"\" disabled>Choose a state</option>\n * {states.map(({ name, code }) => (\n * <option key={code} value={code}>{name}</option>\n * ))}\n * </NativeSelect>\n * );\n * }\n * ```\n */\nexport const NativeSelect = forwardRef<HTMLSelectElement, NativeSelectProps>(\n function NativeSelect(props, ref) {\n const {\n id: propId,\n style,\n className,\n icon: propIcon,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n selectStyle,\n selectClassName,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n dense = false,\n error = false,\n active = false,\n inline = false,\n stretch = false,\n leftAddon,\n rightAddon: propRightAddon,\n leftAddonProps,\n rightAddonProps,\n disableLeftAddonStyles = false,\n disableRightAddonStyles = false,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n containerProps,\n children,\n ...remaining\n } = props;\n const { disabled = false, readOnly = false, multiple = false } = props;\n const id = useEnsuredId(propId, \"select\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const icon = getIcon(\"dropdown\", propIcon);\n const underlined = theme === \"underline\" || theme === \"filled\";\n\n let rightAddon = propRightAddon;\n if (typeof propRightAddon === \"undefined\" && !multiple) {\n rightAddon = icon;\n }\n\n return (\n <FormMessageContainer\n {...messageContainerProps}\n messageProps={messageProps}\n >\n <TextFieldContainer\n {...containerProps}\n style={style}\n className={nativeSelectContainer({\n label: !!label,\n multiple,\n underlined,\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n stretch={stretch}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonProps={leftAddonProps}\n rightAddon={rightAddon}\n rightAddonProps={rightAddonProps}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n >\n <select\n {...remaining}\n id={id}\n ref={ref}\n autoComplete={autoComplete}\n name={name}\n disabled={disabled}\n style={selectStyle}\n className={nativeSelect({\n icon: !!icon,\n className: selectClassName,\n })}\n >\n {children}\n </select>\n {label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n )}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n }\n);\n"],"names":["forwardRef","getIcon","useEnsuredId","FormMessageContainer","Label","TextFieldContainer","getFormConfig","nativeSelect","nativeSelectContainer","NativeSelect","props","ref","id","propId","style","className","icon","propIcon","label","labelProps","labelStyle","labelClassName","selectStyle","selectClassName","autoCompleteValue","autoComplete","name","dense","error","active","inline","stretch","leftAddon","rightAddon","propRightAddon","leftAddonProps","rightAddonProps","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","containerProps","children","remaining","disabled","readOnly","multiple","underlined","select","htmlFor","floating"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SACEA,UAAU,QAKL,QAAQ;AACf,SAASC,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,YAAY,EAAEC,qBAAqB,QAAQ,0BAA0B;AAoD9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CC,GACD,OAAO,MAAMC,6BAAeT,WAC1B,SAASS,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,SAAS,EACTC,MAAMC,QAAQ,EACdC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,eAAeD,iBAAiB,EAChCE,OAAOF,iBAAiB,EACxBG,QAAQ,KAAK,EACbC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,SAAS,EACTC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,eAAe,EACfC,yBAAyB,KAAK,EAC9BC,0BAA0B,KAAK,EAC/BC,OAAOC,SAAS,EAChBC,oBAAoBC,sBAAsB,EAC1CC,YAAY,EACZC,qBAAqB,EACrBC,cAAc,EACdC,QAAQ,EACR,GAAGC,WACJ,GAAGrC;IACJ,MAAM,EAAEsC,WAAW,KAAK,EAAEC,WAAW,KAAK,EAAEC,WAAW,KAAK,EAAE,GAAGxC;IACjE,MAAME,KAAKV,aAAaW,QAAQ;IAChC,MAAM0B,QAAQjC,cAAc,SAASkC;IACrC,MAAMC,qBAAqBnC,cACzB,sBACAoC;IAEF,MAAM1B,OAAOf,QAAQ,YAAYgB;IACjC,MAAMkC,aAAaZ,UAAU,eAAeA,UAAU;IAEtD,IAAIN,aAAaC;IACjB,IAAI,OAAOA,mBAAmB,eAAe,CAACgB,UAAU;QACtDjB,aAAajB;IACf;IAEA,qBACE,KAACb;QACE,GAAGyC,qBAAqB;QACzBD,cAAcA;kBAEd,cAAA,MAACtC;YACE,GAAGwC,cAAc;YAClB/B,OAAOA;YACPC,WAAWP,sBAAsB;gBAC/BU,OAAO,CAAC,CAACA;gBACTgC;gBACAC;gBACApC;YACF;YACAwB,OAAOA;YACPrB,OAAO,CAAC,CAACA;YACTU,OAAOA;YACPD,OAAOA;YACPG,QAAQA;YACRD,QAAQA;YACRE,SAASA;YACTkB,UAAUA;YACVD,UAAUA;YACVhB,WAAWA;YACXG,gBAAgBA;YAChBF,YAAYA;YACZG,iBAAiBA;YACjBK,oBAAoBA;YACpBJ,wBAAwBA;YACxBC,yBAAyBA;;8BAEzB,KAACc;oBACE,GAAGL,SAAS;oBACbnC,IAAIA;oBACJD,KAAKA;oBACLc,cAAcA;oBACdC,MAAMA;oBACNsB,UAAUA;oBACVlC,OAAOQ;oBACPP,WAAWR,aAAa;wBACtBS,MAAM,CAAC,CAACA;wBACRD,WAAWQ;oBACb;8BAECuB;;gBAEF5B,uBACC,KAACd;oBACE,GAAGe,UAAU;oBACdkC,SAASzC;oBACTE,OAAOK,YAAYL,SAASM;oBAC5BL,WAAWI,YAAYJ,aAAaM;oBACpCiC,QAAQ;oBACR3B,OAAOA;oBACPC,OAAOA;oBACPC,QAAQA;oBACRmB,UAAUA;8BAET9B;;;;;AAMb,GACA"}
@@ -2,7 +2,7 @@ import { type ReactNode } from "react";
2
2
  import { type ListElement, type ListProps } from "../list/List.js";
3
3
  import { type ListSubheaderProps } from "../list/ListSubheader.js";
4
4
  import { type PropsWithRef } from "../types.js";
5
- /** @remarks \@since 6.0.0 */
5
+ /** @since 6.0.0 */
6
6
  export interface OptGroupProps extends Omit<ListProps, "role"> {
7
7
  /**
8
8
  * This is really the `children` to display in a `ListSubheader` that
@@ -29,8 +29,7 @@ export interface OptGroupProps extends Omit<ListProps, "role"> {
29
29
  * correct accessibility when creating an `<optgroup>` with the `Select`
30
30
  * component.
31
31
  *
32
- * @example
33
- * Simple Example
32
+ * @example Simple Example
34
33
  * ```tsx
35
34
  * import { Select, OptGroup, Option } from "@react-md/core";
36
35
  * import FavoriteIcon from "@react-md/material-icons/FavoriteIcon";
@@ -54,6 +53,6 @@ export interface OptGroupProps extends Omit<ListProps, "role"> {
54
53
  * }
55
54
  * ```
56
55
  *
57
- * @remarks \@since 6.0.0
56
+ * @since 6.0.0
58
57
  */
59
58
  export declare const OptGroup: import("react").ForwardRefExoticComponent<OptGroupProps & import("react").RefAttributes<ListElement>>;
@@ -11,8 +11,7 @@ import { useEnsuredId } from "../useEnsuredId.js";
11
11
  * correct accessibility when creating an `<optgroup>` with the `Select`
12
12
  * component.
13
13
  *
14
- * @example
15
- * Simple Example
14
+ * @example Simple Example
16
15
  * ```tsx
17
16
  * import { Select, OptGroup, Option } from "@react-md/core";
18
17
  * import FavoriteIcon from "@react-md/material-icons/FavoriteIcon";
@@ -36,7 +35,7 @@ import { useEnsuredId } from "../useEnsuredId.js";
36
35
  * }
37
36
  * ```
38
37
  *
39
- * @remarks \@since 6.0.0
38
+ * @since 6.0.0
40
39
  */ export const OptGroup = /*#__PURE__*/ forwardRef(function OptGroup(props, ref) {
41
40
  const { children, label, labelProps, ...remaining } = props;
42
41
  const labelId = useEnsuredId(labelProps?.id, "optgroup");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/OptGroup.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport {\n ListSubheader,\n type ListSubheaderProps,\n} from \"../list/ListSubheader.js\";\nimport { MenuItemGroup } from \"../menu/MenuItemGroup.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface OptGroupProps extends Omit<ListProps, \"role\"> {\n /**\n * This is really the `children` to display in a `ListSubheader` that\n * describes the optgroup. It was named `label` to match the native\n * `<optgroup>` element.\n *\n * @see {@link labelProps} for additional styling and options.\n */\n label: ReactNode;\n\n /**\n * This can be used to apply any additional props to the `ListSubheader` that\n * describes the group of options.\n */\n labelProps?: PropsWithRef<\n Omit<ListSubheaderProps, \"role\" | \"children\">,\n HTMLLIElement\n >;\n\n /**\n * This should be any `Option`s to display within the group.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is more of a \"convenience component\" to help enforce the\n * correct accessibility when creating an `<optgroup>` with the `Select`\n * component.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Select, OptGroup, Option } from \"@react-md/core\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <Select label=\"Choose an animal\">\n * <OptGroup label=\"Land\" labelProps={{ className: \"custom-class-name\" }}>\n * <Option value={0}>Cat</Option>\n * <Option value={1}>Dog</Option>\n * <Option value={2}>Tiger</Option>\n * </OptGroup>\n * <OptGroup label=\"Water\" labelProps={{ rightAddon: <FavoriteIcon /> }}>\n * <Option value={3}>Dolphin</Option>\n * <Option value={4}>Flounder</Option>\n * </OptGroup>\n * </Select>\n *\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport const OptGroup = forwardRef<ListElement, OptGroupProps>(\n function OptGroup(props, ref) {\n const { children, label, labelProps, ...remaining } = props;\n const labelId = useEnsuredId(labelProps?.id, \"optgroup\");\n\n return (\n <MenuItemGroup aria-labelledby={labelId} {...remaining} ref={ref}>\n <ListSubheader {...labelProps} id={labelId}>\n {label}\n </ListSubheader>\n {children}\n </MenuItemGroup>\n );\n }\n);\n"],"names":["forwardRef","ListSubheader","MenuItemGroup","useEnsuredId","OptGroup","props","ref","children","label","labelProps","remaining","labelId","id","aria-labelledby"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAwB,QAAQ;AAEnD,SACEC,aAAa,QAER,2BAA2B;AAClC,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,YAAY,QAAQ,qBAAqB;AA4BlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCC,GACD,OAAO,MAAMC,yBAAWJ,WACtB,SAASI,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGC,WAAW,GAAGL;IACtD,MAAMM,UAAUR,aAAaM,YAAYG,IAAI;IAE7C,qBACE,MAACV;QAAcW,mBAAiBF;QAAU,GAAGD,SAAS;QAAEJ,KAAKA;;0BAC3D,KAACL;gBAAe,GAAGQ,UAAU;gBAAEG,IAAID;0BAChCH;;YAEFD;;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/form/OptGroup.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport {\n ListSubheader,\n type ListSubheaderProps,\n} from \"../list/ListSubheader.js\";\nimport { MenuItemGroup } from \"../menu/MenuItemGroup.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/** @since 6.0.0 */\nexport interface OptGroupProps extends Omit<ListProps, \"role\"> {\n /**\n * This is really the `children` to display in a `ListSubheader` that\n * describes the optgroup. It was named `label` to match the native\n * `<optgroup>` element.\n *\n * @see {@link labelProps} for additional styling and options.\n */\n label: ReactNode;\n\n /**\n * This can be used to apply any additional props to the `ListSubheader` that\n * describes the group of options.\n */\n labelProps?: PropsWithRef<\n Omit<ListSubheaderProps, \"role\" | \"children\">,\n HTMLLIElement\n >;\n\n /**\n * This should be any `Option`s to display within the group.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is more of a \"convenience component\" to help enforce the\n * correct accessibility when creating an `<optgroup>` with the `Select`\n * component.\n *\n * @example Simple Example\n * ```tsx\n * import { Select, OptGroup, Option } from \"@react-md/core\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <Select label=\"Choose an animal\">\n * <OptGroup label=\"Land\" labelProps={{ className: \"custom-class-name\" }}>\n * <Option value={0}>Cat</Option>\n * <Option value={1}>Dog</Option>\n * <Option value={2}>Tiger</Option>\n * </OptGroup>\n * <OptGroup label=\"Water\" labelProps={{ rightAddon: <FavoriteIcon /> }}>\n * <Option value={3}>Dolphin</Option>\n * <Option value={4}>Flounder</Option>\n * </OptGroup>\n * </Select>\n *\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const OptGroup = forwardRef<ListElement, OptGroupProps>(\n function OptGroup(props, ref) {\n const { children, label, labelProps, ...remaining } = props;\n const labelId = useEnsuredId(labelProps?.id, \"optgroup\");\n\n return (\n <MenuItemGroup aria-labelledby={labelId} {...remaining} ref={ref}>\n <ListSubheader {...labelProps} id={labelId}>\n {label}\n </ListSubheader>\n {children}\n </MenuItemGroup>\n );\n }\n);\n"],"names":["forwardRef","ListSubheader","MenuItemGroup","useEnsuredId","OptGroup","props","ref","children","label","labelProps","remaining","labelId","id","aria-labelledby"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAwB,QAAQ;AAEnD,SACEC,aAAa,QAER,2BAA2B;AAClC,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,YAAY,QAAQ,qBAAqB;AA4BlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,MAAMC,yBAAWJ,WACtB,SAASI,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGC,WAAW,GAAGL;IACtD,MAAMM,UAAUR,aAAaM,YAAYG,IAAI;IAE7C,qBACE,MAACV;QAAcW,mBAAiBF;QAAU,GAAGD,SAAS;QAAEJ,KAAKA;;0BAC3D,KAACL;gBAAe,GAAGQ,UAAU;gBAAEG,IAAID;0BAChCH;;YAEFD;;;AAGP,GACA"}
@@ -5,13 +5,12 @@ import { type MenuItemProps } from "../menu/MenuItem.js";
5
5
  * This icon is used while the option is unselected so that the selected and
6
6
  * unselected options have the same alignment.
7
7
  *
8
- * @remarks \@since 6.0.0
8
+ * @since 6.0.0
9
9
  */
10
10
  export declare const DEFAULT_OPTION_UNSELECTED_ICON: import("react").JSX.Element;
11
11
  /**
12
- * @remarks
13
- * \@since 6.0.0 removed the `selected` and `focused` props.
14
- * \@since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
12
+ * @since 6.0.0 removed the `selected` and `focused` props.
13
+ * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
15
14
  * `selectedIconAfter`, and `iconSpacingProps` props.
16
15
  */
17
16
  export interface OptionProps extends MenuItemProps {
@@ -65,9 +64,8 @@ export interface OptionProps extends MenuItemProps {
65
64
  * This component is a wrapper around the {@link MenuItem} to implement custom
66
65
  * select option behavior.
67
66
  *
68
- * @remarks
69
- * \@since 6.0.0 removed the `selected` and `focused` props.
70
- * \@since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
67
+ * @since 6.0.0 removed the `selected` and `focused` props.
68
+ * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
71
69
  * `selectedIconAfter`, and `iconSpacingProps` props.
72
70
  */
73
71
  export declare const Option: import("react").ForwardRefExoticComponent<OptionProps & import("react").RefAttributes<HTMLLIElement>>;
@@ -19,7 +19,7 @@ const noop = ()=>{
19
19
  * This icon is used while the option is unselected so that the selected and
20
20
  * unselected options have the same alignment.
21
21
  *
22
- * @remarks \@since 6.0.0
22
+ * @since 6.0.0
23
23
  */ export const DEFAULT_OPTION_UNSELECTED_ICON = /*#__PURE__*/ _jsx("span", {
24
24
  className: icon({
25
25
  type: "svg"
@@ -31,9 +31,8 @@ const noop = ()=>{
31
31
  * This component is a wrapper around the {@link MenuItem} to implement custom
32
32
  * select option behavior.
33
33
  *
34
- * @remarks
35
- * \@since 6.0.0 removed the `selected` and `focused` props.
36
- * \@since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
34
+ * @since 6.0.0 removed the `selected` and `focused` props.
35
+ * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
37
36
  * `selectedIconAfter`, and `iconSpacingProps` props.
38
37
  */ export const Option = /*#__PURE__*/ forwardRef(function Option(props, ref) {
39
38
  const { id: propId, role = "option", value, children: propChildren, onClick = noop, className, selectedIcon: propSelectedIcon, unselectedIcon: propUnselectedIcon, selectedIconAfter: propSelectedIconAfter, textIconSpacingProps, leftAddon: propLeftAddon, leftAddonType, leftAddonClassName, rightAddon: propRightAddon, rightAddonType, rightAddonClassName, secondaryText, height: propHeight, disableTextChildren: propDisableTextChildren, ...remaining } = props;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Option.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, Fragment, type ReactNode } from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { icon } from \"../icon/styles.js\";\nimport {\n TextIconSpacing,\n type TextIconSpacingProps,\n} from \"../icon/TextIconSpacing.js\";\nimport { getListItemHeight } from \"../list/getListItemHeight.js\";\nimport { ListItemText } from \"../list/ListItemText.js\";\nimport { MenuItem, type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { option } from \"./optionStyles.js\";\nimport { useListboxContext } from \"./useListboxProvider.js\";\nimport { triggerManualChangeEvent } from \"./utils.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This icon is used while the option is unselected so that the selected and\n * unselected options have the same alignment.\n *\n * @remarks \\@since 6.0.0\n */\nexport const DEFAULT_OPTION_UNSELECTED_ICON = (\n <span className={icon({ type: \"svg\" })} />\n);\n\n/**\n * @remarks\n * \\@since 6.0.0 removed the `selected` and `focused` props.\n * \\@since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport interface OptionProps extends MenuItemProps {\n /**\n * @defaultValue `\"option\"`\n */\n role?: string;\n\n value: string | number;\n\n /**\n * @defaultValue `getIcon(\"selected\")`\n */\n selectedIcon?: ReactNode;\n\n /**\n * @see {@link DEFAULT_OPTION_UNSELECTED_ICON}\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg\" />`\n */\n unselectedIcon?: ReactNode;\n\n /**\n * Set this to `true` of the {@link selectedIcon}/{@link unselectedIcon}\n * should appear as the {@link rightAddon} instead of the {@link leftAddon}.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Since the `selectedIcon`/`unselectedIcon` are rendered as\n * `leftAddon`/`rightAddon`, the provided `leftAddon`/`rightAddon` will be\n * wrapped in the {@link TextIconSpacing} component to maintain the correct\n * spacing. You can use this prop to provide any additional configuration to\n * the spacing.\n *\n * @example\n * ```tsx\n * <Option\n * leftAddon={<Avatar>A</Avatar>}\n * leftAddonType=\"avatar\"\n * value={0}\n * textIconSpacingProps={{\n * beforeClassName: \"my-custom-class-name\",\n * }}\n * >\n * Some Content\n * </Option>\n * ```\n */\n textIconSpacingProps?: Omit<TextIconSpacingProps, \"icon\" | \"children\">;\n}\n\n/**\n * **Client Component**\n *\n * This component is a wrapper around the {@link MenuItem} to implement custom\n * select option behavior.\n *\n * @remarks\n * \\@since 6.0.0 removed the `selected` and `focused` props.\n * \\@since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport const Option = forwardRef<HTMLLIElement, OptionProps>(\n function Option(props, ref) {\n const {\n id: propId,\n role = \"option\",\n value,\n children: propChildren,\n onClick = noop,\n className,\n selectedIcon: propSelectedIcon,\n unselectedIcon: propUnselectedIcon,\n selectedIconAfter: propSelectedIconAfter,\n textIconSpacingProps,\n leftAddon: propLeftAddon,\n leftAddonType,\n leftAddonClassName,\n rightAddon: propRightAddon,\n rightAddonType,\n rightAddonClassName,\n secondaryText,\n height: propHeight,\n disableTextChildren: propDisableTextChildren,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"option\");\n const {\n inputRef,\n currentValue,\n disableSelectedIcon,\n selectedIconAfter: contextSelectedIconAfter,\n } = useListboxContext();\n const selectedIconAfter = propSelectedIconAfter ?? contextSelectedIconAfter;\n const selected = value === currentValue;\n const selectedIcon = getIcon(\n \"selected\",\n disableSelectedIcon ? null : propSelectedIcon\n );\n const unselectedIcon = disableSelectedIcon\n ? null\n : propUnselectedIcon ?? DEFAULT_OPTION_UNSELECTED_ICON;\n const icon = selected ? selectedIcon : unselectedIcon;\n\n let leftAddon = propLeftAddon;\n let rightAddon = propRightAddon;\n let children = propChildren;\n let disableTextChildren = propDisableTextChildren;\n if (!selectedIconAfter && icon) {\n leftAddon = icon;\n if (propLeftAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propLeftAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n } else if (icon) {\n rightAddon = icon;\n if (propRightAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propRightAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n }\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon: leftAddon === icon ? null : leftAddon,\n leftAddonType,\n rightAddon: rightAddon === icon ? null : rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <MenuItem\n {...remaining}\n aria-selected={selected || undefined}\n id={id}\n ref={ref}\n role={role}\n onClick={(event) => {\n onClick(event);\n triggerManualChangeEvent(inputRef.current, value);\n }}\n className={option({ icon: !!icon, selected, className })}\n secondaryText={secondaryText}\n height={height}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonClassName={cnb(\n leftAddon === icon && \"rmd-option__icon\",\n leftAddonClassName\n )}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonClassName={cnb(\n rightAddon === icon && \"rmd-option__icon\",\n rightAddonClassName\n )}\n disableTextChildren={disableTextChildren}\n >\n {children}\n </MenuItem>\n );\n }\n);\n"],"names":["cnb","forwardRef","Fragment","getIcon","icon","TextIconSpacing","getListItemHeight","ListItemText","MenuItem","useEnsuredId","option","useListboxContext","triggerManualChangeEvent","noop","DEFAULT_OPTION_UNSELECTED_ICON","span","className","type","Option","props","ref","id","propId","role","value","children","propChildren","onClick","selectedIcon","propSelectedIcon","unselectedIcon","propUnselectedIcon","selectedIconAfter","propSelectedIconAfter","textIconSpacingProps","leftAddon","propLeftAddon","leftAddonType","leftAddonClassName","rightAddon","propRightAddon","rightAddonType","rightAddonClassName","secondaryText","height","propHeight","disableTextChildren","propDisableTextChildren","remaining","inputRef","currentValue","disableSelectedIcon","contextSelectedIconAfter","selected","Wrapper","aria-selected","undefined","event","current"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/Option.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, Fragment, type ReactNode } from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { icon } from \"../icon/styles.js\";\nimport {\n TextIconSpacing,\n type TextIconSpacingProps,\n} from \"../icon/TextIconSpacing.js\";\nimport { getListItemHeight } from \"../list/getListItemHeight.js\";\nimport { ListItemText } from \"../list/ListItemText.js\";\nimport { MenuItem, type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { option } from \"./optionStyles.js\";\nimport { useListboxContext } from \"./useListboxProvider.js\";\nimport { triggerManualChangeEvent } from \"./utils.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This icon is used while the option is unselected so that the selected and\n * unselected options have the same alignment.\n *\n * @since 6.0.0\n */\nexport const DEFAULT_OPTION_UNSELECTED_ICON = (\n <span className={icon({ type: \"svg\" })} />\n);\n\n/**\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport interface OptionProps extends MenuItemProps {\n /**\n * @defaultValue `\"option\"`\n */\n role?: string;\n\n value: string | number;\n\n /**\n * @defaultValue `getIcon(\"selected\")`\n */\n selectedIcon?: ReactNode;\n\n /**\n * @see {@link DEFAULT_OPTION_UNSELECTED_ICON}\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg\" />`\n */\n unselectedIcon?: ReactNode;\n\n /**\n * Set this to `true` of the {@link selectedIcon}/{@link unselectedIcon}\n * should appear as the {@link rightAddon} instead of the {@link leftAddon}.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Since the `selectedIcon`/`unselectedIcon` are rendered as\n * `leftAddon`/`rightAddon`, the provided `leftAddon`/`rightAddon` will be\n * wrapped in the {@link TextIconSpacing} component to maintain the correct\n * spacing. You can use this prop to provide any additional configuration to\n * the spacing.\n *\n * @example\n * ```tsx\n * <Option\n * leftAddon={<Avatar>A</Avatar>}\n * leftAddonType=\"avatar\"\n * value={0}\n * textIconSpacingProps={{\n * beforeClassName: \"my-custom-class-name\",\n * }}\n * >\n * Some Content\n * </Option>\n * ```\n */\n textIconSpacingProps?: Omit<TextIconSpacingProps, \"icon\" | \"children\">;\n}\n\n/**\n * **Client Component**\n *\n * This component is a wrapper around the {@link MenuItem} to implement custom\n * select option behavior.\n *\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport const Option = forwardRef<HTMLLIElement, OptionProps>(\n function Option(props, ref) {\n const {\n id: propId,\n role = \"option\",\n value,\n children: propChildren,\n onClick = noop,\n className,\n selectedIcon: propSelectedIcon,\n unselectedIcon: propUnselectedIcon,\n selectedIconAfter: propSelectedIconAfter,\n textIconSpacingProps,\n leftAddon: propLeftAddon,\n leftAddonType,\n leftAddonClassName,\n rightAddon: propRightAddon,\n rightAddonType,\n rightAddonClassName,\n secondaryText,\n height: propHeight,\n disableTextChildren: propDisableTextChildren,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"option\");\n const {\n inputRef,\n currentValue,\n disableSelectedIcon,\n selectedIconAfter: contextSelectedIconAfter,\n } = useListboxContext();\n const selectedIconAfter = propSelectedIconAfter ?? contextSelectedIconAfter;\n const selected = value === currentValue;\n const selectedIcon = getIcon(\n \"selected\",\n disableSelectedIcon ? null : propSelectedIcon\n );\n const unselectedIcon = disableSelectedIcon\n ? null\n : propUnselectedIcon ?? DEFAULT_OPTION_UNSELECTED_ICON;\n const icon = selected ? selectedIcon : unselectedIcon;\n\n let leftAddon = propLeftAddon;\n let rightAddon = propRightAddon;\n let children = propChildren;\n let disableTextChildren = propDisableTextChildren;\n if (!selectedIconAfter && icon) {\n leftAddon = icon;\n if (propLeftAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propLeftAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n } else if (icon) {\n rightAddon = icon;\n if (propRightAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propRightAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n }\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon: leftAddon === icon ? null : leftAddon,\n leftAddonType,\n rightAddon: rightAddon === icon ? null : rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <MenuItem\n {...remaining}\n aria-selected={selected || undefined}\n id={id}\n ref={ref}\n role={role}\n onClick={(event) => {\n onClick(event);\n triggerManualChangeEvent(inputRef.current, value);\n }}\n className={option({ icon: !!icon, selected, className })}\n secondaryText={secondaryText}\n height={height}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonClassName={cnb(\n leftAddon === icon && \"rmd-option__icon\",\n leftAddonClassName\n )}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonClassName={cnb(\n rightAddon === icon && \"rmd-option__icon\",\n rightAddonClassName\n )}\n disableTextChildren={disableTextChildren}\n >\n {children}\n </MenuItem>\n );\n }\n);\n"],"names":["cnb","forwardRef","Fragment","getIcon","icon","TextIconSpacing","getListItemHeight","ListItemText","MenuItem","useEnsuredId","option","useListboxContext","triggerManualChangeEvent","noop","DEFAULT_OPTION_UNSELECTED_ICON","span","className","type","Option","props","ref","id","propId","role","value","children","propChildren","onClick","selectedIcon","propSelectedIcon","unselectedIcon","propUnselectedIcon","selectedIconAfter","propSelectedIconAfter","textIconSpacingProps","leftAddon","propLeftAddon","leftAddonType","leftAddonClassName","rightAddon","propRightAddon","rightAddonType","rightAddonClassName","secondaryText","height","propHeight","disableTextChildren","propDisableTextChildren","remaining","inputRef","currentValue","disableSelectedIcon","contextSelectedIconAfter","selected","Wrapper","aria-selected","undefined","event","current"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -3,8 +3,7 @@ import { type ButtonProps } from "../button/Button.js";
3
3
  import { type PropsWithRef } from "../types.js";
4
4
  import { type TextFieldProps } from "./TextField.js";
5
5
  /**
6
- * @example
7
- * Simple Example
6
+ * @example Simple Example
8
7
  * ```tsx
9
8
  * const getVisibilityIcon: GetPasswordVisibilityIcon = (isPasswordVisible) => {
10
9
  * if (isPasswordVisible) {
@@ -21,8 +20,7 @@ import { type TextFieldProps } from "./TextField.js";
21
20
  */
22
21
  export type GetPasswordVisibilityIcon = (isPasswordVisible: boolean) => ReactNode;
23
22
  /**
24
- * @example
25
- * Simple Example
23
+ * @example Simple Example
26
24
  * ```tsx
27
25
  * const visibilityIcon: ConfigurableVisibilityIcon = {
28
26
  * visible: <SecurityIcon />,
@@ -44,12 +42,11 @@ export interface ConfigurableVisibilityIcon {
44
42
  export interface PasswordProps extends Omit<TextFieldProps, "type" | "rightAddon"> {
45
43
  /**
46
44
  * @defaultValue `"password"`
47
- * @remarks \@since 6.0.0 Defaults to `"password"`
45
+ * @since 6.0.0 Defaults to `"password"`
48
46
  */
49
47
  name?: string;
50
48
  /**
51
- * @example
52
- * Configurable Visibility Icon Object
49
+ * @example Configurable Visibility Icon Object
53
50
  * ```tsx
54
51
  * <Password
55
52
  * {...props}
@@ -60,8 +57,7 @@ export interface PasswordProps extends Omit<TextFieldProps, "type" | "rightAddon
60
57
  * />
61
58
  * ```
62
59
  *
63
- * @example
64
- * Get Password Visibility Icon Function
60
+ * @example Get Password Visibility Icon Function
65
61
  * ```tsx
66
62
  * <Password
67
63
  * {...props}
@@ -75,8 +71,7 @@ export interface PasswordProps extends Omit<TextFieldProps, "type" | "rightAddon
75
71
  * />
76
72
  * ```
77
73
  *
78
- * @example
79
- * Custom Icon
74
+ * @example Custom Icon
80
75
  * ```tsx
81
76
  * <Password
82
77
  * {...props}
@@ -101,8 +96,7 @@ export interface PasswordProps extends Omit<TextFieldProps, "type" | "rightAddon
101
96
  /**
102
97
  * **Client Component**
103
98
  *
104
- * @example
105
- * Simple Example
99
+ * @example Simple Example
106
100
  * ```tsx
107
101
  * import { Password } from "@react-md/core";
108
102
  *
@@ -10,8 +10,7 @@ import { TextField } from "./TextField.js";
10
10
  /**
11
11
  * **Client Component**
12
12
  *
13
- * @example
14
- * Simple Example
13
+ * @example Simple Example
15
14
  * ```tsx
16
15
  * import { Password } from "@react-md/core";
17
16
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Password.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport {\n password,\n passwordInput,\n passwordInputToggle,\n} from \"./passwordStyles.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\n\n/**\n * @example\n * Simple Example\n * ```tsx\n * const getVisibilityIcon: GetPasswordVisibilityIcon = (isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * };\n * ```\n *\n * @param isPasswordVisible - `true` when the password is visible and in plain\n * text\n * @returns a custom icon to use for the password visibility toggle.\n */\nexport type GetPasswordVisibilityIcon = (\n isPasswordVisible: boolean\n) => ReactNode;\n\n/**\n * @example\n * Simple Example\n * ```tsx\n * const visibilityIcon: ConfigurableVisibilityIcon = {\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * };\n * ```\n */\nexport interface ConfigurableVisibilityIcon {\n /**\n * The icon to display while the password is currently visible as plain text.\n */\n visible: ReactNode;\n\n /**\n * The icon to display while the password is currently invisible as the\n * password input.\n */\n invisible: ReactNode;\n}\n\nexport interface PasswordProps\n extends Omit<TextFieldProps, \"type\" | \"rightAddon\"> {\n /**\n * @defaultValue `\"password\"`\n * @remarks \\@since 6.0.0 Defaults to `\"password\"`\n */\n name?: string;\n\n /**\n * @example\n * Configurable Visibility Icon Object\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={{\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * }}\n * />\n * ```\n *\n * @example\n * Get Password Visibility Icon Function\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={(isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * }}\n * />\n * ```\n *\n * @example\n * Custom Icon\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={<SomeCustomComponent />}\n * />\n * ```\n */\n visibilityIcon?:\n | ConfigurableVisibilityIcon\n | GetPasswordVisibilityIcon\n | ReactNode;\n\n /**\n * The `aria-label` to use for the password visibility icon button.\n *\n * @defaultValue `\"Show password\"`\n */\n visibilityLabel?: string;\n\n /**\n * Any props that should be passed to the password visibility icon button. If\n * `id`, `buttonType`, `aria-label`, `aria-pressed`, or `children` are\n * provided here, they will override the default implementation.\n */\n visibilityProps?: PropsWithRef<ButtonProps, HTMLButtonElement>;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Password } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * return (\n * <Password\n * label=\"Password\"\n * name=\"password\"\n * required\n * />\n * );\n * }\n * ```\n */\nexport const Password = forwardRef<HTMLInputElement, PasswordProps>(\n function Password(props, ref) {\n const {\n id: propId,\n name = \"password\",\n className,\n inputClassName,\n visibilityIcon: propVisibilityIcon,\n visibilityLabel = \"Show password\",\n visibilityProps,\n ...remaining\n } = props;\n const { toggled: isPasswordVisible, toggle } = useToggle(false);\n\n let currentVisibilityIcon: ReactNode;\n if (\n propVisibilityIcon &&\n typeof propVisibilityIcon === \"object\" &&\n \"visible\" in propVisibilityIcon\n ) {\n currentVisibilityIcon = isPasswordVisible\n ? propVisibilityIcon.visible\n : propVisibilityIcon.invisible;\n } else if (typeof propVisibilityIcon === \"function\") {\n currentVisibilityIcon = propVisibilityIcon(isPasswordVisible);\n } else {\n currentVisibilityIcon = propVisibilityIcon;\n }\n\n const id = useEnsuredId(propId, \"password\");\n const visibilityIcon = getIcon(\"password\", currentVisibilityIcon);\n\n return (\n <TextField\n {...remaining}\n ref={ref}\n name={name}\n type={isPasswordVisible ? \"text\" : \"password\"}\n className={password({ className })}\n inputClassName={passwordInput({ className: inputClassName })}\n rightAddon={\n <Button\n id={`${id}-toggle`}\n buttonType=\"icon\"\n aria-label={visibilityLabel}\n aria-pressed={isPasswordVisible}\n // allow all props except the onClick, className, and aria-pressed to\n // be overridden. onClick can only stop default behavior with\n // `event.stopPropagation()`\n {...visibilityProps}\n className={passwordInputToggle({\n className: visibilityProps?.className,\n })}\n onClick={(event) => {\n visibilityProps?.onClick?.(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n toggle();\n }}\n >\n {visibilityProps?.children ?? visibilityIcon}\n </Button>\n }\n disableRightAddonStyles\n />\n );\n }\n);\n"],"names":["forwardRef","Button","getIcon","useEnsuredId","useToggle","password","passwordInput","passwordInputToggle","TextField","Password","props","ref","id","propId","name","className","inputClassName","visibilityIcon","propVisibilityIcon","visibilityLabel","visibilityProps","remaining","toggled","isPasswordVisible","toggle","currentVisibilityIcon","visible","invisible","type","rightAddon","buttonType","aria-label","aria-pressed","onClick","event","isPropagationStopped","children","disableRightAddonStyles"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAwB,QAAQ;AACnD,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SACEC,QAAQ,EACRC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,SAASC,SAAS,QAA6B,iBAAiB;AA+GhE;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,MAAMC,yBAAWT,WACtB,SAASS,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,UAAU,EACjBC,SAAS,EACTC,cAAc,EACdC,gBAAgBC,kBAAkB,EAClCC,kBAAkB,eAAe,EACjCC,eAAe,EACf,GAAGC,WACJ,GAAGX;IACJ,MAAM,EAAEY,SAASC,iBAAiB,EAAEC,MAAM,EAAE,GAAGpB,UAAU;IAEzD,IAAIqB;IACJ,IACEP,sBACA,OAAOA,uBAAuB,YAC9B,aAAaA,oBACb;QACAO,wBAAwBF,oBACpBL,mBAAmBQ,OAAO,GAC1BR,mBAAmBS,SAAS;IAClC,OAAO,IAAI,OAAOT,uBAAuB,YAAY;QACnDO,wBAAwBP,mBAAmBK;IAC7C,OAAO;QACLE,wBAAwBP;IAC1B;IAEA,MAAMN,KAAKT,aAAaU,QAAQ;IAChC,MAAMI,iBAAiBf,QAAQ,YAAYuB;IAE3C,qBACE,KAACjB;QACE,GAAGa,SAAS;QACbV,KAAKA;QACLG,MAAMA;QACNc,MAAML,oBAAoB,SAAS;QACnCR,WAAWV,SAAS;YAAEU;QAAU;QAChCC,gBAAgBV,cAAc;YAAES,WAAWC;QAAe;QAC1Da,0BACE,KAAC5B;YACCW,IAAI,CAAC,EAAEA,GAAG,OAAO,CAAC;YAClBkB,YAAW;YACXC,cAAYZ;YACZa,gBAAcT;YAIb,GAAGH,eAAe;YACnBL,WAAWR,oBAAoB;gBAC7BQ,WAAWK,iBAAiBL;YAC9B;YACAkB,SAAS,CAACC;gBACRd,iBAAiBa,UAAUC;gBAC3B,IAAIA,MAAMC,oBAAoB,IAAI;oBAChC;gBACF;gBAEAX;YACF;sBAECJ,iBAAiBgB,YAAYnB;;QAGlCoB,uBAAuB;;AAG7B,GACA"}
1
+ {"version":3,"sources":["../../src/form/Password.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport {\n password,\n passwordInput,\n passwordInputToggle,\n} from \"./passwordStyles.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\n\n/**\n * @example Simple Example\n * ```tsx\n * const getVisibilityIcon: GetPasswordVisibilityIcon = (isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * };\n * ```\n *\n * @param isPasswordVisible - `true` when the password is visible and in plain\n * text\n * @returns a custom icon to use for the password visibility toggle.\n */\nexport type GetPasswordVisibilityIcon = (\n isPasswordVisible: boolean\n) => ReactNode;\n\n/**\n * @example Simple Example\n * ```tsx\n * const visibilityIcon: ConfigurableVisibilityIcon = {\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * };\n * ```\n */\nexport interface ConfigurableVisibilityIcon {\n /**\n * The icon to display while the password is currently visible as plain text.\n */\n visible: ReactNode;\n\n /**\n * The icon to display while the password is currently invisible as the\n * password input.\n */\n invisible: ReactNode;\n}\n\nexport interface PasswordProps\n extends Omit<TextFieldProps, \"type\" | \"rightAddon\"> {\n /**\n * @defaultValue `\"password\"`\n * @since 6.0.0 Defaults to `\"password\"`\n */\n name?: string;\n\n /**\n * @example Configurable Visibility Icon Object\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={{\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * }}\n * />\n * ```\n *\n * @example Get Password Visibility Icon Function\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={(isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * }}\n * />\n * ```\n *\n * @example Custom Icon\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={<SomeCustomComponent />}\n * />\n * ```\n */\n visibilityIcon?:\n | ConfigurableVisibilityIcon\n | GetPasswordVisibilityIcon\n | ReactNode;\n\n /**\n * The `aria-label` to use for the password visibility icon button.\n *\n * @defaultValue `\"Show password\"`\n */\n visibilityLabel?: string;\n\n /**\n * Any props that should be passed to the password visibility icon button. If\n * `id`, `buttonType`, `aria-label`, `aria-pressed`, or `children` are\n * provided here, they will override the default implementation.\n */\n visibilityProps?: PropsWithRef<ButtonProps, HTMLButtonElement>;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import { Password } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * return (\n * <Password\n * label=\"Password\"\n * name=\"password\"\n * required\n * />\n * );\n * }\n * ```\n */\nexport const Password = forwardRef<HTMLInputElement, PasswordProps>(\n function Password(props, ref) {\n const {\n id: propId,\n name = \"password\",\n className,\n inputClassName,\n visibilityIcon: propVisibilityIcon,\n visibilityLabel = \"Show password\",\n visibilityProps,\n ...remaining\n } = props;\n const { toggled: isPasswordVisible, toggle } = useToggle(false);\n\n let currentVisibilityIcon: ReactNode;\n if (\n propVisibilityIcon &&\n typeof propVisibilityIcon === \"object\" &&\n \"visible\" in propVisibilityIcon\n ) {\n currentVisibilityIcon = isPasswordVisible\n ? propVisibilityIcon.visible\n : propVisibilityIcon.invisible;\n } else if (typeof propVisibilityIcon === \"function\") {\n currentVisibilityIcon = propVisibilityIcon(isPasswordVisible);\n } else {\n currentVisibilityIcon = propVisibilityIcon;\n }\n\n const id = useEnsuredId(propId, \"password\");\n const visibilityIcon = getIcon(\"password\", currentVisibilityIcon);\n\n return (\n <TextField\n {...remaining}\n ref={ref}\n name={name}\n type={isPasswordVisible ? \"text\" : \"password\"}\n className={password({ className })}\n inputClassName={passwordInput({ className: inputClassName })}\n rightAddon={\n <Button\n id={`${id}-toggle`}\n buttonType=\"icon\"\n aria-label={visibilityLabel}\n aria-pressed={isPasswordVisible}\n // allow all props except the onClick, className, and aria-pressed to\n // be overridden. onClick can only stop default behavior with\n // `event.stopPropagation()`\n {...visibilityProps}\n className={passwordInputToggle({\n className: visibilityProps?.className,\n })}\n onClick={(event) => {\n visibilityProps?.onClick?.(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n toggle();\n }}\n >\n {visibilityProps?.children ?? visibilityIcon}\n </Button>\n }\n disableRightAddonStyles\n />\n );\n }\n);\n"],"names":["forwardRef","Button","getIcon","useEnsuredId","useToggle","password","passwordInput","passwordInputToggle","TextField","Password","props","ref","id","propId","name","className","inputClassName","visibilityIcon","propVisibilityIcon","visibilityLabel","visibilityProps","remaining","toggled","isPasswordVisible","toggle","currentVisibilityIcon","visible","invisible","type","rightAddon","buttonType","aria-label","aria-pressed","onClick","event","isPropagationStopped","children","disableRightAddonStyles"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAwB,QAAQ;AACnD,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SACEC,QAAQ,EACRC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAC7B,SAASC,SAAS,QAA6B,iBAAiB;AA0GhE;;;;;;;;;;;;;;;;;CAiBC,GACD,OAAO,MAAMC,yBAAWT,WACtB,SAASS,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,UAAU,EACjBC,SAAS,EACTC,cAAc,EACdC,gBAAgBC,kBAAkB,EAClCC,kBAAkB,eAAe,EACjCC,eAAe,EACf,GAAGC,WACJ,GAAGX;IACJ,MAAM,EAAEY,SAASC,iBAAiB,EAAEC,MAAM,EAAE,GAAGpB,UAAU;IAEzD,IAAIqB;IACJ,IACEP,sBACA,OAAOA,uBAAuB,YAC9B,aAAaA,oBACb;QACAO,wBAAwBF,oBACpBL,mBAAmBQ,OAAO,GAC1BR,mBAAmBS,SAAS;IAClC,OAAO,IAAI,OAAOT,uBAAuB,YAAY;QACnDO,wBAAwBP,mBAAmBK;IAC7C,OAAO;QACLE,wBAAwBP;IAC1B;IAEA,MAAMN,KAAKT,aAAaU,QAAQ;IAChC,MAAMI,iBAAiBf,QAAQ,YAAYuB;IAE3C,qBACE,KAACjB;QACE,GAAGa,SAAS;QACbV,KAAKA;QACLG,MAAMA;QACNc,MAAML,oBAAoB,SAAS;QACnCR,WAAWV,SAAS;YAAEU;QAAU;QAChCC,gBAAgBV,cAAc;YAAES,WAAWC;QAAe;QAC1Da,0BACE,KAAC5B;YACCW,IAAI,CAAC,EAAEA,GAAG,OAAO,CAAC;YAClBkB,YAAW;YACXC,cAAYZ;YACZa,gBAAcT;YAIb,GAAGH,eAAe;YACnBL,WAAWR,oBAAoB;gBAC7BQ,WAAWK,iBAAiBL;YAC9B;YACAkB,SAAS,CAACC;gBACRd,iBAAiBa,UAAUC;gBAC3B,IAAIA,MAAMC,oBAAoB,IAAI;oBAChC;gBACF;gBAEAX;YACF;sBAECJ,iBAAiBgB,YAAYnB;;QAGlCoB,uBAAuB;;AAG7B,GACA"}
@@ -6,8 +6,7 @@ import { type RadioProps } from "./InputToggle.js";
6
6
  * You'll generally want to use the `useRadioGroup` hook along with this
7
7
  * component.
8
8
  *
9
- * @example
10
- * Simple Example
9
+ * @example Simple Example
11
10
  * ```tsx
12
11
  * const { value, getRadioProps } = useRadioGroup({ name: "group" });
13
12
  *
@@ -8,8 +8,7 @@ import { InputToggle } from "./InputToggle.js";
8
8
  * You'll generally want to use the `useRadioGroup` hook along with this
9
9
  * component.
10
10
  *
11
- * @example
12
- * Simple Example
11
+ * @example Simple Example
13
12
  * ```tsx
14
13
  * const { value, getRadioProps } = useRadioGroup({ name: "group" });
15
14
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Radio.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { InputToggle, type RadioProps } from \"./InputToggle.js\";\n\n/**\n * **Client Component**\n *\n * You'll generally want to use the `useRadioGroup` hook along with this\n * component.\n *\n * @example\n * Simple Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n return <InputToggle {...props} ref={ref} type=\"radio\" />;\n }\n);\n"],"names":["forwardRef","InputToggle","Radio","props","ref","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,WAAW,QAAyB,mBAAmB;AAEhE;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,MAAMC,sBAAQF,WACnB,SAASE,MAAMC,KAAK,EAAEC,GAAG;IACvB,qBAAO,KAACH;QAAa,GAAGE,KAAK;QAAEC,KAAKA;QAAKC,MAAK;;AAChD,GACA"}
1
+ {"version":3,"sources":["../../src/form/Radio.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { InputToggle, type RadioProps } from \"./InputToggle.js\";\n\n/**\n * **Client Component**\n *\n * You'll generally want to use the `useRadioGroup` hook along with this\n * component.\n *\n * @example Simple Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n return <InputToggle {...props} ref={ref} type=\"radio\" />;\n }\n);\n"],"names":["forwardRef","InputToggle","Radio","props","ref","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,WAAW,QAAyB,mBAAmB;AAEhE;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,MAAMC,sBAAQF,WACnB,SAASE,MAAMC,KAAK,EAAEC,GAAG;IACvB,qBAAO,KAACH;QAAa,GAAGE,KAAK;QAAEC,KAAKA;QAAKC,MAAK;;AAChD,GACA"}
@@ -1,6 +1,6 @@
1
1
  import { type CSSProperties, type HTMLAttributes, type Ref, type TextareaHTMLAttributes } from "react";
2
2
  /**
3
- * @remarks \@since 6.0.0
3
+ * @since 6.0.0
4
4
  * @internal
5
5
  */
6
6
  export interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElement> {
@@ -13,7 +13,7 @@ export interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElem
13
13
  disableTransition?: boolean;
14
14
  }
15
15
  /**
16
- * @remarks \@since 6.0.0
16
+ * @since 6.0.0
17
17
  * @internal
18
18
  */
19
19
  export declare const ResizingTextAreaWrapper: import("react").ForwardRefExoticComponent<ResizingTextAreaWrapperProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -3,7 +3,7 @@ import { cnb } from "cnbuilder";
3
3
  import { forwardRef } from "react";
4
4
  import { textArea } from "./textAreaStyles.js";
5
5
  /**
6
- * @remarks \@since 6.0.0
6
+ * @since 6.0.0
7
7
  * @internal
8
8
  */ export const ResizingTextAreaWrapper = /*#__PURE__*/ forwardRef(function ResizingTextAreaWrapper(props, ref) {
9
9
  const { className, rows, maskId, maskRef, areaStyle, areaClassName, defaultValue, disableTransition, children, ...remaining } = props;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/ResizingTextAreaWrapper.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type Ref,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { textArea } from \"./textAreaStyles.js\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface ResizingTextAreaWrapperProps\n extends HTMLAttributes<HTMLDivElement> {\n maskId: string;\n maskRef: Ref<HTMLTextAreaElement>;\n defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>[\"defaultValue\"];\n rows: number;\n areaStyle?: CSSProperties;\n areaClassName?: string;\n disableTransition?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport const ResizingTextAreaWrapper = forwardRef<\n HTMLDivElement,\n ResizingTextAreaWrapperProps\n>(function ResizingTextAreaWrapper(props, ref) {\n const {\n className,\n rows,\n maskId,\n maskRef,\n areaStyle,\n areaClassName,\n defaultValue,\n disableTransition,\n children,\n ...remaining\n } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n className\n )}\n >\n {children}\n <textarea\n aria-hidden\n id={maskId}\n ref={maskRef}\n defaultValue={defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize: \"auto\",\n className: areaClassName,\n })}\n />\n </div>\n );\n});\n"],"names":["cnb","forwardRef","textArea","ResizingTextAreaWrapper","props","ref","className","rows","maskId","maskRef","areaStyle","areaClassName","defaultValue","disableTransition","children","remaining","div","textarea","aria-hidden","id","readOnly","tabIndex","style","mask","resize"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SACEC,UAAU,QAKL,QAAQ;AACf,SAASC,QAAQ,QAAQ,sBAAsB;AAiB/C;;;CAGC,GACD,OAAO,MAAMC,wCAA0BF,WAGrC,SAASE,wBAAwBC,KAAK,EAAEC,GAAG;IAC3C,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACR,GAAGC,WACJ,GAAGX;IAEJ,qBACE,MAACY;QACE,GAAGD,SAAS;QACbV,KAAKA;QACLC,WAAWN,IACT,iCACA,CAACa,qBAAqB,0CACtBP;;YAGDQ;0BACD,KAACG;gBACCC,aAAW;gBACXC,IAAIX;gBACJH,KAAKI;gBACLG,cAAcA;gBACdQ,QAAQ;gBACRC,UAAU,CAAC;gBACXd,MAAMA;gBACNe,OAAOZ;gBACPJ,WAAWJ,SAAS;oBAClBqB,MAAM;oBACNC,QAAQ;oBACRlB,WAAWK;gBACb;;;;AAIR,GAAG"}
1
+ {"version":3,"sources":["../../src/form/ResizingTextAreaWrapper.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type Ref,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { textArea } from \"./textAreaStyles.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ResizingTextAreaWrapperProps\n extends HTMLAttributes<HTMLDivElement> {\n maskId: string;\n maskRef: Ref<HTMLTextAreaElement>;\n defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>[\"defaultValue\"];\n rows: number;\n areaStyle?: CSSProperties;\n areaClassName?: string;\n disableTransition?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const ResizingTextAreaWrapper = forwardRef<\n HTMLDivElement,\n ResizingTextAreaWrapperProps\n>(function ResizingTextAreaWrapper(props, ref) {\n const {\n className,\n rows,\n maskId,\n maskRef,\n areaStyle,\n areaClassName,\n defaultValue,\n disableTransition,\n children,\n ...remaining\n } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n className\n )}\n >\n {children}\n <textarea\n aria-hidden\n id={maskId}\n ref={maskRef}\n defaultValue={defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize: \"auto\",\n className: areaClassName,\n })}\n />\n </div>\n );\n});\n"],"names":["cnb","forwardRef","textArea","ResizingTextAreaWrapper","props","ref","className","rows","maskId","maskRef","areaStyle","areaClassName","defaultValue","disableTransition","children","remaining","div","textarea","aria-hidden","id","readOnly","tabIndex","style","mask","resize"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SACEC,UAAU,QAKL,QAAQ;AACf,SAASC,QAAQ,QAAQ,sBAAsB;AAiB/C;;;CAGC,GACD,OAAO,MAAMC,wCAA0BF,WAGrC,SAASE,wBAAwBC,KAAK,EAAEC,GAAG;IAC3C,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACR,GAAGC,WACJ,GAAGX;IAEJ,qBACE,MAACY;QACE,GAAGD,SAAS;QACbV,KAAKA;QACLC,WAAWN,IACT,iCACA,CAACa,qBAAqB,0CACtBP;;YAGDQ;0BACD,KAACG;gBACCC,aAAW;gBACXC,IAAIX;gBACJH,KAAKI;gBACLG,cAAcA;gBACdQ,QAAQ;gBACRC,UAAU,CAAC;gBACXd,MAAMA;gBACNe,OAAOZ;gBACPJ,WAAWJ,SAAS;oBAClBqB,MAAM;oBACNC,QAAQ;oBACRlB,WAAWK;gBACb;;;;AAIR,GAAG"}
@@ -13,8 +13,7 @@ import { type UserAgentAutocompleteProps } from "./types.js";
13
13
  * invalid value. This also does not work for numbers, so you will need to
14
14
  * implement that yourself.
15
15
  *
16
- * @example
17
- * Simple Usage
16
+ * @example Simple Usage
18
17
  * ```tsx
19
18
  * import type { SelectedChangeEvent } from "@react-md/core";
20
19
  * import { Select, Option } from "@react-md/core";
@@ -45,7 +44,7 @@ import { type UserAgentAutocompleteProps } from "./types.js";
45
44
  * );
46
45
  * }
47
46
  * ```
48
- * @remarks \@since 6.0.0
47
+ * @since 6.0.0
49
48
  */
50
49
  export type SelectChangeEvent<Value extends string> = ChangeEvent<HTMLInputElement> & {
51
50
  currentTarget: {
@@ -53,7 +52,7 @@ export type SelectChangeEvent<Value extends string> = ChangeEvent<HTMLInputEleme
53
52
  };
54
53
  };
55
54
  /**
56
- * @remarks \@since 6.0.0 Rewritten with a new API.
55
+ * @since 6.0.0 Rewritten with a new API.
57
56
  */
58
57
  export interface SelectProps<Value extends string> extends Omit<TextFieldContainerProps, "label">, Pick<InputHTMLAttributes<HTMLInputElement>, "form" | "required">, UserAgentAutocompleteProps {
59
58
  /**
@@ -156,8 +155,7 @@ export interface SelectProps<Value extends string> extends Omit<TextFieldContain
156
155
  /**
157
156
  * **Client Component**
158
157
  *
159
- * @example
160
- * Simple Example
158
+ * @example Simple Example
161
159
  * ```tsx
162
160
  * import { Select, Option } from "react-md";
163
161
  * import { useState, type ReactElement } from "react";
@@ -181,8 +179,7 @@ export interface SelectProps<Value extends string> extends Omit<TextFieldContain
181
179
  * }
182
180
  * ```
183
181
  *
184
- * @example
185
- * Testing
182
+ * @example Testing
186
183
  * ```tsx
187
184
  * rmdRender(
188
185
  * <Select label="Select" selectedOptionProps={{ "data-testid": "selected" }}>
@@ -207,6 +204,6 @@ export interface SelectProps<Value extends string> extends Omit<TextFieldContain
207
204
  * expect(selectInput).toHaveValue("b");
208
205
  * ```
209
206
  *
210
- * @remarks \@since 6.0.0 Rewritten with a new API.
207
+ * @since 6.0.0 Rewritten with a new API.
211
208
  */
212
209
  export declare function Select<Value extends string>(props: RequireAtLeastOne<SelectProps<Value>, "label" | keyof LabelA11y>): ReactElement;
@@ -25,8 +25,7 @@ const noop = ()=>{
25
25
  /**
26
26
  * **Client Component**
27
27
  *
28
- * @example
29
- * Simple Example
28
+ * @example Simple Example
30
29
  * ```tsx
31
30
  * import { Select, Option } from "react-md";
32
31
  * import { useState, type ReactElement } from "react";
@@ -50,8 +49,7 @@ const noop = ()=>{
50
49
  * }
51
50
  * ```
52
51
  *
53
- * @example
54
- * Testing
52
+ * @example Testing
55
53
  * ```tsx
56
54
  * rmdRender(
57
55
  * <Select label="Select" selectedOptionProps={{ "data-testid": "selected" }}>
@@ -76,7 +74,7 @@ const noop = ()=>{
76
74
  * expect(selectInput).toHaveValue("b");
77
75
  * ```
78
76
  *
79
- * @remarks \@since 6.0.0 Rewritten with a new API.
77
+ * @since 6.0.0 Rewritten with a new API.
80
78
  */ export function Select(props) {
81
79
  const { id, form, autoCompleteValue, autoComplete = autoCompleteValue, name = autoCompleteValue, className, onClick, onFocus, onKeyDown, inputRef: propInputRef, inputProps, containerRef, placeholder, menuProps = {}, label, labelProps = {}, selectedOptionProps, icon: propIcon, value, defaultValue, theme: propTheme, onChange = noop, rightAddon: propRightAddon, active = false, required, selectedIconAfter = false, disableOptionAddon = false, disableSelectedIcon = false, children, ...remaining } = props;
82
80
  const { dense, error, disabled } = props;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Select.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { type BoxProps } from \"../box/Box.js\";\nimport { IconRotator } from \"../icon/IconRotator.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { Menu, type MenuProps } from \"../menu/Menu.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport {\n type LabelA11y,\n type PropsWithRef,\n type RequireAtLeastOne,\n} from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { label as labelStyles } from \"./Label.js\";\nimport { SelectedOption } from \"./SelectedOption.js\";\nimport {\n TextFieldContainer,\n type TextFieldContainerProps,\n} from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { select } from \"./selectStyles.js\";\nimport { extractOptionsFromChildren } from \"./selectUtils.js\";\nimport { textField } from \"./textFieldStyles.js\";\nimport { type UserAgentAutocompleteProps } from \"./types.js\";\nimport { useFormReset } from \"./useFormReset.js\";\nimport { ListboxProvider, type ListboxContext } from \"./useListboxProvider.js\";\nimport { useSelectCombobox } from \"./useSelectCombobox.js\";\n\nconst EMPTY_STRING = \"\" as const;\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This is a convenience type for casting the `event.currentTarget.value` of a\n * `Select`'s change event to be union of available values.\n *\n * Note: The change event does not provide any sort of validation on the value\n * so automation tools like Cypress, Playwright, or Selenium might set an\n * invalid value. This also does not work for numbers, so you will need to\n * implement that yourself.\n *\n * @example\n * Simple Usage\n * ```tsx\n * import type { SelectedChangeEvent } from \"@react-md/core\";\n * import { Select, Option } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * type Value = \"\" | \"a\" | \"b\" | \"c\" | \"d\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState<Value>(\"\");\n *\n * const handleChange = (event: SelectChangeEvent<Value>): void => {\n * // No type error!\n * // `event.currentTarget.value`'s type is `Value` instead of a generic `string`\n * setValue(event.currentTarget.value);\n * };\n *\n * return (\n * <Select\n * label=\"Label\"\n * value={value}\n * onChange={handleChange}\n * >\n * <Option value=\"a\">First</Option>\n * <Option value=\"b\">Second</Option>\n * <Option value=\"c\">Third</Option>\n * <Option value=\"d\">Fourth</Option>\n * </Select>\n * );\n * }\n * ```\n * @remarks \\@since 6.0.0\n */\nexport type SelectChangeEvent<Value extends string> =\n ChangeEvent<HTMLInputElement> & { currentTarget: { value: Value } };\n\n/**\n * @remarks \\@since 6.0.0 Rewritten with a new API.\n */\nexport interface SelectProps<Value extends string>\n extends Omit<TextFieldContainerProps, \"label\">,\n Pick<InputHTMLAttributes<HTMLInputElement>, \"form\" | \"required\">,\n UserAgentAutocompleteProps {\n /**\n * @defaultValue `\"select-\" + useId()`\n */\n id?: string;\n\n /**\n * Optional placeholder text or element to render while no options have been\n * selected.\n */\n placeholder?: ReactNode;\n\n /**\n * Set this to a custom dropdown icon or `null` to not render a dropdown icon.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * Set this value to fully control the value of the select component. The\n * {@link onChange} handler **must** also be provided if this prop exists.\n */\n value?: Value;\n\n /**\n * An optional default value when the value of the select component is\n * uncontrolled.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: Value;\n\n /** @see {@link SelectChangeEvent} */\n onChange?(event: SelectChangeEvent<Value>): void;\n\n /**\n * An optional floating label to display like other form fields.\n */\n label?: ReactNode;\n\n /**\n * Optional props to pass to the `<span>` that surrounds the {@link label}\n */\n labelProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional ref to pass to the hidden `<input type=\"text\" />` element that\n * stores the current value. This is really only useful if you'd like to keep\n * this component uncontrolled and access the value through\n * `inputRef.current.value`.\n */\n inputRef?: Ref<HTMLInputElement>;\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n\n /**\n * A ref for the container `<div>` element.\n */\n containerRef?: Ref<HTMLDivElement>;\n\n /**\n * Any additional props to provide to the `Menu` component that renders all\n * the `Option`s.\n *\n * The menu will always have these default values unless explicity\n * overwritten by this prop:\n *\n * - `aria-labelledby={label ? labelId : id}` -- this will be undefined if\n * `aria-label` is provided\n * - `anchor={BELOW_CENTER_ANCHOR}`\n * - `width=\"min\"`\n */\n menuProps?: Omit<MenuProps, \"visible\" | \"onRequestClose\" | \"fixedTo\">;\n\n /**\n * Any additional props to pass to the div that contains the current visible\n * option.\n */\n selectedOptionProps?: BoxProps;\n\n /**\n * Set this to `true` if all the `Option` components should display the\n * selected icon after the children instead of before.\n *\n * @see {@link disableSelectedIcon} to remove the selected icon instead.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Set this to `true` to prevent the current option from rendering the\n * `leftAddon` in the `TextFieldContainer`.\n *\n * @defaultValue `false`\n */\n disableOptionAddon?: boolean;\n\n /**\n * Set this to `true` to update all the `Option` components to no longer\n * render an icon while selected.\n *\n * @defaultValue `false`\n */\n disableSelectedIcon?: boolean;\n\n /**\n * This should be the available `Option`s for the select to choose from. It\n * can also contain `OptGroup` or any other elements but only clicking on an\n * `Option` component will update the value.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Select, Option } from \"react-md\";\n * import { useState, type ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState(\"\");\n *\n * return (\n * <Select\n * label=\"Select\"\n * value={value}\n * onChange={(event) => setValue(event.currentTarget.value)}\n * placeholder=\"Select a value\"\n * >\n * <Option value=\"a\">Option 1</Option>\n * <Option value=\"b\">Option 2</Option>\n * <Option value=\"c\">Option 3</Option>\n * <Option value=\"d\">Option 4</Option>\n * </Select>\n * );\n * }\n * ```\n *\n * @example\n * Testing\n * ```tsx\n * rmdRender(\n * <Select label=\"Select\" selectedOptionProps={{ \"data-testid\": \"selected\" }}>\n * <Option value=\"a\">Option 1</Option>\n * <Option value=\"b\">Option 2</Option>\n * <Option value=\"c\">Option 3</Option>\n * <Option value=\"d\">Option 4</Option>\n * </Select>\n * );\n *\n * const user = userEvent.setup();\n * const select = screen.getByRole(\"combobox\", { name: \"Select\" });\n * const selected = screen.getByTestId(\"selected\")\n * const selectInput = screen.getByRole(\"textbox\", { hidden: true });\n * expect(selected).toHaveTextContent(\"\");\n * expect(selectInput).toHaveValue(\"\");\n *\n * await user.click(select);\n * await user.click(screen.getByRole(\"option\"), { name: \"Option 2\" });\n *\n * expect(selected).toHaveTextContent(\"Option 2\");\n * expect(selectInput).toHaveValue(\"b\");\n * ```\n *\n * @remarks \\@since 6.0.0 Rewritten with a new API.\n */\nexport function Select<Value extends string>(\n props: RequireAtLeastOne<SelectProps<Value>, \"label\" | keyof LabelA11y>\n): ReactElement {\n const {\n id,\n form,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n className,\n onClick,\n onFocus,\n onKeyDown,\n inputRef: propInputRef,\n inputProps,\n containerRef,\n placeholder,\n menuProps = {},\n label,\n labelProps = {},\n selectedOptionProps,\n icon: propIcon,\n value,\n defaultValue,\n theme: propTheme,\n onChange = noop,\n rightAddon: propRightAddon,\n active = false,\n required,\n selectedIconAfter = false,\n disableOptionAddon = false,\n disableSelectedIcon = false,\n children,\n ...remaining\n } = props;\n const { dense, error, disabled } = props;\n\n const comboboxId = useEnsuredId(id, \"select\");\n const inputId = useEnsuredId(inputProps?.id, \"select-value\");\n const selectLabelId = useEnsuredId(labelProps.id, \"select-label\");\n const labelId = label ? selectLabelId : undefined;\n\n const [localValue, setLocalValue] = useState(() => {\n if (typeof defaultValue !== \"undefined\") {\n return defaultValue;\n }\n\n return typeof value !== \"undefined\" ? value : EMPTY_STRING;\n });\n const currentValue = typeof value === \"undefined\" ? localValue : value;\n const initialValue = useRef(currentValue);\n const { options, currentOption } = extractOptionsFromChildren(\n children,\n currentValue\n );\n\n const { visible, comboboxProps, movementContext, getMenuProps } =\n useSelectCombobox({\n form,\n value: currentValue,\n values: options,\n onClick,\n onFocus,\n onKeyDown,\n disabled,\n popupId: menuProps.id,\n popupRef: menuProps.nodeRef,\n comboboxId,\n comboboxRef: containerRef,\n });\n\n const [inputRef, inputRefCallback] = useEnsuredRef(propInputRef);\n useFormReset({\n form,\n elementRef: inputRef,\n defaultValue: initialValue.current,\n });\n const listboxContext = useMemo<ListboxContext>(\n () => ({\n inputRef,\n currentValue,\n selectedIconAfter,\n disableSelectedIcon,\n }),\n [currentValue, disableSelectedIcon, inputRef, selectedIconAfter]\n );\n\n const icon = getIcon(\"dropdown\", propIcon);\n const theme = getFormConfig(\"theme\", propTheme);\n let rightAddon = propRightAddon;\n if (typeof rightAddon === \"undefined\" && icon) {\n rightAddon = <IconRotator rotated={visible}>{icon}</IconRotator>;\n }\n\n let listboxLabelledBy = menuProps[\"aria-labelledby\"];\n const listboxLabel = menuProps[\"aria-label\"];\n if (!listboxLabel && !listboxLabelledBy) {\n listboxLabelledBy = labelId || comboboxId;\n }\n\n return (\n <ListboxProvider value={listboxContext}>\n <KeyboardMovementProvider value={movementContext}>\n <TextFieldContainer\n aria-labelledby={labelId}\n {...remaining}\n {...comboboxProps}\n label={!!label}\n theme={theme}\n active={active || visible}\n className={cnb(\"rmd-select-container\", className)}\n rightAddon={rightAddon}\n >\n <SelectedOption\n option={currentOption}\n placeholder={placeholder}\n disableAddon={disableOptionAddon}\n {...selectedOptionProps}\n />\n <input\n aria-hidden\n id={inputId}\n ref={inputRefCallback}\n type=\"text\"\n autoComplete={autoComplete}\n name={name}\n tabIndex={-1}\n disabled={disabled}\n required={required}\n placeholder=\" \"\n {...inputProps}\n value={value}\n defaultValue={defaultValue}\n className={cnb(select({ theme }), textField())}\n onChange={(event) => {\n onChange(event as SelectChangeEvent<Value>);\n if (typeof value !== \"undefined\") {\n return;\n }\n\n const nextValue = event.currentTarget.value;\n const nextOption = options.find((option) => option === nextValue);\n\n setLocalValue(nextOption ?? initialValue.current);\n }}\n />\n {label && (\n <span\n {...labelProps}\n id={labelId}\n className={labelStyles({\n dense,\n error,\n disabled,\n active: active || visible,\n floating: true,\n floatingActive: !!placeholder || !!currentOption,\n className: labelProps.className,\n })}\n >\n {label}\n </span>\n )}\n </TextFieldContainer>\n <Menu\n {...getMenuProps(menuProps)}\n aria-label={listboxLabel}\n aria-labelledby={listboxLabelledBy as string}\n >\n {children}\n </Menu>\n </KeyboardMovementProvider>\n </ListboxProvider>\n );\n}\n"],"names":["cnb","useMemo","useRef","useState","IconRotator","getIcon","Menu","KeyboardMovementProvider","useEnsuredId","useEnsuredRef","label","labelStyles","SelectedOption","TextFieldContainer","getFormConfig","select","extractOptionsFromChildren","textField","useFormReset","ListboxProvider","useSelectCombobox","EMPTY_STRING","noop","Select","props","id","form","autoCompleteValue","autoComplete","name","className","onClick","onFocus","onKeyDown","inputRef","propInputRef","inputProps","containerRef","placeholder","menuProps","labelProps","selectedOptionProps","icon","propIcon","value","defaultValue","theme","propTheme","onChange","rightAddon","propRightAddon","active","required","selectedIconAfter","disableOptionAddon","disableSelectedIcon","children","remaining","dense","error","disabled","comboboxId","inputId","selectLabelId","labelId","undefined","localValue","setLocalValue","currentValue","initialValue","options","currentOption","visible","comboboxProps","movementContext","getMenuProps","values","popupId","popupRef","nodeRef","comboboxRef","inputRefCallback","elementRef","current","listboxContext","rotated","listboxLabelledBy","listboxLabel","aria-labelledby","option","disableAddon","input","aria-hidden","ref","type","tabIndex","event","nextValue","currentTarget","nextOption","find","span","floating","floatingActive","aria-label"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/Select.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { type BoxProps } from \"../box/Box.js\";\nimport { IconRotator } from \"../icon/IconRotator.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { Menu, type MenuProps } from \"../menu/Menu.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport {\n type LabelA11y,\n type PropsWithRef,\n type RequireAtLeastOne,\n} from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { label as labelStyles } from \"./Label.js\";\nimport { SelectedOption } from \"./SelectedOption.js\";\nimport {\n TextFieldContainer,\n type TextFieldContainerProps,\n} from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { select } from \"./selectStyles.js\";\nimport { extractOptionsFromChildren } from \"./selectUtils.js\";\nimport { textField } from \"./textFieldStyles.js\";\nimport { type UserAgentAutocompleteProps } from \"./types.js\";\nimport { useFormReset } from \"./useFormReset.js\";\nimport { ListboxProvider, type ListboxContext } from \"./useListboxProvider.js\";\nimport { useSelectCombobox } from \"./useSelectCombobox.js\";\n\nconst EMPTY_STRING = \"\" as const;\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This is a convenience type for casting the `event.currentTarget.value` of a\n * `Select`'s change event to be union of available values.\n *\n * Note: The change event does not provide any sort of validation on the value\n * so automation tools like Cypress, Playwright, or Selenium might set an\n * invalid value. This also does not work for numbers, so you will need to\n * implement that yourself.\n *\n * @example Simple Usage\n * ```tsx\n * import type { SelectedChangeEvent } from \"@react-md/core\";\n * import { Select, Option } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * type Value = \"\" | \"a\" | \"b\" | \"c\" | \"d\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState<Value>(\"\");\n *\n * const handleChange = (event: SelectChangeEvent<Value>): void => {\n * // No type error!\n * // `event.currentTarget.value`'s type is `Value` instead of a generic `string`\n * setValue(event.currentTarget.value);\n * };\n *\n * return (\n * <Select\n * label=\"Label\"\n * value={value}\n * onChange={handleChange}\n * >\n * <Option value=\"a\">First</Option>\n * <Option value=\"b\">Second</Option>\n * <Option value=\"c\">Third</Option>\n * <Option value=\"d\">Fourth</Option>\n * </Select>\n * );\n * }\n * ```\n * @since 6.0.0\n */\nexport type SelectChangeEvent<Value extends string> =\n ChangeEvent<HTMLInputElement> & { currentTarget: { value: Value } };\n\n/**\n * @since 6.0.0 Rewritten with a new API.\n */\nexport interface SelectProps<Value extends string>\n extends Omit<TextFieldContainerProps, \"label\">,\n Pick<InputHTMLAttributes<HTMLInputElement>, \"form\" | \"required\">,\n UserAgentAutocompleteProps {\n /**\n * @defaultValue `\"select-\" + useId()`\n */\n id?: string;\n\n /**\n * Optional placeholder text or element to render while no options have been\n * selected.\n */\n placeholder?: ReactNode;\n\n /**\n * Set this to a custom dropdown icon or `null` to not render a dropdown icon.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * Set this value to fully control the value of the select component. The\n * {@link onChange} handler **must** also be provided if this prop exists.\n */\n value?: Value;\n\n /**\n * An optional default value when the value of the select component is\n * uncontrolled.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: Value;\n\n /** @see {@link SelectChangeEvent} */\n onChange?(event: SelectChangeEvent<Value>): void;\n\n /**\n * An optional floating label to display like other form fields.\n */\n label?: ReactNode;\n\n /**\n * Optional props to pass to the `<span>` that surrounds the {@link label}\n */\n labelProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional ref to pass to the hidden `<input type=\"text\" />` element that\n * stores the current value. This is really only useful if you'd like to keep\n * this component uncontrolled and access the value through\n * `inputRef.current.value`.\n */\n inputRef?: Ref<HTMLInputElement>;\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n\n /**\n * A ref for the container `<div>` element.\n */\n containerRef?: Ref<HTMLDivElement>;\n\n /**\n * Any additional props to provide to the `Menu` component that renders all\n * the `Option`s.\n *\n * The menu will always have these default values unless explicity\n * overwritten by this prop:\n *\n * - `aria-labelledby={label ? labelId : id}` -- this will be undefined if\n * `aria-label` is provided\n * - `anchor={BELOW_CENTER_ANCHOR}`\n * - `width=\"min\"`\n */\n menuProps?: Omit<MenuProps, \"visible\" | \"onRequestClose\" | \"fixedTo\">;\n\n /**\n * Any additional props to pass to the div that contains the current visible\n * option.\n */\n selectedOptionProps?: BoxProps;\n\n /**\n * Set this to `true` if all the `Option` components should display the\n * selected icon after the children instead of before.\n *\n * @see {@link disableSelectedIcon} to remove the selected icon instead.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Set this to `true` to prevent the current option from rendering the\n * `leftAddon` in the `TextFieldContainer`.\n *\n * @defaultValue `false`\n */\n disableOptionAddon?: boolean;\n\n /**\n * Set this to `true` to update all the `Option` components to no longer\n * render an icon while selected.\n *\n * @defaultValue `false`\n */\n disableSelectedIcon?: boolean;\n\n /**\n * This should be the available `Option`s for the select to choose from. It\n * can also contain `OptGroup` or any other elements but only clicking on an\n * `Option` component will update the value.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import { Select, Option } from \"react-md\";\n * import { useState, type ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState(\"\");\n *\n * return (\n * <Select\n * label=\"Select\"\n * value={value}\n * onChange={(event) => setValue(event.currentTarget.value)}\n * placeholder=\"Select a value\"\n * >\n * <Option value=\"a\">Option 1</Option>\n * <Option value=\"b\">Option 2</Option>\n * <Option value=\"c\">Option 3</Option>\n * <Option value=\"d\">Option 4</Option>\n * </Select>\n * );\n * }\n * ```\n *\n * @example Testing\n * ```tsx\n * rmdRender(\n * <Select label=\"Select\" selectedOptionProps={{ \"data-testid\": \"selected\" }}>\n * <Option value=\"a\">Option 1</Option>\n * <Option value=\"b\">Option 2</Option>\n * <Option value=\"c\">Option 3</Option>\n * <Option value=\"d\">Option 4</Option>\n * </Select>\n * );\n *\n * const user = userEvent.setup();\n * const select = screen.getByRole(\"combobox\", { name: \"Select\" });\n * const selected = screen.getByTestId(\"selected\")\n * const selectInput = screen.getByRole(\"textbox\", { hidden: true });\n * expect(selected).toHaveTextContent(\"\");\n * expect(selectInput).toHaveValue(\"\");\n *\n * await user.click(select);\n * await user.click(screen.getByRole(\"option\"), { name: \"Option 2\" });\n *\n * expect(selected).toHaveTextContent(\"Option 2\");\n * expect(selectInput).toHaveValue(\"b\");\n * ```\n *\n * @since 6.0.0 Rewritten with a new API.\n */\nexport function Select<Value extends string>(\n props: RequireAtLeastOne<SelectProps<Value>, \"label\" | keyof LabelA11y>\n): ReactElement {\n const {\n id,\n form,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n className,\n onClick,\n onFocus,\n onKeyDown,\n inputRef: propInputRef,\n inputProps,\n containerRef,\n placeholder,\n menuProps = {},\n label,\n labelProps = {},\n selectedOptionProps,\n icon: propIcon,\n value,\n defaultValue,\n theme: propTheme,\n onChange = noop,\n rightAddon: propRightAddon,\n active = false,\n required,\n selectedIconAfter = false,\n disableOptionAddon = false,\n disableSelectedIcon = false,\n children,\n ...remaining\n } = props;\n const { dense, error, disabled } = props;\n\n const comboboxId = useEnsuredId(id, \"select\");\n const inputId = useEnsuredId(inputProps?.id, \"select-value\");\n const selectLabelId = useEnsuredId(labelProps.id, \"select-label\");\n const labelId = label ? selectLabelId : undefined;\n\n const [localValue, setLocalValue] = useState(() => {\n if (typeof defaultValue !== \"undefined\") {\n return defaultValue;\n }\n\n return typeof value !== \"undefined\" ? value : EMPTY_STRING;\n });\n const currentValue = typeof value === \"undefined\" ? localValue : value;\n const initialValue = useRef(currentValue);\n const { options, currentOption } = extractOptionsFromChildren(\n children,\n currentValue\n );\n\n const { visible, comboboxProps, movementContext, getMenuProps } =\n useSelectCombobox({\n form,\n value: currentValue,\n values: options,\n onClick,\n onFocus,\n onKeyDown,\n disabled,\n popupId: menuProps.id,\n popupRef: menuProps.nodeRef,\n comboboxId,\n comboboxRef: containerRef,\n });\n\n const [inputRef, inputRefCallback] = useEnsuredRef(propInputRef);\n useFormReset({\n form,\n elementRef: inputRef,\n defaultValue: initialValue.current,\n });\n const listboxContext = useMemo<ListboxContext>(\n () => ({\n inputRef,\n currentValue,\n selectedIconAfter,\n disableSelectedIcon,\n }),\n [currentValue, disableSelectedIcon, inputRef, selectedIconAfter]\n );\n\n const icon = getIcon(\"dropdown\", propIcon);\n const theme = getFormConfig(\"theme\", propTheme);\n let rightAddon = propRightAddon;\n if (typeof rightAddon === \"undefined\" && icon) {\n rightAddon = <IconRotator rotated={visible}>{icon}</IconRotator>;\n }\n\n let listboxLabelledBy = menuProps[\"aria-labelledby\"];\n const listboxLabel = menuProps[\"aria-label\"];\n if (!listboxLabel && !listboxLabelledBy) {\n listboxLabelledBy = labelId || comboboxId;\n }\n\n return (\n <ListboxProvider value={listboxContext}>\n <KeyboardMovementProvider value={movementContext}>\n <TextFieldContainer\n aria-labelledby={labelId}\n {...remaining}\n {...comboboxProps}\n label={!!label}\n theme={theme}\n active={active || visible}\n className={cnb(\"rmd-select-container\", className)}\n rightAddon={rightAddon}\n >\n <SelectedOption\n option={currentOption}\n placeholder={placeholder}\n disableAddon={disableOptionAddon}\n {...selectedOptionProps}\n />\n <input\n aria-hidden\n id={inputId}\n ref={inputRefCallback}\n type=\"text\"\n autoComplete={autoComplete}\n name={name}\n tabIndex={-1}\n disabled={disabled}\n required={required}\n placeholder=\" \"\n {...inputProps}\n value={value}\n defaultValue={defaultValue}\n className={cnb(select({ theme }), textField())}\n onChange={(event) => {\n onChange(event as SelectChangeEvent<Value>);\n if (typeof value !== \"undefined\") {\n return;\n }\n\n const nextValue = event.currentTarget.value;\n const nextOption = options.find((option) => option === nextValue);\n\n setLocalValue(nextOption ?? initialValue.current);\n }}\n />\n {label && (\n <span\n {...labelProps}\n id={labelId}\n className={labelStyles({\n dense,\n error,\n disabled,\n active: active || visible,\n floating: true,\n floatingActive: !!placeholder || !!currentOption,\n className: labelProps.className,\n })}\n >\n {label}\n </span>\n )}\n </TextFieldContainer>\n <Menu\n {...getMenuProps(menuProps)}\n aria-label={listboxLabel}\n aria-labelledby={listboxLabelledBy as string}\n >\n {children}\n </Menu>\n </KeyboardMovementProvider>\n </ListboxProvider>\n );\n}\n"],"names":["cnb","useMemo","useRef","useState","IconRotator","getIcon","Menu","KeyboardMovementProvider","useEnsuredId","useEnsuredRef","label","labelStyles","SelectedOption","TextFieldContainer","getFormConfig","select","extractOptionsFromChildren","textField","useFormReset","ListboxProvider","useSelectCombobox","EMPTY_STRING","noop","Select","props","id","form","autoCompleteValue","autoComplete","name","className","onClick","onFocus","onKeyDown","inputRef","propInputRef","inputProps","containerRef","placeholder","menuProps","labelProps","selectedOptionProps","icon","propIcon","value","defaultValue","theme","propTheme","onChange","rightAddon","propRightAddon","active","required","selectedIconAfter","disableOptionAddon","disableSelectedIcon","children","remaining","dense","error","disabled","comboboxId","inputId","selectLabelId","labelId","undefined","localValue","setLocalValue","currentValue","initialValue","options","currentOption","visible","comboboxProps","movementContext","getMenuProps","values","popupId","popupRef","nodeRef","comboboxRef","inputRefCallback","elementRef","current","listboxContext","rotated","listboxLabelledBy","listboxLabel","aria-labelledby","option","disableAddon","input","aria-hidden","ref","type","tabIndex","event","nextValue","currentTarget","nextOption","find","span","floating","floatingActive","aria-label"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}