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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1203) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +11 -7
  3. package/.turbo/turbo-typecheck.log +4 -4
  4. package/CHANGELOG.md +183 -0
  5. package/README.md +39 -24
  6. package/coverage/clover.xml +2 -2
  7. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  8. package/coverage/lcov-report/Avatar.tsx.html +472 -0
  9. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  10. package/coverage/lcov-report/IconRotator.tsx.html +322 -0
  11. package/coverage/lcov-report/ListItem.tsx.html +892 -0
  12. package/coverage/lcov-report/ListItemLink.tsx.html +616 -0
  13. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  14. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
  15. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  16. package/coverage/lcov-report/Portal.tsx.html +223 -0
  17. package/coverage/lcov-report/PortalContainerProvider.tsx.html +367 -0
  18. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  19. package/coverage/lcov-report/Select.tsx.html +1411 -0
  20. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +613 -0
  21. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  22. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  23. package/coverage/lcov-report/Tab.tsx.html +261 -147
  24. package/coverage/lcov-report/Toast.tsx.html +868 -0
  25. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  26. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  27. package/coverage/lcov-report/TreeGroup.tsx.html +313 -0
  28. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  29. package/coverage/lcov-report/app-bar/AppBar.tsx.html +178 -28
  30. package/coverage/lcov-report/app-bar/index.html +7 -7
  31. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  32. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +475 -0
  33. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  34. package/coverage/lcov-report/autocomplete/index.html +221 -0
  35. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  36. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +1273 -0
  37. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +829 -0
  38. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +715 -0
  39. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  40. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +430 -0
  41. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +310 -0
  42. package/coverage/lcov-report/autocomplete/utils.ts.html +196 -0
  43. package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
  44. package/coverage/lcov-report/avatar/index.html +19 -34
  45. package/coverage/lcov-report/avatar/styles.ts.html +1 -1
  46. package/coverage/lcov-report/button/Button.tsx.html +85 -85
  47. package/coverage/lcov-report/button/TooltippedButton.tsx.html +445 -0
  48. package/coverage/lcov-report/button/index.html +12 -12
  49. package/coverage/lcov-report/card/Card.tsx.html +349 -0
  50. package/coverage/lcov-report/card/CardContent.tsx.html +223 -0
  51. package/coverage/lcov-report/card/ClickableCard.tsx.html +400 -0
  52. package/coverage/lcov-report/card/index.html +21 -21
  53. package/coverage/lcov-report/card/styles.ts.html +428 -392
  54. package/coverage/lcov-report/cssUtils.ts.html +86 -59
  55. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
  56. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
  57. package/coverage/lcov-report/dialog/index.html +34 -19
  58. package/coverage/lcov-report/draggable/index.html +21 -36
  59. package/coverage/lcov-report/draggable/useDraggable.ts.html +377 -368
  60. package/coverage/lcov-report/draggable/utils.ts.html +96 -195
  61. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +211 -0
  62. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +12 -15
  63. package/coverage/lcov-report/expansion-panel/index.html +34 -19
  64. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +928 -0
  65. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  66. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  67. package/coverage/lcov-report/form/Label.tsx.html +442 -0
  68. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +2 -2
  69. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  70. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  71. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +442 -0
  72. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +310 -0
  73. package/coverage/lcov-report/form/Select.tsx.html +1456 -0
  74. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  75. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  76. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  77. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +727 -0
  78. package/coverage/lcov-report/form/Slider.tsx.html +163 -40
  79. package/coverage/lcov-report/form/TextArea.tsx.html +596 -740
  80. package/coverage/lcov-report/form/TextArea2.tsx.html +985 -0
  81. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +1006 -0
  82. package/coverage/lcov-report/form/TextField.tsx.html +156 -234
  83. package/coverage/lcov-report/form/index.html +111 -21
  84. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  85. package/coverage/lcov-report/form/textAreaStyles.ts.html +8 -11
  86. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  87. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  88. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  89. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  90. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  91. package/coverage/lcov-report/form/useResizingTextArea.ts.html +631 -0
  92. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +631 -0
  93. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  94. package/coverage/lcov-report/form/utils.ts.html +209 -170
  95. package/coverage/lcov-report/getListItemHeight.ts.html +298 -0
  96. package/coverage/lcov-report/icon/FontIcon.tsx.html +64 -64
  97. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  98. package/coverage/lcov-report/icon/index.html +19 -19
  99. package/coverage/lcov-report/index.html +1 -1
  100. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +679 -0
  101. package/coverage/lcov-report/interaction/config.ts.html +181 -0
  102. package/coverage/lcov-report/interaction/index.html +33 -18
  103. package/coverage/lcov-report/list/List.tsx.html +490 -0
  104. package/coverage/lcov-report/list/ListItem.tsx.html +886 -0
  105. package/coverage/lcov-report/list/ListItemAddon.tsx.html +286 -0
  106. package/coverage/lcov-report/list/ListItemChildren.tsx.html +445 -0
  107. package/coverage/lcov-report/list/ListItemLink.tsx.html +5 -5
  108. package/coverage/lcov-report/list/index.html +81 -6
  109. package/coverage/lcov-report/list/listItemStyles.ts.html +703 -0
  110. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  111. package/coverage/lcov-report/media-queries/index.html +1 -1
  112. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
  113. package/coverage/lcov-report/menu/Menu.tsx.html +276 -252
  114. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  115. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +433 -0
  116. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  117. package/coverage/lcov-report/menu/index.html +14 -44
  118. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  119. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  120. package/coverage/lcov-report/movement/index.html +19 -19
  121. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  122. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  123. package/coverage/lcov-report/positioning/index.html +30 -30
  124. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  125. package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
  126. package/coverage/lcov-report/progress/index.html +19 -34
  127. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  128. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  129. package/coverage/lcov-report/searching/index.html +146 -0
  130. package/coverage/lcov-report/searching/toSearchQuery.ts.html +145 -0
  131. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +211 -0
  132. package/coverage/lcov-report/searching/utils.ts.html +244 -0
  133. package/coverage/lcov-report/sheet/index.html +8 -8
  134. package/coverage/lcov-report/sheet/styles.ts.html +376 -0
  135. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +400 -0
  136. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  137. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  138. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  139. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  140. package/coverage/lcov-report/snackbar/index.html +59 -14
  141. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  142. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  143. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  144. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  145. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  146. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  147. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  148. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  149. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +143 -23
  150. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  151. package/coverage/lcov-report/src/app-bar/index.html +5 -5
  152. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +364 -0
  153. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +304 -0
  154. package/coverage/lcov-report/src/autocomplete/index.html +221 -0
  155. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +637 -0
  156. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +829 -0
  157. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +715 -0
  158. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +430 -0
  159. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +241 -0
  160. package/coverage/lcov-report/src/autocomplete/utils.ts.html +196 -0
  161. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +2 -2
  162. package/coverage/lcov-report/src/avatar/index.html +1 -1
  163. package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
  164. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  165. package/coverage/lcov-report/src/badge/index.html +1 -1
  166. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  167. package/coverage/lcov-report/src/box/index.html +23 -8
  168. package/coverage/lcov-report/src/box/styles.ts.html +46 -46
  169. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
  170. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  171. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  172. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +11 -11
  173. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +445 -0
  174. package/coverage/lcov-report/src/button/buttonStyles.ts.html +52 -52
  175. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  176. package/coverage/lcov-report/src/button/index.html +8 -23
  177. package/coverage/lcov-report/src/card/Card.tsx.html +37 -31
  178. package/coverage/lcov-report/src/card/CardContent.tsx.html +4 -4
  179. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  180. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  181. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  182. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  183. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +400 -0
  184. package/coverage/lcov-report/src/card/index.html +24 -9
  185. package/coverage/lcov-report/src/card/styles.ts.html +58 -31
  186. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  187. package/coverage/lcov-report/src/chip/index.html +7 -7
  188. package/coverage/lcov-report/src/chip/styles.ts.html +9 -12
  189. package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
  190. package/coverage/lcov-report/src/delegateEvent.ts.html +109 -109
  191. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
  192. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
  193. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
  194. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
  195. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
  196. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
  197. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  198. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
  199. package/coverage/lcov-report/src/dialog/index.html +129 -9
  200. package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
  201. package/coverage/lcov-report/src/divider/Divider.tsx.html +4 -7
  202. package/coverage/lcov-report/src/divider/index.html +5 -5
  203. package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
  204. package/coverage/lcov-report/src/draggable/index.html +27 -27
  205. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +47 -44
  206. package/coverage/lcov-report/src/draggable/utils.ts.html +29 -131
  207. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  208. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  209. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
  210. package/coverage/lcov-report/src/expansion-panel/index.html +8 -8
  211. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  212. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +36 -24
  213. package/coverage/lcov-report/src/focus/index.html +1 -1
  214. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
  215. package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
  216. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  217. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  218. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  219. package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
  220. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  221. package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
  222. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +5 -5
  223. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  224. package/coverage/lcov-report/src/form/InputToggle.tsx.html +110 -110
  225. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +63 -63
  226. package/coverage/lcov-report/src/form/Label.tsx.html +98 -98
  227. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  228. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
  229. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
  230. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
  231. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
  232. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  233. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
  234. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
  235. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  236. package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
  237. package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
  238. package/coverage/lcov-report/src/form/Radio.tsx.html +3 -3
  239. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +988 -0
  240. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +310 -0
  241. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1122
  242. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  243. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +694 -0
  244. package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
  245. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  246. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  247. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  248. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
  249. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  250. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
  251. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
  252. package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
  253. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
  254. package/coverage/lcov-report/src/form/TextArea.tsx.html +646 -580
  255. package/coverage/lcov-report/src/form/TextArea2.tsx.html +985 -0
  256. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +985 -0
  257. package/coverage/lcov-report/src/form/TextField.tsx.html +3 -3
  258. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
  259. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
  260. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +8 -8
  261. package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
  262. package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
  263. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
  264. package/coverage/lcov-report/src/form/index.html +81 -21
  265. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  266. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  267. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
  268. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  269. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  270. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  271. package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
  272. package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
  273. package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
  274. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  275. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  276. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  277. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
  278. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  279. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  280. package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
  281. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  282. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
  283. package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
  284. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +47 -47
  285. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
  286. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +405 -294
  287. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  288. package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
  289. package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
  290. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  291. package/coverage/lcov-report/src/form/validation.ts.html +1 -1
  292. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  293. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +98 -98
  294. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +19 -19
  295. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
  296. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +5 -8
  297. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
  298. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
  299. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  300. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  301. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
  302. package/coverage/lcov-report/src/icon/index.html +10 -145
  303. package/coverage/lcov-report/src/icon/material.ts.html +1 -1
  304. package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
  305. package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
  306. package/coverage/lcov-report/src/index.html +10 -10
  307. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
  308. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
  309. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
  310. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  311. package/coverage/lcov-report/src/interaction/index.html +1 -1
  312. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +123 -123
  313. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +19 -19
  314. package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
  315. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  316. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  317. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  318. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  319. package/coverage/lcov-report/src/layout/index.html +15 -15
  320. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  321. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  322. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  323. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  324. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  325. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +20 -32
  326. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  327. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  328. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  329. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  330. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
  331. package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
  332. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  333. package/coverage/lcov-report/src/link/index.html +1 -1
  334. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  335. package/coverage/lcov-report/src/list/List.tsx.html +1 -1
  336. package/coverage/lcov-report/src/list/ListItem.tsx.html +158 -137
  337. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +45 -39
  338. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +88 -82
  339. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +5 -5
  340. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  341. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  342. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
  343. package/coverage/lcov-report/src/list/index.html +13 -13
  344. package/coverage/lcov-report/src/list/listItemStyles.ts.html +102 -72
  345. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +54 -54
  346. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  347. package/coverage/lcov-report/src/media-queries/index.html +1 -1
  348. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +28 -28
  349. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
  350. package/coverage/lcov-report/src/menu/Menu.tsx.html +4 -4
  351. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  352. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
  353. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  354. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  355. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
  356. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +433 -0
  357. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  358. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
  359. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
  360. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  361. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  362. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  363. package/coverage/lcov-report/src/menu/index.html +13 -238
  364. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  365. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  366. package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
  367. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  368. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  369. package/coverage/lcov-report/src/movement/index.html +17 -62
  370. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +3 -3
  371. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  372. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
  373. package/coverage/lcov-report/src/overlay/index.html +1 -1
  374. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
  375. package/coverage/lcov-report/src/portal/Portal.tsx.html +7 -7
  376. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +59 -35
  377. package/coverage/lcov-report/src/portal/index.html +7 -7
  378. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  379. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +47 -47
  380. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +55 -55
  381. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +89 -89
  382. package/coverage/lcov-report/src/positioning/index.html +1 -1
  383. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +193 -193
  384. package/coverage/lcov-report/src/positioning/utils.ts.html +59 -59
  385. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +83 -83
  386. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +3 -3
  387. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  388. package/coverage/lcov-report/src/progress/index.html +20 -5
  389. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  390. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  391. package/coverage/lcov-report/src/responsive-item/index.html +1 -1
  392. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  393. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  394. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
  395. package/coverage/lcov-report/src/scroll/index.html +1 -1
  396. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
  397. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
  398. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
  399. package/coverage/lcov-report/src/segmented-button/index.html +1 -1
  400. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
  401. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  402. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  403. package/coverage/lcov-report/src/sheet/index.html +5 -5
  404. package/coverage/lcov-report/src/sheet/styles.ts.html +45 -48
  405. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +80 -80
  406. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +21 -45
  407. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +108 -93
  408. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  409. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
  410. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +48 -48
  411. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +278 -275
  412. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +6 -6
  413. package/coverage/lcov-report/src/snackbar/index.html +19 -19
  414. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +15 -15
  415. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +14 -14
  416. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +27 -27
  417. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  418. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
  419. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  420. package/coverage/lcov-report/src/suspense/index.html +36 -21
  421. package/coverage/lcov-report/src/table/Table.tsx.html +45 -114
  422. package/coverage/lcov-report/src/table/TableBody.tsx.html +43 -43
  423. package/coverage/lcov-report/src/table/TableCell.tsx.html +109 -298
  424. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +81 -27
  425. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +16 -10
  426. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +20 -20
  427. package/coverage/lcov-report/src/table/TableContainer.tsx.html +7 -28
  428. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  429. package/coverage/lcov-report/src/table/TableFooter.tsx.html +64 -43
  430. package/coverage/lcov-report/src/table/TableHeader.tsx.html +41 -92
  431. package/coverage/lcov-report/src/table/TableRadio.tsx.html +676 -0
  432. package/coverage/lcov-report/src/table/TableRow.tsx.html +38 -119
  433. package/coverage/lcov-report/src/table/index.html +151 -46
  434. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +334 -0
  435. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +142 -0
  436. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +166 -0
  437. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +172 -0
  438. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +169 -0
  439. package/coverage/lcov-report/src/table/tableStyles.ts.html +157 -0
  440. package/coverage/lcov-report/src/tabs/Tab.tsx.html +263 -143
  441. package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
  442. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
  443. package/coverage/lcov-report/src/tabs/index.html +25 -25
  444. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +37 -7
  445. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
  446. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +2 -2
  447. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +64 -28
  448. package/coverage/lcov-report/src/tabs/useTabList.ts.html +44 -38
  449. package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
  450. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  451. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  452. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +402 -261
  453. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
  454. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  455. package/coverage/lcov-report/src/test-utils/index.html +12 -117
  456. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
  457. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +55 -55
  458. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  459. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  460. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  461. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  462. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  463. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  464. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  465. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  466. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  467. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  468. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  469. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  470. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
  471. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  472. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  473. package/coverage/lcov-report/src/theme/index.html +1 -1
  474. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +25 -25
  475. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  476. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  477. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  478. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  479. package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
  480. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +62 -62
  481. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +3 -3
  482. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  483. package/coverage/lcov-report/src/tooltip/index.html +9 -9
  484. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +12 -12
  485. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +243 -222
  486. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +27 -27
  487. package/coverage/lcov-report/src/tooltip/utils.ts.html +22 -22
  488. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  489. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  490. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  491. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  492. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +374 -338
  493. package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
  494. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  495. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +1 -1
  496. package/coverage/lcov-report/src/transition/config.ts.html +5 -5
  497. package/coverage/lcov-report/src/transition/index.html +49 -34
  498. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  499. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +400 -0
  500. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +68 -68
  501. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  502. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +10 -64
  503. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  504. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  505. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  506. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +607 -562
  507. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
  508. package/coverage/lcov-report/src/transition/useTransition.ts.html +232 -232
  509. package/coverage/lcov-report/src/transition/utils.ts.html +45 -45
  510. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +18 -6
  511. package/coverage/lcov-report/src/tree/Tree.tsx.html +20 -8
  512. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +1 -1
  513. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +7 -10
  514. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
  515. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +1 -1
  516. package/coverage/lcov-report/src/tree/index.html +16 -196
  517. package/coverage/lcov-report/src/tree/styles.ts.html +4 -31
  518. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  519. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  520. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
  521. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +87 -87
  522. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  523. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  524. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
  525. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  526. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  527. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
  528. package/coverage/lcov-report/src/typography/index.html +1 -1
  529. package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
  530. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +246 -240
  531. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  532. package/coverage/lcov-report/src/useElementSize.ts.html +334 -0
  533. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  534. package/coverage/lcov-report/src/useEnsuredRef.ts.html +14 -14
  535. package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
  536. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  537. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
  538. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  539. package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
  540. package/coverage/lcov-report/src/useOrientation.ts.html +30 -30
  541. package/coverage/lcov-report/src/usePageInactive.ts.html +30 -30
  542. package/coverage/lcov-report/src/useResizeListener.ts.html +38 -32
  543. package/coverage/lcov-report/src/useResizeObserver.ts.html +133 -244
  544. package/coverage/lcov-report/src/useThrottledFunction.ts.html +57 -51
  545. package/coverage/lcov-report/src/useToggle.ts.html +1 -1
  546. package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
  547. package/coverage/lcov-report/src/useWindowSize.ts.html +124 -94
  548. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  549. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  550. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  551. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  552. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  553. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  554. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +163 -0
  555. package/coverage/lcov-report/src/utils/getPercentage.ts.html +9 -9
  556. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +66 -87
  557. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +7 -7
  558. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  559. package/coverage/lcov-report/src/utils/index.html +13 -253
  560. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
  561. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +118 -0
  562. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  563. package/coverage/lcov-report/src/utils/nearest.ts.html +21 -21
  564. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +18 -18
  565. package/coverage/lcov-report/src/utils/randomInt.ts.html +52 -52
  566. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  567. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  568. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  569. package/coverage/lcov-report/src/window-splitter/index.html +14 -14
  570. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +19 -67
  571. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +256 -0
  572. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +283 -0
  573. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +202 -0
  574. package/coverage/lcov-report/suspense/index.html +131 -0
  575. package/coverage/lcov-report/tabIndicatorStyles.ts.html +43 -13
  576. package/coverage/lcov-report/tabListStyles.ts.html +35 -26
  577. package/coverage/lcov-report/tabStyles.ts.html +68 -26
  578. package/coverage/lcov-report/tabs/Tab.tsx.html +233 -143
  579. package/coverage/lcov-report/tabs/TabList.tsx.html +85 -85
  580. package/coverage/lcov-report/tabs/index.html +56 -11
  581. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +187 -0
  582. package/coverage/lcov-report/tabs/tabListStyles.ts.html +241 -0
  583. package/coverage/lcov-report/tabs/tabStyles.ts.html +253 -0
  584. package/coverage/lcov-report/tabs/useTabList.ts.html +736 -0
  585. package/coverage/lcov-report/tabs/useTabs.ts.html +1 -1
  586. package/coverage/lcov-report/tabs/utils.ts.html +1 -1
  587. package/coverage/lcov-report/test-utils/index.html +21 -21
  588. package/coverage/lcov-report/test-utils/use.ts.html +187 -0
  589. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +62 -62
  590. package/coverage/lcov-report/tooltip/index.html +10 -70
  591. package/coverage/lcov-report/tooltip/useTooltip.ts.html +243 -222
  592. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +595 -0
  593. package/coverage/lcov-report/transition/config.ts.html +5 -5
  594. package/coverage/lcov-report/transition/index.html +1 -1
  595. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +400 -0
  596. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  597. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +952 -0
  598. package/coverage/lcov-report/tree/TreeItem.tsx.html +7 -10
  599. package/coverage/lcov-report/tree/index.html +17 -47
  600. package/coverage/lcov-report/tree/styles.ts.html +538 -0
  601. package/coverage/lcov-report/tree/useTreeMovement.ts.html +140 -143
  602. package/coverage/lcov-report/typography/Typography.tsx.html +138 -432
  603. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +75 -75
  604. package/coverage/lcov-report/typography/index.html +18 -18
  605. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  606. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  607. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  608. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  609. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  610. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +952 -0
  611. package/coverage/lcov-report/useTabList.ts.html +142 -136
  612. package/coverage/lcov-report/useWindowSplitter.ts.html +640 -0
  613. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +256 -0
  614. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  615. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  616. package/coverage/lcov-report/utils/index.html +15 -30
  617. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  618. package/coverage/lcov-report/utils/randomInt.ts.html +148 -0
  619. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  620. package/coverage/lcov-report/utils/wait.ts.html +1 -1
  621. package/coverage/lcov-report/utils.ts.html +109 -277
  622. package/coverage/lcov-report/window-splitter/index.html +21 -36
  623. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +406 -328
  624. package/dist/RootHtml.d.ts +62 -0
  625. package/dist/RootHtml.js +49 -0
  626. package/dist/RootHtml.js.map +1 -0
  627. package/dist/_box-shadows.scss +12 -2
  628. package/dist/_core.scss +207 -253
  629. package/dist/_utils.scss +89 -0
  630. package/dist/app-bar/AppBar.d.ts +4 -9
  631. package/dist/app-bar/AppBar.js +29 -7
  632. package/dist/app-bar/AppBar.js.map +1 -1
  633. package/dist/app-bar/_app-bar.scss +114 -122
  634. package/dist/avatar/Avatar.d.ts +15 -1
  635. package/dist/avatar/Avatar.js +5 -2
  636. package/dist/avatar/Avatar.js.map +1 -1
  637. package/dist/avatar/_avatar.scss +74 -81
  638. package/dist/badge/_badge.scss +97 -59
  639. package/dist/box/_box.scss +72 -81
  640. package/dist/button/TooltippedButton.d.ts +62 -0
  641. package/dist/button/TooltippedButton.js +62 -0
  642. package/dist/button/TooltippedButton.js.map +1 -0
  643. package/dist/button/_button.scss +170 -180
  644. package/dist/card/Card.js +3 -2
  645. package/dist/card/Card.js.map +1 -1
  646. package/dist/card/CardContent.js +1 -1
  647. package/dist/card/CardContent.js.map +1 -1
  648. package/dist/card/ClickableCard.d.ts +42 -0
  649. package/dist/card/ClickableCard.js +73 -0
  650. package/dist/card/ClickableCard.js.map +1 -0
  651. package/dist/card/_card.scss +81 -82
  652. package/dist/card/styles.d.ts +8 -0
  653. package/dist/card/styles.js +6 -3
  654. package/dist/card/styles.js.map +1 -1
  655. package/dist/chip/_chip.scss +137 -148
  656. package/dist/dialog/FixedDialog.d.ts +5 -4
  657. package/dist/dialog/FixedDialog.js +5 -4
  658. package/dist/dialog/FixedDialog.js.map +1 -1
  659. package/dist/dialog/_dialog.scss +179 -162
  660. package/dist/divider/Divider.d.ts +0 -1
  661. package/dist/divider/Divider.js.map +1 -1
  662. package/dist/divider/_divider.scss +61 -70
  663. package/dist/draggable/_draggable.scss +16 -12
  664. package/dist/draggable/useDraggable.d.ts +12 -23
  665. package/dist/draggable/useDraggable.js +15 -6
  666. package/dist/draggable/useDraggable.js.map +1 -1
  667. package/dist/draggable/utils.d.ts +4 -17
  668. package/dist/draggable/utils.js +9 -25
  669. package/dist/draggable/utils.js.map +1 -1
  670. package/dist/expansion-panel/_expansion-panel.scss +76 -50
  671. package/dist/expansion-panel/useExpansionPanels.d.ts +5 -3
  672. package/dist/expansion-panel/useExpansionPanels.js +16 -9
  673. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  674. package/dist/form/Form.d.ts +1 -1
  675. package/dist/form/Form.js +2 -1
  676. package/dist/form/Form.js.map +1 -1
  677. package/dist/form/Label.d.ts +5 -5
  678. package/dist/form/Label.js.map +1 -1
  679. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  680. package/dist/form/MenuItemInputToggle.js +26 -37
  681. package/dist/form/MenuItemInputToggle.js.map +1 -1
  682. package/dist/form/NativeSelect.d.ts +5 -2
  683. package/dist/form/NativeSelect.js.map +1 -1
  684. package/dist/form/Option.js +3 -2
  685. package/dist/form/Option.js.map +1 -1
  686. package/dist/form/ResizingTextAreaWrapper.d.ts +19 -0
  687. package/dist/form/ResizingTextAreaWrapper.js +35 -0
  688. package/dist/form/ResizingTextAreaWrapper.js.map +1 -0
  689. package/dist/form/Select.d.ts +105 -15
  690. package/dist/form/Select.js +160 -244
  691. package/dist/form/Select.js.map +1 -1
  692. package/dist/form/SelectedOption.d.ts +21 -0
  693. package/dist/form/SelectedOption.js +37 -0
  694. package/dist/form/SelectedOption.js.map +1 -0
  695. package/dist/form/TextArea.d.ts +11 -0
  696. package/dist/form/TextArea.js +19 -29
  697. package/dist/form/TextArea.js.map +1 -1
  698. package/dist/form/TextField.d.ts +2 -2
  699. package/dist/form/TextField.js +7 -6
  700. package/dist/form/TextField.js.map +1 -1
  701. package/dist/form/TextFieldContainer.js +2 -2
  702. package/dist/form/TextFieldContainer.js.map +1 -1
  703. package/dist/form/_form.scss +1336 -1260
  704. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  705. package/dist/form/menuItemInputToggleStyles.js +31 -0
  706. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  707. package/dist/form/selectUtils.d.ts +1 -3
  708. package/dist/form/selectUtils.js +2 -10
  709. package/dist/form/selectUtils.js.map +1 -1
  710. package/dist/form/textAreaStyles.d.ts +2 -2
  711. package/dist/form/textAreaStyles.js.map +1 -1
  712. package/dist/form/{TextFieldContainerStyles.d.ts → textFieldContainerStyles.d.ts} +7 -7
  713. package/dist/form/{TextFieldContainerStyles.js → textFieldContainerStyles.js} +1 -1
  714. package/dist/form/textFieldContainerStyles.js.map +1 -0
  715. package/dist/form/types.d.ts +6 -8
  716. package/dist/form/types.js.map +1 -1
  717. package/dist/form/useCombobox.d.ts +157 -0
  718. package/dist/form/useCombobox.js +206 -0
  719. package/dist/form/useCombobox.js.map +1 -0
  720. package/dist/form/useEditableCombobox.d.ts +15 -0
  721. package/dist/form/useEditableCombobox.js +101 -0
  722. package/dist/form/useEditableCombobox.js.map +1 -0
  723. package/dist/form/useFormReset.d.ts +16 -0
  724. package/dist/form/useFormReset.js +32 -0
  725. package/dist/form/useFormReset.js.map +1 -0
  726. package/dist/form/useListboxProvider.d.ts +4 -2
  727. package/dist/form/useListboxProvider.js +6 -8
  728. package/dist/form/useListboxProvider.js.map +1 -1
  729. package/dist/form/useResizingTextArea.d.ts +5 -2
  730. package/dist/form/useResizingTextArea.js +52 -21
  731. package/dist/form/useResizingTextArea.js.map +1 -1
  732. package/dist/form/useSelectCombobox.d.ts +17 -0
  733. package/dist/form/useSelectCombobox.js +36 -0
  734. package/dist/form/useSelectCombobox.js.map +1 -0
  735. package/dist/form/utils.d.ts +11 -1
  736. package/dist/form/utils.js +6 -0
  737. package/dist/form/utils.js.map +1 -1
  738. package/dist/icon/IconRotator.js +2 -3
  739. package/dist/icon/IconRotator.js.map +1 -1
  740. package/dist/icon/_icon.scss +105 -112
  741. package/dist/index.d.ts +23 -2
  742. package/dist/index.js +23 -2
  743. package/dist/index.js.map +1 -1
  744. package/dist/interaction/_interaction.scss +144 -135
  745. package/dist/layout/_layout.scss +82 -86
  746. package/dist/layout/useLayoutAppBarHeight.js +5 -9
  747. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  748. package/dist/link/_link.scss +74 -66
  749. package/dist/list/ListItem.d.ts +8 -3
  750. package/dist/list/ListItem.js +4 -3
  751. package/dist/list/ListItem.js.map +1 -1
  752. package/dist/list/ListItemAddon.js +2 -1
  753. package/dist/list/ListItemAddon.js.map +1 -1
  754. package/dist/list/ListItemChildren.js +3 -2
  755. package/dist/list/ListItemChildren.js.map +1 -1
  756. package/dist/list/ListItemLink.js +3 -3
  757. package/dist/list/ListItemLink.js.map +1 -1
  758. package/dist/list/_list.scss +187 -184
  759. package/dist/list/getListItemHeight.d.ts +0 -1
  760. package/dist/list/getListItemHeight.js +2 -2
  761. package/dist/list/getListItemHeight.js.map +1 -1
  762. package/dist/list/listItemStyles.d.ts +9 -1
  763. package/dist/list/listItemStyles.js +5 -5
  764. package/dist/list/listItemStyles.js.map +1 -1
  765. package/dist/list/types.d.ts +25 -6
  766. package/dist/list/types.js.map +1 -1
  767. package/dist/menu/Menu.d.ts +1 -1
  768. package/dist/menu/Menu.js +12 -1
  769. package/dist/menu/Menu.js.map +1 -1
  770. package/dist/menu/MenuItemCircularProgress.d.ts +60 -0
  771. package/dist/menu/MenuItemCircularProgress.js +74 -0
  772. package/dist/menu/MenuItemCircularProgress.js.map +1 -0
  773. package/dist/menu/_menu.scss +29 -50
  774. package/dist/menu/useContextMenu.d.ts +3 -3
  775. package/dist/menu/useContextMenu.js +3 -3
  776. package/dist/menu/useContextMenu.js.map +1 -1
  777. package/dist/movement/types.d.ts +40 -21
  778. package/dist/movement/types.js.map +1 -1
  779. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  780. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  781. package/dist/movement/utils.d.ts +7 -2
  782. package/dist/movement/utils.js +10 -0
  783. package/dist/movement/utils.js.map +1 -1
  784. package/dist/overlay/_overlay.scss +39 -42
  785. package/dist/portal/PortalContainerProvider.d.ts +2 -2
  786. package/dist/portal/PortalContainerProvider.js +6 -1
  787. package/dist/portal/PortalContainerProvider.js.map +1 -1
  788. package/dist/positioning/useFixedPositioning.js +0 -8
  789. package/dist/positioning/useFixedPositioning.js.map +1 -1
  790. package/dist/progress/_progress.scss +33 -33
  791. package/dist/responsive-item/_responsive-item.scss +91 -89
  792. package/dist/searching/caseInsensitive.d.ts +150 -0
  793. package/dist/searching/caseInsensitive.js +30 -0
  794. package/dist/searching/caseInsensitive.js.map +1 -0
  795. package/dist/searching/fuzzy.d.ts +128 -0
  796. package/dist/searching/fuzzy.js +54 -0
  797. package/dist/searching/fuzzy.js.map +1 -0
  798. package/dist/searching/toSearchQuery.d.ts +7 -0
  799. package/dist/searching/toSearchQuery.js +15 -0
  800. package/dist/searching/toSearchQuery.js.map +1 -0
  801. package/dist/searching/types.d.ts +28 -0
  802. package/dist/searching/types.js +5 -0
  803. package/dist/searching/types.js.map +1 -0
  804. package/dist/searching/useFuzzyMatch.d.ts +19 -0
  805. package/dist/searching/useFuzzyMatch.js +26 -0
  806. package/dist/searching/useFuzzyMatch.js.map +1 -0
  807. package/dist/searching/utils.d.ts +21 -0
  808. package/dist/searching/utils.js +28 -0
  809. package/dist/searching/utils.js.map +1 -0
  810. package/dist/segmented-button/_segmented-button.scss +86 -92
  811. package/dist/sheet/_sheet.scss +107 -123
  812. package/dist/sheet/styles.d.ts +14 -15
  813. package/dist/sheet/styles.js.map +1 -1
  814. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  815. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  816. package/dist/snackbar/Snackbar.d.ts +10 -10
  817. package/dist/snackbar/Snackbar.js +3 -3
  818. package/dist/snackbar/Snackbar.js.map +1 -1
  819. package/dist/snackbar/Toast.d.ts +1 -1
  820. package/dist/snackbar/Toast.js +5 -1
  821. package/dist/snackbar/Toast.js.map +1 -1
  822. package/dist/snackbar/ToastManager.d.ts +2 -1
  823. package/dist/snackbar/ToastManager.js +1 -1
  824. package/dist/snackbar/ToastManager.js.map +1 -1
  825. package/dist/snackbar/_snackbar.scss +148 -144
  826. package/dist/snackbar/snackbarStyles.d.ts +1 -0
  827. package/dist/snackbar/snackbarStyles.js +2 -1
  828. package/dist/snackbar/snackbarStyles.js.map +1 -1
  829. package/dist/table/TableCheckbox.d.ts +3 -2
  830. package/dist/table/TableCheckbox.js +4 -2
  831. package/dist/table/TableCheckbox.js.map +1 -1
  832. package/dist/table/TableRadio.d.ts +3 -2
  833. package/dist/table/TableRadio.js +4 -2
  834. package/dist/table/TableRadio.js.map +1 -1
  835. package/dist/table/_table.scss +214 -227
  836. package/dist/table/tableCellStyles.d.ts +1 -1
  837. package/dist/table/tableCellStyles.js.map +1 -1
  838. package/dist/tabs/Tab.d.ts +24 -3
  839. package/dist/tabs/Tab.js +15 -8
  840. package/dist/tabs/Tab.js.map +1 -1
  841. package/dist/tabs/_tabs.scss +62 -53
  842. package/dist/tabs/tabIndicatorStyles.d.ts +2 -1
  843. package/dist/tabs/tabIndicatorStyles.js +6 -3
  844. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  845. package/dist/tabs/tabListStyles.js +2 -1
  846. package/dist/tabs/tabListStyles.js.map +1 -1
  847. package/dist/tabs/tabStyles.d.ts +2 -0
  848. package/dist/tabs/tabStyles.js +6 -3
  849. package/dist/tabs/tabStyles.js.map +1 -1
  850. package/dist/tabs/useTabList.d.ts +3 -3
  851. package/dist/tabs/useTabList.js +9 -6
  852. package/dist/tabs/useTabList.js.map +1 -1
  853. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  854. package/dist/test-utils/ResizeObserver.d.ts +214 -0
  855. package/dist/test-utils/ResizeObserver.js +69 -49
  856. package/dist/test-utils/ResizeObserver.js.map +1 -1
  857. package/dist/test-utils/data-testid.d.ts +7 -0
  858. package/dist/test-utils/data-testid.js +1 -0
  859. package/dist/test-utils/data-testid.js.map +1 -1
  860. package/dist/test-utils/drag.d.ts +26 -0
  861. package/dist/test-utils/index.d.ts +7 -0
  862. package/dist/test-utils/jest-setup.d.ts +1 -0
  863. package/dist/test-utils/matchMedia.d.ts +101 -0
  864. package/dist/test-utils/matchMedia.js +2 -2
  865. package/dist/test-utils/matchMedia.js.map +1 -1
  866. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  867. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  868. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  869. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  870. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  871. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  872. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  873. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  874. package/dist/test-utils/polyfills/index.d.ts +7 -0
  875. package/dist/test-utils/polyfills/index.js +2 -0
  876. package/dist/test-utils/polyfills/index.js.map +1 -1
  877. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  878. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  879. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  880. package/dist/test-utils/render.d.ts +13 -0
  881. package/dist/test-utils/timers.d.ts +39 -0
  882. package/dist/theme/_theme.scss +243 -133
  883. package/dist/tooltip/_tooltip.scss +76 -83
  884. package/dist/tooltip/useTooltip.d.ts +14 -14
  885. package/dist/tooltip/useTooltip.js.map +1 -1
  886. package/dist/transition/SkeletonPlaceholder.d.ts +2 -2
  887. package/dist/transition/SkeletonPlaceholder.js +8 -3
  888. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  889. package/dist/transition/_transition.scss +89 -78
  890. package/dist/transition/skeletonPlaceholderUtils.d.ts +77 -0
  891. package/dist/transition/skeletonPlaceholderUtils.js +38 -0
  892. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  893. package/dist/transition/useCollapseTransition.d.ts +3 -18
  894. package/dist/transition/useCollapseTransition.js +1 -10
  895. package/dist/transition/useCollapseTransition.js.map +1 -1
  896. package/dist/transition/useSkeletonPlaceholder.d.ts +12 -7
  897. package/dist/transition/useSkeletonPlaceholder.js +38 -37
  898. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  899. package/dist/transition/utils.js +7 -2
  900. package/dist/transition/utils.js.map +1 -1
  901. package/dist/tree/DefaultTreeItemRenderer.d.ts +2 -2
  902. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  903. package/dist/tree/Tree.d.ts +8 -4
  904. package/dist/tree/Tree.js.map +1 -1
  905. package/dist/tree/TreeItem.js +3 -4
  906. package/dist/tree/TreeItem.js.map +1 -1
  907. package/dist/tree/_tree.scss +111 -109
  908. package/dist/tree/styles.d.ts +0 -6
  909. package/dist/tree/styles.js +1 -2
  910. package/dist/tree/styles.js.map +1 -1
  911. package/dist/tree/useTreeMovement.js +1 -1
  912. package/dist/tree/useTreeMovement.js.map +1 -1
  913. package/dist/types.d.ts +13 -0
  914. package/dist/types.js +1 -2
  915. package/dist/types.js.map +1 -1
  916. package/dist/typography/SrOnly.d.ts +3 -3
  917. package/dist/typography/SrOnly.js +4 -4
  918. package/dist/typography/SrOnly.js.map +1 -1
  919. package/dist/typography/Typography.d.ts +19 -19
  920. package/dist/typography/Typography.js +19 -19
  921. package/dist/typography/Typography.js.map +1 -1
  922. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  923. package/dist/typography/WritingDirectionProvider.js +2 -2
  924. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  925. package/dist/typography/_typography.scss +141 -87
  926. package/dist/useDebouncedFunction.d.ts +2 -2
  927. package/dist/useDebouncedFunction.js +10 -6
  928. package/dist/useDebouncedFunction.js.map +1 -1
  929. package/dist/useElementSize.d.ts +40 -0
  930. package/dist/useElementSize.js +53 -0
  931. package/dist/useElementSize.js.map +1 -0
  932. package/dist/useEnsuredState.d.ts +1 -1
  933. package/dist/useEnsuredState.js.map +1 -1
  934. package/dist/useResizeListener.d.ts +1 -1
  935. package/dist/useResizeListener.js +1 -0
  936. package/dist/useResizeListener.js.map +1 -1
  937. package/dist/useResizeObserver.d.ts +4 -43
  938. package/dist/useResizeObserver.js +4 -43
  939. package/dist/useResizeObserver.js.map +1 -1
  940. package/dist/useThrottledFunction.d.ts +2 -2
  941. package/dist/useThrottledFunction.js +20 -16
  942. package/dist/useThrottledFunction.js.map +1 -1
  943. package/dist/useWindowSize.d.ts +14 -11
  944. package/dist/useWindowSize.js +12 -7
  945. package/dist/useWindowSize.js.map +1 -1
  946. package/dist/utils/alphaNumericSort.d.ts +1 -1
  947. package/dist/utils/alphaNumericSort.js +2 -10
  948. package/dist/utils/alphaNumericSort.js.map +1 -1
  949. package/dist/utils/getMiddleOfRange.d.ts +13 -0
  950. package/dist/utils/getMiddleOfRange.js +20 -0
  951. package/dist/utils/getMiddleOfRange.js.map +1 -0
  952. package/dist/utils/getRangeDefaultValue.d.ts +3 -5
  953. package/dist/utils/getRangeDefaultValue.js +3 -13
  954. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  955. package/dist/utils/getRangeSteps.d.ts +1 -1
  956. package/dist/utils/getRangeSteps.js +2 -2
  957. package/dist/utils/getRangeSteps.js.map +1 -1
  958. package/dist/utils/nearest.js +1 -1
  959. package/dist/utils/nearest.js.map +1 -1
  960. package/dist/window-splitter/_window-splitter.scss +83 -112
  961. package/dist/window-splitter/useWindowSplitter.d.ts +3 -5
  962. package/dist/window-splitter/useWindowSplitter.js +3 -11
  963. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  964. package/jest.config.ts +4 -0
  965. package/package.json +374 -32
  966. package/scripts/{copySassFiles.js → copySassFiles.ts} +5 -5
  967. package/scripts/tsconfig.json +18 -0
  968. package/src/RootHtml.tsx +95 -0
  969. package/src/__tests__/RootHtml.node.tsx +46 -0
  970. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  971. package/src/__tests__/useDebouncedFunction.tsx +65 -24
  972. package/src/__tests__/useElementSize.tsx +181 -0
  973. package/src/__tests__/useThrottledFunction.tsx +54 -0
  974. package/src/__tests__/useWindowSize.node.tsx +56 -0
  975. package/src/__tests__/useWindowSize.tsx +156 -0
  976. package/src/_box-shadows.scss +12 -2
  977. package/src/_core.scss +207 -253
  978. package/src/_utils.scss +89 -0
  979. package/src/app-bar/AppBar.tsx +59 -19
  980. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +21 -21
  981. package/src/app-bar/_app-bar.scss +114 -122
  982. package/src/avatar/Avatar.tsx +25 -4
  983. package/src/avatar/__tests__/Avatar.tsx +1 -1
  984. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  985. package/src/avatar/_avatar.scss +74 -81
  986. package/src/badge/_badge.scss +97 -59
  987. package/src/box/_box.scss +72 -81
  988. package/src/button/TooltippedButton.tsx +120 -0
  989. package/src/button/__tests__/TooltippedButton.tsx +60 -0
  990. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  991. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +26 -0
  992. package/src/button/_button.scss +170 -180
  993. package/src/card/Card.tsx +5 -3
  994. package/src/card/CardContent.tsx +3 -3
  995. package/src/card/ClickableCard.tsx +105 -0
  996. package/src/card/__tests__/ClickableCard.tsx +66 -0
  997. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  998. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  999. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +20 -0
  1000. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  1001. package/src/card/_card.scss +81 -82
  1002. package/src/card/styles.ts +19 -10
  1003. package/src/chip/_chip.scss +137 -148
  1004. package/src/dialog/FixedDialog.tsx +5 -4
  1005. package/src/dialog/_dialog.scss +179 -162
  1006. package/src/divider/Divider.tsx +0 -1
  1007. package/src/divider/_divider.scss +61 -70
  1008. package/src/draggable/_draggable.scss +16 -12
  1009. package/src/draggable/useDraggable.ts +26 -25
  1010. package/src/draggable/utils.ts +16 -50
  1011. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +2 -2
  1012. package/src/expansion-panel/_expansion-panel.scss +76 -50
  1013. package/src/expansion-panel/useExpansionPanels.ts +20 -16
  1014. package/src/form/Form.tsx +2 -1
  1015. package/src/form/Label.tsx +5 -5
  1016. package/src/form/MenuItemInputToggle.tsx +46 -64
  1017. package/src/form/NativeSelect.tsx +6 -3
  1018. package/src/form/Option.tsx +8 -2
  1019. package/src/form/ResizingTextAreaWrapper.tsx +75 -0
  1020. package/src/form/Select.tsx +251 -327
  1021. package/src/form/SelectedOption.tsx +55 -0
  1022. package/src/form/TextArea.tsx +40 -32
  1023. package/src/form/TextField.tsx +19 -19
  1024. package/src/form/TextFieldContainer.tsx +2 -2
  1025. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  1026. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  1027. package/src/form/__tests__/Select.tsx +439 -0
  1028. package/src/form/__tests__/TextArea.tsx +433 -0
  1029. package/src/form/__tests__/TextField.tsx +195 -0
  1030. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  1031. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  1032. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  1033. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  1034. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +548 -0
  1035. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +279 -0
  1036. package/src/form/__tests__/useFormReset.tsx +195 -0
  1037. package/src/form/_form.scss +1336 -1260
  1038. package/src/form/menuItemInputToggleStyles.ts +78 -0
  1039. package/src/form/selectUtils.ts +3 -14
  1040. package/src/form/textAreaStyles.ts +2 -2
  1041. package/src/form/{TextFieldContainerStyles.ts → textFieldContainerStyles.ts} +7 -7
  1042. package/src/form/types.ts +6 -8
  1043. package/src/form/useCombobox.ts +523 -0
  1044. package/src/form/useEditableCombobox.ts +139 -0
  1045. package/src/form/useFormReset.ts +48 -0
  1046. package/src/form/useListboxProvider.ts +9 -7
  1047. package/src/form/useResizingTextArea.ts +66 -25
  1048. package/src/form/useSelectCombobox.ts +70 -0
  1049. package/src/form/utils.ts +17 -4
  1050. package/src/icon/IconRotator.tsx +1 -2
  1051. package/src/icon/_icon.scss +105 -112
  1052. package/src/index.ts +23 -2
  1053. package/src/interaction/_interaction.scss +144 -135
  1054. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +4 -4
  1055. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +1 -1
  1056. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +18 -18
  1057. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +1 -1
  1058. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +1 -1
  1059. package/src/layout/_layout.scss +82 -86
  1060. package/src/layout/useLayoutAppBarHeight.ts +5 -9
  1061. package/src/link/_link.scss +74 -66
  1062. package/src/list/ListItem.tsx +20 -13
  1063. package/src/list/ListItemAddon.tsx +5 -3
  1064. package/src/list/ListItemChildren.tsx +4 -2
  1065. package/src/list/ListItemLink.tsx +4 -4
  1066. package/src/list/__tests__/ListItem.tsx +1 -1
  1067. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +1 -1
  1068. package/src/list/__tests__/getListItemHeight.ts +2 -2
  1069. package/src/list/_list.scss +187 -184
  1070. package/src/list/getListItemHeight.ts +2 -3
  1071. package/src/list/listItemStyles.ts +15 -5
  1072. package/src/list/types.ts +28 -6
  1073. package/src/menu/Menu.tsx +10 -2
  1074. package/src/menu/MenuItemCircularProgress.tsx +116 -0
  1075. package/src/menu/__tests__/MenuItemCircularProgress.tsx +39 -0
  1076. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +68 -0
  1077. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  1078. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  1079. package/src/menu/_menu.scss +29 -50
  1080. package/src/menu/useContextMenu.ts +3 -3
  1081. package/src/movement/types.ts +50 -25
  1082. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  1083. package/src/movement/utils.ts +12 -2
  1084. package/src/overlay/_overlay.scss +39 -42
  1085. package/src/portal/PortalContainerProvider.tsx +10 -2
  1086. package/src/portal/__tests__/PortalContainerProvider.tsx +23 -0
  1087. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  1088. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
  1089. package/src/positioning/useFixedPositioning.ts +0 -6
  1090. package/src/progress/_progress.scss +33 -33
  1091. package/src/responsive-item/_responsive-item.scss +91 -89
  1092. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  1093. package/src/searching/__tests__/fuzzy.ts +169 -0
  1094. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  1095. package/src/searching/__tests__/useFuzzyMatch.tsx +200 -0
  1096. package/src/searching/caseInsensitive.ts +200 -0
  1097. package/src/searching/fuzzy.ts +175 -0
  1098. package/src/searching/toSearchQuery.ts +20 -0
  1099. package/src/searching/types.ts +34 -0
  1100. package/src/searching/useFuzzyMatch.ts +42 -0
  1101. package/src/searching/utils.ts +53 -0
  1102. package/src/segmented-button/_segmented-button.scss +86 -92
  1103. package/src/sheet/_sheet.scss +107 -123
  1104. package/src/sheet/styles.ts +14 -15
  1105. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  1106. package/src/snackbar/Snackbar.tsx +28 -32
  1107. package/src/snackbar/Toast.tsx +7 -2
  1108. package/src/snackbar/ToastManager.tsx +3 -2
  1109. package/src/snackbar/__tests__/Snackbar.tsx +12 -11
  1110. package/src/snackbar/__tests__/ToastManagerProvider.tsx +20 -42
  1111. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  1112. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  1113. package/src/snackbar/_snackbar.scss +148 -144
  1114. package/src/snackbar/snackbarStyles.ts +3 -1
  1115. package/src/suspense/__tests__/CircularProgressSuspense.tsx +90 -0
  1116. package/src/suspense/__tests__/NullSuspense.tsx +46 -0
  1117. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +24 -0
  1118. package/src/table/TableCheckbox.tsx +4 -2
  1119. package/src/table/TableRadio.tsx +4 -2
  1120. package/src/table/_table.scss +214 -227
  1121. package/src/table/tableCellStyles.ts +1 -1
  1122. package/src/tabs/Tab.tsx +110 -70
  1123. package/src/tabs/__tests__/Tab.tsx +25 -2
  1124. package/src/tabs/__tests__/TabList.tsx +4 -4
  1125. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +2 -2
  1126. package/src/tabs/_tabs.scss +62 -53
  1127. package/src/tabs/tabIndicatorStyles.ts +13 -3
  1128. package/src/tabs/tabListStyles.ts +1 -1
  1129. package/src/tabs/tabStyles.ts +16 -4
  1130. package/src/tabs/useTabList.ts +10 -8
  1131. package/src/test-utils/ResizeObserver.ts +100 -53
  1132. package/src/test-utils/__tests__/ResizeObserver.ts +1 -1
  1133. package/src/test-utils/data-testid.ts +5 -1
  1134. package/src/test-utils/matchMedia.ts +2 -2
  1135. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  1136. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  1137. package/src/test-utils/polyfills/index.ts +2 -0
  1138. package/src/theme/_theme.scss +243 -133
  1139. package/src/tooltip/_tooltip.scss +76 -83
  1140. package/src/tooltip/useTooltip.ts +23 -16
  1141. package/src/transition/SkeletonPlaceholder.tsx +18 -6
  1142. package/src/transition/__tests__/SkeletonPlaceholder.tsx +72 -0
  1143. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +24 -0
  1144. package/src/transition/__tests__/utils.ts +25 -0
  1145. package/src/transition/_transition.scss +89 -78
  1146. package/src/transition/skeletonPlaceholderUtils.ts +105 -0
  1147. package/src/transition/useCollapseTransition.ts +6 -24
  1148. package/src/transition/useSkeletonPlaceholder.ts +62 -47
  1149. package/src/transition/utils.ts +10 -5
  1150. package/src/tree/DefaultTreeItemRenderer.tsx +6 -2
  1151. package/src/tree/Tree.tsx +8 -4
  1152. package/src/tree/TreeItem.tsx +3 -4
  1153. package/src/tree/__tests__/Tree.tsx +1 -1
  1154. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +124 -124
  1155. package/src/tree/_tree.scss +111 -109
  1156. package/src/tree/styles.ts +0 -9
  1157. package/src/tree/useTreeMovement.ts +1 -1
  1158. package/src/types.ts +13 -0
  1159. package/src/typography/SrOnly.tsx +9 -9
  1160. package/src/typography/Typography.tsx +19 -19
  1161. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1162. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  1163. package/src/typography/_typography.scss +141 -87
  1164. package/src/useDebouncedFunction.ts +12 -10
  1165. package/src/useElementSize.ts +83 -0
  1166. package/src/useEnsuredState.ts +1 -1
  1167. package/src/useResizeListener.ts +3 -1
  1168. package/src/useResizeObserver.ts +8 -45
  1169. package/src/useThrottledFunction.ts +12 -10
  1170. package/src/useWindowSize.ts +29 -19
  1171. package/src/utils/__tests__/getMiddleOfRange.ts +12 -0
  1172. package/src/utils/__tests__/getRangeDefaultValue.ts +47 -0
  1173. package/src/utils/alphaNumericSort.ts +3 -16
  1174. package/src/utils/getMiddleOfRange.ts +26 -0
  1175. package/src/utils/getRangeDefaultValue.ts +8 -15
  1176. package/src/utils/getRangeSteps.ts +2 -2
  1177. package/src/utils/nearest.ts +1 -1
  1178. package/src/window-splitter/_window-splitter.scss +83 -112
  1179. package/src/window-splitter/useWindowSplitter.ts +12 -28
  1180. package/tsconfig.types.json +1 -1
  1181. package/.turbo/turbo-lint.log +0 -12
  1182. package/.turbo/turbo-test.log +0 -166
  1183. package/dist/divider/VerticalDivider.d.ts +0 -32
  1184. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  1185. package/dist/form/SelectValue.d.ts +0 -17
  1186. package/dist/form/SelectValue.js +0 -32
  1187. package/dist/form/SelectValue.js.map +0 -1
  1188. package/dist/form/TextFieldContainerStyles.js.map +0 -1
  1189. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  1190. package/dist/icon/MaterialIconsProvider.js +0 -17
  1191. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  1192. package/dist/icon/MaterialSymbolsProvider.d.ts +0 -145
  1193. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  1194. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  1195. package/dist/link/LinkProvider.d.ts +0 -29
  1196. package/dist/menu/menuConfig.d.ts +0 -60
  1197. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  1198. package/dist/utils/filters.d.ts +0 -196
  1199. package/dist/utils/filters.js +0 -67
  1200. package/dist/utils/filters.js.map +0 -1
  1201. package/src/form/SelectValue.tsx +0 -39
  1202. package/src/utils/__tests__/filters.ts +0 -279
  1203. package/src/utils/filters.ts +0 -320
