@react-md/core 1.0.0-next.15 → 1.0.0-next.17

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 (1344) hide show
  1. package/dist/RootHtml.d.ts +0 -2
  2. package/dist/RootHtml.js +0 -2
  3. package/dist/RootHtml.js.map +1 -1
  4. package/dist/_box-shadows.scss +76 -0
  5. package/dist/_colors.scss +279 -277
  6. package/dist/_core.scss +107 -16
  7. package/dist/_object-fit.scss +86 -0
  8. package/dist/_utils.scss +246 -72
  9. package/dist/app-bar/AppBar.d.ts +1 -92
  10. package/dist/app-bar/AppBar.js +1 -42
  11. package/dist/app-bar/AppBar.js.map +1 -1
  12. package/dist/app-bar/AppBarTitle.d.ts +1 -30
  13. package/dist/app-bar/AppBarTitle.js +1 -17
  14. package/dist/app-bar/AppBarTitle.js.map +1 -1
  15. package/dist/app-bar/_app-bar.scss +156 -25
  16. package/dist/app-bar/styles.d.ts +117 -0
  17. package/dist/app-bar/styles.js +55 -0
  18. package/dist/app-bar/styles.js.map +1 -0
  19. package/dist/autocomplete/Autocomplete.d.ts +8 -79
  20. package/dist/autocomplete/Autocomplete.js +112 -83
  21. package/dist/autocomplete/Autocomplete.js.map +1 -1
  22. package/dist/autocomplete/AutocompleteChip.d.ts +8 -0
  23. package/dist/autocomplete/AutocompleteChip.js +34 -0
  24. package/dist/autocomplete/AutocompleteChip.js.map +1 -0
  25. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +5 -11
  26. package/dist/autocomplete/AutocompleteCircularProgress.js +4 -0
  27. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
  28. package/dist/autocomplete/AutocompleteClearButton.d.ts +9 -0
  29. package/dist/autocomplete/AutocompleteClearButton.js +29 -0
  30. package/dist/autocomplete/AutocompleteClearButton.js.map +1 -0
  31. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +4 -26
  32. package/dist/autocomplete/AutocompleteDropdownButton.js +5 -1
  33. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
  34. package/dist/autocomplete/AutocompleteListboxChildren.d.ts +22 -0
  35. package/dist/autocomplete/AutocompleteListboxChildren.js +37 -0
  36. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -0
  37. package/dist/autocomplete/_autocomplete.scss +362 -34
  38. package/dist/autocomplete/autocompleteStyles.d.ts +22 -0
  39. package/dist/autocomplete/autocompleteStyles.js +17 -8
  40. package/dist/autocomplete/autocompleteStyles.js.map +1 -1
  41. package/dist/autocomplete/defaults.d.ts +9 -9
  42. package/dist/autocomplete/defaults.js +13 -13
  43. package/dist/autocomplete/defaults.js.map +1 -1
  44. package/dist/autocomplete/types.d.ts +554 -56
  45. package/dist/autocomplete/types.js.map +1 -1
  46. package/dist/autocomplete/useAutocomplete.d.ts +22 -0
  47. package/dist/autocomplete/useAutocomplete.js +281 -0
  48. package/dist/autocomplete/useAutocomplete.js.map +1 -0
  49. package/dist/autocomplete/utils.d.ts +81 -0
  50. package/dist/autocomplete/utils.js +108 -0
  51. package/dist/autocomplete/utils.js.map +1 -0
  52. package/dist/avatar/Avatar.d.ts +0 -2
  53. package/dist/avatar/Avatar.js +0 -2
  54. package/dist/avatar/Avatar.js.map +1 -1
  55. package/dist/avatar/_avatar.scss +93 -2
  56. package/dist/badge/Badge.d.ts +2 -23
  57. package/dist/badge/Badge.js +1 -16
  58. package/dist/badge/Badge.js.map +1 -1
  59. package/dist/badge/_badge.scss +90 -3
  60. package/dist/badge/styles.d.ts +26 -0
  61. package/dist/badge/styles.js +18 -0
  62. package/dist/badge/styles.js.map +1 -0
  63. package/dist/box/Box.d.ts +0 -2
  64. package/dist/box/Box.js +2 -3
  65. package/dist/box/Box.js.map +1 -1
  66. package/dist/box/_box.scss +130 -17
  67. package/dist/box/styles.d.ts +6 -0
  68. package/dist/box/styles.js +2 -1
  69. package/dist/box/styles.js.map +1 -1
  70. package/dist/button/AsyncButton.d.ts +1 -1
  71. package/dist/button/AsyncButton.js.map +1 -1
  72. package/dist/button/Button.d.ts +2 -1
  73. package/dist/button/Button.js +2 -1
  74. package/dist/button/Button.js.map +1 -1
  75. package/dist/button/ButtonUnstyled.d.ts +0 -2
  76. package/dist/button/ButtonUnstyled.js +0 -2
  77. package/dist/button/ButtonUnstyled.js.map +1 -1
  78. package/dist/button/_button.scss +157 -25
  79. package/dist/card/Card.d.ts +16 -2
  80. package/dist/card/Card.js +11 -5
  81. package/dist/card/Card.js.map +1 -1
  82. package/dist/card/CardContent.d.ts +0 -2
  83. package/dist/card/CardContent.js +0 -2
  84. package/dist/card/CardContent.js.map +1 -1
  85. package/dist/card/CardFooter.d.ts +0 -3
  86. package/dist/card/CardFooter.js +0 -2
  87. package/dist/card/CardFooter.js.map +1 -1
  88. package/dist/card/CardHeader.d.ts +0 -2
  89. package/dist/card/CardHeader.js +0 -2
  90. package/dist/card/CardHeader.js.map +1 -1
  91. package/dist/card/CardSubtitle.d.ts +0 -3
  92. package/dist/card/CardSubtitle.js +0 -2
  93. package/dist/card/CardSubtitle.js.map +1 -1
  94. package/dist/card/CardTitle.d.ts +0 -3
  95. package/dist/card/CardTitle.js +0 -2
  96. package/dist/card/CardTitle.js.map +1 -1
  97. package/dist/card/ClickableCard.d.ts +2 -1
  98. package/dist/card/ClickableCard.js +5 -2
  99. package/dist/card/ClickableCard.js.map +1 -1
  100. package/dist/card/_card.scss +90 -19
  101. package/dist/card/styles.d.ts +0 -7
  102. package/dist/card/styles.js +2 -3
  103. package/dist/card/styles.js.map +1 -1
  104. package/dist/chip/Chip.d.ts +2 -3
  105. package/dist/chip/Chip.js +2 -3
  106. package/dist/chip/Chip.js.map +1 -1
  107. package/dist/chip/_chip.scss +42 -20
  108. package/dist/chip/styles.d.ts +12 -10
  109. package/dist/chip/styles.js.map +1 -1
  110. package/dist/cssUtils.js.map +1 -1
  111. package/dist/delegateEvent.d.ts +2 -2
  112. package/dist/delegateEvent.js.map +1 -1
  113. package/dist/dialog/Dialog.d.ts +8 -21
  114. package/dist/dialog/Dialog.js +27 -27
  115. package/dist/dialog/Dialog.js.map +1 -1
  116. package/dist/dialog/DialogContent.d.ts +3 -3
  117. package/dist/dialog/DialogContent.js +3 -3
  118. package/dist/dialog/DialogContent.js.map +1 -1
  119. package/dist/dialog/DialogFooter.d.ts +2 -3
  120. package/dist/dialog/DialogFooter.js +2 -3
  121. package/dist/dialog/DialogFooter.js.map +1 -1
  122. package/dist/dialog/DialogHeader.d.ts +3 -3
  123. package/dist/dialog/DialogHeader.js +3 -3
  124. package/dist/dialog/DialogHeader.js.map +1 -1
  125. package/dist/dialog/DialogTitle.d.ts +3 -4
  126. package/dist/dialog/DialogTitle.js +3 -3
  127. package/dist/dialog/DialogTitle.js.map +1 -1
  128. package/dist/dialog/FixedDialog.d.ts +1 -3
  129. package/dist/dialog/FixedDialog.js +0 -8
  130. package/dist/dialog/FixedDialog.js.map +1 -1
  131. package/dist/dialog/NestedDialogProvider.d.ts +0 -1
  132. package/dist/dialog/_dialog.scss +67 -13
  133. package/dist/dialog/styles.d.ts +56 -0
  134. package/dist/dialog/styles.js +29 -2
  135. package/dist/dialog/styles.js.map +1 -1
  136. package/dist/divider/Divider.d.ts +0 -13
  137. package/dist/divider/Divider.js +0 -2
  138. package/dist/divider/Divider.js.map +1 -1
  139. package/dist/divider/_divider.scss +7 -1
  140. package/dist/divider/styles.d.ts +11 -0
  141. package/dist/divider/styles.js.map +1 -1
  142. package/dist/draggable/useDraggable.d.ts +6 -6
  143. package/dist/draggable/useDraggable.js.map +1 -1
  144. package/dist/draggable/utils.d.ts +3 -3
  145. package/dist/draggable/utils.js.map +1 -1
  146. package/dist/expansion-panel/ExpansionList.d.ts +1 -1
  147. package/dist/expansion-panel/ExpansionList.js +1 -1
  148. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  149. package/dist/expansion-panel/ExpansionPanel.d.ts +9 -25
  150. package/dist/expansion-panel/ExpansionPanel.js +1 -12
  151. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  152. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +0 -1
  153. package/dist/expansion-panel/ExpansionPanelHeader.js +0 -1
  154. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  155. package/dist/expansion-panel/_expansion-panel.scss +5 -1
  156. package/dist/expansion-panel/expansionPanelStyles.d.ts +19 -0
  157. package/dist/expansion-panel/expansionPanelStyles.js +14 -0
  158. package/dist/expansion-panel/expansionPanelStyles.js.map +1 -0
  159. package/dist/expansion-panel/useExpansionPanels.js +12 -24
  160. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  161. package/dist/{form → files}/FileInput.d.ts +3 -6
  162. package/dist/{form → files}/FileInput.js +3 -6
  163. package/dist/files/FileInput.js.map +1 -0
  164. package/dist/files/_files.scss +22 -0
  165. package/dist/files/styles.d.ts +5 -0
  166. package/dist/files/styles.js +7 -0
  167. package/dist/files/styles.js.map +1 -0
  168. package/dist/{form → files}/useFileUpload.d.ts +7 -9
  169. package/dist/{form → files}/useFileUpload.js +5 -7
  170. package/dist/files/useFileUpload.js.map +1 -0
  171. package/dist/files/utils.d.ts +169 -0
  172. package/dist/files/utils.js +114 -0
  173. package/dist/files/utils.js.map +1 -0
  174. package/dist/{form/fileUtils.d.ts → files/validation.d.ts} +9 -174
  175. package/dist/{form/fileUtils.js → files/validation.js} +9 -134
  176. package/dist/files/validation.js.map +1 -0
  177. package/dist/focus/useFocusContainer.d.ts +2 -2
  178. package/dist/focus/useFocusContainer.js.map +1 -1
  179. package/dist/focus/utils.js.map +1 -1
  180. package/dist/form/Checkbox.d.ts +0 -1
  181. package/dist/form/Fieldset.d.ts +0 -2
  182. package/dist/form/Fieldset.js.map +1 -1
  183. package/dist/form/FormMessage.d.ts +0 -3
  184. package/dist/form/FormMessage.js +0 -2
  185. package/dist/form/FormMessage.js.map +1 -1
  186. package/dist/form/FormMessageContainer.d.ts +0 -1
  187. package/dist/form/FormMessageContainer.js +4 -3
  188. package/dist/form/FormMessageContainer.js.map +1 -1
  189. package/dist/form/FormMessageCounter.d.ts +0 -2
  190. package/dist/form/FormMessageCounter.js +0 -2
  191. package/dist/form/FormMessageCounter.js.map +1 -1
  192. package/dist/form/InputToggle.d.ts +2 -1
  193. package/dist/form/InputToggle.js +2 -1
  194. package/dist/form/InputToggle.js.map +1 -1
  195. package/dist/form/InputToggleIcon.d.ts +0 -2
  196. package/dist/form/InputToggleIcon.js +0 -2
  197. package/dist/form/InputToggleIcon.js.map +1 -1
  198. package/dist/form/Label.d.ts +0 -3
  199. package/dist/form/Label.js +2 -4
  200. package/dist/form/Label.js.map +1 -1
  201. package/dist/form/Legend.d.ts +0 -3
  202. package/dist/form/Legend.js +0 -2
  203. package/dist/form/Legend.js.map +1 -1
  204. package/dist/form/Listbox.d.ts +24 -0
  205. package/dist/form/Listbox.js +46 -0
  206. package/dist/form/Listbox.js.map +1 -0
  207. package/dist/form/ListboxProvider.d.ts +21 -0
  208. package/dist/form/{useListboxProvider.js → ListboxProvider.js} +1 -1
  209. package/dist/form/ListboxProvider.js.map +1 -0
  210. package/dist/form/MenuItemCheckbox.d.ts +0 -1
  211. package/dist/form/MenuItemRadio.d.ts +0 -1
  212. package/dist/form/MenuItemSwitch.d.ts +0 -1
  213. package/dist/form/MenuItemTextField.js +1 -2
  214. package/dist/form/MenuItemTextField.js.map +1 -1
  215. package/dist/form/NativeSelect.d.ts +0 -2
  216. package/dist/form/NativeSelect.js +7 -6
  217. package/dist/form/NativeSelect.js.map +1 -1
  218. package/dist/form/Option.d.ts +49 -10
  219. package/dist/form/Option.js +11 -9
  220. package/dist/form/Option.js.map +1 -1
  221. package/dist/form/Password.js.map +1 -1
  222. package/dist/form/Radio.d.ts +0 -1
  223. package/dist/form/Select.d.ts +2 -2
  224. package/dist/form/Select.js +81 -85
  225. package/dist/form/Select.js.map +1 -1
  226. package/dist/form/SelectedOption.d.ts +0 -2
  227. package/dist/form/SelectedOption.js +0 -2
  228. package/dist/form/SelectedOption.js.map +1 -1
  229. package/dist/form/Slider.d.ts +4 -4
  230. package/dist/form/Slider.js +6 -2
  231. package/dist/form/Slider.js.map +1 -1
  232. package/dist/form/SliderContainer.d.ts +0 -2
  233. package/dist/form/SliderContainer.js +0 -2
  234. package/dist/form/SliderContainer.js.map +1 -1
  235. package/dist/form/SliderMark.d.ts +0 -2
  236. package/dist/form/SliderMark.js +0 -2
  237. package/dist/form/SliderMark.js.map +1 -1
  238. package/dist/form/SliderMarkLabel.d.ts +0 -2
  239. package/dist/form/SliderMarkLabel.js +0 -2
  240. package/dist/form/SliderMarkLabel.js.map +1 -1
  241. package/dist/form/SliderThumb.d.ts +3 -3
  242. package/dist/form/SliderThumb.js.map +1 -1
  243. package/dist/form/SliderTrack.d.ts +0 -2
  244. package/dist/form/SliderTrack.js +0 -2
  245. package/dist/form/SliderTrack.js.map +1 -1
  246. package/dist/form/SliderValueMarks.d.ts +2 -4
  247. package/dist/form/SliderValueMarks.js +0 -2
  248. package/dist/form/SliderValueMarks.js.map +1 -1
  249. package/dist/form/SliderValueTooltip.js.map +1 -1
  250. package/dist/form/Switch.d.ts +0 -2
  251. package/dist/form/Switch.js +0 -2
  252. package/dist/form/Switch.js.map +1 -1
  253. package/dist/form/SwitchTrack.d.ts +2 -1
  254. package/dist/form/SwitchTrack.js +2 -1
  255. package/dist/form/SwitchTrack.js.map +1 -1
  256. package/dist/form/TextArea.js +1 -2
  257. package/dist/form/TextArea.js.map +1 -1
  258. package/dist/form/TextField.d.ts +0 -2
  259. package/dist/form/TextField.js +1 -4
  260. package/dist/form/TextField.js.map +1 -1
  261. package/dist/form/TextFieldAddon.d.ts +1 -4
  262. package/dist/form/TextFieldAddon.js +1 -3
  263. package/dist/form/TextFieldAddon.js.map +1 -1
  264. package/dist/form/TextFieldContainer.js +1 -2
  265. package/dist/form/TextFieldContainer.js.map +1 -1
  266. package/dist/form/_form.scss +186 -121
  267. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  268. package/dist/form/formMessageContainerStyles.js +11 -0
  269. package/dist/form/formMessageContainerStyles.js.map +1 -0
  270. package/dist/form/inputToggleStyles.js.map +1 -1
  271. package/dist/form/optionStyles.d.ts +1 -0
  272. package/dist/form/optionStyles.js +2 -2
  273. package/dist/form/optionStyles.js.map +1 -1
  274. package/dist/form/selectUtils.js.map +1 -1
  275. package/dist/form/sliderUtils.d.ts +1 -1
  276. package/dist/form/sliderUtils.js.map +1 -1
  277. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  278. package/dist/form/textFieldContainerStyles.js +1 -2
  279. package/dist/form/textFieldContainerStyles.js.map +1 -1
  280. package/dist/form/types.d.ts +3 -10
  281. package/dist/form/types.js.map +1 -1
  282. package/dist/form/useCheckboxGroup.d.ts +17 -17
  283. package/dist/form/useCheckboxGroup.js +9 -17
  284. package/dist/form/useCheckboxGroup.js.map +1 -1
  285. package/dist/form/useCombobox.d.ts +56 -21
  286. package/dist/form/useCombobox.js +19 -4
  287. package/dist/form/useCombobox.js.map +1 -1
  288. package/dist/form/useEditableCombobox.d.ts +24 -4
  289. package/dist/form/useEditableCombobox.js +5 -0
  290. package/dist/form/useEditableCombobox.js.map +1 -1
  291. package/dist/form/useNumberField.js.map +1 -1
  292. package/dist/form/useRadioGroup.d.ts +6 -6
  293. package/dist/form/useRadioGroup.js.map +1 -1
  294. package/dist/form/useResizingTextArea.js.map +1 -1
  295. package/dist/form/useSelectCombobox.d.ts +3 -4
  296. package/dist/form/useSelectCombobox.js.map +1 -1
  297. package/dist/form/useTextField.d.ts +1 -1
  298. package/dist/form/useTextField.js.map +1 -1
  299. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  300. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  301. package/dist/hoverMode/useHoverMode.js.map +1 -1
  302. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  303. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  304. package/dist/icon/FontIcon.d.ts +0 -2
  305. package/dist/icon/FontIcon.js +0 -2
  306. package/dist/icon/FontIcon.js.map +1 -1
  307. package/dist/icon/IconRotator.d.ts +0 -2
  308. package/dist/icon/IconRotator.js +0 -2
  309. package/dist/icon/IconRotator.js.map +1 -1
  310. package/dist/icon/MaterialIcon.d.ts +0 -2
  311. package/dist/icon/MaterialIcon.js +0 -2
  312. package/dist/icon/MaterialIcon.js.map +1 -1
  313. package/dist/icon/MaterialSymbol.d.ts +0 -1
  314. package/dist/icon/MaterialSymbol.js +0 -1
  315. package/dist/icon/MaterialSymbol.js.map +1 -1
  316. package/dist/icon/SVGIcon.d.ts +0 -2
  317. package/dist/icon/SVGIcon.js +0 -2
  318. package/dist/icon/SVGIcon.js.map +1 -1
  319. package/dist/icon/TextIconSpacing.d.ts +0 -2
  320. package/dist/icon/TextIconSpacing.js +0 -2
  321. package/dist/icon/TextIconSpacing.js.map +1 -1
  322. package/dist/icon/_icon.scss +153 -4
  323. package/dist/icon/iconConfig.d.ts +10 -0
  324. package/dist/icon/iconConfig.js +7 -0
  325. package/dist/icon/iconConfig.js.map +1 -1
  326. package/dist/icon/materialConfig.js.map +1 -1
  327. package/dist/icon/styles.js +1 -1
  328. package/dist/icon/styles.js.map +1 -1
  329. package/dist/interaction/RippleContainer.d.ts +0 -2
  330. package/dist/interaction/RippleContainer.js +0 -2
  331. package/dist/interaction/RippleContainer.js.map +1 -1
  332. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  333. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  334. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  335. package/dist/interaction/types.d.ts +20 -2
  336. package/dist/interaction/types.js.map +1 -1
  337. package/dist/interaction/useElementInteraction.d.ts +7 -1
  338. package/dist/interaction/useElementInteraction.js +1 -2
  339. package/dist/interaction/useElementInteraction.js.map +1 -1
  340. package/dist/interaction/utils.d.ts +2 -2
  341. package/dist/interaction/utils.js +2 -2
  342. package/dist/interaction/utils.js.map +1 -1
  343. package/dist/layout/LayoutAppBar.d.ts +0 -1
  344. package/dist/layout/LayoutNav.js +1 -2
  345. package/dist/layout/LayoutNav.js.map +1 -1
  346. package/dist/layout/LayoutWindowSplitter.d.ts +0 -1
  347. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  348. package/dist/layout/_layout.scss +23 -10
  349. package/dist/layout/useExpandableLayout.d.ts +3 -3
  350. package/dist/layout/useExpandableLayout.js.map +1 -1
  351. package/dist/layout/useHorizontalLayoutTransition.js +1 -1
  352. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  353. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  354. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  355. package/dist/layout/useLayoutTree.d.ts +2 -2
  356. package/dist/layout/useLayoutTree.js.map +1 -1
  357. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  358. package/dist/layout/useTemporaryLayout.js.map +1 -1
  359. package/dist/link/Link.d.ts +0 -2
  360. package/dist/link/Link.js +0 -2
  361. package/dist/link/Link.js.map +1 -1
  362. package/dist/link/SkipToMainContent.js.map +1 -1
  363. package/dist/list/List.d.ts +0 -20
  364. package/dist/list/List.js +1 -14
  365. package/dist/list/List.js.map +1 -1
  366. package/dist/list/ListItem.d.ts +2 -17
  367. package/dist/list/ListItem.js +2 -1
  368. package/dist/list/ListItem.js.map +1 -1
  369. package/dist/list/ListItemAddon.d.ts +0 -2
  370. package/dist/list/ListItemAddon.js +0 -2
  371. package/dist/list/ListItemAddon.js.map +1 -1
  372. package/dist/list/ListItemChildren.d.ts +0 -2
  373. package/dist/list/ListItemChildren.js +0 -2
  374. package/dist/list/ListItemChildren.js.map +1 -1
  375. package/dist/list/ListItemLink.d.ts +2 -1
  376. package/dist/list/ListItemLink.js +2 -1
  377. package/dist/list/ListItemLink.js.map +1 -1
  378. package/dist/list/ListItemText.d.ts +0 -2
  379. package/dist/list/ListItemText.js +0 -2
  380. package/dist/list/ListItemText.js.map +1 -1
  381. package/dist/list/ListSubheader.d.ts +3 -2
  382. package/dist/list/ListSubheader.js +0 -2
  383. package/dist/list/ListSubheader.js.map +1 -1
  384. package/dist/list/_list.scss +6 -5
  385. package/dist/list/getListItemHeight.d.ts +2 -2
  386. package/dist/list/getListItemHeight.js +2 -2
  387. package/dist/list/getListItemHeight.js.map +1 -1
  388. package/dist/list/listItemStyles.d.ts +17 -1
  389. package/dist/list/listItemStyles.js.map +1 -1
  390. package/dist/list/listStyles.d.ts +18 -0
  391. package/dist/list/listStyles.js +14 -0
  392. package/dist/list/listStyles.js.map +1 -0
  393. package/dist/list/types.d.ts +9 -3
  394. package/dist/list/types.js +6 -1
  395. package/dist/list/types.js.map +1 -1
  396. package/dist/media-queries/AppSizeProvider.d.ts +8 -0
  397. package/dist/media-queries/AppSizeProvider.js +2 -0
  398. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  399. package/dist/media-queries/_media-queries.scss +12 -0
  400. package/dist/media-queries/appSize.d.ts +5 -5
  401. package/dist/media-queries/appSize.js.map +1 -1
  402. package/dist/media-queries/useMediaQuery.d.ts +1 -1
  403. package/dist/media-queries/useMediaQuery.js +4 -2
  404. package/dist/media-queries/useMediaQuery.js.map +1 -1
  405. package/dist/menu/DropdownMenu.js.map +1 -1
  406. package/dist/menu/Menu.d.ts +8 -3
  407. package/dist/menu/Menu.js +2 -1
  408. package/dist/menu/Menu.js.map +1 -1
  409. package/dist/menu/MenuBar.d.ts +0 -1
  410. package/dist/menu/MenuButton.d.ts +0 -1
  411. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  412. package/dist/menu/MenuItem.d.ts +0 -1
  413. package/dist/menu/MenuItemButton.d.ts +0 -1
  414. package/dist/menu/MenuItemButton.js +6 -2
  415. package/dist/menu/MenuItemButton.js.map +1 -1
  416. package/dist/menu/useContextMenu.d.ts +3 -3
  417. package/dist/menu/useContextMenu.js.map +1 -1
  418. package/dist/menu/useMenuBarProvider.d.ts +0 -1
  419. package/dist/movement/types.d.ts +5 -5
  420. package/dist/movement/types.js.map +1 -1
  421. package/dist/movement/useKeyboardMovementProvider.d.ts +0 -1
  422. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  423. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  424. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  425. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  426. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  427. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  428. package/dist/navigation/NavGroup.d.ts +0 -2
  429. package/dist/navigation/NavGroup.js +0 -2
  430. package/dist/navigation/NavGroup.js.map +1 -1
  431. package/dist/navigation/NavItem.d.ts +0 -2
  432. package/dist/navigation/NavItem.js +0 -2
  433. package/dist/navigation/NavItem.js.map +1 -1
  434. package/dist/navigation/NavItemButton.d.ts +1 -1
  435. package/dist/navigation/NavItemButton.js +1 -0
  436. package/dist/navigation/NavItemButton.js.map +1 -1
  437. package/dist/navigation/NavItemLink.d.ts +3 -2
  438. package/dist/navigation/NavItemLink.js +6 -2
  439. package/dist/navigation/NavItemLink.js.map +1 -1
  440. package/dist/navigation/NavSubheader.d.ts +2 -6
  441. package/dist/navigation/NavSubheader.js +0 -2
  442. package/dist/navigation/NavSubheader.js.map +1 -1
  443. package/dist/navigation/Navigation.d.ts +1 -1
  444. package/dist/navigation/Navigation.js.map +1 -1
  445. package/dist/navigation/_navigation.scss +6 -5
  446. package/dist/navigation/types.d.ts +54 -6
  447. package/dist/navigation/types.js.map +1 -1
  448. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  449. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  450. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  451. package/dist/navigation/useNavigationExpansion.js +77 -0
  452. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  453. package/dist/navigation/utils.d.ts +13 -0
  454. package/dist/navigation/utils.js +36 -0
  455. package/dist/navigation/utils.js.map +1 -0
  456. package/dist/objectFit.d.ts +69 -0
  457. package/dist/objectFit.js +52 -0
  458. package/dist/objectFit.js.map +1 -0
  459. package/dist/overlay/_overlay.scss +2 -1
  460. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  461. package/dist/positioning/useFixedPositioning.js +10 -5
  462. package/dist/positioning/useFixedPositioning.js.map +1 -1
  463. package/dist/positioning/utils.js.map +1 -1
  464. package/dist/progress/CircularProgress.d.ts +0 -2
  465. package/dist/progress/CircularProgress.js +0 -2
  466. package/dist/progress/CircularProgress.js.map +1 -1
  467. package/dist/progress/LinearProgress.d.ts +0 -2
  468. package/dist/progress/LinearProgress.js +0 -2
  469. package/dist/progress/LinearProgress.js.map +1 -1
  470. package/dist/progress/_progress.scss +20 -14
  471. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  472. package/dist/responsive-item/ResponsiveItem.js +68 -0
  473. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  474. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -21
  475. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -14
  476. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  477. package/dist/responsive-item/_responsive-item.scss +110 -133
  478. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  479. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  480. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  481. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  482. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  483. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  484. package/dist/scroll/useScrollLock.d.ts +5 -0
  485. package/dist/scroll/useScrollLock.js.map +1 -1
  486. package/dist/searching/utils.d.ts +2 -2
  487. package/dist/searching/utils.js.map +1 -1
  488. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  489. package/dist/segmented-button/SegmentedButton.js +2 -1
  490. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  491. package/dist/segmented-button/SegmentedButtonContainer.d.ts +0 -2
  492. package/dist/segmented-button/SegmentedButtonContainer.js +0 -2
  493. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  494. package/dist/segmented-button/_segmented-button.scss +6 -6
  495. package/dist/sheet/Sheet.d.ts +30 -16
  496. package/dist/sheet/Sheet.js +24 -14
  497. package/dist/sheet/Sheet.js.map +1 -1
  498. package/dist/sheet/_sheet.scss +18 -6
  499. package/dist/sheet/styles.d.ts +29 -0
  500. package/dist/sheet/styles.js +13 -0
  501. package/dist/sheet/styles.js.map +1 -1
  502. package/dist/snackbar/ToastActionButton.d.ts +0 -1
  503. package/dist/snackbar/ToastCloseButton.d.ts +0 -1
  504. package/dist/snackbar/ToastManager.js +15 -5
  505. package/dist/snackbar/ToastManager.js.map +1 -1
  506. package/dist/snackbar/_snackbar.scss +30 -17
  507. package/dist/snackbar/useCurrentToastActions.d.ts +5 -6
  508. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  509. package/dist/suspense/CircularProgressSuspense.d.ts +0 -2
  510. package/dist/suspense/CircularProgressSuspense.js +0 -2
  511. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  512. package/dist/suspense/NullSuspense.d.ts +0 -2
  513. package/dist/suspense/NullSuspense.js +0 -2
  514. package/dist/suspense/NullSuspense.js.map +1 -1
  515. package/dist/table/TableCellContent.d.ts +0 -3
  516. package/dist/table/TableCellContent.js +0 -3
  517. package/dist/table/TableCellContent.js.map +1 -1
  518. package/dist/table/TableConfigurationProvider.d.ts +0 -1
  519. package/dist/table/_table.scss +15 -3
  520. package/dist/table/tableCellStyles.d.ts +7 -3
  521. package/dist/table/tableCellStyles.js +2 -2
  522. package/dist/table/tableCellStyles.js.map +1 -1
  523. package/dist/tabs/Tab.d.ts +5 -1
  524. package/dist/tabs/Tab.js +2 -1
  525. package/dist/tabs/Tab.js.map +1 -1
  526. package/dist/tabs/TabList.d.ts +2 -2
  527. package/dist/tabs/TabList.js.map +1 -1
  528. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  529. package/dist/tabs/TabListScrollButton.js +6 -2
  530. package/dist/tabs/TabListScrollButton.js.map +1 -1
  531. package/dist/tabs/_tabs.scss +48 -9
  532. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  533. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  534. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  535. package/dist/tabs/tabListScrollButtonStyles.d.ts +2 -0
  536. package/dist/tabs/tabListScrollButtonStyles.js +9 -5
  537. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  538. package/dist/tabs/tabStyles.d.ts +3 -0
  539. package/dist/tabs/tabStyles.js.map +1 -1
  540. package/dist/tabs/useTabList.d.ts +3 -8
  541. package/dist/tabs/useTabList.js +5 -2
  542. package/dist/tabs/useTabList.js.map +1 -1
  543. package/dist/tabs/useTabs.d.ts +39 -17
  544. package/dist/tabs/useTabs.js +9 -3
  545. package/dist/tabs/useTabs.js.map +1 -1
  546. package/dist/tabs/utils.d.ts +0 -18
  547. package/dist/tabs/utils.js +0 -15
  548. package/dist/tabs/utils.js.map +1 -1
  549. package/dist/test-utils/IntersectionObserver.js.map +1 -1
  550. package/dist/test-utils/data-testid.d.ts +0 -1
  551. package/dist/test-utils/matchMedia.d.ts +1 -1
  552. package/dist/test-utils/matchMedia.js +4 -4
  553. package/dist/test-utils/matchMedia.js.map +1 -1
  554. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  555. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  556. package/dist/test-utils/timers.d.ts +9 -5
  557. package/dist/test-utils/timers.js +5 -5
  558. package/dist/test-utils/timers.js.map +1 -1
  559. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  560. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  561. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  562. package/dist/theme/ThemeProvider.js +3 -1
  563. package/dist/theme/ThemeProvider.js.map +1 -1
  564. package/dist/theme/_a11y.scss +77 -13
  565. package/dist/theme/_colors.scss +279 -277
  566. package/dist/theme/_theme.scss +308 -37
  567. package/dist/theme/isColorScheme.d.ts +16 -0
  568. package/dist/theme/isColorScheme.js +19 -0
  569. package/dist/theme/isColorScheme.js.map +1 -0
  570. package/dist/theme/types.d.ts +53 -1
  571. package/dist/theme/types.js +1 -23
  572. package/dist/theme/types.js.map +1 -1
  573. package/dist/theme/useCSSVariables.d.ts +2 -19
  574. package/dist/theme/useCSSVariables.js.map +1 -1
  575. package/dist/theme/useColorScheme.d.ts +1 -36
  576. package/dist/theme/useColorScheme.js.map +1 -1
  577. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  578. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  579. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  580. package/dist/theme/useColorSchemeProvider.js +1 -1
  581. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  582. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  583. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  584. package/dist/theme/utils.js.map +1 -1
  585. package/dist/tooltip/useTooltip.d.ts +14 -9
  586. package/dist/tooltip/useTooltip.js +2 -1
  587. package/dist/tooltip/useTooltip.js.map +1 -1
  588. package/dist/transition/SlideContainer.d.ts +2 -48
  589. package/dist/transition/SlideContainer.js +2 -48
  590. package/dist/transition/SlideContainer.js.map +1 -1
  591. package/dist/transition/_transition.scss +16 -9
  592. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  593. package/dist/transition/types.d.ts +1 -1
  594. package/dist/transition/types.js.map +1 -1
  595. package/dist/transition/useCarousel.d.ts +3 -3
  596. package/dist/transition/useCarousel.js.map +1 -1
  597. package/dist/transition/useCollapseTransition.js.map +1 -1
  598. package/dist/transition/useTransition.js +1 -0
  599. package/dist/transition/useTransition.js.map +1 -1
  600. package/dist/transition/utils.js.map +1 -1
  601. package/dist/tree/DefaultTreeItemRenderer.d.ts +2 -3
  602. package/dist/tree/DefaultTreeItemRenderer.js +1 -1
  603. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  604. package/dist/tree/Tree.d.ts +3 -4
  605. package/dist/tree/Tree.js.map +1 -1
  606. package/dist/tree/TreeItem.d.ts +12 -4
  607. package/dist/tree/TreeItem.js +9 -5
  608. package/dist/tree/TreeItem.js.map +1 -1
  609. package/dist/tree/TreeItemExpander.js.map +1 -1
  610. package/dist/tree/_tree.scss +8 -6
  611. package/dist/tree/types.d.ts +11 -6
  612. package/dist/tree/types.js +1 -26
  613. package/dist/tree/types.js.map +1 -1
  614. package/dist/tree/useTree.d.ts +3 -3
  615. package/dist/tree/useTree.js.map +1 -1
  616. package/dist/tree/useTreeExpansion.d.ts +4 -4
  617. package/dist/tree/useTreeExpansion.js +6 -18
  618. package/dist/tree/useTreeExpansion.js.map +1 -1
  619. package/dist/tree/useTreeSelection.d.ts +4 -4
  620. package/dist/tree/useTreeSelection.js +7 -25
  621. package/dist/tree/useTreeSelection.js.map +1 -1
  622. package/dist/tree/utils.d.ts +1 -1
  623. package/dist/tree/utils.js.map +1 -1
  624. package/dist/types.d.ts +12 -4
  625. package/dist/types.js.map +1 -1
  626. package/dist/typography/SrOnly.d.ts +2 -1
  627. package/dist/typography/SrOnly.js +2 -1
  628. package/dist/typography/SrOnly.js.map +1 -1
  629. package/dist/typography/TextContainer.d.ts +0 -2
  630. package/dist/typography/TextContainer.js +0 -2
  631. package/dist/typography/TextContainer.js.map +1 -1
  632. package/dist/typography/Typography.d.ts +0 -2
  633. package/dist/typography/Typography.js +0 -2
  634. package/dist/typography/Typography.js.map +1 -1
  635. package/dist/typography/WritingDirectionProvider.d.ts +3 -3
  636. package/dist/typography/WritingDirectionProvider.js +2 -2
  637. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  638. package/dist/typography/_typography.scss +94 -37
  639. package/dist/typography/typographyStyles.js.map +1 -1
  640. package/dist/useDebouncedFunction.d.ts +1 -5
  641. package/dist/useDebouncedFunction.js +3 -1
  642. package/dist/useDebouncedFunction.js.map +1 -1
  643. package/dist/useDropzone.d.ts +4 -4
  644. package/dist/useDropzone.js.map +1 -1
  645. package/dist/useEnsuredId.js.map +1 -1
  646. package/dist/useIntersectionObserver.d.ts +5 -5
  647. package/dist/useIntersectionObserver.js.map +1 -1
  648. package/dist/useLocalStorage.d.ts +3 -3
  649. package/dist/useLocalStorage.js +1 -1
  650. package/dist/useLocalStorage.js.map +1 -1
  651. package/dist/useMutationObserver.d.ts +1 -1
  652. package/dist/useMutationObserver.js.map +1 -1
  653. package/dist/useOrientation.js +3 -1
  654. package/dist/useOrientation.js.map +1 -1
  655. package/dist/usePageInactive.d.ts +2 -2
  656. package/dist/usePageInactive.js.map +1 -1
  657. package/dist/useReadonlySet.d.ts +76 -0
  658. package/dist/useReadonlySet.js +72 -0
  659. package/dist/useReadonlySet.js.map +1 -0
  660. package/dist/useResizeListener.d.ts +8 -2
  661. package/dist/useResizeListener.js.map +1 -1
  662. package/dist/useResizeObserver.d.ts +3 -3
  663. package/dist/useResizeObserver.js.map +1 -1
  664. package/dist/useThrottledFunction.d.ts +1 -5
  665. package/dist/useThrottledFunction.js +3 -1
  666. package/dist/useThrottledFunction.js.map +1 -1
  667. package/dist/useToggle.d.ts +7 -7
  668. package/dist/useToggle.js +1 -1
  669. package/dist/useToggle.js.map +1 -1
  670. package/dist/utils/RenderRecursively.d.ts +1 -1
  671. package/dist/utils/RenderRecursively.js.map +1 -1
  672. package/dist/utils/alphaNumericSort.d.ts +1 -1
  673. package/dist/utils/alphaNumericSort.js.map +1 -1
  674. package/dist/utils/bem.js.map +1 -1
  675. package/dist/utils/debounce.d.ts +5 -0
  676. package/dist/utils/debounce.js +17 -0
  677. package/dist/utils/debounce.js.map +1 -0
  678. package/dist/utils/nearest.js.map +1 -1
  679. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  680. package/dist/utils/throttle.d.ts +5 -0
  681. package/dist/utils/throttle.js +30 -0
  682. package/dist/utils/throttle.js.map +1 -0
  683. package/dist/utils/wait.js +3 -1
  684. package/dist/utils/wait.js.map +1 -1
  685. package/dist/window-splitter/WindowSplitter.d.ts +39 -17
  686. package/dist/window-splitter/WindowSplitter.js +40 -19
  687. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  688. package/dist/window-splitter/_window-splitter.scss +32 -14
  689. package/dist/window-splitter/styles.d.ts +14 -0
  690. package/dist/window-splitter/styles.js +18 -0
  691. package/dist/window-splitter/styles.js.map +1 -0
  692. package/package.json +27 -26
  693. package/src/RootHtml.tsx +0 -2
  694. package/src/app-bar/AppBar.tsx +1 -172
  695. package/src/app-bar/AppBarTitle.tsx +1 -46
  696. package/src/app-bar/styles.ts +206 -0
  697. package/src/autocomplete/Autocomplete.tsx +194 -211
  698. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  699. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  700. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  701. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  702. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  703. package/src/autocomplete/autocompleteStyles.ts +48 -9
  704. package/src/autocomplete/defaults.ts +26 -17
  705. package/src/autocomplete/types.ts +744 -61
  706. package/src/autocomplete/useAutocomplete.ts +428 -0
  707. package/src/autocomplete/utils.ts +211 -0
  708. package/src/avatar/Avatar.tsx +0 -2
  709. package/src/badge/Badge.tsx +2 -42
  710. package/src/badge/styles.ts +45 -0
  711. package/src/box/Box.tsx +11 -11
  712. package/src/box/styles.ts +14 -5
  713. package/src/button/AsyncButton.tsx +1 -1
  714. package/src/button/Button.tsx +5 -1
  715. package/src/button/ButtonUnstyled.tsx +0 -2
  716. package/src/card/Card.tsx +35 -6
  717. package/src/card/CardContent.tsx +0 -2
  718. package/src/card/CardFooter.tsx +0 -2
  719. package/src/card/CardHeader.tsx +0 -2
  720. package/src/card/CardSubtitle.tsx +0 -2
  721. package/src/card/CardTitle.tsx +0 -2
  722. package/src/card/ClickableCard.tsx +9 -2
  723. package/src/card/styles.ts +1 -10
  724. package/src/chip/Chip.tsx +6 -3
  725. package/src/chip/styles.ts +12 -10
  726. package/src/delegateEvent.ts +5 -5
  727. package/src/dialog/Dialog.tsx +48 -61
  728. package/src/dialog/DialogContent.tsx +3 -3
  729. package/src/dialog/DialogFooter.tsx +2 -3
  730. package/src/dialog/DialogHeader.tsx +3 -3
  731. package/src/dialog/DialogTitle.tsx +3 -3
  732. package/src/dialog/FixedDialog.tsx +1 -11
  733. package/src/dialog/styles.ts +97 -0
  734. package/src/divider/Divider.tsx +0 -14
  735. package/src/divider/styles.ts +12 -0
  736. package/src/draggable/useDraggable.ts +17 -10
  737. package/src/draggable/utils.ts +3 -3
  738. package/src/expansion-panel/ExpansionList.tsx +1 -1
  739. package/src/expansion-panel/ExpansionPanel.tsx +10 -39
  740. package/src/expansion-panel/ExpansionPanelHeader.tsx +0 -1
  741. package/src/expansion-panel/expansionPanelStyles.ts +33 -0
  742. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  743. package/src/{form → files}/FileInput.tsx +7 -15
  744. package/src/files/styles.ts +10 -0
  745. package/src/{form → files}/useFileUpload.ts +30 -34
  746. package/src/files/utils.ts +234 -0
  747. package/src/{form/fileUtils.ts → files/validation.ts} +13 -242
  748. package/src/focus/useFocusContainer.ts +16 -8
  749. package/src/form/Fieldset.tsx +0 -2
  750. package/src/form/FormMessage.tsx +0 -2
  751. package/src/form/FormMessageContainer.tsx +2 -3
  752. package/src/form/FormMessageCounter.tsx +0 -2
  753. package/src/form/InputToggle.tsx +6 -2
  754. package/src/form/InputToggleIcon.tsx +0 -2
  755. package/src/form/Label.tsx +18 -20
  756. package/src/form/Legend.tsx +0 -2
  757. package/src/form/Listbox.tsx +87 -0
  758. package/src/form/ListboxProvider.ts +37 -0
  759. package/src/form/MenuItemTextField.tsx +1 -2
  760. package/src/form/NativeSelect.tsx +14 -12
  761. package/src/form/Option.tsx +74 -22
  762. package/src/form/Select.tsx +89 -85
  763. package/src/form/SelectedOption.tsx +0 -2
  764. package/src/form/Slider.tsx +14 -11
  765. package/src/form/SliderContainer.tsx +0 -2
  766. package/src/form/SliderMark.tsx +0 -2
  767. package/src/form/SliderMarkLabel.tsx +0 -2
  768. package/src/form/SliderThumb.tsx +4 -4
  769. package/src/form/SliderTrack.tsx +0 -2
  770. package/src/form/SliderValueMarks.tsx +4 -6
  771. package/src/form/Switch.tsx +0 -2
  772. package/src/form/SwitchTrack.tsx +2 -1
  773. package/src/form/TextArea.tsx +6 -8
  774. package/src/form/TextField.tsx +0 -4
  775. package/src/form/TextFieldAddon.tsx +1 -3
  776. package/src/form/TextFieldContainer.tsx +9 -11
  777. package/src/form/formMessageContainerStyles.ts +22 -0
  778. package/src/form/optionStyles.ts +7 -2
  779. package/src/form/sliderUtils.ts +1 -1
  780. package/src/form/textFieldContainerStyles.ts +9 -14
  781. package/src/form/types.ts +3 -11
  782. package/src/form/useCheckboxGroup.ts +28 -36
  783. package/src/form/useCombobox.ts +86 -38
  784. package/src/form/useEditableCombobox.ts +43 -8
  785. package/src/form/useRadioGroup.ts +6 -6
  786. package/src/form/useSelectCombobox.ts +4 -4
  787. package/src/form/useTextField.ts +1 -1
  788. package/src/hoverMode/useHoverMode.ts +3 -3
  789. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  790. package/src/icon/FontIcon.tsx +0 -2
  791. package/src/icon/IconRotator.tsx +0 -2
  792. package/src/icon/MaterialIcon.tsx +0 -2
  793. package/src/icon/MaterialSymbol.tsx +0 -1
  794. package/src/icon/SVGIcon.tsx +0 -2
  795. package/src/icon/TextIconSpacing.tsx +0 -2
  796. package/src/icon/iconConfig.tsx +12 -0
  797. package/src/icon/styles.ts +1 -1
  798. package/src/interaction/RippleContainer.tsx +0 -2
  799. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  800. package/src/interaction/types.ts +21 -2
  801. package/src/interaction/useElementInteraction.tsx +9 -2
  802. package/src/interaction/utils.ts +7 -7
  803. package/src/layout/LayoutNav.tsx +3 -2
  804. package/src/layout/useExpandableLayout.ts +3 -3
  805. package/src/layout/useHorizontalLayoutTransition.ts +1 -1
  806. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  807. package/src/layout/useLayoutTree.ts +2 -2
  808. package/src/layout/useTemporaryLayout.ts +2 -2
  809. package/src/link/Link.tsx +0 -2
  810. package/src/list/List.tsx +1 -33
  811. package/src/list/ListItem.tsx +5 -18
  812. package/src/list/ListItemAddon.tsx +0 -2
  813. package/src/list/ListItemChildren.tsx +0 -2
  814. package/src/list/ListItemLink.tsx +5 -1
  815. package/src/list/ListItemText.tsx +0 -2
  816. package/src/list/ListSubheader.tsx +3 -2
  817. package/src/list/getListItemHeight.ts +2 -2
  818. package/src/list/listItemStyles.ts +21 -4
  819. package/src/list/listStyles.ts +31 -0
  820. package/src/list/types.ts +9 -3
  821. package/src/media-queries/AppSizeProvider.tsx +8 -0
  822. package/src/media-queries/useMediaQuery.ts +3 -2
  823. package/src/menu/Menu.tsx +11 -3
  824. package/src/menu/MenuConfigurationProvider.tsx +2 -2
  825. package/src/menu/MenuItemButton.tsx +7 -1
  826. package/src/menu/useContextMenu.ts +3 -3
  827. package/src/movement/types.ts +5 -5
  828. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  829. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  830. package/src/navigation/NavGroup.tsx +0 -2
  831. package/src/navigation/NavItem.tsx +0 -2
  832. package/src/navigation/NavItemButton.tsx +2 -1
  833. package/src/navigation/NavItemLink.tsx +11 -3
  834. package/src/navigation/NavSubheader.tsx +1 -3
  835. package/src/navigation/Navigation.tsx +1 -1
  836. package/src/navigation/types.ts +60 -10
  837. package/src/navigation/useActiveHeadingId.ts +1 -1
  838. package/src/navigation/useNavigationExpansion.ts +170 -0
  839. package/src/navigation/utils.ts +47 -0
  840. package/src/objectFit.ts +88 -0
  841. package/src/positioning/useFixedPositioning.ts +34 -11
  842. package/src/progress/CircularProgress.tsx +0 -2
  843. package/src/progress/LinearProgress.tsx +0 -2
  844. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  845. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -48
  846. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  847. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  848. package/src/scroll/useScrollLock.ts +6 -0
  849. package/src/searching/utils.ts +3 -3
  850. package/src/segmented-button/SegmentedButton.tsx +5 -1
  851. package/src/segmented-button/SegmentedButtonContainer.tsx +0 -2
  852. package/src/sheet/Sheet.tsx +36 -33
  853. package/src/sheet/styles.ts +50 -0
  854. package/src/snackbar/ToastManager.tsx +16 -5
  855. package/src/snackbar/useCurrentToastActions.ts +5 -5
  856. package/src/suspense/CircularProgressSuspense.tsx +0 -2
  857. package/src/suspense/NullSuspense.tsx +0 -2
  858. package/src/table/TableCellContent.tsx +0 -3
  859. package/src/table/tableCellStyles.ts +10 -6
  860. package/src/tabs/Tab.tsx +7 -1
  861. package/src/tabs/TabList.tsx +2 -2
  862. package/src/tabs/TabListScrollButton.tsx +13 -6
  863. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  864. package/src/tabs/tabListScrollButtonStyles.ts +9 -5
  865. package/src/tabs/tabStyles.ts +4 -0
  866. package/src/tabs/useTabList.ts +6 -9
  867. package/src/tabs/useTabs.ts +67 -20
  868. package/src/tabs/utils.ts +0 -38
  869. package/src/test-utils/IntersectionObserver.ts +1 -1
  870. package/src/test-utils/matchMedia.ts +5 -5
  871. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  872. package/src/test-utils/timers.ts +10 -7
  873. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  874. package/src/theme/ThemeProvider.tsx +3 -3
  875. package/src/theme/isColorScheme.ts +22 -0
  876. package/src/theme/types.ts +67 -1
  877. package/src/theme/useCSSVariables.ts +7 -30
  878. package/src/theme/useColorScheme.ts +1 -40
  879. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  880. package/src/theme/useColorSchemeProvider.ts +2 -2
  881. package/src/tooltip/useTooltip.ts +17 -9
  882. package/src/transition/SlideContainer.tsx +2 -48
  883. package/src/transition/types.ts +1 -1
  884. package/src/transition/useCarousel.ts +3 -3
  885. package/src/transition/useTransition.ts +1 -0
  886. package/src/tree/DefaultTreeItemRenderer.tsx +3 -4
  887. package/src/tree/Tree.tsx +4 -6
  888. package/src/tree/TreeItem.tsx +18 -5
  889. package/src/tree/TreeItemExpander.tsx +1 -1
  890. package/src/tree/types.ts +16 -6
  891. package/src/tree/useTree.ts +3 -3
  892. package/src/tree/useTreeExpansion.ts +10 -28
  893. package/src/tree/useTreeSelection.ts +11 -35
  894. package/src/tree/utils.ts +6 -2
  895. package/src/types.ts +20 -4
  896. package/src/typography/SrOnly.tsx +2 -1
  897. package/src/typography/TextContainer.tsx +0 -2
  898. package/src/typography/Typography.tsx +0 -2
  899. package/src/typography/WritingDirectionProvider.tsx +3 -3
  900. package/src/useDebouncedFunction.ts +4 -9
  901. package/src/useDropzone.ts +4 -4
  902. package/src/useIntersectionObserver.ts +5 -5
  903. package/src/useLocalStorage.ts +6 -6
  904. package/src/useMutationObserver.ts +1 -1
  905. package/src/useOrientation.ts +3 -1
  906. package/src/usePageInactive.ts +2 -2
  907. package/src/useReadonlySet.ts +122 -0
  908. package/src/useResizeListener.ts +8 -2
  909. package/src/useResizeObserver.ts +3 -3
  910. package/src/useThrottledFunction.ts +6 -9
  911. package/src/useToggle.ts +7 -7
  912. package/src/utils/RenderRecursively.tsx +1 -1
  913. package/src/utils/alphaNumericSort.ts +1 -1
  914. package/src/utils/debounce.ts +22 -0
  915. package/src/utils/throttle.ts +38 -0
  916. package/src/utils/wait.ts +5 -1
  917. package/src/window-splitter/WindowSplitter.tsx +40 -45
  918. package/src/window-splitter/styles.ts +42 -0
  919. package/.eslintrc.cjs +0 -34
  920. package/.stylelintrc.json +0 -14
  921. package/.swcrc +0 -17
  922. package/.turbo/turbo-build.log +0 -22
  923. package/.turbo/turbo-lint.log +0 -12
  924. package/.turbo/turbo-test.log +0 -5516
  925. package/.turbo/turbo-typecheck.log +0 -4
  926. package/CHANGELOG.md +0 -323
  927. package/coverage/clover.xml +0 -842
  928. package/coverage/coverage-final.json +0 -6
  929. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +0 -1033
  930. package/coverage/lcov-report/autocomplete/AutocompleteClearButton.tsx.html +0 -262
  931. package/coverage/lcov-report/autocomplete/FilterAutocompleteOptions.tsx.html +0 -364
  932. package/coverage/lcov-report/autocomplete/index.html +0 -146
  933. package/coverage/lcov-report/base.css +0 -224
  934. package/coverage/lcov-report/block-navigation.js +0 -87
  935. package/coverage/lcov-report/button/Button.tsx.html +0 -676
  936. package/coverage/lcov-report/button/index.html +0 -116
  937. package/coverage/lcov-report/card/Card.tsx.html +0 -349
  938. package/coverage/lcov-report/card/CardSubtitle.tsx.html +0 -265
  939. package/coverage/lcov-report/card/index.html +0 -146
  940. package/coverage/lcov-report/card/styles.ts.html +0 -682
  941. package/coverage/lcov-report/createHorizontalPosition.ts.html +0 -1075
  942. package/coverage/lcov-report/createVerticalPosition.ts.html +0 -997
  943. package/coverage/lcov-report/favicon.png +0 -0
  944. package/coverage/lcov-report/form/Option.tsx.html +0 -727
  945. package/coverage/lcov-report/form/index.html +0 -131
  946. package/coverage/lcov-report/form/useListboxProvider.ts.html +0 -253
  947. package/coverage/lcov-report/index.html +0 -146
  948. package/coverage/lcov-report/prettify.css +0 -1
  949. package/coverage/lcov-report/prettify.js +0 -2
  950. package/coverage/lcov-report/searching/fuzzy.ts.html +0 -607
  951. package/coverage/lcov-report/searching/index.html +0 -116
  952. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  953. package/coverage/lcov-report/sorter.js +0 -196
  954. package/coverage/lcov-report/src/card/Card.tsx.html +0 -349
  955. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +0 -277
  956. package/coverage/lcov-report/src/card/index.html +0 -146
  957. package/coverage/lcov-report/src/card/styles.ts.html +0 -682
  958. package/coverage/lcov-report/src/cssUtils.ts.html +0 -787
  959. package/coverage/lcov-report/src/index.html +0 -116
  960. package/coverage/lcov-report/src/transition/index.html +0 -116
  961. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +0 -766
  962. package/coverage/lcov-report/transition/index.html +0 -116
  963. package/coverage/lcov-report/transition/useCSSTransition.ts.html +0 -766
  964. package/coverage/lcov-report/typography/SrOnly.tsx.html +0 -325
  965. package/coverage/lcov-report/typography/index.html +0 -116
  966. package/coverage/lcov-report/utils.ts.html +0 -1225
  967. package/coverage/lcov.info +0 -952
  968. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  969. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  970. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  971. package/dist/dialog/DialogContainer.d.ts +0 -16
  972. package/dist/dialog/DialogContainer.js +0 -22
  973. package/dist/dialog/DialogContainer.js.map +0 -1
  974. package/dist/form/FileInput.js.map +0 -1
  975. package/dist/form/fileUtils.js.map +0 -1
  976. package/dist/form/useFileUpload.js.map +0 -1
  977. package/dist/form/useListboxProvider.d.ts +0 -31
  978. package/dist/form/useListboxProvider.js.map +0 -1
  979. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  980. package/dist/navigation/getHrefFromParents.js +0 -13
  981. package/dist/navigation/getHrefFromParents.js.map +0 -1
  982. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -117
  983. package/dist/responsive-item/ResponsiveItemContainer.js +0 -82
  984. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  985. package/dist/responsive-item/styles.d.ts +0 -34
  986. package/dist/responsive-item/styles.js +0 -17
  987. package/dist/responsive-item/styles.js.map +0 -1
  988. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  989. package/jest.config.ts +0 -68
  990. package/jest.setup.ts +0 -3
  991. package/scripts/copySassFiles.ts +0 -70
  992. package/scripts/getExportMap.ts +0 -66
  993. package/scripts/tsconfig.json +0 -18
  994. package/src/__tests__/NoSsr.node.tsx +0 -26
  995. package/src/__tests__/NoSsr.tsx +0 -89
  996. package/src/__tests__/RootHtml.node.tsx +0 -46
  997. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +0 -19
  998. package/src/__tests__/useAsyncFunction.tsx +0 -124
  999. package/src/__tests__/useDebouncedFunction.tsx +0 -108
  1000. package/src/__tests__/useDropzone.tsx +0 -131
  1001. package/src/__tests__/useElementSize.tsx +0 -181
  1002. package/src/__tests__/useEnsuredId.tsx +0 -25
  1003. package/src/__tests__/useEnsuredState.tsx +0 -74
  1004. package/src/__tests__/useHtmlClassName.tsx +0 -54
  1005. package/src/__tests__/useLocalStorage.tsx +0 -377
  1006. package/src/__tests__/useOrientation.node.tsx +0 -20
  1007. package/src/__tests__/useOrientation.tsx +0 -63
  1008. package/src/__tests__/useResizeObserver.tsx +0 -258
  1009. package/src/__tests__/useThrottledFunction.tsx +0 -226
  1010. package/src/__tests__/useToggle.tsx +0 -78
  1011. package/src/__tests__/useWindowSize.node.tsx +0 -56
  1012. package/src/__tests__/useWindowSize.tsx +0 -155
  1013. package/src/_box-shadows.scss +0 -219
  1014. package/src/_core.scss +0 -432
  1015. package/src/_utils.scss +0 -348
  1016. package/src/app-bar/__tests__/AppBar.tsx +0 -121
  1017. package/src/app-bar/__tests__/AppBarTitle.tsx +0 -39
  1018. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +0 -186
  1019. package/src/app-bar/__tests__/__snapshots__/AppBarTitle.tsx.snap +0 -47
  1020. package/src/app-bar/_app-bar.scss +0 -248
  1021. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  1022. package/src/autocomplete/__tests__/Autocomplete.tsx +0 -458
  1023. package/src/autocomplete/__tests__/__snapshots__/Autocomplete.tsx.snap +0 -144
  1024. package/src/autocomplete/_autocomplete.scss +0 -75
  1025. package/src/avatar/__tests__/Avatar.tsx +0 -75
  1026. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +0 -73
  1027. package/src/avatar/_avatar.scss +0 -157
  1028. package/src/badge/__tests__/Badge.tsx +0 -42
  1029. package/src/badge/__tests__/__snapshots__/Badge.tsx.snap +0 -54
  1030. package/src/badge/_badge.scss +0 -145
  1031. package/src/box/__tests__/Box.tsx +0 -158
  1032. package/src/box/__tests__/__snapshots__/Box.tsx.snap +0 -544
  1033. package/src/box/_box.scss +0 -168
  1034. package/src/button/__tests__/AsyncButton.tsx +0 -211
  1035. package/src/button/__tests__/Button.tsx +0 -198
  1036. package/src/button/__tests__/ButtonUnstyled.tsx +0 -37
  1037. package/src/button/__tests__/TooltippedButton.tsx +0 -60
  1038. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +0 -418
  1039. package/src/button/__tests__/__snapshots__/Button.tsx.snap +0 -573
  1040. package/src/button/__tests__/__snapshots__/ButtonUnstyled.tsx.snap +0 -22
  1041. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +0 -26
  1042. package/src/button/__tests__/__snapshots__/buttonStyles.ts.snap +0 -11
  1043. package/src/button/__tests__/buttonStyles.ts +0 -15
  1044. package/src/button/_button.scss +0 -330
  1045. package/src/card/__tests__/Card.tsx +0 -37
  1046. package/src/card/__tests__/CardContent.tsx +0 -40
  1047. package/src/card/__tests__/CardFooter.tsx +0 -34
  1048. package/src/card/__tests__/CardHeader.tsx +0 -66
  1049. package/src/card/__tests__/CardSubtitle.tsx +0 -30
  1050. package/src/card/__tests__/CardTitle.tsx +0 -30
  1051. package/src/card/__tests__/ClickableCard.tsx +0 -66
  1052. package/src/card/__tests__/__snapshots__/Card.tsx.snap +0 -40
  1053. package/src/card/__tests__/__snapshots__/CardContent.tsx.snap +0 -50
  1054. package/src/card/__tests__/__snapshots__/CardFooter.tsx.snap +0 -30
  1055. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +0 -74
  1056. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +0 -18
  1057. package/src/card/__tests__/__snapshots__/CardTitle.tsx.snap +0 -18
  1058. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +0 -20
  1059. package/src/card/__tests__/__snapshots__/styles.ts.snap +0 -13
  1060. package/src/card/__tests__/styles.ts +0 -45
  1061. package/src/card/_card.scss +0 -189
  1062. package/src/chip/__tests__/Chip.tsx +0 -327
  1063. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +0 -597
  1064. package/src/chip/__tests__/__snapshots__/styles.ts.snap +0 -5
  1065. package/src/chip/__tests__/styles.ts +0 -14
  1066. package/src/chip/_chip.scss +0 -324
  1067. package/src/dialog/DialogContainer.tsx +0 -30
  1068. package/src/dialog/__tests__/Dialog.tsx +0 -316
  1069. package/src/dialog/__tests__/DialogContent.tsx +0 -53
  1070. package/src/dialog/__tests__/DialogFooter.tsx +0 -70
  1071. package/src/dialog/__tests__/DialogHeader.tsx +0 -37
  1072. package/src/dialog/__tests__/DialogTitle.tsx +0 -41
  1073. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +0 -84
  1074. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +0 -36
  1075. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +0 -186
  1076. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +0 -18
  1077. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +0 -26
  1078. package/src/dialog/_dialog.scss +0 -273
  1079. package/src/divider/__tests__/Divider.tsx +0 -36
  1080. package/src/divider/__tests__/__snapshots__/Divider.tsx.snap +0 -26
  1081. package/src/divider/_divider.scss +0 -124
  1082. package/src/draggable/__tests__/__snapshots__/useDraggable.tsx.snap +0 -49
  1083. package/src/draggable/__tests__/useDraggable.tsx +0 -540
  1084. package/src/draggable/_draggable.scss +0 -29
  1085. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +0 -290
  1086. package/src/expansion-panel/__tests__/__snapshots__/ExpansionPanel.tsx.snap +0 -197
  1087. package/src/expansion-panel/_expansion-panel.scss +0 -107
  1088. package/src/focus/__tests__/useFocusContainer.tsx +0 -280
  1089. package/src/form/__tests__/Checkbox.tsx +0 -42
  1090. package/src/form/__tests__/Fieldset.tsx +0 -44
  1091. package/src/form/__tests__/FileInput.tsx +0 -120
  1092. package/src/form/__tests__/Label.tsx +0 -69
  1093. package/src/form/__tests__/Legend.tsx +0 -34
  1094. package/src/form/__tests__/MenuItemCheckbox.tsx +0 -53
  1095. package/src/form/__tests__/MenuItemRadio.tsx +0 -53
  1096. package/src/form/__tests__/Radio.tsx +0 -35
  1097. package/src/form/__tests__/Select.tsx +0 -439
  1098. package/src/form/__tests__/Switch.tsx +0 -152
  1099. package/src/form/__tests__/TextArea.tsx +0 -433
  1100. package/src/form/__tests__/TextField.tsx +0 -195
  1101. package/src/form/__tests__/__snapshots__/Checkbox.tsx.snap +0 -99
  1102. package/src/form/__tests__/__snapshots__/Fieldset.tsx.snap +0 -58
  1103. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +0 -612
  1104. package/src/form/__tests__/__snapshots__/Label.tsx.snap +0 -140
  1105. package/src/form/__tests__/__snapshots__/Legend.tsx.snap +0 -30
  1106. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +0 -96
  1107. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +0 -96
  1108. package/src/form/__tests__/__snapshots__/Radio.tsx.snap +0 -99
  1109. package/src/form/__tests__/__snapshots__/Select.tsx.snap +0 -492
  1110. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +0 -428
  1111. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +0 -548
  1112. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +0 -279
  1113. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +0 -481
  1114. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +0 -704
  1115. package/src/form/__tests__/useCheckboxGroup.tsx +0 -292
  1116. package/src/form/__tests__/useFileUpload.tsx +0 -289
  1117. package/src/form/__tests__/useFormReset.tsx +0 -194
  1118. package/src/form/__tests__/useRadioGroup.tsx +0 -227
  1119. package/src/form/__tests__/utils.ts +0 -247
  1120. package/src/form/_form.scss +0 -2190
  1121. package/src/form/useListboxProvider.ts +0 -45
  1122. package/src/icon/__tests__/FontIcon.tsx +0 -45
  1123. package/src/icon/__tests__/IconRotator.tsx +0 -120
  1124. package/src/icon/__tests__/MaterialIcon.tsx +0 -79
  1125. package/src/icon/__tests__/MaterialSymbol.tsx +0 -100
  1126. package/src/icon/__tests__/SVGIcon.tsx +0 -40
  1127. package/src/icon/__tests__/TextIconSpacing.tsx +0 -108
  1128. package/src/icon/__tests__/__snapshots__/FontIcon.tsx.snap +0 -35
  1129. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +0 -165
  1130. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +0 -82
  1131. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +0 -42
  1132. package/src/icon/__tests__/__snapshots__/SVGIcon.tsx.snap +0 -47
  1133. package/src/icon/__tests__/__snapshots__/TextIconSpacing.tsx.snap +0 -101
  1134. package/src/icon/__tests__/__snapshots__/styles.ts.snap +0 -29
  1135. package/src/icon/__tests__/styles.ts +0 -28
  1136. package/src/icon/_icon.scss +0 -213
  1137. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +0 -121
  1138. package/src/interaction/__tests__/__snapshots__/useHigherContrastChildren.tsx.snap +0 -79
  1139. package/src/interaction/__tests__/useHigherContrastChildren.tsx +0 -97
  1140. package/src/interaction/_interaction.scss +0 -436
  1141. package/src/layout/__tests__/LayoutAppBar.tsx +0 -117
  1142. package/src/layout/__tests__/LayoutNav.tsx +0 -78
  1143. package/src/layout/__tests__/LayoutWindowSplitter.tsx +0 -63
  1144. package/src/layout/__tests__/Main.tsx +0 -51
  1145. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +0 -78
  1146. package/src/layout/__tests__/__snapshots__/LayoutNav.tsx.snap +0 -31
  1147. package/src/layout/__tests__/__snapshots__/LayoutWindowSplitter.tsx.snap +0 -60
  1148. package/src/layout/__tests__/__snapshots__/Main.tsx.snap +0 -32
  1149. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +0 -116
  1150. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +0 -676
  1151. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +0 -95
  1152. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +0 -141
  1153. package/src/layout/__tests__/useExpandableLayout.tsx +0 -279
  1154. package/src/layout/__tests__/useLayoutTree.tsx +0 -212
  1155. package/src/layout/__tests__/useResizableLayout.tsx +0 -170
  1156. package/src/layout/__tests__/useTemporaryLayout.tsx +0 -109
  1157. package/src/layout/_layout.scss +0 -163
  1158. package/src/link/__tests__/Link.tsx +0 -31
  1159. package/src/link/__tests__/SkipToMainContent.tsx +0 -125
  1160. package/src/link/__tests__/__snapshots__/Link.tsx.snap +0 -20
  1161. package/src/link/__tests__/__snapshots__/SkipToMainContent.tsx.snap +0 -22
  1162. package/src/link/_link.scss +0 -149
  1163. package/src/list/__tests__/List.tsx +0 -58
  1164. package/src/list/__tests__/ListItem.tsx +0 -280
  1165. package/src/list/__tests__/ListItemLink.tsx +0 -89
  1166. package/src/list/__tests__/ListSubheader.tsx +0 -81
  1167. package/src/list/__tests__/__snapshots__/List.tsx.snap +0 -41
  1168. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +0 -414
  1169. package/src/list/__tests__/__snapshots__/ListItemLink.tsx.snap +0 -73
  1170. package/src/list/__tests__/__snapshots__/ListSubheader.tsx.snap +0 -99
  1171. package/src/list/__tests__/getListItemHeight.ts +0 -176
  1172. package/src/list/_list.scss +0 -322
  1173. package/src/media-queries/__tests__/AppSizeProvider.node.tsx +0 -37
  1174. package/src/media-queries/__tests__/AppSizeProvider.tsx +0 -119
  1175. package/src/media-queries/__tests__/useMediaQuery.node.tsx +0 -20
  1176. package/src/media-queries/__tests__/useMediaQuery.tsx +0 -59
  1177. package/src/media-queries/_media-queries.scss +0 -63
  1178. package/src/menu/__tests__/DropdownMenu.tsx +0 -627
  1179. package/src/menu/__tests__/MenuBar.tsx +0 -354
  1180. package/src/menu/__tests__/MenuItemCircularProgress.tsx +0 -39
  1181. package/src/menu/__tests__/MenuVisibilityProvider.tsx +0 -34
  1182. package/src/menu/__tests__/__snapshots__/DropdownMenu.tsx.snap +0 -292
  1183. package/src/menu/__tests__/__snapshots__/MenuBar.tsx.snap +0 -87
  1184. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +0 -68
  1185. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +0 -54
  1186. package/src/menu/__tests__/useContextMenu.tsx +0 -41
  1187. package/src/menu/__tests__/utils.ts +0 -121
  1188. package/src/menu/_menu.scss +0 -116
  1189. package/src/movement/__tests__/findMatchIndex.ts +0 -244
  1190. package/src/movement/__tests__/utils.ts +0 -710
  1191. package/src/navigation/__tests__/Navigation.tsx +0 -97
  1192. package/src/navigation/__tests__/__snapshots__/Navigation.tsx.snap +0 -165
  1193. package/src/navigation/_navigation.scss +0 -99
  1194. package/src/navigation/getHrefFromParents.ts +0 -15
  1195. package/src/overlay/__tests__/Overlay.tsx +0 -198
  1196. package/src/overlay/__tests__/__snapshots__/Overlay.tsx.snap +0 -77
  1197. package/src/overlay/_overlay.scss +0 -74
  1198. package/src/portal/__tests__/PortalContainerProvider.node.tsx +0 -26
  1199. package/src/portal/__tests__/PortalContainerProvider.tsx +0 -84
  1200. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -87
  1201. package/src/positioning/__tests__/createHorizontalPosition.ts +0 -777
  1202. package/src/positioning/__tests__/createVerticalPosition.ts +0 -464
  1203. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -205
  1204. package/src/positioning/__tests__/utils.ts +0 -1311
  1205. package/src/progress/__tests__/CircularProgress.tsx +0 -153
  1206. package/src/progress/__tests__/LinearProgress.tsx +0 -131
  1207. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +0 -499
  1208. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +0 -321
  1209. package/src/progress/__tests__/getProgressA11y.ts +0 -16
  1210. package/src/progress/_progress.scss +0 -577
  1211. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -176
  1212. package/src/responsive-item/__tests__/ResponsiveItemContainer.tsx +0 -56
  1213. package/src/responsive-item/__tests__/ResponsiveItemOverlay.tsx +0 -66
  1214. package/src/responsive-item/__tests__/__snapshots__/ResponsiveItemContainer.tsx.snap +0 -85
  1215. package/src/responsive-item/__tests__/__snapshots__/ResponsiveItemOverlay.tsx.snap +0 -151
  1216. package/src/responsive-item/__tests__/__snapshots__/styles.ts.snap +0 -9
  1217. package/src/responsive-item/__tests__/styles.ts +0 -32
  1218. package/src/responsive-item/_responsive-item.scss +0 -199
  1219. package/src/responsive-item/styles.ts +0 -58
  1220. package/src/searching/__tests__/caseInsensitive.ts +0 -165
  1221. package/src/searching/__tests__/fuzzy.ts +0 -169
  1222. package/src/searching/__tests__/toSearchQuery.ts +0 -21
  1223. package/src/searching/__tests__/useFuzzyMatch.tsx +0 -200
  1224. package/src/segmented-button/__tests__/SegmentedButton.tsx +0 -61
  1225. package/src/segmented-button/__tests__/SegmentedButtonContainer.tsx +0 -38
  1226. package/src/segmented-button/__tests__/__snapshots__/SegmentedButton.tsx.snap +0 -116
  1227. package/src/segmented-button/__tests__/__snapshots__/SegmentedButtonContainer.tsx.snap +0 -22
  1228. package/src/segmented-button/_segmented-button.scss +0 -208
  1229. package/src/sheet/_sheet.scss +0 -189
  1230. package/src/snackbar/__tests__/Snackbar.tsx +0 -85
  1231. package/src/snackbar/__tests__/Toast.tsx +0 -105
  1232. package/src/snackbar/__tests__/ToastActionButton.tsx +0 -112
  1233. package/src/snackbar/__tests__/ToastCloseButton.tsx +0 -140
  1234. package/src/snackbar/__tests__/ToastContent.tsx +0 -88
  1235. package/src/snackbar/__tests__/ToastManagerProvider.tsx +0 -852
  1236. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +0 -176
  1237. package/src/snackbar/__tests__/__snapshots__/Toast.tsx.snap +0 -52
  1238. package/src/snackbar/__tests__/__snapshots__/ToastActionButton.tsx.snap +0 -36
  1239. package/src/snackbar/__tests__/__snapshots__/ToastCloseButton.tsx.snap +0 -104
  1240. package/src/snackbar/__tests__/__snapshots__/ToastContent.tsx.snap +0 -26
  1241. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +0 -290
  1242. package/src/snackbar/_snackbar.scss +0 -266
  1243. package/src/suspense/__tests__/CircularProgressSuspense.tsx +0 -90
  1244. package/src/suspense/__tests__/NullSuspense.tsx +0 -46
  1245. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +0 -24
  1246. package/src/table/__tests__/Table.tsx +0 -315
  1247. package/src/table/__tests__/TableBody.tsx +0 -52
  1248. package/src/table/__tests__/TableCheckbox.tsx +0 -89
  1249. package/src/table/__tests__/TableContainer.tsx +0 -31
  1250. package/src/table/__tests__/TableRadio.tsx +0 -112
  1251. package/src/table/__tests__/TableRow.tsx +0 -63
  1252. package/src/table/__tests__/__snapshots__/Table.tsx.snap +0 -2426
  1253. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +0 -54
  1254. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +0 -142
  1255. package/src/table/__tests__/__snapshots__/TableContainer.tsx.snap +0 -16
  1256. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +0 -138
  1257. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +0 -56
  1258. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +0 -3
  1259. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +0 -3
  1260. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +0 -3
  1261. package/src/table/__tests__/tableContainerStyles.ts +0 -8
  1262. package/src/table/__tests__/tableRowStyles.ts +0 -8
  1263. package/src/table/__tests__/tableStyles.ts +0 -8
  1264. package/src/table/_table.scss +0 -447
  1265. package/src/tabs/__tests__/Tab.tsx +0 -51
  1266. package/src/tabs/__tests__/TabList.tsx +0 -640
  1267. package/src/tabs/__tests__/__snapshots__/Tab.tsx.snap +0 -85
  1268. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +0 -51
  1269. package/src/tabs/__tests__/useTabs.tsx +0 -212
  1270. package/src/tabs/_tabs.scss +0 -273
  1271. package/src/test-utils/__tests__/ResizeObserver.ts +0 -171
  1272. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +0 -162
  1273. package/src/theme/__tests__/ThemeProvider.tsx +0 -90
  1274. package/src/theme/__tests__/__snapshots__/useCSSVariables.tsx.snap +0 -27
  1275. package/src/theme/__tests__/__snapshots__/useColorSchemeMetaTag.tsx.snap +0 -15
  1276. package/src/theme/__tests__/useCSSVariables.tsx +0 -177
  1277. package/src/theme/__tests__/useColorSchemeMetaTag.tsx +0 -36
  1278. package/src/theme/__tests__/utils.ts +0 -67
  1279. package/src/theme/_a11y.scss +0 -114
  1280. package/src/theme/_colors.scss +0 -1057
  1281. package/src/theme/_theme.scss +0 -520
  1282. package/src/tooltip/__tests__/Tooltip.tsx +0 -501
  1283. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +0 -94
  1284. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -34
  1285. package/src/tooltip/__tests__/utils.ts +0 -94
  1286. package/src/tooltip/_tooltip.scss +0 -155
  1287. package/src/transition/__tests__/CSSTransition.tsx +0 -182
  1288. package/src/transition/__tests__/Collapse.tsx +0 -209
  1289. package/src/transition/__tests__/CrossFade.tsx +0 -227
  1290. package/src/transition/__tests__/ScaleTransition.tsx +0 -204
  1291. package/src/transition/__tests__/SkeletonPlaceholder.tsx +0 -72
  1292. package/src/transition/__tests__/__snapshots__/CSSTransition.tsx.snap +0 -145
  1293. package/src/transition/__tests__/__snapshots__/Collapse.tsx.snap +0 -224
  1294. package/src/transition/__tests__/__snapshots__/CrossFade.tsx.snap +0 -240
  1295. package/src/transition/__tests__/__snapshots__/ScaleTransition.tsx.snap +0 -239
  1296. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +0 -24
  1297. package/src/transition/__tests__/__snapshots__/useCollapseTransition.tsx.snap +0 -361
  1298. package/src/transition/__tests__/__snapshots__/useCrossFadeTransition.tsx.snap +0 -258
  1299. package/src/transition/__tests__/__snapshots__/useMaxWidthTransition.tsx.snap +0 -68
  1300. package/src/transition/__tests__/__snapshots__/useScaleTransition.tsx.snap +0 -209
  1301. package/src/transition/__tests__/useCSSTransition.tsx +0 -190
  1302. package/src/transition/__tests__/useCollapseTransition.tsx +0 -316
  1303. package/src/transition/__tests__/useCrossFadeTransition.tsx +0 -229
  1304. package/src/transition/__tests__/useMaxWidthTransition.tsx +0 -123
  1305. package/src/transition/__tests__/useScaleTransition.tsx +0 -212
  1306. package/src/transition/__tests__/useTransition.tsx +0 -569
  1307. package/src/transition/__tests__/utils.ts +0 -620
  1308. package/src/transition/_transition.scss +0 -365
  1309. package/src/tree/__tests__/Tree.tsx +0 -735
  1310. package/src/tree/__tests__/TreeGroup.tsx +0 -76
  1311. package/src/tree/__tests__/TreeItemExpander.tsx +0 -74
  1312. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +0 -3618
  1313. package/src/tree/__tests__/__snapshots__/TreeItemExpander.tsx.snap +0 -11
  1314. package/src/tree/__tests__/utils.ts +0 -98
  1315. package/src/tree/_tree.scss +0 -176
  1316. package/src/typography/__tests__/SrOnly.tsx +0 -43
  1317. package/src/typography/__tests__/TextContainer.tsx +0 -45
  1318. package/src/typography/__tests__/Typography.tsx +0 -87
  1319. package/src/typography/__tests__/WritingDirectionProvider.node.tsx +0 -27
  1320. package/src/typography/__tests__/WritingDirectionProvider.tsx +0 -119
  1321. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +0 -56
  1322. package/src/typography/__tests__/__snapshots__/TextContainer.tsx.snap +0 -29
  1323. package/src/typography/__tests__/__snapshots__/Typography.tsx.snap +0 -112
  1324. package/src/typography/_typography.scss +0 -399
  1325. package/src/utils/__tests__/RenderRecursively.tsx +0 -87
  1326. package/src/utils/__tests__/__snapshots__/RenderRecursively.tsx.snap +0 -80
  1327. package/src/utils/__tests__/applyRef.ts +0 -30
  1328. package/src/utils/__tests__/bem.ts +0 -54
  1329. package/src/utils/__tests__/getMiddleOfRange.ts +0 -12
  1330. package/src/utils/__tests__/getPercentage.ts +0 -104
  1331. package/src/utils/__tests__/getRangeDefaultValue.ts +0 -47
  1332. package/src/utils/__tests__/getRangeSteps.ts +0 -14
  1333. package/src/utils/__tests__/loop.ts +0 -50
  1334. package/src/utils/__tests__/nearest.ts +0 -83
  1335. package/src/utils/__tests__/parseCssLengthUnit.node.ts +0 -28
  1336. package/src/utils/__tests__/parseCssLengthUnit.ts +0 -47
  1337. package/src/utils/__tests__/wait.ts +0 -12
  1338. package/src/utils/__tests__/withinRange.ts +0 -24
  1339. package/src/window-splitter/_window-splitter.scss +0 -143
  1340. package/tsconfig.json +0 -19
  1341. package/tsconfig.types.json +0 -12
  1342. package/tsdoc.json +0 -14
  1343. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  1344. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/list/getListItemHeight.ts"],"sourcesContent":["import type { ListItemChildrenProps, ListItemHeight } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ListItemHeightOptions\n extends Pick<\n ListItemChildrenProps,\n | \"leftAddon\"\n | \"rightAddon\"\n | \"leftAddonType\"\n | \"rightAddonType\"\n | \"secondaryText\"\n > {\n /**\n * @see {@link ListItemHeight}\n */\n height?: ListItemHeight;\n}\n\n/**\n * Gets the expected height for the `ListItem` or `SimpleListItem` based on the\n * addons and `secondaryText` props.\n *\n * @see {@link ListItemHeight}\n * @internal\n */\nexport function getListItemHeight(\n options: ListItemHeightOptions = {}\n): ListItemHeight {\n const {\n height,\n leftAddon,\n leftAddonType = \"icon\",\n rightAddon,\n rightAddonType = \"icon\",\n secondaryText,\n } = options;\n\n if (height) {\n return height;\n }\n\n const isIcon =\n (leftAddon && leftAddonType === \"icon\") ||\n (rightAddon && rightAddonType === \"icon\");\n const isAvatar =\n (leftAddon && leftAddonType === \"avatar\") ||\n (rightAddon && rightAddonType === \"avatar\");\n const isGraphic =\n (leftAddon &&\n (leftAddonType === \"media\" || leftAddonType === \"large-media\")) ||\n (rightAddon &&\n (rightAddonType === \"media\" || rightAddonType === \"large-media\"));\n\n // secondary text will always be extra large due to the default `line-height`\n if (isGraphic || secondaryText) {\n return \"extra-large\";\n }\n\n if (isAvatar) {\n return \"large\";\n }\n\n if (isIcon) {\n return \"medium\";\n }\n\n return \"normal\";\n}\n"],"names":["getListItemHeight","options","height","leftAddon","leftAddonType","rightAddon","rightAddonType","secondaryText","isIcon","isAvatar","isGraphic"],"mappings":"AAqBA;;;;;;CAMC,GACD,OAAO,SAASA,kBACdC,UAAiC,CAAC,CAAC;IAEnC,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,aAAa,EACd,GAAGN;IAEJ,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,MAAMM,SACJ,AAACL,aAAaC,kBAAkB,UAC/BC,cAAcC,mBAAmB;IACpC,MAAMG,WACJ,AAACN,aAAaC,kBAAkB,YAC/BC,cAAcC,mBAAmB;IACpC,MAAMI,YACJ,AAACP,aACEC,CAAAA,kBAAkB,WAAWA,kBAAkB,aAAY,KAC7DC,cACEC,CAAAA,mBAAmB,WAAWA,mBAAmB,aAAY;IAElE,6EAA6E;IAC7E,IAAII,aAAaH,eAAe;QAC9B,OAAO;IACT;IAEA,IAAIE,UAAU;QACZ,OAAO;IACT;IAEA,IAAID,QAAQ;QACV,OAAO;IACT;IAEA,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/list/getListItemHeight.ts"],"sourcesContent":["import type { ListItemChildrenProps, ListItemHeight } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ListItemHeightOptions\n extends Pick<\n ListItemChildrenProps,\n | \"leftAddon\"\n | \"rightAddon\"\n | \"leftAddonType\"\n | \"rightAddonType\"\n | \"secondaryText\"\n > {\n /**\n * @see {@link ListItemHeight}\n */\n height?: ListItemHeight;\n}\n\n/**\n * Gets the expected height for the `ListItem` based on the addons and\n * `secondaryText` props.\n *\n * @see {@link ListItemHeight}\n * @internal\n */\nexport function getListItemHeight(\n options: ListItemHeightOptions = {}\n): ListItemHeight {\n const {\n height,\n leftAddon,\n leftAddonType = \"icon\",\n rightAddon,\n rightAddonType = \"icon\",\n secondaryText,\n } = options;\n\n if (height) {\n return height;\n }\n\n const isIcon =\n (leftAddon && leftAddonType === \"icon\") ||\n (rightAddon && rightAddonType === \"icon\");\n const isAvatar =\n (leftAddon && leftAddonType === \"avatar\") ||\n (rightAddon && rightAddonType === \"avatar\");\n const isGraphic =\n (leftAddon &&\n (leftAddonType === \"media\" || leftAddonType === \"large-media\")) ||\n (rightAddon &&\n (rightAddonType === \"media\" || rightAddonType === \"large-media\"));\n\n // secondary text will always be extra large due to the default `line-height`\n if (isGraphic || secondaryText) {\n return \"extra-large\";\n }\n\n if (isAvatar) {\n return \"large\";\n }\n\n if (isIcon) {\n return \"medium\";\n }\n\n return \"normal\";\n}\n"],"names":["getListItemHeight","options","height","leftAddon","leftAddonType","rightAddon","rightAddonType","secondaryText","isIcon","isAvatar","isGraphic"],"mappings":"AAqBA;;;;;;CAMC,GACD,OAAO,SAASA,kBACdC,UAAiC,CAAC,CAAC;IAEnC,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,aAAa,EACd,GAAGN;IAEJ,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,MAAMM,SACJ,AAACL,aAAaC,kBAAkB,UAC/BC,cAAcC,mBAAmB;IACpC,MAAMG,WACJ,AAACN,aAAaC,kBAAkB,YAC/BC,cAAcC,mBAAmB;IACpC,MAAMI,YACJ,AAACP,aACEC,CAAAA,kBAAkB,WAAWA,kBAAkB,aAAY,KAC7DC,cACEC,CAAAA,mBAAmB,WAAWA,mBAAmB,aAAY;IAElE,6EAA6E;IAC7E,IAAII,aAAaH,eAAe;QAC9B,OAAO;IACT;IAEA,IAAIE,UAAU;QACZ,OAAO;IACT;IAEA,IAAID,QAAQ;QACV,OAAO;IACT;IAEA,OAAO;AACT"}
