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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1594) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +11 -7
  3. package/.turbo/turbo-lint.log +12 -0
  4. package/.turbo/turbo-test.log +5512 -0
  5. package/.turbo/turbo-typecheck.log +4 -0
  6. package/CHANGELOG.md +234 -0
  7. package/README.md +39 -24
  8. package/coverage/clover.xml +3 -1118
  9. package/coverage/coverage-final.json +1 -7
  10. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  11. package/coverage/lcov-report/Avatar.tsx.html +472 -0
  12. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  13. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  14. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  15. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  16. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  17. package/coverage/lcov-report/IconRotator.tsx.html +322 -0
  18. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  19. package/coverage/lcov-report/ListItem.tsx.html +892 -0
  20. package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
  21. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  22. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  23. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  24. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +925 -0
  25. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  26. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  27. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  28. package/coverage/lcov-report/Portal.tsx.html +223 -0
  29. package/coverage/lcov-report/PortalContainerProvider.tsx.html +367 -0
  30. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  31. package/coverage/lcov-report/Select.tsx.html +1411 -0
  32. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +613 -0
  33. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  34. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  35. package/coverage/lcov-report/Switch.tsx.html +535 -0
  36. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  37. package/coverage/lcov-report/Tab.tsx.html +261 -147
  38. package/coverage/lcov-report/Table.tsx.html +457 -0
  39. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  40. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  41. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  42. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  43. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  44. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  45. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  46. package/coverage/lcov-report/Toast.tsx.html +868 -0
  47. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  48. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  49. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  50. package/coverage/lcov-report/TreeGroup.tsx.html +313 -0
  51. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  52. package/coverage/lcov-report/app-bar/AppBar.tsx.html +178 -28
  53. package/coverage/lcov-report/app-bar/index.html +7 -7
  54. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  55. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +475 -0
  56. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  57. package/coverage/lcov-report/autocomplete/index.html +221 -0
  58. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  59. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +1273 -0
  60. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +829 -0
  61. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +715 -0
  62. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  63. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +430 -0
  64. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +310 -0
  65. package/coverage/lcov-report/autocomplete/utils.ts.html +196 -0
  66. package/coverage/lcov-report/avatar/Avatar.tsx.html +175 -106
  67. package/coverage/lcov-report/avatar/index.html +19 -19
  68. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  69. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  70. package/coverage/lcov-report/button/Button.tsx.html +97 -85
  71. package/coverage/lcov-report/button/TooltippedButton.tsx.html +445 -0
  72. package/coverage/lcov-report/button/index.html +10 -10
  73. package/coverage/lcov-report/card/Card.tsx.html +349 -0
  74. package/coverage/lcov-report/card/CardContent.tsx.html +223 -0
  75. package/coverage/lcov-report/card/ClickableCard.tsx.html +400 -0
  76. package/coverage/lcov-report/card/index.html +21 -21
  77. package/coverage/lcov-report/card/styles.ts.html +428 -392
  78. package/coverage/lcov-report/config.ts.html +33 -18
  79. package/coverage/lcov-report/cssUtils.ts.html +171 -66
  80. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  81. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  82. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  83. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  84. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  85. package/coverage/lcov-report/dialog/index.html +28 -28
  86. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  87. package/coverage/lcov-report/draggable/index.html +21 -36
  88. package/coverage/lcov-report/draggable/useDraggable.ts.html +377 -368
  89. package/coverage/lcov-report/draggable/utils.ts.html +96 -195
  90. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +211 -0
  91. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +12 -15
  92. package/coverage/lcov-report/expansion-panel/index.html +34 -19
  93. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +928 -0
  94. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  95. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  96. package/coverage/lcov-report/form/Label.tsx.html +442 -0
  97. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +37 -25
  98. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  99. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  100. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  101. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +442 -0
  102. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +310 -0
  103. package/coverage/lcov-report/form/Select.tsx.html +1456 -0
  104. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  105. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  106. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  107. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +727 -0
  108. package/coverage/lcov-report/form/Slider.tsx.html +163 -40
  109. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  110. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  111. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  112. package/coverage/lcov-report/form/TextArea.tsx.html +596 -740
  113. package/coverage/lcov-report/form/TextArea2.tsx.html +985 -0
  114. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +1006 -0
  115. package/coverage/lcov-report/form/TextField.tsx.html +156 -234
  116. package/coverage/lcov-report/form/index.html +34 -169
  117. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  118. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  119. package/coverage/lcov-report/form/textAreaStyles.ts.html +8 -11
  120. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  121. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  122. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  123. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  124. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  125. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  126. package/coverage/lcov-report/form/useResizingTextArea.ts.html +631 -0
  127. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +631 -0
  128. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  129. package/coverage/lcov-report/form/utils.ts.html +209 -170
  130. package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
  131. package/coverage/lcov-report/hoverMode/index.html +116 -0
  132. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  133. package/coverage/lcov-report/icon/FontIcon.tsx.html +69 -78
  134. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  135. package/coverage/lcov-report/icon/index.html +20 -20
  136. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  137. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  138. package/coverage/lcov-report/index.html +11 -101
  139. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +679 -0
  140. package/coverage/lcov-report/interaction/config.ts.html +181 -0
  141. package/coverage/lcov-report/interaction/index.html +33 -18
  142. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  143. package/coverage/lcov-report/link/index.html +20 -20
  144. package/coverage/lcov-report/list/List.tsx.html +490 -0
  145. package/coverage/lcov-report/list/ListItem.tsx.html +886 -0
  146. package/coverage/lcov-report/list/ListItemAddon.tsx.html +286 -0
  147. package/coverage/lcov-report/list/ListItemChildren.tsx.html +445 -0
  148. package/coverage/lcov-report/list/ListItemLink.tsx.html +32 -38
  149. package/coverage/lcov-report/list/index.html +64 -19
  150. package/coverage/lcov-report/list/listItemStyles.ts.html +703 -0
  151. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  152. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  153. package/coverage/lcov-report/media-queries/index.html +10 -10
  154. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  155. package/coverage/lcov-report/menu/Menu.tsx.html +357 -282
  156. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  157. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  158. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +433 -0
  159. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  160. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  161. package/coverage/lcov-report/menu/index.html +14 -74
  162. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  163. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  164. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  165. package/coverage/lcov-report/movement/index.html +19 -19
  166. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  167. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  168. package/coverage/lcov-report/positioning/index.html +30 -30
  169. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  170. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  171. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  172. package/coverage/lcov-report/progress/index.html +19 -19
  173. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  174. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  175. package/coverage/lcov-report/searching/index.html +146 -0
  176. package/coverage/lcov-report/searching/toSearchQuery.ts.html +145 -0
  177. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +211 -0
  178. package/coverage/lcov-report/searching/utils.ts.html +244 -0
  179. package/coverage/lcov-report/sheet/index.html +8 -8
  180. package/coverage/lcov-report/sheet/styles.ts.html +376 -0
  181. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +400 -0
  182. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  183. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  184. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  185. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  186. package/coverage/lcov-report/snackbar/index.html +59 -14
  187. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  188. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  189. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  190. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  191. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  192. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  193. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  194. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  195. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +207 -87
  196. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  197. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  198. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +364 -0
  199. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  200. package/coverage/lcov-report/src/autocomplete/index.html +221 -0
  201. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +637 -0
  202. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +829 -0
  203. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +715 -0
  204. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +430 -0
  205. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +241 -0
  206. package/coverage/lcov-report/src/autocomplete/utils.ts.html +196 -0
  207. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  208. package/coverage/lcov-report/src/avatar/index.html +22 -7
  209. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  210. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  211. package/coverage/lcov-report/src/badge/index.html +1 -1
  212. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  213. package/coverage/lcov-report/src/box/index.html +9 -9
  214. package/coverage/lcov-report/src/box/styles.ts.html +105 -51
  215. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  216. package/coverage/lcov-report/src/button/Button.tsx.html +81 -81
  217. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  218. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  219. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +445 -0
  220. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  221. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  222. package/coverage/lcov-report/src/button/index.html +1 -1
  223. package/coverage/lcov-report/src/card/Card.tsx.html +37 -31
  224. package/coverage/lcov-report/src/card/CardContent.tsx.html +4 -4
  225. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  226. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  227. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  228. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  229. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +400 -0
  230. package/coverage/lcov-report/src/card/index.html +112 -7
  231. package/coverage/lcov-report/src/card/styles.ts.html +58 -31
  232. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  233. package/coverage/lcov-report/src/chip/index.html +7 -7
  234. package/coverage/lcov-report/src/chip/styles.ts.html +9 -12
  235. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  236. package/coverage/lcov-report/src/delegateEvent.ts.html +110 -110
  237. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  238. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  239. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  240. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  241. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  242. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  243. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  244. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  245. package/coverage/lcov-report/src/dialog/index.html +133 -13
  246. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  247. package/coverage/lcov-report/src/divider/Divider.tsx.html +27 -30
  248. package/coverage/lcov-report/src/divider/index.html +23 -8
  249. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  250. package/coverage/lcov-report/src/draggable/index.html +27 -27
  251. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +365 -362
  252. package/coverage/lcov-report/src/draggable/utils.ts.html +94 -196
  253. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  254. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  255. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  256. package/coverage/lcov-report/src/expansion-panel/index.html +30 -15
  257. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  258. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +36 -24
  259. package/coverage/lcov-report/src/focus/index.html +23 -23
  260. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  261. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  262. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  263. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  264. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  265. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  266. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  267. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  268. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  269. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  270. package/coverage/lcov-report/src/form/InputToggle.tsx.html +116 -125
  271. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +63 -63
  272. package/coverage/lcov-report/src/form/Label.tsx.html +107 -107
  273. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  274. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +13 -7
  275. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  276. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +179 -221
  277. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +13 -7
  278. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  279. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  280. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  281. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  282. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  283. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  284. package/coverage/lcov-report/src/form/Radio.tsx.html +3 -3
  285. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +988 -0
  286. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +310 -0
  287. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1122
  288. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  289. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +694 -0
  290. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  291. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  292. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  293. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  294. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  295. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  296. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  297. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  298. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  299. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  300. package/coverage/lcov-report/src/form/TextArea.tsx.html +650 -572
  301. package/coverage/lcov-report/src/form/TextArea2.tsx.html +985 -0
  302. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +985 -0
  303. package/coverage/lcov-report/src/form/TextField.tsx.html +18 -12
  304. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  305. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  306. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +24 -15
  307. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  308. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  309. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  310. package/coverage/lcov-report/src/form/index.html +37 -127
  311. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  312. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  313. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  314. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  315. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  316. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  317. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  318. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  319. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  320. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +5 -5
  321. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  322. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  323. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  324. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  325. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  326. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  327. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  328. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  329. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  330. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +68 -53
  331. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  332. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +634 -0
  333. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  334. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  335. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  336. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  337. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  338. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  339. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +104 -104
  340. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +19 -19
  341. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  342. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +5 -8
  343. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  344. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  345. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  346. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  347. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  348. package/coverage/lcov-report/src/icon/index.html +12 -12
  349. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  350. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  351. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  352. package/coverage/lcov-report/src/index.html +10 -10
  353. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  354. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  355. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  356. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  357. package/coverage/lcov-report/src/interaction/index.html +100 -10
  358. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  359. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +19 -19
  360. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  361. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  362. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +1 -1
  363. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  364. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  365. package/coverage/lcov-report/src/layout/index.html +203 -8
  366. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +1 -1
  367. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  368. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  369. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  370. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  371. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +20 -32
  372. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  373. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  374. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  375. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  376. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  377. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  378. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  379. package/coverage/lcov-report/src/link/index.html +16 -16
  380. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  381. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  382. package/coverage/lcov-report/src/list/ListItem.tsx.html +555 -534
  383. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +45 -39
  384. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +88 -82
  385. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +6 -6
  386. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  387. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  388. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +43 -46
  389. package/coverage/lcov-report/src/list/index.html +128 -8
  390. package/coverage/lcov-report/src/list/listItemStyles.ts.html +102 -72
  391. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  392. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  393. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  394. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +28 -28
  395. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  396. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  397. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  398. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  399. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  400. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  401. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  402. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +433 -0
  403. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  404. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  405. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  406. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  407. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  408. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  409. package/coverage/lcov-report/src/menu/index.html +13 -193
  410. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  411. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  412. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  413. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  414. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  415. package/coverage/lcov-report/src/movement/index.html +20 -20
  416. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  417. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  418. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  419. package/coverage/lcov-report/src/overlay/index.html +1 -1
  420. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  421. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  422. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +59 -35
  423. package/coverage/lcov-report/src/portal/index.html +23 -8
  424. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  425. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  426. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  427. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  428. package/coverage/lcov-report/src/positioning/index.html +70 -10
  429. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  430. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  431. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  432. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  433. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  434. package/coverage/lcov-report/src/progress/index.html +47 -32
  435. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  436. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  437. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  438. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  439. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  440. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  441. package/coverage/lcov-report/src/scroll/index.html +5 -5
  442. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  443. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  444. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  445. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  446. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  447. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  448. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  449. package/coverage/lcov-report/src/sheet/index.html +20 -5
  450. package/coverage/lcov-report/src/sheet/styles.ts.html +18 -21
  451. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +87 -84
  452. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +24 -174
  453. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +109 -94
  454. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  455. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  456. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +54 -162
  457. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1786 -0
  458. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +21 -1701
  459. package/coverage/lcov-report/src/snackbar/index.html +163 -13
  460. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  461. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  462. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +27 -27
  463. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  464. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +159 -108
  465. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  466. package/coverage/lcov-report/src/suspense/index.html +32 -32
  467. package/coverage/lcov-report/src/table/Table.tsx.html +45 -114
  468. package/coverage/lcov-report/src/table/TableBody.tsx.html +43 -43
  469. package/coverage/lcov-report/src/table/TableCell.tsx.html +115 -319
  470. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +82 -28
  471. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +16 -10
  472. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +25 -31
  473. package/coverage/lcov-report/src/table/TableContainer.tsx.html +7 -28
  474. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  475. package/coverage/lcov-report/src/table/TableFooter.tsx.html +64 -43
  476. package/coverage/lcov-report/src/table/TableHeader.tsx.html +41 -92
  477. package/coverage/lcov-report/src/table/TableRadio.tsx.html +676 -0
  478. package/coverage/lcov-report/src/table/TableRow.tsx.html +38 -119
  479. package/coverage/lcov-report/src/table/index.html +226 -16
  480. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +334 -0
  481. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +142 -0
  482. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +166 -0
  483. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +172 -0
  484. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +169 -0
  485. package/coverage/lcov-report/src/table/tableStyles.ts.html +157 -0
  486. package/coverage/lcov-report/src/tabs/Tab.tsx.html +263 -143
  487. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  488. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  489. package/coverage/lcov-report/src/tabs/index.html +148 -13
  490. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +187 -0
  491. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  492. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  493. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +64 -28
  494. package/coverage/lcov-report/src/tabs/useTabList.ts.html +115 -109
  495. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  496. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  497. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  498. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +402 -261
  499. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +112 -0
  500. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  501. package/coverage/lcov-report/src/test-utils/index.html +7 -7
  502. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  503. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +55 -55
  504. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  505. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  506. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  507. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  508. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  509. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  510. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  511. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  512. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  513. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  514. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  515. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  516. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  517. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  518. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  519. package/coverage/lcov-report/src/theme/index.html +71 -11
  520. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +25 -25
  521. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  522. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  523. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  524. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  525. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  526. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  527. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  528. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  529. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  530. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  531. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  532. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +555 -234
  533. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  534. package/coverage/lcov-report/src/tooltip/utils.ts.html +24 -24
  535. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  536. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  537. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  538. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  539. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +374 -338
  540. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  541. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  542. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  543. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  544. package/coverage/lcov-report/src/transition/index.html +311 -11
  545. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  546. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +400 -0
  547. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  548. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  549. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +108 -162
  550. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  551. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  552. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  553. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +607 -562
  554. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  555. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  556. package/coverage/lcov-report/src/transition/utils.ts.html +70 -70
  557. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +19 -7
  558. package/coverage/lcov-report/src/tree/Tree.tsx.html +30 -30
  559. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  560. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +215 -221
  561. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  562. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  563. package/coverage/lcov-report/src/tree/index.html +19 -94
  564. package/coverage/lcov-report/src/tree/styles.ts.html +4 -31
  565. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  566. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  567. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  568. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +87 -87
  569. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  570. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  571. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +38 -38
  572. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  573. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  574. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  575. package/coverage/lcov-report/src/typography/index.html +64 -19
  576. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  577. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +246 -240
  578. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  579. package/coverage/lcov-report/src/useElementSize.ts.html +334 -0
  580. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  581. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  582. package/coverage/lcov-report/src/useEnsuredState.ts.html +19 -19
  583. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  584. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  585. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  586. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  587. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  588. package/coverage/lcov-report/src/usePageInactive.ts.html +30 -30
  589. package/coverage/lcov-report/src/useResizeListener.ts.html +38 -32
  590. package/coverage/lcov-report/src/useResizeObserver.ts.html +133 -244
  591. package/coverage/lcov-report/src/useThrottledFunction.ts.html +57 -51
  592. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  593. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  594. package/coverage/lcov-report/src/useWindowSize.ts.html +124 -94
  595. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  596. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  597. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  598. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  599. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  600. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  601. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +163 -0
  602. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  603. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +66 -87
  604. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +7 -7
  605. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  606. package/coverage/lcov-report/src/utils/index.html +14 -59
  607. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  608. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +118 -0
  609. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  610. package/coverage/lcov-report/src/utils/nearest.ts.html +21 -21
  611. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  612. package/coverage/lcov-report/src/utils/randomInt.ts.html +52 -52
  613. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  614. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  615. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  616. package/coverage/lcov-report/src/window-splitter/index.html +14 -14
  617. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +19 -67
  618. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +256 -0
  619. package/coverage/lcov-report/styles.ts.html +134 -320
  620. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +283 -0
  621. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +202 -0
  622. package/coverage/lcov-report/suspense/index.html +131 -0
  623. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  624. package/coverage/lcov-report/tabIndicatorStyles.ts.html +43 -13
  625. package/coverage/lcov-report/tabListStyles.ts.html +35 -26
  626. package/coverage/lcov-report/tabStyles.ts.html +68 -26
  627. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  628. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  629. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  630. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  631. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  632. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  633. package/coverage/lcov-report/table/index.html +62 -32
  634. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  635. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  636. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  637. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  638. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  639. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  640. package/coverage/lcov-report/tabs/Tab.tsx.html +592 -0
  641. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  642. package/coverage/lcov-report/tabs/index.html +107 -17
  643. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +187 -0
  644. package/coverage/lcov-report/tabs/tabListStyles.ts.html +241 -0
  645. package/coverage/lcov-report/tabs/tabStyles.ts.html +253 -0
  646. package/coverage/lcov-report/tabs/useTabList.ts.html +736 -0
  647. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  648. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  649. package/coverage/lcov-report/test-utils/index.html +21 -21
  650. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  651. package/coverage/lcov-report/test-utils/use.ts.html +187 -0
  652. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  653. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  654. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  655. package/coverage/lcov-report/tooltip/index.html +11 -56
  656. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  657. package/coverage/lcov-report/tooltip/useTooltip.ts.html +555 -234
  658. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  659. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +595 -0
  660. package/coverage/lcov-report/transition/config.ts.html +187 -0
  661. package/coverage/lcov-report/transition/index.html +9 -24
  662. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +400 -0
  663. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  664. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +952 -0
  665. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  666. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  667. package/coverage/lcov-report/tree/TreeItem.tsx.html +215 -221
  668. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  669. package/coverage/lcov-report/tree/index.html +19 -94
  670. package/coverage/lcov-report/tree/styles.ts.html +538 -0
  671. package/coverage/lcov-report/tree/useTreeMovement.ts.html +140 -143
  672. package/coverage/lcov-report/typography/Typography.tsx.html +138 -432
  673. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  674. package/coverage/lcov-report/typography/index.html +18 -18
  675. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  676. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  677. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  678. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  679. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  680. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +952 -0
  681. package/coverage/lcov-report/useTabList.ts.html +142 -136
  682. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  683. package/coverage/lcov-report/useTransition.ts.html +934 -0
  684. package/coverage/lcov-report/useWindowSplitter.ts.html +640 -0
  685. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +256 -0
  686. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  687. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  688. package/coverage/lcov-report/utils/index.html +13 -43
  689. package/coverage/lcov-report/utils/isElementVisible.ts.html +12 -12
  690. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  691. package/coverage/lcov-report/utils/randomInt.ts.html +148 -0
  692. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  693. package/coverage/lcov-report/utils/wait.ts.html +1 -1
  694. package/coverage/lcov-report/utils.ts.html +109 -277
  695. package/coverage/lcov-report/window-splitter/index.html +21 -36
  696. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +406 -328
  697. package/coverage/lcov.info +0 -1176
  698. package/dist/RootHtml.d.ts +62 -0
  699. package/dist/RootHtml.js +49 -0
  700. package/dist/RootHtml.js.map +1 -0
  701. package/dist/_box-shadows.scss +12 -2
  702. package/dist/_core.scss +208 -250
  703. package/dist/_utils.scss +89 -0
  704. package/dist/app-bar/AppBar.d.ts +4 -9
  705. package/dist/app-bar/AppBar.js +29 -7
  706. package/dist/app-bar/AppBar.js.map +1 -1
  707. package/dist/app-bar/_app-bar.scss +114 -122
  708. package/dist/avatar/Avatar.d.ts +16 -15
  709. package/dist/avatar/Avatar.js +7 -3
  710. package/dist/avatar/Avatar.js.map +1 -1
  711. package/dist/avatar/_avatar.scss +79 -84
  712. package/dist/avatar/styles.d.ts +20 -2
  713. package/dist/avatar/styles.js +4 -1
  714. package/dist/avatar/styles.js.map +1 -1
  715. package/dist/badge/_badge.scss +97 -59
  716. package/dist/box/_box.scss +72 -81
  717. package/dist/button/AsyncButton.d.ts +29 -0
  718. package/dist/button/AsyncButton.js +14 -1
  719. package/dist/button/AsyncButton.js.map +1 -1
  720. package/dist/button/TooltippedButton.d.ts +62 -0
  721. package/dist/button/TooltippedButton.js +62 -0
  722. package/dist/button/TooltippedButton.js.map +1 -0
  723. package/dist/button/_button.scss +170 -180
  724. package/dist/card/Card.js +3 -2
  725. package/dist/card/Card.js.map +1 -1
  726. package/dist/card/CardContent.js +1 -1
  727. package/dist/card/CardContent.js.map +1 -1
  728. package/dist/card/ClickableCard.d.ts +42 -0
  729. package/dist/card/ClickableCard.js +73 -0
  730. package/dist/card/ClickableCard.js.map +1 -0
  731. package/dist/card/_card.scss +81 -82
  732. package/dist/card/styles.d.ts +8 -0
  733. package/dist/card/styles.js +6 -3
  734. package/dist/card/styles.js.map +1 -1
  735. package/dist/chip/_chip.scss +136 -163
  736. package/dist/chip/styles.d.ts +1 -1
  737. package/dist/chip/styles.js +3 -4
  738. package/dist/chip/styles.js.map +1 -1
  739. package/dist/cssUtils.d.ts +1 -0
  740. package/dist/cssUtils.js +1 -1
  741. package/dist/cssUtils.js.map +1 -1
  742. package/dist/dialog/Dialog.d.ts +1 -1
  743. package/dist/dialog/Dialog.js +2 -1
  744. package/dist/dialog/Dialog.js.map +1 -1
  745. package/dist/dialog/FixedDialog.d.ts +5 -4
  746. package/dist/dialog/FixedDialog.js +5 -4
  747. package/dist/dialog/FixedDialog.js.map +1 -1
  748. package/dist/dialog/_dialog.scss +179 -162
  749. package/dist/divider/Divider.d.ts +0 -1
  750. package/dist/divider/Divider.js.map +1 -1
  751. package/dist/divider/_divider.scss +61 -70
  752. package/dist/draggable/_draggable.scss +16 -12
  753. package/dist/draggable/useDraggable.d.ts +12 -23
  754. package/dist/draggable/useDraggable.js +15 -6
  755. package/dist/draggable/useDraggable.js.map +1 -1
  756. package/dist/draggable/utils.d.ts +4 -17
  757. package/dist/draggable/utils.js +9 -25
  758. package/dist/draggable/utils.js.map +1 -1
  759. package/dist/expansion-panel/_expansion-panel.scss +76 -50
  760. package/dist/expansion-panel/useExpansionPanels.d.ts +5 -3
  761. package/dist/expansion-panel/useExpansionPanels.js +16 -9
  762. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  763. package/dist/focus/useFocusContainer.d.ts +8 -8
  764. package/dist/focus/useFocusContainer.js +11 -10
  765. package/dist/focus/useFocusContainer.js.map +1 -1
  766. package/dist/form/Form.d.ts +1 -1
  767. package/dist/form/Form.js +2 -1
  768. package/dist/form/Form.js.map +1 -1
  769. package/dist/form/Label.d.ts +5 -5
  770. package/dist/form/Label.js.map +1 -1
  771. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  772. package/dist/form/MenuItemInputToggle.js +27 -38
  773. package/dist/form/MenuItemInputToggle.js.map +1 -1
  774. package/dist/form/MenuItemTextField.d.ts +2 -0
  775. package/dist/form/MenuItemTextField.js.map +1 -1
  776. package/dist/form/NativeSelect.d.ts +5 -2
  777. package/dist/form/NativeSelect.js.map +1 -1
  778. package/dist/form/Option.js +3 -2
  779. package/dist/form/Option.js.map +1 -1
  780. package/dist/form/ResizingTextAreaWrapper.d.ts +19 -0
  781. package/dist/form/ResizingTextAreaWrapper.js +35 -0
  782. package/dist/form/ResizingTextAreaWrapper.js.map +1 -0
  783. package/dist/form/Select.d.ts +105 -15
  784. package/dist/form/Select.js +160 -244
  785. package/dist/form/Select.js.map +1 -1
  786. package/dist/form/SelectedOption.d.ts +21 -0
  787. package/dist/form/SelectedOption.js +37 -0
  788. package/dist/form/SelectedOption.js.map +1 -0
  789. package/dist/form/Slider.d.ts +41 -5
  790. package/dist/form/Slider.js +2 -1
  791. package/dist/form/Slider.js.map +1 -1
  792. package/dist/form/SliderThumb.d.ts +7 -2
  793. package/dist/form/SliderThumb.js +4 -2
  794. package/dist/form/SliderThumb.js.map +1 -1
  795. package/dist/form/SliderValueMarks.js +1 -1
  796. package/dist/form/SliderValueMarks.js.map +1 -1
  797. package/dist/form/SliderValueTooltip.js +1 -1
  798. package/dist/form/SliderValueTooltip.js.map +1 -1
  799. package/dist/form/Switch.d.ts +3 -2
  800. package/dist/form/Switch.js +7 -26
  801. package/dist/form/Switch.js.map +1 -1
  802. package/dist/form/SwitchTrack.d.ts +2 -1
  803. package/dist/form/SwitchTrack.js +8 -4
  804. package/dist/form/SwitchTrack.js.map +1 -1
  805. package/dist/form/TextArea.d.ts +11 -0
  806. package/dist/form/TextArea.js +19 -29
  807. package/dist/form/TextArea.js.map +1 -1
  808. package/dist/form/TextField.d.ts +2 -2
  809. package/dist/form/TextField.js +7 -6
  810. package/dist/form/TextField.js.map +1 -1
  811. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  812. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  813. package/dist/form/_form.scss +1339 -1256
  814. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  815. package/dist/form/menuItemInputToggleStyles.js +31 -0
  816. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  817. package/dist/form/selectUtils.d.ts +1 -3
  818. package/dist/form/selectUtils.js +2 -10
  819. package/dist/form/selectUtils.js.map +1 -1
  820. package/dist/form/switchStyles.d.ts +1 -0
  821. package/dist/form/switchStyles.js +2 -1
  822. package/dist/form/switchStyles.js.map +1 -1
  823. package/dist/form/textAreaStyles.d.ts +2 -2
  824. package/dist/form/textAreaStyles.js.map +1 -1
  825. package/dist/form/types.d.ts +6 -8
  826. package/dist/form/types.js.map +1 -1
  827. package/dist/form/useCombobox.d.ts +157 -0
  828. package/dist/form/useCombobox.js +206 -0
  829. package/dist/form/useCombobox.js.map +1 -0
  830. package/dist/form/useEditableCombobox.d.ts +15 -0
  831. package/dist/form/useEditableCombobox.js +101 -0
  832. package/dist/form/useEditableCombobox.js.map +1 -0
  833. package/dist/form/useFormReset.d.ts +16 -0
  834. package/dist/form/useFormReset.js +32 -0
  835. package/dist/form/useFormReset.js.map +1 -0
  836. package/dist/form/useListboxProvider.d.ts +4 -2
  837. package/dist/form/useListboxProvider.js +6 -8
  838. package/dist/form/useListboxProvider.js.map +1 -1
  839. package/dist/form/useResizingTextArea.d.ts +5 -2
  840. package/dist/form/useResizingTextArea.js +52 -21
  841. package/dist/form/useResizingTextArea.js.map +1 -1
  842. package/dist/form/useSelectCombobox.d.ts +17 -0
  843. package/dist/form/useSelectCombobox.js +36 -0
  844. package/dist/form/useSelectCombobox.js.map +1 -0
  845. package/dist/form/utils.d.ts +11 -1
  846. package/dist/form/utils.js +6 -0
  847. package/dist/form/utils.js.map +1 -1
  848. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  849. package/dist/hoverMode/useHoverMode.js +1 -1
  850. package/dist/hoverMode/useHoverMode.js.map +1 -1
  851. package/dist/icon/FontIcon.d.ts +2 -1
  852. package/dist/icon/FontIcon.js +4 -5
  853. package/dist/icon/FontIcon.js.map +1 -1
  854. package/dist/icon/IconRotator.js +2 -3
  855. package/dist/icon/IconRotator.js.map +1 -1
  856. package/dist/icon/MaterialIcon.d.ts +2 -2
  857. package/dist/icon/MaterialIcon.js +3 -6
  858. package/dist/icon/MaterialIcon.js.map +1 -1
  859. package/dist/icon/MaterialSymbol.d.ts +15 -8
  860. package/dist/icon/MaterialSymbol.js +15 -11
  861. package/dist/icon/MaterialSymbol.js.map +1 -1
  862. package/dist/icon/_icon.scss +105 -112
  863. package/dist/icon/iconConfig.js.map +1 -1
  864. package/dist/icon/material.d.ts +1 -1
  865. package/dist/icon/material.js.map +1 -1
  866. package/dist/icon/{MaterialSymbolsProvider.d.ts → materialConfig.d.ts} +25 -14
  867. package/dist/icon/materialConfig.js +29 -0
  868. package/dist/icon/materialConfig.js.map +1 -0
  869. package/dist/icon/styles.d.ts +0 -15
  870. package/dist/icon/styles.js +2 -4
  871. package/dist/icon/styles.js.map +1 -1
  872. package/dist/index.d.ts +30 -7
  873. package/dist/index.js +30 -7
  874. package/dist/index.js.map +1 -1
  875. package/dist/interaction/_interaction.scss +144 -135
  876. package/dist/layout/_layout.scss +82 -86
  877. package/dist/layout/useLayoutAppBarHeight.js +5 -9
  878. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  879. package/dist/link/Link.d.ts +12 -6
  880. package/dist/link/Link.js +1 -2
  881. package/dist/link/Link.js.map +1 -1
  882. package/dist/link/_link.scss +74 -66
  883. package/dist/list/ListItem.d.ts +8 -3
  884. package/dist/list/ListItem.js +4 -3
  885. package/dist/list/ListItem.js.map +1 -1
  886. package/dist/list/ListItemAddon.js +2 -1
  887. package/dist/list/ListItemAddon.js.map +1 -1
  888. package/dist/list/ListItemChildren.js +3 -2
  889. package/dist/list/ListItemChildren.js.map +1 -1
  890. package/dist/list/ListItemLink.d.ts +1 -1
  891. package/dist/list/ListItemLink.js +3 -3
  892. package/dist/list/ListItemLink.js.map +1 -1
  893. package/dist/list/_list.scss +187 -184
  894. package/dist/list/getListItemHeight.d.ts +0 -1
  895. package/dist/list/getListItemHeight.js +2 -2
  896. package/dist/list/getListItemHeight.js.map +1 -1
  897. package/dist/list/listItemStyles.d.ts +9 -1
  898. package/dist/list/listItemStyles.js +5 -5
  899. package/dist/list/listItemStyles.js.map +1 -1
  900. package/dist/list/types.d.ts +25 -6
  901. package/dist/list/types.js.map +1 -1
  902. package/dist/menu/DropdownMenu.d.ts +12 -1
  903. package/dist/menu/DropdownMenu.js +13 -4
  904. package/dist/menu/DropdownMenu.js.map +1 -1
  905. package/dist/menu/Menu.d.ts +8 -0
  906. package/dist/menu/Menu.js +14 -2
  907. package/dist/menu/Menu.js.map +1 -1
  908. package/dist/menu/MenuItemCircularProgress.d.ts +60 -0
  909. package/dist/menu/MenuItemCircularProgress.js +74 -0
  910. package/dist/menu/MenuItemCircularProgress.js.map +1 -0
  911. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  912. package/dist/menu/MenuItemSeparator.js +2 -8
  913. package/dist/menu/MenuItemSeparator.js.map +1 -1
  914. package/dist/menu/MenuSheet.d.ts +6 -1
  915. package/dist/menu/MenuSheet.js.map +1 -1
  916. package/dist/menu/_menu.scss +29 -50
  917. package/dist/menu/useContextMenu.d.ts +3 -3
  918. package/dist/menu/useContextMenu.js +3 -3
  919. package/dist/menu/useContextMenu.js.map +1 -1
  920. package/dist/movement/types.d.ts +40 -21
  921. package/dist/movement/types.js.map +1 -1
  922. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  923. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  924. package/dist/movement/utils.d.ts +7 -2
  925. package/dist/movement/utils.js +10 -0
  926. package/dist/movement/utils.js.map +1 -1
  927. package/dist/overlay/_overlay.scss +39 -42
  928. package/dist/portal/PortalContainerProvider.d.ts +2 -2
  929. package/dist/portal/PortalContainerProvider.js +6 -1
  930. package/dist/portal/PortalContainerProvider.js.map +1 -1
  931. package/dist/positioning/useFixedPositioning.js +0 -8
  932. package/dist/positioning/useFixedPositioning.js.map +1 -1
  933. package/dist/progress/CircularProgress.d.ts +5 -4
  934. package/dist/progress/CircularProgress.js +3 -3
  935. package/dist/progress/CircularProgress.js.map +1 -1
  936. package/dist/progress/LinearProgress.d.ts +7 -5
  937. package/dist/progress/LinearProgress.js +4 -3
  938. package/dist/progress/LinearProgress.js.map +1 -1
  939. package/dist/progress/_progress.scss +33 -33
  940. package/dist/responsive-item/_responsive-item.scss +91 -89
  941. package/dist/searching/caseInsensitive.d.ts +150 -0
  942. package/dist/searching/caseInsensitive.js +30 -0
  943. package/dist/searching/caseInsensitive.js.map +1 -0
  944. package/dist/searching/fuzzy.d.ts +128 -0
  945. package/dist/searching/fuzzy.js +54 -0
  946. package/dist/searching/fuzzy.js.map +1 -0
  947. package/dist/searching/toSearchQuery.d.ts +7 -0
  948. package/dist/searching/toSearchQuery.js +15 -0
  949. package/dist/searching/toSearchQuery.js.map +1 -0
  950. package/dist/searching/types.d.ts +28 -0
  951. package/dist/searching/types.js +5 -0
  952. package/dist/searching/types.js.map +1 -0
  953. package/dist/searching/useFuzzyMatch.d.ts +19 -0
  954. package/dist/searching/useFuzzyMatch.js +26 -0
  955. package/dist/searching/useFuzzyMatch.js.map +1 -0
  956. package/dist/searching/utils.d.ts +21 -0
  957. package/dist/searching/utils.js +28 -0
  958. package/dist/searching/utils.js.map +1 -0
  959. package/dist/segmented-button/_segmented-button.scss +89 -90
  960. package/dist/sheet/_sheet.scss +107 -123
  961. package/dist/sheet/styles.d.ts +14 -15
  962. package/dist/sheet/styles.js.map +1 -1
  963. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  964. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  965. package/dist/snackbar/Snackbar.d.ts +10 -10
  966. package/dist/snackbar/Snackbar.js +3 -3
  967. package/dist/snackbar/Snackbar.js.map +1 -1
  968. package/dist/snackbar/Toast.d.ts +1 -1
  969. package/dist/snackbar/Toast.js +5 -1
  970. package/dist/snackbar/Toast.js.map +1 -1
  971. package/dist/snackbar/ToastManager.d.ts +2 -1
  972. package/dist/snackbar/ToastManager.js +1 -1
  973. package/dist/snackbar/ToastManager.js.map +1 -1
  974. package/dist/snackbar/_snackbar.scss +148 -144
  975. package/dist/snackbar/snackbarStyles.d.ts +1 -0
  976. package/dist/snackbar/snackbarStyles.js +2 -1
  977. package/dist/snackbar/snackbarStyles.js.map +1 -1
  978. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  979. package/dist/suspense/CircularProgressSuspense.js +3 -1
  980. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  981. package/dist/table/Table.d.ts +0 -12
  982. package/dist/table/Table.js +1 -12
  983. package/dist/table/Table.js.map +1 -1
  984. package/dist/table/TableCell.d.ts +13 -38
  985. package/dist/table/TableCell.js +7 -15
  986. package/dist/table/TableCell.js.map +1 -1
  987. package/dist/table/TableCellContent.d.ts +9 -0
  988. package/dist/table/TableCellContent.js +2 -1
  989. package/dist/table/TableCellContent.js.map +1 -1
  990. package/dist/table/TableCheckbox.d.ts +5 -4
  991. package/dist/table/TableCheckbox.js +7 -5
  992. package/dist/table/TableCheckbox.js.map +1 -1
  993. package/dist/table/TableContainer.d.ts +0 -6
  994. package/dist/table/TableContainer.js +1 -6
  995. package/dist/table/TableContainer.js.map +1 -1
  996. package/dist/table/TableFooter.d.ts +7 -1
  997. package/dist/table/TableFooter.js +17 -16
  998. package/dist/table/TableFooter.js.map +1 -1
  999. package/dist/table/TableHeader.d.ts +7 -14
  1000. package/dist/table/TableHeader.js +6 -14
  1001. package/dist/table/TableHeader.js.map +1 -1
  1002. package/dist/table/TableRadio.d.ts +107 -0
  1003. package/dist/table/TableRadio.js +108 -0
  1004. package/dist/table/TableRadio.js.map +1 -0
  1005. package/dist/table/TableRow.d.ts +0 -10
  1006. package/dist/table/TableRow.js +1 -12
  1007. package/dist/table/TableRow.js.map +1 -1
  1008. package/dist/table/_table.scss +217 -232
  1009. package/dist/table/tableCellStyles.d.ts +33 -0
  1010. package/dist/table/tableCellStyles.js +15 -0
  1011. package/dist/table/tableCellStyles.js.map +1 -0
  1012. package/dist/table/tableContainerStyles.d.ts +10 -0
  1013. package/dist/table/tableContainerStyles.js +9 -0
  1014. package/dist/table/tableContainerStyles.js.map +1 -0
  1015. package/dist/table/tableFooterStyles.d.ts +10 -0
  1016. package/dist/table/tableFooterStyles.js +12 -0
  1017. package/dist/table/tableFooterStyles.js.map +1 -0
  1018. package/dist/table/tableHeaderStyles.d.ts +10 -0
  1019. package/dist/table/tableHeaderStyles.js +13 -0
  1020. package/dist/table/tableHeaderStyles.js.map +1 -0
  1021. package/dist/table/tableRowStyles.d.ts +10 -0
  1022. package/dist/table/tableRowStyles.js +14 -0
  1023. package/dist/table/tableRowStyles.js.map +1 -0
  1024. package/dist/table/tableStyles.d.ts +12 -0
  1025. package/dist/table/tableStyles.js +14 -0
  1026. package/dist/table/tableStyles.js.map +1 -0
  1027. package/dist/table/types.d.ts +28 -15
  1028. package/dist/table/types.js.map +1 -1
  1029. package/dist/tabs/Tab.d.ts +24 -3
  1030. package/dist/tabs/Tab.js +15 -8
  1031. package/dist/tabs/Tab.js.map +1 -1
  1032. package/dist/tabs/_tabs.scss +64 -53
  1033. package/dist/tabs/tabIndicatorStyles.d.ts +2 -1
  1034. package/dist/tabs/tabIndicatorStyles.js +6 -3
  1035. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  1036. package/dist/tabs/tabListStyles.js +2 -1
  1037. package/dist/tabs/tabListStyles.js.map +1 -1
  1038. package/dist/tabs/tabStyles.d.ts +2 -0
  1039. package/dist/tabs/tabStyles.js +6 -3
  1040. package/dist/tabs/tabStyles.js.map +1 -1
  1041. package/dist/tabs/useTabList.d.ts +3 -3
  1042. package/dist/tabs/useTabList.js +9 -6
  1043. package/dist/tabs/useTabList.js.map +1 -1
  1044. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  1045. package/dist/test-utils/ResizeObserver.d.ts +214 -0
  1046. package/dist/test-utils/ResizeObserver.js +69 -49
  1047. package/dist/test-utils/ResizeObserver.js.map +1 -1
  1048. package/dist/test-utils/data-testid.d.ts +7 -0
  1049. package/dist/test-utils/data-testid.js +3 -0
  1050. package/dist/test-utils/data-testid.js.map +1 -0
  1051. package/dist/test-utils/drag.d.ts +26 -0
  1052. package/dist/test-utils/index.d.ts +7 -0
  1053. package/dist/test-utils/jest-setup.d.ts +1 -0
  1054. package/dist/test-utils/jest-setup.js +3 -0
  1055. package/dist/test-utils/jest-setup.js.map +1 -1
  1056. package/dist/test-utils/matchMedia.d.ts +101 -0
  1057. package/dist/test-utils/matchMedia.js +2 -2
  1058. package/dist/test-utils/matchMedia.js.map +1 -1
  1059. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  1060. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  1061. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  1062. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  1063. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  1064. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  1065. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  1066. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  1067. package/dist/test-utils/polyfills/index.d.ts +7 -0
  1068. package/dist/test-utils/polyfills/index.js +2 -0
  1069. package/dist/test-utils/polyfills/index.js.map +1 -1
  1070. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  1071. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  1072. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  1073. package/dist/test-utils/render.d.ts +13 -0
  1074. package/dist/test-utils/timers.d.ts +39 -0
  1075. package/dist/theme/ThemeProvider.d.ts +5 -0
  1076. package/dist/theme/ThemeProvider.js.map +1 -1
  1077. package/dist/theme/_theme.scss +243 -133
  1078. package/dist/tooltip/Tooltip.d.ts +13 -6
  1079. package/dist/tooltip/Tooltip.js +2 -2
  1080. package/dist/tooltip/Tooltip.js.map +1 -1
  1081. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  1082. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  1083. package/dist/tooltip/_tooltip.scss +76 -82
  1084. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  1085. package/dist/tooltip/tooltipStyles.js +2 -2
  1086. package/dist/tooltip/tooltipStyles.js.map +1 -1
  1087. package/dist/tooltip/useTooltip.d.ts +83 -20
  1088. package/dist/tooltip/useTooltip.js +68 -7
  1089. package/dist/tooltip/useTooltip.js.map +1 -1
  1090. package/dist/transition/SkeletonPlaceholder.d.ts +2 -2
  1091. package/dist/transition/SkeletonPlaceholder.js +8 -3
  1092. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  1093. package/dist/transition/_transition.scss +89 -78
  1094. package/dist/transition/config.d.ts +22 -0
  1095. package/dist/transition/config.js +16 -0
  1096. package/dist/transition/config.js.map +1 -0
  1097. package/dist/transition/skeletonPlaceholderUtils.d.ts +77 -0
  1098. package/dist/transition/skeletonPlaceholderUtils.js +38 -0
  1099. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  1100. package/dist/transition/useCollapseTransition.d.ts +3 -18
  1101. package/dist/transition/useCollapseTransition.js +1 -10
  1102. package/dist/transition/useCollapseTransition.js.map +1 -1
  1103. package/dist/transition/useSkeletonPlaceholder.d.ts +12 -7
  1104. package/dist/transition/useSkeletonPlaceholder.js +38 -37
  1105. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  1106. package/dist/transition/useTransition.js +15 -6
  1107. package/dist/transition/useTransition.js.map +1 -1
  1108. package/dist/transition/utils.js +7 -2
  1109. package/dist/transition/utils.js.map +1 -1
  1110. package/dist/tree/DefaultTreeItemRenderer.d.ts +3 -3
  1111. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  1112. package/dist/tree/Tree.d.ts +9 -5
  1113. package/dist/tree/Tree.js +18 -21
  1114. package/dist/tree/Tree.js.map +1 -1
  1115. package/dist/tree/TreeItem.js +4 -7
  1116. package/dist/tree/TreeItem.js.map +1 -1
  1117. package/dist/tree/TreeProvider.d.ts +2 -0
  1118. package/dist/tree/TreeProvider.js +3 -1
  1119. package/dist/tree/TreeProvider.js.map +1 -1
  1120. package/dist/tree/_tree.scss +111 -109
  1121. package/dist/tree/styles.d.ts +0 -6
  1122. package/dist/tree/styles.js +1 -2
  1123. package/dist/tree/styles.js.map +1 -1
  1124. package/dist/tree/useTreeMovement.js +1 -1
  1125. package/dist/tree/useTreeMovement.js.map +1 -1
  1126. package/dist/types.d.ts +13 -0
  1127. package/dist/types.js +1 -2
  1128. package/dist/types.js.map +1 -1
  1129. package/dist/typography/SrOnly.d.ts +3 -3
  1130. package/dist/typography/SrOnly.js +4 -4
  1131. package/dist/typography/SrOnly.js.map +1 -1
  1132. package/dist/typography/Typography.d.ts +19 -19
  1133. package/dist/typography/Typography.js +19 -19
  1134. package/dist/typography/Typography.js.map +1 -1
  1135. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  1136. package/dist/typography/WritingDirectionProvider.js +2 -2
  1137. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  1138. package/dist/typography/_typography.scss +141 -87
  1139. package/dist/useDebouncedFunction.d.ts +2 -2
  1140. package/dist/useDebouncedFunction.js +10 -6
  1141. package/dist/useDebouncedFunction.js.map +1 -1
  1142. package/dist/useElementSize.d.ts +40 -0
  1143. package/dist/useElementSize.js +53 -0
  1144. package/dist/useElementSize.js.map +1 -0
  1145. package/dist/useEnsuredState.d.ts +1 -1
  1146. package/dist/useEnsuredState.js.map +1 -1
  1147. package/dist/useResizeListener.d.ts +1 -1
  1148. package/dist/useResizeListener.js +1 -0
  1149. package/dist/useResizeListener.js.map +1 -1
  1150. package/dist/useResizeObserver.d.ts +4 -43
  1151. package/dist/useResizeObserver.js +4 -43
  1152. package/dist/useResizeObserver.js.map +1 -1
  1153. package/dist/useThrottledFunction.d.ts +2 -2
  1154. package/dist/useThrottledFunction.js +20 -16
  1155. package/dist/useThrottledFunction.js.map +1 -1
  1156. package/dist/useWindowSize.d.ts +14 -11
  1157. package/dist/useWindowSize.js +12 -7
  1158. package/dist/useWindowSize.js.map +1 -1
  1159. package/dist/utils/alphaNumericSort.d.ts +1 -1
  1160. package/dist/utils/alphaNumericSort.js +2 -10
  1161. package/dist/utils/alphaNumericSort.js.map +1 -1
  1162. package/dist/utils/getMiddleOfRange.d.ts +13 -0
  1163. package/dist/utils/getMiddleOfRange.js +20 -0
  1164. package/dist/utils/getMiddleOfRange.js.map +1 -0
  1165. package/dist/utils/getRangeDefaultValue.d.ts +3 -5
  1166. package/dist/utils/getRangeDefaultValue.js +3 -13
  1167. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  1168. package/dist/utils/getRangeSteps.d.ts +1 -1
  1169. package/dist/utils/getRangeSteps.js +2 -2
  1170. package/dist/utils/getRangeSteps.js.map +1 -1
  1171. package/dist/utils/nearest.js +1 -1
  1172. package/dist/utils/nearest.js.map +1 -1
  1173. package/dist/window-splitter/_window-splitter.scss +83 -112
  1174. package/dist/window-splitter/useWindowSplitter.d.ts +3 -5
  1175. package/dist/window-splitter/useWindowSplitter.js +3 -11
  1176. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  1177. package/jest.config.ts +4 -0
  1178. package/package.json +38 -40
  1179. package/scripts/{copySassFiles.js → copySassFiles.ts} +5 -5
  1180. package/scripts/tsconfig.json +18 -0
  1181. package/src/RootHtml.tsx +95 -0
  1182. package/src/__tests__/NoSsr.tsx +5 -5
  1183. package/src/__tests__/RootHtml.node.tsx +46 -0
  1184. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  1185. package/src/__tests__/useAsyncAction.tsx +14 -6
  1186. package/src/__tests__/useDebouncedFunction.tsx +68 -24
  1187. package/src/__tests__/useDropzone.tsx +10 -10
  1188. package/src/__tests__/useElementSize.tsx +181 -0
  1189. package/src/__tests__/useEnsuredId.tsx +5 -5
  1190. package/src/__tests__/useEnsuredState.tsx +1 -2
  1191. package/src/__tests__/useLocalStorage.tsx +21 -21
  1192. package/src/__tests__/useResizeObserver.tsx +2 -0
  1193. package/src/__tests__/useThrottledFunction.tsx +63 -8
  1194. package/src/__tests__/useToggle.tsx +10 -10
  1195. package/src/__tests__/useWindowSize.node.tsx +56 -0
  1196. package/src/__tests__/useWindowSize.tsx +156 -0
  1197. package/src/_box-shadows.scss +12 -2
  1198. package/src/_core.scss +208 -250
  1199. package/src/_utils.scss +89 -0
  1200. package/src/app-bar/AppBar.tsx +59 -19
  1201. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  1202. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  1203. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +21 -21
  1204. package/src/app-bar/_app-bar.scss +114 -122
  1205. package/src/avatar/Avatar.tsx +36 -23
  1206. package/src/avatar/__tests__/Avatar.tsx +6 -6
  1207. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  1208. package/src/avatar/_avatar.scss +79 -84
  1209. package/src/avatar/styles.ts +27 -4
  1210. package/src/badge/__tests__/Badge.tsx +3 -3
  1211. package/src/badge/_badge.scss +97 -59
  1212. package/src/box/_box.scss +72 -81
  1213. package/src/button/AsyncButton.tsx +71 -4
  1214. package/src/button/TooltippedButton.tsx +120 -0
  1215. package/src/button/__tests__/AsyncButton.tsx +2 -0
  1216. package/src/button/__tests__/Button.tsx +12 -12
  1217. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  1218. package/src/button/__tests__/TooltippedButton.tsx +60 -0
  1219. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  1220. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  1221. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +26 -0
  1222. package/src/button/_button.scss +170 -180
  1223. package/src/card/Card.tsx +5 -3
  1224. package/src/card/CardContent.tsx +3 -3
  1225. package/src/card/ClickableCard.tsx +105 -0
  1226. package/src/card/__tests__/Card.tsx +3 -3
  1227. package/src/card/__tests__/CardContent.tsx +3 -3
  1228. package/src/card/__tests__/CardFooter.tsx +3 -3
  1229. package/src/card/__tests__/CardHeader.tsx +5 -5
  1230. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  1231. package/src/card/__tests__/CardTitle.tsx +3 -3
  1232. package/src/card/__tests__/ClickableCard.tsx +66 -0
  1233. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  1234. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  1235. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +20 -0
  1236. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  1237. package/src/card/_card.scss +81 -82
  1238. package/src/card/styles.ts +19 -10
  1239. package/src/chip/__tests__/Chip.tsx +20 -22
  1240. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  1241. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  1242. package/src/chip/_chip.scss +136 -163
  1243. package/src/chip/styles.ts +4 -5
  1244. package/src/cssUtils.ts +4 -1
  1245. package/src/dialog/Dialog.tsx +5 -4
  1246. package/src/dialog/FixedDialog.tsx +5 -4
  1247. package/src/dialog/__tests__/Dialog.tsx +316 -0
  1248. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  1249. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  1250. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  1251. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  1252. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  1253. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  1254. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  1255. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  1256. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  1257. package/src/dialog/_dialog.scss +179 -162
  1258. package/src/divider/Divider.tsx +0 -1
  1259. package/src/divider/__tests__/Divider.tsx +3 -3
  1260. package/src/divider/_divider.scss +61 -70
  1261. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  1262. package/src/draggable/_draggable.scss +16 -12
  1263. package/src/draggable/useDraggable.ts +26 -25
  1264. package/src/draggable/utils.ts +16 -50
  1265. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +30 -25
  1266. package/src/expansion-panel/_expansion-panel.scss +76 -50
  1267. package/src/expansion-panel/useExpansionPanels.ts +20 -16
  1268. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  1269. package/src/focus/useFocusContainer.ts +17 -10
  1270. package/src/form/Form.tsx +2 -1
  1271. package/src/form/Label.tsx +5 -5
  1272. package/src/form/MenuItemInputToggle.tsx +47 -61
  1273. package/src/form/MenuItemTextField.tsx +3 -0
  1274. package/src/form/NativeSelect.tsx +6 -3
  1275. package/src/form/Option.tsx +8 -2
  1276. package/src/form/ResizingTextAreaWrapper.tsx +75 -0
  1277. package/src/form/Select.tsx +251 -327
  1278. package/src/form/SelectedOption.tsx +55 -0
  1279. package/src/form/Slider.tsx +45 -5
  1280. package/src/form/SliderThumb.tsx +15 -3
  1281. package/src/form/SliderValueMarks.tsx +3 -1
  1282. package/src/form/SliderValueTooltip.tsx +1 -1
  1283. package/src/form/Switch.tsx +6 -27
  1284. package/src/form/SwitchTrack.tsx +12 -2
  1285. package/src/form/TextArea.tsx +40 -32
  1286. package/src/form/TextField.tsx +19 -19
  1287. package/src/form/TextFieldContainerStyles.ts +7 -7
  1288. package/src/form/__tests__/Checkbox.tsx +5 -5
  1289. package/src/form/__tests__/Fieldset.tsx +3 -3
  1290. package/src/form/__tests__/FileInput.tsx +2 -2
  1291. package/src/form/__tests__/Label.tsx +3 -3
  1292. package/src/form/__tests__/Legend.tsx +3 -3
  1293. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  1294. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  1295. package/src/form/__tests__/Radio.tsx +3 -3
  1296. package/src/form/__tests__/Select.tsx +439 -0
  1297. package/src/form/__tests__/Switch.tsx +152 -0
  1298. package/src/form/__tests__/TextArea.tsx +433 -0
  1299. package/src/form/__tests__/TextField.tsx +195 -0
  1300. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  1301. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  1302. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  1303. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  1304. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  1305. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +548 -0
  1306. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +279 -0
  1307. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  1308. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  1309. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  1310. package/src/form/__tests__/useFileUpload.tsx +41 -33
  1311. package/src/form/__tests__/useFormReset.tsx +195 -0
  1312. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  1313. package/src/form/_form.scss +1339 -1256
  1314. package/src/form/menuItemInputToggleStyles.ts +78 -0
  1315. package/src/form/selectUtils.ts +3 -14
  1316. package/src/form/switchStyles.ts +3 -3
  1317. package/src/form/textAreaStyles.ts +2 -2
  1318. package/src/form/types.ts +6 -8
  1319. package/src/form/useCombobox.ts +523 -0
  1320. package/src/form/useEditableCombobox.ts +139 -0
  1321. package/src/form/useFormReset.ts +48 -0
  1322. package/src/form/useListboxProvider.ts +9 -7
  1323. package/src/form/useResizingTextArea.ts +66 -25
  1324. package/src/form/useSelectCombobox.ts +70 -0
  1325. package/src/form/utils.ts +17 -4
  1326. package/src/hoverMode/useHoverMode.ts +4 -4
  1327. package/src/icon/FontIcon.tsx +2 -5
  1328. package/src/icon/IconRotator.tsx +1 -2
  1329. package/src/icon/MaterialIcon.tsx +4 -6
  1330. package/src/icon/MaterialSymbol.tsx +18 -12
  1331. package/src/icon/__tests__/FontIcon.tsx +7 -11
  1332. package/src/icon/__tests__/IconRotator.tsx +4 -4
  1333. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  1334. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  1335. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  1336. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  1337. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  1338. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  1339. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  1340. package/src/icon/_icon.scss +105 -112
  1341. package/src/icon/iconConfig.tsx +1 -0
  1342. package/src/icon/material.ts +284 -54
  1343. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  1344. package/src/icon/styles.ts +0 -21
  1345. package/src/index.ts +30 -7
  1346. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  1347. package/src/interaction/_interaction.scss +144 -135
  1348. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +4 -4
  1349. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +1 -1
  1350. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +18 -18
  1351. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +1 -1
  1352. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +1 -1
  1353. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  1354. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  1355. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  1356. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  1357. package/src/layout/_layout.scss +82 -86
  1358. package/src/layout/useLayoutAppBarHeight.ts +5 -9
  1359. package/src/link/Link.tsx +15 -5
  1360. package/src/link/__tests__/Link.tsx +3 -3
  1361. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  1362. package/src/link/_link.scss +74 -66
  1363. package/src/list/ListItem.tsx +20 -13
  1364. package/src/list/ListItemAddon.tsx +5 -3
  1365. package/src/list/ListItemChildren.tsx +4 -2
  1366. package/src/list/ListItemLink.tsx +5 -5
  1367. package/src/list/__tests__/List.tsx +7 -7
  1368. package/src/list/__tests__/ListItem.tsx +18 -17
  1369. package/src/list/__tests__/ListItemLink.tsx +7 -7
  1370. package/src/list/__tests__/ListSubheader.tsx +5 -5
  1371. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +1 -1
  1372. package/src/list/__tests__/getListItemHeight.ts +2 -2
  1373. package/src/list/_list.scss +187 -184
  1374. package/src/list/getListItemHeight.ts +2 -3
  1375. package/src/list/listItemStyles.ts +15 -5
  1376. package/src/list/types.ts +28 -6
  1377. package/src/menu/DropdownMenu.tsx +23 -4
  1378. package/src/menu/Menu.tsx +20 -1
  1379. package/src/menu/MenuItemCircularProgress.tsx +116 -0
  1380. package/src/menu/MenuItemSeparator.tsx +2 -12
  1381. package/src/menu/MenuSheet.tsx +10 -1
  1382. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  1383. package/src/menu/__tests__/MenuBar.tsx +57 -48
  1384. package/src/menu/__tests__/MenuItemCircularProgress.tsx +39 -0
  1385. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  1386. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +68 -0
  1387. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  1388. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  1389. package/src/menu/_menu.scss +29 -50
  1390. package/src/menu/useContextMenu.ts +3 -3
  1391. package/src/movement/types.ts +50 -25
  1392. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  1393. package/src/movement/utils.ts +12 -2
  1394. package/src/overlay/__tests__/Overlay.tsx +37 -35
  1395. package/src/overlay/_overlay.scss +39 -42
  1396. package/src/portal/PortalContainerProvider.tsx +10 -2
  1397. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  1398. package/src/portal/__tests__/PortalContainerProvider.tsx +32 -9
  1399. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  1400. package/src/positioning/__tests__/useFixedPositioning.tsx +18 -26
  1401. package/src/positioning/useFixedPositioning.ts +0 -6
  1402. package/src/progress/CircularProgress.tsx +5 -4
  1403. package/src/progress/LinearProgress.tsx +88 -86
  1404. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  1405. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  1406. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  1407. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  1408. package/src/progress/_progress.scss +33 -33
  1409. package/src/responsive-item/_responsive-item.scss +91 -89
  1410. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  1411. package/src/searching/__tests__/fuzzy.ts +169 -0
  1412. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  1413. package/src/searching/__tests__/useFuzzyMatch.tsx +200 -0
  1414. package/src/searching/caseInsensitive.ts +200 -0
  1415. package/src/searching/fuzzy.ts +175 -0
  1416. package/src/searching/toSearchQuery.ts +20 -0
  1417. package/src/searching/types.ts +34 -0
  1418. package/src/searching/useFuzzyMatch.ts +42 -0
  1419. package/src/searching/utils.ts +53 -0
  1420. package/src/segmented-button/_segmented-button.scss +89 -90
  1421. package/src/sheet/_sheet.scss +107 -123
  1422. package/src/sheet/styles.ts +14 -15
  1423. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  1424. package/src/snackbar/Snackbar.tsx +28 -32
  1425. package/src/snackbar/Toast.tsx +7 -2
  1426. package/src/snackbar/ToastManager.tsx +3 -2
  1427. package/src/snackbar/__tests__/Snackbar.tsx +13 -12
  1428. package/src/snackbar/__tests__/Toast.tsx +8 -3
  1429. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  1430. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  1431. package/src/snackbar/__tests__/ToastManagerProvider.tsx +28 -42
  1432. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  1433. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  1434. package/src/snackbar/_snackbar.scss +148 -144
  1435. package/src/snackbar/snackbarStyles.ts +3 -1
  1436. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  1437. package/src/suspense/__tests__/CircularProgressSuspense.tsx +90 -0
  1438. package/src/suspense/__tests__/NullSuspense.tsx +46 -0
  1439. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +24 -0
  1440. package/src/table/Table.tsx +1 -24
  1441. package/src/table/TableCell.tsx +22 -85
  1442. package/src/table/TableCellContent.tsx +20 -2
  1443. package/src/table/TableCheckbox.tsx +7 -5
  1444. package/src/table/TableContainer.tsx +1 -8
  1445. package/src/table/TableFooter.tsx +30 -23
  1446. package/src/table/TableHeader.tsx +23 -40
  1447. package/src/table/TableRadio.tsx +197 -0
  1448. package/src/table/TableRow.tsx +1 -28
  1449. package/src/table/__tests__/Table.tsx +4 -10
  1450. package/src/table/__tests__/TableBody.tsx +3 -3
  1451. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  1452. package/src/table/__tests__/TableContainer.tsx +3 -3
  1453. package/src/table/__tests__/TableRadio.tsx +112 -0
  1454. package/src/table/__tests__/TableRow.tsx +4 -10
  1455. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  1456. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  1457. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  1458. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  1459. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  1460. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  1461. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  1462. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  1463. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  1464. package/src/table/__tests__/tableRowStyles.ts +8 -0
  1465. package/src/table/__tests__/tableStyles.ts +8 -0
  1466. package/src/table/_table.scss +217 -232
  1467. package/src/table/tableCellStyles.ts +83 -0
  1468. package/src/table/tableContainerStyles.ts +19 -0
  1469. package/src/table/tableFooterStyles.ts +27 -0
  1470. package/src/table/tableHeaderStyles.ts +29 -0
  1471. package/src/table/tableRowStyles.ts +28 -0
  1472. package/src/table/tableStyles.ts +24 -0
  1473. package/src/table/types.ts +33 -15
  1474. package/src/tabs/Tab.tsx +110 -70
  1475. package/src/tabs/__tests__/Tab.tsx +27 -4
  1476. package/src/tabs/__tests__/TabList.tsx +54 -44
  1477. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +2 -2
  1478. package/src/tabs/__tests__/useTabs.tsx +27 -24
  1479. package/src/tabs/_tabs.scss +64 -53
  1480. package/src/tabs/tabIndicatorStyles.ts +13 -3
  1481. package/src/tabs/tabListStyles.ts +1 -1
  1482. package/src/tabs/tabStyles.ts +16 -4
  1483. package/src/tabs/useTabList.ts +10 -8
  1484. package/src/test-utils/ResizeObserver.ts +100 -53
  1485. package/src/test-utils/__tests__/ResizeObserver.ts +1 -1
  1486. package/src/test-utils/data-testid.ts +9 -0
  1487. package/src/test-utils/jest-setup.ts +4 -0
  1488. package/src/test-utils/matchMedia.ts +2 -2
  1489. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  1490. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  1491. package/src/test-utils/polyfills/index.ts +2 -0
  1492. package/src/theme/ThemeProvider.tsx +6 -0
  1493. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  1494. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  1495. package/src/theme/_theme.scss +243 -133
  1496. package/src/tooltip/Tooltip.tsx +17 -9
  1497. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  1498. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  1499. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  1500. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  1501. package/src/tooltip/_tooltip.scss +76 -82
  1502. package/src/tooltip/tooltipStyles.ts +4 -4
  1503. package/src/tooltip/useTooltip.ts +141 -34
  1504. package/src/transition/SkeletonPlaceholder.tsx +18 -6
  1505. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  1506. package/src/transition/__tests__/Collapse.tsx +19 -17
  1507. package/src/transition/__tests__/CrossFade.tsx +20 -17
  1508. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  1509. package/src/transition/__tests__/SkeletonPlaceholder.tsx +72 -0
  1510. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +24 -0
  1511. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  1512. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  1513. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  1514. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  1515. package/src/transition/__tests__/useTransition.tsx +165 -68
  1516. package/src/transition/__tests__/utils.ts +25 -0
  1517. package/src/transition/_transition.scss +89 -78
  1518. package/src/transition/config.ts +34 -0
  1519. package/src/transition/skeletonPlaceholderUtils.ts +105 -0
  1520. package/src/transition/useCollapseTransition.ts +6 -24
  1521. package/src/transition/useSkeletonPlaceholder.ts +62 -47
  1522. package/src/transition/useTransition.ts +15 -6
  1523. package/src/transition/utils.ts +10 -5
  1524. package/src/tree/DefaultTreeItemRenderer.tsx +7 -3
  1525. package/src/tree/Tree.tsx +28 -28
  1526. package/src/tree/TreeItem.tsx +5 -7
  1527. package/src/tree/TreeProvider.tsx +6 -0
  1528. package/src/tree/__tests__/Tree.tsx +8 -3
  1529. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  1530. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  1531. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +124 -124
  1532. package/src/tree/_tree.scss +111 -109
  1533. package/src/tree/styles.ts +0 -9
  1534. package/src/tree/useTreeMovement.ts +1 -1
  1535. package/src/types.ts +13 -0
  1536. package/src/typography/SrOnly.tsx +9 -9
  1537. package/src/typography/Typography.tsx +19 -19
  1538. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1539. package/src/typography/__tests__/TextContainer.tsx +3 -3
  1540. package/src/typography/__tests__/Typography.tsx +10 -12
  1541. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  1542. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  1543. package/src/typography/_typography.scss +141 -87
  1544. package/src/useDebouncedFunction.ts +12 -10
  1545. package/src/useElementSize.ts +83 -0
  1546. package/src/useEnsuredState.ts +1 -1
  1547. package/src/useResizeListener.ts +3 -1
  1548. package/src/useResizeObserver.ts +8 -45
  1549. package/src/useThrottledFunction.ts +12 -10
  1550. package/src/useWindowSize.ts +29 -19
  1551. package/src/utils/__tests__/getMiddleOfRange.ts +12 -0
  1552. package/src/utils/__tests__/getRangeDefaultValue.ts +47 -0
  1553. package/src/utils/alphaNumericSort.ts +3 -16
  1554. package/src/utils/getMiddleOfRange.ts +26 -0
  1555. package/src/utils/getRangeDefaultValue.ts +8 -15
  1556. package/src/utils/getRangeSteps.ts +2 -2
  1557. package/src/utils/nearest.ts +1 -1
  1558. package/src/window-splitter/_window-splitter.scss +83 -112
  1559. package/src/window-splitter/useWindowSplitter.ts +12 -28
  1560. package/tsconfig.types.json +1 -1
  1561. package/dist/divider/VerticalDivider.d.ts +0 -32
  1562. package/dist/divider/VerticalDivider.js +0 -40
  1563. package/dist/divider/VerticalDivider.js.map +0 -1
  1564. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  1565. package/dist/divider/useVerticalDividerHeight.js +0 -40
  1566. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  1567. package/dist/form/SelectValue.d.ts +0 -17
  1568. package/dist/form/SelectValue.js +0 -32
  1569. package/dist/form/SelectValue.js.map +0 -1
  1570. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  1571. package/dist/icon/MaterialIconsProvider.js +0 -17
  1572. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  1573. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  1574. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  1575. package/dist/link/LinkProvider.d.ts +0 -29
  1576. package/dist/link/LinkProvider.js +0 -26
  1577. package/dist/link/LinkProvider.js.map +0 -1
  1578. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  1579. package/dist/tooltip/useOverflowTooltip.js +0 -71
  1580. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  1581. package/dist/utils/filters.d.ts +0 -196
  1582. package/dist/utils/filters.js +0 -67
  1583. package/dist/utils/filters.js.map +0 -1
  1584. package/src/divider/VerticalDivider.tsx +0 -50
  1585. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  1586. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  1587. package/src/divider/useVerticalDividerHeight.ts +0 -72
  1588. package/src/form/SelectValue.tsx +0 -39
  1589. package/src/icon/MaterialIconsProvider.ts +0 -23
  1590. package/src/link/LinkProvider.tsx +0 -51
  1591. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  1592. package/src/tooltip/useOverflowTooltip.ts +0 -93
  1593. package/src/utils/__tests__/filters.ts +0 -279
  1594. package/src/utils/filters.ts +0 -320
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sheet/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-sheet\");\n\n/**\n * The location that the sheet should be located within the viewport.\n */\nexport type SheetPosition = \"top\" | \"right\" | \"bottom\" | \"left\";\n\n/**\n * The size to use for sheets that have been positioned left or right. The\n * default supported values are:\n *\n * - none - the size is based on content, but is still limited to the viewport\n * width so that the horizontal scrolling will not occur within the page. No\n * limits added to sizing.\n * - touch - the `min-width` is set to be the entire viewport width minus a\n * touchable area and `max-width` is set to `20rem` and is normally\n * recommended for mobile devices.\n * - static - the width is set to a static `16rem` and generally used for\n * landscape tablets and desktops.\n * - media - automatically switches between \"touch\" and \"static\" based on css\n * media queries. (this is the default)\n */\nexport type SheetHorizontalSize = \"none\" | \"media\" | \"touch\" | \"static\";\n\n/**\n * The size to use for sheets that have been positioned top or bottom. The\n * supported sizes are:\n *\n * - none - the size is based on content and is limited to the viewport\n * height.\n * - touch - the size is based on content and is limited to the viewport\n * height with a touchable area to close the sheet.\n * - recommended - the material design recommended sizing that forces a\n * max-height of 50vh and min-height of 3.5rem\n */\nexport type SheetVerticalSize = \"none\" | \"touch\" | \"recommended\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface BaseSheetClassNameOptions {\n className?: string;\n\n /**\n * @defaultValue `\"left\"`\n */\n position?: SheetPosition;\n\n /**\n * @defaultValue `\"media\"`\n */\n horizontalSize?: SheetHorizontalSize;\n\n /**\n * @defaultValue `\"recommended\"`\n */\n verticalSize?: SheetVerticalSize;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface SheetClassNameOptions extends BaseSheetClassNameOptions {\n offscreen?: boolean;\n disableOverlay?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport function sheet(options: SheetClassNameOptions): string {\n const {\n position = \"left\",\n horizontalSize = \"media\",\n verticalSize = \"recommended\",\n offscreen = false,\n disableOverlay,\n className,\n } = options;\n const horizontal = position === \"left\" || position === \"right\";\n\n return cnb(\n styles({\n horizontal,\n vertical: !horizontal,\n raised: !disableOverlay,\n offscreen,\n [position]: true,\n \"media-width\": horizontal && horizontalSize === \"media\",\n \"touch-width\": horizontal && horizontalSize === \"touch\",\n \"static-width\": horizontal && horizontalSize === \"static\",\n \"viewport-height\": !horizontal && verticalSize === \"none\",\n \"touchable-height\": !horizontal && verticalSize === \"touch\",\n \"recommended-height\": !horizontal && verticalSize === \"recommended\",\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","sheet","options","position","horizontalSize","verticalSize","offscreen","disableOverlay","className","horizontal","vertical","raised"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAkEnB,2BAA2B,GAC3B,OAAO,SAASE,MAAMC,OAA8B;IAClD,MAAM,EACJC,WAAW,MAAM,EACjBC,iBAAiB,OAAO,EACxBC,eAAe,aAAa,EAC5BC,YAAY,KAAK,EACjBC,cAAc,EACdC,SAAS,EACV,GAAGN;IACJ,MAAMO,aAAaN,aAAa,UAAUA,aAAa;IAEvD,OAAOL,IACLE,OAAO;QACLS;QACAC,UAAU,CAACD;QACXE,QAAQ,CAACJ;QACTD;QACA,CAACH,SAAS,EAAE;QACZ,eAAeM,cAAcL,mBAAmB;QAChD,eAAeK,cAAcL,mBAAmB;QAChD,gBAAgBK,cAAcL,mBAAmB;QACjD,mBAAmB,CAACK,cAAcJ,iBAAiB;QACnD,oBAAoB,CAACI,cAAcJ,iBAAiB;QACpD,sBAAsB,CAACI,cAAcJ,iBAAiB;IACxD,IACAG;AAEJ"}
1
+ {"version":3,"sources":["../../src/sheet/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-sheet\");\n\n/**\n * The location that the sheet should be located within the viewport.\n */\nexport type SheetPosition = \"top\" | \"right\" | \"bottom\" | \"left\";\n\n/**\n * The size to use for sheets that have been positioned left or right. The\n * default supported values are:\n *\n * - `\"none\"` - the size is based on content, but is still limited to the\n * viewport width so that the horizontal scrolling will not occur within the\n * page. No limits added to sizing.\n * - `\"touch\"` - the `width` is set to be the entire viewport width minus a\n * touchable area and is normally recommended for mobile devices.\n * - `\"static\"` - the `width` is set to a static `16rem` and generally used for\n * landscape tablets and desktops.\n * - `\"media\"` - automatically switches between \"touch\" and \"static\" based on\n * css media queries. (this is the default)\n */\nexport type SheetHorizontalSize = \"none\" | \"media\" | \"touch\" | \"static\";\n\n/**\n * The size to use for sheets that have been positioned top or bottom. The\n * supported sizes are:\n *\n * - `\"none\"` - the size is based on content and is limited to the viewport\n * height\n * - `\"touch\"` - the size is based on content and is limited to the viewport\n * height minus a small touchable area\n * - `\"recommended\"` - the material design recommended sizing that forces a\n * `max-height` of 50vh and `min-height` of 3.5rem\n */\nexport type SheetVerticalSize = \"none\" | \"touch\" | \"recommended\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface BaseSheetClassNameOptions {\n className?: string;\n\n /**\n * @defaultValue `\"left\"`\n */\n position?: SheetPosition;\n\n /**\n * @defaultValue `\"media\"`\n */\n horizontalSize?: SheetHorizontalSize;\n\n /**\n * @defaultValue `\"recommended\"`\n */\n verticalSize?: SheetVerticalSize;\n}\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface SheetClassNameOptions extends BaseSheetClassNameOptions {\n offscreen?: boolean;\n disableOverlay?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport function sheet(options: SheetClassNameOptions): string {\n const {\n position = \"left\",\n horizontalSize = \"media\",\n verticalSize = \"recommended\",\n offscreen = false,\n disableOverlay,\n className,\n } = options;\n const horizontal = position === \"left\" || position === \"right\";\n\n return cnb(\n styles({\n horizontal,\n vertical: !horizontal,\n raised: !disableOverlay,\n offscreen,\n [position]: true,\n \"media-width\": horizontal && horizontalSize === \"media\",\n \"touch-width\": horizontal && horizontalSize === \"touch\",\n \"static-width\": horizontal && horizontalSize === \"static\",\n \"viewport-height\": !horizontal && verticalSize === \"none\",\n \"touchable-height\": !horizontal && verticalSize === \"touch\",\n \"recommended-height\": !horizontal && verticalSize === \"recommended\",\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","sheet","options","position","horizontalSize","verticalSize","offscreen","disableOverlay","className","horizontal","vertical","raised"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAiEnB,2BAA2B,GAC3B,OAAO,SAASE,MAAMC,OAA8B;IAClD,MAAM,EACJC,WAAW,MAAM,EACjBC,iBAAiB,OAAO,EACxBC,eAAe,aAAa,EAC5BC,YAAY,KAAK,EACjBC,cAAc,EACdC,SAAS,EACV,GAAGN;IACJ,MAAMO,aAAaN,aAAa,UAAUA,aAAa;IAEvD,OAAOL,IACLE,OAAO;QACLS;QACAC,UAAU,CAACD;QACXE,QAAQ,CAACJ;QACTD;QACA,CAACH,SAAS,EAAE;QACZ,eAAeM,cAAcL,mBAAmB;QAChD,eAAeK,cAAcL,mBAAmB;QAChD,gBAAgBK,cAAcL,mBAAmB;QACjD,mBAAmB,CAACK,cAAcJ,iBAAiB;QACnD,oBAAoB,CAACI,cAAcJ,iBAAiB;QACpD,sBAAsB,CAACI,cAAcJ,iBAAiB;IACxD,IACAG;AAEJ"}
@@ -28,7 +28,7 @@ const noop = ()=>{
28
28
  * @remarks \@since 6.0.0
29
29
  */ export function DefaultToastRenderer(props) {
30
30
  const { toastId, paused, visible, priority: _priority, duplicates: _duplicates, visibleTime, onExited = noop, onEntered = noop, onMouseEnter = noop, onMouseLeave = noop, toastDefaults = {}, ...remaining } = props;
31
- const { closeButtonProps, closeButton = !!closeButtonProps, onEntered: defaultEntered = noop, onExited: defaultExited = noop, onMouseEnter: defaultMouseEnter = noop, onMouseLeave: defaultMouseLeave = noop, ...defaults } = toastDefaults;
31
+ const { closeButtonProps, closeButton = !!closeButtonProps || !!remaining.closeButtonProps, onEntered: defaultEntered = noop, onExited: defaultExited = noop, onMouseEnter: defaultMouseEnter = noop, onMouseLeave: defaultMouseLeave = noop, ...defaults } = toastDefaults;
32
32
  const toastManager = useToastManager();
33
33
  const currentToastActions = useMemo(()=>({
34
34
  clearTimer () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/snackbar/DefaultToastRenderer.tsx"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo, type ReactElement } from \"react\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { Toast, type ConfigurableToastProps } from \"./Toast.js\";\nimport { type ToastMeta } from \"./ToastManager.js\";\nimport { useToastManager } from \"./ToastManagerProvider.js\";\nimport {\n CurrentToastActionsProvider,\n type CurrentToastActions,\n} from \"./useCurrentToastActions.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastRendererProps extends ConfigurableToastProps, ToastMeta {\n /**\n * Optional props that should be passed to each `Toast` from the `Snackbar`.\n * This is a great way to enforce each toast having a close button, a custom\n * class name, theme, etc.\n */\n toastDefaults?: ConfigurableToastProps;\n}\n\n/**\n * **Client Component**\n *\n * This is the default implementation for rendering toasts that will:\n *\n * - controls the visibility of the toast with the {@link useToast} hook\n * - add a `closeButton` if the {@link ToastRendererProps.toastDefaults} has\n * `closeButton === true` or the `closeButtonProps` exists.\n * - add a `closeButton` if the `visibleTime` is `null` and the current toast\n * does not have an `action` or `actionButton`\n * - ensures both the toast's `onEntered` and the {@link ToastRendererProps.toastDefaults}'s\n * `onEntered` are called\n * - ensures both the toast's `onExited` and the {@link ToastRendererProps.toastDefaults}'s\n * `onExited` are called\n * - always renders the {@link ToastRendererProps.toastDefaults}'s `children`\n * 'after the optional toast's `children`\n *\n * @remarks \\@since 6.0.0\n */\nexport function DefaultToastRenderer(props: ToastRendererProps): ReactElement {\n const {\n toastId,\n paused,\n visible,\n priority: _priority,\n duplicates: _duplicates,\n visibleTime,\n onExited = noop,\n onEntered = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n toastDefaults = {},\n ...remaining\n } = props;\n const {\n closeButtonProps,\n closeButton = !!closeButtonProps,\n onEntered: defaultEntered = noop,\n onExited: defaultExited = noop,\n onMouseEnter: defaultMouseEnter = noop,\n onMouseLeave: defaultMouseLeave = noop,\n ...defaults\n } = toastDefaults;\n\n const toastManager = useToastManager();\n const currentToastActions = useMemo<CurrentToastActions>(\n () => ({\n clearTimer() {\n toastManager.clearTimer(toastId);\n },\n removeToast(transition) {\n toastManager.removeToast(toastId, transition);\n },\n startRemoveTimeout() {\n toastManager.startRemoveTimeout(toastId);\n },\n pauseRemoveTimeout() {\n toastManager.pauseRemoveTimeout(toastId);\n },\n resumeRemoveTimeout() {\n toastManager.resumeRemoveTimeout(toastId);\n },\n }),\n [toastId, toastManager]\n );\n useEffect(() => {\n return () => {\n currentToastActions.clearTimer();\n };\n }, [currentToastActions]);\n usePageInactive({\n disabled: !visible,\n onChange(active) {\n if (active) {\n currentToastActions.resumeRemoveTimeout();\n } else {\n currentToastActions.pauseRemoveTimeout();\n }\n },\n });\n\n return (\n <CurrentToastActionsProvider value={currentToastActions}>\n <Toast\n closeButton={\n closeButton ||\n (!visibleTime && !remaining.action && !remaining.actionButton)\n }\n closeButtonProps={closeButtonProps}\n {...defaults}\n {...remaining}\n paused={paused}\n visible={visible}\n onEntered={(appearing) => {\n defaultEntered(appearing);\n onEntered(appearing);\n currentToastActions.startRemoveTimeout();\n }}\n onExited={() => {\n defaultExited();\n onExited();\n currentToastActions.removeToast(false);\n }}\n onMouseEnter={(event) => {\n defaultMouseEnter(event);\n onMouseEnter(event);\n currentToastActions.pauseRemoveTimeout();\n }}\n onMouseLeave={(event) => {\n defaultMouseLeave(event);\n onMouseLeave(event);\n currentToastActions.resumeRemoveTimeout();\n }}\n >\n {defaults.children}\n {remaining.children}\n </Toast>\n </CurrentToastActionsProvider>\n );\n}\n"],"names":["useEffect","useMemo","usePageInactive","Toast","useToastManager","CurrentToastActionsProvider","noop","DefaultToastRenderer","props","toastId","paused","visible","priority","_priority","duplicates","_duplicates","visibleTime","onExited","onEntered","onMouseEnter","onMouseLeave","toastDefaults","remaining","closeButtonProps","closeButton","defaultEntered","defaultExited","defaultMouseEnter","defaultMouseLeave","defaults","toastManager","currentToastActions","clearTimer","removeToast","transition","startRemoveTimeout","pauseRemoveTimeout","resumeRemoveTimeout","disabled","onChange","active","value","action","actionButton","appearing","event","children"],"mappings":"AAAA;;AACA,SAASA,SAAS,EAAEC,OAAO,QAA2B,QAAQ;AAC9D,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,KAAK,QAAqC,aAAa;AAEhE,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SACEC,2BAA2B,QAEtB,8BAA8B;AAErC,MAAMC,OAAO;AACX,aAAa;AACf;AAcA;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,qBAAqBC,KAAyB;IAC5D,MAAM,EACJC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,UAAUC,SAAS,EACnBC,YAAYC,WAAW,EACvBC,WAAW,EACXC,WAAWX,IAAI,EACfY,YAAYZ,IAAI,EAChBa,eAAeb,IAAI,EACnBc,eAAed,IAAI,EACnBe,gBAAgB,CAAC,CAAC,EAClB,GAAGC,WACJ,GAAGd;IACJ,MAAM,EACJe,gBAAgB,EAChBC,cAAc,CAAC,CAACD,gBAAgB,EAChCL,WAAWO,iBAAiBnB,IAAI,EAChCW,UAAUS,gBAAgBpB,IAAI,EAC9Ba,cAAcQ,oBAAoBrB,IAAI,EACtCc,cAAcQ,oBAAoBtB,IAAI,EACtC,GAAGuB,UACJ,GAAGR;IAEJ,MAAMS,eAAe1B;IACrB,MAAM2B,sBAAsB9B,QAC1B,IAAO,CAAA;YACL+B;gBACEF,aAAaE,UAAU,CAACvB;YAC1B;YACAwB,aAAYC,UAAU;gBACpBJ,aAAaG,WAAW,CAACxB,SAASyB;YACpC;YACAC;gBACEL,aAAaK,kBAAkB,CAAC1B;YAClC;YACA2B;gBACEN,aAAaM,kBAAkB,CAAC3B;YAClC;YACA4B;gBACEP,aAAaO,mBAAmB,CAAC5B;YACnC;QACF,CAAA,GACA;QAACA;QAASqB;KAAa;IAEzB9B,UAAU;QACR,OAAO;YACL+B,oBAAoBC,UAAU;QAChC;IACF,GAAG;QAACD;KAAoB;IACxB7B,gBAAgB;QACdoC,UAAU,CAAC3B;QACX4B,UAASC,MAAM;YACb,IAAIA,QAAQ;gBACVT,oBAAoBM,mBAAmB;YACzC,OAAO;gBACLN,oBAAoBK,kBAAkB;YACxC;QACF;IACF;IAEA,qBACE,KAAC/B;QAA4BoC,OAAOV;kBAClC,cAAA,MAAC5B;YACCqB,aACEA,eACC,CAACR,eAAe,CAACM,UAAUoB,MAAM,IAAI,CAACpB,UAAUqB,YAAY;YAE/DpB,kBAAkBA;YACjB,GAAGM,QAAQ;YACX,GAAGP,SAAS;YACbZ,QAAQA;YACRC,SAASA;YACTO,WAAW,CAAC0B;gBACVnB,eAAemB;gBACf1B,UAAU0B;gBACVb,oBAAoBI,kBAAkB;YACxC;YACAlB,UAAU;gBACRS;gBACAT;gBACAc,oBAAoBE,WAAW,CAAC;YAClC;YACAd,cAAc,CAAC0B;gBACblB,kBAAkBkB;gBAClB1B,aAAa0B;gBACbd,oBAAoBK,kBAAkB;YACxC;YACAhB,cAAc,CAACyB;gBACbjB,kBAAkBiB;gBAClBzB,aAAayB;gBACbd,oBAAoBM,mBAAmB;YACzC;;gBAECR,SAASiB,QAAQ;gBACjBxB,UAAUwB,QAAQ;;;;AAI3B"}
1
+ {"version":3,"sources":["../../src/snackbar/DefaultToastRenderer.tsx"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo, type ReactElement } from \"react\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { Toast, type ConfigurableToastProps } from \"./Toast.js\";\nimport { type ToastMeta } from \"./ToastManager.js\";\nimport { useToastManager } from \"./ToastManagerProvider.js\";\nimport {\n CurrentToastActionsProvider,\n type CurrentToastActions,\n} from \"./useCurrentToastActions.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastRendererProps extends ConfigurableToastProps, ToastMeta {\n /**\n * Optional props that should be passed to each `Toast` from the `Snackbar`.\n * This is a great way to enforce each toast having a close button, a custom\n * class name, theme, etc.\n */\n toastDefaults?: ConfigurableToastProps;\n}\n\n/**\n * **Client Component**\n *\n * This is the default implementation for rendering toasts that will:\n *\n * - controls the visibility of the toast with the {@link useToast} hook\n * - add a `closeButton` if the {@link ToastRendererProps.toastDefaults} has\n * `closeButton === true` or the `closeButtonProps` exists.\n * - add a `closeButton` if the `visibleTime` is `null` and the current toast\n * does not have an `action` or `actionButton`\n * - ensures both the toast's `onEntered` and the {@link ToastRendererProps.toastDefaults}'s\n * `onEntered` are called\n * - ensures both the toast's `onExited` and the {@link ToastRendererProps.toastDefaults}'s\n * `onExited` are called\n * - always renders the {@link ToastRendererProps.toastDefaults}'s `children`\n * 'after the optional toast's `children`\n *\n * @remarks \\@since 6.0.0\n */\nexport function DefaultToastRenderer(props: ToastRendererProps): ReactElement {\n const {\n toastId,\n paused,\n visible,\n priority: _priority,\n duplicates: _duplicates,\n visibleTime,\n onExited = noop,\n onEntered = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n toastDefaults = {},\n ...remaining\n } = props;\n const {\n closeButtonProps,\n closeButton = !!closeButtonProps || !!remaining.closeButtonProps,\n onEntered: defaultEntered = noop,\n onExited: defaultExited = noop,\n onMouseEnter: defaultMouseEnter = noop,\n onMouseLeave: defaultMouseLeave = noop,\n ...defaults\n } = toastDefaults;\n\n const toastManager = useToastManager();\n const currentToastActions = useMemo<CurrentToastActions>(\n () => ({\n clearTimer() {\n toastManager.clearTimer(toastId);\n },\n removeToast(transition) {\n toastManager.removeToast(toastId, transition);\n },\n startRemoveTimeout() {\n toastManager.startRemoveTimeout(toastId);\n },\n pauseRemoveTimeout() {\n toastManager.pauseRemoveTimeout(toastId);\n },\n resumeRemoveTimeout() {\n toastManager.resumeRemoveTimeout(toastId);\n },\n }),\n [toastId, toastManager]\n );\n useEffect(() => {\n return () => {\n currentToastActions.clearTimer();\n };\n }, [currentToastActions]);\n usePageInactive({\n disabled: !visible,\n onChange(active) {\n if (active) {\n currentToastActions.resumeRemoveTimeout();\n } else {\n currentToastActions.pauseRemoveTimeout();\n }\n },\n });\n\n return (\n <CurrentToastActionsProvider value={currentToastActions}>\n <Toast\n closeButton={\n closeButton ||\n (!visibleTime && !remaining.action && !remaining.actionButton)\n }\n closeButtonProps={closeButtonProps}\n {...defaults}\n {...remaining}\n paused={paused}\n visible={visible}\n onEntered={(appearing) => {\n defaultEntered(appearing);\n onEntered(appearing);\n currentToastActions.startRemoveTimeout();\n }}\n onExited={() => {\n defaultExited();\n onExited();\n currentToastActions.removeToast(false);\n }}\n onMouseEnter={(event) => {\n defaultMouseEnter(event);\n onMouseEnter(event);\n currentToastActions.pauseRemoveTimeout();\n }}\n onMouseLeave={(event) => {\n defaultMouseLeave(event);\n onMouseLeave(event);\n currentToastActions.resumeRemoveTimeout();\n }}\n >\n {defaults.children}\n {remaining.children}\n </Toast>\n </CurrentToastActionsProvider>\n );\n}\n"],"names":["useEffect","useMemo","usePageInactive","Toast","useToastManager","CurrentToastActionsProvider","noop","DefaultToastRenderer","props","toastId","paused","visible","priority","_priority","duplicates","_duplicates","visibleTime","onExited","onEntered","onMouseEnter","onMouseLeave","toastDefaults","remaining","closeButtonProps","closeButton","defaultEntered","defaultExited","defaultMouseEnter","defaultMouseLeave","defaults","toastManager","currentToastActions","clearTimer","removeToast","transition","startRemoveTimeout","pauseRemoveTimeout","resumeRemoveTimeout","disabled","onChange","active","value","action","actionButton","appearing","event","children"],"mappings":"AAAA;;AACA,SAASA,SAAS,EAAEC,OAAO,QAA2B,QAAQ;AAC9D,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,KAAK,QAAqC,aAAa;AAEhE,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SACEC,2BAA2B,QAEtB,8BAA8B;AAErC,MAAMC,OAAO;AACX,aAAa;AACf;AAcA;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,qBAAqBC,KAAyB;IAC5D,MAAM,EACJC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,UAAUC,SAAS,EACnBC,YAAYC,WAAW,EACvBC,WAAW,EACXC,WAAWX,IAAI,EACfY,YAAYZ,IAAI,EAChBa,eAAeb,IAAI,EACnBc,eAAed,IAAI,EACnBe,gBAAgB,CAAC,CAAC,EAClB,GAAGC,WACJ,GAAGd;IACJ,MAAM,EACJe,gBAAgB,EAChBC,cAAc,CAAC,CAACD,oBAAoB,CAAC,CAACD,UAAUC,gBAAgB,EAChEL,WAAWO,iBAAiBnB,IAAI,EAChCW,UAAUS,gBAAgBpB,IAAI,EAC9Ba,cAAcQ,oBAAoBrB,IAAI,EACtCc,cAAcQ,oBAAoBtB,IAAI,EACtC,GAAGuB,UACJ,GAAGR;IAEJ,MAAMS,eAAe1B;IACrB,MAAM2B,sBAAsB9B,QAC1B,IAAO,CAAA;YACL+B;gBACEF,aAAaE,UAAU,CAACvB;YAC1B;YACAwB,aAAYC,UAAU;gBACpBJ,aAAaG,WAAW,CAACxB,SAASyB;YACpC;YACAC;gBACEL,aAAaK,kBAAkB,CAAC1B;YAClC;YACA2B;gBACEN,aAAaM,kBAAkB,CAAC3B;YAClC;YACA4B;gBACEP,aAAaO,mBAAmB,CAAC5B;YACnC;QACF,CAAA,GACA;QAACA;QAASqB;KAAa;IAEzB9B,UAAU;QACR,OAAO;YACL+B,oBAAoBC,UAAU;QAChC;IACF,GAAG;QAACD;KAAoB;IACxB7B,gBAAgB;QACdoC,UAAU,CAAC3B;QACX4B,UAASC,MAAM;YACb,IAAIA,QAAQ;gBACVT,oBAAoBM,mBAAmB;YACzC,OAAO;gBACLN,oBAAoBK,kBAAkB;YACxC;QACF;IACF;IAEA,qBACE,KAAC/B;QAA4BoC,OAAOV;kBAClC,cAAA,MAAC5B;YACCqB,aACEA,eACC,CAACR,eAAe,CAACM,UAAUoB,MAAM,IAAI,CAACpB,UAAUqB,YAAY;YAE/DpB,kBAAkBA;YACjB,GAAGM,QAAQ;YACX,GAAGP,SAAS;YACbZ,QAAQA;YACRC,SAASA;YACTO,WAAW,CAAC0B;gBACVnB,eAAemB;gBACf1B,UAAU0B;gBACVb,oBAAoBI,kBAAkB;YACxC;YACAlB,UAAU;gBACRS;gBACAT;gBACAc,oBAAoBE,WAAW,CAAC;YAClC;YACAd,cAAc,CAAC0B;gBACblB,kBAAkBkB;gBAClB1B,aAAa0B;gBACbd,oBAAoBK,kBAAkB;YACxC;YACAhB,cAAc,CAACyB;gBACbjB,kBAAkBiB;gBAClBzB,aAAayB;gBACbd,oBAAoBM,mBAAmB;YACzC;;gBAECR,SAASiB,QAAQ;gBACjBxB,UAAUwB,QAAQ;;;;AAI3B"}
@@ -1,4 +1,4 @@
1
- import { type AriaRole, type ComponentType, type HTMLAttributes } from "react";
1
+ import { type ComponentType, type HTMLAttributes } from "react";
2
2
  import { type ToastRendererProps } from "./DefaultToastRenderer.js";
3
3
  import { type ConfigurableToastProps } from "./Toast.js";
4
4
  import { type SnackbarPosition } from "./snackbarStyles.js";
@@ -6,12 +6,8 @@ import { type SnackbarPosition } from "./snackbarStyles.js";
6
6
  * @remarks \@since 6.0.0 The `id` prop is optional
7
7
  */
8
8
  export interface SnackbarProps extends HTMLAttributes<HTMLDivElement> {
9
- /**
10
- * @defaultValue `"snackbar-" + useId()`
11
- */
9
+ /** @defaultValue `"snackbar-" + useId()` */
12
10
  id?: string;
13
- /** @defaultValue `"status"` */
14
- role?: AriaRole;
15
11
  /**
16
12
  * Set this to the number of toasts that can be visible within the snackbar at
17
13
  * the same time. Any toasts added after this value will be added into the
@@ -21,12 +17,16 @@ export interface SnackbarProps extends HTMLAttributes<HTMLDivElement> {
21
17
  */
22
18
  limit?: number;
23
19
  /**
24
- * @defaultValue `"bottom"`
25
- */
26
- position?: SnackbarPosition;
27
- /**
20
+ * Set this to `true` if the snackbar should use absolute positioning so it
21
+ * can be fixed within a `position: relative` container instead of the entire
22
+ * viewport.
23
+ *
28
24
  * @defaultValue `false`
29
25
  */
26
+ absolute?: boolean;
27
+ /** @defaultValue `"bottom"` */
28
+ position?: SnackbarPosition;
29
+ /** @defaultValue `false` */
30
30
  disablePortal?: boolean;
31
31
  /**
32
32
  * This can be used to create a custom toast implementation.
@@ -37,17 +37,17 @@ import { snackbar } from "./snackbarStyles.js";
37
37
  * @remarks \@since 6.0.0 Rewritten to use a new API that supports adding toasts
38
38
  * outside of React components and rendering multiple toasts at once.
39
39
  */ export const Snackbar = /*#__PURE__*/ forwardRef(function Snackbar(props, ref) {
40
- const { id: propId, role = "status", className, limit = 1, position = "bottom", renderToast: RenderToast = DefaultToastRenderer, disablePortal, toastDefaults, ...remaining } = props;
40
+ const { id: propId, className, limit = 1, absolute, position = "bottom", renderToast: RenderToast = DefaultToastRenderer, disablePortal, toastDefaults, ...remaining } = props;
41
41
  const id = useEnsuredId(propId, "snackbar");
42
42
  const queue = useToastQueue(limit);
43
43
  return /*#__PURE__*/ _jsx(Portal, {
44
44
  disabled: disablePortal,
45
- children: /*#__PURE__*/ _jsx("div", {
45
+ children: queue.length > 0 && /*#__PURE__*/ _jsx("div", {
46
46
  ...remaining,
47
47
  id: id,
48
48
  ref: ref,
49
- role: role,
50
49
  className: snackbar({
50
+ absolute,
51
51
  position,
52
52
  className
53
53
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/snackbar/Snackbar.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type AriaRole,\n type ComponentType,\n type HTMLAttributes,\n} from \"react\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n DefaultToastRenderer,\n type ToastRendererProps,\n} from \"./DefaultToastRenderer.js\";\nimport { type ConfigurableToastProps } from \"./Toast.js\";\nimport { useToastQueue } from \"./ToastManagerProvider.js\";\nimport { snackbar, type SnackbarPosition } from \"./snackbarStyles.js\";\n\n/**\n * @remarks \\@since 6.0.0 The `id` prop is optional\n */\nexport interface SnackbarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * @defaultValue `\"snackbar-\" + useId()`\n */\n id?: string;\n\n /** @defaultValue `\"status\"` */\n role?: AriaRole;\n\n /**\n * Set this to the number of toasts that can be visible within the snackbar at\n * the same time. Any toasts added after this value will be added into the\n * queue to be shown.\n *\n * @defaultValue `1`\n */\n limit?: number;\n\n /**\n * @defaultValue `\"bottom\"`\n */\n position?: SnackbarPosition;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * This can be used to create a custom toast implementation.\n *\n * @example\n * ```ts\n * import type { ToastRendererProps } from \"@react-md/core\";\n * import {\n * Snackbar,\n * Toast,\n * ToastContent,\n * useToastManager,\n * } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function CustomToast(props: CustomToastRendererProps): ReactElement {\n * // Pretend like we don't need anything else from the toast since the\n * // custom behavior is related to the `toastId`\n * const { toastId, visible, duplicates, visibleTime } = props;\n *\n * const toastManager = useToastManager();\n *\n * // Note: If you want to rely on the `action` and `closeButton` behavior,\n * // you must also wrap the `Toast` with:\n * // <RemoveToastProvider value={() => toastManager.removeToast(toastId, true)}>\n *\n * return (\n * <Toast\n * theme={isError(toastId) ? \"error\" : \"surface\"}\n * visible={visible}\n * onEntered={() => {\n * toastManager.startRemoveTimeout(toastId);\n * }}\n * onExited={() => {\n * toastManager.removeToast(toastId, false)\n * }}\n * disableContentWrapper\n * >\n * <ToastContent>\n * <TranslateMessage id={toastId} />\n * </ToastContent>\n * {isActionable(toastId) && (\n * <Button\n * onClick={async () => {\n * await someApiCall();\n * toastManager.removeToast(toastId, true);\n * }}\n * >\n * Dismiss\n * </Button>\n * )}\n * </Toast>\n * );\n * }\n *\n * function Example(): ReactElement {\n * return <Snackbar renderToast={CustomToast} />\n * }\n * ```\n *\n * @see {@link DefaultToastRenderer}\n * @defaultValue `DefaultToastRenderer`\n */\n renderToast?: ComponentType<ToastRendererProps>;\n\n /**\n * Optional props that should be passed to each `Toast` from the `Snackbar`.\n * This is a great way to enforce each toast having a close button, a custom\n * class name, theme, etc.\n *\n * @see {@link DefaultToastRenderer}\n */\n toastDefaults?: ConfigurableToastProps;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Super SImple Example\n * ```tsx\n * import { Button, Snackbar, addToast } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <>\n * <Button\n * onClick={() => {\n * addToast({ children: \"A new toast!\" });\n * }}\n * >\n * Toast!\n * </Button>\n * <Snackbar />\n * </>\n * );\n * }\n * ```\n *\n * @see {@link SnackbarProps.renderToast} for creating a custom toast\n * implementation.\n * @remarks \\@since 6.0.0 Rewritten to use a new API that supports adding toasts\n * outside of React components and rendering multiple toasts at once.\n */\nexport const Snackbar = forwardRef<HTMLDivElement, SnackbarProps>(\n function Snackbar(props, ref) {\n const {\n id: propId,\n role = \"status\",\n className,\n limit = 1,\n position = \"bottom\",\n renderToast: RenderToast = DefaultToastRenderer,\n disablePortal,\n toastDefaults,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"snackbar\");\n const queue = useToastQueue(limit);\n\n return (\n <Portal disabled={disablePortal}>\n <div\n {...remaining}\n id={id}\n ref={ref}\n role={role}\n className={snackbar({ position, className })}\n >\n {queue.map((toast) => (\n <RenderToast\n {...toast}\n key={toast.toastId}\n toastDefaults={toastDefaults}\n />\n ))}\n </div>\n </Portal>\n );\n }\n);\n"],"names":["forwardRef","Portal","useEnsuredId","DefaultToastRenderer","useToastQueue","snackbar","Snackbar","props","ref","id","propId","role","className","limit","position","renderToast","RenderToast","disablePortal","toastDefaults","remaining","queue","disabled","div","map","toast","key","toastId"],"mappings":"AAAA;;;AACA,SACEA,UAAU,QAIL,QAAQ;AACf,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SACEC,oBAAoB,QAEf,4BAA4B;AAEnC,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAA+B,sBAAsB;AA2GtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,GACD,OAAO,MAAMC,yBAAWN,WACtB,SAASM,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,QAAQ,EACfC,SAAS,EACTC,QAAQ,CAAC,EACTC,WAAW,QAAQ,EACnBC,aAAaC,cAAcb,oBAAoB,EAC/Cc,aAAa,EACbC,aAAa,EACb,GAAGC,WACJ,GAAGZ;IACJ,MAAME,KAAKP,aAAaQ,QAAQ;IAChC,MAAMU,QAAQhB,cAAcS;IAE5B,qBACE,KAACZ;QAAOoB,UAAUJ;kBAChB,cAAA,KAACK;YACE,GAAGH,SAAS;YACbV,IAAIA;YACJD,KAAKA;YACLG,MAAMA;YACNC,WAAWP,SAAS;gBAAES;gBAAUF;YAAU;sBAEzCQ,MAAMG,GAAG,CAAC,CAACC,sBACV,eAACR;oBACE,GAAGQ,KAAK;oBACTC,KAAKD,MAAME,OAAO;oBAClBR,eAAeA;;;;AAM3B,GACA"}
1
+ {"version":3,"sources":["../../src/snackbar/Snackbar.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type ComponentType, type HTMLAttributes } from \"react\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n DefaultToastRenderer,\n type ToastRendererProps,\n} from \"./DefaultToastRenderer.js\";\nimport { type ConfigurableToastProps } from \"./Toast.js\";\nimport { useToastQueue } from \"./ToastManagerProvider.js\";\nimport { snackbar, type SnackbarPosition } from \"./snackbarStyles.js\";\n\n/**\n * @remarks \\@since 6.0.0 The `id` prop is optional\n */\nexport interface SnackbarProps extends HTMLAttributes<HTMLDivElement> {\n /** @defaultValue `\"snackbar-\" + useId()` */\n id?: string;\n\n /**\n * Set this to the number of toasts that can be visible within the snackbar at\n * the same time. Any toasts added after this value will be added into the\n * queue to be shown.\n *\n * @defaultValue `1`\n */\n limit?: number;\n\n /**\n * Set this to `true` if the snackbar should use absolute positioning so it\n * can be fixed within a `position: relative` container instead of the entire\n * viewport.\n *\n * @defaultValue `false`\n */\n absolute?: boolean;\n\n /** @defaultValue `\"bottom\"` */\n position?: SnackbarPosition;\n\n /** @defaultValue `false` */\n disablePortal?: boolean;\n\n /**\n * This can be used to create a custom toast implementation.\n *\n * @example\n * ```ts\n * import type { ToastRendererProps } from \"@react-md/core\";\n * import {\n * Snackbar,\n * Toast,\n * ToastContent,\n * useToastManager,\n * } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function CustomToast(props: CustomToastRendererProps): ReactElement {\n * // Pretend like we don't need anything else from the toast since the\n * // custom behavior is related to the `toastId`\n * const { toastId, visible, duplicates, visibleTime } = props;\n *\n * const toastManager = useToastManager();\n *\n * // Note: If you want to rely on the `action` and `closeButton` behavior,\n * // you must also wrap the `Toast` with:\n * // <RemoveToastProvider value={() => toastManager.removeToast(toastId, true)}>\n *\n * return (\n * <Toast\n * theme={isError(toastId) ? \"error\" : \"surface\"}\n * visible={visible}\n * onEntered={() => {\n * toastManager.startRemoveTimeout(toastId);\n * }}\n * onExited={() => {\n * toastManager.removeToast(toastId, false)\n * }}\n * disableContentWrapper\n * >\n * <ToastContent>\n * <TranslateMessage id={toastId} />\n * </ToastContent>\n * {isActionable(toastId) && (\n * <Button\n * onClick={async () => {\n * await someApiCall();\n * toastManager.removeToast(toastId, true);\n * }}\n * >\n * Dismiss\n * </Button>\n * )}\n * </Toast>\n * );\n * }\n *\n * function Example(): ReactElement {\n * return <Snackbar renderToast={CustomToast} />\n * }\n * ```\n *\n * @see {@link DefaultToastRenderer}\n * @defaultValue `DefaultToastRenderer`\n */\n renderToast?: ComponentType<ToastRendererProps>;\n\n /**\n * Optional props that should be passed to each `Toast` from the `Snackbar`.\n * This is a great way to enforce each toast having a close button, a custom\n * class name, theme, etc.\n *\n * @see {@link DefaultToastRenderer}\n */\n toastDefaults?: ConfigurableToastProps;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Super SImple Example\n * ```tsx\n * import { Button, Snackbar, addToast } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <>\n * <Button\n * onClick={() => {\n * addToast({ children: \"A new toast!\" });\n * }}\n * >\n * Toast!\n * </Button>\n * <Snackbar />\n * </>\n * );\n * }\n * ```\n *\n * @see {@link SnackbarProps.renderToast} for creating a custom toast\n * implementation.\n * @remarks \\@since 6.0.0 Rewritten to use a new API that supports adding toasts\n * outside of React components and rendering multiple toasts at once.\n */\nexport const Snackbar = forwardRef<HTMLDivElement, SnackbarProps>(\n function Snackbar(props, ref) {\n const {\n id: propId,\n className,\n limit = 1,\n absolute,\n position = \"bottom\",\n renderToast: RenderToast = DefaultToastRenderer,\n disablePortal,\n toastDefaults,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"snackbar\");\n const queue = useToastQueue(limit);\n\n return (\n <Portal disabled={disablePortal}>\n {queue.length > 0 && (\n <div\n {...remaining}\n id={id}\n ref={ref}\n className={snackbar({ absolute, position, className })}\n >\n {queue.map((toast) => (\n <RenderToast\n {...toast}\n key={toast.toastId}\n toastDefaults={toastDefaults}\n />\n ))}\n </div>\n )}\n </Portal>\n );\n }\n);\n"],"names":["forwardRef","Portal","useEnsuredId","DefaultToastRenderer","useToastQueue","snackbar","Snackbar","props","ref","id","propId","className","limit","absolute","position","renderToast","RenderToast","disablePortal","toastDefaults","remaining","queue","disabled","length","div","map","toast","key","toastId"],"mappings":"AAAA;;;AACA,SAASA,UAAU,QAAiD,QAAQ;AAC5E,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SACEC,oBAAoB,QAEf,4BAA4B;AAEnC,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAA+B,sBAAsB;AA2GtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,GACD,OAAO,MAAMC,yBAAWN,WACtB,SAASM,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,SAAS,EACTC,QAAQ,CAAC,EACTC,QAAQ,EACRC,WAAW,QAAQ,EACnBC,aAAaC,cAAcb,oBAAoB,EAC/Cc,aAAa,EACbC,aAAa,EACb,GAAGC,WACJ,GAAGZ;IACJ,MAAME,KAAKP,aAAaQ,QAAQ;IAChC,MAAMU,QAAQhB,cAAcQ;IAE5B,qBACE,KAACX;QAAOoB,UAAUJ;kBACfG,MAAME,MAAM,GAAG,mBACd,KAACC;YACE,GAAGJ,SAAS;YACbV,IAAIA;YACJD,KAAKA;YACLG,WAAWN,SAAS;gBAAEQ;gBAAUC;gBAAUH;YAAU;sBAEnDS,MAAMI,GAAG,CAAC,CAACC,sBACV,eAACT;oBACE,GAAGS,KAAK;oBACTC,KAAKD,MAAME,OAAO;oBAClBT,eAAeA;;;;AAO7B,GACA"}
@@ -17,7 +17,7 @@ export interface ConfigurableToastProps extends HTMLAttributes<HTMLDivElement>,
17
17
  /**
18
18
  * Note: This is set while creating the toast.
19
19
  *
20
- * @defaultValue `visibleTime === null ? "alert" : undefined`
20
+ * @defaultValue `visibleTime === null ? "alert" : "status"`
21
21
  */
22
22
  role?: AriaRole;
23
23
  /**
@@ -15,7 +15,7 @@ import { toast } from "./toastStyles.js";
15
15
  *
16
16
  * @remarks \@since 6.0.0
17
17
  */ export const Toast = /*#__PURE__*/ forwardRef(function Toast(props, ref) {
18
- const { id: propId, className, timeout, classNames, theme = "surface", action: propAction, actionButton: propActionButton, paused, visible, closeIcon, closeButtonProps, closeButton = !!closeButtonProps, contentProps, disableToastContent, stacked, multiline, onEnter, onEntering, onEntered, onExit, onExiting, onExited, children, ...remaining } = props;
18
+ const { id: propId, className, timeout, classNames, theme = "surface", action: propAction, actionButton: propActionButton, paused, visible, closeIcon: propCloseIcon, closeButtonProps, closeButton = !!closeButtonProps, contentProps, disableToastContent, stacked, multiline, onEnter, onEntering, onEntered, onExit, onExiting, onExited, children, ...remaining } = props;
19
19
  const id = useEnsuredId(propId, "toast");
20
20
  let actionButton = propActionButton;
21
21
  if (propAction) {
@@ -35,6 +35,10 @@ import { toast } from "./toastStyles.js";
35
35
  children: buttonChildren
36
36
  });
37
37
  }
38
+ let closeIcon = propCloseIcon;
39
+ if (typeof closeButtonProps?.children !== "undefined") {
40
+ closeIcon = closeButtonProps.children;
41
+ }
38
42
  const action = !!actionButton;
39
43
  const reordered = stacked && action && closeButton;
40
44
  const { elementProps, rendered } = useScaleTransition({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/snackbar/Toast.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n isValidElement,\n type AriaRole,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type ButtonProps } from \"../button/Button.js\";\nimport { type BackgroundColor } from \"../cssUtils.js\";\nimport {\n type CSSTransitionClassNames,\n type TransitionCallbacks,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useScaleTransition } from \"../transition/useScaleTransition.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { ToastActionButton } from \"./ToastActionButton.js\";\nimport { ToastCloseButton } from \"./ToastCloseButton.js\";\nimport { ToastContent, type ToastContentProps } from \"./ToastContent.js\";\nimport { toast } from \"./toastStyles.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ConfigurableToastProps\n extends HTMLAttributes<HTMLDivElement>,\n TransitionCallbacks {\n /**\n * Note: this default value will only be generated in the `Toast` component.\n *\n * @defaultValue `\"toast-\" + useId()`\n */\n id?: string;\n\n /**\n * Note: This is set while creating the toast.\n *\n * @defaultValue `visibleTime === null ? \"alert\" : undefined`\n */\n role?: AriaRole;\n\n /**\n * @defaultValue `\"surface\"`\n */\n theme?: BackgroundColor;\n\n /**\n * Set this to `true` to stack the content above the {@link action}. It is not\n * recommended to enable this prop if the {@link closeButton} is enabled.\n *\n * @defaultValue `false`\n */\n stacked?: boolean;\n\n /**\n * If this is not provided, a `ResizeObserver` will be used to determine if\n * there are multiple lines of content.\n */\n multiline?: boolean;\n\n /**\n * When this is a string or React element, it will be rendered as the\n * `children` within a `Button`\n */\n action?: ButtonProps | ReactElement | string;\n\n /**\n * This can be used to replace the custom action button behavior.\n */\n actionButton?: ReactNode;\n\n /**\n * @defaultValue `getIcon(\"close\")`\n */\n closeIcon?: ReactNode;\n\n /**\n * Set this to `true` if a close button should be rendered to the right of the\n * `children`.\n *\n * @defaultValue `!!closeButtonProps`\n */\n closeButton?: boolean;\n\n /**\n * Use this prop to override most of the close button behavior. The\n */\n closeButtonProps?: ButtonProps;\n\n /**\n * Any additional props that should be provided to the `<div>` that surrounds\n * the toast `children`.\n */\n contentProps?: PropsWithRef<ToastContentProps, HTMLDivElement>;\n\n /**\n * Set this to `true` if the `children` for the toast should no longer be\n * wrapped in an additional `<div>` that applies some toast layout styles.\n * This should normally only be used for custom `Toast` implementations.\n *\n * @see the `Snackbar`'s `renderToast` prop for an example.\n */\n disableToastContent?: boolean;\n\n /**\n * The toast's transition timeout for entering and exiting. This is **not**\n * how long the toast should remain visible.\n *\n * @defaultValue `SCALE_TIMEOUT`\n */\n timeout?: TransitionTimeout;\n\n /**\n * The toast's transition class names for entering and exiting.\n *\n * @defaultValue `SCALE_CLASSNAMES`\n */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastProps extends ConfigurableToastProps {\n paused?: boolean;\n visible: boolean;\n}\n\n/**\n * **Client Component**\n *\n * This component is just used for toast styling and does not implement any of\n * the visibility behavior.\n *\n * @remarks \\@since 6.0.0\n */\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n function Toast(props, ref) {\n const {\n id: propId,\n className,\n timeout,\n classNames,\n theme = \"surface\",\n action: propAction,\n actionButton: propActionButton,\n paused,\n visible,\n closeIcon,\n closeButtonProps,\n closeButton = !!closeButtonProps,\n contentProps,\n disableToastContent,\n stacked,\n multiline,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n children,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"toast\");\n\n let actionButton = propActionButton;\n if (propAction) {\n let overrides: ButtonProps = {};\n let buttonChildren: ReactNode;\n // have to use `any` to correctly filter out all react elements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isValidElement<any>(propAction) || typeof propAction !== \"object\") {\n buttonChildren = propAction;\n } else {\n ({ children: buttonChildren, ...overrides } = propAction);\n }\n\n actionButton = (\n <ToastActionButton\n theme={theme === \"surface\" ? \"secondary\" : \"clear\"}\n reordered={stacked && closeButton}\n {...overrides}\n >\n {buttonChildren}\n </ToastActionButton>\n );\n }\n\n const action = !!actionButton;\n const reordered = stacked && action && closeButton;\n const { elementProps, rendered } = useScaleTransition({\n appear: true,\n nodeRef: ref,\n className: toast({\n className,\n theme,\n action,\n paused,\n stacked,\n reordered,\n closeButton,\n }),\n timeout,\n classNames,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n temporary: true,\n transitionIn: visible,\n exitedHidden: true,\n });\n\n // this might get rid of the weird popping-back-in for a split second\n // that sometimes happens on mobile firefox\n if (!rendered) {\n return null;\n }\n\n return (\n <div {...remaining} {...elementProps} id={id}>\n <ToastContent\n action={action}\n stacked={stacked}\n multiline={multiline}\n closeButton={closeButton}\n disableWrapper={disableToastContent}\n {...contentProps}\n >\n {children}\n </ToastContent>\n {actionButton}\n {closeButton && (\n <ToastCloseButton reordered={reordered} {...closeButtonProps}>\n {closeIcon}\n </ToastCloseButton>\n )}\n </div>\n );\n }\n);\n"],"names":["forwardRef","isValidElement","useScaleTransition","useEnsuredId","ToastActionButton","ToastCloseButton","ToastContent","toast","Toast","props","ref","id","propId","className","timeout","classNames","theme","action","propAction","actionButton","propActionButton","paused","visible","closeIcon","closeButtonProps","closeButton","contentProps","disableToastContent","stacked","multiline","onEnter","onEntering","onEntered","onExit","onExiting","onExited","children","remaining","overrides","buttonChildren","reordered","elementProps","rendered","appear","nodeRef","temporary","transitionIn","exitedHidden","div","disableWrapper"],"mappings":"AAAA;;AACA,SACEA,UAAU,EACVC,cAAc,QAKT,QAAQ;AAQf,SAASC,kBAAkB,QAAQ,sCAAsC;AAEzE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,YAAY,QAAgC,oBAAoB;AACzE,SAASC,KAAK,QAAQ,mBAAmB;AA6GzC;;;;;;;CAOC,GACD,OAAO,MAAMC,sBAAQR,WACnB,SAASQ,MAAMC,KAAK,EAAEC,GAAG;IACvB,MAAM,EACJC,IAAIC,MAAM,EACVC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,QAAQ,SAAS,EACjBC,QAAQC,UAAU,EAClBC,cAAcC,gBAAgB,EAC9BC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,gBAAgB,EAChBC,cAAc,CAAC,CAACD,gBAAgB,EAChCE,YAAY,EACZC,mBAAmB,EACnBC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACJ,GAAG5B;IACJ,MAAME,KAAKR,aAAaS,QAAQ;IAEhC,IAAIO,eAAeC;IACnB,IAAIF,YAAY;QACd,IAAIoB,YAAyB,CAAC;QAC9B,IAAIC;QACJ,+DAA+D;QAC/D,8DAA8D;QAC9D,kBAAItC,eAAoBiB,eAAe,OAAOA,eAAe,UAAU;YACrEqB,iBAAiBrB;QACnB,OAAO;YACJ,CAAA,EAAEkB,UAAUG,cAAc,EAAE,GAAGD,WAAW,GAAGpB,UAAS;QACzD;QAEAC,6BACE,KAACf;YACCY,OAAOA,UAAU,YAAY,cAAc;YAC3CwB,WAAWZ,WAAWH;YACrB,GAAGa,SAAS;sBAEZC;;IAGP;IAEA,MAAMtB,SAAS,CAAC,CAACE;IACjB,MAAMqB,YAAYZ,WAAWX,UAAUQ;IACvC,MAAM,EAAEgB,YAAY,EAAEC,QAAQ,EAAE,GAAGxC,mBAAmB;QACpDyC,QAAQ;QACRC,SAASlC;QACTG,WAAWN,MAAM;YACfM;YACAG;YACAC;YACAI;YACAO;YACAY;YACAf;QACF;QACAX;QACAC;QACAe;QACAC;QACAC;QACAC;QACAC;QACAC;QACAU,WAAW;QACXC,cAAcxB;QACdyB,cAAc;IAChB;IAEA,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,CAACL,UAAU;QACb,OAAO;IACT;IAEA,qBACE,MAACM;QAAK,GAAGX,SAAS;QAAG,GAAGI,YAAY;QAAE9B,IAAIA;;0BACxC,KAACL;gBACCW,QAAQA;gBACRW,SAASA;gBACTC,WAAWA;gBACXJ,aAAaA;gBACbwB,gBAAgBtB;gBACf,GAAGD,YAAY;0BAEfU;;YAEFjB;YACAM,6BACC,KAACpB;gBAAiBmC,WAAWA;gBAAY,GAAGhB,gBAAgB;0BACzDD;;;;AAKX,GACA"}
1
+ {"version":3,"sources":["../../src/snackbar/Toast.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n isValidElement,\n type AriaRole,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type ButtonProps } from \"../button/Button.js\";\nimport { type BackgroundColor } from \"../cssUtils.js\";\nimport {\n type CSSTransitionClassNames,\n type TransitionCallbacks,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useScaleTransition } from \"../transition/useScaleTransition.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { ToastActionButton } from \"./ToastActionButton.js\";\nimport { ToastCloseButton } from \"./ToastCloseButton.js\";\nimport { ToastContent, type ToastContentProps } from \"./ToastContent.js\";\nimport { toast } from \"./toastStyles.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ConfigurableToastProps\n extends HTMLAttributes<HTMLDivElement>,\n TransitionCallbacks {\n /**\n * Note: this default value will only be generated in the `Toast` component.\n *\n * @defaultValue `\"toast-\" + useId()`\n */\n id?: string;\n\n /**\n * Note: This is set while creating the toast.\n *\n * @defaultValue `visibleTime === null ? \"alert\" : \"status\"`\n */\n role?: AriaRole;\n\n /**\n * @defaultValue `\"surface\"`\n */\n theme?: BackgroundColor;\n\n /**\n * Set this to `true` to stack the content above the {@link action}. It is not\n * recommended to enable this prop if the {@link closeButton} is enabled.\n *\n * @defaultValue `false`\n */\n stacked?: boolean;\n\n /**\n * If this is not provided, a `ResizeObserver` will be used to determine if\n * there are multiple lines of content.\n */\n multiline?: boolean;\n\n /**\n * When this is a string or React element, it will be rendered as the\n * `children` within a `Button`\n */\n action?: ButtonProps | ReactElement | string;\n\n /**\n * This can be used to replace the custom action button behavior.\n */\n actionButton?: ReactNode;\n\n /**\n * @defaultValue `getIcon(\"close\")`\n */\n closeIcon?: ReactNode;\n\n /**\n * Set this to `true` if a close button should be rendered to the right of the\n * `children`.\n *\n * @defaultValue `!!closeButtonProps`\n */\n closeButton?: boolean;\n\n /**\n * Use this prop to override most of the close button behavior. The\n */\n closeButtonProps?: ButtonProps;\n\n /**\n * Any additional props that should be provided to the `<div>` that surrounds\n * the toast `children`.\n */\n contentProps?: PropsWithRef<ToastContentProps, HTMLDivElement>;\n\n /**\n * Set this to `true` if the `children` for the toast should no longer be\n * wrapped in an additional `<div>` that applies some toast layout styles.\n * This should normally only be used for custom `Toast` implementations.\n *\n * @see the `Snackbar`'s `renderToast` prop for an example.\n */\n disableToastContent?: boolean;\n\n /**\n * The toast's transition timeout for entering and exiting. This is **not**\n * how long the toast should remain visible.\n *\n * @defaultValue `SCALE_TIMEOUT`\n */\n timeout?: TransitionTimeout;\n\n /**\n * The toast's transition class names for entering and exiting.\n *\n * @defaultValue `SCALE_CLASSNAMES`\n */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastProps extends ConfigurableToastProps {\n paused?: boolean;\n visible: boolean;\n}\n\n/**\n * **Client Component**\n *\n * This component is just used for toast styling and does not implement any of\n * the visibility behavior.\n *\n * @remarks \\@since 6.0.0\n */\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n function Toast(props, ref) {\n const {\n id: propId,\n className,\n timeout,\n classNames,\n theme = \"surface\",\n action: propAction,\n actionButton: propActionButton,\n paused,\n visible,\n closeIcon: propCloseIcon,\n closeButtonProps,\n closeButton = !!closeButtonProps,\n contentProps,\n disableToastContent,\n stacked,\n multiline,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n children,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"toast\");\n\n let actionButton = propActionButton;\n if (propAction) {\n let overrides: ButtonProps = {};\n let buttonChildren: ReactNode;\n // have to use `any` to correctly filter out all react elements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isValidElement<any>(propAction) || typeof propAction !== \"object\") {\n buttonChildren = propAction;\n } else {\n ({ children: buttonChildren, ...overrides } = propAction);\n }\n\n actionButton = (\n <ToastActionButton\n theme={theme === \"surface\" ? \"secondary\" : \"clear\"}\n reordered={stacked && closeButton}\n {...overrides}\n >\n {buttonChildren}\n </ToastActionButton>\n );\n }\n\n let closeIcon = propCloseIcon;\n if (typeof closeButtonProps?.children !== \"undefined\") {\n closeIcon = closeButtonProps.children;\n }\n\n const action = !!actionButton;\n const reordered = stacked && action && closeButton;\n const { elementProps, rendered } = useScaleTransition({\n appear: true,\n nodeRef: ref,\n className: toast({\n className,\n theme,\n action,\n paused,\n stacked,\n reordered,\n closeButton,\n }),\n timeout,\n classNames,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n temporary: true,\n transitionIn: visible,\n exitedHidden: true,\n });\n\n // this might get rid of the weird popping-back-in for a split second\n // that sometimes happens on mobile firefox\n if (!rendered) {\n return null;\n }\n\n return (\n <div {...remaining} {...elementProps} id={id}>\n <ToastContent\n action={action}\n stacked={stacked}\n multiline={multiline}\n closeButton={closeButton}\n disableWrapper={disableToastContent}\n {...contentProps}\n >\n {children}\n </ToastContent>\n {actionButton}\n {closeButton && (\n <ToastCloseButton reordered={reordered} {...closeButtonProps}>\n {closeIcon}\n </ToastCloseButton>\n )}\n </div>\n );\n }\n);\n"],"names":["forwardRef","isValidElement","useScaleTransition","useEnsuredId","ToastActionButton","ToastCloseButton","ToastContent","toast","Toast","props","ref","id","propId","className","timeout","classNames","theme","action","propAction","actionButton","propActionButton","paused","visible","closeIcon","propCloseIcon","closeButtonProps","closeButton","contentProps","disableToastContent","stacked","multiline","onEnter","onEntering","onEntered","onExit","onExiting","onExited","children","remaining","overrides","buttonChildren","reordered","elementProps","rendered","appear","nodeRef","temporary","transitionIn","exitedHidden","div","disableWrapper"],"mappings":"AAAA;;AACA,SACEA,UAAU,EACVC,cAAc,QAKT,QAAQ;AAQf,SAASC,kBAAkB,QAAQ,sCAAsC;AAEzE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,YAAY,QAAgC,oBAAoB;AACzE,SAASC,KAAK,QAAQ,mBAAmB;AA6GzC;;;;;;;CAOC,GACD,OAAO,MAAMC,sBAAQR,WACnB,SAASQ,MAAMC,KAAK,EAAEC,GAAG;IACvB,MAAM,EACJC,IAAIC,MAAM,EACVC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,QAAQ,SAAS,EACjBC,QAAQC,UAAU,EAClBC,cAAcC,gBAAgB,EAC9BC,MAAM,EACNC,OAAO,EACPC,WAAWC,aAAa,EACxBC,gBAAgB,EAChBC,cAAc,CAAC,CAACD,gBAAgB,EAChCE,YAAY,EACZC,mBAAmB,EACnBC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACJ,GAAG7B;IACJ,MAAME,KAAKR,aAAaS,QAAQ;IAEhC,IAAIO,eAAeC;IACnB,IAAIF,YAAY;QACd,IAAIqB,YAAyB,CAAC;QAC9B,IAAIC;QACJ,+DAA+D;QAC/D,8DAA8D;QAC9D,kBAAIvC,eAAoBiB,eAAe,OAAOA,eAAe,UAAU;YACrEsB,iBAAiBtB;QACnB,OAAO;YACJ,CAAA,EAAEmB,UAAUG,cAAc,EAAE,GAAGD,WAAW,GAAGrB,UAAS;QACzD;QAEAC,6BACE,KAACf;YACCY,OAAOA,UAAU,YAAY,cAAc;YAC3CyB,WAAWZ,WAAWH;YACrB,GAAGa,SAAS;sBAEZC;;IAGP;IAEA,IAAIjB,YAAYC;IAChB,IAAI,OAAOC,kBAAkBY,aAAa,aAAa;QACrDd,YAAYE,iBAAiBY,QAAQ;IACvC;IAEA,MAAMpB,SAAS,CAAC,CAACE;IACjB,MAAMsB,YAAYZ,WAAWZ,UAAUS;IACvC,MAAM,EAAEgB,YAAY,EAAEC,QAAQ,EAAE,GAAGzC,mBAAmB;QACpD0C,QAAQ;QACRC,SAASnC;QACTG,WAAWN,MAAM;YACfM;YACAG;YACAC;YACAI;YACAQ;YACAY;YACAf;QACF;QACAZ;QACAC;QACAgB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAU,WAAW;QACXC,cAAczB;QACd0B,cAAc;IAChB;IAEA,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,CAACL,UAAU;QACb,OAAO;IACT;IAEA,qBACE,MAACM;QAAK,GAAGX,SAAS;QAAG,GAAGI,YAAY;QAAE/B,IAAIA;;0BACxC,KAACL;gBACCW,QAAQA;gBACRY,SAASA;gBACTC,WAAWA;gBACXJ,aAAaA;gBACbwB,gBAAgBtB;gBACf,GAAGD,YAAY;0BAEfU;;YAEFlB;YACAO,6BACC,KAACrB;gBAAiBoC,WAAWA;gBAAY,GAAGhB,gBAAgB;0BACzDF;;;;AAKX,GACA"}
@@ -12,7 +12,8 @@ export declare const DEFAULT_TOAST_VISIBLE_TIME = 5000;
12
12
  * - `"replace"` - if there is a currently visible toast, it will start the
13
13
  * leave transition and display the newly added toast instead.
14
14
  * - `"immediate"` - the same behavior as `"replace"` except that if there was a
15
- * currently visible toast, it will be shown once the newly added toast again.
15
+ * currently visible toast, the toast will be shown again once the `"immediate"`
16
+ * toast is hidden.
16
17
  *
17
18
  * @remarks \@since 6.0.0 Renamed from `MessagePriority` to `ToastPriority`
18
19
  */
@@ -221,7 +221,7 @@ var _queue = /*#__PURE__*/ new WeakMap(), _timers = /*#__PURE__*/ new WeakMap(),
221
221
  * });
222
222
  * ```
223
223
  */ _define_property(this, "addToast", (toast)=>{
224
- const { toastId = nanoid(), visibleTime = DEFAULT_TOAST_VISIBLE_TIME, role = visibleTime === null ? "alert" : undefined, priority = "normal", duplicates = "restart" } = toast;
224
+ const { toastId = nanoid(), visibleTime = DEFAULT_TOAST_VISIBLE_TIME, role = visibleTime === null ? "alert" : "status", priority = "normal", duplicates = "restart" } = toast;
225
225
  const existingIndex = _class_private_field_get(this, _getToastIndex).call(this, toast.toastId);
226
226
  if (existingIndex !== -1 && duplicates !== "allow") {
227
227
  const existingToast = _class_private_field_get(this, _queue)[existingIndex];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/snackbar/ToastManager.tsx"],"sourcesContent":["import { nanoid } from \"nanoid\";\nimport { type ConfigurableToastProps } from \"./Toast.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport const DEFAULT_TOAST_VISIBLE_TIME = 5000;\n\n/**\n * - `\"normal\"` - the toast will be added to the end of the queue\n * - `\"next\"` - the toast will be inserted next-in-line in the queue, waiting\n * for the current visible toast to exit before being shown. If the toast does\n * not support duplicates, the existing toast will be moved instead and merged\n * with the toast.\n * - `\"replace\"` - if there is a currently visible toast, it will start the\n * leave transition and display the newly added toast instead.\n * - `\"immediate\"` - the same behavior as `\"replace\"` except that if there was a\n * currently visible toast, it will be shown once the newly added toast again.\n *\n * @remarks \\@since 6.0.0 Renamed from `MessagePriority` to `ToastPriority`\n */\nexport type ToastPriority = \"normal\" | \"next\" | \"replace\" | \"immediate\";\n\n/**\n * - `\"allow\"` - toasts with the same `toastId` can be added into the queue, but\n * the leave timeout behavior might not work if multiple toasts can be shown\n * at the same time.\n * - `\"restart\"` - (default) toasts that have the same `toastId` as a toast\n * being shown will restart the exit timeout and update the toast with any\n * differences in the toast. If the toast is not currently being shown, a new\n * toast will not be added.\n * - `\"update\"` - toasts that have the same `toastId` will just update the toast\n * with the latest content while maintaining any existing timeouts\n *\n * @remarks \\@since 6.0.0 Renamed from `DuplicateBehavior`\n */\nexport type ToastDuplicateBehavior = \"allow\" | \"restart\" | \"update\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastMeta {\n /**\n * This will be `true` if the exit timeout has been paused either by hovering\n * the toast or the page has become inactive through blur or minimizing.\n */\n paused: boolean;\n\n /**\n * This will be `true` when the toast should be visible and `false` during the\n * exit animation.\n */\n visible: boolean;\n\n /**\n * The current toast's id which can be used with the:\n * - {@link ToastManager.removeToast}\n * - {@link ToastManager.startRemoveTimeout}\n * - {@link ToastManager.pauseRemoveTimeout}\n * - {@link ToastManager.resumeRemoveTimeout}\n */\n toastId: string;\n priority: ToastPriority;\n duplicates: ToastDuplicateBehavior;\n visibleTime: number | null;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface CreateToastOptions extends ConfigurableToastProps {\n /**\n * @defaultValue `nanoid()`\n */\n toastId?: string;\n\n /**\n * @see {@link ToastDuplicateBehavior}\n * @defaultValue `\"restart\"`\n */\n duplicates?: ToastDuplicateBehavior;\n\n /**\n * @see {@link ToastPriority}\n * @defaultValue `\"normal\"`\n */\n priority?: ToastPriority;\n\n /**\n * Set this to `null` to prevent the toast from automatically hiding,\n * otherwise set this to the number of milliseconds to remain visible.\n *\n * @see {@link DEFAULT_TOAST_VISIBLE_TIME}\n * @defaultValue `DEFAULT_TOAST_VISIBLE_TIME`\n */\n visibleTime?: number | null;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface QueuedToast extends ConfigurableToastProps, ToastMeta {}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ToastQueue = readonly Readonly<QueuedToast>[];\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ToastCallback = (queue: ToastQueue) => void;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport interface ToastVisibilityTimers {\n inactive: boolean;\n startTime: number;\n elapsedTime: number;\n exitTimeout?: number;\n}\n\n/**\n * @see {@link ToastManagerProvider}\n *\n * @remarks \\@since 6.0.0\n */\nexport class ToastManager {\n #queue: QueuedToast[];\n #timers: Map<string, ToastVisibilityTimers>;\n #listeners: ToastCallback[];\n\n constructor() {\n this.#queue = [];\n this.#timers = new Map();\n this.#listeners = [];\n\n // All of the class methods must be arrow functions to preserve the correct\n // `this` value. If they aren't arrow functions, I'd have to wrap each call\n // in an arrow function to work.\n //\n // i.e.\n // useSyncExternalStore(\n // (cb) => manager.subscribe(cb),\n // () => manager.getQueue(),\n // () => manager.getQueue(),\n // );\n }\n\n #emit = (): void => {\n // shallow clone to ensure react updates\n this.#queue = [...this.#queue];\n this.#listeners.forEach((callback) => {\n callback(this.#queue);\n });\n };\n\n #getToastIndex = (toastId: string | undefined): number => {\n if (!toastId) {\n return -1;\n }\n\n return this.#queue.findIndex((toast) => toast.toastId === toastId);\n };\n\n #getToast = (toastId: string | undefined): QueuedToast | undefined => {\n return this.#queue[this.#getToastIndex(toastId)];\n };\n\n /**\n * Starts the exit transition for the currently shown toast and adds the next\n * toast into the queue. This requires a manual call to `this.#emit()`\n * afterwards.\n */\n #addToastImmediately = (nextToast: QueuedToast): void => {\n const [current] = this.#queue;\n this.clearTimer(current.toastId);\n this.#queue[0] = {\n ...current,\n visible: false,\n };\n if (nextToast.priority === \"immediate\") {\n this.#queue.splice(1, 0, nextToast, current);\n } else {\n this.#queue.splice(1, 0, nextToast);\n }\n };\n\n /**\n * This calls `this.#emit()` if the toast was updated\n */\n #updateToast = (\n toastIdOrIndex: string | number,\n patch: Partial<QueuedToast>\n ): void => {\n const index =\n typeof toastIdOrIndex === \"number\"\n ? toastIdOrIndex\n : this.#getToastIndex(toastIdOrIndex);\n\n if (index === -1) {\n return;\n }\n\n this.#queue[index] = {\n ...this.#queue[index],\n ...patch,\n };\n this.#emit();\n };\n\n /**\n * This is just used to subscribe to changes in the {@link useToastQueue}.\n *\n * ```tsx\n * useSyncExternalStore(\n * toastManager.subscribe,\n * toastManager.getQueue,\n * toastManager.getQueue,\n * );\n * ```\n *\n * @internal\n */\n subscribe = (callback: ToastCallback): (() => void) => {\n this.#listeners.push(callback);\n\n return () => {\n this.#listeners = this.#listeners.filter((cb) => cb !== callback);\n };\n };\n\n /**\n * @see {@link subscribe}\n * @internal\n */\n getQueue = (): ToastQueue => {\n return this.#queue;\n };\n\n /**\n * Either adds the toast to the queue or updates an existing toast when using\n * an existing `toastId`.\n *\n * @example\n * Adding toasts\n * ```tsx\n * // create a toast when the user is offline that will not disappear\n * addToast({ toastId: \"offline\", visibleTime: null });\n *\n * // add a new toast that displays `\"Toast\"` to the queue\n * addToast({ children: \"Toast!\" });\n *\n * // add an online toast notification. since these three use the same toast\n * // id, the hide timer will be reset each time\n * addToast({ toastId: \"online\" });\n * addToast({ toastId: \"online\" });\n * addToast({ toastId: \"online\" });\n *\n * // add a server error toast to the queue where the second one will be\n * // ignored\n * addToast({\n * toastId: \"ServerError\",\n * theme: \"error\",\n * duplicates: \"prevent\",\n * });\n * addToast({\n * toastId: \"ServerError\",\n * theme: \"error\",\n * duplicates: \"prevent\",\n * });\n *\n * // add a toast to the queue that has an action button that says \"Goodbye\"\n * addToast({\n * children: \"Hello, world!\",\n * action: \"Goodbye\",\n * });\n *\n * // add a toast to the queue that has an action button that says \"Goodbye\"\n * // and a custom click handler\n * addToast({\n * children: \"Hello, world!\",\n * action: {\n * onClick: () => {\n * logout();\n * },\n * children: \"Goodbye\",\n * },\n * });\n *\n * // add a toast to the queue that renders a react component in the content,\n * // a custom action button implementation (using `ToastActionButton`), and a\n * // close button\n * addToast({\n * children: <SomeCustomComponent />,\n * actionButton: <SomeCustomActionButton />,\n * closeButton: true,\n * });\n * ```\n */\n addToast = (toast: CreateToastOptions): void => {\n const {\n toastId = nanoid(),\n visibleTime = DEFAULT_TOAST_VISIBLE_TIME,\n role = visibleTime === null ? \"alert\" : undefined,\n priority = \"normal\",\n duplicates = \"restart\",\n } = toast;\n\n const existingIndex = this.#getToastIndex(toast.toastId);\n if (existingIndex !== -1 && duplicates !== \"allow\") {\n const existingToast = this.#queue[existingIndex];\n\n // reorder/move the existing toast to be the next item in the queue by:\n // - removing the toast from the queue\n // - inserting it into the next position with the updates\n if (priority === \"next\" && existingIndex > 1) {\n this.#queue.splice(existingIndex, 1);\n this.#queue.splice(1, 0, { ...existingToast, ...toast });\n this.#emit();\n return;\n }\n\n // only need to reorder the queue if it is not being shown\n if (\n (priority === \"replace\" || priority === \"immediate\") &&\n existingIndex !== 0\n ) {\n this.#queue.splice(existingIndex, 1);\n this.#addToastImmediately({\n ...existingToast,\n ...toast,\n });\n this.#emit();\n return;\n }\n\n const timers = this.#timers.get(toastId);\n if (existingToast.visible && duplicates === \"restart\" && timers) {\n this.#timers.set(toastId, { ...timers, elapsedTime: 0 });\n this.startRemoveTimeout(toastId);\n }\n\n this.#updateToast(existingIndex, toast);\n return;\n }\n\n const nextToast: QueuedToast = {\n ...toast,\n role,\n paused: false,\n visible: true,\n toastId,\n priority,\n duplicates,\n visibleTime,\n };\n\n const queueSize = this.#queue.length;\n if (priority === \"next\" && queueSize > 1) {\n this.#queue.splice(1, 0, nextToast);\n } else if (\n (priority === \"replace\" || priority === \"immediate\") &&\n queueSize > 0\n ) {\n this.#addToastImmediately(nextToast);\n } else {\n this.#queue.push(nextToast);\n }\n\n this.#emit();\n };\n\n /**\n * Attempts to start the timeout for removing the toast when the `visibleTime`\n * is not null for a toast.\n *\n * @param toastId - The specific toastId to update\n */\n startRemoveTimeout = (toastId: string): void => {\n const toast = this.#getToast(toastId);\n if (!toast) {\n return;\n }\n\n const { visibleTime } = toast;\n if (visibleTime === null) {\n // Must manually be closed\n return;\n }\n\n const cached = this.#timers.get(toastId);\n const timers = (cached && { ...cached }) || {\n inactive: false,\n startTime: Date.now(),\n elapsedTime: 0,\n };\n window.clearTimeout(timers.exitTimeout);\n\n let duration = visibleTime;\n if (timers.elapsedTime) {\n duration -= timers.elapsedTime;\n }\n\n timers.inactive = false;\n timers.exitTimeout = window.setTimeout(() => {\n this.removeToast(toastId, true);\n }, duration);\n this.#timers.set(toastId, timers);\n };\n\n /**\n * Pauses the remove timeout for a specific toast normally with hover events\n * or the browser becoming inactive.\n *\n * @param toastId - The specific toastId to pause\n */\n pauseRemoveTimeout = (toastId: string): void => {\n const toast = this.#getToast(toastId);\n const cached = this.#timers.get(toastId);\n if (!toast || !cached || cached.inactive) {\n return;\n }\n\n window.clearTimeout(cached.exitTimeout);\n const timers = { ...cached };\n timers.inactive = true;\n timers.elapsedTime = Date.now() - timers.startTime + timers.elapsedTime;\n this.#timers.set(toastId, timers);\n this.#updateToast(toastId, { paused: true });\n };\n\n /**\n * Resumes the current remove timeout if it was paused by\n * {@link pauseRemoveTimeout}.\n *\n * @param toastId - The specific toastId to resume\n */\n resumeRemoveTimeout = (toastId: string): void => {\n const toastIndex = this.#getToastIndex(toastId);\n const timers = this.#timers.get(toastId);\n if (toastIndex === -1 || !timers?.startTime) {\n return;\n }\n\n this.#updateToast(toastIndex, { paused: false });\n this.startRemoveTimeout(toastId);\n };\n\n /**\n * Removes a toast by id from the queue without any exit animation.\n *\n * @param toastId - The specific {@link QueuedToast.toastId}\n * @param transition - Set this to `true` to remove the toast by the exit\n * transition instead of immediately.\n */\n removeToast = (toastId: string, transition: boolean): void => {\n const toastIndex = this.#getToastIndex(toastId);\n if (toastIndex === -1) {\n return;\n }\n\n if (transition) {\n this.clearTimer(toastId);\n this.#updateToast(toastIndex, { visible: false });\n return;\n }\n\n this.#queue.splice(toastIndex, 1);\n this.#emit();\n };\n\n /**\n * Clears any pending timers for the provided toast id. This should generally\n * be used in the `useEffect` cleanup effect for any custom toast renderer\n * implementations.\n *\n * @example\n * ```tsx\n * const { toastId } = toast;\n * const toastManager = useToastManager();\n *\n * useEffect(() => {\n * return () => {\n * toastManager.clearTimer(toastId):\n * }\n * }, [toastManager, toastId]);\n * ```\n */\n clearTimer = (toastId: string): void => {\n const timer = this.#timers.get(toastId);\n window.clearTimeout(timer?.exitTimeout);\n this.#timers.delete(toastId);\n };\n\n /**\n * Removes first toast from the queue without any exit animation. You most\n * likely want to use {@link removeToast} instead.\n */\n popToast = (): void => {\n this.#queue.pop();\n this.#emit();\n };\n\n /**\n * Removes all toasts from the queue. There will be no exit animation.\n *\n * @param disableEmit - Set this to `true` to disable emitting the empty queue.\n * Mostly used for tests.\n */\n clearToasts = (disableEmit = false): void => {\n this.#queue = [];\n this.#timers.forEach((meta) => {\n window.clearTimeout(meta.exitTimeout);\n });\n this.#timers.clear();\n if (!disableEmit) {\n this.#emit();\n }\n };\n}\n\n/**\n * The default toast manager for react-md apps that will allow toasts to be\n * added without setting up the {@link ToastManagerProvider}.\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport const toastManager = new ToastManager();\n\n/**\n * @see {@link ToastManager.addToast}\n * @remarks \\@since 6.0.0\n */\nexport const addToast: ToastManager[\"addToast\"] = (toast) =>\n toastManager.addToast(toast);\n\n/**\n * @see {@link ToastManager.startRemoveTimeout}\n * @remarks \\@since 6.0.0\n */\nexport const startRemoveToastTimeout: ToastManager[\"startRemoveTimeout\"] = (\n toastId\n) => toastManager.startRemoveTimeout(toastId);\n\n/**\n * @see {@link ToastManager.popToast}\n * @remarks \\@since 6.0.0\n */\nexport const popToast: ToastManager[\"popToast\"] = () => toastManager.popToast();\n\n/**\n * @see {@link ToastManager.removeToast}\n * @remarks \\@since 6.0.0\n */\nexport const removeToast: ToastManager[\"removeToast\"] = (toastId, transition) =>\n toastManager.removeToast(toastId, transition);\n\n/**\n * @see {@link ToastManager.clearToasts}\n * @remarks \\@since 6.0.0\n */\nexport const clearToasts = (): void => toastManager.clearToasts();\n"],"names":["nanoid","DEFAULT_TOAST_VISIBLE_TIME","ToastManager","constructor","queue","listeners","forEach","callback","toastId","findIndex","toast","getToastIndex","nextToast","current","clearTimer","visible","priority","splice","toastIdOrIndex","patch","index","emit","subscribe","push","filter","cb","getQueue","addToast","visibleTime","role","undefined","duplicates","existingIndex","existingToast","addToastImmediately","timers","get","set","elapsedTime","startRemoveTimeout","updateToast","paused","queueSize","length","getToast","cached","inactive","startTime","Date","now","window","clearTimeout","exitTimeout","duration","setTimeout","removeToast","pauseRemoveTimeout","resumeRemoveTimeout","toastIndex","transition","timer","delete","popToast","pop","clearToasts","disableEmit","meta","clear","Map","toastManager","startRemoveToastTimeout"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/snackbar/ToastManager.tsx"],"sourcesContent":["import { nanoid } from \"nanoid\";\nimport { type ConfigurableToastProps } from \"./Toast.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport const DEFAULT_TOAST_VISIBLE_TIME = 5000;\n\n/**\n * - `\"normal\"` - the toast will be added to the end of the queue\n * - `\"next\"` - the toast will be inserted next-in-line in the queue, waiting\n * for the current visible toast to exit before being shown. If the toast does\n * not support duplicates, the existing toast will be moved instead and merged\n * with the toast.\n * - `\"replace\"` - if there is a currently visible toast, it will start the\n * leave transition and display the newly added toast instead.\n * - `\"immediate\"` - the same behavior as `\"replace\"` except that if there was a\n * currently visible toast, the toast will be shown again once the `\"immediate\"`\n * toast is hidden.\n *\n * @remarks \\@since 6.0.0 Renamed from `MessagePriority` to `ToastPriority`\n */\nexport type ToastPriority = \"normal\" | \"next\" | \"replace\" | \"immediate\";\n\n/**\n * - `\"allow\"` - toasts with the same `toastId` can be added into the queue, but\n * the leave timeout behavior might not work if multiple toasts can be shown\n * at the same time.\n * - `\"restart\"` - (default) toasts that have the same `toastId` as a toast\n * being shown will restart the exit timeout and update the toast with any\n * differences in the toast. If the toast is not currently being shown, a new\n * toast will not be added.\n * - `\"update\"` - toasts that have the same `toastId` will just update the toast\n * with the latest content while maintaining any existing timeouts\n *\n * @remarks \\@since 6.0.0 Renamed from `DuplicateBehavior`\n */\nexport type ToastDuplicateBehavior = \"allow\" | \"restart\" | \"update\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ToastMeta {\n /**\n * This will be `true` if the exit timeout has been paused either by hovering\n * the toast or the page has become inactive through blur or minimizing.\n */\n paused: boolean;\n\n /**\n * This will be `true` when the toast should be visible and `false` during the\n * exit animation.\n */\n visible: boolean;\n\n /**\n * The current toast's id which can be used with the:\n * - {@link ToastManager.removeToast}\n * - {@link ToastManager.startRemoveTimeout}\n * - {@link ToastManager.pauseRemoveTimeout}\n * - {@link ToastManager.resumeRemoveTimeout}\n */\n toastId: string;\n priority: ToastPriority;\n duplicates: ToastDuplicateBehavior;\n visibleTime: number | null;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface CreateToastOptions extends ConfigurableToastProps {\n /**\n * @defaultValue `nanoid()`\n */\n toastId?: string;\n\n /**\n * @see {@link ToastDuplicateBehavior}\n * @defaultValue `\"restart\"`\n */\n duplicates?: ToastDuplicateBehavior;\n\n /**\n * @see {@link ToastPriority}\n * @defaultValue `\"normal\"`\n */\n priority?: ToastPriority;\n\n /**\n * Set this to `null` to prevent the toast from automatically hiding,\n * otherwise set this to the number of milliseconds to remain visible.\n *\n * @see {@link DEFAULT_TOAST_VISIBLE_TIME}\n * @defaultValue `DEFAULT_TOAST_VISIBLE_TIME`\n */\n visibleTime?: number | null;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface QueuedToast extends ConfigurableToastProps, ToastMeta {}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ToastQueue = readonly Readonly<QueuedToast>[];\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ToastCallback = (queue: ToastQueue) => void;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport interface ToastVisibilityTimers {\n inactive: boolean;\n startTime: number;\n elapsedTime: number;\n exitTimeout?: number;\n}\n\n/**\n * @see {@link ToastManagerProvider}\n *\n * @remarks \\@since 6.0.0\n */\nexport class ToastManager {\n #queue: QueuedToast[];\n #timers: Map<string, ToastVisibilityTimers>;\n #listeners: ToastCallback[];\n\n constructor() {\n this.#queue = [];\n this.#timers = new Map();\n this.#listeners = [];\n\n // All of the class methods must be arrow functions to preserve the correct\n // `this` value. If they aren't arrow functions, I'd have to wrap each call\n // in an arrow function to work.\n //\n // i.e.\n // useSyncExternalStore(\n // (cb) => manager.subscribe(cb),\n // () => manager.getQueue(),\n // () => manager.getQueue(),\n // );\n }\n\n #emit = (): void => {\n // shallow clone to ensure react updates\n this.#queue = [...this.#queue];\n this.#listeners.forEach((callback) => {\n callback(this.#queue);\n });\n };\n\n #getToastIndex = (toastId: string | undefined): number => {\n if (!toastId) {\n return -1;\n }\n\n return this.#queue.findIndex((toast) => toast.toastId === toastId);\n };\n\n #getToast = (toastId: string | undefined): QueuedToast | undefined => {\n return this.#queue[this.#getToastIndex(toastId)];\n };\n\n /**\n * Starts the exit transition for the currently shown toast and adds the next\n * toast into the queue. This requires a manual call to `this.#emit()`\n * afterwards.\n */\n #addToastImmediately = (nextToast: QueuedToast): void => {\n const [current] = this.#queue;\n this.clearTimer(current.toastId);\n this.#queue[0] = {\n ...current,\n visible: false,\n };\n if (nextToast.priority === \"immediate\") {\n this.#queue.splice(1, 0, nextToast, current);\n } else {\n this.#queue.splice(1, 0, nextToast);\n }\n };\n\n /**\n * This calls `this.#emit()` if the toast was updated\n */\n #updateToast = (\n toastIdOrIndex: string | number,\n patch: Partial<QueuedToast>\n ): void => {\n const index =\n typeof toastIdOrIndex === \"number\"\n ? toastIdOrIndex\n : this.#getToastIndex(toastIdOrIndex);\n\n if (index === -1) {\n return;\n }\n\n this.#queue[index] = {\n ...this.#queue[index],\n ...patch,\n };\n this.#emit();\n };\n\n /**\n * This is just used to subscribe to changes in the {@link useToastQueue}.\n *\n * ```tsx\n * useSyncExternalStore(\n * toastManager.subscribe,\n * toastManager.getQueue,\n * toastManager.getQueue,\n * );\n * ```\n *\n * @internal\n */\n subscribe = (callback: ToastCallback): (() => void) => {\n this.#listeners.push(callback);\n\n return () => {\n this.#listeners = this.#listeners.filter((cb) => cb !== callback);\n };\n };\n\n /**\n * @see {@link subscribe}\n * @internal\n */\n getQueue = (): ToastQueue => {\n return this.#queue;\n };\n\n /**\n * Either adds the toast to the queue or updates an existing toast when using\n * an existing `toastId`.\n *\n * @example\n * Adding toasts\n * ```tsx\n * // create a toast when the user is offline that will not disappear\n * addToast({ toastId: \"offline\", visibleTime: null });\n *\n * // add a new toast that displays `\"Toast\"` to the queue\n * addToast({ children: \"Toast!\" });\n *\n * // add an online toast notification. since these three use the same toast\n * // id, the hide timer will be reset each time\n * addToast({ toastId: \"online\" });\n * addToast({ toastId: \"online\" });\n * addToast({ toastId: \"online\" });\n *\n * // add a server error toast to the queue where the second one will be\n * // ignored\n * addToast({\n * toastId: \"ServerError\",\n * theme: \"error\",\n * duplicates: \"prevent\",\n * });\n * addToast({\n * toastId: \"ServerError\",\n * theme: \"error\",\n * duplicates: \"prevent\",\n * });\n *\n * // add a toast to the queue that has an action button that says \"Goodbye\"\n * addToast({\n * children: \"Hello, world!\",\n * action: \"Goodbye\",\n * });\n *\n * // add a toast to the queue that has an action button that says \"Goodbye\"\n * // and a custom click handler\n * addToast({\n * children: \"Hello, world!\",\n * action: {\n * onClick: () => {\n * logout();\n * },\n * children: \"Goodbye\",\n * },\n * });\n *\n * // add a toast to the queue that renders a react component in the content,\n * // a custom action button implementation (using `ToastActionButton`), and a\n * // close button\n * addToast({\n * children: <SomeCustomComponent />,\n * actionButton: <SomeCustomActionButton />,\n * closeButton: true,\n * });\n * ```\n */\n addToast = (toast: CreateToastOptions): void => {\n const {\n toastId = nanoid(),\n visibleTime = DEFAULT_TOAST_VISIBLE_TIME,\n role = visibleTime === null ? \"alert\" : \"status\",\n priority = \"normal\",\n duplicates = \"restart\",\n } = toast;\n\n const existingIndex = this.#getToastIndex(toast.toastId);\n if (existingIndex !== -1 && duplicates !== \"allow\") {\n const existingToast = this.#queue[existingIndex];\n\n // reorder/move the existing toast to be the next item in the queue by:\n // - removing the toast from the queue\n // - inserting it into the next position with the updates\n if (priority === \"next\" && existingIndex > 1) {\n this.#queue.splice(existingIndex, 1);\n this.#queue.splice(1, 0, { ...existingToast, ...toast });\n this.#emit();\n return;\n }\n\n // only need to reorder the queue if it is not being shown\n if (\n (priority === \"replace\" || priority === \"immediate\") &&\n existingIndex !== 0\n ) {\n this.#queue.splice(existingIndex, 1);\n this.#addToastImmediately({\n ...existingToast,\n ...toast,\n });\n this.#emit();\n return;\n }\n\n const timers = this.#timers.get(toastId);\n if (existingToast.visible && duplicates === \"restart\" && timers) {\n this.#timers.set(toastId, { ...timers, elapsedTime: 0 });\n this.startRemoveTimeout(toastId);\n }\n\n this.#updateToast(existingIndex, toast);\n return;\n }\n\n const nextToast: QueuedToast = {\n ...toast,\n role,\n paused: false,\n visible: true,\n toastId,\n priority,\n duplicates,\n visibleTime,\n };\n\n const queueSize = this.#queue.length;\n if (priority === \"next\" && queueSize > 1) {\n this.#queue.splice(1, 0, nextToast);\n } else if (\n (priority === \"replace\" || priority === \"immediate\") &&\n queueSize > 0\n ) {\n this.#addToastImmediately(nextToast);\n } else {\n this.#queue.push(nextToast);\n }\n\n this.#emit();\n };\n\n /**\n * Attempts to start the timeout for removing the toast when the `visibleTime`\n * is not null for a toast.\n *\n * @param toastId - The specific toastId to update\n */\n startRemoveTimeout = (toastId: string): void => {\n const toast = this.#getToast(toastId);\n if (!toast) {\n return;\n }\n\n const { visibleTime } = toast;\n if (visibleTime === null) {\n // Must manually be closed\n return;\n }\n\n const cached = this.#timers.get(toastId);\n const timers = (cached && { ...cached }) || {\n inactive: false,\n startTime: Date.now(),\n elapsedTime: 0,\n };\n window.clearTimeout(timers.exitTimeout);\n\n let duration = visibleTime;\n if (timers.elapsedTime) {\n duration -= timers.elapsedTime;\n }\n\n timers.inactive = false;\n timers.exitTimeout = window.setTimeout(() => {\n this.removeToast(toastId, true);\n }, duration);\n this.#timers.set(toastId, timers);\n };\n\n /**\n * Pauses the remove timeout for a specific toast normally with hover events\n * or the browser becoming inactive.\n *\n * @param toastId - The specific toastId to pause\n */\n pauseRemoveTimeout = (toastId: string): void => {\n const toast = this.#getToast(toastId);\n const cached = this.#timers.get(toastId);\n if (!toast || !cached || cached.inactive) {\n return;\n }\n\n window.clearTimeout(cached.exitTimeout);\n const timers = { ...cached };\n timers.inactive = true;\n timers.elapsedTime = Date.now() - timers.startTime + timers.elapsedTime;\n this.#timers.set(toastId, timers);\n this.#updateToast(toastId, { paused: true });\n };\n\n /**\n * Resumes the current remove timeout if it was paused by\n * {@link pauseRemoveTimeout}.\n *\n * @param toastId - The specific toastId to resume\n */\n resumeRemoveTimeout = (toastId: string): void => {\n const toastIndex = this.#getToastIndex(toastId);\n const timers = this.#timers.get(toastId);\n if (toastIndex === -1 || !timers?.startTime) {\n return;\n }\n\n this.#updateToast(toastIndex, { paused: false });\n this.startRemoveTimeout(toastId);\n };\n\n /**\n * Removes a toast by id from the queue without any exit animation.\n *\n * @param toastId - The specific {@link QueuedToast.toastId}\n * @param transition - Set this to `true` to remove the toast by the exit\n * transition instead of immediately.\n */\n removeToast = (toastId: string, transition: boolean): void => {\n const toastIndex = this.#getToastIndex(toastId);\n if (toastIndex === -1) {\n return;\n }\n\n if (transition) {\n this.clearTimer(toastId);\n this.#updateToast(toastIndex, { visible: false });\n return;\n }\n\n this.#queue.splice(toastIndex, 1);\n this.#emit();\n };\n\n /**\n * Clears any pending timers for the provided toast id. This should generally\n * be used in the `useEffect` cleanup effect for any custom toast renderer\n * implementations.\n *\n * @example\n * ```tsx\n * const { toastId } = toast;\n * const toastManager = useToastManager();\n *\n * useEffect(() => {\n * return () => {\n * toastManager.clearTimer(toastId):\n * }\n * }, [toastManager, toastId]);\n * ```\n */\n clearTimer = (toastId: string): void => {\n const timer = this.#timers.get(toastId);\n window.clearTimeout(timer?.exitTimeout);\n this.#timers.delete(toastId);\n };\n\n /**\n * Removes first toast from the queue without any exit animation. You most\n * likely want to use {@link removeToast} instead.\n */\n popToast = (): void => {\n this.#queue.pop();\n this.#emit();\n };\n\n /**\n * Removes all toasts from the queue. There will be no exit animation.\n *\n * @param disableEmit - Set this to `true` to disable emitting the empty queue.\n * Mostly used for tests.\n */\n clearToasts = (disableEmit = false): void => {\n this.#queue = [];\n this.#timers.forEach((meta) => {\n window.clearTimeout(meta.exitTimeout);\n });\n this.#timers.clear();\n if (!disableEmit) {\n this.#emit();\n }\n };\n}\n\n/**\n * The default toast manager for react-md apps that will allow toasts to be\n * added without setting up the {@link ToastManagerProvider}.\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport const toastManager = new ToastManager();\n\n/**\n * @see {@link ToastManager.addToast}\n * @remarks \\@since 6.0.0\n */\nexport const addToast: ToastManager[\"addToast\"] = (toast) =>\n toastManager.addToast(toast);\n\n/**\n * @see {@link ToastManager.startRemoveTimeout}\n * @remarks \\@since 6.0.0\n */\nexport const startRemoveToastTimeout: ToastManager[\"startRemoveTimeout\"] = (\n toastId\n) => toastManager.startRemoveTimeout(toastId);\n\n/**\n * @see {@link ToastManager.popToast}\n * @remarks \\@since 6.0.0\n */\nexport const popToast: ToastManager[\"popToast\"] = () => toastManager.popToast();\n\n/**\n * @see {@link ToastManager.removeToast}\n * @remarks \\@since 6.0.0\n */\nexport const removeToast: ToastManager[\"removeToast\"] = (toastId, transition) =>\n toastManager.removeToast(toastId, transition);\n\n/**\n * @see {@link ToastManager.clearToasts}\n * @remarks \\@since 6.0.0\n */\nexport const clearToasts = (): void => toastManager.clearToasts();\n"],"names":["nanoid","DEFAULT_TOAST_VISIBLE_TIME","ToastManager","constructor","queue","listeners","forEach","callback","toastId","findIndex","toast","getToastIndex","nextToast","current","clearTimer","visible","priority","splice","toastIdOrIndex","patch","index","emit","subscribe","push","filter","cb","getQueue","addToast","visibleTime","role","duplicates","existingIndex","existingToast","addToastImmediately","timers","get","set","elapsedTime","startRemoveTimeout","updateToast","paused","queueSize","length","getToast","cached","inactive","startTime","Date","now","window","clearTimeout","exitTimeout","duration","setTimeout","removeToast","pauseRemoveTimeout","resumeRemoveTimeout","toastIndex","transition","timer","delete","popToast","pop","clearToasts","disableEmit","meta","clear","Map","toastManager","startRemoveToastTimeout"],"mappings":"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"}