@react-md/core 1.0.0-next.1 → 1.0.0-next.10

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 (1198) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +11 -7
  3. package/.turbo/turbo-lint.log +12 -12
  4. package/.turbo/turbo-test.log +5512 -166
  5. package/.turbo/turbo-typecheck.log +4 -4
  6. package/CHANGELOG.md +177 -0
  7. package/README.md +39 -24
  8. package/coverage/clover.xml +2 -2
  9. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  10. package/coverage/lcov-report/Avatar.tsx.html +472 -0
  11. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  12. package/coverage/lcov-report/IconRotator.tsx.html +322 -0
  13. package/coverage/lcov-report/ListItem.tsx.html +892 -0
  14. package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
  15. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  16. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
  17. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  18. package/coverage/lcov-report/Portal.tsx.html +223 -0
  19. package/coverage/lcov-report/PortalContainerProvider.tsx.html +367 -0
  20. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  21. package/coverage/lcov-report/Select.tsx.html +1411 -0
  22. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +613 -0
  23. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  24. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  25. package/coverage/lcov-report/Tab.tsx.html +261 -147
  26. package/coverage/lcov-report/Toast.tsx.html +868 -0
  27. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  28. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  29. package/coverage/lcov-report/TreeGroup.tsx.html +313 -0
  30. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  31. package/coverage/lcov-report/app-bar/AppBar.tsx.html +178 -28
  32. package/coverage/lcov-report/app-bar/index.html +7 -7
  33. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  34. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +475 -0
  35. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  36. package/coverage/lcov-report/autocomplete/index.html +221 -0
  37. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  38. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +1273 -0
  39. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +829 -0
  40. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +715 -0
  41. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  42. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +430 -0
  43. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +310 -0
  44. package/coverage/lcov-report/autocomplete/utils.ts.html +196 -0
  45. package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
  46. package/coverage/lcov-report/avatar/index.html +19 -34
  47. package/coverage/lcov-report/avatar/styles.ts.html +1 -1
  48. package/coverage/lcov-report/button/Button.tsx.html +85 -85
  49. package/coverage/lcov-report/button/TooltippedButton.tsx.html +445 -0
  50. package/coverage/lcov-report/button/index.html +12 -12
  51. package/coverage/lcov-report/card/Card.tsx.html +349 -0
  52. package/coverage/lcov-report/card/CardContent.tsx.html +223 -0
  53. package/coverage/lcov-report/card/ClickableCard.tsx.html +400 -0
  54. package/coverage/lcov-report/card/index.html +21 -21
  55. package/coverage/lcov-report/card/styles.ts.html +428 -392
  56. package/coverage/lcov-report/cssUtils.ts.html +86 -59
  57. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
  58. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
  59. package/coverage/lcov-report/dialog/index.html +34 -19
  60. package/coverage/lcov-report/draggable/index.html +21 -36
  61. package/coverage/lcov-report/draggable/useDraggable.ts.html +377 -368
  62. package/coverage/lcov-report/draggable/utils.ts.html +96 -195
  63. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +211 -0
  64. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +12 -15
  65. package/coverage/lcov-report/expansion-panel/index.html +34 -19
  66. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +928 -0
  67. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  68. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  69. package/coverage/lcov-report/form/Label.tsx.html +442 -0
  70. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +2 -2
  71. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  72. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  73. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +442 -0
  74. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +310 -0
  75. package/coverage/lcov-report/form/Select.tsx.html +1456 -0
  76. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  77. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  78. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  79. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +727 -0
  80. package/coverage/lcov-report/form/Slider.tsx.html +163 -40
  81. package/coverage/lcov-report/form/TextArea.tsx.html +596 -740
  82. package/coverage/lcov-report/form/TextArea2.tsx.html +985 -0
  83. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +1006 -0
  84. package/coverage/lcov-report/form/TextField.tsx.html +156 -234
  85. package/coverage/lcov-report/form/index.html +111 -21
  86. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  87. package/coverage/lcov-report/form/textAreaStyles.ts.html +8 -11
  88. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  89. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  90. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  91. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  92. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  93. package/coverage/lcov-report/form/useResizingTextArea.ts.html +631 -0
  94. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +631 -0
  95. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  96. package/coverage/lcov-report/form/utils.ts.html +209 -170
  97. package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
  98. package/coverage/lcov-report/icon/FontIcon.tsx.html +64 -64
  99. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  100. package/coverage/lcov-report/icon/index.html +19 -19
  101. package/coverage/lcov-report/index.html +1 -1
  102. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +679 -0
  103. package/coverage/lcov-report/interaction/config.ts.html +181 -0
  104. package/coverage/lcov-report/interaction/index.html +33 -18
  105. package/coverage/lcov-report/list/List.tsx.html +490 -0
  106. package/coverage/lcov-report/list/ListItem.tsx.html +886 -0
  107. package/coverage/lcov-report/list/ListItemAddon.tsx.html +286 -0
  108. package/coverage/lcov-report/list/ListItemChildren.tsx.html +445 -0
  109. package/coverage/lcov-report/list/ListItemLink.tsx.html +5 -5
  110. package/coverage/lcov-report/list/index.html +81 -6
  111. package/coverage/lcov-report/list/listItemStyles.ts.html +703 -0
  112. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  113. package/coverage/lcov-report/media-queries/index.html +1 -1
  114. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
  115. package/coverage/lcov-report/menu/Menu.tsx.html +276 -252
  116. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  117. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +433 -0
  118. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  119. package/coverage/lcov-report/menu/index.html +14 -44
  120. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  121. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  122. package/coverage/lcov-report/movement/index.html +19 -19
  123. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  124. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  125. package/coverage/lcov-report/positioning/index.html +30 -30
  126. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  127. package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
  128. package/coverage/lcov-report/progress/index.html +19 -34
  129. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  130. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  131. package/coverage/lcov-report/searching/index.html +146 -0
  132. package/coverage/lcov-report/searching/toSearchQuery.ts.html +145 -0
  133. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +211 -0
  134. package/coverage/lcov-report/searching/utils.ts.html +244 -0
  135. package/coverage/lcov-report/sheet/index.html +8 -8
  136. package/coverage/lcov-report/sheet/styles.ts.html +376 -0
  137. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +400 -0
  138. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  139. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  140. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  141. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  142. package/coverage/lcov-report/snackbar/index.html +59 -14
  143. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  144. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  145. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  146. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  147. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  148. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  149. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  150. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  151. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +143 -23
  152. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  153. package/coverage/lcov-report/src/app-bar/index.html +5 -5
  154. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +364 -0
  155. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  156. package/coverage/lcov-report/src/autocomplete/index.html +221 -0
  157. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +637 -0
  158. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +829 -0
  159. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +715 -0
  160. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +430 -0
  161. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +241 -0
  162. package/coverage/lcov-report/src/autocomplete/utils.ts.html +196 -0
  163. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +2 -2
  164. package/coverage/lcov-report/src/avatar/index.html +1 -1
  165. package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
  166. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  167. package/coverage/lcov-report/src/badge/index.html +1 -1
  168. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  169. package/coverage/lcov-report/src/box/index.html +23 -8
  170. package/coverage/lcov-report/src/box/styles.ts.html +46 -46
  171. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
  172. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  173. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  174. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +11 -11
  175. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +445 -0
  176. package/coverage/lcov-report/src/button/buttonStyles.ts.html +52 -52
  177. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  178. package/coverage/lcov-report/src/button/index.html +8 -23
  179. package/coverage/lcov-report/src/card/Card.tsx.html +37 -31
  180. package/coverage/lcov-report/src/card/CardContent.tsx.html +4 -4
  181. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  182. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  183. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  184. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  185. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +400 -0
  186. package/coverage/lcov-report/src/card/index.html +24 -9
  187. package/coverage/lcov-report/src/card/styles.ts.html +58 -31
  188. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  189. package/coverage/lcov-report/src/chip/index.html +7 -7
  190. package/coverage/lcov-report/src/chip/styles.ts.html +9 -12
  191. package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
  192. package/coverage/lcov-report/src/delegateEvent.ts.html +109 -109
  193. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
  194. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
  195. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
  196. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
  197. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
  198. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
  199. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  200. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
  201. package/coverage/lcov-report/src/dialog/index.html +129 -9
  202. package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
  203. package/coverage/lcov-report/src/divider/Divider.tsx.html +4 -7
  204. package/coverage/lcov-report/src/divider/index.html +5 -5
  205. package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
  206. package/coverage/lcov-report/src/draggable/index.html +27 -27
  207. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +47 -44
  208. package/coverage/lcov-report/src/draggable/utils.ts.html +29 -131
  209. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  210. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  211. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
  212. package/coverage/lcov-report/src/expansion-panel/index.html +8 -8
  213. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  214. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +36 -24
  215. package/coverage/lcov-report/src/focus/index.html +1 -1
  216. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
  217. package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
  218. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  219. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  220. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  221. package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
  222. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  223. package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
  224. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +5 -5
  225. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  226. package/coverage/lcov-report/src/form/InputToggle.tsx.html +110 -110
  227. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +63 -63
  228. package/coverage/lcov-report/src/form/Label.tsx.html +98 -98
  229. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  230. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
  231. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
  232. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
  233. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
  234. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  235. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
  236. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
  237. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  238. package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
  239. package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
  240. package/coverage/lcov-report/src/form/Radio.tsx.html +3 -3
  241. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +988 -0
  242. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +310 -0
  243. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1122
  244. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  245. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +694 -0
  246. package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
  247. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  248. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  249. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  250. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
  251. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  252. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
  253. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
  254. package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
  255. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
  256. package/coverage/lcov-report/src/form/TextArea.tsx.html +646 -580
  257. package/coverage/lcov-report/src/form/TextArea2.tsx.html +985 -0
  258. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +985 -0
  259. package/coverage/lcov-report/src/form/TextField.tsx.html +3 -3
  260. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
  261. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
  262. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +8 -8
  263. package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
  264. package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
  265. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
  266. package/coverage/lcov-report/src/form/index.html +81 -21
  267. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  268. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  269. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
  270. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  271. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  272. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  273. package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
  274. package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
  275. package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
  276. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  277. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  278. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  279. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
  280. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  281. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  282. package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
  283. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  284. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
  285. package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
  286. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +47 -47
  287. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
  288. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +405 -294
  289. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  290. package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
  291. package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
  292. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  293. package/coverage/lcov-report/src/form/validation.ts.html +1 -1
  294. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  295. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +98 -98
  296. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +19 -19
  297. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
  298. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +5 -8
  299. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
  300. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
  301. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  302. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  303. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
  304. package/coverage/lcov-report/src/icon/index.html +10 -145
  305. package/coverage/lcov-report/src/icon/material.ts.html +1 -1
  306. package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
  307. package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
  308. package/coverage/lcov-report/src/index.html +10 -10
  309. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
  310. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
  311. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
  312. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  313. package/coverage/lcov-report/src/interaction/index.html +1 -1
  314. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +123 -123
  315. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +19 -19
  316. package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
  317. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  318. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  319. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  320. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  321. package/coverage/lcov-report/src/layout/index.html +15 -15
  322. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  323. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  324. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  325. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  326. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  327. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +20 -32
  328. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  329. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  330. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  331. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  332. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
  333. package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
  334. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  335. package/coverage/lcov-report/src/link/index.html +1 -1
  336. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  337. package/coverage/lcov-report/src/list/List.tsx.html +1 -1
  338. package/coverage/lcov-report/src/list/ListItem.tsx.html +158 -137
  339. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +45 -39
  340. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +88 -82
  341. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +5 -5
  342. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  343. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  344. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
  345. package/coverage/lcov-report/src/list/index.html +13 -13
  346. package/coverage/lcov-report/src/list/listItemStyles.ts.html +102 -72
  347. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +54 -54
  348. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  349. package/coverage/lcov-report/src/media-queries/index.html +1 -1
  350. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +28 -28
  351. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
  352. package/coverage/lcov-report/src/menu/Menu.tsx.html +4 -4
  353. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  354. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
  355. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  356. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  357. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
  358. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +433 -0
  359. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  360. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
  361. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
  362. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  363. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  364. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  365. package/coverage/lcov-report/src/menu/index.html +13 -238
  366. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  367. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  368. package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
  369. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  370. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  371. package/coverage/lcov-report/src/movement/index.html +17 -62
  372. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +3 -3
  373. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  374. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
  375. package/coverage/lcov-report/src/overlay/index.html +1 -1
  376. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
  377. package/coverage/lcov-report/src/portal/Portal.tsx.html +7 -7
  378. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +59 -35
  379. package/coverage/lcov-report/src/portal/index.html +7 -7
  380. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  381. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +47 -47
  382. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +55 -55
  383. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +89 -89
  384. package/coverage/lcov-report/src/positioning/index.html +1 -1
  385. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +193 -193
  386. package/coverage/lcov-report/src/positioning/utils.ts.html +59 -59
  387. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +83 -83
  388. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +3 -3
  389. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  390. package/coverage/lcov-report/src/progress/index.html +20 -5
  391. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  392. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  393. package/coverage/lcov-report/src/responsive-item/index.html +1 -1
  394. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  395. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  396. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
  397. package/coverage/lcov-report/src/scroll/index.html +1 -1
  398. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
  399. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
  400. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
  401. package/coverage/lcov-report/src/segmented-button/index.html +1 -1
  402. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
  403. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  404. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  405. package/coverage/lcov-report/src/sheet/index.html +5 -5
  406. package/coverage/lcov-report/src/sheet/styles.ts.html +45 -48
  407. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +80 -80
  408. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +21 -45
  409. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +108 -93
  410. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  411. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
  412. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +48 -48
  413. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +278 -275
  414. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +6 -6
  415. package/coverage/lcov-report/src/snackbar/index.html +19 -19
  416. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +15 -15
  417. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +14 -14
  418. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +27 -27
  419. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  420. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
  421. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  422. package/coverage/lcov-report/src/suspense/index.html +36 -21
  423. package/coverage/lcov-report/src/table/Table.tsx.html +45 -114
  424. package/coverage/lcov-report/src/table/TableBody.tsx.html +43 -43
  425. package/coverage/lcov-report/src/table/TableCell.tsx.html +109 -298
  426. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +81 -27
  427. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +16 -10
  428. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +20 -20
  429. package/coverage/lcov-report/src/table/TableContainer.tsx.html +7 -28
  430. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  431. package/coverage/lcov-report/src/table/TableFooter.tsx.html +64 -43
  432. package/coverage/lcov-report/src/table/TableHeader.tsx.html +41 -92
  433. package/coverage/lcov-report/src/table/TableRadio.tsx.html +676 -0
  434. package/coverage/lcov-report/src/table/TableRow.tsx.html +38 -119
  435. package/coverage/lcov-report/src/table/index.html +151 -46
  436. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +334 -0
  437. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +142 -0
  438. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +166 -0
  439. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +172 -0
  440. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +169 -0
  441. package/coverage/lcov-report/src/table/tableStyles.ts.html +157 -0
  442. package/coverage/lcov-report/src/tabs/Tab.tsx.html +263 -143
  443. package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
  444. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
  445. package/coverage/lcov-report/src/tabs/index.html +25 -25
  446. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +37 -7
  447. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
  448. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +2 -2
  449. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +64 -28
  450. package/coverage/lcov-report/src/tabs/useTabList.ts.html +44 -38
  451. package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
  452. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  453. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  454. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +402 -261
  455. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
  456. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  457. package/coverage/lcov-report/src/test-utils/index.html +12 -117
  458. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
  459. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +55 -55
  460. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  461. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  462. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  463. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  464. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  465. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  466. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  467. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  468. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  469. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  470. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  471. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  472. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
  473. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  474. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  475. package/coverage/lcov-report/src/theme/index.html +1 -1
  476. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +25 -25
  477. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  478. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  479. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  480. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  481. package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
  482. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +62 -62
  483. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +3 -3
  484. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  485. package/coverage/lcov-report/src/tooltip/index.html +9 -9
  486. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +12 -12
  487. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +243 -222
  488. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +27 -27
  489. package/coverage/lcov-report/src/tooltip/utils.ts.html +22 -22
  490. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  491. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  492. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  493. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  494. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +374 -338
  495. package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
  496. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  497. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +1 -1
  498. package/coverage/lcov-report/src/transition/config.ts.html +5 -5
  499. package/coverage/lcov-report/src/transition/index.html +49 -34
  500. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  501. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +400 -0
  502. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +68 -68
  503. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  504. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +10 -64
  505. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  506. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  507. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  508. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +607 -562
  509. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
  510. package/coverage/lcov-report/src/transition/useTransition.ts.html +232 -232
  511. package/coverage/lcov-report/src/transition/utils.ts.html +45 -45
  512. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +18 -6
  513. package/coverage/lcov-report/src/tree/Tree.tsx.html +20 -8
  514. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +1 -1
  515. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +7 -10
  516. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
  517. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +1 -1
  518. package/coverage/lcov-report/src/tree/index.html +16 -196
  519. package/coverage/lcov-report/src/tree/styles.ts.html +4 -31
  520. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  521. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  522. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
  523. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +87 -87
  524. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  525. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  526. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
  527. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  528. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  529. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
  530. package/coverage/lcov-report/src/typography/index.html +1 -1
  531. package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
  532. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +246 -240
  533. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  534. package/coverage/lcov-report/src/useElementSize.ts.html +334 -0
  535. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  536. package/coverage/lcov-report/src/useEnsuredRef.ts.html +14 -14
  537. package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
  538. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  539. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
  540. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  541. package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
  542. package/coverage/lcov-report/src/useOrientation.ts.html +30 -30
  543. package/coverage/lcov-report/src/usePageInactive.ts.html +30 -30
  544. package/coverage/lcov-report/src/useResizeListener.ts.html +38 -32
  545. package/coverage/lcov-report/src/useResizeObserver.ts.html +133 -244
  546. package/coverage/lcov-report/src/useThrottledFunction.ts.html +57 -51
  547. package/coverage/lcov-report/src/useToggle.ts.html +1 -1
  548. package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
  549. package/coverage/lcov-report/src/useWindowSize.ts.html +124 -94
  550. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  551. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  552. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  553. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  554. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  555. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  556. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +163 -0
  557. package/coverage/lcov-report/src/utils/getPercentage.ts.html +9 -9
  558. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +66 -87
  559. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +7 -7
  560. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  561. package/coverage/lcov-report/src/utils/index.html +13 -253
  562. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
  563. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +118 -0
  564. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  565. package/coverage/lcov-report/src/utils/nearest.ts.html +21 -21
  566. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +18 -18
  567. package/coverage/lcov-report/src/utils/randomInt.ts.html +52 -52
  568. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  569. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  570. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  571. package/coverage/lcov-report/src/window-splitter/index.html +14 -14
  572. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +19 -67
  573. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +256 -0
  574. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +283 -0
  575. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +202 -0
  576. package/coverage/lcov-report/suspense/index.html +131 -0
  577. package/coverage/lcov-report/tabIndicatorStyles.ts.html +43 -13
  578. package/coverage/lcov-report/tabListStyles.ts.html +35 -26
  579. package/coverage/lcov-report/tabStyles.ts.html +68 -26
  580. package/coverage/lcov-report/tabs/Tab.tsx.html +233 -143
  581. package/coverage/lcov-report/tabs/TabList.tsx.html +85 -85
  582. package/coverage/lcov-report/tabs/index.html +56 -11
  583. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +187 -0
  584. package/coverage/lcov-report/tabs/tabListStyles.ts.html +241 -0
  585. package/coverage/lcov-report/tabs/tabStyles.ts.html +253 -0
  586. package/coverage/lcov-report/tabs/useTabList.ts.html +736 -0
  587. package/coverage/lcov-report/tabs/useTabs.ts.html +1 -1
  588. package/coverage/lcov-report/tabs/utils.ts.html +1 -1
  589. package/coverage/lcov-report/test-utils/index.html +21 -21
  590. package/coverage/lcov-report/test-utils/use.ts.html +187 -0
  591. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +62 -62
  592. package/coverage/lcov-report/tooltip/index.html +10 -70
  593. package/coverage/lcov-report/tooltip/useTooltip.ts.html +243 -222
  594. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +595 -0
  595. package/coverage/lcov-report/transition/config.ts.html +5 -5
  596. package/coverage/lcov-report/transition/index.html +1 -1
  597. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +400 -0
  598. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  599. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +952 -0
  600. package/coverage/lcov-report/tree/TreeItem.tsx.html +7 -10
  601. package/coverage/lcov-report/tree/index.html +17 -47
  602. package/coverage/lcov-report/tree/styles.ts.html +538 -0
  603. package/coverage/lcov-report/tree/useTreeMovement.ts.html +140 -143
  604. package/coverage/lcov-report/typography/Typography.tsx.html +138 -432
  605. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +75 -75
  606. package/coverage/lcov-report/typography/index.html +18 -18
  607. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  608. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  609. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  610. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  611. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  612. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +952 -0
  613. package/coverage/lcov-report/useTabList.ts.html +142 -136
  614. package/coverage/lcov-report/useWindowSplitter.ts.html +640 -0
  615. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +256 -0
  616. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  617. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  618. package/coverage/lcov-report/utils/index.html +15 -30
  619. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  620. package/coverage/lcov-report/utils/randomInt.ts.html +148 -0
  621. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  622. package/coverage/lcov-report/utils/wait.ts.html +1 -1
  623. package/coverage/lcov-report/utils.ts.html +109 -277
  624. package/coverage/lcov-report/window-splitter/index.html +21 -36
  625. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +406 -328
  626. package/dist/RootHtml.d.ts +62 -0
  627. package/dist/RootHtml.js +49 -0
  628. package/dist/RootHtml.js.map +1 -0
  629. package/dist/_box-shadows.scss +12 -2
  630. package/dist/_core.scss +207 -253
  631. package/dist/_utils.scss +89 -0
  632. package/dist/app-bar/AppBar.d.ts +4 -9
  633. package/dist/app-bar/AppBar.js +29 -7
  634. package/dist/app-bar/AppBar.js.map +1 -1
  635. package/dist/app-bar/_app-bar.scss +114 -122
  636. package/dist/avatar/Avatar.d.ts +15 -1
  637. package/dist/avatar/Avatar.js +5 -2
  638. package/dist/avatar/Avatar.js.map +1 -1
  639. package/dist/avatar/_avatar.scss +74 -81
  640. package/dist/badge/_badge.scss +97 -59
  641. package/dist/box/_box.scss +72 -81
  642. package/dist/button/TooltippedButton.d.ts +62 -0
  643. package/dist/button/TooltippedButton.js +62 -0
  644. package/dist/button/TooltippedButton.js.map +1 -0
  645. package/dist/button/_button.scss +170 -180
  646. package/dist/card/Card.js +3 -2
  647. package/dist/card/Card.js.map +1 -1
  648. package/dist/card/CardContent.js +1 -1
  649. package/dist/card/CardContent.js.map +1 -1
  650. package/dist/card/ClickableCard.d.ts +42 -0
  651. package/dist/card/ClickableCard.js +73 -0
  652. package/dist/card/ClickableCard.js.map +1 -0
  653. package/dist/card/_card.scss +81 -82
  654. package/dist/card/styles.d.ts +8 -0
  655. package/dist/card/styles.js +6 -3
  656. package/dist/card/styles.js.map +1 -1
  657. package/dist/chip/_chip.scss +137 -148
  658. package/dist/dialog/FixedDialog.d.ts +5 -4
  659. package/dist/dialog/FixedDialog.js +5 -4
  660. package/dist/dialog/FixedDialog.js.map +1 -1
  661. package/dist/dialog/_dialog.scss +179 -162
  662. package/dist/divider/Divider.d.ts +0 -1
  663. package/dist/divider/Divider.js.map +1 -1
  664. package/dist/divider/_divider.scss +61 -70
  665. package/dist/draggable/_draggable.scss +16 -12
  666. package/dist/draggable/useDraggable.d.ts +12 -23
  667. package/dist/draggable/useDraggable.js +15 -6
  668. package/dist/draggable/useDraggable.js.map +1 -1
  669. package/dist/draggable/utils.d.ts +4 -17
  670. package/dist/draggable/utils.js +9 -25
  671. package/dist/draggable/utils.js.map +1 -1
  672. package/dist/expansion-panel/_expansion-panel.scss +76 -50
  673. package/dist/expansion-panel/useExpansionPanels.d.ts +5 -3
  674. package/dist/expansion-panel/useExpansionPanels.js +16 -9
  675. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  676. package/dist/form/Form.d.ts +1 -1
  677. package/dist/form/Form.js +2 -1
  678. package/dist/form/Form.js.map +1 -1
  679. package/dist/form/Label.d.ts +5 -5
  680. package/dist/form/Label.js.map +1 -1
  681. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  682. package/dist/form/MenuItemInputToggle.js +26 -37
  683. package/dist/form/MenuItemInputToggle.js.map +1 -1
  684. package/dist/form/NativeSelect.d.ts +5 -2
  685. package/dist/form/NativeSelect.js.map +1 -1
  686. package/dist/form/Option.js +3 -2
  687. package/dist/form/Option.js.map +1 -1
  688. package/dist/form/ResizingTextAreaWrapper.d.ts +19 -0
  689. package/dist/form/ResizingTextAreaWrapper.js +35 -0
  690. package/dist/form/ResizingTextAreaWrapper.js.map +1 -0
  691. package/dist/form/Select.d.ts +105 -15
  692. package/dist/form/Select.js +160 -244
  693. package/dist/form/Select.js.map +1 -1
  694. package/dist/form/SelectedOption.d.ts +21 -0
  695. package/dist/form/SelectedOption.js +37 -0
  696. package/dist/form/SelectedOption.js.map +1 -0
  697. package/dist/form/TextArea.d.ts +11 -0
  698. package/dist/form/TextArea.js +19 -29
  699. package/dist/form/TextArea.js.map +1 -1
  700. package/dist/form/TextField.d.ts +2 -2
  701. package/dist/form/TextField.js +7 -6
  702. package/dist/form/TextField.js.map +1 -1
  703. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  704. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  705. package/dist/form/_form.scss +1336 -1260
  706. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  707. package/dist/form/menuItemInputToggleStyles.js +31 -0
  708. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  709. package/dist/form/selectUtils.d.ts +1 -3
  710. package/dist/form/selectUtils.js +2 -10
  711. package/dist/form/selectUtils.js.map +1 -1
  712. package/dist/form/textAreaStyles.d.ts +2 -2
  713. package/dist/form/textAreaStyles.js.map +1 -1
  714. package/dist/form/types.d.ts +6 -8
  715. package/dist/form/types.js.map +1 -1
  716. package/dist/form/useCombobox.d.ts +157 -0
  717. package/dist/form/useCombobox.js +206 -0
  718. package/dist/form/useCombobox.js.map +1 -0
  719. package/dist/form/useEditableCombobox.d.ts +15 -0
  720. package/dist/form/useEditableCombobox.js +101 -0
  721. package/dist/form/useEditableCombobox.js.map +1 -0
  722. package/dist/form/useFormReset.d.ts +16 -0
  723. package/dist/form/useFormReset.js +32 -0
  724. package/dist/form/useFormReset.js.map +1 -0
  725. package/dist/form/useListboxProvider.d.ts +4 -2
  726. package/dist/form/useListboxProvider.js +6 -8
  727. package/dist/form/useListboxProvider.js.map +1 -1
  728. package/dist/form/useResizingTextArea.d.ts +5 -2
  729. package/dist/form/useResizingTextArea.js +52 -21
  730. package/dist/form/useResizingTextArea.js.map +1 -1
  731. package/dist/form/useSelectCombobox.d.ts +17 -0
  732. package/dist/form/useSelectCombobox.js +36 -0
  733. package/dist/form/useSelectCombobox.js.map +1 -0
  734. package/dist/form/utils.d.ts +11 -1
  735. package/dist/form/utils.js +6 -0
  736. package/dist/form/utils.js.map +1 -1
  737. package/dist/icon/IconRotator.js +2 -3
  738. package/dist/icon/IconRotator.js.map +1 -1
  739. package/dist/icon/_icon.scss +105 -112
  740. package/dist/index.d.ts +22 -1
  741. package/dist/index.js +22 -1
  742. package/dist/index.js.map +1 -1
  743. package/dist/interaction/_interaction.scss +144 -135
  744. package/dist/layout/_layout.scss +82 -86
  745. package/dist/layout/useLayoutAppBarHeight.js +5 -9
  746. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  747. package/dist/link/_link.scss +74 -66
  748. package/dist/list/ListItem.d.ts +8 -3
  749. package/dist/list/ListItem.js +4 -3
  750. package/dist/list/ListItem.js.map +1 -1
  751. package/dist/list/ListItemAddon.js +2 -1
  752. package/dist/list/ListItemAddon.js.map +1 -1
  753. package/dist/list/ListItemChildren.js +3 -2
  754. package/dist/list/ListItemChildren.js.map +1 -1
  755. package/dist/list/ListItemLink.js +3 -3
  756. package/dist/list/ListItemLink.js.map +1 -1
  757. package/dist/list/_list.scss +187 -184
  758. package/dist/list/getListItemHeight.d.ts +0 -1
  759. package/dist/list/getListItemHeight.js +2 -2
  760. package/dist/list/getListItemHeight.js.map +1 -1
  761. package/dist/list/listItemStyles.d.ts +9 -1
  762. package/dist/list/listItemStyles.js +5 -5
  763. package/dist/list/listItemStyles.js.map +1 -1
  764. package/dist/list/types.d.ts +25 -6
  765. package/dist/list/types.js.map +1 -1
  766. package/dist/menu/Menu.d.ts +1 -1
  767. package/dist/menu/Menu.js +12 -1
  768. package/dist/menu/Menu.js.map +1 -1
  769. package/dist/menu/MenuItemCircularProgress.d.ts +60 -0
  770. package/dist/menu/MenuItemCircularProgress.js +74 -0
  771. package/dist/menu/MenuItemCircularProgress.js.map +1 -0
  772. package/dist/menu/_menu.scss +29 -50
  773. package/dist/menu/useContextMenu.d.ts +3 -3
  774. package/dist/menu/useContextMenu.js +3 -3
  775. package/dist/menu/useContextMenu.js.map +1 -1
  776. package/dist/movement/types.d.ts +40 -21
  777. package/dist/movement/types.js.map +1 -1
  778. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  779. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  780. package/dist/movement/utils.d.ts +7 -2
  781. package/dist/movement/utils.js +10 -0
  782. package/dist/movement/utils.js.map +1 -1
  783. package/dist/overlay/_overlay.scss +39 -42
  784. package/dist/portal/PortalContainerProvider.d.ts +2 -2
  785. package/dist/portal/PortalContainerProvider.js +6 -1
  786. package/dist/portal/PortalContainerProvider.js.map +1 -1
  787. package/dist/positioning/useFixedPositioning.js +0 -8
  788. package/dist/positioning/useFixedPositioning.js.map +1 -1
  789. package/dist/progress/_progress.scss +33 -33
  790. package/dist/responsive-item/_responsive-item.scss +91 -89
  791. package/dist/searching/caseInsensitive.d.ts +150 -0
  792. package/dist/searching/caseInsensitive.js +30 -0
  793. package/dist/searching/caseInsensitive.js.map +1 -0
  794. package/dist/searching/fuzzy.d.ts +128 -0
  795. package/dist/searching/fuzzy.js +54 -0
  796. package/dist/searching/fuzzy.js.map +1 -0
  797. package/dist/searching/toSearchQuery.d.ts +7 -0
  798. package/dist/searching/toSearchQuery.js +15 -0
  799. package/dist/searching/toSearchQuery.js.map +1 -0
  800. package/dist/searching/types.d.ts +28 -0
  801. package/dist/searching/types.js +5 -0
  802. package/dist/searching/types.js.map +1 -0
  803. package/dist/searching/useFuzzyMatch.d.ts +19 -0
  804. package/dist/searching/useFuzzyMatch.js +26 -0
  805. package/dist/searching/useFuzzyMatch.js.map +1 -0
  806. package/dist/searching/utils.d.ts +21 -0
  807. package/dist/searching/utils.js +28 -0
  808. package/dist/searching/utils.js.map +1 -0
  809. package/dist/segmented-button/_segmented-button.scss +86 -92
  810. package/dist/sheet/_sheet.scss +107 -123
  811. package/dist/sheet/styles.d.ts +14 -15
  812. package/dist/sheet/styles.js.map +1 -1
  813. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  814. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  815. package/dist/snackbar/Snackbar.d.ts +10 -10
  816. package/dist/snackbar/Snackbar.js +3 -3
  817. package/dist/snackbar/Snackbar.js.map +1 -1
  818. package/dist/snackbar/Toast.d.ts +1 -1
  819. package/dist/snackbar/Toast.js +5 -1
  820. package/dist/snackbar/Toast.js.map +1 -1
  821. package/dist/snackbar/ToastManager.d.ts +2 -1
  822. package/dist/snackbar/ToastManager.js +1 -1
  823. package/dist/snackbar/ToastManager.js.map +1 -1
  824. package/dist/snackbar/_snackbar.scss +148 -144
  825. package/dist/snackbar/snackbarStyles.d.ts +1 -0
  826. package/dist/snackbar/snackbarStyles.js +2 -1
  827. package/dist/snackbar/snackbarStyles.js.map +1 -1
  828. package/dist/table/TableCheckbox.d.ts +3 -2
  829. package/dist/table/TableCheckbox.js +4 -2
  830. package/dist/table/TableCheckbox.js.map +1 -1
  831. package/dist/table/TableRadio.d.ts +3 -2
  832. package/dist/table/TableRadio.js +4 -2
  833. package/dist/table/TableRadio.js.map +1 -1
  834. package/dist/table/_table.scss +214 -227
  835. package/dist/table/tableCellStyles.d.ts +1 -1
  836. package/dist/table/tableCellStyles.js.map +1 -1
  837. package/dist/tabs/Tab.d.ts +24 -3
  838. package/dist/tabs/Tab.js +15 -8
  839. package/dist/tabs/Tab.js.map +1 -1
  840. package/dist/tabs/_tabs.scss +62 -53
  841. package/dist/tabs/tabIndicatorStyles.d.ts +2 -1
  842. package/dist/tabs/tabIndicatorStyles.js +6 -3
  843. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  844. package/dist/tabs/tabListStyles.js +2 -1
  845. package/dist/tabs/tabListStyles.js.map +1 -1
  846. package/dist/tabs/tabStyles.d.ts +2 -0
  847. package/dist/tabs/tabStyles.js +6 -3
  848. package/dist/tabs/tabStyles.js.map +1 -1
  849. package/dist/tabs/useTabList.d.ts +3 -3
  850. package/dist/tabs/useTabList.js +9 -6
  851. package/dist/tabs/useTabList.js.map +1 -1
  852. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  853. package/dist/test-utils/ResizeObserver.d.ts +214 -0
  854. package/dist/test-utils/ResizeObserver.js +69 -49
  855. package/dist/test-utils/ResizeObserver.js.map +1 -1
  856. package/dist/test-utils/data-testid.d.ts +7 -0
  857. package/dist/test-utils/data-testid.js +1 -0
  858. package/dist/test-utils/data-testid.js.map +1 -1
  859. package/dist/test-utils/drag.d.ts +26 -0
  860. package/dist/test-utils/index.d.ts +7 -0
  861. package/dist/test-utils/jest-setup.d.ts +1 -0
  862. package/dist/test-utils/matchMedia.d.ts +101 -0
  863. package/dist/test-utils/matchMedia.js +2 -2
  864. package/dist/test-utils/matchMedia.js.map +1 -1
  865. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  866. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  867. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  868. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  869. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  870. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  871. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  872. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  873. package/dist/test-utils/polyfills/index.d.ts +7 -0
  874. package/dist/test-utils/polyfills/index.js +2 -0
  875. package/dist/test-utils/polyfills/index.js.map +1 -1
  876. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  877. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  878. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  879. package/dist/test-utils/render.d.ts +13 -0
  880. package/dist/test-utils/timers.d.ts +39 -0
  881. package/dist/theme/_theme.scss +243 -133
  882. package/dist/tooltip/_tooltip.scss +76 -83
  883. package/dist/tooltip/useTooltip.d.ts +14 -14
  884. package/dist/tooltip/useTooltip.js.map +1 -1
  885. package/dist/transition/SkeletonPlaceholder.d.ts +2 -2
  886. package/dist/transition/SkeletonPlaceholder.js +8 -3
  887. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  888. package/dist/transition/_transition.scss +89 -78
  889. package/dist/transition/skeletonPlaceholderUtils.d.ts +77 -0
  890. package/dist/transition/skeletonPlaceholderUtils.js +38 -0
  891. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  892. package/dist/transition/useCollapseTransition.d.ts +3 -18
  893. package/dist/transition/useCollapseTransition.js +1 -10
  894. package/dist/transition/useCollapseTransition.js.map +1 -1
  895. package/dist/transition/useSkeletonPlaceholder.d.ts +12 -7
  896. package/dist/transition/useSkeletonPlaceholder.js +38 -37
  897. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  898. package/dist/transition/utils.js +7 -2
  899. package/dist/transition/utils.js.map +1 -1
  900. package/dist/tree/DefaultTreeItemRenderer.d.ts +2 -2
  901. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  902. package/dist/tree/Tree.d.ts +8 -4
  903. package/dist/tree/Tree.js.map +1 -1
  904. package/dist/tree/TreeItem.js +3 -4
  905. package/dist/tree/TreeItem.js.map +1 -1
  906. package/dist/tree/_tree.scss +111 -109
  907. package/dist/tree/styles.d.ts +0 -6
  908. package/dist/tree/styles.js +1 -2
  909. package/dist/tree/styles.js.map +1 -1
  910. package/dist/tree/useTreeMovement.js +1 -1
  911. package/dist/tree/useTreeMovement.js.map +1 -1
  912. package/dist/types.d.ts +13 -0
  913. package/dist/types.js +1 -2
  914. package/dist/types.js.map +1 -1
  915. package/dist/typography/SrOnly.d.ts +3 -3
  916. package/dist/typography/SrOnly.js +4 -4
  917. package/dist/typography/SrOnly.js.map +1 -1
  918. package/dist/typography/Typography.d.ts +19 -19
  919. package/dist/typography/Typography.js +19 -19
  920. package/dist/typography/Typography.js.map +1 -1
  921. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  922. package/dist/typography/WritingDirectionProvider.js +2 -2
  923. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  924. package/dist/typography/_typography.scss +141 -87
  925. package/dist/useDebouncedFunction.d.ts +2 -2
  926. package/dist/useDebouncedFunction.js +10 -6
  927. package/dist/useDebouncedFunction.js.map +1 -1
  928. package/dist/useElementSize.d.ts +40 -0
  929. package/dist/useElementSize.js +53 -0
  930. package/dist/useElementSize.js.map +1 -0
  931. package/dist/useEnsuredState.d.ts +1 -1
  932. package/dist/useEnsuredState.js.map +1 -1
  933. package/dist/useResizeListener.d.ts +1 -1
  934. package/dist/useResizeListener.js +1 -0
  935. package/dist/useResizeListener.js.map +1 -1
  936. package/dist/useResizeObserver.d.ts +4 -43
  937. package/dist/useResizeObserver.js +4 -43
  938. package/dist/useResizeObserver.js.map +1 -1
  939. package/dist/useThrottledFunction.d.ts +2 -2
  940. package/dist/useThrottledFunction.js +20 -16
  941. package/dist/useThrottledFunction.js.map +1 -1
  942. package/dist/useWindowSize.d.ts +14 -11
  943. package/dist/useWindowSize.js +12 -7
  944. package/dist/useWindowSize.js.map +1 -1
  945. package/dist/utils/alphaNumericSort.d.ts +1 -1
  946. package/dist/utils/alphaNumericSort.js +2 -10
  947. package/dist/utils/alphaNumericSort.js.map +1 -1
  948. package/dist/utils/getMiddleOfRange.d.ts +13 -0
  949. package/dist/utils/getMiddleOfRange.js +20 -0
  950. package/dist/utils/getMiddleOfRange.js.map +1 -0
  951. package/dist/utils/getRangeDefaultValue.d.ts +3 -5
  952. package/dist/utils/getRangeDefaultValue.js +3 -13
  953. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  954. package/dist/utils/getRangeSteps.d.ts +1 -1
  955. package/dist/utils/getRangeSteps.js +2 -2
  956. package/dist/utils/getRangeSteps.js.map +1 -1
  957. package/dist/utils/nearest.js +1 -1
  958. package/dist/utils/nearest.js.map +1 -1
  959. package/dist/window-splitter/_window-splitter.scss +83 -112
  960. package/dist/window-splitter/useWindowSplitter.d.ts +3 -5
  961. package/dist/window-splitter/useWindowSplitter.js +3 -11
  962. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  963. package/jest.config.ts +4 -0
  964. package/package.json +35 -40
  965. package/scripts/{copySassFiles.js → copySassFiles.ts} +5 -5
  966. package/scripts/tsconfig.json +18 -0
  967. package/src/RootHtml.tsx +95 -0
  968. package/src/__tests__/RootHtml.node.tsx +46 -0
  969. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  970. package/src/__tests__/useDebouncedFunction.tsx +65 -24
  971. package/src/__tests__/useElementSize.tsx +181 -0
  972. package/src/__tests__/useThrottledFunction.tsx +54 -0
  973. package/src/__tests__/useWindowSize.node.tsx +56 -0
  974. package/src/__tests__/useWindowSize.tsx +156 -0
  975. package/src/_box-shadows.scss +12 -2
  976. package/src/_core.scss +207 -253
  977. package/src/_utils.scss +89 -0
  978. package/src/app-bar/AppBar.tsx +59 -19
  979. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +21 -21
  980. package/src/app-bar/_app-bar.scss +114 -122
  981. package/src/avatar/Avatar.tsx +25 -4
  982. package/src/avatar/__tests__/Avatar.tsx +1 -1
  983. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  984. package/src/avatar/_avatar.scss +74 -81
  985. package/src/badge/_badge.scss +97 -59
  986. package/src/box/_box.scss +72 -81
  987. package/src/button/TooltippedButton.tsx +120 -0
  988. package/src/button/__tests__/TooltippedButton.tsx +60 -0
  989. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  990. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +26 -0
  991. package/src/button/_button.scss +170 -180
  992. package/src/card/Card.tsx +5 -3
  993. package/src/card/CardContent.tsx +3 -3
  994. package/src/card/ClickableCard.tsx +105 -0
  995. package/src/card/__tests__/ClickableCard.tsx +66 -0
  996. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  997. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  998. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +20 -0
  999. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  1000. package/src/card/_card.scss +81 -82
  1001. package/src/card/styles.ts +19 -10
  1002. package/src/chip/_chip.scss +137 -148
  1003. package/src/dialog/FixedDialog.tsx +5 -4
  1004. package/src/dialog/_dialog.scss +179 -162
  1005. package/src/divider/Divider.tsx +0 -1
  1006. package/src/divider/_divider.scss +61 -70
  1007. package/src/draggable/_draggable.scss +16 -12
  1008. package/src/draggable/useDraggable.ts +26 -25
  1009. package/src/draggable/utils.ts +16 -50
  1010. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +2 -2
  1011. package/src/expansion-panel/_expansion-panel.scss +76 -50
  1012. package/src/expansion-panel/useExpansionPanels.ts +20 -16
  1013. package/src/form/Form.tsx +2 -1
  1014. package/src/form/Label.tsx +5 -5
  1015. package/src/form/MenuItemInputToggle.tsx +46 -64
  1016. package/src/form/NativeSelect.tsx +6 -3
  1017. package/src/form/Option.tsx +8 -2
  1018. package/src/form/ResizingTextAreaWrapper.tsx +75 -0
  1019. package/src/form/Select.tsx +251 -327
  1020. package/src/form/SelectedOption.tsx +55 -0
  1021. package/src/form/TextArea.tsx +40 -32
  1022. package/src/form/TextField.tsx +19 -19
  1023. package/src/form/TextFieldContainerStyles.ts +7 -7
  1024. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  1025. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  1026. package/src/form/__tests__/Select.tsx +439 -0
  1027. package/src/form/__tests__/TextArea.tsx +433 -0
  1028. package/src/form/__tests__/TextField.tsx +195 -0
  1029. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  1030. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  1031. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  1032. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  1033. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +548 -0
  1034. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +279 -0
  1035. package/src/form/__tests__/useFormReset.tsx +195 -0
  1036. package/src/form/_form.scss +1336 -1260
  1037. package/src/form/menuItemInputToggleStyles.ts +78 -0
  1038. package/src/form/selectUtils.ts +3 -14
  1039. package/src/form/textAreaStyles.ts +2 -2
  1040. package/src/form/types.ts +6 -8
  1041. package/src/form/useCombobox.ts +523 -0
  1042. package/src/form/useEditableCombobox.ts +139 -0
  1043. package/src/form/useFormReset.ts +48 -0
  1044. package/src/form/useListboxProvider.ts +9 -7
  1045. package/src/form/useResizingTextArea.ts +66 -25
  1046. package/src/form/useSelectCombobox.ts +70 -0
  1047. package/src/form/utils.ts +17 -4
  1048. package/src/icon/IconRotator.tsx +1 -2
  1049. package/src/icon/_icon.scss +105 -112
  1050. package/src/index.ts +22 -1
  1051. package/src/interaction/_interaction.scss +144 -135
  1052. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +4 -4
  1053. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +1 -1
  1054. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +18 -18
  1055. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +1 -1
  1056. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +1 -1
  1057. package/src/layout/_layout.scss +82 -86
  1058. package/src/layout/useLayoutAppBarHeight.ts +5 -9
  1059. package/src/link/_link.scss +74 -66
  1060. package/src/list/ListItem.tsx +20 -13
  1061. package/src/list/ListItemAddon.tsx +5 -3
  1062. package/src/list/ListItemChildren.tsx +4 -2
  1063. package/src/list/ListItemLink.tsx +4 -4
  1064. package/src/list/__tests__/ListItem.tsx +1 -1
  1065. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +1 -1
  1066. package/src/list/__tests__/getListItemHeight.ts +2 -2
  1067. package/src/list/_list.scss +187 -184
  1068. package/src/list/getListItemHeight.ts +2 -3
  1069. package/src/list/listItemStyles.ts +15 -5
  1070. package/src/list/types.ts +28 -6
  1071. package/src/menu/Menu.tsx +10 -2
  1072. package/src/menu/MenuItemCircularProgress.tsx +116 -0
  1073. package/src/menu/__tests__/MenuItemCircularProgress.tsx +39 -0
  1074. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +68 -0
  1075. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  1076. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  1077. package/src/menu/_menu.scss +29 -50
  1078. package/src/menu/useContextMenu.ts +3 -3
  1079. package/src/movement/types.ts +50 -25
  1080. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  1081. package/src/movement/utils.ts +12 -2
  1082. package/src/overlay/_overlay.scss +39 -42
  1083. package/src/portal/PortalContainerProvider.tsx +10 -2
  1084. package/src/portal/__tests__/PortalContainerProvider.tsx +23 -0
  1085. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  1086. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
  1087. package/src/positioning/useFixedPositioning.ts +0 -6
  1088. package/src/progress/_progress.scss +33 -33
  1089. package/src/responsive-item/_responsive-item.scss +91 -89
  1090. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  1091. package/src/searching/__tests__/fuzzy.ts +169 -0
  1092. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  1093. package/src/searching/__tests__/useFuzzyMatch.tsx +200 -0
  1094. package/src/searching/caseInsensitive.ts +200 -0
  1095. package/src/searching/fuzzy.ts +175 -0
  1096. package/src/searching/toSearchQuery.ts +20 -0
  1097. package/src/searching/types.ts +34 -0
  1098. package/src/searching/useFuzzyMatch.ts +42 -0
  1099. package/src/searching/utils.ts +53 -0
  1100. package/src/segmented-button/_segmented-button.scss +86 -92
  1101. package/src/sheet/_sheet.scss +107 -123
  1102. package/src/sheet/styles.ts +14 -15
  1103. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  1104. package/src/snackbar/Snackbar.tsx +28 -32
  1105. package/src/snackbar/Toast.tsx +7 -2
  1106. package/src/snackbar/ToastManager.tsx +3 -2
  1107. package/src/snackbar/__tests__/Snackbar.tsx +12 -11
  1108. package/src/snackbar/__tests__/ToastManagerProvider.tsx +20 -42
  1109. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  1110. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  1111. package/src/snackbar/_snackbar.scss +148 -144
  1112. package/src/snackbar/snackbarStyles.ts +3 -1
  1113. package/src/suspense/__tests__/CircularProgressSuspense.tsx +90 -0
  1114. package/src/suspense/__tests__/NullSuspense.tsx +46 -0
  1115. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +24 -0
  1116. package/src/table/TableCheckbox.tsx +4 -2
  1117. package/src/table/TableRadio.tsx +4 -2
  1118. package/src/table/_table.scss +214 -227
  1119. package/src/table/tableCellStyles.ts +1 -1
  1120. package/src/tabs/Tab.tsx +110 -70
  1121. package/src/tabs/__tests__/Tab.tsx +25 -2
  1122. package/src/tabs/__tests__/TabList.tsx +4 -4
  1123. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +2 -2
  1124. package/src/tabs/_tabs.scss +62 -53
  1125. package/src/tabs/tabIndicatorStyles.ts +13 -3
  1126. package/src/tabs/tabListStyles.ts +1 -1
  1127. package/src/tabs/tabStyles.ts +16 -4
  1128. package/src/tabs/useTabList.ts +10 -8
  1129. package/src/test-utils/ResizeObserver.ts +100 -53
  1130. package/src/test-utils/__tests__/ResizeObserver.ts +1 -1
  1131. package/src/test-utils/data-testid.ts +5 -1
  1132. package/src/test-utils/matchMedia.ts +2 -2
  1133. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  1134. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  1135. package/src/test-utils/polyfills/index.ts +2 -0
  1136. package/src/theme/_theme.scss +243 -133
  1137. package/src/tooltip/_tooltip.scss +76 -83
  1138. package/src/tooltip/useTooltip.ts +23 -16
  1139. package/src/transition/SkeletonPlaceholder.tsx +18 -6
  1140. package/src/transition/__tests__/SkeletonPlaceholder.tsx +72 -0
  1141. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +24 -0
  1142. package/src/transition/__tests__/utils.ts +25 -0
  1143. package/src/transition/_transition.scss +89 -78
  1144. package/src/transition/skeletonPlaceholderUtils.ts +105 -0
  1145. package/src/transition/useCollapseTransition.ts +6 -24
  1146. package/src/transition/useSkeletonPlaceholder.ts +62 -47
  1147. package/src/transition/utils.ts +10 -5
  1148. package/src/tree/DefaultTreeItemRenderer.tsx +6 -2
  1149. package/src/tree/Tree.tsx +8 -4
  1150. package/src/tree/TreeItem.tsx +3 -4
  1151. package/src/tree/__tests__/Tree.tsx +1 -1
  1152. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +124 -124
  1153. package/src/tree/_tree.scss +111 -109
  1154. package/src/tree/styles.ts +0 -9
  1155. package/src/tree/useTreeMovement.ts +1 -1
  1156. package/src/types.ts +13 -0
  1157. package/src/typography/SrOnly.tsx +9 -9
  1158. package/src/typography/Typography.tsx +19 -19
  1159. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1160. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  1161. package/src/typography/_typography.scss +141 -87
  1162. package/src/useDebouncedFunction.ts +12 -10
  1163. package/src/useElementSize.ts +83 -0
  1164. package/src/useEnsuredState.ts +1 -1
  1165. package/src/useResizeListener.ts +3 -1
  1166. package/src/useResizeObserver.ts +8 -45
  1167. package/src/useThrottledFunction.ts +12 -10
  1168. package/src/useWindowSize.ts +29 -19
  1169. package/src/utils/__tests__/getMiddleOfRange.ts +12 -0
  1170. package/src/utils/__tests__/getRangeDefaultValue.ts +47 -0
  1171. package/src/utils/alphaNumericSort.ts +3 -16
  1172. package/src/utils/getMiddleOfRange.ts +26 -0
  1173. package/src/utils/getRangeDefaultValue.ts +8 -15
  1174. package/src/utils/getRangeSteps.ts +2 -2
  1175. package/src/utils/nearest.ts +1 -1
  1176. package/src/window-splitter/_window-splitter.scss +83 -112
  1177. package/src/window-splitter/useWindowSplitter.ts +12 -28
  1178. package/tsconfig.types.json +1 -1
  1179. package/dist/divider/VerticalDivider.d.ts +0 -32
  1180. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  1181. package/dist/form/SelectValue.d.ts +0 -17
  1182. package/dist/form/SelectValue.js +0 -32
  1183. package/dist/form/SelectValue.js.map +0 -1
  1184. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  1185. package/dist/icon/MaterialIconsProvider.js +0 -17
  1186. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  1187. package/dist/icon/MaterialSymbolsProvider.d.ts +0 -145
  1188. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  1189. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  1190. package/dist/link/LinkProvider.d.ts +0 -29
  1191. package/dist/menu/menuConfig.d.ts +0 -60
  1192. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  1193. package/dist/utils/filters.d.ts +0 -196
  1194. package/dist/utils/filters.js +0 -67
  1195. package/dist/utils/filters.js.map +0 -1
  1196. package/src/form/SelectValue.tsx +0 -39
  1197. package/src/utils/__tests__/filters.ts +0 -279
  1198. package/src/utils/filters.ts +0 -320