@@ -1,4 +1,20 @@
1
- import type { ListItemAddonPosition, ListItemAddonType, ListItemHeight } from "./types.js";
1
+ import { type ListItemAddonPosition, type ListItemAddonType, type ListItemHeight } from "./types.js";
2
+ declare module "react" {
3
+ interface CSSProperties {
4
+ "--rmd-list-item-keyline"?: string | number;
5
+ "--rmd-list-item-padding-h"?: string | number;
6
+ "--rmd-list-item-padding-v"?: string | number;
7
+ "--rmd-list-item-height"?: string | number;
8
+ "--rmd-list-item-medium-height"?: string | number;
9
+ "--rmd-list-item-large-height"?: string | number;
10
+ "--rmd-list-item-extra-large-height"?: string | number;
11
+ "--rmd-list-item-multiline-clamp"?: string | number;
12
+ "--rmd-list-item-multiline-height"?: string | number;
13
+ "--rmd-list-item-media-size"?: string | number;
14
+ "--rmd-list-item-media-spacing"?: string | number;
15
+ "--rmd-list-item-text-multiline-height"?: string | number;
16
+ }
17
+ }
2
18
  /** @since 6.0.0 */
3
19
  export interface ListItemClassNameOptions {
4
20
  className?: string;
@@ -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/** @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 * @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/** @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 * @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/** @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 * @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/** @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 * @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 * @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
+ {"version":3,"sources":["../../src/list/listItemStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport {\n type ListItemAddonPosition,\n type ListItemAddonType,\n type ListItemHeight,\n} from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-list-item-keyline\"?: string | number;\n \"--rmd-list-item-padding-h\"?: string | number;\n \"--rmd-list-item-padding-v\"?: string | number;\n \"--rmd-list-item-height\"?: string | number;\n \"--rmd-list-item-medium-height\"?: string | number;\n \"--rmd-list-item-large-height\"?: string | number;\n \"--rmd-list-item-extra-large-height\"?: string | number;\n \"--rmd-list-item-multiline-clamp\"?: string | number;\n \"--rmd-list-item-multiline-height\"?: string | number;\n \"--rmd-list-item-media-size\"?: string | number;\n \"--rmd-list-item-media-spacing\"?: string | number;\n \"--rmd-list-item-text-multiline-height\"?: string | number;\n }\n}\n\nconst styles = bem(\"rmd-list-item\");\n\n/** @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 * @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/** @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 * @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/** @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 * @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/** @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 * @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 * @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;AAwBtC,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"}
@@ -0,0 +1,18 @@
1
+ declare module "react" {
2
+ interface CSSProperties {
3
+ "--rmd-list-padding-h"?: string | number;
4
+ "--rmd-list-padding-v"?: string | number;
5
+ }
6
+ }
7
+ /** @since 6.0.0 */
8
+ export interface ListClassNameOptions {
9
+ className?: string;
10
+ /** @defaultValue `false` */
11
+ dense?: boolean;
12
+ /** @defaultValue `false` */
13
+ horizontal?: boolean;
14
+ }
15
+ /**
16
+ * @since 6.0.0
17
+ */
18
+ export declare function list(options?: ListClassNameOptions): string;
@@ -0,0 +1,14 @@
1
+ import { cnb } from "cnbuilder";
2
+ import { bem } from "../utils/bem.js";
3
+ const styles = bem("rmd-list");
4
+ /**
5
+ * @since 6.0.0
6
+ */ export function list(options = {}) {
7
+ const { dense = false, horizontal = false, className } = options;
8
+ return cnb(styles({
9
+ dense,
10
+ horizontal
11
+ }), className);
12
+ }
13
+
14
+ //# sourceMappingURL=listStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/listStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-list-padding-h\"?: string | number;\n \"--rmd-list-padding-v\"?: string | number;\n }\n}\n\nconst styles = bem(\"rmd-list\");\n\n/** @since 6.0.0 */\nexport interface ListClassNameOptions {\n className?: string;\n\n /** @defaultValue `false` */\n dense?: boolean;\n\n /** @defaultValue `false` */\n horizontal?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function list(options: ListClassNameOptions = {}): string {\n const { dense = false, horizontal = false, className } = options;\n\n return cnb(styles({ dense, horizontal }), className);\n}\n"],"names":["cnb","bem","styles","list","options","dense","horizontal","className"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAStC,MAAMC,SAASD,IAAI;AAanB;;CAEC,GACD,OAAO,SAASE,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,QAAQ,KAAK,EAAEC,aAAa,KAAK,EAAEC,SAAS,EAAE,GAAGH;IAEzD,OAAOJ,IAAIE,OAAO;QAAEG;QAAOC;IAAW,IAAIC;AAC5C"}
@@ -126,9 +126,9 @@ export interface ListItemChildrenAddonProps {
126
126
  */
127
127
  export interface ListItemChildrenTextProps {
128
128
  /**
129
- * The main content to display. When the `textChildren` prop is enabled and
130
- * there is child content, it will be treated as primary text and update the
131
- * styles automatically.
129
+ * The main content to display that defaults to being wrapped in the
130
+ * `ListItemText` component. Enable the {@link disableTextChildren} prop to
131
+ * render without the additional `ListItemText` wrapper.
132
132
  */
133
133
  children?: ReactNode;
134
134
  /**
@@ -189,5 +189,11 @@ export interface ListItemChildrenTextProps {
189
189
  */
190
190
  multiline?: boolean;
191
191
  }
192
+ /**
193
+ * @since 6.0.0 Extends the `ListItemChildrenTextProps` and
194
+ * `ListItemChildrenAddonProps` interfaces.
195
+ * @since 6.0.0 Added `textProps` and `secondaryTextClassName`
196
+ * @since 6.0.0 Renamed `textChildren` to `disableTextChildren`
197
+ */
192
198
  export interface ListItemChildrenProps extends ListItemChildrenTextProps, ListItemChildrenAddonProps {
193
199
  }
@@ -1,3 +1,8 @@
1
- export { };
1
+ /**
2
+ * @since 6.0.0 Extends the `ListItemChildrenTextProps` and
3
+ * `ListItemChildrenAddonProps` interfaces.
4
+ * @since 6.0.0 Added `textProps` and `secondaryTextClassName`
5
+ * @since 6.0.0 Renamed `textChildren` to `disableTextChildren`
6
+ */ export { };
2
7
 
3
8
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
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/** @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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
+ {"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/** @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 * @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 * @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 * @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 * @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 * @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 * @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 * @since 6.0.0\n */\nexport interface ListItemChildrenTextProps {\n /**\n * The main content to display that defaults to being wrapped in the\n * `ListItemText` component. Enable the {@link disableTextChildren} prop to\n * render without the additional `ListItemText` wrapper.\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 * @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 * @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 * @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\n/**\n * @since 6.0.0 Extends the `ListItemChildrenTextProps` and\n * `ListItemChildrenAddonProps` interfaces.\n * @since 6.0.0 Added `textProps` and `secondaryTextClassName`\n * @since 6.0.0 Renamed `textChildren` to `disableTextChildren`\n */\nexport interface ListItemChildrenProps\n extends ListItemChildrenTextProps,\n ListItemChildrenAddonProps {}\n"],"names":[],"mappings":"AAgOA;;;;;CAKC,GACD,WAEiC"}
@@ -21,10 +21,16 @@ import { type AppSize, type AppSizeQueries } from "./appSize.js";
21
21
  * @throws "The `AppSizeProvider` has not been mounted."
22
22
  */
23
23
  export declare function useAppSize(): Readonly<AppSize>;
24
+ /**
25
+ * @since 6.0.0 Renamed from `AppSizeListenerProps`.
26
+ * @since 6.0.0 Removed the `onChange` prop
27
+ * @since 6.0.0 Renamed `defaultSize` to `ssrSize`
28
+ */
24
29
  export interface AppSizeProviderProps extends AppSizeQueries {
25
30
  /**
26
31
  * @defaultValue `DEFAULT_APP_SIZE`
27
32
  * @see {@link DEFAULT_APP_SIZE}
33
+ * @since 6.0.0
28
34
  */
29
35
  ssrSize?: Readonly<AppSize>;
30
36
  children: ReactNode;
@@ -34,5 +40,7 @@ export interface AppSizeProviderProps extends AppSizeQueries {
34
40
  *
35
41
  * This component should be mounted near the root of your app to determine the
36
42
  * current app size based on different media queries.
43
+ *
44
+ * @since 6.0.0 Renamed from `AppSizeListener`
37
45
  */
38
46
  export declare function AppSizeProvider(props: AppSizeProviderProps): ReactElement;
@@ -46,6 +46,8 @@ const { Provider } = context;
46
46
  *
47
47
  * This component should be mounted near the root of your app to determine the
48
48
  * current app size based on different media queries.
49
+ *
50
+ * @since 6.0.0 Renamed from `AppSizeListener`
49
51
  */ export function AppSizeProvider(props) {
50
52
  const { ssrSize = DEFAULT_APP_SIZE, phoneMaxWidth = DEFAULT_PHONE_MAX_WIDTH, tabletMinWidth = DEFAULT_TABLET_MIN_WIDTH, tabletMaxWidth = DEFAULT_TABLET_MAX_WIDTH, desktopMinWidth = DEFAULT_DESKTOP_MIN_WIDTH, desktopLargeMinWidth = DEFAULT_DESKTOP_LARGE_MIN_WIDTH, children } = props;
51
53
  const { __root } = useContext(context);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/media-queries/AppSizeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useOrientation } from \"../useOrientation.js\";\nimport {\n DEFAULT_APP_SIZE,\n DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n DEFAULT_DESKTOP_MIN_WIDTH,\n DEFAULT_PHONE_MAX_WIDTH,\n DEFAULT_TABLET_MAX_WIDTH,\n DEFAULT_TABLET_MIN_WIDTH,\n type AppSize,\n type AppSizeQueries,\n} from \"./appSize.js\";\nimport { useMediaQuery } from \"./useMediaQuery.js\";\n\n/** @internal */\ninterface AppSizeContext extends AppSize {\n __root: boolean;\n}\n\nconst context = createContext<AppSizeContext>({\n __root: false,\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n});\ncontext.displayName = \"AppSize\";\nconst { Provider } = context;\n\n/**\n * **Note**: The app size object returned by this hook will **not** be equal\n * between renders.\n *\n * @example Simple Example\n * ```tsx\n * import { useAppSize } from \"@react-md/core\";\n *\n * function Example() {\n * const { isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape } =\n * useAppSize()\n *\n * // do something based on the app size\n * return null;\n * }\n * ```\n *\n * @returns the current app size.\n * @throws \"The `AppSizeProvider` has not been mounted.\"\n */\nexport function useAppSize(): Readonly<AppSize> {\n const { __root, ...appSize } = useContext(context);\n if (!__root) {\n throw new Error(\"The `AppSizeProvider` has not been mounted.\");\n }\n\n return appSize;\n}\n\nexport interface AppSizeProviderProps extends AppSizeQueries {\n /**\n * @defaultValue `DEFAULT_APP_SIZE`\n * @see {@link DEFAULT_APP_SIZE}\n */\n ssrSize?: Readonly<AppSize>;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component should be mounted near the root of your app to determine the\n * current app size based on different media queries.\n */\nexport function AppSizeProvider(props: AppSizeProviderProps): ReactElement {\n const {\n ssrSize = DEFAULT_APP_SIZE,\n phoneMaxWidth = DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth = DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth = DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth = DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth = DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n children,\n } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\"The `AppSizeProvider` cannot be mounted multiple times.\");\n }\n\n const ssr = useSsr();\n const matchesDesktop = useMediaQuery(\n `screen and (min-width: ${desktopMinWidth})`\n );\n const matchesLargeDesktop = useMediaQuery(\n `screen and (min-width: ${desktopLargeMinWidth})`\n );\n const matchesTablet = useMediaQuery(\n `screen and (min-width: ${tabletMinWidth}) and (max-width: ${tabletMaxWidth})`\n );\n const matchesPhone = useMediaQuery(\n `screen and (max-width: ${phoneMaxWidth})`\n );\n const isDesktop = matchesDesktop;\n const isTablet = !matchesDesktop && matchesTablet;\n const isPhone = !isTablet && !isDesktop && matchesPhone;\n const isLandscape = useOrientation().includes(\"landscape\");\n const isLargeDesktop = matchesLargeDesktop;\n\n const appSize = useMemo<AppSizeContext>(\n () => ({\n __root: true,\n isPhone,\n isTablet,\n isDesktop,\n isLargeDesktop,\n isLandscape,\n }),\n [isDesktop, isLandscape, isLargeDesktop, isPhone, isTablet]\n );\n\n let value = appSize;\n if (ssr || typeof window === \"undefined\") {\n value = {\n __root: true,\n ...ssrSize,\n };\n }\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","useSsr","useOrientation","DEFAULT_APP_SIZE","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","useMediaQuery","context","__root","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape","displayName","Provider","useAppSize","appSize","Error","AppSizeProvider","props","ssrSize","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","children","ssr","matchesDesktop","matchesLargeDesktop","matchesTablet","matchesPhone","includes","value","window"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AACf,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SACEC,gBAAgB,EAChBC,+BAA+B,EAC/BC,yBAAyB,EACzBC,uBAAuB,EACvBC,wBAAwB,EACxBC,wBAAwB,QAGnB,eAAe;AACtB,SAASC,aAAa,QAAQ,qBAAqB;AAOnD,MAAMC,wBAAUZ,cAA8B;IAC5Ca,QAAQ;IACRC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf;AACAN,QAAQO,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGR;AAErB;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASS;IACd,MAAM,EAAER,MAAM,EAAE,GAAGS,SAAS,GAAGrB,WAAWW;IAC1C,IAAI,CAACC,QAAQ;QACX,MAAM,IAAIU,MAAM;IAClB;IAEA,OAAOD;AACT;AAWA;;;;;CAKC,GACD,OAAO,SAASE,gBAAgBC,KAA2B;IACzD,MAAM,EACJC,UAAUrB,gBAAgB,EAC1BsB,gBAAgBnB,uBAAuB,EACvCoB,iBAAiBlB,wBAAwB,EACzCmB,iBAAiBpB,wBAAwB,EACzCqB,kBAAkBvB,yBAAyB,EAC3CwB,uBAAuBzB,+BAA+B,EACtD0B,QAAQ,EACT,GAAGP;IACJ,MAAM,EAAEZ,MAAM,EAAE,GAAGZ,WAAWW;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIU,MAAM;IAClB;IAEA,MAAMU,MAAM9B;IACZ,MAAM+B,iBAAiBvB,cACrB,CAAC,uBAAuB,EAAEmB,gBAAgB,CAAC,CAAC;IAE9C,MAAMK,sBAAsBxB,cAC1B,CAAC,uBAAuB,EAAEoB,qBAAqB,CAAC,CAAC;IAEnD,MAAMK,gBAAgBzB,cACpB,CAAC,uBAAuB,EAAEiB,eAAe,kBAAkB,EAAEC,eAAe,CAAC,CAAC;IAEhF,MAAMQ,eAAe1B,cACnB,CAAC,uBAAuB,EAAEgB,cAAc,CAAC,CAAC;IAE5C,MAAMX,YAAYkB;IAClB,MAAMnB,WAAW,CAACmB,kBAAkBE;IACpC,MAAMtB,UAAU,CAACC,YAAY,CAACC,aAAaqB;IAC3C,MAAMnB,cAAcd,iBAAiBkC,QAAQ,CAAC;IAC9C,MAAMrB,iBAAiBkB;IAEvB,MAAMb,UAAUpB,QACd,IAAO,CAAA;YACLW,QAAQ;YACRC;YACAC;YACAC;YACAC;YACAC;QACF,CAAA,GACA;QAACF;QAAWE;QAAaD;QAAgBH;QAASC;KAAS;IAG7D,IAAIwB,QAAQjB;IACZ,IAAIW,OAAO,OAAOO,WAAW,aAAa;QACxCD,QAAQ;YACN1B,QAAQ;YACR,GAAGa,OAAO;QACZ;IACF;IAEA,qBAAO,KAACN;QAASmB,OAAOA;kBAAQP;;AAClC"}
1
+ {"version":3,"sources":["../../src/media-queries/AppSizeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useOrientation } from \"../useOrientation.js\";\nimport {\n DEFAULT_APP_SIZE,\n DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n DEFAULT_DESKTOP_MIN_WIDTH,\n DEFAULT_PHONE_MAX_WIDTH,\n DEFAULT_TABLET_MAX_WIDTH,\n DEFAULT_TABLET_MIN_WIDTH,\n type AppSize,\n type AppSizeQueries,\n} from \"./appSize.js\";\nimport { useMediaQuery } from \"./useMediaQuery.js\";\n\n/** @internal */\ninterface AppSizeContext extends AppSize {\n __root: boolean;\n}\n\nconst context = createContext<AppSizeContext>({\n __root: false,\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n});\ncontext.displayName = \"AppSize\";\nconst { Provider } = context;\n\n/**\n * **Note**: The app size object returned by this hook will **not** be equal\n * between renders.\n *\n * @example Simple Example\n * ```tsx\n * import { useAppSize } from \"@react-md/core\";\n *\n * function Example() {\n * const { isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape } =\n * useAppSize()\n *\n * // do something based on the app size\n * return null;\n * }\n * ```\n *\n * @returns the current app size.\n * @throws \"The `AppSizeProvider` has not been mounted.\"\n */\nexport function useAppSize(): Readonly<AppSize> {\n const { __root, ...appSize } = useContext(context);\n if (!__root) {\n throw new Error(\"The `AppSizeProvider` has not been mounted.\");\n }\n\n return appSize;\n}\n\n/**\n * @since 6.0.0 Renamed from `AppSizeListenerProps`.\n * @since 6.0.0 Removed the `onChange` prop\n * @since 6.0.0 Renamed `defaultSize` to `ssrSize`\n */\nexport interface AppSizeProviderProps extends AppSizeQueries {\n /**\n * @defaultValue `DEFAULT_APP_SIZE`\n * @see {@link DEFAULT_APP_SIZE}\n * @since 6.0.0\n */\n ssrSize?: Readonly<AppSize>;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component should be mounted near the root of your app to determine the\n * current app size based on different media queries.\n *\n * @since 6.0.0 Renamed from `AppSizeListener`\n */\nexport function AppSizeProvider(props: AppSizeProviderProps): ReactElement {\n const {\n ssrSize = DEFAULT_APP_SIZE,\n phoneMaxWidth = DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth = DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth = DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth = DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth = DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n children,\n } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\"The `AppSizeProvider` cannot be mounted multiple times.\");\n }\n\n const ssr = useSsr();\n const matchesDesktop = useMediaQuery(\n `screen and (min-width: ${desktopMinWidth})`\n );\n const matchesLargeDesktop = useMediaQuery(\n `screen and (min-width: ${desktopLargeMinWidth})`\n );\n const matchesTablet = useMediaQuery(\n `screen and (min-width: ${tabletMinWidth}) and (max-width: ${tabletMaxWidth})`\n );\n const matchesPhone = useMediaQuery(\n `screen and (max-width: ${phoneMaxWidth})`\n );\n const isDesktop = matchesDesktop;\n const isTablet = !matchesDesktop && matchesTablet;\n const isPhone = !isTablet && !isDesktop && matchesPhone;\n const isLandscape = useOrientation().includes(\"landscape\");\n const isLargeDesktop = matchesLargeDesktop;\n\n const appSize = useMemo<AppSizeContext>(\n () => ({\n __root: true,\n isPhone,\n isTablet,\n isDesktop,\n isLargeDesktop,\n isLandscape,\n }),\n [isDesktop, isLandscape, isLargeDesktop, isPhone, isTablet]\n );\n\n let value = appSize;\n if (ssr || typeof window === \"undefined\") {\n value = {\n __root: true,\n ...ssrSize,\n };\n }\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","useSsr","useOrientation","DEFAULT_APP_SIZE","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","useMediaQuery","context","__root","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape","displayName","Provider","useAppSize","appSize","Error","AppSizeProvider","props","ssrSize","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","children","ssr","matchesDesktop","matchesLargeDesktop","matchesTablet","matchesPhone","includes","value","window"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AACf,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SACEC,gBAAgB,EAChBC,+BAA+B,EAC/BC,yBAAyB,EACzBC,uBAAuB,EACvBC,wBAAwB,EACxBC,wBAAwB,QAGnB,eAAe;AACtB,SAASC,aAAa,QAAQ,qBAAqB;AAOnD,MAAMC,wBAAUZ,cAA8B;IAC5Ca,QAAQ;IACRC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf;AACAN,QAAQO,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGR;AAErB;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASS;IACd,MAAM,EAAER,MAAM,EAAE,GAAGS,SAAS,GAAGrB,WAAWW;IAC1C,IAAI,CAACC,QAAQ;QACX,MAAM,IAAIU,MAAM;IAClB;IAEA,OAAOD;AACT;AAiBA;;;;;;;CAOC,GACD,OAAO,SAASE,gBAAgBC,KAA2B;IACzD,MAAM,EACJC,UAAUrB,gBAAgB,EAC1BsB,gBAAgBnB,uBAAuB,EACvCoB,iBAAiBlB,wBAAwB,EACzCmB,iBAAiBpB,wBAAwB,EACzCqB,kBAAkBvB,yBAAyB,EAC3CwB,uBAAuBzB,+BAA+B,EACtD0B,QAAQ,EACT,GAAGP;IACJ,MAAM,EAAEZ,MAAM,EAAE,GAAGZ,WAAWW;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIU,MAAM;IAClB;IAEA,MAAMU,MAAM9B;IACZ,MAAM+B,iBAAiBvB,cACrB,CAAC,uBAAuB,EAAEmB,gBAAgB,CAAC,CAAC;IAE9C,MAAMK,sBAAsBxB,cAC1B,CAAC,uBAAuB,EAAEoB,qBAAqB,CAAC,CAAC;IAEnD,MAAMK,gBAAgBzB,cACpB,CAAC,uBAAuB,EAAEiB,eAAe,kBAAkB,EAAEC,eAAe,CAAC,CAAC;IAEhF,MAAMQ,eAAe1B,cACnB,CAAC,uBAAuB,EAAEgB,cAAc,CAAC,CAAC;IAE5C,MAAMX,YAAYkB;IAClB,MAAMnB,WAAW,CAACmB,kBAAkBE;IACpC,MAAMtB,UAAU,CAACC,YAAY,CAACC,aAAaqB;IAC3C,MAAMnB,cAAcd,iBAAiBkC,QAAQ,CAAC;IAC9C,MAAMrB,iBAAiBkB;IAEvB,MAAMb,UAAUpB,QACd,IAAO,CAAA;YACLW,QAAQ;YACRC;YACAC;YACAC;YACAC;YACAC;QACF,CAAA,GACA;QAACF;QAAWE;QAAaD;QAAgBH;QAASC;KAAS;IAG7D,IAAIwB,QAAQjB;IACZ,IAAIW,OAAO,OAAOO,WAAW,aAAa;QACxCD,QAAQ;YACN1B,QAAQ;YACR,GAAGa,OAAO;QACZ;IACF;IAEA,qBAAO,KAACN;QAASmB,OAAOA;kBAAQP;;AAClC"}
@@ -4,30 +4,40 @@ $tablet-max-width: 64em !default;
4
4
  $desktop-min-width: 64.0625em !default;
5
5
  $large-desktop-min-width: 80em !default;
6
6
 
7
+ /// Note: This will need to be included at the end of a block with the new Sass
8
+ /// rules or prefix styles with `& {}`
7
9
  @mixin phone-media {
8
10
  @media screen and (max-width: #{$phone-max-width}) {
9
11
  @content;
10
12
  }
11
13
  }
12
14
 
15
+ /// Note: This will need to be included at the end of a block with the new Sass
16
+ /// rules or prefix styles with `& {}`
13
17
  @mixin tablet-media {
14
18
  @media screen and (min-width: #{$tablet-min-width}) {
15
19
  @content;
16
20
  }
17
21
  }
18
22
 
23
+ /// Note: This will need to be included at the end of a block with the new Sass
24
+ /// rules or prefix styles with `& {}`
19
25
  @mixin tablet-only-media {
20
26
  @media screen and (min-width: #{$tablet-min-width}) and (max-width: #{$tablet-max-width}) {
21
27
  @content;
22
28
  }
23
29
  }
24
30
 
31
+ /// Note: This will need to be included at the end of a block with the new Sass
32
+ /// rules or prefix styles with `& {}`
25
33
  @mixin desktop-media {
26
34
  @media screen and (min-width: #{$desktop-min-width}) {
27
35
  @content;
28
36
  }
29
37
  }
30
38
 
39
+ /// Note: This will need to be included at the end of a block with the new Sass
40
+ /// rules or prefix styles with `& {}`
31
41
  /// Creates a media query so that screen sizes matching at least the min width
32
42
  /// for a large desktop will gain these styles.
33
43
  @mixin large-desktop-media {
@@ -36,6 +46,8 @@ $large-desktop-min-width: 80em !default;
36
46
  }
37
47
  }
38
48
 
49
+ /// Note: This will need to be included at the end of a block with the new Sass
50
+ /// rules or prefix styles with `& {}`
39
51
  @mixin media($type) {
40
52
  @if $type == phone {
41
53
  @include phone-media {
@@ -1,14 +1,14 @@
1
1
  export type QuerySize = number | `${number}${string}`;
2
2
  /** @defaultValue `47.9375em` */
3
- export declare const DEFAULT_PHONE_MAX_WIDTH: `${number}em`;
3
+ export declare const DEFAULT_PHONE_MAX_WIDTH = "47.9375em";
4
4
  /** @defaultValue `48em` */
5
- export declare const DEFAULT_TABLET_MIN_WIDTH: `${number}em`;
5
+ export declare const DEFAULT_TABLET_MIN_WIDTH = "48em";
6
6
  /** @defaultValue `64em` */
7
- export declare const DEFAULT_TABLET_MAX_WIDTH: `${number}em`;
7
+ export declare const DEFAULT_TABLET_MAX_WIDTH = "64em";
8
8
  /** @defaultValue `64.0625em` */
9
- export declare const DEFAULT_DESKTOP_MIN_WIDTH: `${number}em`;
9
+ export declare const DEFAULT_DESKTOP_MIN_WIDTH = "64.0625em";
10
10
  /** @defaultValue `80em` */
11
- export declare const DEFAULT_DESKTOP_LARGE_MIN_WIDTH: `${number}em`;
11
+ export declare const DEFAULT_DESKTOP_LARGE_MIN_WIDTH = "80em";
12
12
  export interface AppSizeQueries {
13
13
  /**
14
14
  * The max width to use for phones. This one is a max width unlike the others
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/media-queries/appSize.ts"],"sourcesContent":["export type QuerySize = number | `${number}${string}`;\n\n/** @defaultValue `47.9375em` */\nexport const DEFAULT_PHONE_MAX_WIDTH = `${767 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `48em` */\nexport const DEFAULT_TABLET_MIN_WIDTH = `${768 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64em` */\nexport const DEFAULT_TABLET_MAX_WIDTH = `${1024 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64.0625em` */\nexport const DEFAULT_DESKTOP_MIN_WIDTH = `${1025 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `80em` */\nexport const DEFAULT_DESKTOP_LARGE_MIN_WIDTH = `${\n 1280 / 16\n}em` satisfies QuerySize;\n\nexport interface AppSizeQueries {\n /**\n * The max width to use for phones. This one is a max width unlike the others\n * since everything from 0 to this value will be considered a phone.\n *\n * @defaultValue `47.9375em`\n * @see {@link DEFAULT_PHONE_MAX_WIDTH}\n */\n phoneMaxWidth?: QuerySize;\n\n /**\n * The min width for a tablet device.\n *\n * @defaultValue `48em`\n * @see {@link DEFAULT_TABLET_MIN_WIDTH}\n */\n tabletMinWidth?: QuerySize;\n\n /**\n * The max width for a tablet device. This should normally be `1px` less than\n * the `desktopMinWidth`, but it can be any value if needed. The tablet has a\n * range of min to max so that you can have a bit more control.\n *\n * @defaultValue `64em`\n * @see {@link DEFAULT_TABLET_MAX_WIDTH}\n */\n tabletMaxWidth?: QuerySize;\n\n /**\n * The min width for a desktop screen.\n *\n * @defaultValue `64.0625em`\n * @see {@link DEFAULT_DESKTOP_MIN_WIDTH}\n */\n desktopMinWidth?: QuerySize;\n\n /**\n * The min width for a large (1440p, 4k, etc) desktop screen.\n *\n * @defaultValue `80em`\n * @see {@link DEFAULT_DESKTOP_LARGE_MIN_WIDTH}\n */\n desktopLargeMinWidth?: QuerySize;\n}\n\nexport const DEFAULT_APP_SIZE_QUERIES: Readonly<AppSizeQueries> = {\n phoneMaxWidth: DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth: DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth: DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth: DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth: DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n};\n\n/**\n * The current size for your application. This should work both server side and\n * client side, but you will have much better results client side.\n */\nexport interface AppSize {\n /**\n * Boolean if currently matching a phone by comparing the max width of the\n * device.\n */\n isPhone: boolean;\n\n /**\n * Boolean if currently matching a tablet by comparing the max width of the\n * device.\n */\n isTablet: boolean;\n\n /**\n * Boolean if currently matching a desktop screen by comparing the max width\n * of the device.\n */\n isDesktop: boolean;\n\n /**\n * Boolean if currently matching a large desktop screen by comparing the max\n * width of the device.\n */\n isLargeDesktop: boolean;\n\n /**\n * Boolean if the app is considered to be in landscape mode. This will just\n * verify that the window width is greater than the window height.\n *\n * NOTE: This might not be super accurate on Android devices since the soft\n * keyboard will change the dimensions of the viewport when it appears. It is\n * recommended to use the `useOrientation` hook as well if you'd like to get\n * the current orientation type.\n */\n isLandscape: boolean;\n}\n\nexport const DEFAULT_APP_SIZE: AppSize = {\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n};\n"],"names":["DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_APP_SIZE_QUERIES","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","DEFAULT_APP_SIZE","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape"],"mappings":"AAEA,8BAA8B,GAC9B,OAAO,MAAMA,0BAA0B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE3E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE5E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE7E,8BAA8B,GAC9B,OAAO,MAAMC,4BAA4B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE9E,yBAAyB,GACzB,OAAO,MAAMC,kCAAkC,CAAC,EAC9C,OAAO,GACR,EAAE,CAAC,CAAqB;AA+CzB,OAAO,MAAMC,2BAAqD;IAChEC,eAAeN;IACfO,gBAAgBN;IAChBO,gBAAgBN;IAChBO,iBAAiBN;IACjBO,sBAAsBN;AACxB,EAAE;AA2CF,OAAO,MAAMO,mBAA4B;IACvCC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf,EAAE"}
1
+ {"version":3,"sources":["../../src/media-queries/appSize.ts"],"sourcesContent":["export type QuerySize = number | `${number}${string}`;\n\n/** @defaultValue `47.9375em` */\nexport const DEFAULT_PHONE_MAX_WIDTH = `${767 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `48em` */\nexport const DEFAULT_TABLET_MIN_WIDTH = `${768 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64em` */\nexport const DEFAULT_TABLET_MAX_WIDTH = `${1024 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64.0625em` */\nexport const DEFAULT_DESKTOP_MIN_WIDTH = `${1025 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `80em` */\nexport const DEFAULT_DESKTOP_LARGE_MIN_WIDTH = `${\n 1280 / 16\n}em` satisfies QuerySize;\n\nexport interface AppSizeQueries {\n /**\n * The max width to use for phones. This one is a max width unlike the others\n * since everything from 0 to this value will be considered a phone.\n *\n * @defaultValue `47.9375em`\n * @see {@link DEFAULT_PHONE_MAX_WIDTH}\n */\n phoneMaxWidth?: QuerySize;\n\n /**\n * The min width for a tablet device.\n *\n * @defaultValue `48em`\n * @see {@link DEFAULT_TABLET_MIN_WIDTH}\n */\n tabletMinWidth?: QuerySize;\n\n /**\n * The max width for a tablet device. This should normally be `1px` less than\n * the `desktopMinWidth`, but it can be any value if needed. The tablet has a\n * range of min to max so that you can have a bit more control.\n *\n * @defaultValue `64em`\n * @see {@link DEFAULT_TABLET_MAX_WIDTH}\n */\n tabletMaxWidth?: QuerySize;\n\n /**\n * The min width for a desktop screen.\n *\n * @defaultValue `64.0625em`\n * @see {@link DEFAULT_DESKTOP_MIN_WIDTH}\n */\n desktopMinWidth?: QuerySize;\n\n /**\n * The min width for a large (1440p, 4k, etc) desktop screen.\n *\n * @defaultValue `80em`\n * @see {@link DEFAULT_DESKTOP_LARGE_MIN_WIDTH}\n */\n desktopLargeMinWidth?: QuerySize;\n}\n\nexport const DEFAULT_APP_SIZE_QUERIES: Readonly<AppSizeQueries> = {\n phoneMaxWidth: DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth: DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth: DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth: DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth: DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n};\n\n/**\n * The current size for your application. This should work both server side and\n * client side, but you will have much better results client side.\n */\nexport interface AppSize {\n /**\n * Boolean if currently matching a phone by comparing the max width of the\n * device.\n */\n isPhone: boolean;\n\n /**\n * Boolean if currently matching a tablet by comparing the max width of the\n * device.\n */\n isTablet: boolean;\n\n /**\n * Boolean if currently matching a desktop screen by comparing the max width\n * of the device.\n */\n isDesktop: boolean;\n\n /**\n * Boolean if currently matching a large desktop screen by comparing the max\n * width of the device.\n */\n isLargeDesktop: boolean;\n\n /**\n * Boolean if the app is considered to be in landscape mode. This will just\n * verify that the window width is greater than the window height.\n *\n * NOTE: This might not be super accurate on Android devices since the soft\n * keyboard will change the dimensions of the viewport when it appears. It is\n * recommended to use the `useOrientation` hook as well if you'd like to get\n * the current orientation type.\n */\n isLandscape: boolean;\n}\n\nexport const DEFAULT_APP_SIZE: AppSize = {\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n};\n"],"names":["DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_APP_SIZE_QUERIES","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","DEFAULT_APP_SIZE","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape"],"mappings":"AAEA,8BAA8B,GAC9B,OAAO,MAAMA,0BAA0B,GAAG,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE3E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,GAAG,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE5E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,GAAG,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE7E,8BAA8B,GAC9B,OAAO,MAAMC,4BAA4B,GAAG,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE9E,yBAAyB,GACzB,OAAO,MAAMC,kCAAkC,GAC7C,OAAO,GACR,EAAE,CAAC,CAAqB;AA+CzB,OAAO,MAAMC,2BAAqD;IAChEC,eAAeN;IACfO,gBAAgBN;IAChBO,gBAAgBN;IAChBO,iBAAiBN;IACjBO,sBAAsBN;AACxB,EAAE;AA2CF,OAAO,MAAMO,mBAA4B;IACvCC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf,EAAE"}
@@ -15,6 +15,6 @@
15
15
  * @param disabled - When `true`, the `window.matchMedia` API will not be
16
16
  * activated and the hook will always return `false`.
17
17
  * @returns `true` if the media query matches
18
- * @since 6.0.0
18
+ * @since 6.0.0 Removed the `defaultValue` and `checkImmediately` options.
19
19
  */
20
20
  export declare function useMediaQuery(query: string, disabled?: boolean): boolean;
@@ -18,7 +18,7 @@ import { useSsr } from "../SsrProvider.js";
18
18
  * @param disabled - When `true`, the `window.matchMedia` API will not be
19
19
  * activated and the hook will always return `false`.
20
20
  * @returns `true` if the media query matches
21
- * @since 6.0.0
21
+ * @since 6.0.0 Removed the `defaultValue` and `checkImmediately` options.
22
22
  */ export function useMediaQuery(query, disabled = false) {
23
23
  const ssr = useSsr();
24
24
  const [matches, setMatches] = useState(()=>{
@@ -33,7 +33,9 @@ import { useSsr } from "../SsrProvider.js";
33
33
  }
34
34
  const result = window.matchMedia(query);
35
35
  setMatches(result.matches);
36
- const updater = ({ matches })=>setMatches(matches);
36
+ const updater = ({ matches })=>{
37
+ setMatches(matches);
38
+ };
37
39
  result.addEventListener("change", updater);
38
40
  return ()=>{
39
41
  result.removeEventListener("change", updater);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/media-queries/useMediaQuery.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\n\n/**\n * @example Simple Example\n * ```tsx\n * import { useMediaQuery } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const matches = useMediaQuery(\"screen and (min-width: 768px)\");\n *\n * return <>{matches ? \"Matches\" : \"Doesn't\"}</>;\n * }\n * ```\n *\n * @param query - The media query to use\n * @param disabled - When `true`, the `window.matchMedia` API will not be\n * activated and the hook will always return `false`.\n * @returns `true` if the media query matches\n * @since 6.0.0\n */\nexport function useMediaQuery(query: string, disabled = false): boolean {\n const ssr = useSsr();\n const [matches, setMatches] = useState(() => {\n if (typeof window === \"undefined\" || disabled || ssr) {\n return false;\n }\n\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (disabled || ssr) {\n return;\n }\n\n const result = window.matchMedia(query);\n setMatches(result.matches);\n\n const updater = ({ matches }: MediaQueryListEvent): void =>\n setMatches(matches);\n\n result.addEventListener(\"change\", updater);\n return () => {\n result.removeEventListener(\"change\", updater);\n };\n }, [disabled, query, ssr]);\n\n return matches;\n}\n"],"names":["useEffect","useState","useSsr","useMediaQuery","query","disabled","ssr","matches","setMatches","window","matchMedia","result","updater","addEventListener","removeEventListener"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,cAAcC,KAAa,EAAEC,WAAW,KAAK;IAC3D,MAAMC,MAAMJ;IACZ,MAAM,CAACK,SAASC,WAAW,GAAGP,SAAS;QACrC,IAAI,OAAOQ,WAAW,eAAeJ,YAAYC,KAAK;YACpD,OAAO;QACT;QAEA,OAAOG,OAAOC,UAAU,CAACN,OAAOG,OAAO;IACzC;IAEAP,UAAU;QACR,IAAIK,YAAYC,KAAK;YACnB;QACF;QAEA,MAAMK,SAASF,OAAOC,UAAU,CAACN;QACjCI,WAAWG,OAAOJ,OAAO;QAEzB,MAAMK,UAAU,CAAC,EAAEL,OAAO,EAAuB,GAC/CC,WAAWD;QAEbI,OAAOE,gBAAgB,CAAC,UAAUD;QAClC,OAAO;YACLD,OAAOG,mBAAmB,CAAC,UAAUF;QACvC;IACF,GAAG;QAACP;QAAUD;QAAOE;KAAI;IAEzB,OAAOC;AACT"}
1
+ {"version":3,"sources":["../../src/media-queries/useMediaQuery.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\n\n/**\n * @example Simple Example\n * ```tsx\n * import { useMediaQuery } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const matches = useMediaQuery(\"screen and (min-width: 768px)\");\n *\n * return <>{matches ? \"Matches\" : \"Doesn't\"}</>;\n * }\n * ```\n *\n * @param query - The media query to use\n * @param disabled - When `true`, the `window.matchMedia` API will not be\n * activated and the hook will always return `false`.\n * @returns `true` if the media query matches\n * @since 6.0.0 Removed the `defaultValue` and `checkImmediately` options.\n */\nexport function useMediaQuery(query: string, disabled = false): boolean {\n const ssr = useSsr();\n const [matches, setMatches] = useState(() => {\n if (typeof window === \"undefined\" || disabled || ssr) {\n return false;\n }\n\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (disabled || ssr) {\n return;\n }\n\n const result = window.matchMedia(query);\n setMatches(result.matches);\n\n const updater = ({ matches }: MediaQueryListEvent): void => {\n setMatches(matches);\n };\n\n result.addEventListener(\"change\", updater);\n return () => {\n result.removeEventListener(\"change\", updater);\n };\n }, [disabled, query, ssr]);\n\n return matches;\n}\n"],"names":["useEffect","useState","useSsr","useMediaQuery","query","disabled","ssr","matches","setMatches","window","matchMedia","result","updater","addEventListener","removeEventListener"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,cAAcC,KAAa,EAAEC,WAAW,KAAK;IAC3D,MAAMC,MAAMJ;IACZ,MAAM,CAACK,SAASC,WAAW,GAAGP,SAAS;QACrC,IAAI,OAAOQ,WAAW,eAAeJ,YAAYC,KAAK;YACpD,OAAO;QACT;QAEA,OAAOG,OAAOC,UAAU,CAACN,OAAOG,OAAO;IACzC;IAEAP,UAAU;QACR,IAAIK,YAAYC,KAAK;YACnB;QACF;QAEA,MAAMK,SAASF,OAAOC,UAAU,CAACN;QACjCI,WAAWG,OAAOJ,OAAO;QAEzB,MAAMK,UAAU,CAAC,EAAEL,OAAO,EAAuB;YAC/CC,WAAWD;QACb;QAEAI,OAAOE,gBAAgB,CAAC,UAAUD;QAClC,OAAO;YACLD,OAAOG,mBAAmB,CAAC,UAAUF;QACvC;IACF,GAAG;QAACP;QAAUD;QAAOE;KAAI;IAEzB,OAAOC;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { getLastFocusableIndex } from \"../movement/utils.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\nimport {\n Menu,\n type MenuConvenienceProps,\n type MenuListConvenienceProps,\n} from \"./Menu.js\";\nimport { MenuButton, type MenuButtonProps } from \"./MenuButton.js\";\nimport {\n MenuConfigurationProvider,\n type MenuConfiguration,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuItemButton, type MenuItemButtonProps } from \"./MenuItemButton.js\";\nimport { type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuVisibilityProvider } from \"./MenuVisibilityProvider.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\n\nexport interface BaseDropdownMenuProps\n extends MenuConfiguration,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps,\n MenuConvenienceProps {\n buttonChildren: ReactNode;\n}\n\nexport interface DropdownMenuButtonProps\n extends MenuButtonProps,\n BaseDropdownMenuProps {}\n\nexport interface DropdownMenuItemButtonProps\n extends MenuItemButtonProps,\n BaseDropdownMenuProps {}\n\n/**\n * @since 6.0.0\n */\nexport interface DropdownMenuStateProps {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Updated to use an `&` instead of `|` to allow autocompletion to\n * work better by default. It's up to the user to make sure they don't provide\n * incorrect props.\n */\nexport type DropdownMenuProps = DropdownMenuButtonProps &\n DropdownMenuItemButtonProps &\n (DropdownMenuStateProps | { visible?: never; setVisible?: never });\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @example Nested Dropdown Menus\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * <DropdownMenu buttonChildren=\"Nested Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Nested Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Nested Item 2\n * </MenuItem>\n * </DropdownMenu>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n * @since 6.0.0 Updated to use the latest menu API.\n */\nexport function DropdownMenu(props: DropdownMenuProps): ReactElement {\n const {\n id: propId,\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n buttonChildren,\n iconRotatorProps: propIconRotatorProps,\n disableTransition: propDisableTransition,\n floating,\n anchor,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n initialX,\n initialY,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n preventScroll,\n closeOnResize,\n closeOnScroll,\n getFixedPositionOptions,\n children,\n temporary,\n disablePortal,\n disableElevation,\n menuProps,\n menuStyle,\n menuClassName,\n sheetProps,\n sheetStyle,\n sheetClassName,\n visible: propVisible,\n setVisible: propSetVisible,\n ...remaining\n } = props;\n\n const fixedTo = useRef<HTMLElement | HTMLButtonElement>(null);\n const defaultFocusIndex = useRef(0);\n const [visible, setVisible] = useEnsuredState({\n value: propVisible,\n setValue: propSetVisible,\n defaultValue: false,\n });\n const { menubar, menuitem, activeIdRef, animatedOnceRef } =\n useMenuBarContext();\n const id = useEnsuredId(propId, `menu${menuitem ? \"item\" : \"button\"}`);\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n const keyboard = mode === \"keyboard\";\n const disableTransition =\n propDisableTransition ??\n (animatedOnceRef.current &&\n menubar &&\n !!activeIdRef.current &&\n (mouse || keyboard));\n\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n\n let iconRotatorProps = propIconRotatorProps;\n if (disableTransition) {\n iconRotatorProps = {\n disableTransition,\n ...propIconRotatorProps,\n };\n }\n\n let toggle: ReactElement;\n if (menuitem) {\n toggle = (\n <MenuItemButton\n {...(remaining as DropdownMenuItemButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLLIElement>}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuItemButton>\n );\n } else {\n toggle = (\n <MenuButton\n {...(remaining as DropdownMenuButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLButtonElement>}\n floating={floating}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuButton>\n );\n }\n\n return (\n <MenuVisibilityProvider\n visible={visible}\n setVisible={setVisible}\n defaultFocusIndex={defaultFocusIndex}\n >\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n {toggle}\n </MenuConfigurationProvider>\n <Menu\n aria-labelledby={(menuProps?.[\"aria-label\"] ? undefined : id) as string}\n style={menuStyle}\n className={menuClassName}\n sheetProps={sheetProps}\n sheetStyle={sheetStyle}\n sheetClassName={sheetClassName}\n temporary={temporary}\n disablePortal={disablePortal}\n disableElevation={disableElevation}\n disableTransition={disableTransition}\n floating={floating}\n anchor={anchor}\n vwMargin={vwMargin}\n vhMargin={vhMargin}\n xMargin={xMargin}\n yMargin={yMargin}\n initialX={initialX}\n initialY={initialY}\n width={width}\n transformOrigin={transformOrigin}\n preventOverlap={preventOverlap}\n disableSwapping={disableSwapping}\n disableVHBounds={disableVHBounds}\n preventScroll={preventScroll}\n closeOnResize={closeOnResize}\n closeOnScroll={closeOnScroll}\n getFixedPositionOptions={getFixedPositionOptions}\n horizontal={horizontal}\n sheetHeader={sheetHeader}\n sheetFooter={sheetFooter}\n renderAsSheet={renderAsSheet}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n {...menuProps}\n fixedTo={fixedTo}\n visible={visible}\n getDefaultFocusedIndex={(options) => {\n const defaultIndex = defaultFocusIndex.current;\n if (defaultIndex < 0) {\n return getLastFocusableIndex(options);\n }\n\n return defaultIndex;\n }}\n onRequestClose={onRequestClose}\n onEntered={(appearing) => {\n menuProps?.onEntered?.(appearing);\n // this will be called before `getDefaultFocusedIndex`\n if (disableTransition) {\n return;\n }\n\n defaultFocusIndex.current = 0;\n }}\n >\n {children}\n </Menu>\n </MenuVisibilityProvider>\n );\n}\n"],"names":["useCallback","useRef","useUserInteractionMode","getLastFocusableIndex","useEnsuredId","useEnsuredState","Menu","MenuButton","MenuConfigurationProvider","MenuItemButton","MenuVisibilityProvider","useMenuBarContext","DropdownMenu","props","id","propId","horizontal","sheetHeader","sheetFooter","renderAsSheet","sheetPosition","sheetVerticalSize","buttonChildren","iconRotatorProps","propIconRotatorProps","disableTransition","propDisableTransition","floating","anchor","vwMargin","vhMargin","xMargin","yMargin","initialX","initialY","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","preventScroll","closeOnResize","closeOnScroll","getFixedPositionOptions","children","temporary","disablePortal","disableElevation","menuProps","menuStyle","menuClassName","sheetProps","sheetStyle","sheetClassName","visible","propVisible","setVisible","propSetVisible","remaining","fixedTo","defaultFocusIndex","value","setValue","defaultValue","menubar","menuitem","activeIdRef","animatedOnceRef","mode","mouse","keyboard","current","onRequestClose","toggle","ref","aria-labelledby","undefined","style","className","getDefaultFocusedIndex","options","defaultIndex","onEntered","appearing"],"mappings":"AAAA;;AACA,SACEA,WAAW,EACXC,MAAM,QAID,QAAQ;AACf,SAASC,sBAAsB,QAAQ,gDAAgD;AACvF,SAASC,qBAAqB,QAAQ,uBAAuB;AAE7D,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SACEC,IAAI,QAGC,YAAY;AACnB,SAASC,UAAU,QAA8B,kBAAkB;AACnE,SACEC,yBAAyB,QAEpB,iCAAiC;AACxC,SAASC,cAAc,QAAkC,sBAAsB;AAE/E,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,QAAQ,0BAA0B;AAoC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDC,GACD,OAAO,SAASC,aAAaC,KAAwB;IACnD,MAAM,EACJC,IAAIC,MAAM,EACVC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,cAAc,EACdC,kBAAkBC,oBAAoB,EACtCC,mBAAmBC,qBAAqB,EACxCC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,uBAAuB,EACvBC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,SAASC,WAAW,EACpBC,YAAYC,cAAc,EAC1B,GAAGC,WACJ,GAAG7C;IAEJ,MAAM8C,UAAU1D,OAAwC;IACxD,MAAM2D,oBAAoB3D,OAAO;IACjC,MAAM,CAACqD,SAASE,WAAW,GAAGnD,gBAAgB;QAC5CwD,OAAON;QACPO,UAAUL;QACVM,cAAc;IAChB;IACA,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,eAAe,EAAE,GACvDxD;IACF,MAAMG,KAAKV,aAAaW,QAAQ,CAAC,IAAI,EAAEkD,WAAW,SAAS,SAAS,CAAC;IACrE,MAAMG,OAAOlE;IACb,MAAMmE,QAAQD,SAAS;IACvB,MAAME,WAAWF,SAAS;IAC1B,MAAM3C,oBACJC,yBACCyC,CAAAA,gBAAgBI,OAAO,IACtBP,WACA,CAAC,CAACE,YAAYK,OAAO,IACpBF,CAAAA,SAASC,QAAO,CAAC;IAEtB,MAAME,iBAAiBxE,YAAY;QACjCwD,WAAW;IACb,GAAG;QAACA;KAAW;IAEf,IAAIjC,mBAAmBC;IACvB,IAAIC,mBAAmB;QACrBF,mBAAmB;YACjBE;YACA,GAAGD,oBAAoB;QACzB;IACF;IAEA,IAAIiD;IACJ,IAAIR,UAAU;QACZQ,uBACE,KAAChE;YACE,GAAIiD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLpC,kBAAkBA;sBAEjBD;;IAGP,OAAO;QACLmD,uBACE,KAAClE;YACE,GAAImD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLhC,UAAUA;YACVJ,kBAAkBA;sBAEjBD;;IAGP;IAEA,qBACE,MAACZ;QACC4C,SAASA;QACTE,YAAYA;QACZI,mBAAmBA;;0BAEnB,KAACpD;gBACCQ,YAAYA;gBACZG,eAAeA;gBACfD,aAAaA;gBACbD,aAAaA;gBACbG,eAAeA;gBACfC,mBAAmBA;0BAElBoD;;0BAEH,KAACnE;gBACCqE,mBAAkB3B,WAAW,CAAC,aAAa,GAAG4B,YAAY9D;gBAC1D+D,OAAO5B;gBACP6B,WAAW5B;gBACXC,YAAYA;gBACZC,YAAYA;gBACZC,gBAAgBA;gBAChBR,WAAWA;gBACXC,eAAeA;gBACfC,kBAAkBA;gBAClBtB,mBAAmBA;gBACnBE,UAAUA;gBACVC,QAAQA;gBACRC,UAAUA;gBACVC,UAAUA;gBACVC,SAASA;gBACTC,SAASA;gBACTC,UAAUA;gBACVC,UAAUA;gBACVC,OAAOA;gBACPC,iBAAiBA;gBACjBC,gBAAgBA;gBAChBC,iBAAiBA;gBACjBC,iBAAiBA;gBACjBC,eAAeA;gBACfC,eAAeA;gBACfC,eAAeA;gBACfC,yBAAyBA;gBACzB3B,YAAYA;gBACZC,aAAaA;gBACbC,aAAaA;gBACbC,eAAeA;gBACfC,eAAeA;gBACfC,mBAAmBA;gBAClB,GAAG2B,SAAS;gBACbW,SAASA;gBACTL,SAASA;gBACTyB,wBAAwB,CAACC;oBACvB,MAAMC,eAAerB,kBAAkBW,OAAO;oBAC9C,IAAIU,eAAe,GAAG;wBACpB,OAAO9E,sBAAsB6E;oBAC/B;oBAEA,OAAOC;gBACT;gBACAT,gBAAgBA;gBAChBU,WAAW,CAACC;oBACVnC,WAAWkC,YAAYC;oBACvB,sDAAsD;oBACtD,IAAI1D,mBAAmB;wBACrB;oBACF;oBAEAmC,kBAAkBW,OAAO,GAAG;gBAC9B;0BAEC3B;;;;AAIT"}
1
+ {"version":3,"sources":["../../src/menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { getLastFocusableIndex } from \"../movement/utils.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\nimport {\n Menu,\n type MenuConvenienceProps,\n type MenuListConvenienceProps,\n} from \"./Menu.js\";\nimport { MenuButton, type MenuButtonProps } from \"./MenuButton.js\";\nimport {\n MenuConfigurationProvider,\n type MenuConfiguration,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuItemButton, type MenuItemButtonProps } from \"./MenuItemButton.js\";\nimport { type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuVisibilityProvider } from \"./MenuVisibilityProvider.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\n\nexport interface BaseDropdownMenuProps\n extends MenuConfiguration,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps,\n MenuConvenienceProps {\n buttonChildren: ReactNode;\n}\n\nexport interface DropdownMenuButtonProps\n extends MenuButtonProps,\n BaseDropdownMenuProps {}\n\nexport interface DropdownMenuItemButtonProps\n extends MenuItemButtonProps,\n BaseDropdownMenuProps {}\n\n/**\n * @since 6.0.0\n */\nexport interface DropdownMenuStateProps {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Updated to use an `&` instead of `|` to allow autocompletion to\n * work better by default. It's up to the user to make sure they don't provide\n * incorrect props.\n */\nexport type DropdownMenuProps = DropdownMenuButtonProps &\n DropdownMenuItemButtonProps &\n (DropdownMenuStateProps | { visible?: never; setVisible?: never });\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @example Nested Dropdown Menus\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * <DropdownMenu buttonChildren=\"Nested Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Nested Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Nested Item 2\n * </MenuItem>\n * </DropdownMenu>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n * @since 6.0.0 Updated to use the latest menu API.\n */\nexport function DropdownMenu(props: DropdownMenuProps): ReactElement {\n const {\n id: propId,\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n buttonChildren,\n iconRotatorProps: propIconRotatorProps,\n disableTransition: propDisableTransition,\n floating,\n anchor,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n initialX,\n initialY,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n preventScroll,\n closeOnResize,\n closeOnScroll,\n getFixedPositionOptions,\n children,\n temporary,\n disablePortal,\n disableElevation,\n menuProps,\n menuStyle,\n menuClassName,\n sheetProps,\n sheetStyle,\n sheetClassName,\n visible: propVisible,\n setVisible: propSetVisible,\n ...remaining\n } = props;\n\n const fixedTo = useRef<HTMLElement | HTMLButtonElement>(null);\n const defaultFocusIndex = useRef(0);\n const [visible, setVisible] = useEnsuredState({\n value: propVisible,\n setValue: propSetVisible,\n defaultValue: false,\n });\n const { menubar, menuitem, activeIdRef, animatedOnceRef } =\n useMenuBarContext();\n const id = useEnsuredId(propId, `menu${menuitem ? \"item\" : \"button\"}`);\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n const keyboard = mode === \"keyboard\";\n const disableTransition =\n propDisableTransition ??\n (animatedOnceRef.current &&\n menubar &&\n !!activeIdRef.current &&\n (mouse || keyboard));\n\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n\n let iconRotatorProps = propIconRotatorProps;\n if (disableTransition) {\n iconRotatorProps = {\n disableTransition,\n ...propIconRotatorProps,\n };\n }\n\n let toggle: ReactElement;\n if (menuitem) {\n toggle = (\n <MenuItemButton\n {...(remaining as DropdownMenuItemButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLLIElement>}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuItemButton>\n );\n } else {\n toggle = (\n <MenuButton\n {...(remaining as DropdownMenuButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLButtonElement>}\n floating={floating}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuButton>\n );\n }\n\n return (\n <MenuVisibilityProvider\n visible={visible}\n setVisible={setVisible}\n defaultFocusIndex={defaultFocusIndex}\n >\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n {toggle}\n </MenuConfigurationProvider>\n <Menu\n aria-labelledby={(menuProps?.[\"aria-label\"] ? undefined : id) as string}\n style={menuStyle}\n className={menuClassName}\n sheetProps={sheetProps}\n sheetStyle={sheetStyle}\n sheetClassName={sheetClassName}\n temporary={temporary}\n disablePortal={disablePortal}\n disableElevation={disableElevation}\n disableTransition={disableTransition}\n floating={floating}\n anchor={anchor}\n vwMargin={vwMargin}\n vhMargin={vhMargin}\n xMargin={xMargin}\n yMargin={yMargin}\n initialX={initialX}\n initialY={initialY}\n width={width}\n transformOrigin={transformOrigin}\n preventOverlap={preventOverlap}\n disableSwapping={disableSwapping}\n disableVHBounds={disableVHBounds}\n preventScroll={preventScroll}\n closeOnResize={closeOnResize}\n closeOnScroll={closeOnScroll}\n getFixedPositionOptions={getFixedPositionOptions}\n horizontal={horizontal}\n sheetHeader={sheetHeader}\n sheetFooter={sheetFooter}\n renderAsSheet={renderAsSheet}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n {...menuProps}\n fixedTo={fixedTo}\n visible={visible}\n getDefaultFocusedIndex={(options) => {\n const defaultIndex = defaultFocusIndex.current;\n if (defaultIndex < 0) {\n return getLastFocusableIndex(options);\n }\n\n return defaultIndex;\n }}\n onRequestClose={onRequestClose}\n onEntered={(appearing) => {\n menuProps?.onEntered?.(appearing);\n // this will be called before `getDefaultFocusedIndex`\n if (disableTransition) {\n return;\n }\n\n defaultFocusIndex.current = 0;\n }}\n >\n {children}\n </Menu>\n </MenuVisibilityProvider>\n );\n}\n"],"names":["useCallback","useRef","useUserInteractionMode","getLastFocusableIndex","useEnsuredId","useEnsuredState","Menu","MenuButton","MenuConfigurationProvider","MenuItemButton","MenuVisibilityProvider","useMenuBarContext","DropdownMenu","props","id","propId","horizontal","sheetHeader","sheetFooter","renderAsSheet","sheetPosition","sheetVerticalSize","buttonChildren","iconRotatorProps","propIconRotatorProps","disableTransition","propDisableTransition","floating","anchor","vwMargin","vhMargin","xMargin","yMargin","initialX","initialY","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","preventScroll","closeOnResize","closeOnScroll","getFixedPositionOptions","children","temporary","disablePortal","disableElevation","menuProps","menuStyle","menuClassName","sheetProps","sheetStyle","sheetClassName","visible","propVisible","setVisible","propSetVisible","remaining","fixedTo","defaultFocusIndex","value","setValue","defaultValue","menubar","menuitem","activeIdRef","animatedOnceRef","mode","mouse","keyboard","current","onRequestClose","toggle","ref","aria-labelledby","undefined","style","className","getDefaultFocusedIndex","options","defaultIndex","onEntered","appearing"],"mappings":"AAAA;;AACA,SACEA,WAAW,EACXC,MAAM,QAID,QAAQ;AACf,SAASC,sBAAsB,QAAQ,gDAAgD;AACvF,SAASC,qBAAqB,QAAQ,uBAAuB;AAE7D,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SACEC,IAAI,QAGC,YAAY;AACnB,SAASC,UAAU,QAA8B,kBAAkB;AACnE,SACEC,yBAAyB,QAEpB,iCAAiC;AACxC,SAASC,cAAc,QAAkC,sBAAsB;AAE/E,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,QAAQ,0BAA0B;AAoC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDC,GACD,OAAO,SAASC,aAAaC,KAAwB;IACnD,MAAM,EACJC,IAAIC,MAAM,EACVC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,cAAc,EACdC,kBAAkBC,oBAAoB,EACtCC,mBAAmBC,qBAAqB,EACxCC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,uBAAuB,EACvBC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,SAASC,WAAW,EACpBC,YAAYC,cAAc,EAC1B,GAAGC,WACJ,GAAG7C;IAEJ,MAAM8C,UAAU1D,OAAwC;IACxD,MAAM2D,oBAAoB3D,OAAO;IACjC,MAAM,CAACqD,SAASE,WAAW,GAAGnD,gBAAgB;QAC5CwD,OAAON;QACPO,UAAUL;QACVM,cAAc;IAChB;IACA,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,eAAe,EAAE,GACvDxD;IACF,MAAMG,KAAKV,aAAaW,QAAQ,CAAC,IAAI,EAAEkD,WAAW,SAAS,UAAU;IACrE,MAAMG,OAAOlE;IACb,MAAMmE,QAAQD,SAAS;IACvB,MAAME,WAAWF,SAAS;IAC1B,MAAM3C,oBACJC,yBACCyC,CAAAA,gBAAgBI,OAAO,IACtBP,WACA,CAAC,CAACE,YAAYK,OAAO,IACpBF,CAAAA,SAASC,QAAO,CAAC;IAEtB,MAAME,iBAAiBxE,YAAY;QACjCwD,WAAW;IACb,GAAG;QAACA;KAAW;IAEf,IAAIjC,mBAAmBC;IACvB,IAAIC,mBAAmB;QACrBF,mBAAmB;YACjBE;YACA,GAAGD,oBAAoB;QACzB;IACF;IAEA,IAAIiD;IACJ,IAAIR,UAAU;QACZQ,uBACE,KAAChE;YACE,GAAIiD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLpC,kBAAkBA;sBAEjBD;;IAGP,OAAO;QACLmD,uBACE,KAAClE;YACE,GAAImD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLhC,UAAUA;YACVJ,kBAAkBA;sBAEjBD;;IAGP;IAEA,qBACE,MAACZ;QACC4C,SAASA;QACTE,YAAYA;QACZI,mBAAmBA;;0BAEnB,KAACpD;gBACCQ,YAAYA;gBACZG,eAAeA;gBACfD,aAAaA;gBACbD,aAAaA;gBACbG,eAAeA;gBACfC,mBAAmBA;0BAElBoD;;0BAEH,KAACnE;gBACCqE,mBAAkB3B,WAAW,CAAC,aAAa,GAAG4B,YAAY9D;gBAC1D+D,OAAO5B;gBACP6B,WAAW5B;gBACXC,YAAYA;gBACZC,YAAYA;gBACZC,gBAAgBA;gBAChBR,WAAWA;gBACXC,eAAeA;gBACfC,kBAAkBA;gBAClBtB,mBAAmBA;gBACnBE,UAAUA;gBACVC,QAAQA;gBACRC,UAAUA;gBACVC,UAAUA;gBACVC,SAASA;gBACTC,SAASA;gBACTC,UAAUA;gBACVC,UAAUA;gBACVC,OAAOA;gBACPC,iBAAiBA;gBACjBC,gBAAgBA;gBAChBC,iBAAiBA;gBACjBC,iBAAiBA;gBACjBC,eAAeA;gBACfC,eAAeA;gBACfC,eAAeA;gBACfC,yBAAyBA;gBACzB3B,YAAYA;gBACZC,aAAaA;gBACbC,aAAaA;gBACbC,eAAeA;gBACfC,eAAeA;gBACfC,mBAAmBA;gBAClB,GAAG2B,SAAS;gBACbW,SAASA;gBACTL,SAASA;gBACTyB,wBAAwB,CAACC;oBACvB,MAAMC,eAAerB,kBAAkBW,OAAO;oBAC9C,IAAIU,eAAe,GAAG;wBACpB,OAAO9E,sBAAsB6E;oBAC/B;oBAEA,OAAOC;gBACT;gBACAT,gBAAgBA;gBAChBU,WAAW,CAACC;oBACVnC,WAAWkC,YAAYC;oBACvB,sDAAsD;oBACtD,IAAI1D,mBAAmB;wBACrB;oBACF;oBAEAmC,kBAAkBW,OAAO,GAAG;gBAC9B;0BAEC3B;;;;AAIT"}
@@ -70,7 +70,12 @@ export interface MenuConfigurationProps extends CalculateFixedPositionOptions {
70
70
  */
71
71
  closeOnResize?: boolean;
72
72
  /** @see {@link FixedPositioningOptions.getFixedPositionOptions} */
73
- getFixedPositionOptions?(): CalculateFixedPositionOptions;
73
+ getFixedPositionOptions?: () => CalculateFixedPositionOptions;
74
+ /**
75
+ * @defaultValue `false`
76
+ * @see {@link FixedPositioningOptions.disabled}
77
+ */
78
+ disableFixedPositioning?: boolean;
74
79
  }
75
80
  /**
76
81
  * @since 5.1.0
@@ -132,14 +137,14 @@ export interface MenuConvenienceProps extends MenuConfigurationProps {
132
137
  /**
133
138
  * @since 6.0.0
134
139
  */
135
- export type MenuFixedPositioningOptions = Omit<FixedPositioningOptions<HTMLElement, HTMLDivElement>, "onScroll" | "onResize">;
140
+ export type MenuFixedPositioningOptions = Omit<FixedPositioningOptions<HTMLElement, HTMLDivElement>, "onScroll" | "onResize" | "nodeRef" | "disabled">;
136
141
  /**
137
142
  * @since 5.0.0
138
143
  * @since 6.0.0 Updated to use the latest Menu, Transition, and Portal API.
139
144
  */
140
145
  export interface MenuProps extends HTMLAttributes<HTMLDivElement>, MenuConfiguration, MenuConfigurationProps, MenuFixedPositioningOptions, MenuOrientationProps, MenuTransitionProps, MenuListConvenienceProps, MenuSheetConvenienceProps {
141
146
  visible: boolean;
142
- onRequestClose(): void;
147
+ onRequestClose: () => void;
143
148
  /**
144
149
  * @defaultValue `"menu-" + useId()`
145
150
  */
package/dist/menu/Menu.js CHANGED
@@ -35,7 +35,7 @@ const noop = ()=>{
35
35
  * implementation so that the `MenuRenderer` is no longer required and context
36
36
  * menus can appear as a `Sheet`.
37
37
  */ export const Menu = /*#__PURE__*/ forwardRef(function Menu(props, propRef) {
38
- const { id: propId, style: propStyle, role = "menu", children, horizontal: _horizontal, sheetHeader: _sheetHeader, sheetFooter: _sheetFooter, renderAsSheet: _renderAsSheet, sheetPosition: _sheetPosition, sheetVerticalSize: _sheetVerticalSize, sheetProps, sheetStyle, sheetClassName, menuStyle, menuClassName, disableElevation = false, temporary = true, tabIndex = -1, fixedTo, className, classNames, timeout, appear, enter, exit, onEnter, onEntering = noop, onEntered = noop, onExit, onExiting, onExited = noop, onKeyDown = noop, listProps, listStyle, listClassName, visible, onRequestClose, floating, anchor, closeOnResize = false, closeOnScroll = false, preventScroll = false, vwMargin, vhMargin, xMargin, yMargin, width, transformOrigin = true, preventOverlap, disableSwapping, disableVHBounds, initialX, initialY, getFixedPositionOptions, disablePortal: propDisablePortal, disableTransition, ...remaining } = props;
38
+ const { id: propId, style: propStyle, role = "menu", children, horizontal: _horizontal, sheetHeader: _sheetHeader, sheetFooter: _sheetFooter, renderAsSheet: _renderAsSheet, sheetPosition: _sheetPosition, sheetVerticalSize: _sheetVerticalSize, sheetProps, sheetStyle, sheetClassName, menuStyle, menuClassName, disableElevation = false, temporary = true, tabIndex = -1, fixedTo, className, classNames, timeout, appear, enter, exit, onEnter, onEntering = noop, onEntered = noop, onExit, onExiting, onExited = noop, onKeyDown = noop, listProps, listStyle, listClassName, visible, onRequestClose, floating, anchor, closeOnResize = false, closeOnScroll = false, preventScroll = false, vwMargin, vhMargin, xMargin, yMargin, width, transformOrigin = true, preventOverlap, disableSwapping, disableVHBounds, initialX, initialY, disableFixedPositioning, getFixedPositionOptions, disablePortal: propDisablePortal, disableTransition, ...remaining } = props;
39
39
  const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy } = props;
40
40
  const id = useEnsuredId(propId, "menu");
41
41
  const { root, menubar, menuitem, activeId, animatedOnceRef, hoverTimeoutRef, disableHoverMode } = useMenuBarContext();
@@ -127,6 +127,7 @@ const noop = ()=>{
127
127
  });
128
128
  const { ref, style, callbacks, updateStyle } = useFixedPositioning({
129
129
  ...transitionOptions,
130
+ disabled: disableFixedPositioning,
130
131
  onEnter,
131
132
  style: isSheet ? propStyle : menuStyle,
132
133
  fixedTo,