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

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 (1203) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +11 -7
  3. package/.turbo/turbo-typecheck.log +4 -4
  4. package/CHANGELOG.md +183 -0
  5. package/README.md +39 -24
  6. package/coverage/clover.xml +2 -2
  7. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  8. package/coverage/lcov-report/Avatar.tsx.html +472 -0
  9. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  10. package/coverage/lcov-report/IconRotator.tsx.html +322 -0
  11. package/coverage/lcov-report/ListItem.tsx.html +892 -0
  12. package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
  13. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  14. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
  15. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  16. package/coverage/lcov-report/Portal.tsx.html +223 -0
  17. package/coverage/lcov-report/PortalContainerProvider.tsx.html +367 -0
  18. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  19. package/coverage/lcov-report/Select.tsx.html +1411 -0
  20. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +613 -0
  21. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  22. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  23. package/coverage/lcov-report/Tab.tsx.html +261 -147
  24. package/coverage/lcov-report/Toast.tsx.html +868 -0
  25. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  26. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  27. package/coverage/lcov-report/TreeGroup.tsx.html +313 -0
  28. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  29. package/coverage/lcov-report/app-bar/AppBar.tsx.html +178 -28
  30. package/coverage/lcov-report/app-bar/index.html +7 -7
  31. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  32. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +475 -0
  33. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  34. package/coverage/lcov-report/autocomplete/index.html +221 -0
  35. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  36. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +1273 -0
  37. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +829 -0
  38. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +715 -0
  39. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  40. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +430 -0
  41. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +310 -0
  42. package/coverage/lcov-report/autocomplete/utils.ts.html +196 -0
  43. package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
  44. package/coverage/lcov-report/avatar/index.html +19 -34
  45. package/coverage/lcov-report/avatar/styles.ts.html +1 -1
  46. package/coverage/lcov-report/button/Button.tsx.html +85 -85
  47. package/coverage/lcov-report/button/TooltippedButton.tsx.html +445 -0
  48. package/coverage/lcov-report/button/index.html +12 -12
  49. package/coverage/lcov-report/card/Card.tsx.html +349 -0
  50. package/coverage/lcov-report/card/CardContent.tsx.html +223 -0
  51. package/coverage/lcov-report/card/ClickableCard.tsx.html +400 -0
  52. package/coverage/lcov-report/card/index.html +21 -21
  53. package/coverage/lcov-report/card/styles.ts.html +428 -392
  54. package/coverage/lcov-report/cssUtils.ts.html +86 -59
  55. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
  56. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
  57. package/coverage/lcov-report/dialog/index.html +34 -19
  58. package/coverage/lcov-report/draggable/index.html +21 -36
  59. package/coverage/lcov-report/draggable/useDraggable.ts.html +377 -368
  60. package/coverage/lcov-report/draggable/utils.ts.html +96 -195
  61. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +211 -0
  62. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +12 -15
  63. package/coverage/lcov-report/expansion-panel/index.html +34 -19
  64. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +928 -0
  65. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  66. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  67. package/coverage/lcov-report/form/Label.tsx.html +442 -0
  68. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +2 -2
  69. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  70. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  71. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +442 -0
  72. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +310 -0
  73. package/coverage/lcov-report/form/Select.tsx.html +1456 -0
  74. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  75. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  76. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  77. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +727 -0
  78. package/coverage/lcov-report/form/Slider.tsx.html +163 -40
  79. package/coverage/lcov-report/form/TextArea.tsx.html +596 -740
  80. package/coverage/lcov-report/form/TextArea2.tsx.html +985 -0
  81. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +1006 -0
  82. package/coverage/lcov-report/form/TextField.tsx.html +156 -234
  83. package/coverage/lcov-report/form/index.html +111 -21
  84. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  85. package/coverage/lcov-report/form/textAreaStyles.ts.html +8 -11
  86. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  87. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  88. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  89. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  90. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  91. package/coverage/lcov-report/form/useResizingTextArea.ts.html +631 -0
  92. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +631 -0
  93. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  94. package/coverage/lcov-report/form/utils.ts.html +209 -170
  95. package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
  96. package/coverage/lcov-report/icon/FontIcon.tsx.html +64 -64
  97. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  98. package/coverage/lcov-report/icon/index.html +19 -19
  99. package/coverage/lcov-report/index.html +1 -1
  100. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +679 -0
  101. package/coverage/lcov-report/interaction/config.ts.html +181 -0
  102. package/coverage/lcov-report/interaction/index.html +33 -18
  103. package/coverage/lcov-report/list/List.tsx.html +490 -0
  104. package/coverage/lcov-report/list/ListItem.tsx.html +886 -0
  105. package/coverage/lcov-report/list/ListItemAddon.tsx.html +286 -0
  106. package/coverage/lcov-report/list/ListItemChildren.tsx.html +445 -0
  107. package/coverage/lcov-report/list/ListItemLink.tsx.html +5 -5
  108. package/coverage/lcov-report/list/index.html +81 -6
  109. package/coverage/lcov-report/list/listItemStyles.ts.html +703 -0
  110. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  111. package/coverage/lcov-report/media-queries/index.html +1 -1
  112. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
  113. package/coverage/lcov-report/menu/Menu.tsx.html +276 -252
  114. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  115. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +433 -0
  116. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  117. package/coverage/lcov-report/menu/index.html +14 -44
  118. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  119. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  120. package/coverage/lcov-report/movement/index.html +19 -19
  121. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  122. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  123. package/coverage/lcov-report/positioning/index.html +30 -30
  124. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  125. package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
  126. package/coverage/lcov-report/progress/index.html +19 -34
  127. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  128. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  129. package/coverage/lcov-report/searching/index.html +146 -0
  130. package/coverage/lcov-report/searching/toSearchQuery.ts.html +145 -0
  131. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +211 -0
  132. package/coverage/lcov-report/searching/utils.ts.html +244 -0
  133. package/coverage/lcov-report/sheet/index.html +8 -8
  134. package/coverage/lcov-report/sheet/styles.ts.html +376 -0
  135. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +400 -0
  136. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  137. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  138. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  139. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  140. package/coverage/lcov-report/snackbar/index.html +59 -14
  141. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  142. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  143. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  144. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  145. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  146. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  147. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  148. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  149. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +143 -23
  150. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  151. package/coverage/lcov-report/src/app-bar/index.html +5 -5
  152. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +364 -0
  153. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  154. package/coverage/lcov-report/src/autocomplete/index.html +221 -0
  155. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +637 -0
  156. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +829 -0
  157. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +715 -0
  158. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +430 -0
  159. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +241 -0
  160. package/coverage/lcov-report/src/autocomplete/utils.ts.html +196 -0
  161. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +2 -2
  162. package/coverage/lcov-report/src/avatar/index.html +1 -1
  163. package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
  164. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  165. package/coverage/lcov-report/src/badge/index.html +1 -1
  166. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  167. package/coverage/lcov-report/src/box/index.html +23 -8
  168. package/coverage/lcov-report/src/box/styles.ts.html +46 -46
  169. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
  170. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  171. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  172. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +11 -11
  173. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +445 -0
  174. package/coverage/lcov-report/src/button/buttonStyles.ts.html +52 -52
  175. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  176. package/coverage/lcov-report/src/button/index.html +8 -23
  177. package/coverage/lcov-report/src/card/Card.tsx.html +37 -31
  178. package/coverage/lcov-report/src/card/CardContent.tsx.html +4 -4
  179. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  180. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  181. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  182. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  183. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +400 -0
  184. package/coverage/lcov-report/src/card/index.html +24 -9
  185. package/coverage/lcov-report/src/card/styles.ts.html +58 -31
  186. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  187. package/coverage/lcov-report/src/chip/index.html +7 -7
  188. package/coverage/lcov-report/src/chip/styles.ts.html +9 -12
  189. package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
  190. package/coverage/lcov-report/src/delegateEvent.ts.html +109 -109
  191. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
  192. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
  193. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
  194. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
  195. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
  196. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
  197. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  198. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
  199. package/coverage/lcov-report/src/dialog/index.html +129 -9
  200. package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
  201. package/coverage/lcov-report/src/divider/Divider.tsx.html +4 -7
  202. package/coverage/lcov-report/src/divider/index.html +5 -5
  203. package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
  204. package/coverage/lcov-report/src/draggable/index.html +27 -27
  205. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +47 -44
  206. package/coverage/lcov-report/src/draggable/utils.ts.html +29 -131
  207. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  208. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  209. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
  210. package/coverage/lcov-report/src/expansion-panel/index.html +8 -8
  211. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  212. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +36 -24
  213. package/coverage/lcov-report/src/focus/index.html +1 -1
  214. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
  215. package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
  216. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  217. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  218. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  219. package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
  220. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  221. package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
  222. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +5 -5
  223. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  224. package/coverage/lcov-report/src/form/InputToggle.tsx.html +110 -110
  225. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +63 -63
  226. package/coverage/lcov-report/src/form/Label.tsx.html +98 -98
  227. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  228. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
  229. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
  230. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
  231. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
  232. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  233. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
  234. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
  235. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  236. package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
  237. package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
  238. package/coverage/lcov-report/src/form/Radio.tsx.html +3 -3
  239. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +988 -0
  240. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +310 -0
  241. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1122
  242. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  243. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +694 -0
  244. package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
  245. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  246. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  247. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  248. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
  249. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  250. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
  251. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
  252. package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
  253. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
  254. package/coverage/lcov-report/src/form/TextArea.tsx.html +646 -580
  255. package/coverage/lcov-report/src/form/TextArea2.tsx.html +985 -0
  256. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +985 -0
  257. package/coverage/lcov-report/src/form/TextField.tsx.html +3 -3
  258. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
  259. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
  260. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +8 -8
  261. package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
  262. package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
  263. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
  264. package/coverage/lcov-report/src/form/index.html +81 -21
  265. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  266. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  267. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
  268. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  269. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  270. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  271. package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
  272. package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
  273. package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
  274. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  275. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  276. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  277. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
  278. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  279. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  280. package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
  281. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  282. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
  283. package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
  284. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +47 -47
  285. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
  286. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +405 -294
  287. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  288. package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
  289. package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
  290. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  291. package/coverage/lcov-report/src/form/validation.ts.html +1 -1
  292. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  293. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +98 -98
  294. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +19 -19
  295. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
  296. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +5 -8
  297. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
  298. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
  299. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  300. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  301. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
  302. package/coverage/lcov-report/src/icon/index.html +10 -145
  303. package/coverage/lcov-report/src/icon/material.ts.html +1 -1
  304. package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
  305. package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
  306. package/coverage/lcov-report/src/index.html +10 -10
  307. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
  308. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
  309. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
  310. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  311. package/coverage/lcov-report/src/interaction/index.html +1 -1
  312. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +123 -123
  313. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +19 -19
  314. package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
  315. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  316. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  317. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  318. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  319. package/coverage/lcov-report/src/layout/index.html +15 -15
  320. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  321. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  322. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  323. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  324. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  325. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +20 -32
  326. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  327. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  328. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  329. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  330. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
  331. package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
  332. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  333. package/coverage/lcov-report/src/link/index.html +1 -1
  334. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  335. package/coverage/lcov-report/src/list/List.tsx.html +1 -1
  336. package/coverage/lcov-report/src/list/ListItem.tsx.html +158 -137
  337. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +45 -39
  338. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +88 -82
  339. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +5 -5
  340. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  341. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  342. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
  343. package/coverage/lcov-report/src/list/index.html +13 -13
  344. package/coverage/lcov-report/src/list/listItemStyles.ts.html +102 -72
  345. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +54 -54
  346. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  347. package/coverage/lcov-report/src/media-queries/index.html +1 -1
  348. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +28 -28
  349. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
  350. package/coverage/lcov-report/src/menu/Menu.tsx.html +4 -4
  351. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  352. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
  353. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  354. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  355. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
  356. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +433 -0
  357. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  358. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
  359. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
  360. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  361. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  362. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  363. package/coverage/lcov-report/src/menu/index.html +13 -238
  364. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  365. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  366. package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
  367. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  368. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  369. package/coverage/lcov-report/src/movement/index.html +17 -62
  370. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +3 -3
  371. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  372. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
  373. package/coverage/lcov-report/src/overlay/index.html +1 -1
  374. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
  375. package/coverage/lcov-report/src/portal/Portal.tsx.html +7 -7
  376. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +59 -35
  377. package/coverage/lcov-report/src/portal/index.html +7 -7
  378. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  379. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +47 -47
  380. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +55 -55
  381. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +89 -89
  382. package/coverage/lcov-report/src/positioning/index.html +1 -1
  383. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +193 -193
  384. package/coverage/lcov-report/src/positioning/utils.ts.html +59 -59
  385. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +83 -83
  386. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +3 -3
  387. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  388. package/coverage/lcov-report/src/progress/index.html +20 -5
  389. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  390. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  391. package/coverage/lcov-report/src/responsive-item/index.html +1 -1
  392. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  393. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  394. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
  395. package/coverage/lcov-report/src/scroll/index.html +1 -1
  396. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
  397. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
  398. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
  399. package/coverage/lcov-report/src/segmented-button/index.html +1 -1
  400. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
  401. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  402. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  403. package/coverage/lcov-report/src/sheet/index.html +5 -5
  404. package/coverage/lcov-report/src/sheet/styles.ts.html +45 -48
  405. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +80 -80
  406. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +21 -45
  407. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +108 -93
  408. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  409. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
  410. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +48 -48
  411. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +278 -275
  412. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +6 -6
  413. package/coverage/lcov-report/src/snackbar/index.html +19 -19
  414. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +15 -15
  415. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +14 -14
  416. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +27 -27
  417. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  418. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
  419. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  420. package/coverage/lcov-report/src/suspense/index.html +36 -21
  421. package/coverage/lcov-report/src/table/Table.tsx.html +45 -114
  422. package/coverage/lcov-report/src/table/TableBody.tsx.html +43 -43
  423. package/coverage/lcov-report/src/table/TableCell.tsx.html +109 -298
  424. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +81 -27
  425. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +16 -10
  426. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +20 -20
  427. package/coverage/lcov-report/src/table/TableContainer.tsx.html +7 -28
  428. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  429. package/coverage/lcov-report/src/table/TableFooter.tsx.html +64 -43
  430. package/coverage/lcov-report/src/table/TableHeader.tsx.html +41 -92
  431. package/coverage/lcov-report/src/table/TableRadio.tsx.html +676 -0
  432. package/coverage/lcov-report/src/table/TableRow.tsx.html +38 -119
  433. package/coverage/lcov-report/src/table/index.html +151 -46
  434. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +334 -0
  435. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +142 -0
  436. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +166 -0
  437. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +172 -0
  438. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +169 -0
  439. package/coverage/lcov-report/src/table/tableStyles.ts.html +157 -0
  440. package/coverage/lcov-report/src/tabs/Tab.tsx.html +263 -143
  441. package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
  442. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
  443. package/coverage/lcov-report/src/tabs/index.html +25 -25
  444. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +37 -7
  445. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
  446. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +2 -2
  447. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +64 -28
  448. package/coverage/lcov-report/src/tabs/useTabList.ts.html +44 -38
  449. package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
  450. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  451. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  452. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +402 -261
  453. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
  454. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  455. package/coverage/lcov-report/src/test-utils/index.html +12 -117
  456. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
  457. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +55 -55
  458. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  459. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  460. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  461. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  462. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  463. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  464. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  465. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  466. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  467. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  468. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  469. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  470. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
  471. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  472. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  473. package/coverage/lcov-report/src/theme/index.html +1 -1
  474. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +25 -25
  475. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  476. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  477. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  478. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  479. package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
  480. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +62 -62
  481. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +3 -3
  482. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  483. package/coverage/lcov-report/src/tooltip/index.html +9 -9
  484. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +12 -12
  485. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +243 -222
  486. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +27 -27
  487. package/coverage/lcov-report/src/tooltip/utils.ts.html +22 -22
  488. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  489. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  490. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  491. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  492. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +374 -338
  493. package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
  494. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  495. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +1 -1
  496. package/coverage/lcov-report/src/transition/config.ts.html +5 -5
  497. package/coverage/lcov-report/src/transition/index.html +49 -34
  498. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  499. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +400 -0
  500. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +68 -68
  501. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  502. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +10 -64
  503. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  504. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  505. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  506. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +607 -562
  507. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
  508. package/coverage/lcov-report/src/transition/useTransition.ts.html +232 -232
  509. package/coverage/lcov-report/src/transition/utils.ts.html +45 -45
  510. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +18 -6
  511. package/coverage/lcov-report/src/tree/Tree.tsx.html +20 -8
  512. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +1 -1
  513. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +7 -10
  514. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
  515. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +1 -1
  516. package/coverage/lcov-report/src/tree/index.html +16 -196
  517. package/coverage/lcov-report/src/tree/styles.ts.html +4 -31
  518. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  519. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  520. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
  521. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +87 -87
  522. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  523. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  524. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
  525. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  526. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  527. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
  528. package/coverage/lcov-report/src/typography/index.html +1 -1
  529. package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
  530. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +246 -240
  531. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  532. package/coverage/lcov-report/src/useElementSize.ts.html +334 -0
  533. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  534. package/coverage/lcov-report/src/useEnsuredRef.ts.html +14 -14
  535. package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
  536. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  537. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
  538. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  539. package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
  540. package/coverage/lcov-report/src/useOrientation.ts.html +30 -30
  541. package/coverage/lcov-report/src/usePageInactive.ts.html +30 -30
  542. package/coverage/lcov-report/src/useResizeListener.ts.html +38 -32
  543. package/coverage/lcov-report/src/useResizeObserver.ts.html +133 -244
  544. package/coverage/lcov-report/src/useThrottledFunction.ts.html +57 -51
  545. package/coverage/lcov-report/src/useToggle.ts.html +1 -1
  546. package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
  547. package/coverage/lcov-report/src/useWindowSize.ts.html +124 -94
  548. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  549. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  550. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  551. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  552. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  553. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  554. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +163 -0
  555. package/coverage/lcov-report/src/utils/getPercentage.ts.html +9 -9
  556. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +66 -87
  557. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +7 -7
  558. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  559. package/coverage/lcov-report/src/utils/index.html +13 -253
  560. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
  561. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +118 -0
  562. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  563. package/coverage/lcov-report/src/utils/nearest.ts.html +21 -21
  564. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +18 -18
  565. package/coverage/lcov-report/src/utils/randomInt.ts.html +52 -52
  566. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  567. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  568. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  569. package/coverage/lcov-report/src/window-splitter/index.html +14 -14
  570. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +19 -67
  571. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +256 -0
  572. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +283 -0
  573. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +202 -0
  574. package/coverage/lcov-report/suspense/index.html +131 -0
  575. package/coverage/lcov-report/tabIndicatorStyles.ts.html +43 -13
  576. package/coverage/lcov-report/tabListStyles.ts.html +35 -26
  577. package/coverage/lcov-report/tabStyles.ts.html +68 -26
  578. package/coverage/lcov-report/tabs/Tab.tsx.html +233 -143
  579. package/coverage/lcov-report/tabs/TabList.tsx.html +85 -85
  580. package/coverage/lcov-report/tabs/index.html +56 -11
  581. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +187 -0
  582. package/coverage/lcov-report/tabs/tabListStyles.ts.html +241 -0
  583. package/coverage/lcov-report/tabs/tabStyles.ts.html +253 -0
  584. package/coverage/lcov-report/tabs/useTabList.ts.html +736 -0
  585. package/coverage/lcov-report/tabs/useTabs.ts.html +1 -1
  586. package/coverage/lcov-report/tabs/utils.ts.html +1 -1
  587. package/coverage/lcov-report/test-utils/index.html +21 -21
  588. package/coverage/lcov-report/test-utils/use.ts.html +187 -0
  589. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +62 -62
  590. package/coverage/lcov-report/tooltip/index.html +10 -70
  591. package/coverage/lcov-report/tooltip/useTooltip.ts.html +243 -222
  592. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +595 -0
  593. package/coverage/lcov-report/transition/config.ts.html +5 -5
  594. package/coverage/lcov-report/transition/index.html +1 -1
  595. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +400 -0
  596. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  597. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +952 -0
  598. package/coverage/lcov-report/tree/TreeItem.tsx.html +7 -10
  599. package/coverage/lcov-report/tree/index.html +17 -47
  600. package/coverage/lcov-report/tree/styles.ts.html +538 -0
  601. package/coverage/lcov-report/tree/useTreeMovement.ts.html +140 -143
  602. package/coverage/lcov-report/typography/Typography.tsx.html +138 -432
  603. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +75 -75
  604. package/coverage/lcov-report/typography/index.html +18 -18
  605. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  606. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  607. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  608. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  609. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  610. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +952 -0
  611. package/coverage/lcov-report/useTabList.ts.html +142 -136
  612. package/coverage/lcov-report/useWindowSplitter.ts.html +640 -0
  613. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +256 -0
  614. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  615. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  616. package/coverage/lcov-report/utils/index.html +15 -30
  617. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  618. package/coverage/lcov-report/utils/randomInt.ts.html +148 -0
  619. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  620. package/coverage/lcov-report/utils/wait.ts.html +1 -1
  621. package/coverage/lcov-report/utils.ts.html +109 -277
  622. package/coverage/lcov-report/window-splitter/index.html +21 -36
  623. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +406 -328
  624. package/dist/RootHtml.d.ts +62 -0
  625. package/dist/RootHtml.js +49 -0
  626. package/dist/RootHtml.js.map +1 -0
  627. package/dist/_box-shadows.scss +12 -2
  628. package/dist/_core.scss +207 -253
  629. package/dist/_utils.scss +89 -0
  630. package/dist/app-bar/AppBar.d.ts +4 -9
  631. package/dist/app-bar/AppBar.js +29 -7
  632. package/dist/app-bar/AppBar.js.map +1 -1
  633. package/dist/app-bar/_app-bar.scss +114 -122
  634. package/dist/avatar/Avatar.d.ts +15 -1
  635. package/dist/avatar/Avatar.js +5 -2
  636. package/dist/avatar/Avatar.js.map +1 -1
  637. package/dist/avatar/_avatar.scss +74 -81
  638. package/dist/badge/_badge.scss +97 -59
  639. package/dist/box/_box.scss +72 -81
  640. package/dist/button/TooltippedButton.d.ts +62 -0
  641. package/dist/button/TooltippedButton.js +62 -0
  642. package/dist/button/TooltippedButton.js.map +1 -0
  643. package/dist/button/_button.scss +170 -180
  644. package/dist/card/Card.js +3 -2
  645. package/dist/card/Card.js.map +1 -1
  646. package/dist/card/CardContent.js +1 -1
  647. package/dist/card/CardContent.js.map +1 -1
  648. package/dist/card/ClickableCard.d.ts +42 -0
  649. package/dist/card/ClickableCard.js +73 -0
  650. package/dist/card/ClickableCard.js.map +1 -0
  651. package/dist/card/_card.scss +81 -82
  652. package/dist/card/styles.d.ts +8 -0
  653. package/dist/card/styles.js +6 -3
  654. package/dist/card/styles.js.map +1 -1
  655. package/dist/chip/_chip.scss +137 -148
  656. package/dist/dialog/FixedDialog.d.ts +5 -4
  657. package/dist/dialog/FixedDialog.js +5 -4
  658. package/dist/dialog/FixedDialog.js.map +1 -1
  659. package/dist/dialog/_dialog.scss +179 -162
  660. package/dist/divider/Divider.d.ts +0 -1
  661. package/dist/divider/Divider.js.map +1 -1
  662. package/dist/divider/_divider.scss +61 -70
  663. package/dist/draggable/_draggable.scss +16 -12
  664. package/dist/draggable/useDraggable.d.ts +12 -23
  665. package/dist/draggable/useDraggable.js +15 -6
  666. package/dist/draggable/useDraggable.js.map +1 -1
  667. package/dist/draggable/utils.d.ts +4 -17
  668. package/dist/draggable/utils.js +9 -25
  669. package/dist/draggable/utils.js.map +1 -1
  670. package/dist/expansion-panel/_expansion-panel.scss +76 -50
  671. package/dist/expansion-panel/useExpansionPanels.d.ts +5 -3
  672. package/dist/expansion-panel/useExpansionPanels.js +16 -9
  673. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  674. package/dist/form/Form.d.ts +1 -1
  675. package/dist/form/Form.js +2 -1
  676. package/dist/form/Form.js.map +1 -1
  677. package/dist/form/Label.d.ts +5 -5
  678. package/dist/form/Label.js.map +1 -1
  679. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  680. package/dist/form/MenuItemInputToggle.js +26 -37
  681. package/dist/form/MenuItemInputToggle.js.map +1 -1
  682. package/dist/form/NativeSelect.d.ts +5 -2
  683. package/dist/form/NativeSelect.js.map +1 -1
  684. package/dist/form/Option.js +3 -2
  685. package/dist/form/Option.js.map +1 -1
  686. package/dist/form/ResizingTextAreaWrapper.d.ts +19 -0
  687. package/dist/form/ResizingTextAreaWrapper.js +35 -0
  688. package/dist/form/ResizingTextAreaWrapper.js.map +1 -0
  689. package/dist/form/Select.d.ts +105 -15
  690. package/dist/form/Select.js +160 -244
  691. package/dist/form/Select.js.map +1 -1
  692. package/dist/form/SelectedOption.d.ts +21 -0
  693. package/dist/form/SelectedOption.js +37 -0
  694. package/dist/form/SelectedOption.js.map +1 -0
  695. package/dist/form/TextArea.d.ts +11 -0
  696. package/dist/form/TextArea.js +19 -29
  697. package/dist/form/TextArea.js.map +1 -1
  698. package/dist/form/TextField.d.ts +2 -2
  699. package/dist/form/TextField.js +7 -6
  700. package/dist/form/TextField.js.map +1 -1
  701. package/dist/form/TextFieldContainer.js +2 -2
  702. package/dist/form/TextFieldContainer.js.map +1 -1
  703. package/dist/form/_form.scss +1336 -1260
  704. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  705. package/dist/form/menuItemInputToggleStyles.js +31 -0
  706. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  707. package/dist/form/selectUtils.d.ts +1 -3
  708. package/dist/form/selectUtils.js +2 -10
  709. package/dist/form/selectUtils.js.map +1 -1
  710. package/dist/form/textAreaStyles.d.ts +2 -2
  711. package/dist/form/textAreaStyles.js.map +1 -1
  712. package/dist/form/{TextFieldContainerStyles.d.ts → textFieldContainerStyles.d.ts} +7 -7
  713. package/dist/form/{TextFieldContainerStyles.js → textFieldContainerStyles.js} +1 -1
  714. package/dist/form/textFieldContainerStyles.js.map +1 -0
  715. package/dist/form/types.d.ts +6 -8
  716. package/dist/form/types.js.map +1 -1
  717. package/dist/form/useCombobox.d.ts +157 -0
  718. package/dist/form/useCombobox.js +206 -0
  719. package/dist/form/useCombobox.js.map +1 -0
  720. package/dist/form/useEditableCombobox.d.ts +15 -0
  721. package/dist/form/useEditableCombobox.js +101 -0
  722. package/dist/form/useEditableCombobox.js.map +1 -0
  723. package/dist/form/useFormReset.d.ts +16 -0
  724. package/dist/form/useFormReset.js +32 -0
  725. package/dist/form/useFormReset.js.map +1 -0
  726. package/dist/form/useListboxProvider.d.ts +4 -2
  727. package/dist/form/useListboxProvider.js +6 -8
  728. package/dist/form/useListboxProvider.js.map +1 -1
  729. package/dist/form/useResizingTextArea.d.ts +5 -2
  730. package/dist/form/useResizingTextArea.js +52 -21
  731. package/dist/form/useResizingTextArea.js.map +1 -1
  732. package/dist/form/useSelectCombobox.d.ts +17 -0
  733. package/dist/form/useSelectCombobox.js +36 -0
  734. package/dist/form/useSelectCombobox.js.map +1 -0
  735. package/dist/form/utils.d.ts +11 -1
  736. package/dist/form/utils.js +6 -0
  737. package/dist/form/utils.js.map +1 -1
  738. package/dist/icon/IconRotator.js +2 -3
  739. package/dist/icon/IconRotator.js.map +1 -1
  740. package/dist/icon/_icon.scss +105 -112
  741. package/dist/index.d.ts +23 -2
  742. package/dist/index.js +23 -2
  743. package/dist/index.js.map +1 -1
  744. package/dist/interaction/_interaction.scss +144 -135
  745. package/dist/layout/_layout.scss +82 -86
  746. package/dist/layout/useLayoutAppBarHeight.js +5 -9
  747. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  748. package/dist/link/_link.scss +74 -66
  749. package/dist/list/ListItem.d.ts +8 -3
  750. package/dist/list/ListItem.js +4 -3
  751. package/dist/list/ListItem.js.map +1 -1
  752. package/dist/list/ListItemAddon.js +2 -1
  753. package/dist/list/ListItemAddon.js.map +1 -1
  754. package/dist/list/ListItemChildren.js +3 -2
  755. package/dist/list/ListItemChildren.js.map +1 -1
  756. package/dist/list/ListItemLink.js +3 -3
  757. package/dist/list/ListItemLink.js.map +1 -1
  758. package/dist/list/_list.scss +187 -184
  759. package/dist/list/getListItemHeight.d.ts +0 -1
  760. package/dist/list/getListItemHeight.js +2 -2
  761. package/dist/list/getListItemHeight.js.map +1 -1
  762. package/dist/list/listItemStyles.d.ts +9 -1
  763. package/dist/list/listItemStyles.js +5 -5
  764. package/dist/list/listItemStyles.js.map +1 -1
  765. package/dist/list/types.d.ts +25 -6
  766. package/dist/list/types.js.map +1 -1
  767. package/dist/menu/Menu.d.ts +1 -1
  768. package/dist/menu/Menu.js +12 -1
  769. package/dist/menu/Menu.js.map +1 -1
  770. package/dist/menu/MenuItemCircularProgress.d.ts +60 -0
  771. package/dist/menu/MenuItemCircularProgress.js +74 -0
  772. package/dist/menu/MenuItemCircularProgress.js.map +1 -0
  773. package/dist/menu/_menu.scss +29 -50
  774. package/dist/menu/useContextMenu.d.ts +3 -3
  775. package/dist/menu/useContextMenu.js +3 -3
  776. package/dist/menu/useContextMenu.js.map +1 -1
  777. package/dist/movement/types.d.ts +40 -21
  778. package/dist/movement/types.js.map +1 -1
  779. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  780. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  781. package/dist/movement/utils.d.ts +7 -2
  782. package/dist/movement/utils.js +10 -0
  783. package/dist/movement/utils.js.map +1 -1
  784. package/dist/overlay/_overlay.scss +39 -42
  785. package/dist/portal/PortalContainerProvider.d.ts +2 -2
  786. package/dist/portal/PortalContainerProvider.js +6 -1
  787. package/dist/portal/PortalContainerProvider.js.map +1 -1
  788. package/dist/positioning/useFixedPositioning.js +0 -8
  789. package/dist/positioning/useFixedPositioning.js.map +1 -1
  790. package/dist/progress/_progress.scss +33 -33
  791. package/dist/responsive-item/_responsive-item.scss +91 -89
  792. package/dist/searching/caseInsensitive.d.ts +150 -0
  793. package/dist/searching/caseInsensitive.js +30 -0
  794. package/dist/searching/caseInsensitive.js.map +1 -0
  795. package/dist/searching/fuzzy.d.ts +128 -0
  796. package/dist/searching/fuzzy.js +54 -0
  797. package/dist/searching/fuzzy.js.map +1 -0
  798. package/dist/searching/toSearchQuery.d.ts +7 -0
  799. package/dist/searching/toSearchQuery.js +15 -0
  800. package/dist/searching/toSearchQuery.js.map +1 -0
  801. package/dist/searching/types.d.ts +28 -0
  802. package/dist/searching/types.js +5 -0
  803. package/dist/searching/types.js.map +1 -0
  804. package/dist/searching/useFuzzyMatch.d.ts +19 -0
  805. package/dist/searching/useFuzzyMatch.js +26 -0
  806. package/dist/searching/useFuzzyMatch.js.map +1 -0
  807. package/dist/searching/utils.d.ts +21 -0
  808. package/dist/searching/utils.js +28 -0
  809. package/dist/searching/utils.js.map +1 -0
  810. package/dist/segmented-button/_segmented-button.scss +86 -92
  811. package/dist/sheet/_sheet.scss +107 -123
  812. package/dist/sheet/styles.d.ts +14 -15
  813. package/dist/sheet/styles.js.map +1 -1
  814. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  815. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  816. package/dist/snackbar/Snackbar.d.ts +10 -10
  817. package/dist/snackbar/Snackbar.js +3 -3
  818. package/dist/snackbar/Snackbar.js.map +1 -1
  819. package/dist/snackbar/Toast.d.ts +1 -1
  820. package/dist/snackbar/Toast.js +5 -1
  821. package/dist/snackbar/Toast.js.map +1 -1
  822. package/dist/snackbar/ToastManager.d.ts +2 -1
  823. package/dist/snackbar/ToastManager.js +1 -1
  824. package/dist/snackbar/ToastManager.js.map +1 -1
  825. package/dist/snackbar/_snackbar.scss +148 -144
  826. package/dist/snackbar/snackbarStyles.d.ts +1 -0
  827. package/dist/snackbar/snackbarStyles.js +2 -1
  828. package/dist/snackbar/snackbarStyles.js.map +1 -1
  829. package/dist/table/TableCheckbox.d.ts +3 -2
  830. package/dist/table/TableCheckbox.js +4 -2
  831. package/dist/table/TableCheckbox.js.map +1 -1
  832. package/dist/table/TableRadio.d.ts +3 -2
  833. package/dist/table/TableRadio.js +4 -2
  834. package/dist/table/TableRadio.js.map +1 -1
  835. package/dist/table/_table.scss +214 -227
  836. package/dist/table/tableCellStyles.d.ts +1 -1
  837. package/dist/table/tableCellStyles.js.map +1 -1
  838. package/dist/tabs/Tab.d.ts +24 -3
  839. package/dist/tabs/Tab.js +15 -8
  840. package/dist/tabs/Tab.js.map +1 -1
  841. package/dist/tabs/_tabs.scss +62 -53
  842. package/dist/tabs/tabIndicatorStyles.d.ts +2 -1
  843. package/dist/tabs/tabIndicatorStyles.js +6 -3
  844. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  845. package/dist/tabs/tabListStyles.js +2 -1
  846. package/dist/tabs/tabListStyles.js.map +1 -1
  847. package/dist/tabs/tabStyles.d.ts +2 -0
  848. package/dist/tabs/tabStyles.js +6 -3
  849. package/dist/tabs/tabStyles.js.map +1 -1
  850. package/dist/tabs/useTabList.d.ts +3 -3
  851. package/dist/tabs/useTabList.js +9 -6
  852. package/dist/tabs/useTabList.js.map +1 -1
  853. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  854. package/dist/test-utils/ResizeObserver.d.ts +214 -0
  855. package/dist/test-utils/ResizeObserver.js +69 -49
  856. package/dist/test-utils/ResizeObserver.js.map +1 -1
  857. package/dist/test-utils/data-testid.d.ts +7 -0
  858. package/dist/test-utils/data-testid.js +1 -0
  859. package/dist/test-utils/data-testid.js.map +1 -1
  860. package/dist/test-utils/drag.d.ts +26 -0
  861. package/dist/test-utils/index.d.ts +7 -0
  862. package/dist/test-utils/jest-setup.d.ts +1 -0
  863. package/dist/test-utils/matchMedia.d.ts +101 -0
  864. package/dist/test-utils/matchMedia.js +2 -2
  865. package/dist/test-utils/matchMedia.js.map +1 -1
  866. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  867. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  868. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  869. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  870. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  871. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  872. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  873. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  874. package/dist/test-utils/polyfills/index.d.ts +7 -0
  875. package/dist/test-utils/polyfills/index.js +2 -0
  876. package/dist/test-utils/polyfills/index.js.map +1 -1
  877. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  878. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  879. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  880. package/dist/test-utils/render.d.ts +13 -0
  881. package/dist/test-utils/timers.d.ts +39 -0
  882. package/dist/theme/_theme.scss +243 -133
  883. package/dist/tooltip/_tooltip.scss +76 -83
  884. package/dist/tooltip/useTooltip.d.ts +14 -14
  885. package/dist/tooltip/useTooltip.js.map +1 -1
  886. package/dist/transition/SkeletonPlaceholder.d.ts +2 -2
  887. package/dist/transition/SkeletonPlaceholder.js +8 -3
  888. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  889. package/dist/transition/_transition.scss +89 -78
  890. package/dist/transition/skeletonPlaceholderUtils.d.ts +77 -0
  891. package/dist/transition/skeletonPlaceholderUtils.js +38 -0
  892. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  893. package/dist/transition/useCollapseTransition.d.ts +3 -18
  894. package/dist/transition/useCollapseTransition.js +1 -10
  895. package/dist/transition/useCollapseTransition.js.map +1 -1
  896. package/dist/transition/useSkeletonPlaceholder.d.ts +12 -7
  897. package/dist/transition/useSkeletonPlaceholder.js +38 -37
  898. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  899. package/dist/transition/utils.js +7 -2
  900. package/dist/transition/utils.js.map +1 -1
  901. package/dist/tree/DefaultTreeItemRenderer.d.ts +2 -2
  902. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  903. package/dist/tree/Tree.d.ts +8 -4
  904. package/dist/tree/Tree.js.map +1 -1
  905. package/dist/tree/TreeItem.js +3 -4
  906. package/dist/tree/TreeItem.js.map +1 -1
  907. package/dist/tree/_tree.scss +111 -109
  908. package/dist/tree/styles.d.ts +0 -6
  909. package/dist/tree/styles.js +1 -2
  910. package/dist/tree/styles.js.map +1 -1
  911. package/dist/tree/useTreeMovement.js +1 -1
  912. package/dist/tree/useTreeMovement.js.map +1 -1
  913. package/dist/types.d.ts +13 -0
  914. package/dist/types.js +1 -2
  915. package/dist/types.js.map +1 -1
  916. package/dist/typography/SrOnly.d.ts +3 -3
  917. package/dist/typography/SrOnly.js +4 -4
  918. package/dist/typography/SrOnly.js.map +1 -1
  919. package/dist/typography/Typography.d.ts +19 -19
  920. package/dist/typography/Typography.js +19 -19
  921. package/dist/typography/Typography.js.map +1 -1
  922. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  923. package/dist/typography/WritingDirectionProvider.js +2 -2
  924. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  925. package/dist/typography/_typography.scss +141 -87
  926. package/dist/useDebouncedFunction.d.ts +2 -2
  927. package/dist/useDebouncedFunction.js +10 -6
  928. package/dist/useDebouncedFunction.js.map +1 -1
  929. package/dist/useElementSize.d.ts +40 -0
  930. package/dist/useElementSize.js +53 -0
  931. package/dist/useElementSize.js.map +1 -0
  932. package/dist/useEnsuredState.d.ts +1 -1
  933. package/dist/useEnsuredState.js.map +1 -1
  934. package/dist/useResizeListener.d.ts +1 -1
  935. package/dist/useResizeListener.js +1 -0
  936. package/dist/useResizeListener.js.map +1 -1
  937. package/dist/useResizeObserver.d.ts +4 -43
  938. package/dist/useResizeObserver.js +4 -43
  939. package/dist/useResizeObserver.js.map +1 -1
  940. package/dist/useThrottledFunction.d.ts +2 -2
  941. package/dist/useThrottledFunction.js +20 -16
  942. package/dist/useThrottledFunction.js.map +1 -1
  943. package/dist/useWindowSize.d.ts +14 -11
  944. package/dist/useWindowSize.js +12 -7
  945. package/dist/useWindowSize.js.map +1 -1
  946. package/dist/utils/alphaNumericSort.d.ts +1 -1
  947. package/dist/utils/alphaNumericSort.js +2 -10
  948. package/dist/utils/alphaNumericSort.js.map +1 -1
  949. package/dist/utils/getMiddleOfRange.d.ts +13 -0
  950. package/dist/utils/getMiddleOfRange.js +20 -0
  951. package/dist/utils/getMiddleOfRange.js.map +1 -0
  952. package/dist/utils/getRangeDefaultValue.d.ts +3 -5
  953. package/dist/utils/getRangeDefaultValue.js +3 -13
  954. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  955. package/dist/utils/getRangeSteps.d.ts +1 -1
  956. package/dist/utils/getRangeSteps.js +2 -2
  957. package/dist/utils/getRangeSteps.js.map +1 -1
  958. package/dist/utils/nearest.js +1 -1
  959. package/dist/utils/nearest.js.map +1 -1
  960. package/dist/window-splitter/_window-splitter.scss +83 -112
  961. package/dist/window-splitter/useWindowSplitter.d.ts +3 -5
  962. package/dist/window-splitter/useWindowSplitter.js +3 -11
  963. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  964. package/jest.config.ts +4 -0
  965. package/package.json +374 -32
  966. package/scripts/{copySassFiles.js → copySassFiles.ts} +5 -5
  967. package/scripts/tsconfig.json +18 -0
  968. package/src/RootHtml.tsx +95 -0
  969. package/src/__tests__/RootHtml.node.tsx +46 -0
  970. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  971. package/src/__tests__/useDebouncedFunction.tsx +65 -24
  972. package/src/__tests__/useElementSize.tsx +181 -0
  973. package/src/__tests__/useThrottledFunction.tsx +54 -0
  974. package/src/__tests__/useWindowSize.node.tsx +56 -0
  975. package/src/__tests__/useWindowSize.tsx +156 -0
  976. package/src/_box-shadows.scss +12 -2
  977. package/src/_core.scss +207 -253
  978. package/src/_utils.scss +89 -0
  979. package/src/app-bar/AppBar.tsx +59 -19
  980. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +21 -21
  981. package/src/app-bar/_app-bar.scss +114 -122
  982. package/src/avatar/Avatar.tsx +25 -4
  983. package/src/avatar/__tests__/Avatar.tsx +1 -1
  984. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  985. package/src/avatar/_avatar.scss +74 -81
  986. package/src/badge/_badge.scss +97 -59
  987. package/src/box/_box.scss +72 -81
  988. package/src/button/TooltippedButton.tsx +120 -0
  989. package/src/button/__tests__/TooltippedButton.tsx +60 -0
  990. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  991. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +26 -0
  992. package/src/button/_button.scss +170 -180
  993. package/src/card/Card.tsx +5 -3
  994. package/src/card/CardContent.tsx +3 -3
  995. package/src/card/ClickableCard.tsx +105 -0
  996. package/src/card/__tests__/ClickableCard.tsx +66 -0
  997. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  998. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  999. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +20 -0
  1000. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  1001. package/src/card/_card.scss +81 -82
  1002. package/src/card/styles.ts +19 -10
  1003. package/src/chip/_chip.scss +137 -148
  1004. package/src/dialog/FixedDialog.tsx +5 -4
  1005. package/src/dialog/_dialog.scss +179 -162
  1006. package/src/divider/Divider.tsx +0 -1
  1007. package/src/divider/_divider.scss +61 -70
  1008. package/src/draggable/_draggable.scss +16 -12
  1009. package/src/draggable/useDraggable.ts +26 -25
  1010. package/src/draggable/utils.ts +16 -50
  1011. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +2 -2
  1012. package/src/expansion-panel/_expansion-panel.scss +76 -50
  1013. package/src/expansion-panel/useExpansionPanels.ts +20 -16
  1014. package/src/form/Form.tsx +2 -1
  1015. package/src/form/Label.tsx +5 -5
  1016. package/src/form/MenuItemInputToggle.tsx +46 -64
  1017. package/src/form/NativeSelect.tsx +6 -3
  1018. package/src/form/Option.tsx +8 -2
  1019. package/src/form/ResizingTextAreaWrapper.tsx +75 -0
  1020. package/src/form/Select.tsx +251 -327
  1021. package/src/form/SelectedOption.tsx +55 -0
  1022. package/src/form/TextArea.tsx +40 -32
  1023. package/src/form/TextField.tsx +19 -19
  1024. package/src/form/TextFieldContainer.tsx +2 -2
  1025. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  1026. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  1027. package/src/form/__tests__/Select.tsx +439 -0
  1028. package/src/form/__tests__/TextArea.tsx +433 -0
  1029. package/src/form/__tests__/TextField.tsx +195 -0
  1030. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  1031. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  1032. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  1033. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  1034. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +548 -0
  1035. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +279 -0
  1036. package/src/form/__tests__/useFormReset.tsx +195 -0
  1037. package/src/form/_form.scss +1336 -1260
  1038. package/src/form/menuItemInputToggleStyles.ts +78 -0
  1039. package/src/form/selectUtils.ts +3 -14
  1040. package/src/form/textAreaStyles.ts +2 -2
  1041. package/src/form/{TextFieldContainerStyles.ts → textFieldContainerStyles.ts} +7 -7
  1042. package/src/form/types.ts +6 -8
  1043. package/src/form/useCombobox.ts +523 -0
  1044. package/src/form/useEditableCombobox.ts +139 -0
  1045. package/src/form/useFormReset.ts +48 -0
  1046. package/src/form/useListboxProvider.ts +9 -7
  1047. package/src/form/useResizingTextArea.ts +66 -25
  1048. package/src/form/useSelectCombobox.ts +70 -0
  1049. package/src/form/utils.ts +17 -4
  1050. package/src/icon/IconRotator.tsx +1 -2
  1051. package/src/icon/_icon.scss +105 -112
  1052. package/src/index.ts +23 -2
  1053. package/src/interaction/_interaction.scss +144 -135
  1054. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +4 -4
  1055. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +1 -1
  1056. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +18 -18
  1057. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +1 -1
  1058. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +1 -1
  1059. package/src/layout/_layout.scss +82 -86
  1060. package/src/layout/useLayoutAppBarHeight.ts +5 -9
  1061. package/src/link/_link.scss +74 -66
  1062. package/src/list/ListItem.tsx +20 -13
  1063. package/src/list/ListItemAddon.tsx +5 -3
  1064. package/src/list/ListItemChildren.tsx +4 -2
  1065. package/src/list/ListItemLink.tsx +4 -4
  1066. package/src/list/__tests__/ListItem.tsx +1 -1
  1067. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +1 -1
  1068. package/src/list/__tests__/getListItemHeight.ts +2 -2
  1069. package/src/list/_list.scss +187 -184
  1070. package/src/list/getListItemHeight.ts +2 -3
  1071. package/src/list/listItemStyles.ts +15 -5
  1072. package/src/list/types.ts +28 -6
  1073. package/src/menu/Menu.tsx +10 -2
  1074. package/src/menu/MenuItemCircularProgress.tsx +116 -0
  1075. package/src/menu/__tests__/MenuItemCircularProgress.tsx +39 -0
  1076. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +68 -0
  1077. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  1078. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  1079. package/src/menu/_menu.scss +29 -50
  1080. package/src/menu/useContextMenu.ts +3 -3
  1081. package/src/movement/types.ts +50 -25
  1082. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  1083. package/src/movement/utils.ts +12 -2
  1084. package/src/overlay/_overlay.scss +39 -42
  1085. package/src/portal/PortalContainerProvider.tsx +10 -2
  1086. package/src/portal/__tests__/PortalContainerProvider.tsx +23 -0
  1087. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  1088. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
  1089. package/src/positioning/useFixedPositioning.ts +0 -6
  1090. package/src/progress/_progress.scss +33 -33
  1091. package/src/responsive-item/_responsive-item.scss +91 -89
  1092. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  1093. package/src/searching/__tests__/fuzzy.ts +169 -0
  1094. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  1095. package/src/searching/__tests__/useFuzzyMatch.tsx +200 -0
  1096. package/src/searching/caseInsensitive.ts +200 -0
  1097. package/src/searching/fuzzy.ts +175 -0
  1098. package/src/searching/toSearchQuery.ts +20 -0
  1099. package/src/searching/types.ts +34 -0
  1100. package/src/searching/useFuzzyMatch.ts +42 -0
  1101. package/src/searching/utils.ts +53 -0
  1102. package/src/segmented-button/_segmented-button.scss +86 -92
  1103. package/src/sheet/_sheet.scss +107 -123
  1104. package/src/sheet/styles.ts +14 -15
  1105. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  1106. package/src/snackbar/Snackbar.tsx +28 -32
  1107. package/src/snackbar/Toast.tsx +7 -2
  1108. package/src/snackbar/ToastManager.tsx +3 -2
  1109. package/src/snackbar/__tests__/Snackbar.tsx +12 -11
  1110. package/src/snackbar/__tests__/ToastManagerProvider.tsx +20 -42
  1111. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  1112. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  1113. package/src/snackbar/_snackbar.scss +148 -144
  1114. package/src/snackbar/snackbarStyles.ts +3 -1
  1115. package/src/suspense/__tests__/CircularProgressSuspense.tsx +90 -0
  1116. package/src/suspense/__tests__/NullSuspense.tsx +46 -0
  1117. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +24 -0
  1118. package/src/table/TableCheckbox.tsx +4 -2
  1119. package/src/table/TableRadio.tsx +4 -2
  1120. package/src/table/_table.scss +214 -227
  1121. package/src/table/tableCellStyles.ts +1 -1
  1122. package/src/tabs/Tab.tsx +110 -70
  1123. package/src/tabs/__tests__/Tab.tsx +25 -2
  1124. package/src/tabs/__tests__/TabList.tsx +4 -4
  1125. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +2 -2
  1126. package/src/tabs/_tabs.scss +62 -53
  1127. package/src/tabs/tabIndicatorStyles.ts +13 -3
  1128. package/src/tabs/tabListStyles.ts +1 -1
  1129. package/src/tabs/tabStyles.ts +16 -4
  1130. package/src/tabs/useTabList.ts +10 -8
  1131. package/src/test-utils/ResizeObserver.ts +100 -53
  1132. package/src/test-utils/__tests__/ResizeObserver.ts +1 -1
  1133. package/src/test-utils/data-testid.ts +5 -1
  1134. package/src/test-utils/matchMedia.ts +2 -2
  1135. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  1136. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  1137. package/src/test-utils/polyfills/index.ts +2 -0
  1138. package/src/theme/_theme.scss +243 -133
  1139. package/src/tooltip/_tooltip.scss +76 -83
  1140. package/src/tooltip/useTooltip.ts +23 -16
  1141. package/src/transition/SkeletonPlaceholder.tsx +18 -6
  1142. package/src/transition/__tests__/SkeletonPlaceholder.tsx +72 -0
  1143. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +24 -0
  1144. package/src/transition/__tests__/utils.ts +25 -0
  1145. package/src/transition/_transition.scss +89 -78
  1146. package/src/transition/skeletonPlaceholderUtils.ts +105 -0
  1147. package/src/transition/useCollapseTransition.ts +6 -24
  1148. package/src/transition/useSkeletonPlaceholder.ts +62 -47
  1149. package/src/transition/utils.ts +10 -5
  1150. package/src/tree/DefaultTreeItemRenderer.tsx +6 -2
  1151. package/src/tree/Tree.tsx +8 -4
  1152. package/src/tree/TreeItem.tsx +3 -4
  1153. package/src/tree/__tests__/Tree.tsx +1 -1
  1154. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +124 -124
  1155. package/src/tree/_tree.scss +111 -109
  1156. package/src/tree/styles.ts +0 -9
  1157. package/src/tree/useTreeMovement.ts +1 -1
  1158. package/src/types.ts +13 -0
  1159. package/src/typography/SrOnly.tsx +9 -9
  1160. package/src/typography/Typography.tsx +19 -19
  1161. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1162. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  1163. package/src/typography/_typography.scss +141 -87
  1164. package/src/useDebouncedFunction.ts +12 -10
  1165. package/src/useElementSize.ts +83 -0
  1166. package/src/useEnsuredState.ts +1 -1
  1167. package/src/useResizeListener.ts +3 -1
  1168. package/src/useResizeObserver.ts +8 -45
  1169. package/src/useThrottledFunction.ts +12 -10
  1170. package/src/useWindowSize.ts +29 -19
  1171. package/src/utils/__tests__/getMiddleOfRange.ts +12 -0
  1172. package/src/utils/__tests__/getRangeDefaultValue.ts +47 -0
  1173. package/src/utils/alphaNumericSort.ts +3 -16
  1174. package/src/utils/getMiddleOfRange.ts +26 -0
  1175. package/src/utils/getRangeDefaultValue.ts +8 -15
  1176. package/src/utils/getRangeSteps.ts +2 -2
  1177. package/src/utils/nearest.ts +1 -1
  1178. package/src/window-splitter/_window-splitter.scss +83 -112
  1179. package/src/window-splitter/useWindowSplitter.ts +12 -28
  1180. package/tsconfig.types.json +1 -1
  1181. package/.turbo/turbo-lint.log +0 -12
  1182. package/.turbo/turbo-test.log +0 -166
  1183. package/dist/divider/VerticalDivider.d.ts +0 -32
  1184. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  1185. package/dist/form/SelectValue.d.ts +0 -17
  1186. package/dist/form/SelectValue.js +0 -32
  1187. package/dist/form/SelectValue.js.map +0 -1
  1188. package/dist/form/TextFieldContainerStyles.js.map +0 -1
  1189. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  1190. package/dist/icon/MaterialIconsProvider.js +0 -17
  1191. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  1192. package/dist/icon/MaterialSymbolsProvider.d.ts +0 -145
  1193. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  1194. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  1195. package/dist/link/LinkProvider.d.ts +0 -29
  1196. package/dist/menu/menuConfig.d.ts +0 -60
  1197. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  1198. package/dist/utils/filters.d.ts +0 -196
  1199. package/dist/utils/filters.js +0 -67
  1200. package/dist/utils/filters.js.map +0 -1
  1201. package/src/form/SelectValue.tsx +0 -39
  1202. package/src/utils/__tests__/filters.ts +0 -279
  1203. package/src/utils/filters.ts +0 -320