@@ -6,13 +6,14 @@
6
6
  @use "../typography/typography";
7
7
  @use "../interaction/interaction";
8
8
 
9
+ $disable-everything: false !default;
9
10
  $disable-expander-left: false !default;
10
11
  $disable-expander-left-as-media: false !default;
11
12
  $disable-expander-left-as-media-offset: false !default;
12
13
  $disable-selected-background-color: false !default;
13
14
 
14
- $padding-incrementor: list.$item-horizontal-padding * 1.5 !default;
15
- $padding-base: list.get-var(item-keyline) !default;
15
+ $item-padding-base: list.$item-horizontal-padding !default;
16
+ $item-padding-incrementor: list.$item-horizontal-padding * 1.5 !default;
16
17
  $expander-right-from: icon.$rotate-from !default;
17
18
  $expander-right-to: 90deg !default;
18
19
  $expander-left-from: 0deg !default;
@@ -22,153 +23,154 @@ $selected-styles: (
22
23
  font-weight: typography.$font-weight-bold,
23
24
  ) !default;
24
25
 
25
- $var-lookup: (
26
- depth: (
27
- var: --rmd-tree-depth,
28
- value: -1,
29
- ),
30
- item-padding: (
31
- var: --rmd-tree-item-padding,
32
- value: 0,
33
- ),
34
- padding-base: (
35
- var: --rmd-tree-item-padding-base,
36
- value: $padding-base,
37
- ),
38
- padding-incrementor: (
39
- var: --rmd-tree-item-padding-incrementor,
40
- value: $padding-incrementor,
41
- ),
42
- );
26
+ $variables: (depth, item-padding, item-padding-base, item-padding-incrementor);
43
27
 
