@react-md/core 1.0.0-next.0 → 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 (1594) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +11 -7
  3. package/.turbo/turbo-lint.log +12 -0
  4. package/.turbo/turbo-test.log +5512 -0
  5. package/.turbo/turbo-typecheck.log +4 -0
  6. package/CHANGELOG.md +234 -0
  7. package/README.md +39 -24
  8. package/coverage/clover.xml +3 -1118
  9. package/coverage/coverage-final.json +1 -7
  10. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  11. package/coverage/lcov-report/Avatar.tsx.html +472 -0
  12. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  13. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  14. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  15. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  16. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  17. package/coverage/lcov-report/IconRotator.tsx.html +322 -0
  18. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  19. package/coverage/lcov-report/ListItem.tsx.html +892 -0
  20. package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
  21. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  22. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  23. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  24. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +925 -0
  25. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  26. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  27. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  28. package/coverage/lcov-report/Portal.tsx.html +223 -0
  29. package/coverage/lcov-report/PortalContainerProvider.tsx.html +367 -0
  30. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  31. package/coverage/lcov-report/Select.tsx.html +1411 -0
  32. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +613 -0
  33. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  34. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  35. package/coverage/lcov-report/Switch.tsx.html +535 -0
  36. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  37. package/coverage/lcov-report/Tab.tsx.html +261 -147
  38. package/coverage/lcov-report/Table.tsx.html +457 -0
  39. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  40. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  41. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  42. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  43. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  44. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  45. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  46. package/coverage/lcov-report/Toast.tsx.html +868 -0
  47. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  48. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  49. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  50. package/coverage/lcov-report/TreeGroup.tsx.html +313 -0
  51. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  52. package/coverage/lcov-report/app-bar/AppBar.tsx.html +178 -28
  53. package/coverage/lcov-report/app-bar/index.html +7 -7
  54. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  55. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +475 -0
  56. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  57. package/coverage/lcov-report/autocomplete/index.html +221 -0
  58. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  59. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +1273 -0
  60. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +829 -0
  61. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +715 -0
  62. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  63. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +430 -0
  64. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +310 -0
  65. package/coverage/lcov-report/autocomplete/utils.ts.html +196 -0
  66. package/coverage/lcov-report/avatar/Avatar.tsx.html +175 -106
  67. package/coverage/lcov-report/avatar/index.html +19 -19
  68. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  69. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  70. package/coverage/lcov-report/button/Button.tsx.html +97 -85
  71. package/coverage/lcov-report/button/TooltippedButton.tsx.html +445 -0
  72. package/coverage/lcov-report/button/index.html +10 -10
  73. package/coverage/lcov-report/card/Card.tsx.html +349 -0
  74. package/coverage/lcov-report/card/CardContent.tsx.html +223 -0
  75. package/coverage/lcov-report/card/ClickableCard.tsx.html +400 -0
  76. package/coverage/lcov-report/card/index.html +21 -21
  77. package/coverage/lcov-report/card/styles.ts.html +428 -392
  78. package/coverage/lcov-report/config.ts.html +33 -18
  79. package/coverage/lcov-report/cssUtils.ts.html +171 -66
  80. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  81. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  82. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  83. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  84. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  85. package/coverage/lcov-report/dialog/index.html +28 -28
  86. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  87. package/coverage/lcov-report/draggable/index.html +21 -36
  88. package/coverage/lcov-report/draggable/useDraggable.ts.html +377 -368
  89. package/coverage/lcov-report/draggable/utils.ts.html +96 -195
  90. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +211 -0
  91. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +12 -15
  92. package/coverage/lcov-report/expansion-panel/index.html +34 -19
  93. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +928 -0
  94. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  95. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  96. package/coverage/lcov-report/form/Label.tsx.html +442 -0
  97. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +37 -25
  98. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  99. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  100. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  101. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +442 -0
  102. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +310 -0
  103. package/coverage/lcov-report/form/Select.tsx.html +1456 -0
  104. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  105. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  106. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  107. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +727 -0
  108. package/coverage/lcov-report/form/Slider.tsx.html +163 -40
  109. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  110. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  111. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  112. package/coverage/lcov-report/form/TextArea.tsx.html +596 -740
  113. package/coverage/lcov-report/form/TextArea2.tsx.html +985 -0
  114. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +1006 -0
  115. package/coverage/lcov-report/form/TextField.tsx.html +156 -234
  116. package/coverage/lcov-report/form/index.html +34 -169
  117. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  118. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  119. package/coverage/lcov-report/form/textAreaStyles.ts.html +8 -11
  120. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  121. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  122. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  123. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  124. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  125. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  126. package/coverage/lcov-report/form/useResizingTextArea.ts.html +631 -0
  127. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +631 -0
  128. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  129. package/coverage/lcov-report/form/utils.ts.html +209 -170
  130. package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
  131. package/coverage/lcov-report/hoverMode/index.html +116 -0
  132. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  133. package/coverage/lcov-report/icon/FontIcon.tsx.html +69 -78
  134. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  135. package/coverage/lcov-report/icon/index.html +20 -20
  136. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  137. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  138. package/coverage/lcov-report/index.html +11 -101
  139. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +679 -0
  140. package/coverage/lcov-report/interaction/config.ts.html +181 -0
  141. package/coverage/lcov-report/interaction/index.html +33 -18
  142. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  143. package/coverage/lcov-report/link/index.html +20 -20
  144. package/coverage/lcov-report/list/List.tsx.html +490 -0
  145. package/coverage/lcov-report/list/ListItem.tsx.html +886 -0
  146. package/coverage/lcov-report/list/ListItemAddon.tsx.html +286 -0
  147. package/coverage/lcov-report/list/ListItemChildren.tsx.html +445 -0
  148. package/coverage/lcov-report/list/ListItemLink.tsx.html +32 -38
  149. package/coverage/lcov-report/list/index.html +64 -19
  150. package/coverage/lcov-report/list/listItemStyles.ts.html +703 -0
  151. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  152. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  153. package/coverage/lcov-report/media-queries/index.html +10 -10
  154. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  155. package/coverage/lcov-report/menu/Menu.tsx.html +357 -282
  156. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  157. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  158. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +433 -0
  159. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  160. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  161. package/coverage/lcov-report/menu/index.html +14 -74
  162. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  163. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  164. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  165. package/coverage/lcov-report/movement/index.html +19 -19
  166. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  167. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  168. package/coverage/lcov-report/positioning/index.html +30 -30
  169. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  170. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  171. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  172. package/coverage/lcov-report/progress/index.html +19 -19
  173. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  174. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  175. package/coverage/lcov-report/searching/index.html +146 -0
  176. package/coverage/lcov-report/searching/toSearchQuery.ts.html +145 -0
  177. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +211 -0
  178. package/coverage/lcov-report/searching/utils.ts.html +244 -0
  179. package/coverage/lcov-report/sheet/index.html +8 -8
  180. package/coverage/lcov-report/sheet/styles.ts.html +376 -0
  181. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +400 -0
  182. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  183. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  184. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  185. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  186. package/coverage/lcov-report/snackbar/index.html +59 -14
  187. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  188. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  189. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  190. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  191. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  192. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  193. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  194. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  195. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +207 -87
  196. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  197. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  198. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +364 -0
  199. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  200. package/coverage/lcov-report/src/autocomplete/index.html +221 -0
  201. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +637 -0
  202. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +829 -0
  203. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +715 -0
  204. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +430 -0
  205. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +241 -0
  206. package/coverage/lcov-report/src/autocomplete/utils.ts.html +196 -0
  207. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  208. package/coverage/lcov-report/src/avatar/index.html +22 -7
  209. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  210. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  211. package/coverage/lcov-report/src/badge/index.html +1 -1
  212. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  213. package/coverage/lcov-report/src/box/index.html +9 -9
  214. package/coverage/lcov-report/src/box/styles.ts.html +105 -51
  215. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  216. package/coverage/lcov-report/src/button/Button.tsx.html +81 -81
  217. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  218. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  219. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +445 -0
  220. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  221. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  222. package/coverage/lcov-report/src/button/index.html +1 -1
  223. package/coverage/lcov-report/src/card/Card.tsx.html +37 -31
  224. package/coverage/lcov-report/src/card/CardContent.tsx.html +4 -4
  225. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  226. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  227. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  228. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  229. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +400 -0
  230. package/coverage/lcov-report/src/card/index.html +112 -7
  231. package/coverage/lcov-report/src/card/styles.ts.html +58 -31
  232. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  233. package/coverage/lcov-report/src/chip/index.html +7 -7
  234. package/coverage/lcov-report/src/chip/styles.ts.html +9 -12
  235. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  236. package/coverage/lcov-report/src/delegateEvent.ts.html +110 -110
  237. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  238. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  239. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  240. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  241. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  242. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  243. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  244. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  245. package/coverage/lcov-report/src/dialog/index.html +133 -13
  246. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  247. package/coverage/lcov-report/src/divider/Divider.tsx.html +27 -30
  248. package/coverage/lcov-report/src/divider/index.html +23 -8
  249. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  250. package/coverage/lcov-report/src/draggable/index.html +27 -27
  251. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +365 -362
  252. package/coverage/lcov-report/src/draggable/utils.ts.html +94 -196
  253. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  254. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  255. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  256. package/coverage/lcov-report/src/expansion-panel/index.html +30 -15
  257. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  258. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +36 -24
  259. package/coverage/lcov-report/src/focus/index.html +23 -23
  260. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  261. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  262. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  263. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  264. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  265. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  266. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  267. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  268. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  269. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  270. package/coverage/lcov-report/src/form/InputToggle.tsx.html +116 -125
  271. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +63 -63
  272. package/coverage/lcov-report/src/form/Label.tsx.html +107 -107
  273. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  274. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +13 -7
  275. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  276. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +179 -221
  277. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +13 -7
  278. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  279. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  280. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  281. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  282. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  283. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  284. package/coverage/lcov-report/src/form/Radio.tsx.html +3 -3
  285. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +988 -0
  286. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +310 -0
  287. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1122
  288. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  289. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +694 -0
  290. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  291. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  292. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  293. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  294. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  295. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  296. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  297. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  298. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  299. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  300. package/coverage/lcov-report/src/form/TextArea.tsx.html +650 -572
  301. package/coverage/lcov-report/src/form/TextArea2.tsx.html +985 -0
  302. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +985 -0
  303. package/coverage/lcov-report/src/form/TextField.tsx.html +18 -12
  304. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  305. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  306. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +24 -15
  307. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  308. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  309. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  310. package/coverage/lcov-report/src/form/index.html +37 -127
  311. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  312. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  313. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  314. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  315. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  316. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  317. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  318. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  319. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  320. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +5 -5
  321. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  322. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  323. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  324. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  325. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  326. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  327. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  328. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  329. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  330. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +68 -53
  331. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  332. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +634 -0
  333. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  334. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  335. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  336. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  337. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  338. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  339. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +104 -104
  340. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +19 -19
  341. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  342. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +5 -8
  343. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  344. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  345. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  346. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  347. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  348. package/coverage/lcov-report/src/icon/index.html +12 -12
  349. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  350. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  351. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  352. package/coverage/lcov-report/src/index.html +10 -10
  353. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  354. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  355. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  356. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  357. package/coverage/lcov-report/src/interaction/index.html +100 -10
  358. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  359. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +19 -19
  360. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  361. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  362. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +1 -1
  363. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  364. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  365. package/coverage/lcov-report/src/layout/index.html +203 -8
  366. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +1 -1
  367. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  368. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  369. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  370. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  371. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +20 -32
  372. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  373. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  374. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  375. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  376. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  377. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  378. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  379. package/coverage/lcov-report/src/link/index.html +16 -16
  380. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  381. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  382. package/coverage/lcov-report/src/list/ListItem.tsx.html +555 -534
  383. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +45 -39
  384. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +88 -82
  385. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +6 -6
  386. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  387. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  388. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +43 -46
  389. package/coverage/lcov-report/src/list/index.html +128 -8
  390. package/coverage/lcov-report/src/list/listItemStyles.ts.html +102 -72
  391. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  392. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  393. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  394. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +28 -28
  395. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  396. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  397. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  398. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  399. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  400. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  401. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  402. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +433 -0
  403. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  404. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  405. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  406. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  407. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  408. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  409. package/coverage/lcov-report/src/menu/index.html +13 -193
  410. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  411. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  412. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  413. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  414. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  415. package/coverage/lcov-report/src/movement/index.html +20 -20
  416. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  417. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  418. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  419. package/coverage/lcov-report/src/overlay/index.html +1 -1
  420. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  421. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  422. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +59 -35
  423. package/coverage/lcov-report/src/portal/index.html +23 -8
  424. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  425. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  426. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  427. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  428. package/coverage/lcov-report/src/positioning/index.html +70 -10
  429. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  430. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  431. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  432. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  433. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  434. package/coverage/lcov-report/src/progress/index.html +47 -32
  435. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  436. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  437. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  438. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  439. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  440. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  441. package/coverage/lcov-report/src/scroll/index.html +5 -5
  442. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  443. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  444. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  445. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  446. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  447. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  448. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  449. package/coverage/lcov-report/src/sheet/index.html +20 -5
  450. package/coverage/lcov-report/src/sheet/styles.ts.html +18 -21
  451. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +87 -84
  452. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +24 -174
  453. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +109 -94
  454. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  455. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  456. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +54 -162
  457. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1786 -0
  458. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +21 -1701
  459. package/coverage/lcov-report/src/snackbar/index.html +163 -13
  460. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  461. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  462. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +27 -27
  463. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  464. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +159 -108
  465. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  466. package/coverage/lcov-report/src/suspense/index.html +32 -32
  467. package/coverage/lcov-report/src/table/Table.tsx.html +45 -114
  468. package/coverage/lcov-report/src/table/TableBody.tsx.html +43 -43
  469. package/coverage/lcov-report/src/table/TableCell.tsx.html +115 -319
  470. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +82 -28
  471. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +16 -10
  472. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +25 -31
  473. package/coverage/lcov-report/src/table/TableContainer.tsx.html +7 -28
  474. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  475. package/coverage/lcov-report/src/table/TableFooter.tsx.html +64 -43
  476. package/coverage/lcov-report/src/table/TableHeader.tsx.html +41 -92
  477. package/coverage/lcov-report/src/table/TableRadio.tsx.html +676 -0
  478. package/coverage/lcov-report/src/table/TableRow.tsx.html +38 -119
  479. package/coverage/lcov-report/src/table/index.html +226 -16
  480. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +334 -0
  481. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +142 -0
  482. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +166 -0
  483. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +172 -0
  484. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +169 -0
  485. package/coverage/lcov-report/src/table/tableStyles.ts.html +157 -0
  486. package/coverage/lcov-report/src/tabs/Tab.tsx.html +263 -143
  487. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  488. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  489. package/coverage/lcov-report/src/tabs/index.html +148 -13
  490. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +187 -0
  491. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  492. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  493. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +64 -28
  494. package/coverage/lcov-report/src/tabs/useTabList.ts.html +115 -109
  495. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  496. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  497. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  498. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +402 -261
  499. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +112 -0
  500. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  501. package/coverage/lcov-report/src/test-utils/index.html +7 -7
  502. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  503. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +55 -55
  504. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  505. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  506. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  507. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  508. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  509. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  510. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  511. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  512. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  513. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  514. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  515. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  516. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  517. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  518. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  519. package/coverage/lcov-report/src/theme/index.html +71 -11
  520. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +25 -25
  521. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  522. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  523. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  524. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  525. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  526. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  527. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  528. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  529. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  530. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  531. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  532. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +555 -234
  533. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  534. package/coverage/lcov-report/src/tooltip/utils.ts.html +24 -24
  535. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  536. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  537. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  538. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  539. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +374 -338
  540. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  541. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  542. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  543. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  544. package/coverage/lcov-report/src/transition/index.html +311 -11
  545. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  546. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +400 -0
  547. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  548. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  549. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +108 -162
  550. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  551. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  552. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  553. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +607 -562
  554. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  555. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  556. package/coverage/lcov-report/src/transition/utils.ts.html +70 -70
  557. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +19 -7
  558. package/coverage/lcov-report/src/tree/Tree.tsx.html +30 -30
  559. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  560. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +215 -221
  561. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  562. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  563. package/coverage/lcov-report/src/tree/index.html +19 -94
  564. package/coverage/lcov-report/src/tree/styles.ts.html +4 -31
  565. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  566. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  567. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  568. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +87 -87
  569. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  570. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  571. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +38 -38
  572. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  573. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  574. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  575. package/coverage/lcov-report/src/typography/index.html +64 -19
  576. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  577. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +246 -240
  578. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  579. package/coverage/lcov-report/src/useElementSize.ts.html +334 -0
  580. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  581. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  582. package/coverage/lcov-report/src/useEnsuredState.ts.html +19 -19
  583. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  584. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  585. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  586. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  587. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  588. package/coverage/lcov-report/src/usePageInactive.ts.html +30 -30
  589. package/coverage/lcov-report/src/useResizeListener.ts.html +38 -32
  590. package/coverage/lcov-report/src/useResizeObserver.ts.html +133 -244
  591. package/coverage/lcov-report/src/useThrottledFunction.ts.html +57 -51
  592. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  593. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  594. package/coverage/lcov-report/src/useWindowSize.ts.html +124 -94
  595. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  596. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  597. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  598. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  599. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  600. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  601. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +163 -0
  602. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  603. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +66 -87
  604. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +7 -7
  605. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  606. package/coverage/lcov-report/src/utils/index.html +14 -59
  607. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  608. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +118 -0
  609. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  610. package/coverage/lcov-report/src/utils/nearest.ts.html +21 -21
  611. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  612. package/coverage/lcov-report/src/utils/randomInt.ts.html +52 -52
  613. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  614. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  615. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  616. package/coverage/lcov-report/src/window-splitter/index.html +14 -14
  617. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +19 -67
  618. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +256 -0
  619. package/coverage/lcov-report/styles.ts.html +134 -320
  620. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +283 -0
  621. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +202 -0
  622. package/coverage/lcov-report/suspense/index.html +131 -0
  623. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  624. package/coverage/lcov-report/tabIndicatorStyles.ts.html +43 -13
  625. package/coverage/lcov-report/tabListStyles.ts.html +35 -26
  626. package/coverage/lcov-report/tabStyles.ts.html +68 -26
  627. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  628. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  629. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  630. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  631. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  632. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  633. package/coverage/lcov-report/table/index.html +62 -32
  634. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  635. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  636. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  637. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  638. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  639. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  640. package/coverage/lcov-report/tabs/Tab.tsx.html +592 -0
  641. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  642. package/coverage/lcov-report/tabs/index.html +107 -17
  643. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +187 -0
  644. package/coverage/lcov-report/tabs/tabListStyles.ts.html +241 -0
  645. package/coverage/lcov-report/tabs/tabStyles.ts.html +253 -0
  646. package/coverage/lcov-report/tabs/useTabList.ts.html +736 -0
  647. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  648. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  649. package/coverage/lcov-report/test-utils/index.html +21 -21
  650. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  651. package/coverage/lcov-report/test-utils/use.ts.html +187 -0
  652. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  653. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  654. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  655. package/coverage/lcov-report/tooltip/index.html +11 -56
  656. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  657. package/coverage/lcov-report/tooltip/useTooltip.ts.html +555 -234
  658. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  659. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +595 -0
  660. package/coverage/lcov-report/transition/config.ts.html +187 -0
  661. package/coverage/lcov-report/transition/index.html +9 -24
  662. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +400 -0
  663. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  664. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +952 -0
  665. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  666. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  667. package/coverage/lcov-report/tree/TreeItem.tsx.html +215 -221
  668. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  669. package/coverage/lcov-report/tree/index.html +19 -94
  670. package/coverage/lcov-report/tree/styles.ts.html +538 -0
  671. package/coverage/lcov-report/tree/useTreeMovement.ts.html +140 -143
  672. package/coverage/lcov-report/typography/Typography.tsx.html +138 -432
  673. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  674. package/coverage/lcov-report/typography/index.html +18 -18
  675. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  676. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  677. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  678. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  679. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  680. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +952 -0
  681. package/coverage/lcov-report/useTabList.ts.html +142 -136
  682. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  683. package/coverage/lcov-report/useTransition.ts.html +934 -0
  684. package/coverage/lcov-report/useWindowSplitter.ts.html +640 -0
  685. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +256 -0
  686. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  687. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  688. package/coverage/lcov-report/utils/index.html +13 -43
  689. package/coverage/lcov-report/utils/isElementVisible.ts.html +12 -12
  690. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  691. package/coverage/lcov-report/utils/randomInt.ts.html +148 -0
  692. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  693. package/coverage/lcov-report/utils/wait.ts.html +1 -1
  694. package/coverage/lcov-report/utils.ts.html +109 -277
  695. package/coverage/lcov-report/window-splitter/index.html +21 -36
  696. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +406 -328
  697. package/coverage/lcov.info +0 -1176
  698. package/dist/RootHtml.d.ts +62 -0
  699. package/dist/RootHtml.js +49 -0
  700. package/dist/RootHtml.js.map +1 -0
  701. package/dist/_box-shadows.scss +12 -2
  702. package/dist/_core.scss +208 -250
  703. package/dist/_utils.scss +89 -0
  704. package/dist/app-bar/AppBar.d.ts +4 -9
  705. package/dist/app-bar/AppBar.js +29 -7
  706. package/dist/app-bar/AppBar.js.map +1 -1
  707. package/dist/app-bar/_app-bar.scss +114 -122
  708. package/dist/avatar/Avatar.d.ts +16 -15
  709. package/dist/avatar/Avatar.js +7 -3
  710. package/dist/avatar/Avatar.js.map +1 -1
  711. package/dist/avatar/_avatar.scss +79 -84
  712. package/dist/avatar/styles.d.ts +20 -2
  713. package/dist/avatar/styles.js +4 -1
  714. package/dist/avatar/styles.js.map +1 -1
  715. package/dist/badge/_badge.scss +97 -59
  716. package/dist/box/_box.scss +72 -81
  717. package/dist/button/AsyncButton.d.ts +29 -0
  718. package/dist/button/AsyncButton.js +14 -1
  719. package/dist/button/AsyncButton.js.map +1 -1
  720. package/dist/button/TooltippedButton.d.ts +62 -0
  721. package/dist/button/TooltippedButton.js +62 -0
  722. package/dist/button/TooltippedButton.js.map +1 -0
  723. package/dist/button/_button.scss +170 -180
  724. package/dist/card/Card.js +3 -2
  725. package/dist/card/Card.js.map +1 -1
  726. package/dist/card/CardContent.js +1 -1
  727. package/dist/card/CardContent.js.map +1 -1
  728. package/dist/card/ClickableCard.d.ts +42 -0
  729. package/dist/card/ClickableCard.js +73 -0
  730. package/dist/card/ClickableCard.js.map +1 -0
  731. package/dist/card/_card.scss +81 -82
  732. package/dist/card/styles.d.ts +8 -0
  733. package/dist/card/styles.js +6 -3
  734. package/dist/card/styles.js.map +1 -1
  735. package/dist/chip/_chip.scss +136 -163
  736. package/dist/chip/styles.d.ts +1 -1
  737. package/dist/chip/styles.js +3 -4
  738. package/dist/chip/styles.js.map +1 -1
  739. package/dist/cssUtils.d.ts +1 -0
  740. package/dist/cssUtils.js +1 -1
  741. package/dist/cssUtils.js.map +1 -1
  742. package/dist/dialog/Dialog.d.ts +1 -1
  743. package/dist/dialog/Dialog.js +2 -1
  744. package/dist/dialog/Dialog.js.map +1 -1
  745. package/dist/dialog/FixedDialog.d.ts +5 -4
  746. package/dist/dialog/FixedDialog.js +5 -4
  747. package/dist/dialog/FixedDialog.js.map +1 -1
  748. package/dist/dialog/_dialog.scss +179 -162
  749. package/dist/divider/Divider.d.ts +0 -1
  750. package/dist/divider/Divider.js.map +1 -1
  751. package/dist/divider/_divider.scss +61 -70
  752. package/dist/draggable/_draggable.scss +16 -12
  753. package/dist/draggable/useDraggable.d.ts +12 -23
  754. package/dist/draggable/useDraggable.js +15 -6
  755. package/dist/draggable/useDraggable.js.map +1 -1
  756. package/dist/draggable/utils.d.ts +4 -17
  757. package/dist/draggable/utils.js +9 -25
  758. package/dist/draggable/utils.js.map +1 -1
  759. package/dist/expansion-panel/_expansion-panel.scss +76 -50
  760. package/dist/expansion-panel/useExpansionPanels.d.ts +5 -3
  761. package/dist/expansion-panel/useExpansionPanels.js +16 -9
  762. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  763. package/dist/focus/useFocusContainer.d.ts +8 -8
  764. package/dist/focus/useFocusContainer.js +11 -10
  765. package/dist/focus/useFocusContainer.js.map +1 -1
  766. package/dist/form/Form.d.ts +1 -1
  767. package/dist/form/Form.js +2 -1
  768. package/dist/form/Form.js.map +1 -1
  769. package/dist/form/Label.d.ts +5 -5
  770. package/dist/form/Label.js.map +1 -1
  771. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  772. package/dist/form/MenuItemInputToggle.js +27 -38
  773. package/dist/form/MenuItemInputToggle.js.map +1 -1
  774. package/dist/form/MenuItemTextField.d.ts +2 -0
  775. package/dist/form/MenuItemTextField.js.map +1 -1
  776. package/dist/form/NativeSelect.d.ts +5 -2
  777. package/dist/form/NativeSelect.js.map +1 -1
  778. package/dist/form/Option.js +3 -2
  779. package/dist/form/Option.js.map +1 -1
  780. package/dist/form/ResizingTextAreaWrapper.d.ts +19 -0
  781. package/dist/form/ResizingTextAreaWrapper.js +35 -0
  782. package/dist/form/ResizingTextAreaWrapper.js.map +1 -0
  783. package/dist/form/Select.d.ts +105 -15
  784. package/dist/form/Select.js +160 -244
  785. package/dist/form/Select.js.map +1 -1
  786. package/dist/form/SelectedOption.d.ts +21 -0
  787. package/dist/form/SelectedOption.js +37 -0
  788. package/dist/form/SelectedOption.js.map +1 -0
  789. package/dist/form/Slider.d.ts +41 -5
  790. package/dist/form/Slider.js +2 -1
  791. package/dist/form/Slider.js.map +1 -1
  792. package/dist/form/SliderThumb.d.ts +7 -2
  793. package/dist/form/SliderThumb.js +4 -2
  794. package/dist/form/SliderThumb.js.map +1 -1
  795. package/dist/form/SliderValueMarks.js +1 -1
  796. package/dist/form/SliderValueMarks.js.map +1 -1
  797. package/dist/form/SliderValueTooltip.js +1 -1
  798. package/dist/form/SliderValueTooltip.js.map +1 -1
  799. package/dist/form/Switch.d.ts +3 -2
  800. package/dist/form/Switch.js +7 -26
  801. package/dist/form/Switch.js.map +1 -1
  802. package/dist/form/SwitchTrack.d.ts +2 -1
  803. package/dist/form/SwitchTrack.js +8 -4
  804. package/dist/form/SwitchTrack.js.map +1 -1
  805. package/dist/form/TextArea.d.ts +11 -0
  806. package/dist/form/TextArea.js +19 -29
  807. package/dist/form/TextArea.js.map +1 -1
  808. package/dist/form/TextField.d.ts +2 -2
  809. package/dist/form/TextField.js +7 -6
  810. package/dist/form/TextField.js.map +1 -1
  811. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  812. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  813. package/dist/form/_form.scss +1339 -1256
  814. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  815. package/dist/form/menuItemInputToggleStyles.js +31 -0
  816. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  817. package/dist/form/selectUtils.d.ts +1 -3
  818. package/dist/form/selectUtils.js +2 -10
  819. package/dist/form/selectUtils.js.map +1 -1
  820. package/dist/form/switchStyles.d.ts +1 -0
  821. package/dist/form/switchStyles.js +2 -1
  822. package/dist/form/switchStyles.js.map +1 -1
  823. package/dist/form/textAreaStyles.d.ts +2 -2
  824. package/dist/form/textAreaStyles.js.map +1 -1
  825. package/dist/form/types.d.ts +6 -8
  826. package/dist/form/types.js.map +1 -1
  827. package/dist/form/useCombobox.d.ts +157 -0
  828. package/dist/form/useCombobox.js +206 -0
  829. package/dist/form/useCombobox.js.map +1 -0
  830. package/dist/form/useEditableCombobox.d.ts +15 -0
  831. package/dist/form/useEditableCombobox.js +101 -0
  832. package/dist/form/useEditableCombobox.js.map +1 -0
  833. package/dist/form/useFormReset.d.ts +16 -0
  834. package/dist/form/useFormReset.js +32 -0
  835. package/dist/form/useFormReset.js.map +1 -0
  836. package/dist/form/useListboxProvider.d.ts +4 -2
  837. package/dist/form/useListboxProvider.js +6 -8
  838. package/dist/form/useListboxProvider.js.map +1 -1
  839. package/dist/form/useResizingTextArea.d.ts +5 -2
  840. package/dist/form/useResizingTextArea.js +52 -21
  841. package/dist/form/useResizingTextArea.js.map +1 -1
  842. package/dist/form/useSelectCombobox.d.ts +17 -0
  843. package/dist/form/useSelectCombobox.js +36 -0
  844. package/dist/form/useSelectCombobox.js.map +1 -0
  845. package/dist/form/utils.d.ts +11 -1
  846. package/dist/form/utils.js +6 -0
  847. package/dist/form/utils.js.map +1 -1
  848. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  849. package/dist/hoverMode/useHoverMode.js +1 -1
  850. package/dist/hoverMode/useHoverMode.js.map +1 -1
  851. package/dist/icon/FontIcon.d.ts +2 -1
  852. package/dist/icon/FontIcon.js +4 -5
  853. package/dist/icon/FontIcon.js.map +1 -1
  854. package/dist/icon/IconRotator.js +2 -3
  855. package/dist/icon/IconRotator.js.map +1 -1
  856. package/dist/icon/MaterialIcon.d.ts +2 -2
  857. package/dist/icon/MaterialIcon.js +3 -6
  858. package/dist/icon/MaterialIcon.js.map +1 -1
  859. package/dist/icon/MaterialSymbol.d.ts +15 -8
  860. package/dist/icon/MaterialSymbol.js +15 -11
  861. package/dist/icon/MaterialSymbol.js.map +1 -1
  862. package/dist/icon/_icon.scss +105 -112
  863. package/dist/icon/iconConfig.js.map +1 -1
  864. package/dist/icon/material.d.ts +1 -1
  865. package/dist/icon/material.js.map +1 -1
  866. package/dist/icon/{MaterialSymbolsProvider.d.ts → materialConfig.d.ts} +25 -14
  867. package/dist/icon/materialConfig.js +29 -0
  868. package/dist/icon/materialConfig.js.map +1 -0
  869. package/dist/icon/styles.d.ts +0 -15
  870. package/dist/icon/styles.js +2 -4
  871. package/dist/icon/styles.js.map +1 -1
  872. package/dist/index.d.ts +30 -7
  873. package/dist/index.js +30 -7
  874. package/dist/index.js.map +1 -1
  875. package/dist/interaction/_interaction.scss +144 -135
  876. package/dist/layout/_layout.scss +82 -86
  877. package/dist/layout/useLayoutAppBarHeight.js +5 -9
  878. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  879. package/dist/link/Link.d.ts +12 -6
  880. package/dist/link/Link.js +1 -2
  881. package/dist/link/Link.js.map +1 -1
  882. package/dist/link/_link.scss +74 -66
  883. package/dist/list/ListItem.d.ts +8 -3
  884. package/dist/list/ListItem.js +4 -3
  885. package/dist/list/ListItem.js.map +1 -1
  886. package/dist/list/ListItemAddon.js +2 -1
  887. package/dist/list/ListItemAddon.js.map +1 -1
  888. package/dist/list/ListItemChildren.js +3 -2
  889. package/dist/list/ListItemChildren.js.map +1 -1
  890. package/dist/list/ListItemLink.d.ts +1 -1
  891. package/dist/list/ListItemLink.js +3 -3
  892. package/dist/list/ListItemLink.js.map +1 -1
  893. package/dist/list/_list.scss +187 -184
  894. package/dist/list/getListItemHeight.d.ts +0 -1
  895. package/dist/list/getListItemHeight.js +2 -2
  896. package/dist/list/getListItemHeight.js.map +1 -1
  897. package/dist/list/listItemStyles.d.ts +9 -1
  898. package/dist/list/listItemStyles.js +5 -5
  899. package/dist/list/listItemStyles.js.map +1 -1
  900. package/dist/list/types.d.ts +25 -6
  901. package/dist/list/types.js.map +1 -1
  902. package/dist/menu/DropdownMenu.d.ts +12 -1
  903. package/dist/menu/DropdownMenu.js +13 -4
  904. package/dist/menu/DropdownMenu.js.map +1 -1
  905. package/dist/menu/Menu.d.ts +8 -0
  906. package/dist/menu/Menu.js +14 -2
  907. package/dist/menu/Menu.js.map +1 -1
  908. package/dist/menu/MenuItemCircularProgress.d.ts +60 -0
  909. package/dist/menu/MenuItemCircularProgress.js +74 -0
  910. package/dist/menu/MenuItemCircularProgress.js.map +1 -0
  911. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  912. package/dist/menu/MenuItemSeparator.js +2 -8
  913. package/dist/menu/MenuItemSeparator.js.map +1 -1
  914. package/dist/menu/MenuSheet.d.ts +6 -1
  915. package/dist/menu/MenuSheet.js.map +1 -1
  916. package/dist/menu/_menu.scss +29 -50
  917. package/dist/menu/useContextMenu.d.ts +3 -3
  918. package/dist/menu/useContextMenu.js +3 -3
  919. package/dist/menu/useContextMenu.js.map +1 -1
  920. package/dist/movement/types.d.ts +40 -21
  921. package/dist/movement/types.js.map +1 -1
  922. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  923. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  924. package/dist/movement/utils.d.ts +7 -2
  925. package/dist/movement/utils.js +10 -0
  926. package/dist/movement/utils.js.map +1 -1
  927. package/dist/overlay/_overlay.scss +39 -42
  928. package/dist/portal/PortalContainerProvider.d.ts +2 -2
  929. package/dist/portal/PortalContainerProvider.js +6 -1
  930. package/dist/portal/PortalContainerProvider.js.map +1 -1
  931. package/dist/positioning/useFixedPositioning.js +0 -8
  932. package/dist/positioning/useFixedPositioning.js.map +1 -1
  933. package/dist/progress/CircularProgress.d.ts +5 -4
  934. package/dist/progress/CircularProgress.js +3 -3
  935. package/dist/progress/CircularProgress.js.map +1 -1
  936. package/dist/progress/LinearProgress.d.ts +7 -5
  937. package/dist/progress/LinearProgress.js +4 -3
  938. package/dist/progress/LinearProgress.js.map +1 -1
  939. package/dist/progress/_progress.scss +33 -33
  940. package/dist/responsive-item/_responsive-item.scss +91 -89
  941. package/dist/searching/caseInsensitive.d.ts +150 -0
  942. package/dist/searching/caseInsensitive.js +30 -0
  943. package/dist/searching/caseInsensitive.js.map +1 -0
  944. package/dist/searching/fuzzy.d.ts +128 -0
  945. package/dist/searching/fuzzy.js +54 -0
  946. package/dist/searching/fuzzy.js.map +1 -0
  947. package/dist/searching/toSearchQuery.d.ts +7 -0
  948. package/dist/searching/toSearchQuery.js +15 -0
  949. package/dist/searching/toSearchQuery.js.map +1 -0
  950. package/dist/searching/types.d.ts +28 -0
  951. package/dist/searching/types.js +5 -0
  952. package/dist/searching/types.js.map +1 -0
  953. package/dist/searching/useFuzzyMatch.d.ts +19 -0
  954. package/dist/searching/useFuzzyMatch.js +26 -0
  955. package/dist/searching/useFuzzyMatch.js.map +1 -0
  956. package/dist/searching/utils.d.ts +21 -0
  957. package/dist/searching/utils.js +28 -0
  958. package/dist/searching/utils.js.map +1 -0
  959. package/dist/segmented-button/_segmented-button.scss +89 -90
  960. package/dist/sheet/_sheet.scss +107 -123
  961. package/dist/sheet/styles.d.ts +14 -15
  962. package/dist/sheet/styles.js.map +1 -1
  963. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  964. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  965. package/dist/snackbar/Snackbar.d.ts +10 -10
  966. package/dist/snackbar/Snackbar.js +3 -3
  967. package/dist/snackbar/Snackbar.js.map +1 -1
  968. package/dist/snackbar/Toast.d.ts +1 -1
  969. package/dist/snackbar/Toast.js +5 -1
  970. package/dist/snackbar/Toast.js.map +1 -1
  971. package/dist/snackbar/ToastManager.d.ts +2 -1
  972. package/dist/snackbar/ToastManager.js +1 -1
  973. package/dist/snackbar/ToastManager.js.map +1 -1
  974. package/dist/snackbar/_snackbar.scss +148 -144
  975. package/dist/snackbar/snackbarStyles.d.ts +1 -0
  976. package/dist/snackbar/snackbarStyles.js +2 -1
  977. package/dist/snackbar/snackbarStyles.js.map +1 -1
  978. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  979. package/dist/suspense/CircularProgressSuspense.js +3 -1
  980. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  981. package/dist/table/Table.d.ts +0 -12
  982. package/dist/table/Table.js +1 -12
  983. package/dist/table/Table.js.map +1 -1
  984. package/dist/table/TableCell.d.ts +13 -38
  985. package/dist/table/TableCell.js +7 -15
  986. package/dist/table/TableCell.js.map +1 -1
  987. package/dist/table/TableCellContent.d.ts +9 -0
  988. package/dist/table/TableCellContent.js +2 -1
  989. package/dist/table/TableCellContent.js.map +1 -1
  990. package/dist/table/TableCheckbox.d.ts +5 -4
  991. package/dist/table/TableCheckbox.js +7 -5
  992. package/dist/table/TableCheckbox.js.map +1 -1
  993. package/dist/table/TableContainer.d.ts +0 -6
  994. package/dist/table/TableContainer.js +1 -6
  995. package/dist/table/TableContainer.js.map +1 -1
  996. package/dist/table/TableFooter.d.ts +7 -1
  997. package/dist/table/TableFooter.js +17 -16
  998. package/dist/table/TableFooter.js.map +1 -1
  999. package/dist/table/TableHeader.d.ts +7 -14
  1000. package/dist/table/TableHeader.js +6 -14
  1001. package/dist/table/TableHeader.js.map +1 -1
  1002. package/dist/table/TableRadio.d.ts +107 -0
  1003. package/dist/table/TableRadio.js +108 -0
  1004. package/dist/table/TableRadio.js.map +1 -0
  1005. package/dist/table/TableRow.d.ts +0 -10
  1006. package/dist/table/TableRow.js +1 -12
  1007. package/dist/table/TableRow.js.map +1 -1
  1008. package/dist/table/_table.scss +217 -232
  1009. package/dist/table/tableCellStyles.d.ts +33 -0
  1010. package/dist/table/tableCellStyles.js +15 -0
  1011. package/dist/table/tableCellStyles.js.map +1 -0
  1012. package/dist/table/tableContainerStyles.d.ts +10 -0
  1013. package/dist/table/tableContainerStyles.js +9 -0
  1014. package/dist/table/tableContainerStyles.js.map +1 -0
  1015. package/dist/table/tableFooterStyles.d.ts +10 -0
  1016. package/dist/table/tableFooterStyles.js +12 -0
  1017. package/dist/table/tableFooterStyles.js.map +1 -0
  1018. package/dist/table/tableHeaderStyles.d.ts +10 -0
  1019. package/dist/table/tableHeaderStyles.js +13 -0
  1020. package/dist/table/tableHeaderStyles.js.map +1 -0
  1021. package/dist/table/tableRowStyles.d.ts +10 -0
  1022. package/dist/table/tableRowStyles.js +14 -0
  1023. package/dist/table/tableRowStyles.js.map +1 -0
  1024. package/dist/table/tableStyles.d.ts +12 -0
  1025. package/dist/table/tableStyles.js +14 -0
  1026. package/dist/table/tableStyles.js.map +1 -0
  1027. package/dist/table/types.d.ts +28 -15
  1028. package/dist/table/types.js.map +1 -1
  1029. package/dist/tabs/Tab.d.ts +24 -3
  1030. package/dist/tabs/Tab.js +15 -8
  1031. package/dist/tabs/Tab.js.map +1 -1
  1032. package/dist/tabs/_tabs.scss +64 -53
  1033. package/dist/tabs/tabIndicatorStyles.d.ts +2 -1
  1034. package/dist/tabs/tabIndicatorStyles.js +6 -3
  1035. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  1036. package/dist/tabs/tabListStyles.js +2 -1
  1037. package/dist/tabs/tabListStyles.js.map +1 -1
  1038. package/dist/tabs/tabStyles.d.ts +2 -0
  1039. package/dist/tabs/tabStyles.js +6 -3
  1040. package/dist/tabs/tabStyles.js.map +1 -1
  1041. package/dist/tabs/useTabList.d.ts +3 -3
  1042. package/dist/tabs/useTabList.js +9 -6
  1043. package/dist/tabs/useTabList.js.map +1 -1
  1044. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  1045. package/dist/test-utils/ResizeObserver.d.ts +214 -0
  1046. package/dist/test-utils/ResizeObserver.js +69 -49
  1047. package/dist/test-utils/ResizeObserver.js.map +1 -1
  1048. package/dist/test-utils/data-testid.d.ts +7 -0
  1049. package/dist/test-utils/data-testid.js +3 -0
  1050. package/dist/test-utils/data-testid.js.map +1 -0
  1051. package/dist/test-utils/drag.d.ts +26 -0
  1052. package/dist/test-utils/index.d.ts +7 -0
  1053. package/dist/test-utils/jest-setup.d.ts +1 -0
  1054. package/dist/test-utils/jest-setup.js +3 -0
  1055. package/dist/test-utils/jest-setup.js.map +1 -1
  1056. package/dist/test-utils/matchMedia.d.ts +101 -0
  1057. package/dist/test-utils/matchMedia.js +2 -2
  1058. package/dist/test-utils/matchMedia.js.map +1 -1
  1059. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  1060. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  1061. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  1062. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  1063. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  1064. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  1065. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  1066. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  1067. package/dist/test-utils/polyfills/index.d.ts +7 -0
  1068. package/dist/test-utils/polyfills/index.js +2 -0
  1069. package/dist/test-utils/polyfills/index.js.map +1 -1
  1070. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  1071. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  1072. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  1073. package/dist/test-utils/render.d.ts +13 -0
  1074. package/dist/test-utils/timers.d.ts +39 -0
  1075. package/dist/theme/ThemeProvider.d.ts +5 -0
  1076. package/dist/theme/ThemeProvider.js.map +1 -1
  1077. package/dist/theme/_theme.scss +243 -133
  1078. package/dist/tooltip/Tooltip.d.ts +13 -6
  1079. package/dist/tooltip/Tooltip.js +2 -2
  1080. package/dist/tooltip/Tooltip.js.map +1 -1
  1081. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  1082. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  1083. package/dist/tooltip/_tooltip.scss +76 -82
  1084. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  1085. package/dist/tooltip/tooltipStyles.js +2 -2
  1086. package/dist/tooltip/tooltipStyles.js.map +1 -1
  1087. package/dist/tooltip/useTooltip.d.ts +83 -20
  1088. package/dist/tooltip/useTooltip.js +68 -7
  1089. package/dist/tooltip/useTooltip.js.map +1 -1
  1090. package/dist/transition/SkeletonPlaceholder.d.ts +2 -2
  1091. package/dist/transition/SkeletonPlaceholder.js +8 -3
  1092. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  1093. package/dist/transition/_transition.scss +89 -78
  1094. package/dist/transition/config.d.ts +22 -0
  1095. package/dist/transition/config.js +16 -0
  1096. package/dist/transition/config.js.map +1 -0
  1097. package/dist/transition/skeletonPlaceholderUtils.d.ts +77 -0
  1098. package/dist/transition/skeletonPlaceholderUtils.js +38 -0
  1099. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  1100. package/dist/transition/useCollapseTransition.d.ts +3 -18
  1101. package/dist/transition/useCollapseTransition.js +1 -10
  1102. package/dist/transition/useCollapseTransition.js.map +1 -1
  1103. package/dist/transition/useSkeletonPlaceholder.d.ts +12 -7
  1104. package/dist/transition/useSkeletonPlaceholder.js +38 -37
  1105. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  1106. package/dist/transition/useTransition.js +15 -6
  1107. package/dist/transition/useTransition.js.map +1 -1
  1108. package/dist/transition/utils.js +7 -2
  1109. package/dist/transition/utils.js.map +1 -1
  1110. package/dist/tree/DefaultTreeItemRenderer.d.ts +3 -3
  1111. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  1112. package/dist/tree/Tree.d.ts +9 -5
  1113. package/dist/tree/Tree.js +18 -21
  1114. package/dist/tree/Tree.js.map +1 -1
  1115. package/dist/tree/TreeItem.js +4 -7
  1116. package/dist/tree/TreeItem.js.map +1 -1
  1117. package/dist/tree/TreeProvider.d.ts +2 -0
  1118. package/dist/tree/TreeProvider.js +3 -1
  1119. package/dist/tree/TreeProvider.js.map +1 -1
  1120. package/dist/tree/_tree.scss +111 -109
  1121. package/dist/tree/styles.d.ts +0 -6
  1122. package/dist/tree/styles.js +1 -2
  1123. package/dist/tree/styles.js.map +1 -1
  1124. package/dist/tree/useTreeMovement.js +1 -1
  1125. package/dist/tree/useTreeMovement.js.map +1 -1
  1126. package/dist/types.d.ts +13 -0
  1127. package/dist/types.js +1 -2
  1128. package/dist/types.js.map +1 -1
  1129. package/dist/typography/SrOnly.d.ts +3 -3
  1130. package/dist/typography/SrOnly.js +4 -4
  1131. package/dist/typography/SrOnly.js.map +1 -1
  1132. package/dist/typography/Typography.d.ts +19 -19
  1133. package/dist/typography/Typography.js +19 -19
  1134. package/dist/typography/Typography.js.map +1 -1
  1135. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  1136. package/dist/typography/WritingDirectionProvider.js +2 -2
  1137. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  1138. package/dist/typography/_typography.scss +141 -87
  1139. package/dist/useDebouncedFunction.d.ts +2 -2
  1140. package/dist/useDebouncedFunction.js +10 -6
  1141. package/dist/useDebouncedFunction.js.map +1 -1
  1142. package/dist/useElementSize.d.ts +40 -0
  1143. package/dist/useElementSize.js +53 -0
  1144. package/dist/useElementSize.js.map +1 -0
  1145. package/dist/useEnsuredState.d.ts +1 -1
  1146. package/dist/useEnsuredState.js.map +1 -1
  1147. package/dist/useResizeListener.d.ts +1 -1
  1148. package/dist/useResizeListener.js +1 -0
  1149. package/dist/useResizeListener.js.map +1 -1
  1150. package/dist/useResizeObserver.d.ts +4 -43
  1151. package/dist/useResizeObserver.js +4 -43
  1152. package/dist/useResizeObserver.js.map +1 -1
  1153. package/dist/useThrottledFunction.d.ts +2 -2
  1154. package/dist/useThrottledFunction.js +20 -16
  1155. package/dist/useThrottledFunction.js.map +1 -1
  1156. package/dist/useWindowSize.d.ts +14 -11
  1157. package/dist/useWindowSize.js +12 -7
  1158. package/dist/useWindowSize.js.map +1 -1
  1159. package/dist/utils/alphaNumericSort.d.ts +1 -1
  1160. package/dist/utils/alphaNumericSort.js +2 -10
  1161. package/dist/utils/alphaNumericSort.js.map +1 -1
  1162. package/dist/utils/getMiddleOfRange.d.ts +13 -0
  1163. package/dist/utils/getMiddleOfRange.js +20 -0
  1164. package/dist/utils/getMiddleOfRange.js.map +1 -0
  1165. package/dist/utils/getRangeDefaultValue.d.ts +3 -5
  1166. package/dist/utils/getRangeDefaultValue.js +3 -13
  1167. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  1168. package/dist/utils/getRangeSteps.d.ts +1 -1
  1169. package/dist/utils/getRangeSteps.js +2 -2
  1170. package/dist/utils/getRangeSteps.js.map +1 -1
  1171. package/dist/utils/nearest.js +1 -1
  1172. package/dist/utils/nearest.js.map +1 -1
  1173. package/dist/window-splitter/_window-splitter.scss +83 -112
  1174. package/dist/window-splitter/useWindowSplitter.d.ts +3 -5
  1175. package/dist/window-splitter/useWindowSplitter.js +3 -11
  1176. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  1177. package/jest.config.ts +4 -0
  1178. package/package.json +38 -40
  1179. package/scripts/{copySassFiles.js → copySassFiles.ts} +5 -5
  1180. package/scripts/tsconfig.json +18 -0
  1181. package/src/RootHtml.tsx +95 -0
  1182. package/src/__tests__/NoSsr.tsx +5 -5
  1183. package/src/__tests__/RootHtml.node.tsx +46 -0
  1184. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  1185. package/src/__tests__/useAsyncAction.tsx +14 -6
  1186. package/src/__tests__/useDebouncedFunction.tsx +68 -24
  1187. package/src/__tests__/useDropzone.tsx +10 -10
  1188. package/src/__tests__/useElementSize.tsx +181 -0
  1189. package/src/__tests__/useEnsuredId.tsx +5 -5
  1190. package/src/__tests__/useEnsuredState.tsx +1 -2
  1191. package/src/__tests__/useLocalStorage.tsx +21 -21
  1192. package/src/__tests__/useResizeObserver.tsx +2 -0
  1193. package/src/__tests__/useThrottledFunction.tsx +63 -8
  1194. package/src/__tests__/useToggle.tsx +10 -10
  1195. package/src/__tests__/useWindowSize.node.tsx +56 -0
  1196. package/src/__tests__/useWindowSize.tsx +156 -0
  1197. package/src/_box-shadows.scss +12 -2
  1198. package/src/_core.scss +208 -250
  1199. package/src/_utils.scss +89 -0
  1200. package/src/app-bar/AppBar.tsx +59 -19
  1201. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  1202. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  1203. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +21 -21
  1204. package/src/app-bar/_app-bar.scss +114 -122
  1205. package/src/avatar/Avatar.tsx +36 -23
  1206. package/src/avatar/__tests__/Avatar.tsx +6 -6
  1207. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  1208. package/src/avatar/_avatar.scss +79 -84
  1209. package/src/avatar/styles.ts +27 -4
  1210. package/src/badge/__tests__/Badge.tsx +3 -3
  1211. package/src/badge/_badge.scss +97 -59
  1212. package/src/box/_box.scss +72 -81
  1213. package/src/button/AsyncButton.tsx +71 -4
  1214. package/src/button/TooltippedButton.tsx +120 -0
  1215. package/src/button/__tests__/AsyncButton.tsx +2 -0
  1216. package/src/button/__tests__/Button.tsx +12 -12
  1217. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  1218. package/src/button/__tests__/TooltippedButton.tsx +60 -0
  1219. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  1220. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  1221. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +26 -0
  1222. package/src/button/_button.scss +170 -180
  1223. package/src/card/Card.tsx +5 -3
  1224. package/src/card/CardContent.tsx +3 -3
  1225. package/src/card/ClickableCard.tsx +105 -0
  1226. package/src/card/__tests__/Card.tsx +3 -3
  1227. package/src/card/__tests__/CardContent.tsx +3 -3
  1228. package/src/card/__tests__/CardFooter.tsx +3 -3
  1229. package/src/card/__tests__/CardHeader.tsx +5 -5
  1230. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  1231. package/src/card/__tests__/CardTitle.tsx +3 -3
  1232. package/src/card/__tests__/ClickableCard.tsx +66 -0
  1233. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  1234. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  1235. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +20 -0
  1236. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  1237. package/src/card/_card.scss +81 -82
  1238. package/src/card/styles.ts +19 -10
  1239. package/src/chip/__tests__/Chip.tsx +20 -22
  1240. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  1241. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  1242. package/src/chip/_chip.scss +136 -163
  1243. package/src/chip/styles.ts +4 -5
  1244. package/src/cssUtils.ts +4 -1
  1245. package/src/dialog/Dialog.tsx +5 -4
  1246. package/src/dialog/FixedDialog.tsx +5 -4
  1247. package/src/dialog/__tests__/Dialog.tsx +316 -0
  1248. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  1249. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  1250. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  1251. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  1252. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  1253. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  1254. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  1255. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  1256. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  1257. package/src/dialog/_dialog.scss +179 -162
  1258. package/src/divider/Divider.tsx +0 -1
  1259. package/src/divider/__tests__/Divider.tsx +3 -3
  1260. package/src/divider/_divider.scss +61 -70
  1261. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  1262. package/src/draggable/_draggable.scss +16 -12
  1263. package/src/draggable/useDraggable.ts +26 -25
  1264. package/src/draggable/utils.ts +16 -50
  1265. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +30 -25
  1266. package/src/expansion-panel/_expansion-panel.scss +76 -50
  1267. package/src/expansion-panel/useExpansionPanels.ts +20 -16
  1268. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  1269. package/src/focus/useFocusContainer.ts +17 -10
  1270. package/src/form/Form.tsx +2 -1
  1271. package/src/form/Label.tsx +5 -5
  1272. package/src/form/MenuItemInputToggle.tsx +47 -61
  1273. package/src/form/MenuItemTextField.tsx +3 -0
  1274. package/src/form/NativeSelect.tsx +6 -3
  1275. package/src/form/Option.tsx +8 -2
  1276. package/src/form/ResizingTextAreaWrapper.tsx +75 -0
  1277. package/src/form/Select.tsx +251 -327
  1278. package/src/form/SelectedOption.tsx +55 -0
  1279. package/src/form/Slider.tsx +45 -5
  1280. package/src/form/SliderThumb.tsx +15 -3
  1281. package/src/form/SliderValueMarks.tsx +3 -1
  1282. package/src/form/SliderValueTooltip.tsx +1 -1
  1283. package/src/form/Switch.tsx +6 -27
  1284. package/src/form/SwitchTrack.tsx +12 -2
  1285. package/src/form/TextArea.tsx +40 -32
  1286. package/src/form/TextField.tsx +19 -19
  1287. package/src/form/TextFieldContainerStyles.ts +7 -7
  1288. package/src/form/__tests__/Checkbox.tsx +5 -5
  1289. package/src/form/__tests__/Fieldset.tsx +3 -3
  1290. package/src/form/__tests__/FileInput.tsx +2 -2
  1291. package/src/form/__tests__/Label.tsx +3 -3
  1292. package/src/form/__tests__/Legend.tsx +3 -3
  1293. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  1294. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  1295. package/src/form/__tests__/Radio.tsx +3 -3
  1296. package/src/form/__tests__/Select.tsx +439 -0
  1297. package/src/form/__tests__/Switch.tsx +152 -0
  1298. package/src/form/__tests__/TextArea.tsx +433 -0
  1299. package/src/form/__tests__/TextField.tsx +195 -0
  1300. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  1301. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  1302. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  1303. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  1304. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  1305. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +548 -0
  1306. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +279 -0
  1307. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  1308. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  1309. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  1310. package/src/form/__tests__/useFileUpload.tsx +41 -33
  1311. package/src/form/__tests__/useFormReset.tsx +195 -0
  1312. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  1313. package/src/form/_form.scss +1339 -1256
  1314. package/src/form/menuItemInputToggleStyles.ts +78 -0
  1315. package/src/form/selectUtils.ts +3 -14
  1316. package/src/form/switchStyles.ts +3 -3
  1317. package/src/form/textAreaStyles.ts +2 -2
  1318. package/src/form/types.ts +6 -8
  1319. package/src/form/useCombobox.ts +523 -0
  1320. package/src/form/useEditableCombobox.ts +139 -0
  1321. package/src/form/useFormReset.ts +48 -0
  1322. package/src/form/useListboxProvider.ts +9 -7
  1323. package/src/form/useResizingTextArea.ts +66 -25
  1324. package/src/form/useSelectCombobox.ts +70 -0
  1325. package/src/form/utils.ts +17 -4
  1326. package/src/hoverMode/useHoverMode.ts +4 -4
  1327. package/src/icon/FontIcon.tsx +2 -5
  1328. package/src/icon/IconRotator.tsx +1 -2
  1329. package/src/icon/MaterialIcon.tsx +4 -6
  1330. package/src/icon/MaterialSymbol.tsx +18 -12
  1331. package/src/icon/__tests__/FontIcon.tsx +7 -11
  1332. package/src/icon/__tests__/IconRotator.tsx +4 -4
  1333. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  1334. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  1335. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  1336. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  1337. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  1338. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  1339. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  1340. package/src/icon/_icon.scss +105 -112
  1341. package/src/icon/iconConfig.tsx +1 -0
  1342. package/src/icon/material.ts +284 -54
  1343. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  1344. package/src/icon/styles.ts +0 -21
  1345. package/src/index.ts +30 -7
  1346. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  1347. package/src/interaction/_interaction.scss +144 -135
  1348. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +4 -4
  1349. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +1 -1
  1350. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +18 -18
  1351. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +1 -1
  1352. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +1 -1
  1353. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  1354. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  1355. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  1356. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  1357. package/src/layout/_layout.scss +82 -86
  1358. package/src/layout/useLayoutAppBarHeight.ts +5 -9
  1359. package/src/link/Link.tsx +15 -5
  1360. package/src/link/__tests__/Link.tsx +3 -3
  1361. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  1362. package/src/link/_link.scss +74 -66
  1363. package/src/list/ListItem.tsx +20 -13
  1364. package/src/list/ListItemAddon.tsx +5 -3
  1365. package/src/list/ListItemChildren.tsx +4 -2
  1366. package/src/list/ListItemLink.tsx +5 -5
  1367. package/src/list/__tests__/List.tsx +7 -7
  1368. package/src/list/__tests__/ListItem.tsx +18 -17
  1369. package/src/list/__tests__/ListItemLink.tsx +7 -7
  1370. package/src/list/__tests__/ListSubheader.tsx +5 -5
  1371. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +1 -1
  1372. package/src/list/__tests__/getListItemHeight.ts +2 -2
  1373. package/src/list/_list.scss +187 -184
  1374. package/src/list/getListItemHeight.ts +2 -3
  1375. package/src/list/listItemStyles.ts +15 -5
  1376. package/src/list/types.ts +28 -6
  1377. package/src/menu/DropdownMenu.tsx +23 -4
  1378. package/src/menu/Menu.tsx +20 -1
  1379. package/src/menu/MenuItemCircularProgress.tsx +116 -0
  1380. package/src/menu/MenuItemSeparator.tsx +2 -12
  1381. package/src/menu/MenuSheet.tsx +10 -1
  1382. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  1383. package/src/menu/__tests__/MenuBar.tsx +57 -48
  1384. package/src/menu/__tests__/MenuItemCircularProgress.tsx +39 -0
  1385. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  1386. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +68 -0
  1387. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  1388. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  1389. package/src/menu/_menu.scss +29 -50
  1390. package/src/menu/useContextMenu.ts +3 -3
  1391. package/src/movement/types.ts +50 -25
  1392. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  1393. package/src/movement/utils.ts +12 -2
  1394. package/src/overlay/__tests__/Overlay.tsx +37 -35
  1395. package/src/overlay/_overlay.scss +39 -42
  1396. package/src/portal/PortalContainerProvider.tsx +10 -2
  1397. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  1398. package/src/portal/__tests__/PortalContainerProvider.tsx +32 -9
  1399. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  1400. package/src/positioning/__tests__/useFixedPositioning.tsx +18 -26
  1401. package/src/positioning/useFixedPositioning.ts +0 -6
  1402. package/src/progress/CircularProgress.tsx +5 -4
  1403. package/src/progress/LinearProgress.tsx +88 -86
  1404. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  1405. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  1406. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  1407. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  1408. package/src/progress/_progress.scss +33 -33
  1409. package/src/responsive-item/_responsive-item.scss +91 -89
  1410. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  1411. package/src/searching/__tests__/fuzzy.ts +169 -0
  1412. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  1413. package/src/searching/__tests__/useFuzzyMatch.tsx +200 -0
  1414. package/src/searching/caseInsensitive.ts +200 -0
  1415. package/src/searching/fuzzy.ts +175 -0
  1416. package/src/searching/toSearchQuery.ts +20 -0
  1417. package/src/searching/types.ts +34 -0
  1418. package/src/searching/useFuzzyMatch.ts +42 -0
  1419. package/src/searching/utils.ts +53 -0
  1420. package/src/segmented-button/_segmented-button.scss +89 -90
  1421. package/src/sheet/_sheet.scss +107 -123
  1422. package/src/sheet/styles.ts +14 -15
  1423. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  1424. package/src/snackbar/Snackbar.tsx +28 -32
  1425. package/src/snackbar/Toast.tsx +7 -2
  1426. package/src/snackbar/ToastManager.tsx +3 -2
  1427. package/src/snackbar/__tests__/Snackbar.tsx +13 -12
  1428. package/src/snackbar/__tests__/Toast.tsx +8 -3
  1429. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  1430. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  1431. package/src/snackbar/__tests__/ToastManagerProvider.tsx +28 -42
  1432. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  1433. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  1434. package/src/snackbar/_snackbar.scss +148 -144
  1435. package/src/snackbar/snackbarStyles.ts +3 -1
  1436. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  1437. package/src/suspense/__tests__/CircularProgressSuspense.tsx +90 -0
  1438. package/src/suspense/__tests__/NullSuspense.tsx +46 -0
  1439. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +24 -0
  1440. package/src/table/Table.tsx +1 -24
  1441. package/src/table/TableCell.tsx +22 -85
  1442. package/src/table/TableCellContent.tsx +20 -2
  1443. package/src/table/TableCheckbox.tsx +7 -5
  1444. package/src/table/TableContainer.tsx +1 -8
  1445. package/src/table/TableFooter.tsx +30 -23
  1446. package/src/table/TableHeader.tsx +23 -40
  1447. package/src/table/TableRadio.tsx +197 -0
  1448. package/src/table/TableRow.tsx +1 -28
  1449. package/src/table/__tests__/Table.tsx +4 -10
  1450. package/src/table/__tests__/TableBody.tsx +3 -3
  1451. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  1452. package/src/table/__tests__/TableContainer.tsx +3 -3
  1453. package/src/table/__tests__/TableRadio.tsx +112 -0
  1454. package/src/table/__tests__/TableRow.tsx +4 -10
  1455. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  1456. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  1457. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  1458. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  1459. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  1460. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  1461. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  1462. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  1463. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  1464. package/src/table/__tests__/tableRowStyles.ts +8 -0
  1465. package/src/table/__tests__/tableStyles.ts +8 -0
  1466. package/src/table/_table.scss +217 -232
  1467. package/src/table/tableCellStyles.ts +83 -0
  1468. package/src/table/tableContainerStyles.ts +19 -0
  1469. package/src/table/tableFooterStyles.ts +27 -0
  1470. package/src/table/tableHeaderStyles.ts +29 -0
  1471. package/src/table/tableRowStyles.ts +28 -0
  1472. package/src/table/tableStyles.ts +24 -0
  1473. package/src/table/types.ts +33 -15
  1474. package/src/tabs/Tab.tsx +110 -70
  1475. package/src/tabs/__tests__/Tab.tsx +27 -4
  1476. package/src/tabs/__tests__/TabList.tsx +54 -44
  1477. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +2 -2
  1478. package/src/tabs/__tests__/useTabs.tsx +27 -24
  1479. package/src/tabs/_tabs.scss +64 -53
  1480. package/src/tabs/tabIndicatorStyles.ts +13 -3
  1481. package/src/tabs/tabListStyles.ts +1 -1
  1482. package/src/tabs/tabStyles.ts +16 -4
  1483. package/src/tabs/useTabList.ts +10 -8
  1484. package/src/test-utils/ResizeObserver.ts +100 -53
  1485. package/src/test-utils/__tests__/ResizeObserver.ts +1 -1
  1486. package/src/test-utils/data-testid.ts +9 -0
  1487. package/src/test-utils/jest-setup.ts +4 -0
  1488. package/src/test-utils/matchMedia.ts +2 -2
  1489. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  1490. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  1491. package/src/test-utils/polyfills/index.ts +2 -0
  1492. package/src/theme/ThemeProvider.tsx +6 -0
  1493. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  1494. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  1495. package/src/theme/_theme.scss +243 -133
  1496. package/src/tooltip/Tooltip.tsx +17 -9
  1497. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  1498. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  1499. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  1500. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  1501. package/src/tooltip/_tooltip.scss +76 -82
  1502. package/src/tooltip/tooltipStyles.ts +4 -4
  1503. package/src/tooltip/useTooltip.ts +141 -34
  1504. package/src/transition/SkeletonPlaceholder.tsx +18 -6
  1505. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  1506. package/src/transition/__tests__/Collapse.tsx +19 -17
  1507. package/src/transition/__tests__/CrossFade.tsx +20 -17
  1508. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  1509. package/src/transition/__tests__/SkeletonPlaceholder.tsx +72 -0
  1510. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +24 -0
  1511. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  1512. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  1513. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  1514. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  1515. package/src/transition/__tests__/useTransition.tsx +165 -68
  1516. package/src/transition/__tests__/utils.ts +25 -0
  1517. package/src/transition/_transition.scss +89 -78
  1518. package/src/transition/config.ts +34 -0
  1519. package/src/transition/skeletonPlaceholderUtils.ts +105 -0
  1520. package/src/transition/useCollapseTransition.ts +6 -24
  1521. package/src/transition/useSkeletonPlaceholder.ts +62 -47
  1522. package/src/transition/useTransition.ts +15 -6
  1523. package/src/transition/utils.ts +10 -5
  1524. package/src/tree/DefaultTreeItemRenderer.tsx +7 -3
  1525. package/src/tree/Tree.tsx +28 -28
  1526. package/src/tree/TreeItem.tsx +5 -7
  1527. package/src/tree/TreeProvider.tsx +6 -0
  1528. package/src/tree/__tests__/Tree.tsx +8 -3
  1529. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  1530. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  1531. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +124 -124
  1532. package/src/tree/_tree.scss +111 -109
  1533. package/src/tree/styles.ts +0 -9
  1534. package/src/tree/useTreeMovement.ts +1 -1
  1535. package/src/types.ts +13 -0
  1536. package/src/typography/SrOnly.tsx +9 -9
  1537. package/src/typography/Typography.tsx +19 -19
  1538. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1539. package/src/typography/__tests__/TextContainer.tsx +3 -3
  1540. package/src/typography/__tests__/Typography.tsx +10 -12
  1541. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  1542. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  1543. package/src/typography/_typography.scss +141 -87
  1544. package/src/useDebouncedFunction.ts +12 -10
  1545. package/src/useElementSize.ts +83 -0
  1546. package/src/useEnsuredState.ts +1 -1
  1547. package/src/useResizeListener.ts +3 -1
  1548. package/src/useResizeObserver.ts +8 -45
  1549. package/src/useThrottledFunction.ts +12 -10
  1550. package/src/useWindowSize.ts +29 -19
  1551. package/src/utils/__tests__/getMiddleOfRange.ts +12 -0
  1552. package/src/utils/__tests__/getRangeDefaultValue.ts +47 -0
  1553. package/src/utils/alphaNumericSort.ts +3 -16
  1554. package/src/utils/getMiddleOfRange.ts +26 -0
  1555. package/src/utils/getRangeDefaultValue.ts +8 -15
  1556. package/src/utils/getRangeSteps.ts +2 -2
  1557. package/src/utils/nearest.ts +1 -1
  1558. package/src/window-splitter/_window-splitter.scss +83 -112
  1559. package/src/window-splitter/useWindowSplitter.ts +12 -28
  1560. package/tsconfig.types.json +1 -1
  1561. package/dist/divider/VerticalDivider.d.ts +0 -32
  1562. package/dist/divider/VerticalDivider.js +0 -40
  1563. package/dist/divider/VerticalDivider.js.map +0 -1
  1564. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  1565. package/dist/divider/useVerticalDividerHeight.js +0 -40
  1566. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  1567. package/dist/form/SelectValue.d.ts +0 -17
  1568. package/dist/form/SelectValue.js +0 -32
  1569. package/dist/form/SelectValue.js.map +0 -1
  1570. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  1571. package/dist/icon/MaterialIconsProvider.js +0 -17
  1572. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  1573. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  1574. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  1575. package/dist/link/LinkProvider.d.ts +0 -29
  1576. package/dist/link/LinkProvider.js +0 -26
  1577. package/dist/link/LinkProvider.js.map +0 -1
  1578. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  1579. package/dist/tooltip/useOverflowTooltip.js +0 -71
  1580. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  1581. package/dist/utils/filters.d.ts +0 -196
  1582. package/dist/utils/filters.js +0 -67
  1583. package/dist/utils/filters.js.map +0 -1
  1584. package/src/divider/VerticalDivider.tsx +0 -50
  1585. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  1586. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  1587. package/src/divider/useVerticalDividerHeight.ts +0 -72
  1588. package/src/form/SelectValue.tsx +0 -39
  1589. package/src/icon/MaterialIconsProvider.ts +0 -23
  1590. package/src/link/LinkProvider.tsx +0 -51
  1591. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  1592. package/src/tooltip/useOverflowTooltip.ts +0 -93
  1593. package/src/utils/__tests__/filters.ts +0 -279
  1594. package/src/utils/filters.ts +0 -320
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuSheet.tsx"],"sourcesContent":["\"use client\";\nimport { type CSSProperties, type ReactElement, type ReactNode } from \"react\";\nimport { Sheet, type BaseSheetProps } from \"../sheet/Sheet.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { type RenderMenuAsSheet } from \"./MenuConfigurationProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuSheetConvenienceProps {\n /**\n * This can be used to apply additional props to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n *\n * Note: You can override the `style` and `className` using\n * {@link sheetStyle} and {@link sheetClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <Menu\n * {...props}\n * sheetProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * }}\n * />\n * ```\n */\n sheetProps?: PropsWithRef<BaseSheetProps, HTMLDivElement>;\n\n /**\n * Convenience prop to apply custom style to the `Sheet` component when the\n * `Menu` is being rendered as a `Sheet`.\n */\n sheetStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n */\n sheetClassName?: string;\n}\n\n/**\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest menu API.\n */\nexport interface MenuSheetProps extends BaseSheetProps {\n /** {@inheritDoc MenuConfiguration.sheetHeader} */\n header?: ReactNode;\n /** {@inheritDoc MenuConfiguration.sheetFooter} */\n footer?: ReactNode;\n children: ReactNode;\n\n /** @remarks \\@since 6.0.0 */\n enabled: RenderMenuAsSheet;\n}\n\n/**\n * **Client Component**\n *\n * Implements a `Menu` using the `Sheet` component that probably shouldn't\n * really be used externally.\n *\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Added the `enabled` prop and does not render a custom `Menu`\n * implementation.\n */\nexport function MenuSheet(\n props: LabelRequiredForA11y<MenuSheetProps>\n): ReactElement {\n const {\n header,\n footer,\n children,\n onClick = noop,\n overlayProps,\n enabled,\n ...remaining\n } = props;\n const { onRequestClose } = props;\n\n if (!enabled) {\n return <>{children}</>;\n }\n\n return (\n <Sheet\n {...remaining}\n onClick={(event) => {\n onClick(event);\n\n // Prevent closing parent sheet/menus if an element in the header or\n // footer is clicked\n if (\n !(event.target instanceof HTMLElement) ||\n event.target\n .closest('.rmd-menu,[role=\"dialog\"]')\n ?.getAttribute(\"role\") === \"dialog\"\n ) {\n event.stopPropagation();\n }\n }}\n overlayProps={{\n ...overlayProps,\n onClick: (event) => {\n overlayProps?.onClick?.(event);\n\n // prevent closing parent menus if the overlay element is clicked.\n event.stopPropagation();\n onRequestClose();\n },\n }}\n >\n {header}\n {children}\n {footer}\n </Sheet>\n );\n}\n"],"names":["Sheet","noop","MenuSheet","props","header","footer","children","onClick","overlayProps","enabled","remaining","onRequestClose","event","target","HTMLElement","closest","getAttribute","stopPropagation"],"mappings":"AAAA;;AAEA,SAASA,KAAK,QAA6B,oBAAoB;AAI/D,MAAMC,OAAO;AACX,aAAa;AACf;AA0DA;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,UACdC,KAA2C;IAE3C,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,UAAUN,IAAI,EACdO,YAAY,EACZC,OAAO,EACP,GAAGC,WACJ,GAAGP;IACJ,MAAM,EAAEQ,cAAc,EAAE,GAAGR;IAE3B,IAAI,CAACM,SAAS;QACZ,qBAAO;sBAAGH;;IACZ;IAEA,qBACE,MAACN;QACE,GAAGU,SAAS;QACbH,SAAS,CAACK;YACRL,QAAQK;YAER,oEAAoE;YACpE,oBAAoB;YACpB,IACE,CAAEA,CAAAA,MAAMC,MAAM,YAAYC,WAAU,KACpCF,MAAMC,MAAM,CACTE,OAAO,CAAC,8BACPC,aAAa,YAAY,UAC7B;gBACAJ,MAAMK,eAAe;YACvB;QACF;QACAT,cAAc;YACZ,GAAGA,YAAY;YACfD,SAAS,CAACK;gBACRJ,cAAcD,UAAUK;gBAExB,kEAAkE;gBAClEA,MAAMK,eAAe;gBACrBN;YACF;QACF;;YAECP;YACAE;YACAD;;;AAGP"}
1
+ {"version":3,"sources":["../../src/menu/MenuSheet.tsx"],"sourcesContent":["\"use client\";\nimport { type CSSProperties, type ReactElement, type ReactNode } from \"react\";\nimport { Sheet, type BaseSheetProps } from \"../sheet/Sheet.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { type RenderMenuAsSheet } from \"./MenuConfigurationProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuSheetConfigurableProps = Omit<\n BaseSheetProps,\n \"visible\" | \"onRequestClose\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuSheetConvenienceProps {\n /**\n * This can be used to apply additional props to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n *\n * Note: You can override the `style` and `className` using\n * {@link sheetStyle} and {@link sheetClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <Menu\n * {...props}\n * sheetProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * horizontalSize: \"touch\",\n * }}\n * />\n * ```\n */\n sheetProps?: PropsWithRef<MenuSheetConfigurableProps, HTMLDivElement>;\n\n /**\n * Convenience prop to apply custom style to the `Sheet` component when the\n * `Menu` is being rendered as a `Sheet`.\n */\n sheetStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n */\n sheetClassName?: string;\n}\n\n/**\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest menu API.\n */\nexport interface MenuSheetProps extends BaseSheetProps {\n /** {@inheritDoc MenuConfiguration.sheetHeader} */\n header?: ReactNode;\n /** {@inheritDoc MenuConfiguration.sheetFooter} */\n footer?: ReactNode;\n children: ReactNode;\n\n /** @remarks \\@since 6.0.0 */\n enabled: RenderMenuAsSheet;\n}\n\n/**\n * **Client Component**\n *\n * Implements a `Menu` using the `Sheet` component that probably shouldn't\n * really be used externally.\n *\n * @internal\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Added the `enabled` prop and does not render a custom `Menu`\n * implementation.\n */\nexport function MenuSheet(\n props: LabelRequiredForA11y<MenuSheetProps>\n): ReactElement {\n const {\n header,\n footer,\n children,\n onClick = noop,\n overlayProps,\n enabled,\n ...remaining\n } = props;\n const { onRequestClose } = props;\n\n if (!enabled) {\n return <>{children}</>;\n }\n\n return (\n <Sheet\n {...remaining}\n onClick={(event) => {\n onClick(event);\n\n // Prevent closing parent sheet/menus if an element in the header or\n // footer is clicked\n if (\n !(event.target instanceof HTMLElement) ||\n event.target\n .closest('.rmd-menu,[role=\"dialog\"]')\n ?.getAttribute(\"role\") === \"dialog\"\n ) {\n event.stopPropagation();\n }\n }}\n overlayProps={{\n ...overlayProps,\n onClick: (event) => {\n overlayProps?.onClick?.(event);\n\n // prevent closing parent menus if the overlay element is clicked.\n event.stopPropagation();\n onRequestClose();\n },\n }}\n >\n {header}\n {children}\n {footer}\n </Sheet>\n );\n}\n"],"names":["Sheet","noop","MenuSheet","props","header","footer","children","onClick","overlayProps","enabled","remaining","onRequestClose","event","target","HTMLElement","closest","getAttribute","stopPropagation"],"mappings":"AAAA;;AAEA,SAASA,KAAK,QAA6B,oBAAoB;AAI/D,MAAMC,OAAO;AACX,aAAa;AACf;AAmEA;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,UACdC,KAA2C;IAE3C,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,UAAUN,IAAI,EACdO,YAAY,EACZC,OAAO,EACP,GAAGC,WACJ,GAAGP;IACJ,MAAM,EAAEQ,cAAc,EAAE,GAAGR;IAE3B,IAAI,CAACM,SAAS;QACZ,qBAAO;sBAAGH;;IACZ;IAEA,qBACE,MAACN;QACE,GAAGU,SAAS;QACbH,SAAS,CAACK;YACRL,QAAQK;YAER,oEAAoE;YACpE,oBAAoB;YACpB,IACE,CAAEA,CAAAA,MAAMC,MAAM,YAAYC,WAAU,KACpCF,MAAMC,MAAM,CACTE,OAAO,CAAC,8BACPC,aAAa,YAAY,UAC7B;gBACAJ,MAAMK,eAAe;YACvB;QACF;QACAT,cAAc;YACZ,GAAGA,YAAY;YACfD,SAAS,CAACK;gBACRJ,cAAcD,UAAUK;gBAExB,kEAAkE;gBAClEA,MAAMK,eAAe;gBACrBN;YACF;QACF;;YAECP;YACAE;YACAD;;;AAGP"}
@@ -8,7 +8,6 @@
8
8
  $disable-everything: false !default;