@@ -5,11 +5,11 @@ const styles = bem("rmd-list-item");
5
5
  /**
6
6
  * @remarks \@since 6.0.0
7
7
  */ export function listItem(options = {}) {
8
- const { className, link = false, height = "auto", clickable = true, threeLines = false, disabled = false, disabledOpacity = false, pressedClassName } = options;
8
+ const { className, link = false, height = "auto", clickable = true, multiline = false, disabled = false, disabledOpacity = false, pressedClassName } = options;
9
9
  return cnb(styles({
10
10
  link,
11
11
  [height]: height !== "auto",
12
- "three-lines": threeLines,
12
+ multiline,
13
13
  "disabled-color": disabled && !disabledOpacity,
14
14
  "disabled-opacity": disabled && disabledOpacity
15
15
  }), cssUtils({
@@ -29,13 +29,13 @@ const styles = bem("rmd-list-item");
29
29
  *
30
30
  * @remarks \@since 6.0.0
31
31
  */ export function listItemAddon(options = {}) {
32
- const { type = "icon", position = "middle", className, addonAfter = false, disableCenteredMedia = false } = options;
32
+ const { type = "icon", position = "middle", className, addonAfter = false, disableCenteredMedia = false, disableBeforeSpacing = false } = options;
33
33
  const isMedia = type === "media" || type === "large-media";
34
34
  const isAvatar = type === "avatar";
35
35
  return cnb(styles("addon", {
36
36
  [position]: position !== "middle",
37
- before: !addonAfter,
38
- "avatar-before": !addonAfter && isAvatar,
37
+ before: !disableBeforeSpacing && !addonAfter,
38
+ "avatar-before": !disableBeforeSpacing && !addonAfter && isAvatar,
39
39
  media: isMedia,
40
40
  "media-large": type === "large-media",
41
41
  "media-centered": isMedia && !disableCenteredMedia
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/list/listItemStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type {\n ListItemAddonPosition,\n ListItemAddonType,\n ListItemHeight,\n} from \"./types.js\";\n\nconst styles = bem(\"rmd-list-item\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemClassNameOptions {\n className?: string;\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n\n /**\n * @defaultValue `false`\n */\n threeLines?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disabled?: boolean;\n\n /**\n * Note: This does nothing if the `disabled` prop is not enabled.\n *\n * @defaultValue `false`\n * @remarks \\@since 2.4.3\n */\n disabledOpacity?: boolean;\n\n /**\n * Set this to `false` if the list item should not gain the interaction\n * states: hover, focus, press, etc. This is kind of like being disabled\n * without the disabled styles being applied.\n *\n * @defaultValue `true`\n */\n clickable?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface InternalListItemClassNameOptions\n extends ListItemClassNameOptions {\n /**\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n * This is prop is used internally when integrating with the\n * {@link useElementInteraction} hook.\n */\n pressedClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItem(\n options: InternalListItemClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n height = \"auto\",\n clickable = true,\n threeLines = false,\n disabled = false,\n disabledOpacity = false,\n pressedClassName,\n } = options;\n\n return cnb(\n styles({\n link,\n [height]: height !== \"auto\",\n \"three-lines\": threeLines,\n \"disabled-color\": disabled && !disabledOpacity,\n \"disabled-opacity\": disabled && disabledOpacity,\n }),\n cssUtils({ surface: clickable }),\n pressedClassName,\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemTextClassNameOptions {\n className?: string;\n /**\n * @defaultValue `false`\n */\n clamped?: boolean;\n\n /**\n * @defaultValue `false`\n */\n secondary?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItemText(\n options: ListItemTextClassNameOptions = {}\n): string {\n const { className, secondary = false, clamped = false } = options;\n\n return cnb(\n styles(\"text\", {\n clamped: secondary && clamped,\n secondary,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemAddonClassNameOptions {\n className?: string;\n\n /**\n * The addon type that is used to adjust the spacing styles.\n *\n * @defaultValue `\"icon\"`\n */\n type?: ListItemAddonType;\n\n /**\n * The vertical position to use for the addon.\n *\n * @defaultValue `\"middle\"`\n */\n position?: ListItemAddonPosition;\n\n /**\n * Boolean if the addon should appear after the `children`.\n *\n * @defaultValue `false`\n */\n addonAfter?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableCenteredMedia?: boolean;\n}\n\n/**\n *\n * @remarks \\@since 6.0.0\n */\nexport function listItemAddon(\n options: ListItemAddonClassNameOptions = {}\n): string {\n const {\n type = \"icon\",\n position = \"middle\",\n className,\n addonAfter = false,\n disableCenteredMedia = false,\n } = options;\n\n const isMedia = type === \"media\" || type === \"large-media\";\n const isAvatar = type === \"avatar\";\n\n return cnb(\n styles(\"addon\", {\n [position]: position !== \"middle\",\n before: !addonAfter,\n \"avatar-before\": !addonAfter && isAvatar,\n media: isMedia,\n \"media-large\": type === \"large-media\",\n \"media-centered\": isMedia && !disableCenteredMedia,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","listItem","options","className","link","height","clickable","threeLines","disabled","disabledOpacity","pressedClassName","surface","listItemText","secondary","clamped","listItemAddon","type","position","addonAfter","disableCenteredMedia","isMedia","isAvatar","before","media"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAOtC,MAAMC,SAASD,IAAI;AAsDnB;;CAEC,GACD,OAAO,SAASE,SACdC,UAA4C,CAAC,CAAC;IAE9C,MAAM,EACJC,SAAS,EACTC,OAAO,KAAK,EACZC,SAAS,MAAM,EACfC,YAAY,IAAI,EAChBC,aAAa,KAAK,EAClBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,gBAAgB,EACjB,GAAGR;IAEJ,OAAOL,IACLG,OAAO;QACLI;QACA,CAACC,OAAO,EAAEA,WAAW;QACrB,eAAeE;QACf,kBAAkBC,YAAY,CAACC;QAC/B,oBAAoBD,YAAYC;IAClC,IACAX,SAAS;QAAEa,SAASL;IAAU,IAC9BI,kBACAP;AAEJ;AAgBA;;CAEC,GACD,OAAO,SAASS,aACdV,UAAwC,CAAC,CAAC;IAE1C,MAAM,EAAEC,SAAS,EAAEU,YAAY,KAAK,EAAEC,UAAU,KAAK,EAAE,GAAGZ;IAE1D,OAAOL,IACLG,OAAO,QAAQ;QACbc,SAASD,aAAaC;QACtBD;IACF,IACAV;AAEJ;AA2CA;;;CAGC,GACD,OAAO,SAASY,cACdb,UAAyC,CAAC,CAAC;IAE3C,MAAM,EACJc,OAAO,MAAM,EACbC,WAAW,QAAQ,EACnBd,SAAS,EACTe,aAAa,KAAK,EAClBC,uBAAuB,KAAK,EAC7B,GAAGjB;IAEJ,MAAMkB,UAAUJ,SAAS,WAAWA,SAAS;IAC7C,MAAMK,WAAWL,SAAS;IAE1B,OAAOnB,IACLG,OAAO,SAAS;QACd,CAACiB,SAAS,EAAEA,aAAa;QACzBK,QAAQ,CAACJ;QACT,iBAAiB,CAACA,cAAcG;QAChCE,OAAOH;QACP,eAAeJ,SAAS;QACxB,kBAAkBI,WAAW,CAACD;IAChC,IACAhB;AAEJ"}
1
+ {"version":3,"sources":["../../src/list/listItemStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type {\n ListItemAddonPosition,\n ListItemAddonType,\n ListItemHeight,\n} from \"./types.js\";\n\nconst styles = bem(\"rmd-list-item\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemClassNameOptions {\n className?: string;\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n\n /**\n * @defaultValue `false`\n */\n multiline?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disabled?: boolean;\n\n /**\n * Note: This does nothing if the `disabled` prop is not enabled.\n *\n * @defaultValue `false`\n * @remarks \\@since 2.4.3\n */\n disabledOpacity?: boolean;\n\n /**\n * Set this to `false` if the list item should not gain the interaction\n * states: hover, focus, press, etc. This is kind of like being disabled\n * without the disabled styles being applied.\n *\n * @defaultValue `true`\n */\n clickable?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface InternalListItemClassNameOptions\n extends ListItemClassNameOptions {\n /**\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n * This is prop is used internally when integrating with the\n * {@link useElementInteraction} hook.\n */\n pressedClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItem(\n options: InternalListItemClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n height = \"auto\",\n clickable = true,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n pressedClassName,\n } = options;\n\n return cnb(\n styles({\n link,\n [height]: height !== \"auto\",\n multiline,\n \"disabled-color\": disabled && !disabledOpacity,\n \"disabled-opacity\": disabled && disabledOpacity,\n }),\n cssUtils({ surface: clickable }),\n pressedClassName,\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemTextClassNameOptions {\n className?: string;\n /**\n * @defaultValue `false`\n */\n clamped?: boolean;\n\n /**\n * @defaultValue `false`\n */\n secondary?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItemText(\n options: ListItemTextClassNameOptions = {}\n): string {\n const { className, secondary = false, clamped = false } = options;\n\n return cnb(\n styles(\"text\", {\n clamped: secondary && clamped,\n secondary,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemAddonClassNameOptions {\n className?: string;\n\n /**\n * The addon type that is used to adjust the spacing styles.\n *\n * @defaultValue `\"icon\"`\n */\n type?: ListItemAddonType;\n\n /**\n * The vertical position to use for the addon.\n *\n * @defaultValue `\"middle\"`\n */\n position?: ListItemAddonPosition;\n\n /**\n * Boolean if the addon should appear after the `children`.\n *\n * @defaultValue `false`\n */\n addonAfter?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableCenteredMedia?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableBeforeSpacing?: boolean;\n}\n\n/**\n *\n * @remarks \\@since 6.0.0\n */\nexport function listItemAddon(\n options: ListItemAddonClassNameOptions = {}\n): string {\n const {\n type = \"icon\",\n position = \"middle\",\n className,\n addonAfter = false,\n disableCenteredMedia = false,\n disableBeforeSpacing = false,\n } = options;\n\n const isMedia = type === \"media\" || type === \"large-media\";\n const isAvatar = type === \"avatar\";\n\n return cnb(\n styles(\"addon\", {\n [position]: position !== \"middle\",\n before: !disableBeforeSpacing && !addonAfter,\n \"avatar-before\": !disableBeforeSpacing && !addonAfter && isAvatar,\n media: isMedia,\n \"media-large\": type === \"large-media\",\n \"media-centered\": isMedia && !disableCenteredMedia,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","listItem","options","className","link","height","clickable","multiline","disabled","disabledOpacity","pressedClassName","surface","listItemText","secondary","clamped","listItemAddon","type","position","addonAfter","disableCenteredMedia","disableBeforeSpacing","isMedia","isAvatar","before","media"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAOtC,MAAMC,SAASD,IAAI;AAsDnB;;CAEC,GACD,OAAO,SAASE,SACdC,UAA4C,CAAC,CAAC;IAE9C,MAAM,EACJC,SAAS,EACTC,OAAO,KAAK,EACZC,SAAS,MAAM,EACfC,YAAY,IAAI,EAChBC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,gBAAgB,EACjB,GAAGR;IAEJ,OAAOL,IACLG,OAAO;QACLI;QACA,CAACC,OAAO,EAAEA,WAAW;QACrBE;QACA,kBAAkBC,YAAY,CAACC;QAC/B,oBAAoBD,YAAYC;IAClC,IACAX,SAAS;QAAEa,SAASL;IAAU,IAC9BI,kBACAP;AAEJ;AAgBA;;CAEC,GACD,OAAO,SAASS,aACdV,UAAwC,CAAC,CAAC;IAE1C,MAAM,EAAEC,SAAS,EAAEU,YAAY,KAAK,EAAEC,UAAU,KAAK,EAAE,GAAGZ;IAE1D,OAAOL,IACLG,OAAO,QAAQ;QACbc,SAASD,aAAaC;QACtBD;IACF,IACAV;AAEJ;AAoDA;;;CAGC,GACD,OAAO,SAASY,cACdb,UAAyC,CAAC,CAAC;IAE3C,MAAM,EACJc,OAAO,MAAM,EACbC,WAAW,QAAQ,EACnBd,SAAS,EACTe,aAAa,KAAK,EAClBC,uBAAuB,KAAK,EAC5BC,uBAAuB,KAAK,EAC7B,GAAGlB;IAEJ,MAAMmB,UAAUL,SAAS,WAAWA,SAAS;IAC7C,MAAMM,WAAWN,SAAS;IAE1B,OAAOnB,IACLG,OAAO,SAAS;QACd,CAACiB,SAAS,EAAEA,aAAa;QACzBM,QAAQ,CAACH,wBAAwB,CAACF;QAClC,iBAAiB,CAACE,wBAAwB,CAACF,cAAcI;QACzDE,OAAOH;QACP,eAAeL,SAAS;QACxB,kBAAkBK,WAAW,CAACF;IAChC,IACAhB;AAEJ"}
@@ -1,11 +1,11 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- import type { PropsWithRef } from "../types.js";
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ import { type PropsWithRef } from "../types.js";
3
3
  /**
4
4
  * The height to apply to the list item.
5
5
  *
6
6
  * Conversions:
7
7
  *
8
- * - height !== "auto" -> height
8
+ * - height !== undefined && height !== "auto" -> height
9
9
  * - secondaryText or left/right addon is media/media-large -> "extra-large"
10
10
  * - left/right addon is avatar -> "large"
11
11
  * - left/right addon is icon -> "medium"
@@ -48,6 +48,14 @@ export interface ListItemChildrenAddonProps {
48
48
  * @remarks \@since 6.0.0
49
49
  */
50
50
  leftAddonForceWrap?: boolean;
51
+ /**
52
+ * Set this to `true` to disable the additional spacing applied to the addons
53
+ * that appear before the `children` and the normal `--rmd-text-icon-spacing`
54
+ * value is used instead.
55
+ *
56
+ * @defaultValue `false`
57
+ */
58
+ disableLeftAddonSpacing?: boolean;
51
59
  /**
52
60
  * An optional addon to display to the right of the `primaryText` or
53
61
  * `children` and should be used with the `rightAddonType` prop to adjust
@@ -109,7 +117,14 @@ export interface ListItemChildrenAddonProps {
109
117
  */
110
118
  disableRightAddonCenteredMedia?: boolean;
111
119
  }
112
- export interface ListItemChildrenProps extends ListItemChildrenAddonProps {
120
+ /**
121
+ * Note: This interface was added since there are components that replace the
122
+ * {@link ListItemChildrenAddonProps} with renamed versions but should still
123
+ * support everything for rendering text.
124
+ *
125
+ * @remarks \@since 6.0.0
126
+ */
127
+ export interface ListItemChildrenTextProps {
113
128
  /**
114
129
  * The main content to display. When the `textChildren` prop is enabled and
115
130
  * there is child content, it will be treated as primary text and update the
@@ -165,10 +180,14 @@ export interface ListItemChildrenProps extends ListItemChildrenAddonProps {
165
180
  secondaryTextProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
166
181
  /**
167
182
  * Set this to `true` to allow the {@link secondaryText} to span multiple
168
- * lines and use the CSS clamp after two lines of text are visible.
183
+ * lines and use the CSS clamp after two lines of text are visible. The number
184
+ * of lines can be configured by `core.$list-item-multiline-clamp` or
185
+ * `@include core.list-set-var(item-multiline-clamp, $new-value)`.
169
186
  *
170
187
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp}
171
188
  * @defaultValue `false`
172
189
  */
173
- threeLines?: boolean;
190
+ multiline?: boolean;
191
+ }
192
+ export interface ListItemChildrenProps extends ListItemChildrenTextProps, ListItemChildrenAddonProps {
174
193
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/list/types.ts"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport type { PropsWithRef } from \"../types.js\";\n\n/**\n * The height to apply to the list item.\n *\n * Conversions:\n *\n * - height !== \"auto\" -&gt; height\n * - secondaryText or left/right addon is media/media-large -&gt; \"extra-large\"\n * - left/right addon is avatar -&gt; \"large\"\n * - left/right addon is icon -&gt; \"medium\"\n * - no addons and no secondary text -&gt; \"normal\"\n */\nexport type ListItemHeight =\n | \"auto\"\n | \"normal\"\n | \"medium\"\n | \"large\"\n | \"extra-large\";\n\nexport type ListItemAddonPosition = \"top\" | \"middle\" | \"bottom\";\nexport type ListItemAddonType = \"icon\" | \"avatar\" | \"media\" | \"large-media\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemChildrenAddonProps {\n /**\n * An optional addon to display to the left of the `primaryText` or\n * `children` and should be used with the `leftAddonType` prop to adjust\n * spacing.\n */\n leftAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the left of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n leftAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the left icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n leftAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n leftAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `leftAddonType === \"media\" || leftAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n leftAddonForceWrap?: boolean;\n\n /**\n * An optional addon to display to the right of the `primaryText` or\n * `children` and should be used with the `rightAddonType` prop to adjust\n * spacing.\n */\n rightAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the right of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n rightAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the right icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n rightAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n rightAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `rightAddonType === \"media\" || rightAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n rightAddonForceWrap?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableLeftAddonCenteredMedia?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableRightAddonCenteredMedia?: boolean;\n}\n\nexport interface ListItemChildrenProps extends ListItemChildrenAddonProps {\n /**\n * The main content to display. When the `textChildren` prop is enabled and\n * there is child content, it will be treated as primary text and update the\n * styles automatically.\n */\n children?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link children}, {@link primaryText}, and {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `primaryText` and optionally `secondaryText` within the list item.\n */\n textClassName?: string;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `secondaryText` within the list item.\n */\n secondaryTextClassName?: string;\n\n /**\n * Set this to `true` if the {@link children} should not automatically be\n * wrapped in the `ListItemText` component.\n *\n * @remarks \\@since 6.0.0 Renamed from `textChildren` since it was defaulted on.\n * @defaultValue `false`\n */\n disableTextChildren?: boolean;\n\n /**\n * An optional element that should be rendered as the `primaryText` within the\n * list item. It is most likely easier to use the `children` prop instead, but\n * this allows you to create more complex components with the `ListItem` since\n * you can provided `children` and have the styles for the `primaryText` still\n * applied. By default, this will only allow one line of text and add ellipsis\n * for any text overflow.\n */\n primaryText?: ReactNode;\n\n /**\n * An optional element that should be rendered as the `secondaryText` within\n * the list item. By default, this will only span one line and add ellipsis\n * for overflow.\n */\n secondaryText?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /**\n * Set this to `true` to allow the {@link secondaryText} to span multiple\n * lines and use the CSS clamp after two lines of text are visible.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp}\n * @defaultValue `false`\n */\n threeLines?: boolean;\n}\n"],"names":[],"mappings":"AAmIA,WAyEC"}
1
+ {"version":3,"sources":["../../src/list/types.ts"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\n\n/**\n * The height to apply to the list item.\n *\n * Conversions:\n *\n * - height !== undefined && height !== \"auto\" -&gt; height\n * - secondaryText or left/right addon is media/media-large -&gt; \"extra-large\"\n * - left/right addon is avatar -&gt; \"large\"\n * - left/right addon is icon -&gt; \"medium\"\n * - no addons and no secondary text -&gt; \"normal\"\n */\nexport type ListItemHeight =\n | \"auto\"\n | \"normal\"\n | \"medium\"\n | \"large\"\n | \"extra-large\";\n\nexport type ListItemAddonPosition = \"top\" | \"middle\" | \"bottom\";\nexport type ListItemAddonType = \"icon\" | \"avatar\" | \"media\" | \"large-media\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemChildrenAddonProps {\n /**\n * An optional addon to display to the left of the `primaryText` or\n * `children` and should be used with the `leftAddonType` prop to adjust\n * spacing.\n */\n leftAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the left of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n leftAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the left icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n leftAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n leftAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `leftAddonType === \"media\" || leftAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n leftAddonForceWrap?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableLeftAddonSpacing?: boolean;\n\n /**\n * An optional addon to display to the right of the `primaryText` or\n * `children` and should be used with the `rightAddonType` prop to adjust\n * spacing.\n */\n rightAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the right of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n rightAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the right icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n rightAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n rightAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `rightAddonType === \"media\" || rightAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n rightAddonForceWrap?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableLeftAddonCenteredMedia?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableRightAddonCenteredMedia?: boolean;\n}\n\n/**\n * Note: This interface was added since there are components that replace the\n * {@link ListItemChildrenAddonProps} with renamed versions but should still\n * support everything for rendering text.\n *\n * @remarks \\@since 6.0.0\n */\nexport interface ListItemChildrenTextProps {\n /**\n * The main content to display. When the `textChildren` prop is enabled and\n * there is child content, it will be treated as primary text and update the\n * styles automatically.\n */\n children?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link children}, {@link primaryText}, and {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `primaryText` and optionally `secondaryText` within the list item.\n */\n textClassName?: string;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `secondaryText` within the list item.\n */\n secondaryTextClassName?: string;\n\n /**\n * Set this to `true` if the {@link children} should not automatically be\n * wrapped in the `ListItemText` component.\n *\n * @remarks \\@since 6.0.0 Renamed from `textChildren` since it was defaulted on.\n * @defaultValue `false`\n */\n disableTextChildren?: boolean;\n\n /**\n * An optional element that should be rendered as the `primaryText` within the\n * list item. It is most likely easier to use the `children` prop instead, but\n * this allows you to create more complex components with the `ListItem` since\n * you can provided `children` and have the styles for the `primaryText` still\n * applied. By default, this will only allow one line of text and add ellipsis\n * for any text overflow.\n */\n primaryText?: ReactNode;\n\n /**\n * An optional element that should be rendered as the `secondaryText` within\n * the list item. By default, this will only span one line and add ellipsis\n * for overflow.\n */\n secondaryText?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /**\n * Set this to `true` to allow the {@link secondaryText} to span multiple\n * lines and use the CSS clamp after two lines of text are visible. The number\n * of lines can be configured by `core.$list-item-multiline-clamp` or\n * `@include core.list-set-var(item-multiline-clamp, $new-value)`.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp}\n * @defaultValue `false`\n */\n multiline?: boolean;\n}\n\nexport interface ListItemChildrenProps\n extends ListItemChildrenTextProps,\n ListItemChildrenAddonProps {}\n"],"names":[],"mappings":"AAgOA,WAEiC"}
@@ -1,5 +1,5 @@
1
1
  import { type CSSProperties, type HTMLAttributes } from "react";
2
- import { type FloatingActionButtonPosition } from "../button/FloatingActionButton.jsx";
2
+ import { type FloatingActionButtonPosition } from "../button/FloatingActionButton.js";
3
3
  import { type ListElement, type ListProps } from "../list/List.js";
4
4
  import { type GetDefaultFocusedIndex } from "../movement/types.js";
5
5
  import { type CalculateFixedPositionOptions } from "../positioning/types.js";
package/dist/menu/Menu.js CHANGED
@@ -10,6 +10,7 @@ import { useFixedPositioning } from "../positioning/useFixedPositioning.js";
10
10
  import { useScrollLock } from "../scroll/useScrollLock.js";
11
11
  import { useScaleTransition } from "../transition/useScaleTransition.js";
12
12
  import { useEnsuredId } from "../useEnsuredId.js";
13
+ import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
13
14
  import { MenuConfigurationProvider, useMenuConfiguration } from "./MenuConfigurationProvider.js";
14
15
  import { MenuSheet } from "./MenuSheet.js";
15
16
  import { MenuWidget } from "./MenuWidget.js";
@@ -125,7 +126,7 @@ const noop = ()=>{
125
126
  return isHoverDisabled || cancelUnmountFocus.current || root && !!activeId && id !== activeId;
126
127
  }
127
128
  });
128
- const { ref, style, callbacks } = useFixedPositioning({
129
+ const { ref, style, callbacks, updateStyle } = useFixedPositioning({
129
130
  ...transitionOptions,
130
131
  onEnter,
131
132
  style: isSheet ? propStyle : menuStyle,
@@ -211,6 +212,16 @@ const noop = ()=>{
211
212
  role,
212
213
  visible
213
214
  ]);
215
+ useIsomorphicLayoutEffect(()=>{
216
+ if (!visible) {
217
+ return;
218
+ }
219
+ updateStyle();
220
+ }, [
221
+ updateStyle,
222
+ children,
223
+ visible
224
+ ]);
214
225
  return /*#__PURE__*/ _jsx(MenuConfigurationProvider, {
215
226
  horizontal: horizontal,
216
227
  renderAsSheet: renderAsSheet,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/Menu.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useEffect,\n useRef,\n type CSSProperties,\n type HTMLAttributes,\n} from \"react\";\nimport { type FloatingActionButtonPosition } from \"../button/FloatingActionButton.jsx\";\nimport { useFocusContainer } from \"../focus/useFocusContainer.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { type CalculateFixedPositionOptions } from \"../positioning/types.js\";\nimport {\n useFixedPositioning,\n type FixedPositioningOptions,\n} from \"../positioning/useFixedPositioning.js\";\nimport { useScrollLock } from \"../scroll/useScrollLock.js\";\nimport {\n useScaleTransition,\n type ScaleTransitionHookOptions,\n} from \"../transition/useScaleTransition.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n MenuConfigurationProvider,\n useMenuConfiguration,\n type MenuConfiguration,\n type MenuOrientationProps,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuSheet, type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuWidget } from \"./MenuWidget.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\nimport { getDefaultAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-menu-background-color\"?: string;\n \"--rmd-menu-color\"?: string;\n \"--rmd-menu-min-width\"?: string | number;\n \"--rmd-menu-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuTransitionProps = Omit<\n ScaleTransitionHookOptions<HTMLDivElement>,\n \"transitionIn\" | \"vertical\" | \"nodeRef\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConfigurationProps extends CalculateFixedPositionOptions {\n /**\n * @see {@link ScaleTransitionHookOptions.temporary}\n * @defaultValue `true`\n */\n temporary?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * Boolean if the menu should not gain the elevation styles and should only be\n * set to `true` when rendering within a `Sheet`.\n *\n * @defaultValue `false`\n */\n disableElevation?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * @see {@link FixedPositioningOptions.transformOrigin}\n * @defaultValue `true`\n */\n transformOrigin?: boolean;\n\n /**\n * Boolean if the menu should close if the page is scrolled. The default\n * behavior is to just update the position of the menu relative to the menu\n * button until it can no longer be visible within the viewport.\n *\n * @defaultValue `false`\n */\n closeOnScroll?: boolean;\n\n /**\n * Boolean if the page should no longer be scrollable while the menu is\n * visible.\n *\n * @defaultValue `false`\n */\n preventScroll?: boolean;\n\n /**\n * Boolean if the menu should close instead of repositioning itself if the\n * browser window is resized.\n *\n * @defaultValue `false`\n */\n closeOnResize?: boolean;\n\n /** @see {@link FixedPositioningOptions.getFixedPositionOptions} */\n getFixedPositionOptions?(): CalculateFixedPositionOptions;\n}\n\n/**\n * @remarks\n * \\@since 5.1.0\n * \\@since 6.0.0 Renamed from `MenuListProps` to `MenuListConvenienceProps`\n */\nexport interface MenuListConvenienceProps {\n /**\n * An optional style to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listStyle?: CSSProperties;\n\n /**\n * An optional className to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listClassName?: string;\n\n /**\n * Any additional props to pass to the `List` component that surrounds the\n * `Menu`'s `MenuItem`s.\n */\n listProps?: PropsWithRef<Omit<ListProps, \"horizontal\">, ListElement>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConvenienceProps extends MenuConfigurationProps {\n /**\n * This can be used to apply additional props to the `Menu` component.\n *\n * Note: You can override the `style` and `className` using\n * {@link menuStyle} and {@link menuClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <DropdownMenu\n * {...props}\n * menuProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * getFixedPositionOptions: () => ({\n * preventOverlap: true,\n * }),\n * }}\n * />\n * ```\n */\n menuProps?: PropsWithRef<\n Omit<\n MenuProps,\n | \"children\"\n | \"fixedTo\"\n | \"visible\"\n | \"onRequestClose\"\n | \"getDefaultFocusedIndex\"\n >,\n HTMLDivElement\n >;\n\n /**\n * Convenience prop to apply custom style to the `Menu` component.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Menu` component.\n */\n menuClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuFixedPositioningOptions = Omit<\n FixedPositioningOptions<HTMLElement, HTMLDivElement>,\n \"onScroll\" | \"onResize\"\n>;\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest Menu, Transition, and Portal API.\n */\nexport interface MenuProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuConfiguration,\n MenuConfigurationProps,\n MenuFixedPositioningOptions,\n MenuOrientationProps,\n MenuTransitionProps,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps {\n visible: boolean;\n onRequestClose(): void;\n\n /**\n * @defaultValue `\"menu-\" + useId()`\n */\n id?: string;\n\n /**\n * This is used to set the default focus index when the menu is visible.\n *\n * @internal\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * Custom style that should be applied to the menu only while not rendered\n * within a sheet since the {@link style} would be applied to both versions.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Custom class name that should be applied only while not rendered within a\n * sheet.\n */\n menuClassName?: string;\n\n /**\n * @internal\n *\n * This is only used to update the default anchor when the DropdownMenu's\n * toggle is a floating action button.\n */\n floating?: FloatingActionButtonPosition;\n}\n\n/**\n * **Client Component**\n *\n * This component should generally only be used to implement context menus with\n * the `useContextMenu` hook. Otherwise, the `DropdownMenu` component should be\n * used.\n *\n * @see The `useContextMenu` hook for an example.\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated this component to implement all the `Menu`\n * functionality instead of requiring the `useMenu` hook and `MenuWidget`\n * component. In addition, the `renderAsSheet` behavior has been moved into this\n * implementation so that the `MenuRenderer` is no longer required and context\n * menus can appear as a `Sheet`.\n */\nexport const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(\n function Menu(props, propRef) {\n const {\n id: propId,\n style: propStyle,\n role = \"menu\",\n children,\n horizontal: _horizontal,\n sheetHeader: _sheetHeader,\n sheetFooter: _sheetFooter,\n renderAsSheet: _renderAsSheet,\n sheetPosition: _sheetPosition,\n sheetVerticalSize: _sheetVerticalSize,\n sheetProps,\n sheetStyle,\n sheetClassName,\n menuStyle,\n menuClassName,\n disableElevation = false,\n temporary = true,\n tabIndex = -1,\n fixedTo,\n className,\n classNames,\n timeout,\n appear,\n enter,\n exit,\n onEnter,\n onEntering = noop,\n onEntered = noop,\n onExit,\n onExiting,\n onExited = noop,\n onKeyDown = noop,\n listProps,\n listStyle,\n listClassName,\n visible,\n onRequestClose,\n floating,\n anchor,\n closeOnResize = false,\n closeOnScroll = false,\n preventScroll = false,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin = true,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n disablePortal: propDisablePortal,\n disableTransition,\n ...remaining\n } = props;\n const { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy } =\n props;\n\n const id = useEnsuredId(propId, \"menu\");\n const {\n root,\n menubar,\n menuitem,\n activeId,\n animatedOnceRef,\n hoverTimeoutRef,\n disableHoverMode,\n } = useMenuBarContext();\n const {\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n } = useMenuConfiguration(props);\n const { isPhone } = useAppSize();\n const isSheet =\n renderAsSheet === true || (renderAsSheet === \"phone\" && isPhone);\n\n const entered = useRef(false);\n const cancelUnmountFocus = useRef(false);\n const hideWithoutRefocus = (): void => {\n cancelUnmountFocus.current = true;\n onRequestClose();\n };\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n\n const { eventHandlers, transitionOptions } = useFocusContainer({\n nodeRef: propRef,\n activate: visible,\n onKeyDown(event) {\n onKeyDown(event);\n\n // when a menu is within a sheet, it should not trigger the custom\n // keyboard behavior\n if (isSheet) {\n return;\n }\n\n switch (event.key) {\n case \"Escape\":\n // prevent parent components that have an \"Escape\" keypress event\n // from being triggered as well\n event.stopPropagation();\n disableHoverMode();\n onRequestClose();\n break;\n case \"Tab\":\n // since menus are portalled, tab index is kinda broke so just close\n // the menu instead of doing default tab behavior\n event.preventDefault();\n\n if (!menuitem) {\n // pressing the tab key should still cascade close all menus\n event.stopPropagation();\n }\n disableHoverMode();\n onRequestClose();\n break;\n case \"ArrowUp\":\n if (!root && menuitem && horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n case \"ArrowLeft\":\n if (!root && menuitem && !horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n }\n },\n onEntering(appearing) {\n onEntering(appearing);\n entered.current = true;\n },\n onEntered(appearing) {\n onEntered(appearing);\n entered.current = true;\n cancelUnmountFocus.current = false;\n animatedOnceRef.current = true;\n },\n onExited() {\n onExited();\n entered.current = false;\n },\n onExiting,\n disableTransition,\n isFocusTypeDisabled(type) {\n if (role === \"listbox\") {\n return !isSheet;\n }\n\n if (type === \"keyboard\") {\n return isSheet;\n }\n\n const isHoverDisabled = mouse && hoverTimeoutRef.current === 0;\n if (type === \"mount\") {\n return isHoverDisabled;\n }\n\n return (\n isHoverDisabled ||\n cancelUnmountFocus.current ||\n (root && !!activeId && id !== activeId)\n );\n },\n });\n\n const { ref, style, callbacks } = useFixedPositioning({\n ...transitionOptions,\n onEnter,\n style: isSheet ? propStyle : menuStyle,\n fixedTo,\n anchor: getDefaultAnchor({\n anchor,\n menubar,\n floating,\n menuitem: !root && menuitem,\n horizontal,\n }),\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n onResize: closeOnResize ? hideWithoutRefocus : undefined,\n onScroll(_event, data) {\n if (!data.visible || closeOnScroll) {\n hideWithoutRefocus();\n }\n },\n });\n const { rendered, disablePortal, elementProps } = useScaleTransition({\n nodeRef: ref,\n className: cnb(!isSheet && menuClassName, className),\n transitionIn: visible,\n vertical: !horizontal,\n temporary,\n timeout: isSheet || disableTransition ? 0 : timeout,\n classNames,\n appear,\n enter,\n exit,\n onExit,\n onExiting: transitionOptions.onExiting,\n exitedHidden: true,\n ...callbacks,\n });\n useScrollLock(visible && preventScroll);\n\n // need to make sure that the useEffect does not refire for hiding on click\n // events because of the `window.requestAnimationFrame`. It'll make it so\n // that menu items that update state are unable to close when clicked\n const hide = useRef(onRequestClose);\n useEffect(() => {\n hide.current = onRequestClose;\n });\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const callback = (event: globalThis.MouseEvent): void => {\n // this is required for when the transition is disabled\n if (!entered.current) {\n return;\n }\n\n // if the user clicks outside of the menu to close it, the toggle button\n // should not be focused. instead the nearest focusable element from the\n // click event should be focused when Tab or Shift + tab is pressed\n cancelUnmountFocus.current =\n !(event.target instanceof HTMLElement) ||\n !event.target.closest(`[role=\"${role}\"]`);\n\n // this won't be called if `event.stopPropagation()` is called\n hide.current();\n disableHoverMode();\n };\n\n // wait an animation frame so the initial click event that caused the menu\n // to become visible does not immediately close the menu\n const frame = window.requestAnimationFrame(() => {\n window.addEventListener(\"click\", callback);\n });\n\n return () => {\n window.cancelAnimationFrame(frame);\n window.removeEventListener(\"click\", callback);\n };\n }, [disableHoverMode, role, visible]);\n\n return (\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n <MenuSheet\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy as string}\n header={sheetHeader}\n footer={sheetFooter}\n position={sheetPosition}\n verticalSize={sheetVerticalSize}\n visible={visible}\n enabled={isSheet}\n onRequestClose={onRequestClose}\n style={sheetStyle}\n className={sheetClassName}\n disablePortal={propDisablePortal}\n temporary={temporary}\n disableTransition={disableTransition}\n {...sheetProps}\n >\n <Portal disabled={isSheet || (propDisablePortal ?? disablePortal)}>\n {(rendered || isSheet) && (\n <MenuWidget\n {...remaining}\n {...elementProps}\n {...eventHandlers}\n id={id}\n role={role}\n style={isSheet ? propStyle : style}\n isSheet={isSheet}\n tabIndex={tabIndex}\n horizontal={horizontal}\n listProps={listProps}\n listStyle={listStyle}\n listClassName={listClassName}\n disableElevation={disableElevation}\n cancelUnmountFocus={cancelUnmountFocus}\n >\n {children}\n </MenuWidget>\n )}\n </Portal>\n </MenuSheet>\n </MenuConfigurationProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useEffect","useRef","useFocusContainer","useUserInteractionMode","useAppSize","Portal","useFixedPositioning","useScrollLock","useScaleTransition","useEnsuredId","MenuConfigurationProvider","useMenuConfiguration","MenuSheet","MenuWidget","useMenuBarContext","getDefaultAnchor","noop","Menu","props","propRef","id","propId","style","propStyle","role","children","horizontal","_horizontal","sheetHeader","_sheetHeader","sheetFooter","_sheetFooter","renderAsSheet","_renderAsSheet","sheetPosition","_sheetPosition","sheetVerticalSize","_sheetVerticalSize","sheetProps","sheetStyle","sheetClassName","menuStyle","menuClassName","disableElevation","temporary","tabIndex","fixedTo","className","classNames","timeout","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onKeyDown","listProps","listStyle","listClassName","visible","onRequestClose","floating","anchor","closeOnResize","closeOnScroll","preventScroll","vwMargin","vhMargin","xMargin","yMargin","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","initialX","initialY","getFixedPositionOptions","disablePortal","propDisablePortal","disableTransition","remaining","ariaLabel","ariaLabelledBy","root","menubar","menuitem","activeId","animatedOnceRef","hoverTimeoutRef","disableHoverMode","isPhone","isSheet","entered","cancelUnmountFocus","hideWithoutRefocus","current","mode","mouse","eventHandlers","transitionOptions","nodeRef","activate","event","key","stopPropagation","preventDefault","appearing","isFocusTypeDisabled","type","isHoverDisabled","ref","callbacks","onResize","undefined","onScroll","_event","data","rendered","elementProps","transitionIn","vertical","exitedHidden","hide","callback","target","HTMLElement","closest","frame","window","requestAnimationFrame","addEventListener","cancelAnimationFrame","removeEventListener","aria-label","aria-labelledby","header","footer","position","verticalSize","enabled","disabled"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/menu/Menu.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useEffect,\n useRef,\n type CSSProperties,\n type HTMLAttributes,\n} from \"react\";\nimport { type FloatingActionButtonPosition } from \"../button/FloatingActionButton.js\";\nimport { useFocusContainer } from \"../focus/useFocusContainer.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { type CalculateFixedPositionOptions } from \"../positioning/types.js\";\nimport {\n useFixedPositioning,\n type FixedPositioningOptions,\n} from \"../positioning/useFixedPositioning.js\";\nimport { useScrollLock } from \"../scroll/useScrollLock.js\";\nimport {\n useScaleTransition,\n type ScaleTransitionHookOptions,\n} from \"../transition/useScaleTransition.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport {\n MenuConfigurationProvider,\n useMenuConfiguration,\n type MenuConfiguration,\n type MenuOrientationProps,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuSheet, type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuWidget } from \"./MenuWidget.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\nimport { getDefaultAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-menu-background-color\"?: string;\n \"--rmd-menu-color\"?: string;\n \"--rmd-menu-min-width\"?: string | number;\n \"--rmd-menu-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 5.0.0 */\nexport type MenuTransitionProps = Omit<\n ScaleTransitionHookOptions<HTMLDivElement>,\n \"transitionIn\" | \"vertical\" | \"nodeRef\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConfigurationProps extends CalculateFixedPositionOptions {\n /**\n * @see {@link ScaleTransitionHookOptions.temporary}\n * @defaultValue `true`\n */\n temporary?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * Boolean if the menu should not gain the elevation styles and should only be\n * set to `true` when rendering within a `Sheet`.\n *\n * @defaultValue `false`\n */\n disableElevation?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * @see {@link FixedPositioningOptions.transformOrigin}\n * @defaultValue `true`\n */\n transformOrigin?: boolean;\n\n /**\n * Boolean if the menu should close if the page is scrolled. The default\n * behavior is to just update the position of the menu relative to the menu\n * button until it can no longer be visible within the viewport.\n *\n * @defaultValue `false`\n */\n closeOnScroll?: boolean;\n\n /**\n * Boolean if the page should no longer be scrollable while the menu is\n * visible.\n *\n * @defaultValue `false`\n */\n preventScroll?: boolean;\n\n /**\n * Boolean if the menu should close instead of repositioning itself if the\n * browser window is resized.\n *\n * @defaultValue `false`\n */\n closeOnResize?: boolean;\n\n /** @see {@link FixedPositioningOptions.getFixedPositionOptions} */\n getFixedPositionOptions?(): CalculateFixedPositionOptions;\n}\n\n/**\n * @remarks\n * \\@since 5.1.0\n * \\@since 6.0.0 Renamed from `MenuListProps` to `MenuListConvenienceProps`\n */\nexport interface MenuListConvenienceProps {\n /**\n * An optional style to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listStyle?: CSSProperties;\n\n /**\n * An optional className to provide to the `List` component that surrounds the\n * `MenuItem` within a `Menu`.\n */\n listClassName?: string;\n\n /**\n * Any additional props to pass to the `List` component that surrounds the\n * `Menu`'s `MenuItem`s.\n */\n listProps?: PropsWithRef<Omit<ListProps, \"horizontal\">, ListElement>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuConvenienceProps extends MenuConfigurationProps {\n /**\n * This can be used to apply additional props to the `Menu` component.\n *\n * Note: You can override the `style` and `className` using\n * {@link menuStyle} and {@link menuClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <DropdownMenu\n * {...props}\n * menuProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * getFixedPositionOptions: () => ({\n * preventOverlap: true,\n * }),\n * }}\n * />\n * ```\n */\n menuProps?: PropsWithRef<\n Omit<\n MenuProps,\n | \"children\"\n | \"fixedTo\"\n | \"visible\"\n | \"onRequestClose\"\n | \"getDefaultFocusedIndex\"\n >,\n HTMLDivElement\n >;\n\n /**\n * Convenience prop to apply custom style to the `Menu` component.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Menu` component.\n */\n menuClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuFixedPositioningOptions = Omit<\n FixedPositioningOptions<HTMLElement, HTMLDivElement>,\n \"onScroll\" | \"onResize\"\n>;\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest Menu, Transition, and Portal API.\n */\nexport interface MenuProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuConfiguration,\n MenuConfigurationProps,\n MenuFixedPositioningOptions,\n MenuOrientationProps,\n MenuTransitionProps,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps {\n visible: boolean;\n onRequestClose(): void;\n\n /**\n * @defaultValue `\"menu-\" + useId()`\n */\n id?: string;\n\n /**\n * This is used to set the default focus index when the menu is visible.\n *\n * @internal\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * Custom style that should be applied to the menu only while not rendered\n * within a sheet since the {@link style} would be applied to both versions.\n */\n menuStyle?: CSSProperties;\n\n /**\n * Custom class name that should be applied only while not rendered within a\n * sheet.\n */\n menuClassName?: string;\n\n /**\n * @internal\n *\n * This is only used to update the default anchor when the DropdownMenu's\n * toggle is a floating action button.\n */\n floating?: FloatingActionButtonPosition;\n}\n\n/**\n * **Client Component**\n *\n * This component should generally only be used to implement context menus with\n * the `useContextMenu` hook. Otherwise, the `DropdownMenu` component should be\n * used.\n *\n * @see The `useContextMenu` hook for an example.\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated this component to implement all the `Menu`\n * functionality instead of requiring the `useMenu` hook and `MenuWidget`\n * component. In addition, the `renderAsSheet` behavior has been moved into this\n * implementation so that the `MenuRenderer` is no longer required and context\n * menus can appear as a `Sheet`.\n */\nexport const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(\n function Menu(props, propRef) {\n const {\n id: propId,\n style: propStyle,\n role = \"menu\",\n children,\n horizontal: _horizontal,\n sheetHeader: _sheetHeader,\n sheetFooter: _sheetFooter,\n renderAsSheet: _renderAsSheet,\n sheetPosition: _sheetPosition,\n sheetVerticalSize: _sheetVerticalSize,\n sheetProps,\n sheetStyle,\n sheetClassName,\n menuStyle,\n menuClassName,\n disableElevation = false,\n temporary = true,\n tabIndex = -1,\n fixedTo,\n className,\n classNames,\n timeout,\n appear,\n enter,\n exit,\n onEnter,\n onEntering = noop,\n onEntered = noop,\n onExit,\n onExiting,\n onExited = noop,\n onKeyDown = noop,\n listProps,\n listStyle,\n listClassName,\n visible,\n onRequestClose,\n floating,\n anchor,\n closeOnResize = false,\n closeOnScroll = false,\n preventScroll = false,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin = true,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n disablePortal: propDisablePortal,\n disableTransition,\n ...remaining\n } = props;\n const { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy } =\n props;\n\n const id = useEnsuredId(propId, \"menu\");\n const {\n root,\n menubar,\n menuitem,\n activeId,\n animatedOnceRef,\n hoverTimeoutRef,\n disableHoverMode,\n } = useMenuBarContext();\n const {\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n } = useMenuConfiguration(props);\n const { isPhone } = useAppSize();\n const isSheet =\n renderAsSheet === true || (renderAsSheet === \"phone\" && isPhone);\n\n const entered = useRef(false);\n const cancelUnmountFocus = useRef(false);\n const hideWithoutRefocus = (): void => {\n cancelUnmountFocus.current = true;\n onRequestClose();\n };\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n\n const { eventHandlers, transitionOptions } = useFocusContainer({\n nodeRef: propRef,\n activate: visible,\n onKeyDown(event) {\n onKeyDown(event);\n\n // when a menu is within a sheet, it should not trigger the custom\n // keyboard behavior\n if (isSheet) {\n return;\n }\n\n switch (event.key) {\n case \"Escape\":\n // prevent parent components that have an \"Escape\" keypress event\n // from being triggered as well\n event.stopPropagation();\n disableHoverMode();\n onRequestClose();\n break;\n case \"Tab\":\n // since menus are portalled, tab index is kinda broke so just close\n // the menu instead of doing default tab behavior\n event.preventDefault();\n\n if (!menuitem) {\n // pressing the tab key should still cascade close all menus\n event.stopPropagation();\n }\n disableHoverMode();\n onRequestClose();\n break;\n case \"ArrowUp\":\n if (!root && menuitem && horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n case \"ArrowLeft\":\n if (!root && menuitem && !horizontal) {\n event.stopPropagation();\n event.preventDefault();\n onRequestClose();\n }\n break;\n }\n },\n onEntering(appearing) {\n onEntering(appearing);\n entered.current = true;\n },\n onEntered(appearing) {\n onEntered(appearing);\n entered.current = true;\n cancelUnmountFocus.current = false;\n animatedOnceRef.current = true;\n },\n onExited() {\n onExited();\n entered.current = false;\n },\n onExiting,\n disableTransition,\n isFocusTypeDisabled(type) {\n if (role === \"listbox\") {\n return !isSheet;\n }\n\n if (type === \"keyboard\") {\n return isSheet;\n }\n\n const isHoverDisabled = mouse && hoverTimeoutRef.current === 0;\n if (type === \"mount\") {\n return isHoverDisabled;\n }\n\n return (\n isHoverDisabled ||\n cancelUnmountFocus.current ||\n (root && !!activeId && id !== activeId)\n );\n },\n });\n\n const { ref, style, callbacks, updateStyle } = useFixedPositioning({\n ...transitionOptions,\n onEnter,\n style: isSheet ? propStyle : menuStyle,\n fixedTo,\n anchor: getDefaultAnchor({\n anchor,\n menubar,\n floating,\n menuitem: !root && menuitem,\n horizontal,\n }),\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n initialX,\n initialY,\n getFixedPositionOptions,\n onResize: closeOnResize ? hideWithoutRefocus : undefined,\n onScroll(_event, data) {\n if (!data.visible || closeOnScroll) {\n hideWithoutRefocus();\n }\n },\n });\n const { rendered, disablePortal, elementProps } = useScaleTransition({\n nodeRef: ref,\n className: cnb(!isSheet && menuClassName, className),\n transitionIn: visible,\n vertical: !horizontal,\n temporary,\n timeout: isSheet || disableTransition ? 0 : timeout,\n classNames,\n appear,\n enter,\n exit,\n onExit,\n onExiting: transitionOptions.onExiting,\n exitedHidden: true,\n ...callbacks,\n });\n useScrollLock(visible && preventScroll);\n\n // need to make sure that the useEffect does not refire for hiding on click\n // events because of the `window.requestAnimationFrame`. It'll make it so\n // that menu items that update state are unable to close when clicked\n const hide = useRef(onRequestClose);\n useEffect(() => {\n hide.current = onRequestClose;\n });\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const callback = (event: globalThis.MouseEvent): void => {\n // this is required for when the transition is disabled\n if (!entered.current) {\n return;\n }\n\n // if the user clicks outside of the menu to close it, the toggle button\n // should not be focused. instead the nearest focusable element from the\n // click event should be focused when Tab or Shift + tab is pressed\n cancelUnmountFocus.current =\n !(event.target instanceof HTMLElement) ||\n !event.target.closest(`[role=\"${role}\"]`);\n\n // this won't be called if `event.stopPropagation()` is called\n hide.current();\n disableHoverMode();\n };\n\n // wait an animation frame so the initial click event that caused the menu\n // to become visible does not immediately close the menu\n const frame = window.requestAnimationFrame(() => {\n window.addEventListener(\"click\", callback);\n });\n\n return () => {\n window.cancelAnimationFrame(frame);\n window.removeEventListener(\"click\", callback);\n };\n }, [disableHoverMode, role, visible]);\n useIsomorphicLayoutEffect(() => {\n if (!visible) {\n return;\n }\n\n updateStyle();\n }, [updateStyle, children, visible]);\n\n return (\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n <MenuSheet\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy as string}\n header={sheetHeader}\n footer={sheetFooter}\n position={sheetPosition}\n verticalSize={sheetVerticalSize}\n visible={visible}\n enabled={isSheet}\n onRequestClose={onRequestClose}\n style={sheetStyle}\n className={sheetClassName}\n disablePortal={propDisablePortal}\n temporary={temporary}\n disableTransition={disableTransition}\n {...sheetProps}\n >\n <Portal disabled={isSheet || (propDisablePortal ?? disablePortal)}>\n {(rendered || isSheet) && (\n <MenuWidget\n {...remaining}\n {...elementProps}\n {...eventHandlers}\n id={id}\n role={role}\n style={isSheet ? propStyle : style}\n isSheet={isSheet}\n tabIndex={tabIndex}\n horizontal={horizontal}\n listProps={listProps}\n listStyle={listStyle}\n listClassName={listClassName}\n disableElevation={disableElevation}\n cancelUnmountFocus={cancelUnmountFocus}\n >\n {children}\n </MenuWidget>\n )}\n </Portal>\n </MenuSheet>\n </MenuConfigurationProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useEffect","useRef","useFocusContainer","useUserInteractionMode","useAppSize","Portal","useFixedPositioning","useScrollLock","useScaleTransition","useEnsuredId","useIsomorphicLayoutEffect","MenuConfigurationProvider","useMenuConfiguration","MenuSheet","MenuWidget","useMenuBarContext","getDefaultAnchor","noop","Menu","props","propRef","id","propId","style","propStyle","role","children","horizontal","_horizontal","sheetHeader","_sheetHeader","sheetFooter","_sheetFooter","renderAsSheet","_renderAsSheet","sheetPosition","_sheetPosition","sheetVerticalSize","_sheetVerticalSize","sheetProps","sheetStyle","sheetClassName","menuStyle","menuClassName","disableElevation","temporary","tabIndex","fixedTo","className","classNames","timeout","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onKeyDown","listProps","listStyle","listClassName","visible","onRequestClose","floating","anchor","closeOnResize","closeOnScroll","preventScroll","vwMargin","vhMargin","xMargin","yMargin","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","initialX","initialY","getFixedPositionOptions","disablePortal","propDisablePortal","disableTransition","remaining","ariaLabel","ariaLabelledBy","root","menubar","menuitem","activeId","animatedOnceRef","hoverTimeoutRef","disableHoverMode","isPhone","isSheet","entered","cancelUnmountFocus","hideWithoutRefocus","current","mode","mouse","eventHandlers","transitionOptions","nodeRef","activate","event","key","stopPropagation","preventDefault","appearing","isFocusTypeDisabled","type","isHoverDisabled","ref","callbacks","updateStyle","onResize","undefined","onScroll","_event","data","rendered","elementProps","transitionIn","vertical","exitedHidden","hide","callback","target","HTMLElement","closest","frame","window","requestAnimationFrame","addEventListener","cancelAnimationFrame","removeEventListener","aria-label","aria-labelledby","header","footer","position","verticalSize","enabled","disabled"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ import { type ListItemChildrenProps, type ListItemHeight } from "../list/types.js";
3
+ import { type CircularProgressProps } from "../progress/CircularProgress.js";
4
+ /**
5
+ * @remarks \@since 6.0.0
6
+ */
7
+ export interface MenuItemCircularProgressProps extends CircularProgressProps {
8
+ /** @defaultValue `"Loading"` */
9
+ "aria-label"?: string;
10
+ /** @defaultValue `"none"` */
11
+ role?: string;
12
+ /** @defaultValue `true` */
13
+ dense?: boolean;
14
+ liProps?: HTMLAttributes<HTMLLIElement>;
15
+ height?: ListItemHeight;
16
+ leftAddon?: ReactNode;
17
+ rightAddon?: ReactNode;
18
+ listItemChildrenProps?: ListItemChildrenProps;
19
+ }
20
+ /**
21
+ * @example
22
+ * Simple Example
23
+ * ```tsx
24
+ * "use client";
25
+ * import {
26
+ * DropdownMenu,
27
+ * MenuItem,
28
+ * MenuItemCircularProgress,
29
+ * useAsyncAction,
30
+ * } from "@react-md/core";
31
+ *
32
+ * function Example() {
33
+ * const { handleAsync, pending } = useAsyncAction();
34
+ * const [visible, setVisible] = useState(false);
35
+ *
36
+ * return (
37
+ * <DropdownMenu buttonChildren="Options" visible={visible} setVisible={setVisible}>
38
+ * {pending && <MenuItemCircularProgress />}
39
+ * <MenuItem
40
+ * onClick={handleAsync(async (event) => {
41
+ * // prevent menu from closing until action completes
42
+ * event.stopPropagation()
43
+ *
44
+ * // do something async
45
+ * await ...
46
+ *
47
+ * // close menu once completed
48
+ * setVisible(false)
49
+ * })}
50
+ * >
51
+ * Some Action
52
+ * </MenuItem>
53
+ * </DropdownMenu>
54
+ * )
55
+ * }
56
+ * ```
57
+ *
58
+ * @remarks \@since 6.0.0
59
+ */
60
+ export declare const MenuItemCircularProgress: import("react").ForwardRefExoticComponent<MenuItemCircularProgressProps & import("react").RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cnb } from "cnbuilder";
3
+ import { forwardRef } from "react";
4
+ import { ListItemChildren } from "../list/ListItemChildren.js";
5
+ import { listItem } from "../list/listItemStyles.js";
6
+ import { CircularProgress } from "../progress/CircularProgress.js";
7
+ /**
8
+ * @example
9
+ * Simple Example
10
+ * ```tsx
11
+ * "use client";
12
+ * import {
13
+ * DropdownMenu,
14
+ * MenuItem,
15
+ * MenuItemCircularProgress,
16
+ * useAsyncAction,
17
+ * } from "@react-md/core";
18
+ *
19
+ * function Example() {
20
+ * const { handleAsync, pending } = useAsyncAction();
21
+ * const [visible, setVisible] = useState(false);
22
+ *
23
+ * return (
24
+ * <DropdownMenu buttonChildren="Options" visible={visible} setVisible={setVisible}>
25
+ * {pending && <MenuItemCircularProgress />}
26
+ * <MenuItem
27
+ * onClick={handleAsync(async (event) => {
28
+ * // prevent menu from closing until action completes
29
+ * event.stopPropagation()
30
+ *
31
+ * // do something async
32
+ * await ...
33
+ *
34
+ * // close menu once completed
35
+ * setVisible(false)
36
+ * })}
37
+ * >
38
+ * Some Action
39
+ * </MenuItem>
40
+ * </DropdownMenu>
41
+ * )
42
+ * }
43
+ * ```
44
+ *
45
+ * @remarks \@since 6.0.0
46
+ */ export const MenuItemCircularProgress = /*#__PURE__*/ forwardRef(function MenuItemCircularProgress(props, ref) {
47
+ const { "aria-label": propAriaLabel, "aria-labelledby": ariaLabelledBy, role = "none", className, height, leftAddon, rightAddon, liProps, listItemChildrenProps, ...remaining } = props;
48
+ let ariaLabel = propAriaLabel;
49
+ if (!ariaLabel && !ariaLabelledBy) {
50
+ ariaLabel = "Loading";
51
+ }
52
+ return /*#__PURE__*/ _jsx("li", {
53
+ ...liProps,
54
+ ref: ref,
55
+ role: role,
56
+ className: cnb(listItem({
57
+ height,
58
+ className
59
+ }), liProps?.className),
60
+ children: /*#__PURE__*/ _jsx(ListItemChildren, {
61
+ ...listItemChildrenProps,
62
+ leftAddon: leftAddon,
63
+ rightAddon: rightAddon,
64
+ children: /*#__PURE__*/ _jsx(CircularProgress, {
65
+ "aria-label": ariaLabel,
66
+ "aria-labelledby": ariaLabelledBy,
67
+ dense: true,
68
+ ...remaining
69
+ })
70
+ })
71
+ });
72
+ });
73
+
74
+ //# sourceMappingURL=MenuItemCircularProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/menu/MenuItemCircularProgress.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { ListItemChildren } from \"../list/ListItemChildren.js\";\nimport { listItem } from \"../list/listItemStyles.js\";\nimport {\n type ListItemChildrenProps,\n type ListItemHeight,\n} from \"../list/types.js\";\nimport {\n CircularProgress,\n type CircularProgressProps,\n} from \"../progress/CircularProgress.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuItemCircularProgressProps extends CircularProgressProps {\n /** @defaultValue `\"Loading\"` */\n \"aria-label\"?: string;\n\n /** @defaultValue `\"none\"` */\n role?: string;\n\n /** @defaultValue `true` */\n dense?: boolean;\n\n liProps?: HTMLAttributes<HTMLLIElement>;\n height?: ListItemHeight;\n leftAddon?: ReactNode;\n rightAddon?: ReactNode;\n listItemChildrenProps?: ListItemChildrenProps;\n}\n\n/**\n * @example\n * Simple Example\n * ```tsx\n * \"use client\";\n * import {\n * DropdownMenu,\n * MenuItem,\n * MenuItemCircularProgress,\n * useAsyncAction,\n * } from \"@react-md/core\";\n *\n * function Example() {\n * const { handleAsync, pending } = useAsyncAction();\n * const [visible, setVisible] = useState(false);\n *\n * return (\n * <DropdownMenu buttonChildren=\"Options\" visible={visible} setVisible={setVisible}>\n * {pending && <MenuItemCircularProgress />}\n * <MenuItem\n * onClick={handleAsync(async (event) => {\n * // prevent menu from closing until action completes\n * event.stopPropagation()\n *\n * // do something async\n * await ...\n *\n * // close menu once completed\n * setVisible(false)\n * })}\n * >\n * Some Action\n * </MenuItem>\n * </DropdownMenu>\n * )\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport const MenuItemCircularProgress = forwardRef<\n HTMLLIElement,\n MenuItemCircularProgressProps\n>(function MenuItemCircularProgress(props, ref) {\n const {\n \"aria-label\": propAriaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n role = \"none\",\n className,\n height,\n leftAddon,\n rightAddon,\n liProps,\n listItemChildrenProps,\n ...remaining\n } = props;\n let ariaLabel = propAriaLabel;\n if (!ariaLabel && !ariaLabelledBy) {\n ariaLabel = \"Loading\";\n }\n\n return (\n <li\n {...liProps}\n ref={ref}\n role={role}\n className={cnb(listItem({ height, className }), liProps?.className)}\n >\n <ListItemChildren\n {...listItemChildrenProps}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n >\n <CircularProgress\n aria-label={ariaLabel as string}\n aria-labelledby={ariaLabelledBy}\n dense\n {...remaining}\n />\n </ListItemChildren>\n </li>\n );\n});\n"],"names":["cnb","forwardRef","ListItemChildren","listItem","CircularProgress","MenuItemCircularProgress","props","ref","propAriaLabel","ariaLabelledBy","role","className","height","leftAddon","rightAddon","liProps","listItemChildrenProps","remaining","ariaLabel","li","aria-label","aria-labelledby","dense"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6C,QAAQ;AACxE,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,QAAQ,QAAQ,4BAA4B;AAKrD,SACEC,gBAAgB,QAEX,kCAAkC;AAsBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCC,GACD,OAAO,MAAMC,yCAA2BJ,WAGtC,SAASI,yBAAyBC,KAAK,EAAEC,GAAG;IAC5C,MAAM,EACJ,cAAcC,aAAa,EAC3B,mBAAmBC,cAAc,EACjCC,OAAO,MAAM,EACbC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,UAAU,EACVC,OAAO,EACPC,qBAAqB,EACrB,GAAGC,WACJ,GAAGX;IACJ,IAAIY,YAAYV;IAChB,IAAI,CAACU,aAAa,CAACT,gBAAgB;QACjCS,YAAY;IACd;IAEA,qBACE,KAACC;QACE,GAAGJ,OAAO;QACXR,KAAKA;QACLG,MAAMA;QACNC,WAAWX,IAAIG,SAAS;YAAES;YAAQD;QAAU,IAAII,SAASJ;kBAEzD,cAAA,KAACT;YACE,GAAGc,qBAAqB;YACzBH,WAAWA;YACXC,YAAYA;sBAEZ,cAAA,KAACV;gBACCgB,cAAYF;gBACZG,mBAAiBZ;gBACjBa,KAAK;gBACJ,GAAGL,SAAS;;;;AAKvB,GAAG"}
@@ -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
  * ```