@@ -45,117 +45,110 @@ $leave-duration: transition.$linear-duration !default;
45
45
  $leave-timing-function: transition.$acceleration-timing-function !default;
46
46
  $transition-distance: 0.5rem !default;
47
47
 
48
- $var-lookup: (
49
- background-color: (
50
- var: --rmd-tooltip-background-color,
51
- value: $background-color,
52
- ),
53
- color: (
54
- var: --rmd-tooltip-color,
55
- value: $color,
56
- ),
57
- spacing: (
58
- // this is only added so you can safely do:
59
- // @include react-md.tooltip-set-var(spacing, $custom-spacing);
60
- var: --rmd-tooltip-spacing,
61
- value: $spacing,
62
- ),
63
- );
48
+ $variables: (background-color, color, spacing);
64
49
 
65
50
  @function get-var($name, $fallback: null) {
66
- $found: utils.validate($var-lookup, $name, "tooltip var");
67
- $var: map.get($found, var);
68
- $value: if($fallback, $fallback, map.get($found, value));
69
-
70
- @if $value {
71
- @return var(#{$var}, #{$value});
51
+ $var: utils.get-var-name($variables, $name, "tooltip");
52
+ @if $fallback {
53
+ @return var(#{$var}, #{$fallback});
72
54
  }
73
55
 
74
56
  @return var(#{$var});
75
57
  }
76
58
 
77
59
  @mixin set-var($name, $value) {
78
- $var: map.get(utils.validate($var-lookup, $name, "tooltip var"), var);
79
-
80
- #{$var}: #{$value};
60
+ @if $value {
61
+ #{utils.get-var-name($variables, $name, "tooltip")}: #{$value};
62
+ }
81
63
  }
82
64
 
83
65
  @mixin use-var($property, $name: $property, $fallback: null) {
84
66
  #{$property}: get-var($name, $fallback);
85
67
  }
86
68
 
87
- @mixin styles {
69
+ @mixin variables {
70
+ @if not $disable-everything {
71
+ @include set-var(background-color, $background-color);
72
+ @include set-var(color, $color);
73
+
74
+ // do not include spacing
75
+ }
76
+ }
77
+
78
+ @mixin styles($disable-layer: false) {
88
79
  @if not $disable-everything {
89
- .rmd-tooltip {
90
- @include utils.map-to-styles($typography);
91
- @include use-var(background-color);
92
- @include use-var(color);
93
-
94
- border-radius: $border-radius;
95
- max-width: $max-width;
96
- min-height: $min-height;
97
- opacity: 0;
98
- overflow: hidden;
99
- overflow-wrap: anywhere;
100
- padding: $vertical-padding $horizontal-padding;
101
- pointer-events: none;
102
- position: fixed;
103
- text-transform: none;
104
- user-select: none;
105
- z-index: $z-index;
106
-
107
- @if not $disable-dense {
108
- &--dense {
109
- @include utils.map-to-styles($dense-typography);
110
- @include set-var(spacing, $dense-spacing);
111
-
112
- min-height: $dense-min-height;
113
- padding: $dense-vertical-padding $dense-horizontal-padding;
80
+ @include utils.optional-layer(tooltip, $disable-layer) {
81
+ .rmd-tooltip {
82
+ @include utils.map-to-styles($typography);
83
+ @include use-var(background-color);
84
+ @include use-var(color);
85
+
86
+ border-radius: $border-radius;
87
+ max-width: $max-width;
88
+ min-height: $min-height;
89
+ opacity: 0;
90
+ overflow: hidden;
91
+ overflow-wrap: anywhere;
92
+ padding: $vertical-padding $horizontal-padding;
93
+ pointer-events: none;
94
+ position: fixed;
95
+ text-transform: none;
96
+ user-select: none;
97
+ z-index: $z-index;
98
+
99
+ @if not $disable-dense {
100
+ &--dense {
101
+ @include utils.map-to-styles($dense-typography);
102
+ @include set-var(spacing, $dense-spacing);
103
+
104
+ min-height: $dense-min-height;
105
+ padding: $dense-vertical-padding $dense-horizontal-padding;
106
+ }
114
107
  }
115
- }
116
108
 
117
- @if not $disable-above {
118
- &--above {
119
- transform: translateY(-$transition-distance);
109
+ @if not $disable-above {
110
+ &--above {
111
+ transform: translateY(-$transition-distance);
112
+ }
120
113
  }
121
- }
122
114
 
123
- @if not $disable-below {
124
- &--below {
125
- transform: translateY($transition-distance);
115
+ @if not $disable-below {
116
+ &--below {
117
+ transform: translateY($transition-distance);
118
+ }
126
119
  }
127
- }
128
120
 
129
- @if not $disable-left {
130
- &--left {
131
- transform: translateX(-$transition-distance);
121
+ @if not $disable-left {
122
+ &--left {
123
+ transform: translateX(-$transition-distance);
124
+ }
132
125
  }
133
- }
134
126
 
135
- @if not $disable-right {
136
- &--right {
137
- transform: translateX($transition-distance);
127
+ @if not $disable-right {
128
+ &--right {
129
+ transform: translateX($transition-distance);
130
+ }
138
131
  }
139
- }
140
132
 
141
- &--visible {
142
- opacity: 1;
143
- transform: none;
144
- }
133
+ &--visible {
134
+ opacity: 1;
135
+ transform: none;
136
+ }
145
137
 
146
- &--enter {
147
- transition:
148
- opacity $enter-duration,
149
- transform $enter-duration * 2;
150
- transition-timing-function: $enter-timing-function;
151
- }
138
+ &--enter {
139
+ transition:
140
+ opacity $enter-duration,
141
+ transform $enter-duration * 2;
142
+ transition-timing-function: $enter-timing-function;
143
+ }
152
144
 
153
- &--exit {
154
- transition: opacity $leave-duration $leave-timing-function;
155
- }
145
+ &--exit {
146
+ transition: opacity $leave-duration $leave-timing-function;
147
+ }
156
148
 
157
- &--exit-active {
158
- opacity: 0;
149
+ &--exit-active {
150
+ opacity: 0;
151
+ }
159
152
  }
160
153
  }
161
154
  }
@@ -53,19 +53,19 @@ export interface TooltipPositioningOptions {
53
53
  * \@since 2.8.0
54
54
  * \@since 6.0.0 Removed the `TooltipTouchEventHandlers` and
55
55
  * `TooltipKeyboardEventHandlers` types, removed the need for the `onKeyDown`
56
- * event, and infer element typeparam while calling instead of at hook level.
56
+ * event.
57
57
  */
58
- export interface TooltippedElementEventHandlers {
59
- onBlur?<E extends HTMLElement>(event: FocusEvent<E>): void;
60
- onFocus?<E extends HTMLElement>(event: FocusEvent<E>): void;
61
- onMouseEnter?<E extends HTMLElement>(event: MouseEvent<E>): void;
62
- onMouseLeave?<E extends HTMLElement>(event: MouseEvent<E>): void;
63
- onTouchStart?<E extends HTMLElement>(event: TouchEvent<E>): void;
64
- onTouchEnd?<E extends HTMLElement>(event: TouchEvent<E>): void;
65
- onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;
58
+ export interface TooltippedElementEventHandlers<E extends HTMLElement = HTMLButtonElement> {
59
+ onBlur?(event: FocusEvent<E>): void;
60
+ onFocus?(event: FocusEvent<E>): void;
61
+ onMouseEnter?(event: MouseEvent<E>): void;
62
+ onMouseLeave?(event: MouseEvent<E>): void;
63
+ onTouchStart?(event: TouchEvent<E>): void;
64
+ onTouchEnd?(event: TouchEvent<E>): void;
65
+ onContextMenu?(event: MouseEvent<E>): void;
66
66
  }
67
67
  /** @remarks \@since 2.8.0 */
68
- export interface ProvidedTooltippedElementProps extends Required<TooltippedElementEventHandlers> {
68
+ export interface ProvidedTooltippedElementProps<E extends HTMLElement> extends Required<TooltippedElementEventHandlers<E>> {
69
69
  "aria-describedby": string | undefined;
70
70
  id: string;
71
71
  }
@@ -77,7 +77,7 @@ export interface ProvidedTooltippedElementProps extends Required<TooltippedEleme
77
77
  * `TooltipHookOptions` to `TooltipOptions` to match other hook naming
78
78
  * conventions.
79
79
  */
80
- export interface TooltipOptions extends FixedPositioningTransitionCallbacks, TooltippedElementEventHandlers, TooltipPositioningOptions, TooltipPositionHookOptions {
80
+ export interface TooltipOptions<TooltippedElement extends HTMLElement = HTMLButtonElement> extends FixedPositioningTransitionCallbacks, TooltippedElementEventHandlers<TooltippedElement>, TooltipPositioningOptions, TooltipPositionHookOptions {
81
81
  /**
82
82
  * @defaultValue `"tooltip-" + useId()`
83
83
  */
@@ -195,12 +195,12 @@ export interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement> e
195
195
  * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook
196
196
  * naming conventions.
197
197
  */
198
- export interface TooltipImplementation<TooltipElement extends HTMLElement = HTMLSpanElement> extends ControlledHoverModeImplementation {
198
+ export interface TooltipImplementation<TooltippedElement extends HTMLElement = HTMLButtonElement, TooltipElement extends HTMLElement = HTMLSpanElement> extends ControlledHoverModeImplementation {
199
199
  visible: boolean;
200
200
  setVisible: UseStateSetter<boolean>;
201
201
  animatedOnce: boolean;
202
202
  initiatedBy: MutableRefObject<UserInteractionMode | null>;
203
- elementProps: ProvidedTooltippedElementProps;
203
+ elementProps: ProvidedTooltippedElementProps<TooltippedElement>;
204
204
  tooltipProps: ProvidedTooltipProps<TooltipElement>;
205
205
  /**
206
206
  * This is a wrapper around the {@link setVisible} behavior that will also
@@ -302,4 +302,4 @@ export interface TooltipImplementation<TooltipElement extends HTMLElement = HTML
302
302
  * element when the click or history update happens. this causes the tooltip to
303
303
  * stay visible
304
304
  */
305
- export declare function useTooltip<TooltipElement extends HTMLElement = HTMLSpanElement>(options?: TooltipOptions): TooltipImplementation<TooltipElement>;
305
+ export declare function useTooltip<TooltippedElement extends HTMLElement = HTMLButtonElement, TooltipElement extends HTMLElement = HTMLSpanElement>(options?: TooltipOptions<TooltippedElement>): TooltipImplementation<TooltippedElement, TooltipElement>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tooltip/useTooltip.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport type {\n CSSProperties,\n FocusEvent,\n MouseEvent,\n MutableRefObject,\n Ref,\n RefObject,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useEffect, useId, useRef } from \"react\";\nimport {\n useHoverMode,\n type ControlledHoverModeImplementation,\n} from \"../hoverMode/useHoverMode.js\";\nimport type { UserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport type { FixedPositioningTransitionCallbacks } from \"../positioning/useFixedPositioning.js\";\nimport { useFixedPositioning } from \"../positioning/useFixedPositioning.js\";\nimport type { UseStateSetter } from \"../types.js\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { parseCssLengthUnit } from \"../utils/parseCssLengthUnit.js\";\nimport { useTooltipHoverMode } from \"./TooltipHoverModeProvider.js\";\nimport {\n DEFAULT_TOOLTIP_DENSE_SPACING,\n DEFAULT_TOOLTIP_MARGIN,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_SPACING,\n DEFAULT_TOOLTIP_THRESHOLD,\n TOOLTIP_SPACING_VAR,\n} from \"./constants.js\";\nimport type { TooltipPositionHookOptions } from \"./useTooltipPosition.js\";\nimport { useTooltipPosition } from \"./useTooltipPosition.js\";\nimport { getAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tooltip-background-color\"?: string;\n \"--rmd-tooltip-color\"?: string;\n \"--rmd-tooltip-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 2.8.0 */\nexport interface TooltipPositioningOptions {\n style?: CSSProperties;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vwMargin?: number;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vhMargin?: number;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_SPACING`\n * @see {@link DEFAULT_TOOLTIP_SPACING}\n */\n spacing?: number | string;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_DENSE_SPACING`\n * @see {@link DEFAULT_TOOLTIP_DENSE_SPACING}\n */\n denseSpacing?: number | string;\n\n /**\n * @defaultValue `false`\n */\n disableSwapping?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableAutoSpacing?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Removed the `TooltipTouchEventHandlers` and\n * `TooltipKeyboardEventHandlers` types, removed the need for the `onKeyDown`\n * event, and infer element typeparam while calling instead of at hook level.\n */\nexport interface TooltippedElementEventHandlers {\n onBlur?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onFocus?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onMouseEnter?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onMouseLeave?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onTouchStart?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onTouchEnd?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/** @remarks \\@since 2.8.0 */\nexport interface ProvidedTooltippedElementProps\n extends Required<TooltippedElementEventHandlers> {\n \"aria-describedby\": string | undefined;\n id: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 A major API change for the hover mode behavior and no longer\n * requires a `baseId`/`id` for the tooltip. Also renamed from\n * `TooltipHookOptions` to `TooltipOptions` to match other hook naming\n * conventions.\n */\nexport interface TooltipOptions\n extends FixedPositioningTransitionCallbacks,\n TooltippedElementEventHandlers,\n TooltipPositioningOptions,\n TooltipPositionHookOptions {\n /**\n * @defaultValue `\"tooltip-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional override for the `aria-describedby`\n */\n describedBy?: string;\n\n /**\n * Any styles to be merged with the fixed positioning styles for the tooltip.\n */\n style?: CSSProperties;\n\n /**\n * Boolean if the event handlers should no longer attempt to show a tooltip. This\n * should be set to `true` when your component might not have a tooltip associated\n * with it.\n *\n * @example\n * Real World Example\n * ```tsx\n * import { Button, ButtonProps, Tooltip, useTooltip } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * export interface TooltippedButtonProps extends ButtonProps {\n * tooltip?: ReactNode;\n * }\n *\n * export function TooltippedButton({\n * id,\n * tooltip,\n * children,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * ...props\n * }: TooltippedButtonProps): ReactElement {\n * const { elementProps, tooltipProps } = useTooltip({\n * id,\n * disabled: !tooltip,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * });\n *\n * return (\n * <>\n * <Button {...props} {...elementProps}>\n * {children}\n * </Button>\n * <Tooltip {...tooltipProps}>{tooltip}</Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @defaultValue `false`\n * @remarks \\@since 5.1.0\n */\n disabled?: boolean;\n\n /**\n * The amount of time (in ms) to hover an element before the tooltip becomes\n * visible.\n *\n * The default value is really the current hover timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `DEFAULT_TOOLTIP_DELAY`\n */\n hoverTimeout?: number;\n\n /**\n * The amount of time to wait before triggering the exit animation for the\n * tooltip.\n *\n * The default value is really the current leaveTimeout timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `0`\n */\n leaveTimeout?: number;\n\n /**\n * Set this to `true` to only allow the tooltip to become visible when the\n * `event .currentTarget` or `overflowRef` has text overflow.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n overflowOnly?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`\n */\nexport interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>\n extends Required<FixedPositioningTransitionCallbacks> {\n id: string;\n ref: Ref<E>;\n dense: boolean;\n style: CSSProperties;\n visible: boolean;\n position: SimplePosition;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 No longer returns any properties from the hover mode provider\n * because of the major API change to hover mode.. Also renamed from\n * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook\n * naming conventions.\n */\nexport interface TooltipImplementation<\n TooltipElement extends HTMLElement = HTMLSpanElement,\n> extends ControlledHoverModeImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n animatedOnce: boolean;\n initiatedBy: MutableRefObject<UserInteractionMode | null>;\n elementProps: ProvidedTooltippedElementProps;\n tooltipProps: ProvidedTooltipProps<TooltipElement>;\n\n /**\n * This is a wrapper around the {@link setVisible} behavior that will also\n * clear any pending timeouts.\n */\n hideTooltip(): void;\n\n /**\n * @remarks \\@since 6.0.0\n */\n overflowRef: RefObject<HTMLElement>;\n}\n\n/**\n * @example\n * Simple Usage\n * ```tsx\n * import { Button, useTooltip, Tooltip } from \"@react-md/core\";\n *\n * function Example() {\n * const { elementProps, tooltipProps } = useTooltip();\n *\n * return (\n * <>\n * <Button {...elementProps}>Button</Button>\n * <Tooltip {...tooltipProps}>\n * Tooltip Content\n * </Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @example\n * Overflow-only Tooltips\n * ```tsx\n * import {\n * cssUtils,\n * Link,\n * Tooltip,\n * useTooltip,\n * type LinkProps,\n * } from \"@react-md/core\";\n * import { type ReactElement } from \"react\";\n *\n * function NavigationLink(props: LinkProps): ReactElement {\n * const { children, ...remaining } = props;\n *\n * // using the `overflowRef` is optional and will default to the\n * // `event.currentTarget` when `null`\n * const { overflowRef, elementProps, tooltipProps } = useOverflowTooltip({\n * // just to pass any event handlers\n * ...remaining,\n * overflowOnly: true,\n * });\n *\n * return (\n * <Link {...remaining} {...elementProps} style={{ width: \"100%\" }}>\n * <span ref={overflowRef} className={cssUtils({ textOverflow: \"ellipsis\" })}>\n * {children}\n * </span>\n * <Tooltip {...tooltipProps}>\n * {children}\n * </Tooltip>\n * </Link>\n * );\n * }\n *\n * function Example(): ReactElement {\n * return (\n * <div style={{ width: \"10rem\", overflow: \"auto\" }}>\n * <NavigationLink href=\"/\">Home</NavigationLink>\n * <NavigationLink href=\"/some-path\">\n * Super long text that will be truncated with ellipsis and\n * have a tooltip appear\n * </NavigationLink>\n * </div>\n * );\n * }\n * ```\n *\n * ## Inspecting Tooltip Styles\n *\n * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to\n * inspect the tooltip styles. In dev mode, you can manually set the visibility\n * to `true` through the dev tools.\n * - find your tooltip implementation\n * - expand the Tooltip hook\n * - expand the HoverMode hook\n * - set the first boolean state to `true`\n *\n * The tooltip will now remain visible allowing you to find it within the\n * \"Inspector\" tab in the dev tools.\n *\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Uses a separate `TooltipHoverModeProvider`.\n *\n * TODO: I need to fix the tooltip for click events and history changes since\n * the mouseleave event will not be correctly bubbled if hovering a child\n * element when the click or history update happens. this causes the tooltip to\n * stay visible\n */\nexport function useTooltip<\n TooltipElement extends HTMLElement = HTMLSpanElement,\n>(options: TooltipOptions = {}): TooltipImplementation<TooltipElement> {\n const {\n id: propId,\n style: propStyle,\n disabled = false,\n describedBy,\n dense = false,\n hoverTimeout,\n leaveTimeout,\n vwMargin = DEFAULT_TOOLTIP_MARGIN,\n vhMargin = DEFAULT_TOOLTIP_MARGIN,\n spacing = DEFAULT_TOOLTIP_SPACING,\n denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING,\n disableSwapping,\n disableAutoSpacing,\n position: determinedPosition,\n defaultPosition = DEFAULT_TOOLTIP_POSITION,\n threshold = DEFAULT_TOOLTIP_THRESHOLD,\n onBlur = noop,\n onFocus = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onContextMenu = noop,\n onEnter = noop,\n onEntering,\n onEntered = noop,\n onExited,\n overflowOnly,\n } = options;\n\n const fallbackId = useId();\n const id = propId || fallbackId;\n const tooltipId = `${id}-tooltip`;\n const {\n animatedOnceRef,\n hoverTimeoutRef,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n } = useTooltipHoverMode();\n const {\n visible,\n setVisible,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n } = useHoverMode({\n hoverTimeout,\n hoverTimeoutRef,\n leaveTimeout,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n });\n const [position, updatePosition] = useTooltipPosition({\n position: determinedPosition,\n defaultPosition,\n threshold,\n });\n\n const mode = useUserInteractionMode();\n const elementRef = useRef<HTMLElement | null>(null);\n const tooltipRef = useRef<TooltipElement>(null);\n const overflowRef = useRef<HTMLElement>(null);\n const initiatedBy = useRef<UserInteractionMode | null>(null);\n const { ref, style, callbacks } = useFixedPositioning({\n nodeRef: tooltipRef,\n style: propStyle,\n fixedTo: elementRef,\n anchor: getAnchor(position),\n disableSwapping: disableSwapping ?? !!determinedPosition,\n getFixedPositionOptions() {\n let tooltipSpacing = dense ? denseSpacing : spacing;\n const tooltip = tooltipRef.current;\n if (!disableAutoSpacing && tooltip) {\n tooltipSpacing =\n window\n .getComputedStyle(tooltip)\n .getPropertyValue(TOOLTIP_SPACING_VAR) || spacing;\n }\n\n const currentSpacing = parseCssLengthUnit({\n value: tooltipSpacing,\n });\n const horizontal = position === \"left\" || position === \"right\";\n\n return {\n vwMargin,\n vhMargin,\n xMargin: horizontal ? currentSpacing : undefined,\n yMargin: horizontal ? undefined : currentSpacing,\n };\n },\n onEnter(appearing) {\n onEnter(appearing);\n\n // This allows you to inspect the tooltip styles through the element\n // inspector without first hovering or focusing the tooltipped element\n // beforehand by setting the `HoverMode` hook to `true`\n if (process.env.NODE_ENV !== \"production\" && !elementRef.current) {\n elementRef.current = document.getElementById(id);\n }\n },\n onEntering,\n onEntered(appearing) {\n onEntered(appearing);\n\n animatedOnceRef.current = true;\n },\n onExited,\n });\n\n const hideTooltip = useCallback(() => {\n initiatedBy.current = null;\n disableHoverMode();\n clearVisibilityTimeout();\n setVisible(false);\n }, [clearVisibilityTimeout, disableHoverMode, setVisible]);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n hideTooltip();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"scroll\", hideTooltip, true);\n window.addEventListener(\"touchend\", hideTooltip, true);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"scroll\", hideTooltip, true);\n window.removeEventListener(\"touchend\", hideTooltip, true);\n };\n }, [hideTooltip, visible]);\n\n const refocusFrame = useRef(0);\n const pageInactive = useRef(false);\n usePageInactive({\n disabled,\n onDisabledCleanup: hideTooltip,\n onChange(active) {\n if (active) {\n refocusFrame.current = window.requestAnimationFrame(() => {\n pageInactive.current = false;\n });\n return;\n }\n\n pageInactive.current = true;\n hideTooltip();\n },\n });\n\n const isNotOverflown = (currentTarget: HTMLElement): boolean => {\n if (!overflowOnly) {\n return false;\n }\n\n const element = overflowRef.current || currentTarget;\n return !element || element.offsetWidth >= element.scrollWidth;\n };\n\n return {\n visible,\n setVisible,\n hideTooltip,\n animatedOnce: animatedOnceRef.current,\n initiatedBy,\n overflowRef,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n tooltipProps: {\n id: tooltipId,\n ref,\n dense,\n style,\n visible,\n position,\n ...callbacks,\n },\n elementProps: {\n \"aria-describedby\": cnb(visible && tooltipId, describedBy) || undefined,\n id,\n onMouseEnter(event) {\n onMouseEnter(event);\n if (\n disabled ||\n mode === \"touch\" ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"mouse\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onMouseLeave(event) {\n onMouseLeave(event);\n if (disabled || initiatedBy.current !== \"mouse\") {\n return;\n }\n\n startHideFlow();\n initiatedBy.current = null;\n },\n onBlur(event) {\n onBlur(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onFocus(event) {\n onFocus(event);\n // skip the focus events when the browser is re-focused if the user\n // pressed alt-tab, minimized the browser, etc\n if (\n disabled ||\n mode !== \"keyboard\" ||\n initiatedBy.current !== null ||\n pageInactive.current ||\n isNotOverflown(event.currentTarget)\n ) {\n pageInactive.current = false;\n return;\n }\n\n initiatedBy.current = \"keyboard\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchStart(event) {\n onTouchStart(event);\n if (\n disabled ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"touch\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchEnd(event) {\n onTouchEnd(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (\n disabled ||\n initiatedBy.current !== \"touch\" ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n event.preventDefault();\n const selection = window.getSelection();\n const node = selection?.anchorNode?.parentElement;\n if (node && event.currentTarget.contains(node)) {\n selection.empty();\n }\n },\n },\n };\n}\n"],"names":["cnb","useCallback","useEffect","useId","useRef","useHoverMode","useUserInteractionMode","useFixedPositioning","usePageInactive","parseCssLengthUnit","useTooltipHoverMode","DEFAULT_TOOLTIP_DENSE_SPACING","DEFAULT_TOOLTIP_MARGIN","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_SPACING","DEFAULT_TOOLTIP_THRESHOLD","TOOLTIP_SPACING_VAR","useTooltipPosition","getAnchor","noop","useTooltip","options","id","propId","style","propStyle","disabled","describedBy","dense","hoverTimeout","leaveTimeout","vwMargin","vhMargin","spacing","denseSpacing","disableSwapping","disableAutoSpacing","position","determinedPosition","defaultPosition","threshold","onBlur","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","onContextMenu","onEnter","onEntering","onEntered","onExited","overflowOnly","fallbackId","tooltipId","animatedOnceRef","hoverTimeoutRef","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","visible","setVisible","startShowFlow","startHideFlow","clearVisibilityTimeout","updatePosition","mode","elementRef","tooltipRef","overflowRef","initiatedBy","ref","callbacks","nodeRef","fixedTo","anchor","getFixedPositionOptions","tooltipSpacing","tooltip","current","window","getComputedStyle","getPropertyValue","currentSpacing","value","horizontal","xMargin","undefined","yMargin","appearing","process","env","NODE_ENV","document","getElementById","hideTooltip","handleKeyDown","event","key","addEventListener","removeEventListener","refocusFrame","pageInactive","onDisabledCleanup","onChange","active","requestAnimationFrame","isNotOverflown","currentTarget","element","offsetWidth","scrollWidth","animatedOnce","tooltipProps","elementProps","preventDefault","selection","getSelection","node","anchorNode","parentElement","contains","empty"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tooltip/useTooltip.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport type {\n CSSProperties,\n FocusEvent,\n MouseEvent,\n MutableRefObject,\n Ref,\n RefObject,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useEffect, useId, useRef } from \"react\";\nimport {\n useHoverMode,\n type ControlledHoverModeImplementation,\n} from \"../hoverMode/useHoverMode.js\";\nimport type { UserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport type { FixedPositioningTransitionCallbacks } from \"../positioning/useFixedPositioning.js\";\nimport { useFixedPositioning } from \"../positioning/useFixedPositioning.js\";\nimport type { UseStateSetter } from \"../types.js\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { parseCssLengthUnit } from \"../utils/parseCssLengthUnit.js\";\nimport { useTooltipHoverMode } from \"./TooltipHoverModeProvider.js\";\nimport {\n DEFAULT_TOOLTIP_DENSE_SPACING,\n DEFAULT_TOOLTIP_MARGIN,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_SPACING,\n DEFAULT_TOOLTIP_THRESHOLD,\n TOOLTIP_SPACING_VAR,\n} from \"./constants.js\";\nimport type { TooltipPositionHookOptions } from \"./useTooltipPosition.js\";\nimport { useTooltipPosition } from \"./useTooltipPosition.js\";\nimport { getAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tooltip-background-color\"?: string;\n \"--rmd-tooltip-color\"?: string;\n \"--rmd-tooltip-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 2.8.0 */\nexport interface TooltipPositioningOptions {\n style?: CSSProperties;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vwMargin?: number;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vhMargin?: number;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_SPACING`\n * @see {@link DEFAULT_TOOLTIP_SPACING}\n */\n spacing?: number | string;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_DENSE_SPACING`\n * @see {@link DEFAULT_TOOLTIP_DENSE_SPACING}\n */\n denseSpacing?: number | string;\n\n /**\n * @defaultValue `false`\n */\n disableSwapping?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableAutoSpacing?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Removed the `TooltipTouchEventHandlers` and\n * `TooltipKeyboardEventHandlers` types, removed the need for the `onKeyDown`\n * event.\n */\nexport interface TooltippedElementEventHandlers<\n E extends HTMLElement = HTMLButtonElement,\n> {\n onBlur?(event: FocusEvent<E>): void;\n onFocus?(event: FocusEvent<E>): void;\n onMouseEnter?(event: MouseEvent<E>): void;\n onMouseLeave?(event: MouseEvent<E>): void;\n onTouchStart?(event: TouchEvent<E>): void;\n onTouchEnd?(event: TouchEvent<E>): void;\n onContextMenu?(event: MouseEvent<E>): void;\n}\n\n/** @remarks \\@since 2.8.0 */\nexport interface ProvidedTooltippedElementProps<E extends HTMLElement>\n extends Required<TooltippedElementEventHandlers<E>> {\n \"aria-describedby\": string | undefined;\n id: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 A major API change for the hover mode behavior and no longer\n * requires a `baseId`/`id` for the tooltip. Also renamed from\n * `TooltipHookOptions` to `TooltipOptions` to match other hook naming\n * conventions.\n */\nexport interface TooltipOptions<\n TooltippedElement extends HTMLElement = HTMLButtonElement,\n> extends FixedPositioningTransitionCallbacks,\n TooltippedElementEventHandlers<TooltippedElement>,\n TooltipPositioningOptions,\n TooltipPositionHookOptions {\n /**\n * @defaultValue `\"tooltip-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional override for the `aria-describedby`\n */\n describedBy?: string;\n\n /**\n * Any styles to be merged with the fixed positioning styles for the tooltip.\n */\n style?: CSSProperties;\n\n /**\n * Boolean if the event handlers should no longer attempt to show a tooltip. This\n * should be set to `true` when your component might not have a tooltip associated\n * with it.\n *\n * @example\n * Real World Example\n * ```tsx\n * import { Button, ButtonProps, Tooltip, useTooltip } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * export interface TooltippedButtonProps extends ButtonProps {\n * tooltip?: ReactNode;\n * }\n *\n * export function TooltippedButton({\n * id,\n * tooltip,\n * children,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * ...props\n * }: TooltippedButtonProps): ReactElement {\n * const { elementProps, tooltipProps } = useTooltip({\n * id,\n * disabled: !tooltip,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * });\n *\n * return (\n * <>\n * <Button {...props} {...elementProps}>\n * {children}\n * </Button>\n * <Tooltip {...tooltipProps}>{tooltip}</Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @defaultValue `false`\n * @remarks \\@since 5.1.0\n */\n disabled?: boolean;\n\n /**\n * The amount of time (in ms) to hover an element before the tooltip becomes\n * visible.\n *\n * The default value is really the current hover timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `DEFAULT_TOOLTIP_DELAY`\n */\n hoverTimeout?: number;\n\n /**\n * The amount of time to wait before triggering the exit animation for the\n * tooltip.\n *\n * The default value is really the current leaveTimeout timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `0`\n */\n leaveTimeout?: number;\n\n /**\n * Set this to `true` to only allow the tooltip to become visible when the\n * `event .currentTarget` or `overflowRef` has text overflow.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n overflowOnly?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`\n */\nexport interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>\n extends Required<FixedPositioningTransitionCallbacks> {\n id: string;\n ref: Ref<E>;\n dense: boolean;\n style: CSSProperties;\n visible: boolean;\n position: SimplePosition;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 No longer returns any properties from the hover mode provider\n * because of the major API change to hover mode.. Also renamed from\n * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook\n * naming conventions.\n */\nexport interface TooltipImplementation<\n TooltippedElement extends HTMLElement = HTMLButtonElement,\n TooltipElement extends HTMLElement = HTMLSpanElement,\n> extends ControlledHoverModeImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n animatedOnce: boolean;\n initiatedBy: MutableRefObject<UserInteractionMode | null>;\n elementProps: ProvidedTooltippedElementProps<TooltippedElement>;\n tooltipProps: ProvidedTooltipProps<TooltipElement>;\n\n /**\n * This is a wrapper around the {@link setVisible} behavior that will also\n * clear any pending timeouts.\n */\n hideTooltip(): void;\n\n /**\n * @remarks \\@since 6.0.0\n */\n overflowRef: RefObject<HTMLElement>;\n}\n\n/**\n * @example\n * Simple Usage\n * ```tsx\n * import { Button, useTooltip, Tooltip } from \"@react-md/core\";\n *\n * function Example() {\n * const { elementProps, tooltipProps } = useTooltip();\n *\n * return (\n * <>\n * <Button {...elementProps}>Button</Button>\n * <Tooltip {...tooltipProps}>\n * Tooltip Content\n * </Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @example\n * Overflow-only Tooltips\n * ```tsx\n * import {\n * cssUtils,\n * Link,\n * Tooltip,\n * useTooltip,\n * type LinkProps,\n * } from \"@react-md/core\";\n * import { type ReactElement } from \"react\";\n *\n * function NavigationLink(props: LinkProps): ReactElement {\n * const { children, ...remaining } = props;\n *\n * // using the `overflowRef` is optional and will default to the\n * // `event.currentTarget` when `null`\n * const { overflowRef, elementProps, tooltipProps } = useOverflowTooltip({\n * // just to pass any event handlers\n * ...remaining,\n * overflowOnly: true,\n * });\n *\n * return (\n * <Link {...remaining} {...elementProps} style={{ width: \"100%\" }}>\n * <span ref={overflowRef} className={cssUtils({ textOverflow: \"ellipsis\" })}>\n * {children}\n * </span>\n * <Tooltip {...tooltipProps}>\n * {children}\n * </Tooltip>\n * </Link>\n * );\n * }\n *\n * function Example(): ReactElement {\n * return (\n * <div style={{ width: \"10rem\", overflow: \"auto\" }}>\n * <NavigationLink href=\"/\">Home</NavigationLink>\n * <NavigationLink href=\"/some-path\">\n * Super long text that will be truncated with ellipsis and\n * have a tooltip appear\n * </NavigationLink>\n * </div>\n * );\n * }\n * ```\n *\n * ## Inspecting Tooltip Styles\n *\n * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to\n * inspect the tooltip styles. In dev mode, you can manually set the visibility\n * to `true` through the dev tools.\n * - find your tooltip implementation\n * - expand the Tooltip hook\n * - expand the HoverMode hook\n * - set the first boolean state to `true`\n *\n * The tooltip will now remain visible allowing you to find it within the\n * \"Inspector\" tab in the dev tools.\n *\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Uses a separate `TooltipHoverModeProvider`.\n *\n * TODO: I need to fix the tooltip for click events and history changes since\n * the mouseleave event will not be correctly bubbled if hovering a child\n * element when the click or history update happens. this causes the tooltip to\n * stay visible\n */\nexport function useTooltip<\n TooltippedElement extends HTMLElement = HTMLButtonElement,\n TooltipElement extends HTMLElement = HTMLSpanElement,\n>(\n options: TooltipOptions<TooltippedElement> = {}\n): TooltipImplementation<TooltippedElement, TooltipElement> {\n const {\n id: propId,\n style: propStyle,\n disabled = false,\n describedBy,\n dense = false,\n hoverTimeout,\n leaveTimeout,\n vwMargin = DEFAULT_TOOLTIP_MARGIN,\n vhMargin = DEFAULT_TOOLTIP_MARGIN,\n spacing = DEFAULT_TOOLTIP_SPACING,\n denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING,\n disableSwapping,\n disableAutoSpacing,\n position: determinedPosition,\n defaultPosition = DEFAULT_TOOLTIP_POSITION,\n threshold = DEFAULT_TOOLTIP_THRESHOLD,\n onBlur = noop,\n onFocus = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onContextMenu = noop,\n onEnter = noop,\n onEntering,\n onEntered = noop,\n onExited,\n overflowOnly,\n } = options;\n\n const fallbackId = useId();\n const id = propId || fallbackId;\n const tooltipId = `${id}-tooltip`;\n const {\n animatedOnceRef,\n hoverTimeoutRef,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n } = useTooltipHoverMode();\n const {\n visible,\n setVisible,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n } = useHoverMode({\n hoverTimeout,\n hoverTimeoutRef,\n leaveTimeout,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n });\n const [position, updatePosition] = useTooltipPosition({\n position: determinedPosition,\n defaultPosition,\n threshold,\n });\n\n const mode = useUserInteractionMode();\n const elementRef = useRef<HTMLElement | null>(null);\n const tooltipRef = useRef<TooltipElement>(null);\n const overflowRef = useRef<HTMLElement>(null);\n const initiatedBy = useRef<UserInteractionMode | null>(null);\n const { ref, style, callbacks } = useFixedPositioning({\n nodeRef: tooltipRef,\n style: propStyle,\n fixedTo: elementRef,\n anchor: getAnchor(position),\n disableSwapping: disableSwapping ?? !!determinedPosition,\n getFixedPositionOptions() {\n let tooltipSpacing = dense ? denseSpacing : spacing;\n const tooltip = tooltipRef.current;\n if (!disableAutoSpacing && tooltip) {\n tooltipSpacing =\n window\n .getComputedStyle(tooltip)\n .getPropertyValue(TOOLTIP_SPACING_VAR) || spacing;\n }\n\n const currentSpacing = parseCssLengthUnit({\n value: tooltipSpacing,\n });\n const horizontal = position === \"left\" || position === \"right\";\n\n return {\n vwMargin,\n vhMargin,\n xMargin: horizontal ? currentSpacing : undefined,\n yMargin: horizontal ? undefined : currentSpacing,\n };\n },\n onEnter(appearing) {\n onEnter(appearing);\n\n // This allows you to inspect the tooltip styles through the element\n // inspector without first hovering or focusing the tooltipped element\n // beforehand by setting the `HoverMode` hook to `true`\n if (process.env.NODE_ENV !== \"production\" && !elementRef.current) {\n elementRef.current = document.getElementById(id);\n }\n },\n onEntering,\n onEntered(appearing) {\n onEntered(appearing);\n\n animatedOnceRef.current = true;\n },\n onExited,\n });\n\n const hideTooltip = useCallback(() => {\n initiatedBy.current = null;\n disableHoverMode();\n clearVisibilityTimeout();\n setVisible(false);\n }, [clearVisibilityTimeout, disableHoverMode, setVisible]);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n hideTooltip();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"scroll\", hideTooltip, true);\n window.addEventListener(\"touchend\", hideTooltip, true);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"scroll\", hideTooltip, true);\n window.removeEventListener(\"touchend\", hideTooltip, true);\n };\n }, [hideTooltip, visible]);\n\n const refocusFrame = useRef(0);\n const pageInactive = useRef(false);\n usePageInactive({\n disabled,\n onDisabledCleanup: hideTooltip,\n onChange(active) {\n if (active) {\n refocusFrame.current = window.requestAnimationFrame(() => {\n pageInactive.current = false;\n });\n return;\n }\n\n pageInactive.current = true;\n hideTooltip();\n },\n });\n\n const isNotOverflown = (currentTarget: HTMLElement): boolean => {\n if (!overflowOnly) {\n return false;\n }\n\n const element = overflowRef.current || currentTarget;\n return !element || element.offsetWidth >= element.scrollWidth;\n };\n\n return {\n visible,\n setVisible,\n hideTooltip,\n animatedOnce: animatedOnceRef.current,\n initiatedBy,\n overflowRef,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n tooltipProps: {\n id: tooltipId,\n ref,\n dense,\n style,\n visible,\n position,\n ...callbacks,\n },\n elementProps: {\n \"aria-describedby\": cnb(visible && tooltipId, describedBy) || undefined,\n id,\n onMouseEnter(event) {\n onMouseEnter(event);\n if (\n disabled ||\n mode === \"touch\" ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"mouse\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onMouseLeave(event) {\n onMouseLeave(event);\n if (disabled || initiatedBy.current !== \"mouse\") {\n return;\n }\n\n startHideFlow();\n initiatedBy.current = null;\n },\n onBlur(event) {\n onBlur(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onFocus(event) {\n onFocus(event);\n // skip the focus events when the browser is re-focused if the user\n // pressed alt-tab, minimized the browser, etc\n if (\n disabled ||\n mode !== \"keyboard\" ||\n initiatedBy.current !== null ||\n pageInactive.current ||\n isNotOverflown(event.currentTarget)\n ) {\n pageInactive.current = false;\n return;\n }\n\n initiatedBy.current = \"keyboard\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchStart(event) {\n onTouchStart(event);\n if (\n disabled ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"touch\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchEnd(event) {\n onTouchEnd(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (\n disabled ||\n initiatedBy.current !== \"touch\" ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n event.preventDefault();\n const selection = window.getSelection();\n const node = selection?.anchorNode?.parentElement;\n if (node && event.currentTarget.contains(node)) {\n selection.empty();\n }\n },\n },\n };\n}\n"],"names":["cnb","useCallback","useEffect","useId","useRef","useHoverMode","useUserInteractionMode","useFixedPositioning","usePageInactive","parseCssLengthUnit","useTooltipHoverMode","DEFAULT_TOOLTIP_DENSE_SPACING","DEFAULT_TOOLTIP_MARGIN","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_SPACING","DEFAULT_TOOLTIP_THRESHOLD","TOOLTIP_SPACING_VAR","useTooltipPosition","getAnchor","noop","useTooltip","options","id","propId","style","propStyle","disabled","describedBy","dense","hoverTimeout","leaveTimeout","vwMargin","vhMargin","spacing","denseSpacing","disableSwapping","disableAutoSpacing","position","determinedPosition","defaultPosition","threshold","onBlur","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","onContextMenu","onEnter","onEntering","onEntered","onExited","overflowOnly","fallbackId","tooltipId","animatedOnceRef","hoverTimeoutRef","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","visible","setVisible","startShowFlow","startHideFlow","clearVisibilityTimeout","updatePosition","mode","elementRef","tooltipRef","overflowRef","initiatedBy","ref","callbacks","nodeRef","fixedTo","anchor","getFixedPositionOptions","tooltipSpacing","tooltip","current","window","getComputedStyle","getPropertyValue","currentSpacing","value","horizontal","xMargin","undefined","yMargin","appearing","process","env","NODE_ENV","document","getElementById","hideTooltip","handleKeyDown","event","key","addEventListener","removeEventListener","refocusFrame","pageInactive","onDisabledCleanup","onChange","active","requestAnimationFrame","isNotOverflown","currentTarget","element","offsetWidth","scrollWidth","animatedOnce","tooltipProps","elementProps","preventDefault","selection","getSelection","node","anchorNode","parentElement","contains","empty"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactElement, type ReactNode } from "react";
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
2
  import { type SkeletonPlaceholderOptions } from "./useSkeletonPlaceholder.js";
3
3
  declare module "react" {
4
4
  interface CSSProperties {
@@ -122,4 +122,4 @@ export interface SkeletonPlaceholderProps extends HTMLAttributes<HTMLDivElement>
122
122
  *
123
123
  * @remarks \@since 6.0.0
124
124
  */
125
- export declare function SkeletonPlaceholder(props: SkeletonPlaceholderProps): ReactElement;
125
+ export declare const SkeletonPlaceholder: import("react").ForwardRefExoticComponent<SkeletonPlaceholderProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
3
4
  import { useSkeletonPlaceholder } from "./useSkeletonPlaceholder.js";
4
5
  /**
5
6
  * **Client Component**
@@ -105,22 +106,26 @@ import { useSkeletonPlaceholder } from "./useSkeletonPlaceholder.js";
105
106
  * ```
106
107
  *
107
108
  * @remarks \@since 6.0.0
108
- */ export function SkeletonPlaceholder(props) {
109
- const { style, className, height, width, children, disabled = !!children, minPercentage, maxPercentage, ...remaining } = props;
109
+ */ export const SkeletonPlaceholder = /*#__PURE__*/ forwardRef(function SkeletonPlaceholder(props, ref) {
110
+ const { style, className, height, width, children, disabled = !!children, delay, minDelay, maxDelay, minPercentage, maxPercentage, ...remaining } = props;
110
111
  const skeleton = useSkeletonPlaceholder({
111
112
  disabled,
112
113
  style,
113
114
  className,
114
115
  height,
115
116
  width,
117
+ delay,
118
+ minDelay,
119
+ maxDelay,
116
120
  minPercentage,
117
121
  maxPercentage
118
122
  });
119
123
  return /*#__PURE__*/ _jsx("div", {
120
124
  ...remaining,
125
+ ref: ref,
121
126
  ...skeleton,
122
127
  children: children
123
128
  });
124
- }
129
+ });
125
130
 
126
131
  //# sourceMappingURL=SkeletonPlaceholder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transition/SkeletonPlaceholder.tsx"],"sourcesContent":["\"use client\";\nimport { type HTMLAttributes, type ReactElement, type ReactNode } from \"react\";\nimport {\n useSkeletonPlaceholder,\n type SkeletonPlaceholderOptions,\n} from \"./useSkeletonPlaceholder.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-skeleton-placeholder-background-color\"?: string;\n \"--rmd-skeleton-placeholder-height\"?: string | number;\n \"--rmd-skeleton-placeholder-width\"?: string | number;\n }\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface SkeletonPlaceholderProps\n extends HTMLAttributes<HTMLDivElement>,\n SkeletonPlaceholderOptions {\n /**\n * @defaultValue `!!children`\n * @see {@link SkeletonPlaceholderOptions.disabled}\n */\n disabled?: boolean;\n\n /** @see {@link SkeletonPlaceholderOptions.disabled} for an example */\n children?: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"@react\";\n * import { SkeletonPlaceholder } from \"@react-md/core\";\n *\n * interface ExampleProps {\n * loading: boolean;\n * children: ReactNode;\n * }\n *\n * export default function Example({ loading, children }: ExampleProps): ReactElement {\n * if (loading) {\n * return <SkeletonPlaceholder />;\n * }\n *\n * return <>{children}</>;\n * }\n * ```\n *\n * @example\n * Pre-rendered Layout\n * ```tsx\n * import type { ReactElement } from \"@react\";\n * import { SkeletonPlaceholder } from \"@react-md/core\";\n *\n * interface Data {\n * id: string;\n * name: string;\n * createdBy: string\n * createdOn: string;\n * modifiedBy: string;\n * modifiedOn: string;\n * }\n *\n * function ShowData({\n * id,\n * name,\n * createdBy,\n * createdOn,\n * modifiedBy,\n * modifiedOn,\n * }: Partial<Data>:: ReactElement {\n * const loading =\n * !name &&\n * !createdBy &&\n * !createdOn &&\n * !modifiedBy &&\n * !modifiedOn;\n *\n * return (\n * <Box grid gridName=\"custom-class-name\">\n * <SkeletonPlaceholder disabled={!loading}>\n * {id}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {name}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {createdOn}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {createdBy}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {modifiedOn}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {modifiedBy}\n * </SkeletonPlaceholder>\n * </Box>\n * );\n * }\n *\n * export function Example(): ReactElement {\n * const { data } = useLoadSomeDataQuery();\n *\n * const items = useMemo(() => {\n * // if the data has been fetched, just return the data\n * if (data) {\n * return data;\n * }\n *\n * // if the data does not exist, set up a skeleton of your layout by\n * // rendering a random number of items.\n * //\n * // NOTE: This is memoized so you don't create a random length each\n * // render\n * const length = randomInt({ min: 3, max: 10 })\n * return Array.from({ length }, (_, i) => ({ id: `placeholder-${i}` }));\n * }, [data])\n *\n * return (\n * <List>\n * {items.map((item) => <ShowData {...item} />)}\n * </List>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function SkeletonPlaceholder(\n props: SkeletonPlaceholderProps\n): ReactElement {\n const {\n style,\n className,\n height,\n width,\n children,\n disabled = !!children,\n minPercentage,\n maxPercentage,\n ...remaining\n } = props;\n const skeleton = useSkeletonPlaceholder({\n disabled,\n style,\n className,\n height,\n width,\n minPercentage,\n maxPercentage,\n });\n\n return (\n <div {...remaining} {...skeleton}>\n {children}\n </div>\n );\n}\n"],"names":["useSkeletonPlaceholder","SkeletonPlaceholder","props","style","className","height","width","children","disabled","minPercentage","maxPercentage","remaining","skeleton","div"],"mappings":"AAAA;;AAEA,SACEA,sBAAsB,QAEjB,8BAA8B;AAwBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGC,GACD,OAAO,SAASC,oBACdC,KAA+B;IAE/B,MAAM,EACJC,KAAK,EACLC,SAAS,EACTC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,WAAW,CAAC,CAACD,QAAQ,EACrBE,aAAa,EACbC,aAAa,EACb,GAAGC,WACJ,GAAGT;IACJ,MAAMU,WAAWZ,uBAAuB;QACtCQ;QACAL;QACAC;QACAC;QACAC;QACAG;QACAC;IACF;IAEA,qBACE,KAACG;QAAK,GAAGF,SAAS;QAAG,GAAGC,QAAQ;kBAC7BL;;AAGP"}
1
+ {"version":3,"sources":["../../src/transition/SkeletonPlaceholder.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport {\n useSkeletonPlaceholder,\n type SkeletonPlaceholderOptions,\n} from \"./useSkeletonPlaceholder.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-skeleton-placeholder-background-color\"?: string;\n \"--rmd-skeleton-placeholder-height\"?: string | number;\n \"--rmd-skeleton-placeholder-width\"?: string | number;\n }\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface SkeletonPlaceholderProps\n extends HTMLAttributes<HTMLDivElement>,\n SkeletonPlaceholderOptions {\n /**\n * @defaultValue `!!children`\n * @see {@link SkeletonPlaceholderOptions.disabled}\n */\n disabled?: boolean;\n\n /** @see {@link SkeletonPlaceholderOptions.disabled} for an example */\n children?: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"@react\";\n * import { SkeletonPlaceholder } from \"@react-md/core\";\n *\n * interface ExampleProps {\n * loading: boolean;\n * children: ReactNode;\n * }\n *\n * export default function Example({ loading, children }: ExampleProps): ReactElement {\n * if (loading) {\n * return <SkeletonPlaceholder />;\n * }\n *\n * return <>{children}</>;\n * }\n * ```\n *\n * @example\n * Pre-rendered Layout\n * ```tsx\n * import type { ReactElement } from \"@react\";\n * import { SkeletonPlaceholder } from \"@react-md/core\";\n *\n * interface Data {\n * id: string;\n * name: string;\n * createdBy: string\n * createdOn: string;\n * modifiedBy: string;\n * modifiedOn: string;\n * }\n *\n * function ShowData({\n * id,\n * name,\n * createdBy,\n * createdOn,\n * modifiedBy,\n * modifiedOn,\n * }: Partial<Data>:: ReactElement {\n * const loading =\n * !name &&\n * !createdBy &&\n * !createdOn &&\n * !modifiedBy &&\n * !modifiedOn;\n *\n * return (\n * <Box grid gridName=\"custom-class-name\">\n * <SkeletonPlaceholder disabled={!loading}>\n * {id}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {name}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {createdOn}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {createdBy}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {modifiedOn}\n * </SkeletonPlaceholder>\n * <SkeletonPlaceholder disabled={!loading}>\n * {modifiedBy}\n * </SkeletonPlaceholder>\n * </Box>\n * );\n * }\n *\n * export function Example(): ReactElement {\n * const { data } = useLoadSomeDataQuery();\n *\n * const items = useMemo(() => {\n * // if the data has been fetched, just return the data\n * if (data) {\n * return data;\n * }\n *\n * // if the data does not exist, set up a skeleton of your layout by\n * // rendering a random number of items.\n * //\n * // NOTE: This is memoized so you don't create a random length each\n * // render\n * const length = randomInt({ min: 3, max: 10 })\n * return Array.from({ length }, (_, i) => ({ id: `placeholder-${i}` }));\n * }, [data])\n *\n * return (\n * <List>\n * {items.map((item) => <ShowData {...item} />)}\n * </List>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport const SkeletonPlaceholder = forwardRef<\n HTMLDivElement,\n SkeletonPlaceholderProps\n>(function SkeletonPlaceholder(props, ref): ReactElement {\n const {\n style,\n className,\n height,\n width,\n children,\n disabled = !!children,\n delay,\n minDelay,\n maxDelay,\n minPercentage,\n maxPercentage,\n ...remaining\n } = props;\n const skeleton = useSkeletonPlaceholder({\n disabled,\n style,\n className,\n height,\n width,\n delay,\n minDelay,\n maxDelay,\n minPercentage,\n maxPercentage,\n });\n\n return (\n <div {...remaining} ref={ref} {...skeleton}>\n {children}\n </div>\n );\n});\n"],"names":["forwardRef","useSkeletonPlaceholder","SkeletonPlaceholder","props","ref","style","className","height","width","children","disabled","delay","minDelay","maxDelay","minPercentage","maxPercentage","remaining","skeleton","div"],"mappings":"AAAA;;AACA,SACEA,UAAU,QAIL,QAAQ;AACf,SACEC,sBAAsB,QAEjB,8BAA8B;AAwBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGC,GACD,OAAO,MAAMC,oCAAsBF,WAGjC,SAASE,oBAAoBC,KAAK,EAAEC,GAAG;IACvC,MAAM,EACJC,KAAK,EACLC,SAAS,EACTC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,WAAW,CAAC,CAACD,QAAQ,EACrBE,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,aAAa,EACb,GAAGC,WACJ,GAAGb;IACJ,MAAMc,WAAWhB,uBAAuB;QACtCS;QACAL;QACAC;QACAC;QACAC;QACAG;QACAC;QACAC;QACAC;QACAC;IACF;IAEA,qBACE,KAACG;QAAK,GAAGF,SAAS;QAAEZ,KAAKA;QAAM,GAAGa,QAAQ;kBACvCR;;AAGP,GAAG"}