9
9
  $disable-menu-item: false !default;
10
10
  $disable-menu-item-group: false !default;
11
- $disable-focus-outline: false !default;
12
11
  $disable-elevation-colors: theme.$disable-dark-elevation !default;
13
12
 
14
13
  $elevation: 8 !default;
@@ -20,41 +19,21 @@ $min-width: 7rem !default;
20
19
 
21
20
  $spacing: 1rem !default;
22
21
 
23
- $var-lookup: (
24
- background-color: (
25
- var: --rmd-menu-background-color,
26
- value: $background-color,
27
- ),
28
- color: (
29
- var: --rmd-menu-color,
30
- value: $color,
31
- ),
32
- min-width: (
33
- var: --rmd-menu-min-width,
34
- value: $min-width,
35
- ),
36
- spacing: (
37
- var: --rmd-menu-spacing,
38
- value: $spacing,
39
- ),
40
- );
22
+ $variables: (background-color, color, min-width, spacing);
41
23
 
42
24
  @function get-var($name, $fallback: null) {
43
- $found: utils.validate($var-lookup, $name, "dialog var");
44
- $var: map.get($found, var);
45
- $value: if($fallback, $fallback, map.get($found, value));
46
-
47
- @if $value {
48
- @return var(#{$var}, #{$value});
25
+ $var: utils.get-var-name($variables, $name, "menu");
26
+ @if $fallback {
27
+ @return var(#{$var}, #{$fallback});
49
28
  }
50
29
 
51
30
  @return var(#{$var});
52
31
  }
53
32
 
54
33
  @mixin set-var($name, $value) {
55
- $var: map.get(utils.validate($var-lookup, $name, "dialog var"), var);
56
-
57
- #{$var}: #{$value};
34
+ @if $value {
35
+ #{utils.get-var-name($variables, $name, "menu")}: #{$value};
36
+ }
58
37
  }
59
38
 
60
39
  @mixin use-var($property, $name: $property, $fallback: null) {
@@ -65,19 +44,7 @@ $var-lookup: (
65
44
  .rmd-menu {
66
45
  outline: none;
67
46
  overflow: auto;
68
-
69
- @if not $disable-focus-outline {
70
- @include utils.keyboard-only {
71
- &--outline:focus {
72
- // Note: Do not use the `interaction-outline` mixin +
73
- // `interaction.set-var(interaction.$focus-color)` like normal focus
74
- // elements since it'll make all focusable children update with the
75
- // outline color as well
76
- outline: interaction.get-var(focus-color) solid
77
- interaction.get-var(focus-width);
78
- }
79
- }
80
- }
47
+ overflow-wrap: anywhere;
81
48
 
82
49
  &--elevated {
83
50
  @include box-shadows.box-shadow(
@@ -99,9 +66,10 @@ $var-lookup: (
99
66
  .rmd-menu-item {
100
67
  @include icon.set-var(spacing, get-var(spacing));
101
68
 
102
- height: var(--rmd-list-item-height);
103
-
104
69
  &--focused {
70
+ // can't use `:focus-visible` here since this is mostly for virtual
71
+ // keyboard movement for comboboxes. the focus is on the button or textbox
72
+ // instead of a parent element
105
73
  @include utils.keyboard-only {
106
74
  @include interaction.set-var(
107
75
  background-color,
@@ -122,16 +90,27 @@ $var-lookup: (
122
90
  }
123
91
  }
124
92
 
125
- @mixin styles {
93
+ @mixin variables {
126
94
  @if not $disable-everything {
127
- @include menu-styles;
95
+ @include set-var(background-color, $background-color);
96
+ @include set-var(color, $color);
97
+ @include set-var(min-width, $min-width);
98
+ @include set-var(spacing, $spacing);
99
+ }
100
+ }
128
101
 
129
- @if not $disable-menu-item {
130
- @include menu-item-styles;
131
- }
102
+ @mixin styles($disable-layer: false) {
103
+ @if not $disable-everything {
104
+ @include utils.optional-layer(menu, $disable-layer) {
105
+ @include menu-styles;
106
+
107
+ @if not $disable-menu-item {
108
+ @include menu-item-styles;
109
+ }
132
110
 
133
- @if not $disable-menu-item-group {
134
- @include menu-item-group-styles;
111
+ @if not $disable-menu-item-group {
112
+ @include menu-item-group-styles;
113
+ }
135
114
  }
136
115
  }
137
116
  }
@@ -57,15 +57,15 @@ export interface ContextMenuImplementation extends UseStateObject<"visible", boo
57
57
  * const { menuProps, onContextMenu } = useContextMenu();
58
58
  *
59
59
  * return (
60
- * <div onContextMenu={onContextMenu}>
61
- * <textarea />
60
+ * <>
61
+ * <textarea onContextMenu={onContextMenu} />
62
62
  * <Menu {...menuProps}>
63
63
  * <MenuItem>Cut</MenuItem>
64
64
  * <MenuItem>Copy</MenuItem>
65
65
  * <MenuItem>Paste</MenuItem>
66
66
  * <MenuItem>Undo</MenuItem>
67
67
  * </Menu>
68
- * </div>
68
+ * </>
69
69
  * );
70
70
  * }
71
71
  * ```
@@ -17,15 +17,15 @@ const noop = ()=>{
17
17
  * const { menuProps, onContextMenu } = useContextMenu();
18
18
  *
19
19
  * return (
20
- * <div onContextMenu={onContextMenu}>
21
- * <textarea />
20
+ * <>
21
+ * <textarea onContextMenu={onContextMenu} />
22
22
  * <Menu {...menuProps}>
23
23
  * <MenuItem>Cut</MenuItem>
24
24
  * <MenuItem>Copy</MenuItem>
25
25
  * <MenuItem>Paste</MenuItem>
26
26
  * <MenuItem>Undo</MenuItem>
27
27
  * </Menu>
28
- * </div>
28
+ * </>
29
29
  * );
30
30
  * }
31
31
  * ```
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/useContextMenu.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent, RefObject } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { BELOW_INNER_LEFT_ANCHOR } from \"../positioning/constants.js\";\nimport type { InitialCoords, PositionAnchor } from \"../positioning/types.js\";\nimport type { UseStateObject } from \"../types.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ContextMenuProps extends InitialCoords {\n \"aria-label\": string;\n anchor: PositionAnchor;\n fixedTo: RefObject<HTMLElement>;\n visible: boolean;\n preventScroll: boolean;\n onRequestClose(): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Dropped most options since they are no longer required for the\n * context menu to work. Apply any `Menu` props directly to the `Menu` component\n * instead.\n */\nexport interface ContextMenuHookOptions {\n /**\n * @defaultValue `BELOW_INNER_LEFT_ANCHOR`\n * @see {@link BELOW_INNER_LEFT_ANCHOR}\n */\n anchor?: PositionAnchor;\n\n /**\n * @defaultValue `\"Context Menu\"`\n */\n menuLabel?: string;\n\n /**\n * @defaultValue `true`\n */\n preventScroll?: boolean;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Renamed from `ContextMenuHookReturnValue` to\n * `ContextMenuImplementation` and dropped the `menuRef` and `menuNodeRef`\n * fields.\n */\nexport interface ContextMenuImplementation\n extends UseStateObject<\"visible\", boolean> {\n menuProps: ContextMenuProps;\n onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook controls the visibility and positioning for a context menu.\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import [ Menu, MenuItem, useContextMenu ] from \"@react-md/core\":\n *\n * function Example(): ReactElement {\n * const { menuProps, onContextMenu } = useContextMenu();\n *\n * return (\n * <div onContextMenu={onContextMenu}>\n * <textarea />\n * <Menu {...menuProps}>\n * <MenuItem>Cut</MenuItem>\n * <MenuItem>Copy</MenuItem>\n * <MenuItem>Paste</MenuItem>\n * <MenuItem>Undo</MenuItem>\n * </Menu>\n * </div>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 No longer supports overriding most of the `Menu` props. The\n * props must be passed to the `Menu` component manually.\n */\nexport function useContextMenu(\n options: ContextMenuHookOptions = {}\n): ContextMenuImplementation {\n const {\n anchor = BELOW_INNER_LEFT_ANCHOR,\n menuLabel = \"Context Menu\",\n onContextMenu = noop,\n preventScroll = true,\n } = options;\n const [coords, setCoords] = useState<InitialCoords>({});\n const [visible, setVisible] = useState(false);\n const fixedTo = useRef<HTMLElement>(null);\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, []);\n\n return {\n visible,\n setVisible,\n menuProps: {\n \"aria-label\": menuLabel,\n anchor,\n ...coords,\n fixedTo,\n visible,\n onRequestClose,\n preventScroll,\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n setCoords({\n initialX: event.clientX,\n initialY: event.clientY,\n });\n setVisible(true);\n },\n };\n}\n"],"names":["useCallback","useRef","useState","BELOW_INNER_LEFT_ANCHOR","noop","useContextMenu","options","anchor","menuLabel","onContextMenu","preventScroll","coords","setCoords","visible","setVisible","fixedTo","onRequestClose","menuProps","event","isPropagationStopped","preventDefault","stopPropagation","initialX","clientX","initialY","clientY"],"mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AAqDtE,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,GACD,OAAO,SAASC,eACdC,UAAkC,CAAC,CAAC;IAEpC,MAAM,EACJC,SAASJ,uBAAuB,EAChCK,YAAY,cAAc,EAC1BC,gBAAgBL,IAAI,EACpBM,gBAAgB,IAAI,EACrB,GAAGJ;IACJ,MAAM,CAACK,QAAQC,UAAU,GAAGV,SAAwB,CAAC;IACrD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IACvC,MAAMa,UAAUd,OAAoB;IACpC,MAAMe,iBAAiBhB,YAAY;QACjCc,WAAW;IACb,GAAG,EAAE;IAEL,OAAO;QACLD;QACAC;QACAG,WAAW;YACT,cAAcT;YACdD;YACA,GAAGI,MAAM;YACTI;YACAF;YACAG;YACAN;QACF;QACAD,eAAcS,KAAK;YACjBT,cAAcS;YACd,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YACrBT,UAAU;gBACRU,UAAUJ,MAAMK,OAAO;gBACvBC,UAAUN,MAAMO,OAAO;YACzB;YACAX,WAAW;QACb;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/menu/useContextMenu.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent, RefObject } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { BELOW_INNER_LEFT_ANCHOR } from \"../positioning/constants.js\";\nimport type { InitialCoords, PositionAnchor } from \"../positioning/types.js\";\nimport type { UseStateObject } from \"../types.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ContextMenuProps extends InitialCoords {\n \"aria-label\": string;\n anchor: PositionAnchor;\n fixedTo: RefObject<HTMLElement>;\n visible: boolean;\n preventScroll: boolean;\n onRequestClose(): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Dropped most options since they are no longer required for the\n * context menu to work. Apply any `Menu` props directly to the `Menu` component\n * instead.\n */\nexport interface ContextMenuHookOptions {\n /**\n * @defaultValue `BELOW_INNER_LEFT_ANCHOR`\n * @see {@link BELOW_INNER_LEFT_ANCHOR}\n */\n anchor?: PositionAnchor;\n\n /**\n * @defaultValue `\"Context Menu\"`\n */\n menuLabel?: string;\n\n /**\n * @defaultValue `true`\n */\n preventScroll?: boolean;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Renamed from `ContextMenuHookReturnValue` to\n * `ContextMenuImplementation` and dropped the `menuRef` and `menuNodeRef`\n * fields.\n */\nexport interface ContextMenuImplementation\n extends UseStateObject<\"visible\", boolean> {\n menuProps: ContextMenuProps;\n onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook controls the visibility and positioning for a context menu.\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import [ Menu, MenuItem, useContextMenu ] from \"@react-md/core\":\n *\n * function Example(): ReactElement {\n * const { menuProps, onContextMenu } = useContextMenu();\n *\n * return (\n * <>\n * <textarea onContextMenu={onContextMenu} />\n * <Menu {...menuProps}>\n * <MenuItem>Cut</MenuItem>\n * <MenuItem>Copy</MenuItem>\n * <MenuItem>Paste</MenuItem>\n * <MenuItem>Undo</MenuItem>\n * </Menu>\n * </>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 No longer supports overriding most of the `Menu` props. The\n * props must be passed to the `Menu` component manually.\n */\nexport function useContextMenu(\n options: ContextMenuHookOptions = {}\n): ContextMenuImplementation {\n const {\n anchor = BELOW_INNER_LEFT_ANCHOR,\n menuLabel = \"Context Menu\",\n onContextMenu = noop,\n preventScroll = true,\n } = options;\n const [coords, setCoords] = useState<InitialCoords>({});\n const [visible, setVisible] = useState(false);\n const fixedTo = useRef<HTMLElement>(null);\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, []);\n\n return {\n visible,\n setVisible,\n menuProps: {\n \"aria-label\": menuLabel,\n anchor,\n ...coords,\n fixedTo,\n visible,\n onRequestClose,\n preventScroll,\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n setCoords({\n initialX: event.clientX,\n initialY: event.clientY,\n });\n setVisible(true);\n },\n };\n}\n"],"names":["useCallback","useRef","useState","BELOW_INNER_LEFT_ANCHOR","noop","useContextMenu","options","anchor","menuLabel","onContextMenu","preventScroll","coords","setCoords","visible","setVisible","fixedTo","onRequestClose","menuProps","event","isPropagationStopped","preventDefault","stopPropagation","initialX","clientX","initialY","clientY"],"mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AAqDtE,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,GACD,OAAO,SAASC,eACdC,UAAkC,CAAC,CAAC;IAEpC,MAAM,EACJC,SAASJ,uBAAuB,EAChCK,YAAY,cAAc,EAC1BC,gBAAgBL,IAAI,EACpBM,gBAAgB,IAAI,EACrB,GAAGJ;IACJ,MAAM,CAACK,QAAQC,UAAU,GAAGV,SAAwB,CAAC;IACrD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IACvC,MAAMa,UAAUd,OAAoB;IACpC,MAAMe,iBAAiBhB,YAAY;QACjCc,WAAW;IACb,GAAG,EAAE;IAEL,OAAO;QACLD;QACAC;QACAG,WAAW;YACT,cAAcT;YACdD;YACA,GAAGI,MAAM;YACTI;YACAF;YACAG;YACAN;QACF;QACAD,eAAcS,KAAK;YACjBT,cAAcS;YACd,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YACrBT,UAAU;gBACRU,UAAUJ,MAAMK,OAAO;gBACvBC,UAAUN,MAAMO,OAAO;YACzB;YACAX,WAAW;QACb;IACF;AACF"}
@@ -17,6 +17,23 @@ import type { NonNullMutableRef, NonNullRef, UseStateSetter } from "../types.js"
17
17
  * @remarks \@since 6.0.0
18
18
  */
19
19
  export type TabIndexBehavior = "roving" | "virtual";
20
+ /**
21
+ * This should be used for specific widgets that should not include all
22
+ * focusable elements and instead only specific elements.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const getExpansionPanelsOnly: GetFocusableElements = (container) =>
27
+ * [...container.querySelectorAll(".rmd-expansion-panel__button")];
28
+ *
29
+ * const getTreeItemsOnly: GetFocusableElements = (container) =>
30
+ * [...container.querySelectorAll("[role='treeitem']")];
31
+ * ```
32
+ *
33
+ * @defaultValue `getFocusableElements`
34
+ * @see the default `getFocusableElements` function.
35
+ */
36
+ export type GetFocusableElements = (container: HTMLElement, programmatic: boolean) => readonly HTMLElement[];
20
37
  /**
21
38
  * @remarks \@since 5.0.0
22
39
  */
@@ -126,7 +143,12 @@ export type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;
126
143
  * @remarks \@since 6.0.0
127
144
  * @internal
128
145
  */
129
- export interface FocusChangeEvent {
146
+ export type ExtendKeyDown<E extends HTMLElement> = (movementData: KeyboardMovementExtensionData<E>) => void;
147
+ /**
148
+ * @remarks \@since 6.0.0
149
+ * @internal
150
+ */
151
+ export interface KeyboardMovementFocusChangeEvent {
130
152
  index: number;
131
153
  element: HTMLElement;
132
154
  }
@@ -134,7 +156,7 @@ export interface FocusChangeEvent {
134
156
  * @remarks \@since 6.0.0
135
157
  * @internal
136
158
  */
137
- export type KeyboardMovementFocusChangeEvent = (event: FocusChangeEvent) => void;
159
+ export type KeyboardMovementFocusChangeEventHandler = (event: KeyboardMovementFocusChangeEvent) => void;
138
160
  /**
139
161
  * @remarks \@since 6.0.0
140
162
  * @internal
@@ -155,14 +177,16 @@ export interface KeyboardMovementProviderOptions<E extends HTMLElement> extends
155
177
  onClick?(event: MouseEvent<E>): void;
156
178
  onFocus?(event: FocusEvent<E>): void;
157
179
  onKeyDown?(event: KeyboardEvent<E>): void;
180
+ /** @defaultValue `false` */
181
+ disabled?: boolean;
158
182
  /**
159
183
  * This is used to implement custom keyboard movement for the `keydown` event.
160
184
  */
161
- extendKeyDown?(movementData: KeyboardMovementExtensionData<E>): void;
185
+ extendKeyDown?: ExtendKeyDown<E>;
162
186
  /**
163
187
  * Triggered whenever the focus changes.
164
188
  */
165
- onFocusChange?: KeyboardMovementFocusChangeEvent;
189
+ onFocusChange?: KeyboardMovementFocusChangeEventHandler;
166
190
  /**
167
191
  * From what I've understood so far, programmatically focusable elements
168
192
  * should only be included when disabled elements via `aria-disabled` are
@@ -171,28 +195,22 @@ export interface KeyboardMovementProviderOptions<E extends HTMLElement> extends
171
195
  * @defaultValue `includeDisabled`
172
196
  */
173
197
  programmatic?: boolean;
174
- /**
175
- * This should be used for specific widgets that should not include all
176
- * focusable elements and instead only specific elements.
177
- *
178
- * @example
179
- * ```ts
180
- * const getExpansionPanelsOnly = (container: HTMLElement): readonly HTMLElement[] =>
181
- * container.querySelectorAll(".rmd-expansion-panel__button");
182
- *
183
- * const getTreeItemsOnly = (container: HTMLElement): readonly HTMLElement[] =>
184
- * container.querySelectorAll("[role='treeitem']");
185
- * ```
186
- *
187
- * @defaultValue `getFocusableElements`
188
- * @see the default `getFocusableElements` function.
189
- */
190
- getFocusableElements?(container: HTMLElement, programmatic: boolean): readonly HTMLElement[];
198
+ /** @see {@link GetFocusableElements} */
199
+ getFocusableElements?: GetFocusableElements;
191
200
  /**
192
201
  * This can be used to set the initial focus index whenever the container
193
202
  * element is first focused or the focus index is `-1` on other focus events.
194
203
  */
195
204
  getDefaultFocusedIndex?: GetDefaultFocusedIndex;
205
+ /**
206
+ * This was added to support editable combobox behavior. As the user types or
207
+ * uses native input keyboard behavior, the focus index should be reset to
208
+ * `-1` so that the next "ArrowDown" event focuses the first option again
209
+ * instead of the last selected one.
210
+ *
211
+ * @defaultValue `false`
212
+ */
213
+ isNegativeOneAllowed?: boolean;
196
214
  }
197
215
  /**
198
216
  * @remarks \@since 6.0.0
@@ -226,5 +244,6 @@ export interface KeyboardMovementProviderImplementation<E extends HTMLElement> {
226
244
  movementProps: Readonly<KeyboardMovementProps<E>>;
227
245
  movementContext: Readonly<KeyboardMovementContext>;
228
246
  currentFocusIndex: NonNullMutableRef<number>;
247
+ activeDescendantId: string;
229
248
  setActiveDescendantId: UseStateSetter<string>;
230
249
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/types.ts"],"sourcesContent":["import type {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n} from \"react\";\nimport type {\n NonNullMutableRef,\n NonNullRef,\n UseStateSetter,\n} from \"../types.js\";\n\n/**\n * Set this to `\"roving\"` when:\n * - there are a group of focusable elements that have a `tabIndex={-1}`\n * - the container element defaults to having a `tabIndex={0}`\n * - if the container is focused, it should no longer be included in the normal\n * tab flow. Instead, the current focused element should be included instead\n * by changing its `tabIndex` from `-1` to `0`\n *\n * Set this to `\"virtual\"` when:\n * - the container element should never lose focus\n * - the \"focused\" element only gains focus styles instead of being focused\n * - the container element specifies an `aria-activedescendant` pointing to one\n * of the ids for the child \"focusable\" elements\n *\n * @remarks \\@since 6.0.0\n */\nexport type TabIndexBehavior = \"roving\" | \"virtual\";\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface KeyboardMovementConfiguration {\n /**\n * A list of keys that will attempt to increment the focus index by 1.\n *\n * @defaultValue `[\"ArrowDown\"]`\n */\n incrementKeys?: readonly string[];\n\n /**\n * A list of keys that will attempt to decrement the focus index by 1.\n *\n * @defaultValue `[\"ArrowUp\"]`\n */\n decrementKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to `0`.\n *\n * @defaultValue `[\"Home\"]`\n */\n jumpToFirstKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to the last focusable index.\n *\n * @defaultValue `[\"End\"]`\n */\n jumpToLastKeys?: readonly string[];\n}\n\n/**\n * The defined {@link KeyboardMovementConfiguration} that should be used for\n * custom keyboard focus behavior.\n *\n * @remarks \\@since 5.0.0\n */\nexport type KeyboardMovementConfig = Required<KeyboardMovementConfiguration>;\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface KeyboardMovementBehavior {\n /**\n * Boolean if pressing a letter will focus the next item in the\n * {@link KeyboardMovementProvider} that starts with the same letter.\n *\n * @defaultValue `false`\n */\n searchable?: boolean;\n\n /**\n * Boolean if the {@link KeyboardMovementProvider} should allow the focus behavior\n * to loop from the first to last or last to first item instead of preventing\n * any new focus behavior. In other words... if the last item is focused and\n * the user presses a key that should advance the focus to the next focusable\n * element, should the focus stay on the current element or loop back and\n * focus the first focusable item.\n *\n * @defaultValue `false`\n */\n loopable?: boolean;\n\n /**\n * Boolean if elements that are `aria-disabled` or `disabled` should still be\n * able to gain focus.\n *\n * @defaultValue `false`\n */\n includeDisabled?: boolean;\n\n /**\n * Boolean if the keyboard movement is horizontal instead of vertical. This\n * updates the default keyboard config to use `ArrowRight` and `ArrowLeft`\n * instead of `ArrowDown` and `ArrowUp`,\n *\n * @remarks \\@since 5.1.2\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Removed `attach`, `detach` and `watching`\n * @internal\n */\nexport interface KeyboardMovementContext\n extends Required<KeyboardMovementBehavior> {\n /** {@inheritDoc KeyboardMovementConfig} */\n config: NonNullRef<KeyboardMovementConfig>;\n\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior: TabIndexBehavior | undefined;\n\n /**\n * Note: This will only update if the {@link KeyboardMovementProviderOptions.tabIndexBehavior}\n * has been set to `\"roving\"` or `\"virtual\"`.\n */\n activeDescendantId: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface FocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface FocusChangeEvent {\n index: number;\n element: HTMLElement;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type KeyboardMovementFocusChangeEvent = (\n event: FocusChangeEvent\n) => void;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementExtensionData<E extends HTMLElement>\n extends KeyboardMovementContext {\n event: KeyboardEvent<E>;\n currentFocusIndex: NonNullMutableRef<number>;\n setFocusIndex(index: number, focusables: readonly HTMLElement[]): void;\n setActiveDescendantId(id: string): void;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderOptions<E extends HTMLElement>\n extends KeyboardMovementBehavior,\n KeyboardMovementConfiguration {\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior?: TabIndexBehavior;\n\n onClick?(event: MouseEvent<E>): void;\n onFocus?(event: FocusEvent<E>): void;\n onKeyDown?(event: KeyboardEvent<E>): void;\n\n /**\n * This is used to implement custom keyboard movement for the `keydown` event.\n */\n extendKeyDown?(movementData: KeyboardMovementExtensionData<E>): void;\n\n /**\n * Triggered whenever the focus changes.\n */\n onFocusChange?: KeyboardMovementFocusChangeEvent;\n\n /**\n * From what I've understood so far, programmatically focusable elements\n * should only be included when disabled elements via `aria-disabled` are\n * allowed.\n *\n * @defaultValue `includeDisabled`\n */\n programmatic?: boolean;\n\n /**\n * This should be used for specific widgets that should not include all\n * focusable elements and instead only specific elements.\n *\n * @example\n * ```ts\n * const getExpansionPanelsOnly = (container: HTMLElement): readonly HTMLElement[] =>\n * container.querySelectorAll(\".rmd-expansion-panel__button\");\n *\n * const getTreeItemsOnly = (container: HTMLElement): readonly HTMLElement[] =>\n * container.querySelectorAll(\"[role='treeitem']\");\n * ```\n *\n * @defaultValue `getFocusableElements`\n * @see the default `getFocusableElements` function.\n */\n getFocusableElements?(\n container: HTMLElement,\n programmatic: boolean\n ): readonly HTMLElement[];\n\n /**\n * This can be used to set the initial focus index whenever the container\n * element is first focused or the focus index is `-1` on other focus events.\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProps<E extends HTMLElement> {\n /**\n * This will only be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is set to `\"virtual\"`.\n */\n \"aria-activedescendant\"?: string;\n\n /**\n * This will not be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is `undefined`. Otherwise:\n * - `0` when `\"virtual\"`\n * - `0` when `\"roving\"` and the container element has not been focused at\n * least once\n * - `-1` when `\"roving\"` and the container has been focused at least once\n * - a child element **should** have a `tabIndex={0}` instead\n */\n tabIndex?: number;\n onClick: MouseEventHandler<E>;\n onFocus: FocusEventHandler<E>;\n onKeyDown: KeyboardEventHandler<E>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderImplementation<E extends HTMLElement> {\n movementProps: Readonly<KeyboardMovementProps<E>>;\n movementContext: Readonly<KeyboardMovementContext>;\n currentFocusIndex: NonNullMutableRef<number>;\n setActiveDescendantId: UseStateSetter<string>;\n}\n"],"names":[],"mappings":"AA4QA;;;CAGC,GACD,WAKC"}
1
+ {"version":3,"sources":["../../src/movement/types.ts"],"sourcesContent":["import type {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n} from \"react\";\nimport type {\n NonNullMutableRef,\n NonNullRef,\n UseStateSetter,\n} from \"../types.js\";\n\n/**\n * Set this to `\"roving\"` when:\n * - there are a group of focusable elements that have a `tabIndex={-1}`\n * - the container element defaults to having a `tabIndex={0}`\n * - if the container is focused, it should no longer be included in the normal\n * tab flow. Instead, the current focused element should be included instead\n * by changing its `tabIndex` from `-1` to `0`\n *\n * Set this to `\"virtual\"` when:\n * - the container element should never lose focus\n * - the \"focused\" element only gains focus styles instead of being focused\n * - the container element specifies an `aria-activedescendant` pointing to one\n * of the ids for the child \"focusable\" elements\n *\n * @remarks \\@since 6.0.0\n */\nexport type TabIndexBehavior = \"roving\" | \"virtual\";\n\n/**\n * This should be used for specific widgets that should not include all\n * focusable elements and instead only specific elements.\n *\n * @example\n * ```ts\n * const getExpansionPanelsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\".rmd-expansion-panel__button\")];\n *\n * const getTreeItemsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\"[role='treeitem']\")];\n * ```\n *\n * @defaultValue `getFocusableElements`\n * @see the default `getFocusableElements` function.\n */\nexport type GetFocusableElements = (\n container: HTMLElement,\n programmatic: boolean\n) => readonly HTMLElement[];\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface KeyboardMovementConfiguration {\n /**\n * A list of keys that will attempt to increment the focus index by 1.\n *\n * @defaultValue `[\"ArrowDown\"]`\n */\n incrementKeys?: readonly string[];\n\n /**\n * A list of keys that will attempt to decrement the focus index by 1.\n *\n * @defaultValue `[\"ArrowUp\"]`\n */\n decrementKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to `0`.\n *\n * @defaultValue `[\"Home\"]`\n */\n jumpToFirstKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to the last focusable index.\n *\n * @defaultValue `[\"End\"]`\n */\n jumpToLastKeys?: readonly string[];\n}\n\n/**\n * The defined {@link KeyboardMovementConfiguration} that should be used for\n * custom keyboard focus behavior.\n *\n * @remarks \\@since 5.0.0\n */\nexport type KeyboardMovementConfig = Required<KeyboardMovementConfiguration>;\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface KeyboardMovementBehavior {\n /**\n * Boolean if pressing a letter will focus the next item in the\n * {@link KeyboardMovementProvider} that starts with the same letter.\n *\n * @defaultValue `false`\n */\n searchable?: boolean;\n\n /**\n * Boolean if the {@link KeyboardMovementProvider} should allow the focus behavior\n * to loop from the first to last or last to first item instead of preventing\n * any new focus behavior. In other words... if the last item is focused and\n * the user presses a key that should advance the focus to the next focusable\n * element, should the focus stay on the current element or loop back and\n * focus the first focusable item.\n *\n * @defaultValue `false`\n */\n loopable?: boolean;\n\n /**\n * Boolean if elements that are `aria-disabled` or `disabled` should still be\n * able to gain focus.\n *\n * @defaultValue `false`\n */\n includeDisabled?: boolean;\n\n /**\n * Boolean if the keyboard movement is horizontal instead of vertical. This\n * updates the default keyboard config to use `ArrowRight` and `ArrowLeft`\n * instead of `ArrowDown` and `ArrowUp`,\n *\n * @remarks \\@since 5.1.2\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Removed `attach`, `detach` and `watching`\n * @internal\n */\nexport interface KeyboardMovementContext\n extends Required<KeyboardMovementBehavior> {\n /** {@inheritDoc KeyboardMovementConfig} */\n config: NonNullRef<KeyboardMovementConfig>;\n\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior: TabIndexBehavior | undefined;\n\n /**\n * Note: This will only update if the {@link KeyboardMovementProviderOptions.tabIndexBehavior}\n * has been set to `\"roving\"` or `\"virtual\"`.\n */\n activeDescendantId: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface FocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type ExtendKeyDown<E extends HTMLElement> = (\n movementData: KeyboardMovementExtensionData<E>\n) => void;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementFocusChangeEvent {\n index: number;\n element: HTMLElement;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport type KeyboardMovementFocusChangeEventHandler = (\n event: KeyboardMovementFocusChangeEvent\n) => void;\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementExtensionData<E extends HTMLElement>\n extends KeyboardMovementContext {\n event: KeyboardEvent<E>;\n currentFocusIndex: NonNullMutableRef<number>;\n setFocusIndex(index: number, focusables: readonly HTMLElement[]): void;\n setActiveDescendantId(id: string): void;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderOptions<E extends HTMLElement>\n extends KeyboardMovementBehavior,\n KeyboardMovementConfiguration {\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior?: TabIndexBehavior;\n\n onClick?(event: MouseEvent<E>): void;\n onFocus?(event: FocusEvent<E>): void;\n onKeyDown?(event: KeyboardEvent<E>): void;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * This is used to implement custom keyboard movement for the `keydown` event.\n */\n extendKeyDown?: ExtendKeyDown<E>;\n\n /**\n * Triggered whenever the focus changes.\n */\n onFocusChange?: KeyboardMovementFocusChangeEventHandler;\n\n /**\n * From what I've understood so far, programmatically focusable elements\n * should only be included when disabled elements via `aria-disabled` are\n * allowed.\n *\n * @defaultValue `includeDisabled`\n */\n programmatic?: boolean;\n\n /** @see {@link GetFocusableElements} */\n getFocusableElements?: GetFocusableElements;\n\n /**\n * This can be used to set the initial focus index whenever the container\n * element is first focused or the focus index is `-1` on other focus events.\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * This was added to support editable combobox behavior. As the user types or\n * uses native input keyboard behavior, the focus index should be reset to\n * `-1` so that the next \"ArrowDown\" event focuses the first option again\n * instead of the last selected one.\n *\n * @defaultValue `false`\n */\n isNegativeOneAllowed?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProps<E extends HTMLElement> {\n /**\n * This will only be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is set to `\"virtual\"`.\n */\n \"aria-activedescendant\"?: string;\n\n /**\n * This will not be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is `undefined`. Otherwise:\n * - `0` when `\"virtual\"`\n * - `0` when `\"roving\"` and the container element has not been focused at\n * least once\n * - `-1` when `\"roving\"` and the container has been focused at least once\n * - a child element **should** have a `tabIndex={0}` instead\n */\n tabIndex?: number;\n onClick: MouseEventHandler<E>;\n onFocus: FocusEventHandler<E>;\n onKeyDown: KeyboardEventHandler<E>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderImplementation<E extends HTMLElement> {\n movementProps: Readonly<KeyboardMovementProps<E>>;\n movementContext: Readonly<KeyboardMovementContext>;\n currentFocusIndex: NonNullMutableRef<number>;\n activeDescendantId: string;\n setActiveDescendantId: UseStateSetter<string>;\n}\n"],"names":[],"mappings":"AAoSA;;;CAGC,GACD,WAMC"}
@@ -157,7 +157,7 @@ const returnNegative1 = ()=>-1;
157
157
  * @remarks \@since 6.0.0
158
158
  * @internal
159
159
  */ export function useKeyboardMovementProvider(options = {}) {
160
- const { onClick = noop, onFocus = noop, onKeyDown = noop, loopable = false, searchable = false, horizontal = false, includeDisabled = false, tabIndexBehavior, extendKeyDown = noop, onFocusChange = noop, programmatic = includeDisabled, incrementKeys: propIncrementKeys, decrementKeys: propDecrementKeys, jumpToFirstKeys: propJumpToFirstKeys, jumpToLastKeys: propJumpToLastKeys, getFocusableElements = defaultGetFocusableElements, getDefaultFocusedIndex = returnNegative1 } = options;
160
+ const { onClick = noop, onFocus = noop, onKeyDown = noop, loopable = false, disabled, searchable = false, horizontal = false, includeDisabled = false, tabIndexBehavior, extendKeyDown = noop, onFocusChange = noop, programmatic = includeDisabled, incrementKeys: propIncrementKeys, decrementKeys: propDecrementKeys, jumpToFirstKeys: propJumpToFirstKeys, jumpToLastKeys: propJumpToLastKeys, getFocusableElements = defaultGetFocusableElements, getDefaultFocusedIndex = returnNegative1, isNegativeOneAllowed = false } = options;
161
161
  const isRTL = useDir().dir === "rtl";
162
162
  let defaults;
163
163
  if (horizontal) {
@@ -208,14 +208,21 @@ const returnNegative1 = ()=>-1;
208
208
  };
209
209
  }, []);
210
210
  }
211
+ let tabIndex;
212
+ if (tabIndexBehavior) {
213
+ tabIndex = disabled || tabIndexBehavior === "roving" && activeDescendantId ? -1 : 0;
214
+ }
211
215
  return {
212
216
  movementProps: {
213
217
  "aria-activedescendant": tabIndexBehavior === "virtual" ? activeDescendantId : undefined,
214
- tabIndex: tabIndexBehavior === "roving" ? activeDescendantId ? -1 : 0 : undefined,
218
+ tabIndex,
215
219
  // Note: This used to be on the `onFocus` event, but this causes issues in
216
220
  // Chromium browsers for drag and drop behavior
217
221
  onClick (event) {
218
222
  onClick(event);
223
+ if (disabled) {
224
+ return;
225
+ }
219
226
  // This makes it so you can click an element with a mouse and then
220
227
  // keyboard navigate from that element instead of the last keyboard focus
221
228
  // element
@@ -264,7 +271,7 @@ const returnNegative1 = ()=>-1;
264
271
  // This allows my custom `getDefaultFocusedIndex` implementations to
265
272
  // have a nice fallback without having to re-implement the "focus
266
273
  // first" behavior
267
- if (defaultFocusIndex === -1) {
274
+ if (!isNegativeOneAllowed && defaultFocusIndex === -1) {
268
275
  if (tabIndexBehavior === "virtual") {
269
276
  // virtual keyboard navigation **must** always focus at least one element
270
277
  defaultFocusIndex = getVirtualFocusDefaultIndex({
@@ -301,6 +308,9 @@ const returnNegative1 = ()=>-1;
301
308
  },
302
309
  onKeyDown (event) {
303
310
  onKeyDown(event);
311
+ if (disabled) {
312
+ return;
313
+ }
304
314
  const { currentTarget } = event;
305
315
  const setFocusIndex = (index, focusables)=>{
306
316
  event.preventDefault();
@@ -338,7 +348,7 @@ const returnNegative1 = ()=>-1;
338
348
  // TODO: Figure this part out. This is currently required for the tree
339
349
  // movement when the asterisk key is pressed. There might be other cases
340
350
  // as well.
341
- if (currentFocusIndex.current === -1) {
351
+ if (!isNegativeOneAllowed && currentFocusIndex.current === -1) {
342
352
  currentFocusIndex.current = recalculateFocusIndex({
343
353
  focusables: getFocusableElements(currentTarget, programmatic),
344
354
  includeDisabled,
@@ -403,6 +413,7 @@ const returnNegative1 = ()=>-1;
403
413
  },
404
414
  movementContext,
405
415
  currentFocusIndex,
416
+ activeDescendantId,
406
417
  setActiveDescendantId
407
418
  };
408
419
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/useKeyboardMovementProvider.ts"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getFocusableElements as defaultGetFocusableElements } from \"../focus/utils.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport {\n DEFAULT_KEYBOARD_MOVEMENT,\n DEFAULT_LTR_KEYBOARD_MOVEMENT,\n DEFAULT_RTL_KEYBOARD_MOVEMENT,\n} from \"./constants.js\";\nimport { findMatchIndex } from \"./findMatchIndex.js\";\nimport type {\n KeyboardMovementConfig,\n KeyboardMovementConfiguration,\n KeyboardMovementContext,\n KeyboardMovementProviderImplementation,\n KeyboardMovementProviderOptions,\n} from \"./types.js\";\nimport {\n getFirstFocusableIndex,\n getLastFocusableIndex,\n getNextFocusableIndex,\n getSearchText,\n getVirtualFocusDefaultIndex,\n isElementDisabled,\n isNotFocusable,\n isSearchableEvent,\n recalculateFocusIndex,\n} from \"./utils.js\";\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nconst context = createContext<KeyboardMovementContext>({\n config: { current: DEFAULT_KEYBOARD_MOVEMENT },\n loopable: false,\n searchable: false,\n horizontal: false,\n includeDisabled: false,\n tabIndexBehavior: undefined,\n activeDescendantId: \"\",\n});\ncontext.displayName = \"KeyboardMovement\";\nexport const { Provider: KeyboardMovementProvider } = context;\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport function useKeyboardMovementContext(): Readonly<KeyboardMovementContext> {\n return useContext(context);\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\nconst returnNegative1 = (): number => -1;\n\n/**\n * Implements the custom keyboard movement behavior throughout react-md. Using\n * the \"Find References\" will be the best way to see example usage.\n *\n * @example\n * Default Keyboard Movement for any Focusable Element\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider();\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * {children}\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example\n * Active Descendant Movement\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * className={cnb(id === activeDescendantId && \"focused-class-name\")}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"virtual\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example\n * Roving Tab Index\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"roving\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport function useKeyboardMovementProvider<E extends HTMLElement>(\n options: KeyboardMovementProviderOptions<E> = {}\n): KeyboardMovementProviderImplementation<E> {\n const {\n onClick = noop,\n onFocus = noop,\n onKeyDown = noop,\n loopable = false,\n searchable = false,\n horizontal = false,\n includeDisabled = false,\n tabIndexBehavior,\n extendKeyDown = noop,\n onFocusChange = noop,\n programmatic = includeDisabled,\n incrementKeys: propIncrementKeys,\n decrementKeys: propDecrementKeys,\n jumpToFirstKeys: propJumpToFirstKeys,\n jumpToLastKeys: propJumpToLastKeys,\n getFocusableElements = defaultGetFocusableElements,\n getDefaultFocusedIndex = returnNegative1,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n let defaults: Readonly<Required<KeyboardMovementConfiguration>>;\n if (horizontal) {\n defaults = isRTL\n ? DEFAULT_RTL_KEYBOARD_MOVEMENT\n : DEFAULT_LTR_KEYBOARD_MOVEMENT;\n } else {\n defaults = DEFAULT_KEYBOARD_MOVEMENT;\n }\n\n const incrementKeys = propIncrementKeys || defaults.incrementKeys;\n const decrementKeys = propDecrementKeys || defaults.decrementKeys;\n const jumpToFirstKeys = propJumpToFirstKeys || defaults.jumpToFirstKeys;\n const jumpToLastKeys = propJumpToLastKeys || defaults.jumpToLastKeys;\n\n const configuration: KeyboardMovementConfig = {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n };\n const config = useRef(configuration);\n useIsomorphicLayoutEffect(() => {\n config.current = configuration;\n });\n\n const [activeDescendantId, setActiveDescendantId] = useState(\"\");\n const movementContext = useMemo<KeyboardMovementContext>(\n () => ({\n config,\n loopable,\n searchable,\n horizontal,\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n }),\n [\n activeDescendantId,\n horizontal,\n includeDisabled,\n loopable,\n searchable,\n tabIndexBehavior,\n ]\n );\n const currentFocusIndex = useRef(-1);\n const mode = useUserInteractionMode();\n const refocus = useRef(false);\n\n if (process.env.NODE_ENV !== \"production\") {\n // this fixes issues during hot reloading and using the `useId()` hook\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n return () => {\n setActiveDescendantId(\"\");\n };\n }, []);\n }\n\n return {\n movementProps: {\n \"aria-activedescendant\":\n tabIndexBehavior === \"virtual\" ? activeDescendantId : undefined,\n tabIndex:\n tabIndexBehavior === \"roving\"\n ? activeDescendantId\n ? -1\n : 0\n : undefined,\n\n // Note: This used to be on the `onFocus` event, but this causes issues in\n // Chromium browsers for drag and drop behavior\n onClick(event) {\n onClick(event);\n\n // This makes it so you can click an element with a mouse and then\n // keyboard navigate from that element instead of the last keyboard focus\n // element\n const { currentTarget, target } = event;\n if (target === currentTarget || !(target instanceof HTMLElement)) {\n return;\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const focusedIndex = focusables.findIndex(\n (element) => element === target || element.contains(target)\n );\n if (focusedIndex === -1 || !focusables.length) {\n return;\n }\n\n currentFocusIndex.current = focusedIndex;\n const focused = focusables[focusedIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n // need to force focus back to the container element when using\n // aria activedescendant\n if (tabIndexBehavior === \"virtual\") {\n refocus.current = true;\n currentTarget.focus();\n }\n\n onFocusChange({\n index: focusedIndex,\n element: focused,\n });\n },\n onFocus(event) {\n onFocus(event);\n if (event.isPropagationStopped() || refocus.current) {\n refocus.current = false;\n return;\n }\n\n if (\n (mode !== \"keyboard\" && tabIndexBehavior !== \"virtual\") ||\n event.target !== event.currentTarget\n ) {\n return;\n }\n\n const focusables = getFocusableElements(\n event.currentTarget,\n programmatic\n );\n if (!focusables.length) {\n return;\n }\n\n let defaultFocusIndex = getDefaultFocusedIndex({\n focusables,\n includeDisabled,\n });\n\n // This allows my custom `getDefaultFocusedIndex` implementations to\n // have a nice fallback without having to re-implement the \"focus\n // first\" behavior\n if (defaultFocusIndex === -1) {\n if (tabIndexBehavior === \"virtual\") {\n // virtual keyboard navigation **must** always focus at least one element\n defaultFocusIndex = getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n } else {\n defaultFocusIndex = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n }\n }\n\n if (defaultFocusIndex === -1) {\n return;\n }\n\n currentFocusIndex.current = defaultFocusIndex;\n const focused = focusables[defaultFocusIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n } else {\n focused.scrollIntoView({ block: \"nearest\" });\n }\n\n onFocusChange({\n index: defaultFocusIndex,\n element: focused,\n });\n },\n onKeyDown(event) {\n onKeyDown(event);\n const { currentTarget } = event;\n\n const setFocusIndex = (\n index: number,\n focusables: readonly HTMLElement[]\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n if (currentFocusIndex.current === index || index === -1) {\n return;\n }\n\n currentFocusIndex.current = index;\n const focused = focusables[index];\n if (tabIndexBehavior) {\n focused.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n }\n\n onFocusChange({\n index,\n element: focused,\n });\n };\n\n extendKeyDown({\n event,\n setFocusIndex,\n currentFocusIndex,\n setActiveDescendantId,\n ...movementContext,\n });\n\n if (event.isPropagationStopped()) {\n return;\n }\n\n // TODO: Figure this part out. This is currently required for the tree\n // movement when the asterisk key is pressed. There might be other cases\n // as well.\n if (currentFocusIndex.current === -1) {\n currentFocusIndex.current = recalculateFocusIndex({\n focusables: getFocusableElements(currentTarget, programmatic),\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n });\n }\n\n const { key, shiftKey } = event;\n if (\n tabIndexBehavior === \"virtual\" &&\n activeDescendantId &&\n (key === \" \" || key === \"Enter\")\n ) {\n if (key === \" \") {\n event.preventDefault();\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const activeElement = focusables[currentFocusIndex.current];\n if (!activeElement || isElementDisabled(activeElement)) {\n return;\n }\n\n activeElement.click();\n return;\n }\n\n const {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n } = config.current;\n\n if (searchable && isSearchableEvent(event)) {\n const focusables = getFocusableElements(currentTarget, programmatic);\n const index = findMatchIndex({\n value: key,\n values: focusables.map((element) =>\n getSearchText(element, !isNotFocusable(element, includeDisabled))\n ),\n startIndex: shiftKey ? -1 : currentFocusIndex.current,\n });\n setFocusIndex(index, focusables);\n return;\n }\n\n const jumpToFirst = jumpToFirstKeys.includes(key);\n const jumpToLast = !jumpToFirst && jumpToLastKeys.includes(key);\n const increment =\n !jumpToFirst && !jumpToLast && incrementKeys.includes(key);\n const decrement =\n !jumpToFirst &&\n !jumpToLast &&\n !increment &&\n decrementKeys.includes(key);\n\n if (!jumpToFirst && !jumpToLast && !increment && !decrement) {\n return;\n }\n const focusables = getFocusableElements(currentTarget, programmatic);\n\n let index: number;\n if (jumpToFirst) {\n index = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else if (jumpToLast) {\n index = getLastFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else {\n index = getNextFocusableIndex({\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex: currentFocusIndex.current,\n });\n }\n\n setFocusIndex(index, focusables);\n },\n },\n movementContext,\n currentFocusIndex,\n setActiveDescendantId,\n };\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","getFocusableElements","defaultGetFocusableElements","useUserInteractionMode","useDir","useIsomorphicLayoutEffect","DEFAULT_KEYBOARD_MOVEMENT","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT","findMatchIndex","getFirstFocusableIndex","getLastFocusableIndex","getNextFocusableIndex","getSearchText","getVirtualFocusDefaultIndex","isElementDisabled","isNotFocusable","isSearchableEvent","recalculateFocusIndex","context","config","current","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","undefined","activeDescendantId","displayName","Provider","KeyboardMovementProvider","useKeyboardMovementContext","noop","returnNegative1","useKeyboardMovementProvider","options","onClick","onFocus","onKeyDown","extendKeyDown","onFocusChange","programmatic","incrementKeys","propIncrementKeys","decrementKeys","propDecrementKeys","jumpToFirstKeys","propJumpToFirstKeys","jumpToLastKeys","propJumpToLastKeys","getDefaultFocusedIndex","isRTL","dir","defaults","configuration","setActiveDescendantId","movementContext","currentFocusIndex","mode","refocus","process","env","NODE_ENV","movementProps","tabIndex","event","currentTarget","target","HTMLElement","focusables","focusedIndex","findIndex","element","contains","length","focused","id","focus","index","isPropagationStopped","defaultFocusIndex","scrollIntoView","block","setFocusIndex","preventDefault","stopPropagation","inline","key","shiftKey","activeElement","click","value","values","map","startIndex","jumpToFirst","includes","jumpToLast","increment","decrement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/movement/useKeyboardMovementProvider.ts"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getFocusableElements as defaultGetFocusableElements } from \"../focus/utils.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport {\n DEFAULT_KEYBOARD_MOVEMENT,\n DEFAULT_LTR_KEYBOARD_MOVEMENT,\n DEFAULT_RTL_KEYBOARD_MOVEMENT,\n} from \"./constants.js\";\nimport { findMatchIndex } from \"./findMatchIndex.js\";\nimport type {\n KeyboardMovementConfig,\n KeyboardMovementConfiguration,\n KeyboardMovementContext,\n KeyboardMovementProviderImplementation,\n KeyboardMovementProviderOptions,\n} from \"./types.js\";\nimport {\n getFirstFocusableIndex,\n getLastFocusableIndex,\n getNextFocusableIndex,\n getSearchText,\n getVirtualFocusDefaultIndex,\n isElementDisabled,\n isNotFocusable,\n isSearchableEvent,\n recalculateFocusIndex,\n} from \"./utils.js\";\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nconst context = createContext<KeyboardMovementContext>({\n config: { current: DEFAULT_KEYBOARD_MOVEMENT },\n loopable: false,\n searchable: false,\n horizontal: false,\n includeDisabled: false,\n tabIndexBehavior: undefined,\n activeDescendantId: \"\",\n});\ncontext.displayName = \"KeyboardMovement\";\nexport const { Provider: KeyboardMovementProvider } = context;\n\n/**\n * @remarks \\@since 5.0.0\n * @internal\n */\nexport function useKeyboardMovementContext(): Readonly<KeyboardMovementContext> {\n return useContext(context);\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\nconst returnNegative1 = (): number => -1;\n\n/**\n * Implements the custom keyboard movement behavior throughout react-md. Using\n * the \"Find References\" will be the best way to see example usage.\n *\n * @example\n * Default Keyboard Movement for any Focusable Element\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider();\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * {children}\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example\n * Active Descendant Movement\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * className={cnb(id === activeDescendantId && \"focused-class-name\")}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"virtual\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example\n * Roving Tab Index\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"roving\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport function useKeyboardMovementProvider<E extends HTMLElement>(\n options: KeyboardMovementProviderOptions<E> = {}\n): KeyboardMovementProviderImplementation<E> {\n const {\n onClick = noop,\n onFocus = noop,\n onKeyDown = noop,\n loopable = false,\n disabled,\n searchable = false,\n horizontal = false,\n includeDisabled = false,\n tabIndexBehavior,\n extendKeyDown = noop,\n onFocusChange = noop,\n programmatic = includeDisabled,\n incrementKeys: propIncrementKeys,\n decrementKeys: propDecrementKeys,\n jumpToFirstKeys: propJumpToFirstKeys,\n jumpToLastKeys: propJumpToLastKeys,\n getFocusableElements = defaultGetFocusableElements,\n getDefaultFocusedIndex = returnNegative1,\n isNegativeOneAllowed = false,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n let defaults: Readonly<Required<KeyboardMovementConfiguration>>;\n if (horizontal) {\n defaults = isRTL\n ? DEFAULT_RTL_KEYBOARD_MOVEMENT\n : DEFAULT_LTR_KEYBOARD_MOVEMENT;\n } else {\n defaults = DEFAULT_KEYBOARD_MOVEMENT;\n }\n\n const incrementKeys = propIncrementKeys || defaults.incrementKeys;\n const decrementKeys = propDecrementKeys || defaults.decrementKeys;\n const jumpToFirstKeys = propJumpToFirstKeys || defaults.jumpToFirstKeys;\n const jumpToLastKeys = propJumpToLastKeys || defaults.jumpToLastKeys;\n\n const configuration: KeyboardMovementConfig = {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n };\n const config = useRef(configuration);\n useIsomorphicLayoutEffect(() => {\n config.current = configuration;\n });\n\n const [activeDescendantId, setActiveDescendantId] = useState(\"\");\n const movementContext = useMemo<KeyboardMovementContext>(\n () => ({\n config,\n loopable,\n searchable,\n horizontal,\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n }),\n [\n activeDescendantId,\n horizontal,\n includeDisabled,\n loopable,\n searchable,\n tabIndexBehavior,\n ]\n );\n const currentFocusIndex = useRef(-1);\n const mode = useUserInteractionMode();\n const refocus = useRef(false);\n\n if (process.env.NODE_ENV !== \"production\") {\n // this fixes issues during hot reloading and using the `useId()` hook\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n return () => {\n setActiveDescendantId(\"\");\n };\n }, []);\n }\n\n let tabIndex: number | undefined;\n if (tabIndexBehavior) {\n tabIndex =\n disabled || (tabIndexBehavior === \"roving\" && activeDescendantId)\n ? -1\n : 0;\n }\n\n return {\n movementProps: {\n \"aria-activedescendant\":\n tabIndexBehavior === \"virtual\" ? activeDescendantId : undefined,\n tabIndex,\n\n // Note: This used to be on the `onFocus` event, but this causes issues in\n // Chromium browsers for drag and drop behavior\n onClick(event) {\n onClick(event);\n if (disabled) {\n return;\n }\n\n // This makes it so you can click an element with a mouse and then\n // keyboard navigate from that element instead of the last keyboard focus\n // element\n const { currentTarget, target } = event;\n if (target === currentTarget || !(target instanceof HTMLElement)) {\n return;\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const focusedIndex = focusables.findIndex(\n (element) => element === target || element.contains(target)\n );\n if (focusedIndex === -1 || !focusables.length) {\n return;\n }\n\n currentFocusIndex.current = focusedIndex;\n const focused = focusables[focusedIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n // need to force focus back to the container element when using\n // aria activedescendant\n if (tabIndexBehavior === \"virtual\") {\n refocus.current = true;\n currentTarget.focus();\n }\n\n onFocusChange({\n index: focusedIndex,\n element: focused,\n });\n },\n onFocus(event) {\n onFocus(event);\n if (event.isPropagationStopped() || refocus.current) {\n refocus.current = false;\n return;\n }\n\n if (\n (mode !== \"keyboard\" && tabIndexBehavior !== \"virtual\") ||\n event.target !== event.currentTarget\n ) {\n return;\n }\n\n const focusables = getFocusableElements(\n event.currentTarget,\n programmatic\n );\n if (!focusables.length) {\n return;\n }\n\n let defaultFocusIndex = getDefaultFocusedIndex({\n focusables,\n includeDisabled,\n });\n\n // This allows my custom `getDefaultFocusedIndex` implementations to\n // have a nice fallback without having to re-implement the \"focus\n // first\" behavior\n if (!isNegativeOneAllowed && defaultFocusIndex === -1) {\n if (tabIndexBehavior === \"virtual\") {\n // virtual keyboard navigation **must** always focus at least one element\n defaultFocusIndex = getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n } else {\n defaultFocusIndex = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n }\n }\n\n if (defaultFocusIndex === -1) {\n return;\n }\n\n currentFocusIndex.current = defaultFocusIndex;\n const focused = focusables[defaultFocusIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n } else {\n focused.scrollIntoView({ block: \"nearest\" });\n }\n\n onFocusChange({\n index: defaultFocusIndex,\n element: focused,\n });\n },\n onKeyDown(event) {\n onKeyDown(event);\n if (disabled) {\n return;\n }\n\n const { currentTarget } = event;\n\n const setFocusIndex = (\n index: number,\n focusables: readonly HTMLElement[]\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n if (currentFocusIndex.current === index || index === -1) {\n return;\n }\n\n currentFocusIndex.current = index;\n const focused = focusables[index];\n if (tabIndexBehavior) {\n focused.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n }\n\n onFocusChange({\n index,\n element: focused,\n });\n };\n\n extendKeyDown({\n event,\n setFocusIndex,\n currentFocusIndex,\n setActiveDescendantId,\n ...movementContext,\n });\n\n if (event.isPropagationStopped()) {\n return;\n }\n\n // TODO: Figure this part out. This is currently required for the tree\n // movement when the asterisk key is pressed. There might be other cases\n // as well.\n if (!isNegativeOneAllowed && currentFocusIndex.current === -1) {\n currentFocusIndex.current = recalculateFocusIndex({\n focusables: getFocusableElements(currentTarget, programmatic),\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n });\n }\n\n const { key, shiftKey } = event;\n if (\n tabIndexBehavior === \"virtual\" &&\n activeDescendantId &&\n (key === \" \" || key === \"Enter\")\n ) {\n if (key === \" \") {\n event.preventDefault();\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const activeElement = focusables[currentFocusIndex.current];\n if (!activeElement || isElementDisabled(activeElement)) {\n return;\n }\n\n activeElement.click();\n return;\n }\n\n const {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n } = config.current;\n\n if (searchable && isSearchableEvent(event)) {\n const focusables = getFocusableElements(currentTarget, programmatic);\n const index = findMatchIndex({\n value: key,\n values: focusables.map((element) =>\n getSearchText(element, !isNotFocusable(element, includeDisabled))\n ),\n startIndex: shiftKey ? -1 : currentFocusIndex.current,\n });\n setFocusIndex(index, focusables);\n return;\n }\n\n const jumpToFirst = jumpToFirstKeys.includes(key);\n const jumpToLast = !jumpToFirst && jumpToLastKeys.includes(key);\n const increment =\n !jumpToFirst && !jumpToLast && incrementKeys.includes(key);\n const decrement =\n !jumpToFirst &&\n !jumpToLast &&\n !increment &&\n decrementKeys.includes(key);\n\n if (!jumpToFirst && !jumpToLast && !increment && !decrement) {\n return;\n }\n const focusables = getFocusableElements(currentTarget, programmatic);\n\n let index: number;\n if (jumpToFirst) {\n index = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else if (jumpToLast) {\n index = getLastFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else {\n index = getNextFocusableIndex({\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex: currentFocusIndex.current,\n });\n }\n\n setFocusIndex(index, focusables);\n },\n },\n movementContext,\n currentFocusIndex,\n activeDescendantId,\n setActiveDescendantId,\n };\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","getFocusableElements","defaultGetFocusableElements","useUserInteractionMode","useDir","useIsomorphicLayoutEffect","DEFAULT_KEYBOARD_MOVEMENT","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT","findMatchIndex","getFirstFocusableIndex","getLastFocusableIndex","getNextFocusableIndex","getSearchText","getVirtualFocusDefaultIndex","isElementDisabled","isNotFocusable","isSearchableEvent","recalculateFocusIndex","context","config","current","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","undefined","activeDescendantId","displayName","Provider","KeyboardMovementProvider","useKeyboardMovementContext","noop","returnNegative1","useKeyboardMovementProvider","options","onClick","onFocus","onKeyDown","disabled","extendKeyDown","onFocusChange","programmatic","incrementKeys","propIncrementKeys","decrementKeys","propDecrementKeys","jumpToFirstKeys","propJumpToFirstKeys","jumpToLastKeys","propJumpToLastKeys","getDefaultFocusedIndex","isNegativeOneAllowed","isRTL","dir","defaults","configuration","setActiveDescendantId","movementContext","currentFocusIndex","mode","refocus","process","env","NODE_ENV","tabIndex","movementProps","event","currentTarget","target","HTMLElement","focusables","focusedIndex","findIndex","element","contains","length","focused","id","focus","index","isPropagationStopped","defaultFocusIndex","scrollIntoView","block","setFocusIndex","preventDefault","stopPropagation","inline","key","shiftKey","activeElement","click","value","values","map","startIndex","jumpToFirst","includes","jumpToLast","increment","decrement"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { KeyboardEvent } from "react";
2
- import type { FocusableIndexOptions, TabIndexBehavior } from "./types.js";
1
+ import { type KeyboardEvent } from "react";
2
+ import { type FocusableIndexOptions, type TabIndexBehavior } from "./types.js";
3
3
  /**
4
4
  * @remarks \@since 6.0.0
5
5
  * @internal
@@ -86,4 +86,9 @@ export declare function recalculateFocusIndex(options: RecalculateOptions): numb
86
86
  * @internal
87
87
  */
88
88
  export declare function isSearchableEvent(event: KeyboardEvent): boolean;
89
+ /**
90
+ * @remarks \@since 6.0.0
91
+ * @internal
92
+ */
93
+ export declare function isTypeEvent(event: KeyboardEvent): boolean;
89
94
  export {};
@@ -155,5 +155,15 @@ import { loop } from "../utils/loop.js";
155
155
  return key.length === 1 && // can't search with space since it is generally a click event
156
156
  key !== " " && !altKey && !ctrlKey && !metaKey;
157
157
  }
158
+ /**
159
+ * @remarks \@since 6.0.0
160
+ * @internal
161
+ */ export function isTypeEvent(event) {
162
+ return isSearchableEvent(event) || [
163
+ "Backspace",
164
+ "Delete",
165
+ " "
166
+ ].includes(event.key);
167
+ }
158
168
 
159
169
  //# sourceMappingURL=utils.js.map