44
28
  @function get-var($name, $fallback: null) {
45
- $found: utils.validate($var-lookup, $name, "tree var");
46
- $var: map.get($found, var);
47
- $value: if($fallback, $fallback, map.get($found, value));
48
-
49
- @if $value {
50
- @return var(#{$var}, #{$value});
29
+ $var: utils.get-var-name($variables, $name, "tree");
30
+ @if $fallback {
31
+ @return var(#{$var}, #{$fallback});
51
32
  }
52
33
 
53
34
  @return var(#{$var});
54
35
  }
55
36
 
56
37
  @mixin set-var($name, $value) {
57
- $var: map.get(utils.validate($var-lookup, $name, "tree var"), var);
58
-
59
- #{$var}: #{$value};
38
+ @if $value {
39
+ #{utils.get-var-name($variables, $name, "tree")}: #{$value};
40
+ }
60
41
  }
61
42
 
62
43
  @mixin use-var($property, $name: $property, $fallback: null) {
63
44
  #{$property}: get-var($name, $fallback);
64
45
  }
65
46
 
66
- @mixin styles {
67
- .rmd-tree {
68
- display: block;
69
- height: 100%;
70
- outline-style: none;
71
- overflow: auto;
72
- // this is mostly for firefox. moving the mouse even 1px while clicking will
73
- // select the current item and all items to the tree root
74
- user-select: none;
75
- width: 100%;
47
+ // must be defined after the `get-var` function
48
+ $item-padding: calc(
49
+ get-var(depth) * get-var(item-padding-incrementor) +
50
+ get-var(item-padding-base)
51
+ ) !default;
52
+
53
+ @mixin variables {
54
+ @if not $disable-everything {
55
+ @include set-var(depth, 0);
56
+ @include set-var(item-padding, 0);
57
+ @include set-var(item-padding-base, $item-padding-base);
58
+ @include set-var(item-padding-incrementor, $item-padding-incrementor);
76
59
  }
60
+ }
77
61
 
78
- .rmd-tree-item {
79
- @include icon.set-var(rotate-from, $expander-right-from);
80
- @include icon.set-var(rotate-to, $expander-right-to);
81
- @include set-var(
82
- item-padding,
83
- calc(
84
- get-var(depth) * get-var(padding-incrementor) + get-var(padding-base)
85
- )
86
- );
87
-
88
- list-style: none;
89
-
90
- @if not $disable-expander-left {
91
- &--expander-left {
92
- @include icon.set-var(rotate-from, $expander-left-from);
93
- @include icon.set-var(rotate-to, $expander-left-to);
62
+ @mixin styles($disable-layer: false) {
63
+ @if not $disable-everything {
64
+ @include utils.optional-layer(tree, $disable-layer) {
65
+ .rmd-tree {
66
+ display: block;
67
+ height: 100%;
68
+ outline-style: none;
69
+ overflow: auto;
70
+ // this is mostly for firefox. moving the mouse even 1px while clicking will
71
+ // select the current item and all items to the tree root
72
+ user-select: none;
73
+ width: 100%;
94
74
  }
95
- }
96
75
 
97
- &__content {
98
- &--disabled {
99
- cursor: auto;
76
+ .rmd-tree-item {
77
+ @include icon.set-var(rotate-from, $expander-right-from);
78
+ @include icon.set-var(rotate-to, $expander-right-to);
79
+ @include set-var(item-padding, $item-padding);
100
80
 
101
- &:hover::before {
102
- @include interaction.set-var(background-color, transparent);
81
+ list-style: none;
82
+
83
+ @if not $disable-expander-left {
84
+ &--expander-left {
85
+ @include icon.set-var(rotate-from, $expander-left-from);
86
+ @include icon.set-var(rotate-to, $expander-left-to);
87
+ }
103
88
  }
104
- }
105
89
 
106
- &--link {
107
- color: inherit;
108
- text-decoration: none;
109
- }
90
+ &__content {
91
+ @include utils.auto-rtl(
92
+ padding-left,
93
+ get-var(item-padding),
94
+ list.get-var(item-horizontal-padding)
95
+ );
110
96
 
111
- &--padded {
112
- @include utils.auto-rtl(
113
- padding-left,
114
- get-var(item-padding),
115
- list.get-var(item-horizontal-padding)
116
- );
117
- }
97
+ &--disabled {
98
+ cursor: auto;
118
99
 
119
- &--focused::before {
120
- .rmd-tree:focus-within & {
121
- @include utils.keyboard-only {
122
- @include interaction.focus-styles;
100
+ &:hover::before {
101
+ @include interaction.set-var(background-color, transparent);
102
+ }
123
103
  }
124
- }
125
- }
126
104
 
127
- @if $selected-styles {
128
- &--selected {
129
- @if not $disable-selected-background-color {
130
- @include interaction.set-var(
131
- background-color,
132
- interaction.get-var(selected-background-color)
133
- );
105
+ &--link {
106
+ color: inherit;
107
+ text-decoration: none;
108
+ }
134
109
 
135
- @include utils.touch-only {
136
- &:hover::before {
110
+ &--focused::before {
111
+ // Note: Clicking an item and then using the keyboard to move focus
112
+ // will **not** show the focus outline so might not be ideal. the tree
113
+ // must be re-focused after a `Tab` keypress for it to appear again
114
+ @if utils.$disable-focus-visible {
115
+ .rmd-tree:focus-within & {
116
+ @include utils.keyboard-only {
117
+ @include interaction.focus-styles;
118
+ }
119
+ }
120
+ } @else {
121
+ .rmd-tree:focus-visible & {
122
+ @include interaction.focus-styles;
123
+ }
124
+ }
125
+ }
126
+
127
+ @if $selected-styles {
128
+ &--selected {
129
+ @if not $disable-selected-background-color {
137
130
  @include interaction.set-var(
138
131
  background-color,
139
132
  interaction.get-var(selected-background-color)
140
133
  );
134
+
135
+ @include utils.touch-only {
136
+ &:hover::before {
137
+ @include interaction.set-var(
138
+ background-color,
139
+ interaction.get-var(selected-background-color)
140
+ );
141
+ }
142
+ }
141
143
  }
144
+ @include utils.map-to-styles($selected-styles);
142
145
  }
143
146
  }
144
- @include utils.map-to-styles($selected-styles);
145
147
  }
146
- }
147
- }
148
148
 
149
- @if not $disable-expander-left-as-media {
150
- &__media {
151
- align-items: center;
152
- display: flex;
153
- justify-content: space-between;
149
+ @if not $disable-expander-left-as-media {
150
+ &__media {
151
+ align-items: center;
152
+ display: flex;
153
+ justify-content: space-between;
154
154
 
155
- @if not $disable-expander-left-as-media-offset {
156
- &--single {
157
- justify-content: flex-end;
155
+ @if not $disable-expander-left-as-media-offset {
156
+ &--single {
157
+ justify-content: flex-end;
158
+ }
159
+ }
158
160
  }
159
161
  }
160
162
  }
161
- }
162
- }
163
163
 
164
- .rmd-tree-group {
165
- background-color: inherit;
166
- color: inherit;
167
- font-size: inherit;
168
- line-height: inherit;
164
+ .rmd-tree-group {
165
+ background-color: inherit;
166
+ color: inherit;
167
+ font-size: inherit;
168
+ line-height: inherit;
169
169
 
170
- // remove the list padding to make it more condensed
171
- padding-bottom: 0;
172
- padding-top: 0;
170
+ // remove the list padding to make it more condensed
171
+ padding-bottom: 0;
172
+ padding-top: 0;
173
+ }
174
+ }
173
175
  }
174
176
  }
@@ -37,12 +37,6 @@ export interface TreeItemContentClassNameOptions extends InternalListItemClassNa
37
37
  * @defaultValue `false`
38
38
  */
39
39
  link?: boolean;
40
- /**
41
- *
42
- *
43
- * @defaultValue `false`
44
- */
45
- padded?: boolean;
46
40
  /**
47
41
  * Set this to `true` when the tree item is the current keyboard focus with
48
42
  * `aria-activedescendant`. This will apply the focus styles only while the
@@ -28,10 +28,9 @@ const treeGroupStyles = bem("rmd-tree-group");
28
28
  /**
29
29
  * @remarks \@since 6.0.0
30
30
  */ export function treeItemContent(options = {}) {
31
- const { className, link = false, padded = false, focused, selected, disabled = false, ...remaining } = options;
31
+ const { className, link = false, focused, selected, disabled = false, ...remaining } = options;
32
32
  return cnb(treeItemStyles("content", {
33
33
  link,
34
- padded,
35
34
  focused,
36
35
  selected,
37
36
  disabled
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport type { InternalListItemClassNameOptions } from \"../list/listItemStyles.js\";\nimport { listItem } from \"../list/listItemStyles.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst treeStyles = bem(\"rmd-tree\");\nconst treeItemStyles = bem(\"rmd-tree-item\");\nconst treeGroupStyles = bem(\"rmd-tree-group\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeClassNameOptions {\n className?: string;\n}\n\n/**\n * Apply the `className`s for a tree component. This will be type-safe if using\n * typescript.\n *\n * @remarks \\@since 6.0.0\n */\nexport function tree(options: TreeClassNameOptions = {}): string {\n const { className } = options;\n\n return cnb(treeStyles(), className);\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeItemClassNameOptions {\n className?: string;\n expander?: boolean;\n\n /**\n * Settings this to `true` will update the styles for the expander icon within\n * the tree item to rotate `down -> right` instead of `down -> left`.\n *\n * @defaultValue `false`\n */\n expanderLeft?: boolean;\n}\n\n/**\n * Apply the `className`s for a tree item component. This will be type-safe if\n * using typescript.\n *\n * @remarks \\@since 6.0.0\n */\nexport function treeItem(options: TreeItemClassNameOptions = {}): string {\n const { className, expander = false, expanderLeft = false } = options;\n\n return cnb(\n treeItemStyles({\n \"expander-left\": expander && expanderLeft,\n \"expander-right\": expander && !expanderLeft,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeItemContentClassNameOptions\n extends InternalListItemClassNameOptions {\n /**\n * Set this\n *\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n *\n *\n * @defaultValue `false`\n */\n padded?: boolean;\n\n /**\n * Set this to `true` when the tree item is the current keyboard focus with\n * `aria-activedescendant`. This will apply the focus styles only while the\n * parent tree component is focused and the user is in keyboard mode.\n *\n *\n * @defaultValue `false`\n */\n focused?: boolean;\n\n /**\n * Set this to `true` hen the tree item has been selected by the user. The\n * default styles just\n *\n * @defaultValue `false`\n */\n selected?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeItemContent(\n options: TreeItemContentClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n padded = false,\n focused,\n selected,\n disabled = false,\n ...remaining\n } = options;\n\n return cnb(\n treeItemStyles(\"content\", {\n link,\n padded,\n focused,\n selected,\n disabled,\n }),\n listItem({\n className,\n disabled,\n ...remaining,\n })\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TreeItemMediaClassNameOptions {\n className?: string;\n isLeafNode: boolean;\n isMediaLeftAddon: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeItemMedia(options: TreeItemMediaClassNameOptions): string {\n const { isLeafNode, isMediaLeftAddon, className } = options;\n\n return cnb(\n isMediaLeftAddon && treeItemStyles(\"media\", { single: isLeafNode }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeGroupClassNameOptions {\n className?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeGroup(options: TreeGroupClassNameOptions = {}): string {\n const { className } = options;\n\n return cnb(treeGroupStyles(), className);\n}\n"],"names":["cnb","listItem","bem","treeStyles","treeItemStyles","treeGroupStyles","tree","options","className","treeItem","expander","expanderLeft","treeItemContent","link","padded","focused","selected","disabled","remaining","treeItemMedia","isLeafNode","isMediaLeftAddon","single","treeGroup"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,aAAaD,IAAI;AACvB,MAAME,iBAAiBF,IAAI;AAC3B,MAAMG,kBAAkBH,IAAI;AAO5B;;;;;CAKC,GACD,OAAO,SAASI,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOP,IAAIG,cAAcK;AAC3B;AAgBA;;;;;CAKC,GACD,OAAO,SAASC,SAASF,UAAoC,CAAC,CAAC;IAC7D,MAAM,EAAEC,SAAS,EAAEE,WAAW,KAAK,EAAEC,eAAe,KAAK,EAAE,GAAGJ;IAE9D,OAAOP,IACLI,eAAe;QACb,iBAAiBM,YAAYC;QAC7B,kBAAkBD,YAAY,CAACC;IACjC,IACAH;AAEJ;AAsCA;;CAEC,GACD,OAAO,SAASI,gBACdL,UAA2C,CAAC,CAAC;IAE7C,MAAM,EACJC,SAAS,EACTK,OAAO,KAAK,EACZC,SAAS,KAAK,EACdC,OAAO,EACPC,QAAQ,EACRC,WAAW,KAAK,EAChB,GAAGC,WACJ,GAAGX;IAEJ,OAAOP,IACLI,eAAe,WAAW;QACxBS;QACAC;QACAC;QACAC;QACAC;IACF,IACAhB,SAAS;QACPO;QACAS;QACA,GAAGC,SAAS;IACd;AAEJ;AAWA;;CAEC,GACD,OAAO,SAASC,cAAcZ,OAAsC;IAClE,MAAM,EAAEa,UAAU,EAAEC,gBAAgB,EAAEb,SAAS,EAAE,GAAGD;IAEpD,OAAOP,IACLqB,oBAAoBjB,eAAe,SAAS;QAAEkB,QAAQF;IAAW,IACjEZ;AAEJ;AAOA;;CAEC,GACD,OAAO,SAASe,UAAUhB,UAAqC,CAAC,CAAC;IAC/D,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOP,IAAIK,mBAAmBG;AAChC"}
1
+ {"version":3,"sources":["../../src/tree/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport type { InternalListItemClassNameOptions } from \"../list/listItemStyles.js\";\nimport { listItem } from \"../list/listItemStyles.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst treeStyles = bem(\"rmd-tree\");\nconst treeItemStyles = bem(\"rmd-tree-item\");\nconst treeGroupStyles = bem(\"rmd-tree-group\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeClassNameOptions {\n className?: string;\n}\n\n/**\n * Apply the `className`s for a tree component. This will be type-safe if using\n * typescript.\n *\n * @remarks \\@since 6.0.0\n */\nexport function tree(options: TreeClassNameOptions = {}): string {\n const { className } = options;\n\n return cnb(treeStyles(), className);\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeItemClassNameOptions {\n className?: string;\n expander?: boolean;\n\n /**\n * Settings this to `true` will update the styles for the expander icon within\n * the tree item to rotate `down -> right` instead of `down -> left`.\n *\n * @defaultValue `false`\n */\n expanderLeft?: boolean;\n}\n\n/**\n * Apply the `className`s for a tree item component. This will be type-safe if\n * using typescript.\n *\n * @remarks \\@since 6.0.0\n */\nexport function treeItem(options: TreeItemClassNameOptions = {}): string {\n const { className, expander = false, expanderLeft = false } = options;\n\n return cnb(\n treeItemStyles({\n \"expander-left\": expander && expanderLeft,\n \"expander-right\": expander && !expanderLeft,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeItemContentClassNameOptions\n extends InternalListItemClassNameOptions {\n /**\n * Set this\n *\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n * Set this to `true` when the tree item is the current keyboard focus with\n * `aria-activedescendant`. This will apply the focus styles only while the\n * parent tree component is focused and the user is in keyboard mode.\n *\n *\n * @defaultValue `false`\n */\n focused?: boolean;\n\n /**\n * Set this to `true` hen the tree item has been selected by the user. The\n * default styles just\n *\n * @defaultValue `false`\n */\n selected?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeItemContent(\n options: TreeItemContentClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n focused,\n selected,\n disabled = false,\n ...remaining\n } = options;\n\n return cnb(\n treeItemStyles(\"content\", {\n link,\n focused,\n selected,\n disabled,\n }),\n listItem({\n className,\n disabled,\n ...remaining,\n })\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TreeItemMediaClassNameOptions {\n className?: string;\n isLeafNode: boolean;\n isMediaLeftAddon: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeItemMedia(options: TreeItemMediaClassNameOptions): string {\n const { isLeafNode, isMediaLeftAddon, className } = options;\n\n return cnb(\n isMediaLeftAddon && treeItemStyles(\"media\", { single: isLeafNode }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface TreeGroupClassNameOptions {\n className?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function treeGroup(options: TreeGroupClassNameOptions = {}): string {\n const { className } = options;\n\n return cnb(treeGroupStyles(), className);\n}\n"],"names":["cnb","listItem","bem","treeStyles","treeItemStyles","treeGroupStyles","tree","options","className","treeItem","expander","expanderLeft","treeItemContent","link","focused","selected","disabled","remaining","treeItemMedia","isLeafNode","isMediaLeftAddon","single","treeGroup"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,aAAaD,IAAI;AACvB,MAAME,iBAAiBF,IAAI;AAC3B,MAAMG,kBAAkBH,IAAI;AAO5B;;;;;CAKC,GACD,OAAO,SAASI,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOP,IAAIG,cAAcK;AAC3B;AAgBA;;;;;CAKC,GACD,OAAO,SAASC,SAASF,UAAoC,CAAC,CAAC;IAC7D,MAAM,EAAEC,SAAS,EAAEE,WAAW,KAAK,EAAEC,eAAe,KAAK,EAAE,GAAGJ;IAE9D,OAAOP,IACLI,eAAe;QACb,iBAAiBM,YAAYC;QAC7B,kBAAkBD,YAAY,CAACC;IACjC,IACAH;AAEJ;AA+BA;;CAEC,GACD,OAAO,SAASI,gBACdL,UAA2C,CAAC,CAAC;IAE7C,MAAM,EACJC,SAAS,EACTK,OAAO,KAAK,EACZC,OAAO,EACPC,QAAQ,EACRC,WAAW,KAAK,EAChB,GAAGC,WACJ,GAAGV;IAEJ,OAAOP,IACLI,eAAe,WAAW;QACxBS;QACAC;QACAC;QACAC;IACF,IACAf,SAAS;QACPO;QACAQ;QACA,GAAGC,SAAS;IACd;AAEJ;AAWA;;CAEC,GACD,OAAO,SAASC,cAAcX,OAAsC;IAClE,MAAM,EAAEY,UAAU,EAAEC,gBAAgB,EAAEZ,SAAS,EAAE,GAAGD;IAEpD,OAAOP,IACLoB,oBAAoBhB,eAAe,SAAS;QAAEiB,QAAQF;IAAW,IACjEX;AAEJ;AAOA;;CAEC,GACD,OAAO,SAASc,UAAUf,UAAqC,CAAC,CAAC;IAC/D,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOP,IAAIK,mBAAmBG;AAChC"}
@@ -49,7 +49,7 @@ import { getNextFocusableIndex } from "../movement/utils.js";
49
49
  /* c8 ignore start */ if (!item) {
50
50
  return;
51
51
  }
52
- /* c8 ignore end */ const disabled = disabledItems[itemId];
52
+ /* c8 ignore stop */ const disabled = disabledItems[itemId];
53
53
  const expanded = expandedIds.has(itemId);
54
54
  let flagged = false;
55
55
  switch(event.key){
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/useTreeMovement.ts"],"sourcesContent":["\"use client\";\nimport type {\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useRef } from \"react\";\nimport type { KeyboardMovementProviderImplementation } from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { getNextFocusableIndex } from \"../movement/utils.js\";\nimport type { NonNullMutableRef } from \"../types.js\";\nimport type { TreeItemMetadataLookup } from \"./TreeProvider.js\";\nimport type { TreeData, TreeItemNode } from \"./types.js\";\nimport type { TreeExpansion } from \"./useTreeExpansion.js\";\nimport type { TreeItemChildIds } from \"./useTreeItems.js\";\n\n/**\n * This helps catch the edge case where the collapse transition has occurred for\n * a tree item group, but the user uses the `ArrowDown` key before it has\n * finished. So to do this:\n *\n * - find the parent group of the tree item\n * - find the tree item that controls the group (the element before the group)\n * - check if the `aria-expanded` state is `\"false\"` meaning it is considered\n * closed\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nconst isParentItemCollapsing = (item: HTMLElement): boolean =>\n item\n .closest(\"[role='group']\")\n ?.previousElementSibling?.getAttribute(\"aria-expanded\") === \"false\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nconst getVisibleTreeItems = (\n container: HTMLElement\n): readonly HTMLElement[] => {\n const items = [\n ...container.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n ];\n\n return items.filter(\n (item) =>\n // do not include items that have a `hidden` parent group\n item.offsetParent &&\n // do not include items that are about to become hidden\n !isParentItemCollapsing(item)\n );\n};\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\ninterface TreeMovementOptions<T extends TreeItemNode> extends TreeExpansion {\n data: TreeData<T>;\n onClick: MouseEventHandler<HTMLUListElement> | undefined;\n onFocus: FocusEventHandler<HTMLUListElement> | undefined;\n onKeyDown: KeyboardEventHandler<HTMLUListElement> | undefined;\n selectedIds: ReadonlySet<string>;\n treeItemChildIds: TreeItemChildIds;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\ninterface TreeMovement\n extends KeyboardMovementProviderImplementation<HTMLUListElement> {\n /**\n * This will be mutated by the `TreeItem` component and used to handle\n * keyboard movement.\n */\n metadataLookup: NonNullMutableRef<TreeItemMetadataLookup>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport function useTreeMovement<T extends TreeItemNode>(\n options: TreeMovementOptions<T>\n): TreeMovement {\n const {\n onClick,\n onFocus,\n onKeyDown,\n data,\n expandedIds,\n selectedIds,\n treeItemChildIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n } = options;\n\n const metadataLookup = useRef<TreeItemMetadataLookup>({\n expandable: {},\n disabledItems: {},\n elementToItem: {},\n itemToElement: {},\n });\n const movement = useKeyboardMovementProvider({\n onClick,\n onFocus,\n onKeyDown,\n extendKeyDown(movementData) {\n const { event, activeDescendantId, currentFocusIndex, setFocusIndex } =\n movementData;\n const { expandable, disabledItems, elementToItem, itemToElement } =\n metadataLookup.current;\n const itemId = elementToItem[activeDescendantId];\n const item = data[itemId];\n\n /* c8 ignore start */\n if (!item) {\n return;\n }\n /* c8 ignore end */\n\n const disabled = disabledItems[itemId];\n const expanded = expandedIds.has(itemId);\n\n let flagged = false;\n switch (event.key) {\n case \"ArrowLeft\":\n if (expanded && !disabled) {\n flagged = true;\n toggleTreeItemExpansion(itemId);\n } else if (item.parentId) {\n // do not flag for this case since setFocusIndex already does this\n const parentId = itemToElement[item.parentId];\n const focusables = getVisibleTreeItems(event.currentTarget);\n const index = focusables.findIndex(\n (element) => element.id === parentId\n );\n setFocusIndex(index, focusables);\n }\n\n break;\n case \"ArrowRight\":\n if (expandable[itemId] && !disabled) {\n if (!expanded) {\n flagged = true;\n toggleTreeItemExpansion(itemId);\n } else {\n // do not flag for this case since setFocusIndex already does this\n const focusables = getVisibleTreeItems(event.currentTarget);\n const index = getNextFocusableIndex({\n loopable: false,\n increment: true,\n focusables,\n includeDisabled: true,\n currentFocusIndex: currentFocusIndex.current,\n });\n\n setFocusIndex(index, focusables);\n }\n }\n\n break;\n case \"*\": {\n flagged = true;\n const itemIds = treeItemChildIds.get(item.parentId);\n if (itemIds) {\n const expandableIds = [...itemIds].filter(\n (itemId) => expandable[itemId]\n );\n if (expandableIds.length) {\n expandMultipleTreeItems(\n (prev) => new Set([...prev, ...expandableIds])\n );\n currentFocusIndex.current = -1;\n }\n }\n break;\n }\n }\n\n if (flagged) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n searchable: true,\n tabIndexBehavior: \"virtual\",\n getFocusableElements: getVisibleTreeItems,\n getDefaultFocusedIndex(options) {\n const { focusables } = options;\n const { elementToItem } = metadataLookup.current;\n\n return focusables.findIndex((element) =>\n selectedIds.has(elementToItem[element.id])\n );\n },\n });\n\n return {\n metadataLookup,\n ...movement,\n };\n}\n"],"names":["useRef","useKeyboardMovementProvider","getNextFocusableIndex","isParentItemCollapsing","item","closest","previousElementSibling","getAttribute","getVisibleTreeItems","container","items","querySelectorAll","filter","offsetParent","useTreeMovement","options","onClick","onFocus","onKeyDown","data","expandedIds","selectedIds","treeItemChildIds","toggleTreeItemExpansion","expandMultipleTreeItems","metadataLookup","expandable","disabledItems","elementToItem","itemToElement","movement","extendKeyDown","movementData","event","activeDescendantId","currentFocusIndex","setFocusIndex","current","itemId","disabled","expanded","has","flagged","key","parentId","focusables","currentTarget","index","findIndex","element","id","loopable","increment","includeDisabled","itemIds","get","expandableIds","length","prev","Set","stopPropagation","preventDefault","searchable","tabIndexBehavior","getFocusableElements","getDefaultFocusedIndex"],"mappings":"AAAA;AAMA,SAASA,MAAM,QAAQ,QAAQ;AAE/B,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,qBAAqB,QAAQ,uBAAuB;AAO7D;;;;;;;;;;;;CAYC,GACD,MAAMC,yBAAyB,CAACC,OAC9BA,KACGC,OAAO,CAAC,mBACPC,wBAAwBC,aAAa,qBAAqB;AAEhE;;;CAGC,GACD,MAAMC,sBAAsB,CAC1BC;IAEA,MAAMC,QAAQ;WACTD,UAAUE,gBAAgB,CAAc;KAC5C;IAED,OAAOD,MAAME,MAAM,CACjB,CAACR,OACC,yDAAyD;QACzDA,KAAKS,YAAY,IACjB,uDAAuD;QACvD,CAACV,uBAAuBC;AAE9B;AA4BA;;;CAGC,GACD,OAAO,SAASU,gBACdC,OAA+B;IAE/B,MAAM,EACJC,OAAO,EACPC,OAAO,EACPC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACxB,GAAGT;IAEJ,MAAMU,iBAAiBzB,OAA+B;QACpD0B,YAAY,CAAC;QACbC,eAAe,CAAC;QAChBC,eAAe,CAAC;QAChBC,eAAe,CAAC;IAClB;IACA,MAAMC,WAAW7B,4BAA4B;QAC3Ce;QACAC;QACAC;QACAa,eAAcC,YAAY;YACxB,MAAM,EAAEC,KAAK,EAAEC,kBAAkB,EAAEC,iBAAiB,EAAEC,aAAa,EAAE,GACnEJ;YACF,MAAM,EAAEN,UAAU,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAE,GAC/DJ,eAAeY,OAAO;YACxB,MAAMC,SAASV,aAAa,CAACM,mBAAmB;YAChD,MAAM9B,OAAOe,IAAI,CAACmB,OAAO;YAEzB,mBAAmB,GACnB,IAAI,CAAClC,MAAM;gBACT;YACF;YACA,iBAAiB,GAEjB,MAAMmC,WAAWZ,aAAa,CAACW,OAAO;YACtC,MAAME,WAAWpB,YAAYqB,GAAG,CAACH;YAEjC,IAAII,UAAU;YACd,OAAQT,MAAMU,GAAG;gBACf,KAAK;oBACH,IAAIH,YAAY,CAACD,UAAU;wBACzBG,UAAU;wBACVnB,wBAAwBe;oBAC1B,OAAO,IAAIlC,KAAKwC,QAAQ,EAAE;wBACxB,kEAAkE;wBAClE,MAAMA,WAAWf,aAAa,CAACzB,KAAKwC,QAAQ,CAAC;wBAC7C,MAAMC,aAAarC,oBAAoByB,MAAMa,aAAa;wBAC1D,MAAMC,QAAQF,WAAWG,SAAS,CAChC,CAACC,UAAYA,QAAQC,EAAE,KAAKN;wBAE9BR,cAAcW,OAAOF;oBACvB;oBAEA;gBACF,KAAK;oBACH,IAAInB,UAAU,CAACY,OAAO,IAAI,CAACC,UAAU;wBACnC,IAAI,CAACC,UAAU;4BACbE,UAAU;4BACVnB,wBAAwBe;wBAC1B,OAAO;4BACL,kEAAkE;4BAClE,MAAMO,aAAarC,oBAAoByB,MAAMa,aAAa;4BAC1D,MAAMC,QAAQ7C,sBAAsB;gCAClCiD,UAAU;gCACVC,WAAW;gCACXP;gCACAQ,iBAAiB;gCACjBlB,mBAAmBA,kBAAkBE,OAAO;4BAC9C;4BAEAD,cAAcW,OAAOF;wBACvB;oBACF;oBAEA;gBACF,KAAK;oBAAK;wBACRH,UAAU;wBACV,MAAMY,UAAUhC,iBAAiBiC,GAAG,CAACnD,KAAKwC,QAAQ;wBAClD,IAAIU,SAAS;4BACX,MAAME,gBAAgB;mCAAIF;6BAAQ,CAAC1C,MAAM,CACvC,CAAC0B,SAAWZ,UAAU,CAACY,OAAO;4BAEhC,IAAIkB,cAAcC,MAAM,EAAE;gCACxBjC,wBACE,CAACkC,OAAS,IAAIC,IAAI;2CAAID;2CAASF;qCAAc;gCAE/CrB,kBAAkBE,OAAO,GAAG,CAAC;4BAC/B;wBACF;wBACA;oBACF;YACF;YAEA,IAAIK,SAAS;gBACXT,MAAM2B,eAAe;gBACrB3B,MAAM4B,cAAc;YACtB;QACF;QACAC,YAAY;QACZC,kBAAkB;QAClBC,sBAAsBxD;QACtByD,wBAAuBlD,OAAO;YAC5B,MAAM,EAAE8B,UAAU,EAAE,GAAG9B;YACvB,MAAM,EAAEa,aAAa,EAAE,GAAGH,eAAeY,OAAO;YAEhD,OAAOQ,WAAWG,SAAS,CAAC,CAACC,UAC3B5B,YAAYoB,GAAG,CAACb,aAAa,CAACqB,QAAQC,EAAE,CAAC;QAE7C;IACF;IAEA,OAAO;QACLzB;QACA,GAAGK,QAAQ;IACb;AACF"}
1
+ {"version":3,"sources":["../../src/tree/useTreeMovement.ts"],"sourcesContent":["\"use client\";\nimport type {\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useRef } from \"react\";\nimport type { KeyboardMovementProviderImplementation } from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { getNextFocusableIndex } from \"../movement/utils.js\";\nimport type { NonNullMutableRef } from \"../types.js\";\nimport type { TreeItemMetadataLookup } from \"./TreeProvider.js\";\nimport type { TreeData, TreeItemNode } from \"./types.js\";\nimport type { TreeExpansion } from \"./useTreeExpansion.js\";\nimport type { TreeItemChildIds } from \"./useTreeItems.js\";\n\n/**\n * This helps catch the edge case where the collapse transition has occurred for\n * a tree item group, but the user uses the `ArrowDown` key before it has\n * finished. So to do this:\n *\n * - find the parent group of the tree item\n * - find the tree item that controls the group (the element before the group)\n * - check if the `aria-expanded` state is `\"false\"` meaning it is considered\n * closed\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nconst isParentItemCollapsing = (item: HTMLElement): boolean =>\n item\n .closest(\"[role='group']\")\n ?.previousElementSibling?.getAttribute(\"aria-expanded\") === \"false\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nconst getVisibleTreeItems = (\n container: HTMLElement\n): readonly HTMLElement[] => {\n const items = [\n ...container.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n ];\n\n return items.filter(\n (item) =>\n // do not include items that have a `hidden` parent group\n item.offsetParent &&\n // do not include items that are about to become hidden\n !isParentItemCollapsing(item)\n );\n};\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\ninterface TreeMovementOptions<T extends TreeItemNode> extends TreeExpansion {\n data: TreeData<T>;\n onClick: MouseEventHandler<HTMLUListElement> | undefined;\n onFocus: FocusEventHandler<HTMLUListElement> | undefined;\n onKeyDown: KeyboardEventHandler<HTMLUListElement> | undefined;\n selectedIds: ReadonlySet<string>;\n treeItemChildIds: TreeItemChildIds;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\ninterface TreeMovement\n extends KeyboardMovementProviderImplementation<HTMLUListElement> {\n /**\n * This will be mutated by the `TreeItem` component and used to handle\n * keyboard movement.\n */\n metadataLookup: NonNullMutableRef<TreeItemMetadataLookup>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport function useTreeMovement<T extends TreeItemNode>(\n options: TreeMovementOptions<T>\n): TreeMovement {\n const {\n onClick,\n onFocus,\n onKeyDown,\n data,\n expandedIds,\n selectedIds,\n treeItemChildIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n } = options;\n\n const metadataLookup = useRef<TreeItemMetadataLookup>({\n expandable: {},\n disabledItems: {},\n elementToItem: {},\n itemToElement: {},\n });\n const movement = useKeyboardMovementProvider({\n onClick,\n onFocus,\n onKeyDown,\n extendKeyDown(movementData) {\n const { event, activeDescendantId, currentFocusIndex, setFocusIndex } =\n movementData;\n const { expandable, disabledItems, elementToItem, itemToElement } =\n metadataLookup.current;\n const itemId = elementToItem[activeDescendantId];\n const item = data[itemId];\n\n /* c8 ignore start */\n if (!item) {\n return;\n }\n /* c8 ignore stop */\n\n const disabled = disabledItems[itemId];\n const expanded = expandedIds.has(itemId);\n\n let flagged = false;\n switch (event.key) {\n case \"ArrowLeft\":\n if (expanded && !disabled) {\n flagged = true;\n toggleTreeItemExpansion(itemId);\n } else if (item.parentId) {\n // do not flag for this case since setFocusIndex already does this\n const parentId = itemToElement[item.parentId];\n const focusables = getVisibleTreeItems(event.currentTarget);\n const index = focusables.findIndex(\n (element) => element.id === parentId\n );\n setFocusIndex(index, focusables);\n }\n\n break;\n case \"ArrowRight\":\n if (expandable[itemId] && !disabled) {\n if (!expanded) {\n flagged = true;\n toggleTreeItemExpansion(itemId);\n } else {\n // do not flag for this case since setFocusIndex already does this\n const focusables = getVisibleTreeItems(event.currentTarget);\n const index = getNextFocusableIndex({\n loopable: false,\n increment: true,\n focusables,\n includeDisabled: true,\n currentFocusIndex: currentFocusIndex.current,\n });\n\n setFocusIndex(index, focusables);\n }\n }\n\n break;\n case \"*\": {\n flagged = true;\n const itemIds = treeItemChildIds.get(item.parentId);\n if (itemIds) {\n const expandableIds = [...itemIds].filter(\n (itemId) => expandable[itemId]\n );\n if (expandableIds.length) {\n expandMultipleTreeItems(\n (prev) => new Set([...prev, ...expandableIds])\n );\n currentFocusIndex.current = -1;\n }\n }\n break;\n }\n }\n\n if (flagged) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n searchable: true,\n tabIndexBehavior: \"virtual\",\n getFocusableElements: getVisibleTreeItems,\n getDefaultFocusedIndex(options) {\n const { focusables } = options;\n const { elementToItem } = metadataLookup.current;\n\n return focusables.findIndex((element) =>\n selectedIds.has(elementToItem[element.id])\n );\n },\n });\n\n return {\n metadataLookup,\n ...movement,\n };\n}\n"],"names":["useRef","useKeyboardMovementProvider","getNextFocusableIndex","isParentItemCollapsing","item","closest","previousElementSibling","getAttribute","getVisibleTreeItems","container","items","querySelectorAll","filter","offsetParent","useTreeMovement","options","onClick","onFocus","onKeyDown","data","expandedIds","selectedIds","treeItemChildIds","toggleTreeItemExpansion","expandMultipleTreeItems","metadataLookup","expandable","disabledItems","elementToItem","itemToElement","movement","extendKeyDown","movementData","event","activeDescendantId","currentFocusIndex","setFocusIndex","current","itemId","disabled","expanded","has","flagged","key","parentId","focusables","currentTarget","index","findIndex","element","id","loopable","increment","includeDisabled","itemIds","get","expandableIds","length","prev","Set","stopPropagation","preventDefault","searchable","tabIndexBehavior","getFocusableElements","getDefaultFocusedIndex"],"mappings":"AAAA;AAMA,SAASA,MAAM,QAAQ,QAAQ;AAE/B,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,qBAAqB,QAAQ,uBAAuB;AAO7D;;;;;;;;;;;;CAYC,GACD,MAAMC,yBAAyB,CAACC,OAC9BA,KACGC,OAAO,CAAC,mBACPC,wBAAwBC,aAAa,qBAAqB;AAEhE;;;CAGC,GACD,MAAMC,sBAAsB,CAC1BC;IAEA,MAAMC,QAAQ;WACTD,UAAUE,gBAAgB,CAAc;KAC5C;IAED,OAAOD,MAAME,MAAM,CACjB,CAACR,OACC,yDAAyD;QACzDA,KAAKS,YAAY,IACjB,uDAAuD;QACvD,CAACV,uBAAuBC;AAE9B;AA4BA;;;CAGC,GACD,OAAO,SAASU,gBACdC,OAA+B;IAE/B,MAAM,EACJC,OAAO,EACPC,OAAO,EACPC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACxB,GAAGT;IAEJ,MAAMU,iBAAiBzB,OAA+B;QACpD0B,YAAY,CAAC;QACbC,eAAe,CAAC;QAChBC,eAAe,CAAC;QAChBC,eAAe,CAAC;IAClB;IACA,MAAMC,WAAW7B,4BAA4B;QAC3Ce;QACAC;QACAC;QACAa,eAAcC,YAAY;YACxB,MAAM,EAAEC,KAAK,EAAEC,kBAAkB,EAAEC,iBAAiB,EAAEC,aAAa,EAAE,GACnEJ;YACF,MAAM,EAAEN,UAAU,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAE,GAC/DJ,eAAeY,OAAO;YACxB,MAAMC,SAASV,aAAa,CAACM,mBAAmB;YAChD,MAAM9B,OAAOe,IAAI,CAACmB,OAAO;YAEzB,mBAAmB,GACnB,IAAI,CAAClC,MAAM;gBACT;YACF;YACA,kBAAkB,GAElB,MAAMmC,WAAWZ,aAAa,CAACW,OAAO;YACtC,MAAME,WAAWpB,YAAYqB,GAAG,CAACH;YAEjC,IAAII,UAAU;YACd,OAAQT,MAAMU,GAAG;gBACf,KAAK;oBACH,IAAIH,YAAY,CAACD,UAAU;wBACzBG,UAAU;wBACVnB,wBAAwBe;oBAC1B,OAAO,IAAIlC,KAAKwC,QAAQ,EAAE;wBACxB,kEAAkE;wBAClE,MAAMA,WAAWf,aAAa,CAACzB,KAAKwC,QAAQ,CAAC;wBAC7C,MAAMC,aAAarC,oBAAoByB,MAAMa,aAAa;wBAC1D,MAAMC,QAAQF,WAAWG,SAAS,CAChC,CAACC,UAAYA,QAAQC,EAAE,KAAKN;wBAE9BR,cAAcW,OAAOF;oBACvB;oBAEA;gBACF,KAAK;oBACH,IAAInB,UAAU,CAACY,OAAO,IAAI,CAACC,UAAU;wBACnC,IAAI,CAACC,UAAU;4BACbE,UAAU;4BACVnB,wBAAwBe;wBAC1B,OAAO;4BACL,kEAAkE;4BAClE,MAAMO,aAAarC,oBAAoByB,MAAMa,aAAa;4BAC1D,MAAMC,QAAQ7C,sBAAsB;gCAClCiD,UAAU;gCACVC,WAAW;gCACXP;gCACAQ,iBAAiB;gCACjBlB,mBAAmBA,kBAAkBE,OAAO;4BAC9C;4BAEAD,cAAcW,OAAOF;wBACvB;oBACF;oBAEA;gBACF,KAAK;oBAAK;wBACRH,UAAU;wBACV,MAAMY,UAAUhC,iBAAiBiC,GAAG,CAACnD,KAAKwC,QAAQ;wBAClD,IAAIU,SAAS;4BACX,MAAME,gBAAgB;mCAAIF;6BAAQ,CAAC1C,MAAM,CACvC,CAAC0B,SAAWZ,UAAU,CAACY,OAAO;4BAEhC,IAAIkB,cAAcC,MAAM,EAAE;gCACxBjC,wBACE,CAACkC,OAAS,IAAIC,IAAI;2CAAID;2CAASF;qCAAc;gCAE/CrB,kBAAkBE,OAAO,GAAG,CAAC;4BAC/B;wBACF;wBACA;oBACF;YACF;YAEA,IAAIK,SAAS;gBACXT,MAAM2B,eAAe;gBACrB3B,MAAM4B,cAAc;YACtB;QACF;QACAC,YAAY;QACZC,kBAAkB;QAClBC,sBAAsBxD;QACtByD,wBAAuBlD,OAAO;YAC5B,MAAM,EAAE8B,UAAU,EAAE,GAAG9B;YACvB,MAAM,EAAEa,aAAa,EAAE,GAAGH,eAAeY,OAAO;YAEhD,OAAOQ,WAAWG,SAAS,CAAC,CAACC,UAC3B5B,YAAYoB,GAAG,CAACb,aAAa,CAACqB,QAAQC,EAAE,CAAC;QAE7C;IACF;IAEA,OAAO;QACLzB;QACA,GAAGK,QAAQ;IACb;AACF"}
package/dist/types.d.ts CHANGED
@@ -148,3 +148,16 @@ export type CssPosition = "fixed" | "sticky" | "static";
148
148
  * @remarks \@since 6.0.0
149
149
  */
150
150
  export type AnyFunction = (...args: any[]) => any | void;
151
+ /**
152
+ * @remarks \@since 6.0.0
153
+ */
154
+ export type CancelableFunction<F extends AnyFunction> = F & {
155
+ cancel(): void;
156
+ };
157
+ /**
158
+ * @remarks \@since 6.0.0
159
+ */
160
+ export interface ElementSize {
161
+ height: number;
162
+ width: number;
163
+ }
package/dist/types.js CHANGED
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * @remarks \@since 6.0.0
3
- */ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- export { };
3
+ */ export { };
5
4
 
6
5
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, Ref, SetStateAction } from \"react\";\n\n/**\n * A helper type that allows an optional `ref` to also be applied with a props\n * object even though a `ref` isn't a real prop.\n */\nexport type PropsWithRef<\n Props extends {},\n Element extends HTMLElement,\n> = Props & {\n /**\n * An optional ref that can be applied.\n */\n ref?: Ref<Element>;\n};\n\n/**\n * A simple type that can be used for different components that clone a\n * `className` into a child component.\n */\nexport type ClassNameCloneableChild<T = {}> = ReactElement<\n T & { className?: string }\n>;\n\n/**\n * This type allows you to require at least one of the provided keys. This is\n * super helpful for things like `aria-label` or `aria-labelledby` when it's\n * required for a11y.\n *\n * @see https://stackoverflow.com/questions/40510611/typescript-interface-require-one-of-two-properties-to-exist/49725198#49725198\n */\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<\n T,\n Exclude<keyof T, Keys>\n> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n\nexport interface LabelA11y {\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n}\n\n/**\n * A small accessibility helper to ensure that either `aria-label` or\n * `aria-labelledby` have been provided to a component.\n *\n * @example\n * Simple Example\n * ```ts\n * import type { HTMLAttributes, ReactElement } from \"react\";\n * import type { LabelRequiredForA11y } from \"@react-md/core\";\n *\n * type Props = LabelRequiredForA11y<HTMLAttributes<HTMLDivElement>>;\n *\n * function Component(props: Props): ReactElement {\n * return <div {...props} />;\n * }\n *\n * const test1 = <Component />\n * // ^ type error\n * const test2 = <Component aria-label=\"Label\" />\n * const test3 = <Component aria-labelledby=\"some-other-id\" />\n * ```\n */\nexport type LabelRequiredForA11y<Props extends LabelA11y> = RequireAtLeastOne<\n Props,\n keyof LabelA11y\n>;\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport interface NonNullRef<T> {\n readonly current: T;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface NonNullMutableRef<T> {\n current: T;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport type HtmlTagName = keyof JSX.IntrinsicElements;\n\n/**\n * A function to get a string from a generic item.\n *\n * @example\n * Simple Example\n * ```ts\n * interface Item {\n * name: string;\n * }\n *\n * const items: Item[] = [{ name: 'Hello' }, { name: 'World' }];\n *\n * const extractor: TextExtractor<Item> = (item) => item.name;\n * ```\n * @remarks \\@since 6.0.0\n */\nexport type TextExtractor<T> = (item: T) => string;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateSetter<T> = Dispatch<SetStateAction<T>>;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateInitializer<T> = T | (() => T);\n\n/**\n * @example\n * ```ts\n * type Visibility = UseStateObject<\"visible\", boolean>;\n * // type Visibility = {\n * // visible: boolean;\n * // setVisible: UseStateSetter<boolean>\n * // }\n *\n * type AnotherOne = UseStateObject<\"renderAsSheet\", RenderMenuAsSheet>;\n * // type AnotherOne = {\n * // renderAsSheet: RenderMenuAsSheet;\n * // setRenderAsSheet: UseStateSetter<RenderMenuAsSheet>;\n * // }\n * ```\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateObject<Name extends string, Value> = {\n [key in Name]: Value;\n} & {\n [key in `set${Capitalize<Name>}`]: UseStateSetter<Value>;\n};\n\n/**\n * @example\n * ```ts\n * interface Example {\n * value: number;\n * setValue: UseStateSetter<number>;\n * }\n *\n * type WithPrefix = RenameKeysWithPrefix<Example, \"thumb1\">;\n * // type WithPrefix = {\n * // thumb1Value: number;\n * // thumb1SetValue: UseStateSetter<number>;\n * // }\n * ```\n *\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type RenameKeysWithPrefix<T, Prefix extends string> = {\n [Key in keyof T & string as `${Prefix}${Capitalize<Key>}`]: T[Key];\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type CssPosition = \"fixed\" | \"sticky\" | \"static\";\n\n/**\n * @remarks \\@since 6.0.0\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyFunction = (...args: any[]) => any | void;\n"],"names":[],"mappings":"AA2KA;;CAEC,GACD,8DAA8D;AAC9D,WAAyD"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, Ref, SetStateAction } from \"react\";\n\n/**\n * A helper type that allows an optional `ref` to also be applied with a props\n * object even though a `ref` isn't a real prop.\n */\nexport type PropsWithRef<\n Props extends {},\n Element extends HTMLElement,\n> = Props & {\n /**\n * An optional ref that can be applied.\n */\n ref?: Ref<Element>;\n};\n\n/**\n * A simple type that can be used for different components that clone a\n * `className` into a child component.\n */\nexport type ClassNameCloneableChild<T = {}> = ReactElement<\n T & { className?: string }\n>;\n\n/**\n * This type allows you to require at least one of the provided keys. This is\n * super helpful for things like `aria-label` or `aria-labelledby` when it's\n * required for a11y.\n *\n * @see https://stackoverflow.com/questions/40510611/typescript-interface-require-one-of-two-properties-to-exist/49725198#49725198\n */\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<\n T,\n Exclude<keyof T, Keys>\n> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n\nexport interface LabelA11y {\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n}\n\n/**\n * A small accessibility helper to ensure that either `aria-label` or\n * `aria-labelledby` have been provided to a component.\n *\n * @example\n * Simple Example\n * ```ts\n * import type { HTMLAttributes, ReactElement } from \"react\";\n * import type { LabelRequiredForA11y } from \"@react-md/core\";\n *\n * type Props = LabelRequiredForA11y<HTMLAttributes<HTMLDivElement>>;\n *\n * function Component(props: Props): ReactElement {\n * return <div {...props} />;\n * }\n *\n * const test1 = <Component />\n * // ^ type error\n * const test2 = <Component aria-label=\"Label\" />\n * const test3 = <Component aria-labelledby=\"some-other-id\" />\n * ```\n */\nexport type LabelRequiredForA11y<Props extends LabelA11y> = RequireAtLeastOne<\n Props,\n keyof LabelA11y\n>;\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport interface NonNullRef<T> {\n readonly current: T;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface NonNullMutableRef<T> {\n current: T;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport type HtmlTagName = keyof JSX.IntrinsicElements;\n\n/**\n * A function to get a string from a generic item.\n *\n * @example\n * Simple Example\n * ```ts\n * interface Item {\n * name: string;\n * }\n *\n * const items: Item[] = [{ name: 'Hello' }, { name: 'World' }];\n *\n * const extractor: TextExtractor<Item> = (item) => item.name;\n * ```\n * @remarks \\@since 6.0.0\n */\nexport type TextExtractor<T> = (item: T) => string;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateSetter<T> = Dispatch<SetStateAction<T>>;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateInitializer<T> = T | (() => T);\n\n/**\n * @example\n * ```ts\n * type Visibility = UseStateObject<\"visible\", boolean>;\n * // type Visibility = {\n * // visible: boolean;\n * // setVisible: UseStateSetter<boolean>\n * // }\n *\n * type AnotherOne = UseStateObject<\"renderAsSheet\", RenderMenuAsSheet>;\n * // type AnotherOne = {\n * // renderAsSheet: RenderMenuAsSheet;\n * // setRenderAsSheet: UseStateSetter<RenderMenuAsSheet>;\n * // }\n * ```\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type UseStateObject<Name extends string, Value> = {\n [key in Name]: Value;\n} & {\n [key in `set${Capitalize<Name>}`]: UseStateSetter<Value>;\n};\n\n/**\n * @example\n * ```ts\n * interface Example {\n * value: number;\n * setValue: UseStateSetter<number>;\n * }\n *\n * type WithPrefix = RenameKeysWithPrefix<Example, \"thumb1\">;\n * // type WithPrefix = {\n * // thumb1Value: number;\n * // thumb1SetValue: UseStateSetter<number>;\n * // }\n * ```\n *\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type RenameKeysWithPrefix<T, Prefix extends string> = {\n [Key in keyof T & string as `${Prefix}${Capitalize<Key>}`]: T[Key];\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type CssPosition = \"fixed\" | \"sticky\" | \"static\";\n\n/**\n * @remarks \\@since 6.0.0\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyFunction = (...args: any[]) => any | void;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type CancelableFunction<F extends AnyFunction> = F & { cancel(): void };\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ElementSize {\n height: number;\n width: number;\n}\n"],"names":[],"mappings":"AAsLA;;CAEC,GACD,WAGC"}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
2
- import { type CustomTypographyComponent, type TypographyHTMLElement, type TypographyProps } from "./Typography.js";
3
- export interface SrOnlyProps extends TypographyProps {
1
+ import { type HTMLAttributes } from "react";
2
+ import { type CustomTypographyComponent, type TypographyHTMLElement } from "./Typography.js";
3
+ export interface SrOnlyProps extends HTMLAttributes<TypographyHTMLElement> {
4
4
  /** @defaultValue `"span"` */
5
5
  as?: CustomTypographyComponent;
6
6
  /**
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Typography } from "./Typography.js";
4
3
  import { cssUtils } from "../cssUtils.js";
5
4
  /**
6
5
  * **Server Component**
@@ -25,10 +24,11 @@ import { cssUtils } from "../cssUtils.js";
25
24
  * }
26
25
  * ```
27
26
  */ export const SrOnly = /*#__PURE__*/ forwardRef(function SrOnly(props, ref) {
28
- const { as = "span", className, phoneOnly, focusable, children, tabIndex, ...remaining } = props;
29
- return /*#__PURE__*/ _jsx(Typography, {
27
+ const { as: AsComponent = "span", className, phoneOnly, focusable, children, tabIndex, ...remaining } = props;
28
+ // do some type-casting so ref works
29
+ const Component = AsComponent;
30
+ return /*#__PURE__*/ _jsx(Component, {
30
31
  ...remaining,
31
- as: as,
32
32
  ref: ref,
33
33
  tabIndex: tabIndex ?? (focusable ? 0 : undefined),
34
34
  className: cssUtils({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/typography/SrOnly.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n Typography,\n type CustomTypographyComponent,\n type TypographyHTMLElement,\n type TypographyProps,\n} from \"./Typography.js\";\nimport { cssUtils } from \"../cssUtils.js\";\n\nexport interface SrOnlyProps extends TypographyProps {\n /** @defaultValue `\"span\"` */\n as?: CustomTypographyComponent;\n\n /**\n * Set this to `true` if the content should only be screen reader only text on\n * phones. This is useful for only displaying an icon on phones when there is\n * limited space and then displaying an icon and text on larger devices.\n *\n * @defaultValue `false`\n */\n phoneOnly?: boolean;\n\n /**\n * Set this to `true` if the element should be keyboard focusable.\n *\n * @defaultValue `false`\n */\n focusable?: boolean;\n}\n\n/**\n * **Server Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { SrOnly } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <>\n * <SrOnly>\n * I am only visible to screen readers.\n * </SrOnly>\n * <SrOnly focusable>\n * I am only visible to screen readers but can be focused.\n * </SrOnly>\n * </>\n * );\n * }\n * ```\n */\nexport const SrOnly = forwardRef<TypographyHTMLElement, SrOnlyProps>(\n function SrOnly(props, ref) {\n const {\n as = \"span\",\n className,\n phoneOnly,\n focusable,\n children,\n tabIndex,\n ...remaining\n } = props;\n\n return (\n <Typography\n {...remaining}\n as={as}\n ref={ref}\n tabIndex={tabIndex ?? (focusable ? 0 : undefined)}\n className={cssUtils({\n srOnly: focusable ? \"focusable\" : phoneOnly ? \"phone\" : true,\n className,\n })}\n >\n {children}\n </Typography>\n );\n }\n);\n"],"names":["forwardRef","Typography","cssUtils","SrOnly","props","ref","as","className","phoneOnly","focusable","children","tabIndex","remaining","undefined","srOnly"],"mappings":";AAAA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SACEC,UAAU,QAIL,kBAAkB;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAuB1C;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,MAAMC,uBAASH,WACpB,SAASG,OAAOC,KAAK,EAAEC,GAAG;IACxB,MAAM,EACJC,KAAK,MAAM,EACXC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IAEJ,qBACE,KAACH;QACE,GAAGW,SAAS;QACbN,IAAIA;QACJD,KAAKA;QACLM,UAAUA,YAAaF,CAAAA,YAAY,IAAII,SAAQ;QAC/CN,WAAWL,SAAS;YAClBY,QAAQL,YAAY,cAAcD,YAAY,UAAU;YACxDD;QACF;kBAECG;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/typography/SrOnly.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport {\n type CustomTypographyComponent,\n type TypographyHTMLElement,\n} from \"./Typography.js\";\n\nexport interface SrOnlyProps extends HTMLAttributes<TypographyHTMLElement> {\n /** @defaultValue `\"span\"` */\n as?: CustomTypographyComponent;\n\n /**\n * Set this to `true` if the content should only be screen reader only text on\n * phones. This is useful for only displaying an icon on phones when there is\n * limited space and then displaying an icon and text on larger devices.\n *\n * @defaultValue `false`\n */\n phoneOnly?: boolean;\n\n /**\n * Set this to `true` if the element should be keyboard focusable.\n *\n * @defaultValue `false`\n */\n focusable?: boolean;\n}\n\n/**\n * **Server Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { SrOnly } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <>\n * <SrOnly>\n * I am only visible to screen readers.\n * </SrOnly>\n * <SrOnly focusable>\n * I am only visible to screen readers but can be focused.\n * </SrOnly>\n * </>\n * );\n * }\n * ```\n */\nexport const SrOnly = forwardRef<TypographyHTMLElement, SrOnlyProps>(\n function SrOnly(props, ref) {\n const {\n as: AsComponent = \"span\",\n className,\n phoneOnly,\n focusable,\n children,\n tabIndex,\n ...remaining\n } = props;\n\n // do some type-casting so ref works\n const Component = AsComponent as ElementType;\n\n return (\n <Component\n {...remaining}\n ref={ref}\n tabIndex={tabIndex ?? (focusable ? 0 : undefined)}\n className={cssUtils({\n srOnly: focusable ? \"focusable\" : phoneOnly ? \"phone\" : true,\n className,\n })}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["forwardRef","cssUtils","SrOnly","props","ref","as","AsComponent","className","phoneOnly","focusable","children","tabIndex","remaining","Component","undefined","srOnly"],"mappings":";AAAA,SAASA,UAAU,QAA+C,QAAQ;AAC1E,SAASC,QAAQ,QAAQ,iBAAiB;AA2B1C;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,MAAMC,uBAASF,WACpB,SAASE,OAAOC,KAAK,EAAEC,GAAG;IACxB,MAAM,EACJC,IAAIC,cAAc,MAAM,EACxBC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACJ,GAAGT;IAEJ,oCAAoC;IACpC,MAAMU,YAAYP;IAElB,qBACE,KAACO;QACE,GAAGD,SAAS;QACbR,KAAKA;QACLO,UAAUA,YAAaF,CAAAA,YAAY,IAAIK,SAAQ;QAC/CP,WAAWN,SAAS;YAClBc,QAAQN,YAAY,cAAcD,YAAY,UAAU;YACxDD;QACF;kBAECG;;AAGP,GACA"}
@@ -36,24 +36,24 @@ export type NullableTypographyClassNameOptions = Omit<TypographyClassNameOptions
36
36
  * @example
37
37
  * Simple Example
38
38
  * ```ts
39
- * import { getTypographyClassName } from "@react-md/core";
39
+ * import { typography } from "@react-md/core";
40
40
  *
41
41
  * function Example() {
42
42
  * return (
43
43
  * <>
44
- * <h1 className={getTypographyClassName({ type: "headline-1" })} />
45
- * <h2 className={getTypographyClassName({ type: "headline-2" })} />
46
- * <h3 className={getTypographyClassName({ type: "headline-3" })} />
47
- * <h4 className={getTypographyClassName({ type: "headline-4" })} />
48
- * <h5 className={getTypographyClassName({ type: "headline-5" })} />
49
- * <h6 className={getTypographyClassName({ type: "headline-6" })} />
50
- * <h5 className={getTypographyClassName({ type: "subtitle-1" })} />
51
- * <h6 className={getTypographyClassName({ type: "subtitle-2" })} />
52
- * <p className={getTypographyClassName()} />
53
- * <p className={getTypographyClassName({ type "body-1" })} />
54
- * <p className={getTypographyClassName({ type "body-1" })} />
55
- * <caption className={getTypographyClassName({ type: "caption" })} />
56
- * <span className={getTypographyClassName({ type: "overline" })} />
44
+ * <h1 className={typography({ type: "headline-1" })} />
45
+ * <h2 className={typography({ type: "headline-2" })} />
46
+ * <h3 className={typography({ type: "headline-3" })} />
47
+ * <h4 className={typography({ type: "headline-4" })} />
48
+ * <h5 className={typography({ type: "headline-5" })} />
49
+ * <h6 className={typography({ type: "headline-6" })} />
50
+ * <h5 className={typography({ type: "subtitle-1" })} />
51
+ * <h6 className={typography({ type: "subtitle-2" })} />
52
+ * <p className={typography()} />
53
+ * <p className={typography({ type "body-1" })} />
54
+ * <p className={typography({ type "body-1" })} />
55
+ * <caption className={typography({ type: "caption" })} />
56
+ * <span className={typography({ type: "overline" })} />
57
57
  * </>
58
58
  * );
59
59
  * }
@@ -62,14 +62,14 @@ export type NullableTypographyClassNameOptions = Omit<TypographyClassNameOptions
62
62
  * @example
63
63
  * Applying Additional Styles
64
64
  * ```ts
65
- * import { getTypography } from "@react-md/core";
65
+ * import { typography } from "@react-md/core";
66
66
  *
67
67
  * function Example() {
68
68
  * return (
69
69
  * <>
70
70
  * <h1
71
71
  * // only maintain the default margin-bottom
72
- * className={getTypographyClassName({
72
+ * className={typography({
73
73
  * type: "headline-1",
74
74
  * margin: "bottom",
75
75
  * })}
@@ -77,7 +77,7 @@ export type NullableTypographyClassNameOptions = Omit<TypographyClassNameOptions
77
77
  *
78
78
  * <h2
79
79
  * // remove all default margin
80
- * className={getTypographyClassName({
80
+ * className={typography({
81
81
  * type: "headline-2",
82
82
  * margin: "none",
83
83
  * })}
@@ -85,7 +85,7 @@ export type NullableTypographyClassNameOptions = Omit<TypographyClassNameOptions
85
85
  *
86
86
  * <h3
87
87
  * // only maintain the default margin-top
88
- * className={getTypographyClassName({
88
+ * className={typography({
89
89
  * type: "headline-3",
90
90
  * margin: "top",
91
91
  * })}
@@ -93,7 +93,7 @@ export type NullableTypographyClassNameOptions = Omit<TypographyClassNameOptions
93
93
  *
94
94
  * <p
95
95
  * // center the text, set to bold, and only maintain default margin-bottom
96
- * className={getTypographyClassName({
96
+ * className={typography({
97
97
  * type "subtitle-1",
98
98
  * align: "center",
99
99
  * margin: "bottom",