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

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 (1595) hide show
  1. package/.eslintrc.cjs +8 -0
  2. package/.turbo/turbo-build.log +22 -22
  3. package/.turbo/turbo-lint.log +12 -0
  4. package/.turbo/turbo-test.log +5516 -0
  5. package/.turbo/turbo-typecheck.log +4 -0
  6. package/CHANGELOG.md +40 -0
  7. package/coverage/clover.xml +725 -141
  8. package/coverage/coverage-final.json +5 -4
  9. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +876 -171
  10. package/coverage/lcov-report/{src/layout/LayoutCloseNavigationButton.tsx.html → autocomplete/AutocompleteClearButton.tsx.html} +54 -57
  11. package/coverage/lcov-report/{menu/MenuVisibilityProvider.tsx.html → autocomplete/FilterAutocompleteOptions.tsx.html} +147 -153
  12. package/coverage/lcov-report/autocomplete/index.html +35 -110
  13. package/coverage/lcov-report/button/Button.tsx.html +84 -84
  14. package/coverage/lcov-report/button/index.html +10 -10
  15. package/coverage/lcov-report/card/Card.tsx.html +5 -5
  16. package/coverage/lcov-report/{dialog/DialogTitle.tsx.html → card/CardSubtitle.tsx.html} +57 -48
  17. package/coverage/lcov-report/card/index.html +39 -9
  18. package/coverage/lcov-report/card/styles.ts.html +21 -33
  19. package/coverage/lcov-report/{src/positioning/createHorizontalPosition.ts.html → createHorizontalPosition.ts.html} +137 -137
  20. package/coverage/lcov-report/{src/positioning/createVerticalPosition.ts.html → createVerticalPosition.ts.html} +77 -77
  21. package/coverage/lcov-report/form/Option.tsx.html +141 -141
  22. package/coverage/lcov-report/form/index.html +28 -43
  23. package/coverage/lcov-report/form/useListboxProvider.ts.html +135 -96
  24. package/coverage/lcov-report/index.html +37 -22
  25. package/coverage/lcov-report/searching/fuzzy.ts.html +80 -83
  26. package/coverage/lcov-report/searching/index.html +13 -43
  27. package/coverage/lcov-report/src/card/Card.tsx.html +5 -5
  28. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +33 -6
  29. package/coverage/lcov-report/src/card/index.html +9 -84
  30. package/coverage/lcov-report/src/card/styles.ts.html +21 -33
  31. package/coverage/lcov-report/src/cssUtils.ts.html +65 -65
  32. package/coverage/lcov-report/src/index.html +21 -21
  33. package/coverage/lcov-report/src/transition/index.html +11 -311
  34. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +81 -81
  35. package/coverage/lcov-report/transition/index.html +12 -12
  36. package/coverage/lcov-report/{useCSSTransition.ts.html → transition/useCSSTransition.ts.html} +169 -166
  37. package/coverage/lcov-report/typography/SrOnly.tsx.html +52 -79
  38. package/coverage/lcov-report/typography/index.html +18 -18
  39. package/coverage/lcov-report/utils.ts.html +940 -97
  40. package/coverage/lcov.info +831 -181
  41. package/dist/CoreProviders.js.map +1 -1
  42. package/dist/NoSsr.js.map +1 -1
  43. package/dist/RootHtml.js.map +1 -1
  44. package/dist/SsrProvider.js.map +1 -1
  45. package/dist/_box-shadows.scss +7 -4
  46. package/dist/_core.scss +5 -1
  47. package/dist/_utils.scss +3 -3
  48. package/dist/app-bar/AppBar.js.map +1 -1
  49. package/dist/app-bar/AppBarTitle.d.ts +8 -4
  50. package/dist/app-bar/AppBarTitle.js +3 -2
  51. package/dist/app-bar/AppBarTitle.js.map +1 -1
  52. package/dist/autocomplete/Autocomplete.d.ts +85 -0
  53. package/dist/autocomplete/Autocomplete.js +138 -0
  54. package/dist/autocomplete/Autocomplete.js.map +1 -0
  55. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +16 -0
  56. package/dist/autocomplete/AutocompleteCircularProgress.js +15 -0
  57. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -0
  58. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +32 -0
  59. package/dist/autocomplete/AutocompleteDropdownButton.js +29 -0
  60. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -0
  61. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +8 -0
  62. package/dist/autocomplete/FilterAutocompleteOptions.js +57 -0
  63. package/dist/autocomplete/FilterAutocompleteOptions.js.map +1 -0
  64. package/dist/autocomplete/_autocomplete.scss +75 -0
  65. package/dist/autocomplete/autocompleteStyles.d.ts +32 -0
  66. package/dist/autocomplete/autocompleteStyles.js +34 -0
  67. package/dist/autocomplete/autocompleteStyles.js.map +1 -0
  68. package/dist/autocomplete/defaults.d.ts +21 -0
  69. package/dist/autocomplete/defaults.js +52 -0
  70. package/dist/autocomplete/defaults.js.map +1 -0
  71. package/dist/autocomplete/types.d.ts +103 -0
  72. package/dist/autocomplete/types.js +5 -0
  73. package/dist/autocomplete/types.js.map +1 -0
  74. package/dist/avatar/Avatar.d.ts +1 -2
  75. package/dist/avatar/Avatar.js +1 -2
  76. package/dist/avatar/Avatar.js.map +1 -1
  77. package/dist/avatar/_avatar.scss +4 -3
  78. package/dist/avatar/styles.js.map +1 -1
  79. package/dist/badge/Badge.js.map +1 -1
  80. package/dist/box/Box.js.map +1 -1
  81. package/dist/box/styles.js.map +1 -1
  82. package/dist/button/AsyncButton.js +2 -2
  83. package/dist/button/AsyncButton.js.map +1 -1
  84. package/dist/button/Button.js.map +1 -1
  85. package/dist/button/ButtonUnstyled.js.map +1 -1
  86. package/dist/button/FloatingActionButton.js.map +1 -1
  87. package/dist/button/TooltippedButton.js.map +1 -1
  88. package/dist/button/buttonStyles.js.map +1 -1
  89. package/dist/button/buttonUnstyledStyles.js.map +1 -1
  90. package/dist/card/Card.d.ts +2 -1
  91. package/dist/card/Card.js.map +1 -1
  92. package/dist/card/CardContent.js.map +1 -1
  93. package/dist/card/CardFooter.js.map +1 -1
  94. package/dist/card/CardHeader.js.map +1 -1
  95. package/dist/card/CardSubtitle.d.ts +6 -0
  96. package/dist/card/CardSubtitle.js +2 -1
  97. package/dist/card/CardSubtitle.js.map +1 -1
  98. package/dist/card/CardTitle.js.map +1 -1
  99. package/dist/card/ClickableCard.js.map +1 -1
  100. package/dist/card/styles.js +2 -4
  101. package/dist/card/styles.js.map +1 -1
  102. package/dist/chip/Chip.js.map +1 -1
  103. package/dist/chip/styles.js.map +1 -1
  104. package/dist/cssUtils.d.ts +1 -1
  105. package/dist/cssUtils.js.map +1 -1
  106. package/dist/delegateEvent.js.map +1 -1
  107. package/dist/dialog/Dialog.js.map +1 -1
  108. package/dist/dialog/DialogContainer.js.map +1 -1
  109. package/dist/dialog/DialogContent.js.map +1 -1
  110. package/dist/dialog/DialogFooter.js.map +1 -1
  111. package/dist/dialog/DialogHeader.js.map +1 -1
  112. package/dist/dialog/DialogTitle.js.map +1 -1
  113. package/dist/dialog/FixedDialog.js.map +1 -1
  114. package/dist/dialog/NestedDialogProvider.js.map +1 -1
  115. package/dist/dialog/styles.js.map +1 -1
  116. package/dist/divider/Divider.js.map +1 -1
  117. package/dist/divider/styles.js.map +1 -1
  118. package/dist/draggable/useDraggable.js +2 -13
  119. package/dist/draggable/useDraggable.js.map +1 -1
  120. package/dist/draggable/utils.js.map +1 -1
  121. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  122. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  123. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  124. package/dist/expansion-panel/useExpansionList.js.map +1 -1
  125. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  126. package/dist/focus/useFocusContainer.js.map +1 -1
  127. package/dist/focus/utils.js.map +1 -1
  128. package/dist/form/Checkbox.js.map +1 -1
  129. package/dist/form/Fieldset.js.map +1 -1
  130. package/dist/form/FileInput.js.map +1 -1
  131. package/dist/form/Form.js.map +1 -1
  132. package/dist/form/FormMessage.js.map +1 -1
  133. package/dist/form/FormMessageContainer.js.map +1 -1
  134. package/dist/form/FormMessageCounter.js.map +1 -1
  135. package/dist/form/InputToggle.js.map +1 -1
  136. package/dist/form/InputToggleIcon.js.map +1 -1
  137. package/dist/form/Label.js.map +1 -1
  138. package/dist/form/Legend.js.map +1 -1
  139. package/dist/form/MenuItemCheckbox.js.map +1 -1
  140. package/dist/form/MenuItemFileInput.js.map +1 -1
  141. package/dist/form/MenuItemInputToggle.js.map +1 -1
  142. package/dist/form/MenuItemRadio.js.map +1 -1
  143. package/dist/form/MenuItemSwitch.js.map +1 -1
  144. package/dist/form/MenuItemTextField.js.map +1 -1
  145. package/dist/form/NativeSelect.js.map +1 -1
  146. package/dist/form/OptGroup.js.map +1 -1
  147. package/dist/form/Option.js.map +1 -1
  148. package/dist/form/Password.js.map +1 -1
  149. package/dist/form/Radio.js.map +1 -1
  150. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  151. package/dist/form/Select.js.map +1 -1
  152. package/dist/form/SelectedOption.js.map +1 -1
  153. package/dist/form/Slider.js.map +1 -1
  154. package/dist/form/SliderContainer.js.map +1 -1
  155. package/dist/form/SliderMark.js.map +1 -1
  156. package/dist/form/SliderMarkLabel.js.map +1 -1
  157. package/dist/form/SliderThumb.js.map +1 -1
  158. package/dist/form/SliderTrack.js.map +1 -1
  159. package/dist/form/SliderValueMarks.js.map +1 -1
  160. package/dist/form/SliderValueTooltip.js.map +1 -1
  161. package/dist/form/Switch.js.map +1 -1
  162. package/dist/form/SwitchTrack.js.map +1 -1
  163. package/dist/form/TextArea.js.map +1 -1
  164. package/dist/form/TextField.d.ts +1 -10
  165. package/dist/form/TextField.js +1 -2
  166. package/dist/form/TextField.js.map +1 -1
  167. package/dist/form/TextFieldAddon.js +5 -2
  168. package/dist/form/TextFieldAddon.js.map +1 -1
  169. package/dist/form/TextFieldContainer.js.map +1 -1
  170. package/dist/form/_form.scss +81 -40
  171. package/dist/form/fileUtils.js.map +1 -1
  172. package/dist/form/formConfig.js.map +1 -1
  173. package/dist/form/formMessageStyles.js.map +1 -1
  174. package/dist/form/inputToggleStyles.js.map +1 -1
  175. package/dist/form/menuItemInputToggleStyles.js.map +1 -1
  176. package/dist/form/nativeSelectStyles.js.map +1 -1
  177. package/dist/form/optionStyles.js.map +1 -1
  178. package/dist/form/passwordStyles.js.map +1 -1
  179. package/dist/form/selectStyles.js.map +1 -1
  180. package/dist/form/selectUtils.js.map +1 -1
  181. package/dist/form/sliderUtils.js.map +1 -1
  182. package/dist/form/switchStyles.js.map +1 -1
  183. package/dist/form/textAreaStyles.js.map +1 -1
  184. package/dist/form/textFieldContainerStyles.js.map +1 -1
  185. package/dist/form/textFieldStyles.js.map +1 -1
  186. package/dist/form/types.js.map +1 -1
  187. package/dist/form/useCheckboxGroup.js.map +1 -1
  188. package/dist/form/useCombobox.d.ts +6 -6
  189. package/dist/form/useCombobox.js +1 -1
  190. package/dist/form/useCombobox.js.map +1 -1
  191. package/dist/form/useEditableCombobox.js +3 -0
  192. package/dist/form/useEditableCombobox.js.map +1 -1
  193. package/dist/form/useFileUpload.js.map +1 -1
  194. package/dist/form/useFormReset.js.map +1 -1
  195. package/dist/form/useListboxProvider.js.map +1 -1
  196. package/dist/form/useNumberField.js.map +1 -1
  197. package/dist/form/useRadioGroup.js.map +1 -1
  198. package/dist/form/useRangeSlider.js.map +1 -1
  199. package/dist/form/useResizingTextArea.js.map +1 -1
  200. package/dist/form/useSelectCombobox.js.map +1 -1
  201. package/dist/form/useSlider.js.map +1 -1
  202. package/dist/form/useTextField.js.map +1 -1
  203. package/dist/form/useTextFieldContainerAddons.d.ts +88 -0
  204. package/dist/form/useTextFieldContainerAddons.js +85 -0
  205. package/dist/form/useTextFieldContainerAddons.js.map +1 -0
  206. package/dist/form/utils.js.map +1 -1
  207. package/dist/form/validation.js.map +1 -1
  208. package/dist/hoverMode/useHoverMode.js.map +1 -1
  209. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  210. package/dist/icon/FontIcon.d.ts +10 -6
  211. package/dist/icon/FontIcon.js +1 -5
  212. package/dist/icon/FontIcon.js.map +1 -1
  213. package/dist/icon/IconRotator.js.map +1 -1
  214. package/dist/icon/MaterialIcon.d.ts +19 -2
  215. package/dist/icon/MaterialIcon.js +14 -2
  216. package/dist/icon/MaterialIcon.js.map +1 -1
  217. package/dist/icon/MaterialSymbol.js.map +1 -1
  218. package/dist/icon/SVGIcon.d.ts +3 -0
  219. package/dist/icon/SVGIcon.js.map +1 -1
  220. package/dist/icon/TextIconSpacing.js.map +1 -1
  221. package/dist/icon/iconConfig.d.ts +8 -0
  222. package/dist/icon/iconConfig.js +4 -0
  223. package/dist/icon/iconConfig.js.map +1 -1
  224. package/dist/icon/material.d.ts +1 -1
  225. package/dist/icon/material.js.map +1 -1
  226. package/dist/icon/materialConfig.js.map +1 -1
  227. package/dist/icon/styles.js.map +1 -1
  228. package/dist/interaction/Ripple.js.map +1 -1
  229. package/dist/interaction/RippleContainer.js.map +1 -1
  230. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  231. package/dist/interaction/config.js.map +1 -1
  232. package/dist/interaction/types.js.map +1 -1
  233. package/dist/interaction/useElementInteraction.js.map +1 -1
  234. package/dist/interaction/useHigherContrastChildren.js.map +1 -1
  235. package/dist/interaction/utils.js.map +1 -1
  236. package/dist/layout/LayoutAppBar.js.map +1 -1
  237. package/dist/layout/LayoutNav.js.map +1 -1
  238. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  239. package/dist/layout/Main.js.map +1 -1
  240. package/dist/layout/layoutNavStyles.js.map +1 -1
  241. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
  242. package/dist/layout/mainStyles.js.map +1 -1
  243. package/dist/layout/useExpandableLayout.js.map +1 -1
  244. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  245. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  246. package/dist/layout/useLayoutTree.js.map +1 -1
  247. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  248. package/dist/layout/useMainTabIndex.js.map +1 -1
  249. package/dist/layout/useResizableLayout.js.map +1 -1
  250. package/dist/layout/useTemporaryLayout.js.map +1 -1
  251. package/dist/link/Link.d.ts +2 -4
  252. package/dist/link/Link.js +1 -2
  253. package/dist/link/Link.js.map +1 -1
  254. package/dist/link/SkipToMainContent.d.ts +10 -3
  255. package/dist/link/SkipToMainContent.js +4 -1
  256. package/dist/link/SkipToMainContent.js.map +1 -1
  257. package/dist/link/styles.d.ts +2 -2
  258. package/dist/link/styles.js.map +1 -1
  259. package/dist/list/List.js.map +1 -1
  260. package/dist/list/ListItem.js.map +1 -1
  261. package/dist/list/ListItemAddon.js.map +1 -1
  262. package/dist/list/ListItemChildren.js.map +1 -1
  263. package/dist/list/ListItemLink.js.map +1 -1
  264. package/dist/list/ListItemText.js.map +1 -1
  265. package/dist/list/ListSubheader.js.map +1 -1
  266. package/dist/list/getListItemHeight.js.map +1 -1
  267. package/dist/list/listItemStyles.js.map +1 -1
  268. package/dist/list/types.js.map +1 -1
  269. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  270. package/dist/media-queries/appSize.js.map +1 -1
  271. package/dist/media-queries/useMediaQuery.js.map +1 -1
  272. package/dist/menu/DropdownMenu.js.map +1 -1
  273. package/dist/menu/Menu.js.map +1 -1
  274. package/dist/menu/MenuBar.js.map +1 -1
  275. package/dist/menu/MenuButton.js.map +1 -1
  276. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  277. package/dist/menu/MenuItem.js.map +1 -1
  278. package/dist/menu/MenuItemButton.js.map +1 -1
  279. package/dist/menu/MenuItemCircularProgress.d.ts +2 -2
  280. package/dist/menu/MenuItemCircularProgress.js +2 -2
  281. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  282. package/dist/menu/MenuItemGroup.js.map +1 -1
  283. package/dist/menu/MenuItemSeparator.js.map +1 -1
  284. package/dist/menu/MenuSheet.js.map +1 -1
  285. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  286. package/dist/menu/MenuWidget.js.map +1 -1
  287. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
  288. package/dist/menu/useContextMenu.js.map +1 -1
  289. package/dist/menu/useMenuBarProvider.js.map +1 -1
  290. package/dist/menu/utils.js.map +1 -1
  291. package/dist/movement/constants.js.map +1 -1
  292. package/dist/movement/findMatchIndex.js.map +1 -1
  293. package/dist/movement/types.js.map +1 -1
  294. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  295. package/dist/movement/utils.js.map +1 -1
  296. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  297. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  298. package/dist/navigation/NavGroup.js.map +1 -1
  299. package/dist/navigation/NavItem.js.map +1 -1
  300. package/dist/navigation/NavItemButton.js.map +1 -1
  301. package/dist/navigation/NavItemLink.js.map +1 -1
  302. package/dist/navigation/NavSubheader.js.map +1 -1
  303. package/dist/navigation/Navigation.js.map +1 -1
  304. package/dist/navigation/getHrefFromParents.js.map +1 -1
  305. package/dist/navigation/navGroupStyles.js.map +1 -1
  306. package/dist/navigation/navItemStyles.js.map +1 -1
  307. package/dist/navigation/types.js.map +1 -1
  308. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  309. package/dist/overlay/Overlay.d.ts +1 -0
  310. package/dist/overlay/Overlay.js.map +1 -1
  311. package/dist/overlay/overlayStyles.js.map +1 -1
  312. package/dist/portal/Portal.d.ts +4 -0
  313. package/dist/portal/Portal.js.map +1 -1
  314. package/dist/portal/PortalContainerProvider.d.ts +8 -3
  315. package/dist/portal/PortalContainerProvider.js +1 -0
  316. package/dist/portal/PortalContainerProvider.js.map +1 -1
  317. package/dist/positioning/constants.d.ts +1 -1
  318. package/dist/positioning/constants.js.map +1 -1
  319. package/dist/positioning/createHorizontalPosition.d.ts +2 -2
  320. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  321. package/dist/positioning/createVerticalPosition.d.ts +3 -3
  322. package/dist/positioning/createVerticalPosition.js.map +1 -1
  323. package/dist/positioning/getFixedPosition.d.ts +1 -1
  324. package/dist/positioning/getFixedPosition.js.map +1 -1
  325. package/dist/positioning/types.d.ts +1 -1
  326. package/dist/positioning/types.js.map +1 -1
  327. package/dist/positioning/useFixedPositioning.d.ts +3 -3
  328. package/dist/positioning/useFixedPositioning.js.map +1 -1
  329. package/dist/positioning/utils.d.ts +1 -1
  330. package/dist/positioning/utils.js.map +1 -1
  331. package/dist/progress/CircularProgress.d.ts +5 -4
  332. package/dist/progress/CircularProgress.js.map +1 -1
  333. package/dist/progress/LinearProgress.js.map +1 -1
  334. package/dist/progress/getProgressA11y.js.map +1 -1
  335. package/dist/progress/types.js.map +1 -1
  336. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
  337. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  338. package/dist/responsive-item/_responsive-item.scss +4 -1
  339. package/dist/responsive-item/styles.js.map +1 -1
  340. package/dist/scroll/ScrollLock.js.map +1 -1
  341. package/dist/scroll/getScrollbarWidth.js.map +1 -1
  342. package/dist/scroll/useScrollLock.js.map +1 -1
  343. package/dist/searching/caseInsensitive.js.map +1 -1
  344. package/dist/searching/fuzzy.js.map +1 -1
  345. package/dist/searching/toSearchQuery.js.map +1 -1
  346. package/dist/searching/types.js.map +1 -1
  347. package/dist/searching/useFuzzyMatch.js.map +1 -1
  348. package/dist/searching/utils.js.map +1 -1
  349. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  350. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  351. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
  352. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  353. package/dist/sheet/Sheet.js.map +1 -1
  354. package/dist/sheet/styles.js.map +1 -1
  355. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  356. package/dist/snackbar/Snackbar.js.map +1 -1
  357. package/dist/snackbar/Toast.js.map +1 -1
  358. package/dist/snackbar/ToastActionButton.js.map +1 -1
  359. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  360. package/dist/snackbar/ToastContent.js.map +1 -1
  361. package/dist/snackbar/ToastManager.js.map +1 -1
  362. package/dist/snackbar/ToastManagerProvider.js.map +1 -1
  363. package/dist/snackbar/snackbarStyles.js.map +1 -1
  364. package/dist/snackbar/toastContentStyles.js.map +1 -1
  365. package/dist/snackbar/toastStyles.js.map +1 -1
  366. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  367. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  368. package/dist/suspense/NullSuspense.js.map +1 -1
  369. package/dist/table/StickyTableSection.d.ts +23 -0
  370. package/dist/table/StickyTableSection.js +56 -0
  371. package/dist/table/StickyTableSection.js.map +1 -0
  372. package/dist/table/Table.d.ts +1 -1
  373. package/dist/table/Table.js.map +1 -1
  374. package/dist/table/TableBody.d.ts +1 -1
  375. package/dist/table/TableBody.js.map +1 -1
  376. package/dist/table/TableCell.d.ts +3 -2
  377. package/dist/table/TableCell.js.map +1 -1
  378. package/dist/table/TableCellContent.d.ts +1 -2
  379. package/dist/table/TableCellContent.js.map +1 -1
  380. package/dist/table/TableCheckbox.js.map +1 -1
  381. package/dist/table/TableConfigurationProvider.d.ts +1 -73
  382. package/dist/table/TableConfigurationProvider.js.map +1 -1
  383. package/dist/table/TableContainer.js.map +1 -1
  384. package/dist/table/TableContainerProvider.js.map +1 -1
  385. package/dist/table/TableFooter.d.ts +8 -17
  386. package/dist/table/TableFooter.js +17 -80
  387. package/dist/table/TableFooter.js.map +1 -1
  388. package/dist/table/TableHeader.d.ts +8 -17
  389. package/dist/table/TableHeader.js +20 -87
  390. package/dist/table/TableHeader.js.map +1 -1
  391. package/dist/table/TableRadio.js.map +1 -1
  392. package/dist/table/TableRow.d.ts +1 -1
  393. package/dist/table/TableRow.js.map +1 -1
  394. package/dist/table/tableCellStyles.d.ts +1 -1
  395. package/dist/table/tableCellStyles.js.map +1 -1
  396. package/dist/table/tableContainerStyles.js.map +1 -1
  397. package/dist/table/tableFooterStyles.js.map +1 -1
  398. package/dist/table/tableHeaderStyles.js.map +1 -1
  399. package/dist/table/tableRowStyles.js.map +1 -1
  400. package/dist/table/tableStyles.js.map +1 -1
  401. package/dist/table/types.d.ts +89 -9
  402. package/dist/table/types.js.map +1 -1
  403. package/dist/table/useStickyTableSection.d.ts +27 -0
  404. package/dist/table/useStickyTableSection.js +84 -0
  405. package/dist/table/useStickyTableSection.js.map +1 -0
  406. package/dist/table/useTableSectionConfig.d.ts +13 -0
  407. package/dist/table/useTableSectionConfig.js +33 -0
  408. package/dist/table/useTableSectionConfig.js.map +1 -0
  409. package/dist/tabs/Tab.js.map +1 -1
  410. package/dist/tabs/TabList.js.map +1 -1
  411. package/dist/tabs/TabListScrollButton.js.map +1 -1
  412. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  413. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  414. package/dist/tabs/tabListStyles.js.map +1 -1
  415. package/dist/tabs/tabStyles.js.map +1 -1
  416. package/dist/tabs/useTabList.js.map +1 -1
  417. package/dist/tabs/useTabs.js.map +1 -1
  418. package/dist/tabs/utils.js.map +1 -1
  419. package/dist/test-utils/IntersectionObserver.js.map +1 -1
  420. package/dist/test-utils/ResizeObserver.js.map +1 -1
  421. package/dist/test-utils/data-testid.js.map +1 -1
  422. package/dist/test-utils/index.js.map +1 -1
  423. package/dist/test-utils/jest-setup.js.map +1 -1
  424. package/dist/test-utils/matchMedia.js.map +1 -1
  425. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
  426. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
  427. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  428. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
  429. package/dist/test-utils/polyfills/index.js.map +1 -1
  430. package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
  431. package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
  432. package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
  433. package/dist/test-utils/render.js.map +1 -1
  434. package/dist/test-utils/timers.js.map +1 -1
  435. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  436. package/dist/theme/ThemeProvider.js.map +1 -1
  437. package/dist/theme/_theme.scss +6 -5
  438. package/dist/theme/colors.js.map +1 -1
  439. package/dist/theme/cssVars.js.map +1 -1
  440. package/dist/theme/types.js.map +1 -1
  441. package/dist/theme/useCSSVariables.js.map +1 -1
  442. package/dist/theme/useColorScheme.js.map +1 -1
  443. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  444. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  445. package/dist/theme/usePrefersColorScheme.js.map +1 -1
  446. package/dist/theme/utils.js.map +1 -1
  447. package/dist/tooltip/Tooltip.d.ts +20 -9
  448. package/dist/tooltip/Tooltip.js.map +1 -1
  449. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  450. package/dist/tooltip/constants.js.map +1 -1
  451. package/dist/tooltip/tooltipStyles.js.map +1 -1
  452. package/dist/tooltip/useTooltip.d.ts +30 -16
  453. package/dist/tooltip/useTooltip.js.map +1 -1
  454. package/dist/tooltip/useTooltipPosition.d.ts +2 -4
  455. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  456. package/dist/tooltip/utils.js.map +1 -1
  457. package/dist/transition/CSSTransition.js.map +1 -1
  458. package/dist/transition/Collapse.js.map +1 -1
  459. package/dist/transition/CrossFade.js +2 -3
  460. package/dist/transition/CrossFade.js.map +1 -1
  461. package/dist/transition/ScaleTransition.js.map +1 -1
  462. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  463. package/dist/transition/Slide.js.map +1 -1
  464. package/dist/transition/SlideContainer.js.map +1 -1
  465. package/dist/transition/collapseStyles.js.map +1 -1
  466. package/dist/transition/config.js.map +1 -1
  467. package/dist/transition/maxWidthTransition.js.map +1 -1
  468. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  469. package/dist/transition/types.d.ts +19 -24
  470. package/dist/transition/types.js.map +1 -1
  471. package/dist/transition/useCSSTransition.js.map +1 -1
  472. package/dist/transition/useCarousel.js.map +1 -1
  473. package/dist/transition/useCollapseTransition.js.map +1 -1
  474. package/dist/transition/useCrossFadeTransition.js +2 -1
  475. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  476. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  477. package/dist/transition/useScaleTransition.js +2 -1
  478. package/dist/transition/useScaleTransition.js.map +1 -1
  479. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  480. package/dist/transition/useSlideTransition.js.map +1 -1
  481. package/dist/transition/useTransition.d.ts +1 -0
  482. package/dist/transition/useTransition.js +1 -0
  483. package/dist/transition/useTransition.js.map +1 -1
  484. package/dist/transition/utils.js.map +1 -1
  485. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  486. package/dist/tree/Tree.js.map +1 -1
  487. package/dist/tree/TreeGroup.js.map +1 -1
  488. package/dist/tree/TreeItem.js.map +1 -1
  489. package/dist/tree/TreeItemExpander.js.map +1 -1
  490. package/dist/tree/TreeProvider.js.map +1 -1
  491. package/dist/tree/styles.js.map +1 -1
  492. package/dist/tree/types.js.map +1 -1
  493. package/dist/tree/useTree.d.ts +3 -3
  494. package/dist/tree/useTree.js.map +1 -1
  495. package/dist/tree/useTreeExpansion.js.map +1 -1
  496. package/dist/tree/useTreeItems.js.map +1 -1
  497. package/dist/tree/useTreeMovement.js.map +1 -1
  498. package/dist/tree/useTreeSelection.js.map +1 -1
  499. package/dist/tree/utils.js.map +1 -1
  500. package/dist/types.js.map +1 -1
  501. package/dist/typography/SrOnly.js.map +1 -1
  502. package/dist/typography/TextContainer.d.ts +4 -0
  503. package/dist/typography/TextContainer.js +2 -0
  504. package/dist/typography/TextContainer.js.map +1 -1
  505. package/dist/typography/Typography.d.ts +10 -0
  506. package/dist/typography/Typography.js +3 -0
  507. package/dist/typography/Typography.js.map +1 -1
  508. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  509. package/dist/typography/textContainerStyles.js.map +1 -1
  510. package/dist/typography/typographyStyles.js.map +1 -1
  511. package/dist/{useAsyncAction.d.ts → useAsyncFunction.d.ts} +10 -10
  512. package/dist/{useAsyncAction.js → useAsyncFunction.js} +6 -6
  513. package/dist/useAsyncFunction.js.map +1 -0
  514. package/dist/useDebouncedFunction.js.map +1 -1
  515. package/dist/useDropzone.js.map +1 -1
  516. package/dist/useElementSize.js.map +1 -1
  517. package/dist/useEnsuredId.js.map +1 -1
  518. package/dist/useEnsuredRef.js.map +1 -1
  519. package/dist/useEnsuredState.js.map +1 -1
  520. package/dist/useHtmlClassName.js.map +1 -1
  521. package/dist/useIntersectionObserver.js.map +1 -1
  522. package/dist/useIsomorphicLayoutEffect.js.map +1 -1
  523. package/dist/useLocalStorage.js.map +1 -1
  524. package/dist/useMutationObserver.d.ts +52 -0
  525. package/dist/useMutationObserver.js +84 -0
  526. package/dist/useMutationObserver.js.map +1 -0
  527. package/dist/useOrientation.js.map +1 -1
  528. package/dist/usePageInactive.js.map +1 -1
  529. package/dist/useResizeListener.js.map +1 -1
  530. package/dist/useResizeObserver.js.map +1 -1
  531. package/dist/useThrottledFunction.js.map +1 -1
  532. package/dist/useToggle.js.map +1 -1
  533. package/dist/useUnmounted.js.map +1 -1
  534. package/dist/useWindowSize.js.map +1 -1
  535. package/dist/utils/RenderRecursively.js.map +1 -1
  536. package/dist/utils/alphaNumericSort.js.map +1 -1
  537. package/dist/utils/applyRef.js.map +1 -1
  538. package/dist/utils/bem.js.map +1 -1
  539. package/dist/utils/getClientPosition.js.map +1 -1
  540. package/dist/utils/getMiddleOfRange.js.map +1 -1
  541. package/dist/utils/getPercentage.js.map +1 -1
  542. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  543. package/dist/utils/getRangeSteps.js.map +1 -1
  544. package/dist/utils/identity.js.map +1 -1
  545. package/dist/utils/isElementVisible.js.map +1 -1
  546. package/dist/utils/loop.js.map +1 -1
  547. package/dist/utils/nearest.js.map +1 -1
  548. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  549. package/dist/utils/randomInt.js.map +1 -1
  550. package/dist/utils/wait.js.map +1 -1
  551. package/dist/utils/withinRange.js.map +1 -1
  552. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  553. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  554. package/package.json +26 -25
  555. package/scripts/getExportMap.ts +66 -0
  556. package/scripts/tsconfig.json +1 -1
  557. package/src/__tests__/{useAsyncAction.tsx → useAsyncFunction.tsx} +3 -3
  558. package/src/__tests__/useWindowSize.tsx +1 -2
  559. package/src/_box-shadows.scss +7 -4
  560. package/src/_core.scss +5 -1
  561. package/src/_utils.scss +3 -3
  562. package/src/app-bar/AppBarTitle.tsx +8 -4
  563. package/src/autocomplete/Autocomplete.tsx +294 -0
  564. package/src/autocomplete/AutocompleteCircularProgress.tsx +41 -0
  565. package/src/autocomplete/AutocompleteDropdownButton.tsx +66 -0
  566. package/src/autocomplete/FilterAutocompleteOptions.tsx +86 -0
  567. package/src/autocomplete/__tests__/Autocomplete.tsx +458 -0
  568. package/src/autocomplete/__tests__/__snapshots__/Autocomplete.tsx.snap +144 -0
  569. package/src/autocomplete/_autocomplete.scss +75 -0
  570. package/src/autocomplete/autocompleteStyles.ts +78 -0
  571. package/src/autocomplete/defaults.ts +83 -0
  572. package/src/autocomplete/types.ts +122 -0
  573. package/src/avatar/Avatar.tsx +1 -2
  574. package/src/avatar/_avatar.scss +4 -3
  575. package/src/button/AsyncButton.tsx +2 -2
  576. package/src/card/Card.tsx +2 -1
  577. package/src/card/CardSubtitle.tsx +9 -0
  578. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  579. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  580. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  581. package/src/card/styles.ts +2 -6
  582. package/src/cssUtils.ts +1 -1
  583. package/src/draggable/useDraggable.ts +6 -13
  584. package/src/form/TextField.tsx +0 -13
  585. package/src/form/TextFieldAddon.tsx +6 -4
  586. package/src/form/__tests__/__snapshots__/Select.tsx.snap +2 -2
  587. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +2 -2
  588. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +2 -2
  589. package/src/form/__tests__/useFormReset.tsx +1 -2
  590. package/src/form/_form.scss +81 -40
  591. package/src/form/useCombobox.ts +9 -19
  592. package/src/form/useEditableCombobox.ts +3 -0
  593. package/src/form/useTextFieldContainerAddons.ts +195 -0
  594. package/src/icon/FontIcon.tsx +19 -9
  595. package/src/icon/MaterialIcon.tsx +23 -4
  596. package/src/icon/SVGIcon.tsx +3 -0
  597. package/src/icon/iconConfig.tsx +10 -0
  598. package/src/icon/material.ts +276 -19
  599. package/src/link/Link.tsx +2 -4
  600. package/src/link/SkipToMainContent.tsx +11 -4
  601. package/src/link/styles.ts +2 -2
  602. package/src/menu/MenuItemCircularProgress.tsx +2 -2
  603. package/src/overlay/Overlay.tsx +1 -0
  604. package/src/portal/Portal.tsx +5 -0
  605. package/src/portal/PortalContainerProvider.tsx +16 -7
  606. package/src/positioning/__tests__/createHorizontalPosition.ts +2 -4
  607. package/src/positioning/constants.ts +1 -1
  608. package/src/positioning/createHorizontalPosition.ts +2 -2
  609. package/src/positioning/createVerticalPosition.ts +3 -3
  610. package/src/positioning/getFixedPosition.ts +1 -1
  611. package/src/positioning/types.ts +1 -1
  612. package/src/positioning/useFixedPositioning.ts +12 -4
  613. package/src/positioning/utils.ts +1 -1
  614. package/src/progress/CircularProgress.tsx +5 -4
  615. package/src/responsive-item/_responsive-item.scss +4 -1
  616. package/src/suspense/__tests__/CircularProgressSuspense.tsx +4 -4
  617. package/src/table/StickyTableSection.tsx +91 -0
  618. package/src/table/Table.tsx +2 -5
  619. package/src/table/TableBody.tsx +1 -2
  620. package/src/table/TableCell.tsx +3 -5
  621. package/src/table/TableCellContent.tsx +1 -3
  622. package/src/table/TableConfigurationProvider.tsx +1 -86
  623. package/src/table/TableFooter.tsx +19 -116
  624. package/src/table/TableHeader.tsx +20 -118
  625. package/src/table/TableRow.tsx +2 -4
  626. package/src/table/__tests__/Table.tsx +9 -8
  627. package/src/table/tableCellStyles.ts +1 -1
  628. package/src/table/types.ts +105 -10
  629. package/src/table/useStickyTableSection.tsx +126 -0
  630. package/src/table/useTableSectionConfig.ts +45 -0
  631. package/src/theme/_theme.scss +6 -5
  632. package/src/tooltip/Tooltip.tsx +24 -8
  633. package/src/tooltip/useTooltip.ts +52 -27
  634. package/src/tooltip/useTooltipPosition.ts +2 -4
  635. package/src/transition/CrossFade.tsx +1 -8
  636. package/src/transition/types.ts +23 -27
  637. package/src/transition/useCrossFadeTransition.ts +2 -0
  638. package/src/transition/useScaleTransition.ts +2 -0
  639. package/src/transition/useTransition.ts +1 -0
  640. package/src/tree/useTree.ts +3 -5
  641. package/src/typography/TextContainer.tsx +4 -0
  642. package/src/typography/Typography.tsx +10 -0
  643. package/src/{useAsyncAction.ts → useAsyncFunction.ts} +15 -15
  644. package/src/useMutationObserver.ts +118 -0
  645. package/src/useResizeListener.ts +1 -1
  646. package/coverage/lcov-report/AppBar.tsx.html +0 -784
  647. package/coverage/lcov-report/AsyncButton.tsx.html +0 -649
  648. package/coverage/lcov-report/AutoComplete.tsx.html +0 -283
  649. package/coverage/lcov-report/Avatar.tsx.html +0 -472
  650. package/coverage/lcov-report/Badge.tsx.html +0 -253
  651. package/coverage/lcov-report/CircularProgress.tsx.html +0 -799
  652. package/coverage/lcov-report/Collapse.tsx.html +0 -340
  653. package/coverage/lcov-report/CoreProviders.tsx.html +0 -502
  654. package/coverage/lcov-report/DefaultNavigationRenderer.tsx.html +0 -298
  655. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +0 -526
  656. package/coverage/lcov-report/Dialog.tsx.html +0 -1309
  657. package/coverage/lcov-report/DialogContent.tsx.html +0 -178
  658. package/coverage/lcov-report/DialogFooter.tsx.html +0 -169
  659. package/coverage/lcov-report/ExpansionList.tsx.html +0 -205
  660. package/coverage/lcov-report/ExpansionPanel.tsx.html +0 -934
  661. package/coverage/lcov-report/ExpansionPanelHeader.tsx.html +0 -622
  662. package/coverage/lcov-report/FileInput.tsx.html +0 -733
  663. package/coverage/lcov-report/FontIcon.tsx.html +0 -265
  664. package/coverage/lcov-report/IconRotator.tsx.html +0 -322
  665. package/coverage/lcov-report/InputToggle.tsx.html +0 -1117
  666. package/coverage/lcov-report/InputToggleIcon.tsx.html +0 -478
  667. package/coverage/lcov-report/LinearProgress.tsx.html +0 -658
  668. package/coverage/lcov-report/ListItem.tsx.html +0 -892
  669. package/coverage/lcov-report/ListItemLink.tsx.html +0 -616
  670. package/coverage/lcov-report/MaterialIcon.tsx.html +0 -235
  671. package/coverage/lcov-report/MaterialSymbol.tsx.html +0 -421
  672. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +0 -223
  673. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +0 -925
  674. package/coverage/lcov-report/MenuItemRadio.tsx.html +0 -436
  675. package/coverage/lcov-report/MenuItemSeparator.tsx.html +0 -223
  676. package/coverage/lcov-report/MenuItemTextField.tsx.html +0 -289
  677. package/coverage/lcov-report/NativeSelect.tsx.html +0 -763
  678. package/coverage/lcov-report/Navigation.tsx.html +0 -358
  679. package/coverage/lcov-report/Portal.tsx.html +0 -223
  680. package/coverage/lcov-report/PortalContainerProvider.tsx.html +0 -367
  681. package/coverage/lcov-report/RootHtml.tsx.html +0 -370
  682. package/coverage/lcov-report/SVGIcon.tsx.html +0 -445
  683. package/coverage/lcov-report/SegmentedButton.tsx.html +0 -628
  684. package/coverage/lcov-report/SegmentedButtonContainer.tsx.html +0 -277
  685. package/coverage/lcov-report/Select.tsx.html +0 -1411
  686. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +0 -613
  687. package/coverage/lcov-report/Snackbar.tsx.html +0 -610
  688. package/coverage/lcov-report/SrOnly.tsx.html +0 -328
  689. package/coverage/lcov-report/Switch.tsx.html +0 -535
  690. package/coverage/lcov-report/SwitchTrack.tsx.html +0 -262
  691. package/coverage/lcov-report/Tab.tsx.html +0 -622
  692. package/coverage/lcov-report/TabList.tsx.html +0 -757
  693. package/coverage/lcov-report/TabListScrollButton.tsx.html +0 -472
  694. package/coverage/lcov-report/Table.tsx.html +0 -457
  695. package/coverage/lcov-report/TableCell.tsx.html +0 -982
  696. package/coverage/lcov-report/TableCheckbox.tsx.html +0 -709
  697. package/coverage/lcov-report/TableContainer.tsx.html +0 -220
  698. package/coverage/lcov-report/TableFooter.tsx.html +0 -502
  699. package/coverage/lcov-report/TableHeader.tsx.html +0 -541
  700. package/coverage/lcov-report/TableRadio.tsx.html +0 -670
  701. package/coverage/lcov-report/TableRow.tsx.html +0 -289
  702. package/coverage/lcov-report/TextArea.tsx.html +0 -940
  703. package/coverage/lcov-report/TextField.tsx.html +0 -829
  704. package/coverage/lcov-report/TextFieldAddon.tsx.html +0 -382
  705. package/coverage/lcov-report/TextFieldContainer.tsx.html +0 -364
  706. package/coverage/lcov-report/Toast.tsx.html +0 -868
  707. package/coverage/lcov-report/ToastCloseButton.tsx.html +0 -340
  708. package/coverage/lcov-report/ToastManager.tsx.html +0 -1783
  709. package/coverage/lcov-report/ToastManagerProvider.tsx.html +0 -400
  710. package/coverage/lcov-report/Tooltip.tsx.html +0 -559
  711. package/coverage/lcov-report/TooltipHoverModeProvider.tsx.html +0 -253
  712. package/coverage/lcov-report/Tree.tsx.html +0 -1135
  713. package/coverage/lcov-report/TreeGroup.tsx.html +0 -313
  714. package/coverage/lcov-report/Typography.tsx.html +0 -1027
  715. package/coverage/lcov-report/app-bar/AppBar.tsx.html +0 -928
  716. package/coverage/lcov-report/app-bar/AppBarTitle.tsx.html +0 -430
  717. package/coverage/lcov-report/app-bar/index.html +0 -131
  718. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +0 -283
  719. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +0 -304
  720. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +0 -775
  721. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +0 -1039
  722. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +0 -829
  723. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +0 -715
  724. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +0 -340
  725. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +0 -454
  726. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +0 -373
  727. package/coverage/lcov-report/autocomplete/utils.ts.html +0 -196
  728. package/coverage/lcov-report/avatar/Avatar.tsx.html +0 -535
  729. package/coverage/lcov-report/avatar/index.html +0 -116
  730. package/coverage/lcov-report/avatar/styles.ts.html +0 -268
  731. package/coverage/lcov-report/badge/Badge.tsx.html +0 -364
  732. package/coverage/lcov-report/badge/index.html +0 -116
  733. package/coverage/lcov-report/box/Box.tsx.html +0 -562
  734. package/coverage/lcov-report/box/index.html +0 -131
  735. package/coverage/lcov-report/box/styles.ts.html +0 -622
  736. package/coverage/lcov-report/button/AsyncButton.tsx.html +0 -1045
  737. package/coverage/lcov-report/button/ButtonUnstyled.tsx.html +0 -214
  738. package/coverage/lcov-report/button/FloatingActionButton.tsx.html +0 -427
  739. package/coverage/lcov-report/button/TooltippedButton.tsx.html +0 -433
  740. package/coverage/lcov-report/button/buttonStyles.ts.html +0 -607
  741. package/coverage/lcov-report/button/buttonUnstyledStyles.ts.html +0 -142
  742. package/coverage/lcov-report/card/CardContent.tsx.html +0 -223
  743. package/coverage/lcov-report/card/CardHeader.tsx.html +0 -322
  744. package/coverage/lcov-report/card/ClickableCard.tsx.html +0 -400
  745. package/coverage/lcov-report/chip/Chip.tsx.html +0 -1072
  746. package/coverage/lcov-report/chip/index.html +0 -116
  747. package/coverage/lcov-report/chip/styles.ts.html +0 -436
  748. package/coverage/lcov-report/collapseStyles.ts.html +0 -184
  749. package/coverage/lcov-report/config.ts.html +0 -151
  750. package/coverage/lcov-report/cssUtils.ts.html +0 -814
  751. package/coverage/lcov-report/dialog/Dialog.tsx.html +0 -1309
  752. package/coverage/lcov-report/dialog/DialogContent.tsx.html +0 -178
  753. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +0 -169
  754. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +0 -148
  755. package/coverage/lcov-report/dialog/FixedDialog.tsx.html +0 -583
  756. package/coverage/lcov-report/dialog/index.html +0 -131
  757. package/coverage/lcov-report/dialog/styles.ts.html +0 -439
  758. package/coverage/lcov-report/divider/Divider.tsx.html +0 -280
  759. package/coverage/lcov-report/divider/index.html +0 -116
  760. package/coverage/lcov-report/draggable/index.html +0 -116
  761. package/coverage/lcov-report/draggable/useControlledDraggable.ts.html +0 -2131
  762. package/coverage/lcov-report/draggable/useDraggable.ts.html +0 -2398
  763. package/coverage/lcov-report/draggable/useDraggableOrig.ts.html +0 -316
  764. package/coverage/lcov-report/draggable/useLocalStorageDraggable.ts.html +0 -361
  765. package/coverage/lcov-report/draggable/useLocalStorageDraggableControls.ts.html +0 -487
  766. package/coverage/lcov-report/draggable/useLocalStorageDraggableLatest.ts.html +0 -334
  767. package/coverage/lcov-report/draggable/utils.ts.html +0 -808
  768. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +0 -211
  769. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +0 -943
  770. package/coverage/lcov-report/expansion-panel/ExpansionPanelHeader.tsx.html +0 -649
  771. package/coverage/lcov-report/expansion-panel/index.html +0 -146
  772. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +0 -928
  773. package/coverage/lcov-report/filters.ts.html +0 -1045
  774. package/coverage/lcov-report/findMatchIndex.ts.html +0 -385
  775. package/coverage/lcov-report/form/AutoComplete.tsx.html +0 -283
  776. package/coverage/lcov-report/form/FileInput.tsx.html +0 -739
  777. package/coverage/lcov-report/form/Form.tsx.html +0 -238
  778. package/coverage/lcov-report/form/FormMessage.tsx.html +0 -322
  779. package/coverage/lcov-report/form/FormMessageContainer.tsx.html +0 -229
  780. package/coverage/lcov-report/form/InputToggle.tsx.html +0 -1108
  781. package/coverage/lcov-report/form/InputToggleIcon.tsx.html +0 -478
  782. package/coverage/lcov-report/form/Label.tsx.html +0 -442
  783. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +0 -979
  784. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +0 -289
  785. package/coverage/lcov-report/form/NativeSelect.tsx.html +0 -826
  786. package/coverage/lcov-report/form/OptGroup.tsx.html +0 -343
  787. package/coverage/lcov-report/form/Password.tsx.html +0 -721
  788. package/coverage/lcov-report/form/Radio.tsx.html +0 -169
  789. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +0 -442
  790. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +0 -310
  791. package/coverage/lcov-report/form/Select.tsx.html +0 -1456
  792. package/coverage/lcov-report/form/SelectOriginal.tsx.html +0 -1630
  793. package/coverage/lcov-report/form/SelectV2.tsx.html +0 -1024
  794. package/coverage/lcov-report/form/SelectedOption.tsx.html +0 -250
  795. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +0 -727
  796. package/coverage/lcov-report/form/Slider.tsx.html +0 -2014
  797. package/coverage/lcov-report/form/SliderThumb.tsx.html +0 -1030
  798. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +0 -319
  799. package/coverage/lcov-report/form/Switch.tsx.html +0 -535
  800. package/coverage/lcov-report/form/SwitchTrack.tsx.html +0 -262
  801. package/coverage/lcov-report/form/TextArea.tsx.html +0 -964
  802. package/coverage/lcov-report/form/TextArea2.tsx.html +0 -985
  803. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +0 -1006
  804. package/coverage/lcov-report/form/TextField.tsx.html +0 -829
  805. package/coverage/lcov-report/form/fileUtils.ts.html +0 -2155
  806. package/coverage/lcov-report/form/formMessageStyles.ts.html +0 -238
  807. package/coverage/lcov-report/form/inputToggleStyles.ts.html +0 -316
  808. package/coverage/lcov-report/form/selectUtils.ts.html +0 -397
  809. package/coverage/lcov-report/form/switchStyles.ts.html +0 -172
  810. package/coverage/lcov-report/form/textAreaStyles.ts.html +0 -382
  811. package/coverage/lcov-report/form/useAutoComplete.ts.html +0 -787
  812. package/coverage/lcov-report/form/useCheckboxGroup.ts.html +0 -1087
  813. package/coverage/lcov-report/form/useCombobox-6-13.ts.html +0 -1054
  814. package/coverage/lcov-report/form/useCombobox-6-15.ts.html +0 -1048
  815. package/coverage/lcov-report/form/useCombobox.ts.html +0 -1045
  816. package/coverage/lcov-report/form/useComboboxBoth.ts.html +0 -85
  817. package/coverage/lcov-report/form/useComboboxDialog.ts.html +0 -85
  818. package/coverage/lcov-report/form/useComboboxList.ts.html +0 -418
  819. package/coverage/lcov-report/form/useComboboxOrig.ts.html +0 -781
  820. package/coverage/lcov-report/form/useFileUpload.ts.html +0 -1702
  821. package/coverage/lcov-report/form/useFormReset.ts.html +0 -229
  822. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +0 -379
  823. package/coverage/lcov-report/form/useNumberField.ts.html +0 -1561
  824. package/coverage/lcov-report/form/useRadioGroup.ts.html +0 -1009
  825. package/coverage/lcov-report/form/useRangeSlider.ts.html +0 -355
  826. package/coverage/lcov-report/form/useResizingTextArea.ts.html +0 -631
  827. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +0 -631
  828. package/coverage/lcov-report/form/useSelectCombobox.ts.html +0 -499
  829. package/coverage/lcov-report/form/useSlider.ts.html +0 -421
  830. package/coverage/lcov-report/form/useTextField.ts.html +0 -2203
  831. package/coverage/lcov-report/form/utils.ts.html +0 -382
  832. package/coverage/lcov-report/form/validation.ts.html +0 -886
  833. package/coverage/lcov-report/getHrefFromParents.ts.html +0 -133
  834. package/coverage/lcov-report/getListItemHeight.ts.html +0 -298
  835. package/coverage/lcov-report/hoverMode/index.html +0 -116
  836. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +0 -676
  837. package/coverage/lcov-report/icon/FontIcon.tsx.html +0 -256
  838. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +0 -235
  839. package/coverage/lcov-report/icon/index.html +0 -116
  840. package/coverage/lcov-report/icon/styles.ts.html +0 -586
  841. package/coverage/lcov-report/iconConfig.tsx.html +0 -973
  842. package/coverage/lcov-report/inputToggleStyles.ts.html +0 -316
  843. package/coverage/lcov-report/interaction/ElementInteractionProvider.tsx.html +0 -253
  844. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +0 -679
  845. package/coverage/lcov-report/interaction/config.ts.html +0 -181
  846. package/coverage/lcov-report/interaction/index.html +0 -131
  847. package/coverage/lcov-report/layout/LayoutAppBar.tsx.html +0 -358
  848. package/coverage/lcov-report/layout/LayoutNav.tsx.html +0 -682
  849. package/coverage/lcov-report/layout/LayoutWindowSplitter.tsx.html +0 -460
  850. package/coverage/lcov-report/layout/Main.tsx.html +0 -364
  851. package/coverage/lcov-report/layout/NavigationLink.tsx.html +0 -334
  852. package/coverage/lcov-report/layout/NavigationRail.tsx.html +0 -157
  853. package/coverage/lcov-report/layout/index.html +0 -161
  854. package/coverage/lcov-report/layout/layoutNavStyles.ts.html +0 -166
  855. package/coverage/lcov-report/layout/layoutWindowSplitterStyles.ts.html +0 -220
  856. package/coverage/lcov-report/layout/navigationLinkStyles.ts.html +0 -250
  857. package/coverage/lcov-report/layout/navigationRailStyles.ts.html +0 -148
  858. package/coverage/lcov-report/layout/useExpandableLayout.ts.html +0 -928
  859. package/coverage/lcov-report/layout/useExpandableLayoutAppBarTransition.ts.html +0 -199
  860. package/coverage/lcov-report/layout/useHorizontalLayoutTransition.ts.html +0 -349
  861. package/coverage/lcov-report/layout/useLayoutAppBarHeight.ts.html +0 -343
  862. package/coverage/lcov-report/layout/useLayoutNavigation.ts.html +0 -544
  863. package/coverage/lcov-report/layout/useLayoutTree.ts.html +0 -691
  864. package/coverage/lcov-report/layout/useLayoutWindowSplitter.ts.html +0 -517
  865. package/coverage/lcov-report/layout/useMainTabIndex.ts.html +0 -136
  866. package/coverage/lcov-report/layout/useResizableLayout.ts.html +0 -328
  867. package/coverage/lcov-report/layout/useTemporaryLayout.ts.html +0 -589
  868. package/coverage/lcov-report/link/Link.tsx.html +0 -358
  869. package/coverage/lcov-report/link/LinkProvider.tsx.html +0 -214
  870. package/coverage/lcov-report/link/SkipToMainContent.tsx.html +0 -448
  871. package/coverage/lcov-report/link/index.html +0 -116
  872. package/coverage/lcov-report/list/List.tsx.html +0 -490
  873. package/coverage/lcov-report/list/ListItem.tsx.html +0 -886
  874. package/coverage/lcov-report/list/ListItemAddon.tsx.html +0 -286
  875. package/coverage/lcov-report/list/ListItemChildren.tsx.html +0 -445
  876. package/coverage/lcov-report/list/ListItemLink.tsx.html +0 -616
  877. package/coverage/lcov-report/list/ListItemText.tsx.html +0 -280
  878. package/coverage/lcov-report/list/ListSubheader.tsx.html +0 -322
  879. package/coverage/lcov-report/list/index.html +0 -191
  880. package/coverage/lcov-report/list/listItemStyles.ts.html +0 -703
  881. package/coverage/lcov-report/materialConfig.ts.html +0 -703
  882. package/coverage/lcov-report/media-queries/AppSizeProvider.tsx.html +0 -499
  883. package/coverage/lcov-report/media-queries/appSize.ts.html +0 -445
  884. package/coverage/lcov-report/media-queries/index.html +0 -116
  885. package/coverage/lcov-report/media-queries/useMediaQuery.ts.html +0 -244
  886. package/coverage/lcov-report/media-queries/useMinWidthMediaQuery.ts.html +0 -115
  887. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +0 -976
  888. package/coverage/lcov-report/menu/Menu.tsx.html +0 -1894
  889. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +0 -637
  890. package/coverage/lcov-report/menu/MenuItem.tsx.html +0 -292
  891. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +0 -433
  892. package/coverage/lcov-report/menu/MenuItemGroup.tsx.html +0 -382
  893. package/coverage/lcov-report/menu/MenuSheet.tsx.html +0 -502
  894. package/coverage/lcov-report/menu/MenuWidget.tsx.html +0 -634
  895. package/coverage/lcov-report/menu/index.html +0 -116
  896. package/coverage/lcov-report/menu/menuConfig.ts.html +0 -118
  897. package/coverage/lcov-report/menu/useContextMenu.ts.html +0 -490
  898. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +0 -319
  899. package/coverage/lcov-report/movement/index.html +0 -116
  900. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +0 -1723
  901. package/coverage/lcov-report/navigation/CollapsibleNavGroup.tsx.html +0 -334
  902. package/coverage/lcov-report/navigation/DefaultNavigationRenderer.tsx.html +0 -298
  903. package/coverage/lcov-report/navigation/NavGroup.tsx.html +0 -193
  904. package/coverage/lcov-report/navigation/NavItem.tsx.html +0 -160
  905. package/coverage/lcov-report/navigation/NavItemButton.tsx.html +0 -397
  906. package/coverage/lcov-report/navigation/NavItemLink.tsx.html +0 -574
  907. package/coverage/lcov-report/navigation/NavSubheader.tsx.html +0 -184
  908. package/coverage/lcov-report/navigation/Navigation.tsx.html +0 -358
  909. package/coverage/lcov-report/navigation/getHrefFromParents.ts.html +0 -130
  910. package/coverage/lcov-report/navigation/index.html +0 -146
  911. package/coverage/lcov-report/navigation/navGroupStyles.ts.html +0 -148
  912. package/coverage/lcov-report/navigation/navItemStyles.ts.html +0 -298
  913. package/coverage/lcov-report/overlay/Overlay.tsx.html +0 -655
  914. package/coverage/lcov-report/overlay/index.html +0 -116
  915. package/coverage/lcov-report/positioning/constants.ts.html +0 -463
  916. package/coverage/lcov-report/positioning/createVerticalPosition.ts.html +0 -1009
  917. package/coverage/lcov-report/positioning/getFixedPosition.ts.html +0 -616
  918. package/coverage/lcov-report/positioning/index.html +0 -131
  919. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +0 -1321
  920. package/coverage/lcov-report/progress/CircularProgress.tsx.html +0 -799
  921. package/coverage/lcov-report/progress/LinearProgress.tsx.html +0 -658
  922. package/coverage/lcov-report/progress/index.html +0 -116
  923. package/coverage/lcov-report/searching/caseInsensitive.ts.html +0 -685
  924. package/coverage/lcov-report/searching/toSearchQuery.ts.html +0 -145
  925. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +0 -211
  926. package/coverage/lcov-report/searching/utils.ts.html +0 -244
  927. package/coverage/lcov-report/segmented-button/SegmentedButton.tsx.html +0 -628
  928. package/coverage/lcov-report/segmented-button/SegmentedButtonContainer.tsx.html +0 -259
  929. package/coverage/lcov-report/segmented-button/index.html +0 -161
  930. package/coverage/lcov-report/segmented-button/segmentedButtonContainerStyles.ts.html +0 -151
  931. package/coverage/lcov-report/segmented-button/segmentedButtonStyles.ts.html +0 -199
  932. package/coverage/lcov-report/segmentedButtonContainerStyles.ts.html +0 -160
  933. package/coverage/lcov-report/segmentedButtonStyles.ts.html +0 -199
  934. package/coverage/lcov-report/sheet/Sheet.tsx.html +0 -397
  935. package/coverage/lcov-report/sheet/index.html +0 -116
  936. package/coverage/lcov-report/sheet/styles.ts.html +0 -376
  937. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +0 -400
  938. package/coverage/lcov-report/snackbar/DefaultToastRenderer.tsx.html +0 -529
  939. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +0 -610
  940. package/coverage/lcov-report/snackbar/Toast.tsx.html +0 -868
  941. package/coverage/lcov-report/snackbar/ToastContent.tsx.html +0 -364
  942. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +0 -1804
  943. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +0 -400
  944. package/coverage/lcov-report/snackbar/index.html +0 -116
  945. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +0 -139
  946. package/coverage/lcov-report/snackbar/toastContentStyles.ts.html +0 -196
  947. package/coverage/lcov-report/snackbar/toastStyles.ts.html +0 -349
  948. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +0 -226
  949. package/coverage/lcov-report/snackbarStyles.ts.html +0 -139
  950. package/coverage/lcov-report/src/AppSize.tsx.html +0 -247
  951. package/coverage/lcov-report/src/AppSizeProvider.tsx.html +0 -787
  952. package/coverage/lcov-report/src/CoreProviders.tsx.html +0 -412
  953. package/coverage/lcov-report/src/NoSsr.tsx.html +0 -250
  954. package/coverage/lcov-report/src/NullSsrSuspense.tsx.html +0 -223
  955. package/coverage/lcov-report/src/RootHtml.tsx.html +0 -370
  956. package/coverage/lcov-report/src/SsrProvider.tsx.html +0 -211
  957. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +0 -937
  958. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +0 -445
  959. package/coverage/lcov-report/src/app-bar/index.html +0 -131
  960. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +0 -328
  961. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +0 -304
  962. package/coverage/lcov-report/src/autocomplete/index.html +0 -221
  963. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +0 -1039
  964. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +0 -829
  965. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +0 -715
  966. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +0 -454
  967. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +0 -373
  968. package/coverage/lcov-report/src/autocomplete/utils.ts.html +0 -196
  969. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +0 -472
  970. package/coverage/lcov-report/src/avatar/index.html +0 -131
  971. package/coverage/lcov-report/src/avatar/styles.ts.html +0 -268
  972. package/coverage/lcov-report/src/badge/Badge.tsx.html +0 -382
  973. package/coverage/lcov-report/src/badge/index.html +0 -116
  974. package/coverage/lcov-report/src/box/Box.tsx.html +0 -541
  975. package/coverage/lcov-report/src/box/index.html +0 -131
  976. package/coverage/lcov-report/src/box/styles.ts.html +0 -622
  977. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +0 -1045
  978. package/coverage/lcov-report/src/button/Button.tsx.html +0 -688
  979. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +0 -211
  980. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +0 -382
  981. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +0 -445
  982. package/coverage/lcov-report/src/button/buttonStyles.ts.html +0 -607
  983. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +0 -142
  984. package/coverage/lcov-report/src/button/index.html +0 -116
  985. package/coverage/lcov-report/src/card/CardContent.tsx.html +0 -223
  986. package/coverage/lcov-report/src/card/CardFooter.tsx.html +0 -196
  987. package/coverage/lcov-report/src/card/CardHeader.tsx.html +0 -319
  988. package/coverage/lcov-report/src/card/CardTitle.tsx.html +0 -247
  989. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +0 -400
  990. package/coverage/lcov-report/src/chip/Chip.tsx.html +0 -1102
  991. package/coverage/lcov-report/src/chip/index.html +0 -131
  992. package/coverage/lcov-report/src/chip/styles.ts.html +0 -457
  993. package/coverage/lcov-report/src/delegateEvent.ts.html +0 -619
  994. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +0 -1309
  995. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +0 -175
  996. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +0 -178
  997. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +0 -169
  998. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +0 -148
  999. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +0 -256
  1000. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +0 -577
  1001. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +0 -127
  1002. package/coverage/lcov-report/src/dialog/index.html +0 -236
  1003. package/coverage/lcov-report/src/dialog/styles.ts.html +0 -439
  1004. package/coverage/lcov-report/src/divider/Divider.tsx.html +0 -274
  1005. package/coverage/lcov-report/src/divider/VerticalDivider.tsx.html +0 -235
  1006. package/coverage/lcov-report/src/divider/index.html +0 -116
  1007. package/coverage/lcov-report/src/divider/styles.ts.html +0 -232
  1008. package/coverage/lcov-report/src/divider/useVerticalDividerHeight.ts.html +0 -301
  1009. package/coverage/lcov-report/src/draggable/index.html +0 -131
  1010. package/coverage/lcov-report/src/draggable/useControlledDraggable.ts.html +0 -2137
  1011. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +0 -2398
  1012. package/coverage/lcov-report/src/draggable/useDraggableOrig.ts.html +0 -316
  1013. package/coverage/lcov-report/src/draggable/useLocalStorageDraggable.ts.html +0 -370
  1014. package/coverage/lcov-report/src/draggable/utils.ts.html +0 -808
  1015. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +0 -211
  1016. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +0 -943
  1017. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +0 -649
  1018. package/coverage/lcov-report/src/expansion-panel/index.html +0 -176
  1019. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +0 -322
  1020. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +0 -928
  1021. package/coverage/lcov-report/src/focus/index.html +0 -131
  1022. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +0 -883
  1023. package/coverage/lcov-report/src/focus/utils.ts.html +0 -544
  1024. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +0 -283
  1025. package/coverage/lcov-report/src/form/Checkbox.tsx.html +0 -160
  1026. package/coverage/lcov-report/src/form/Fieldset.tsx.html +0 -355
  1027. package/coverage/lcov-report/src/form/FileInput.tsx.html +0 -739
  1028. package/coverage/lcov-report/src/form/Form.tsx.html +0 -238
  1029. package/coverage/lcov-report/src/form/FormMessage.tsx.html +0 -322
  1030. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +0 -223
  1031. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +0 -262
  1032. package/coverage/lcov-report/src/form/FormThemeProvider.tsx.html +0 -313
  1033. package/coverage/lcov-report/src/form/InputToggle.tsx.html +0 -1108
  1034. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +0 -478
  1035. package/coverage/lcov-report/src/form/Label.tsx.html +0 -439
  1036. package/coverage/lcov-report/src/form/Legend.tsx.html +0 -199
  1037. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +0 -223
  1038. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +0 -424
  1039. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +0 -925
  1040. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +0 -436
  1041. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +0 -211
  1042. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +0 -289
  1043. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +0 -763
  1044. package/coverage/lcov-report/src/form/OptGroup.tsx.html +0 -343
  1045. package/coverage/lcov-report/src/form/Option.tsx.html +0 -709
  1046. package/coverage/lcov-report/src/form/Password.tsx.html +0 -721
  1047. package/coverage/lcov-report/src/form/Radio.tsx.html +0 -172
  1048. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +0 -988
  1049. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +0 -310
  1050. package/coverage/lcov-report/src/form/Select.tsx.html +0 -1411
  1051. package/coverage/lcov-report/src/form/SelectValue.tsx.html +0 -202
  1052. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +0 -694
  1053. package/coverage/lcov-report/src/form/Slider.tsx.html +0 -2008
  1054. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +0 -358
  1055. package/coverage/lcov-report/src/form/SliderMark.tsx.html +0 -208
  1056. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +0 -271
  1057. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +0 -1084
  1058. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +0 -454
  1059. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +0 -745
  1060. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +0 -319
  1061. package/coverage/lcov-report/src/form/Switch.tsx.html +0 -535
  1062. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +0 -262
  1063. package/coverage/lcov-report/src/form/TextArea.tsx.html +0 -1006
  1064. package/coverage/lcov-report/src/form/TextArea2.tsx.html +0 -985
  1065. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +0 -985
  1066. package/coverage/lcov-report/src/form/TextField.tsx.html +0 -829
  1067. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +0 -382
  1068. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +0 -364
  1069. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +0 -418
  1070. package/coverage/lcov-report/src/form/fileUtils.ts.html +0 -2155
  1071. package/coverage/lcov-report/src/form/formConfig.ts.html +0 -157
  1072. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +0 -238
  1073. package/coverage/lcov-report/src/form/index.html +0 -176
  1074. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +0 -316
  1075. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +0 -319
  1076. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +0 -253
  1077. package/coverage/lcov-report/src/form/optionStyles.ts.html +0 -151
  1078. package/coverage/lcov-report/src/form/passwordStyles.ts.html +0 -235
  1079. package/coverage/lcov-report/src/form/selectStyles.ts.html +0 -181
  1080. package/coverage/lcov-report/src/form/selectUtils.ts.html +0 -430
  1081. package/coverage/lcov-report/src/form/sliderUtils.ts.html +0 -790
  1082. package/coverage/lcov-report/src/form/switchStyles.ts.html +0 -172
  1083. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +0 -385
  1084. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +0 -184
  1085. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +0 -787
  1086. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +0 -1087
  1087. package/coverage/lcov-report/src/form/useCombobox.ts.html +0 -1540
  1088. package/coverage/lcov-report/src/form/useComboboxBoth.ts.html +0 -85
  1089. package/coverage/lcov-report/src/form/useComboboxDialog.ts.html +0 -85
  1090. package/coverage/lcov-report/src/form/useComboboxList.ts.html +0 -403
  1091. package/coverage/lcov-report/src/form/useComboboxOrig.ts.html +0 -781
  1092. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +0 -502
  1093. package/coverage/lcov-report/src/form/useFileUpload.ts.html +0 -1702
  1094. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +0 -109
  1095. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +0 -214
  1096. package/coverage/lcov-report/src/form/useNumberField.ts.html +0 -1561
  1097. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +0 -1021
  1098. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +0 -355
  1099. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +0 -634
  1100. package/coverage/lcov-report/src/form/useResizingTextArea.tsx.html +0 -523
  1101. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +0 -295
  1102. package/coverage/lcov-report/src/form/useSlider.ts.html +0 -421
  1103. package/coverage/lcov-report/src/form/useTextField.ts.html +0 -2203
  1104. package/coverage/lcov-report/src/form/utils.ts.html +0 -373
  1105. package/coverage/lcov-report/src/form/validation.ts.html +0 -886
  1106. package/coverage/lcov-report/src/hoverMode/index.html +0 -131
  1107. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +0 -676
  1108. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +0 -1018
  1109. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +0 -256
  1110. package/coverage/lcov-report/src/icon/IconProvider.tsx.html +0 -931
  1111. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +0 -322
  1112. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +0 -235
  1113. package/coverage/lcov-report/src/icon/MaterialIconsProvider.ts.html +0 -154
  1114. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +0 -421
  1115. package/coverage/lcov-report/src/icon/MaterialSymbolsProvider.tsx.html +0 -757
  1116. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +0 -445
  1117. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +0 -679
  1118. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +0 -973
  1119. package/coverage/lcov-report/src/icon/index.html +0 -116
  1120. package/coverage/lcov-report/src/icon/material.ts.html +0 -15922
  1121. package/coverage/lcov-report/src/icon/materialConfig.ts.html +0 -703
  1122. package/coverage/lcov-report/src/icon/styles.ts.html +0 -586
  1123. package/coverage/lcov-report/src/interaction/ElementInteractionProvider.tsx.html +0 -277
  1124. package/coverage/lcov-report/src/interaction/LazyRippleContainer.tsx.html +0 -136
  1125. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +0 -283
  1126. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +0 -211
  1127. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +0 -679
  1128. package/coverage/lcov-report/src/interaction/config.ts.html +0 -181
  1129. package/coverage/lcov-report/src/interaction/index.html +0 -206
  1130. package/coverage/lcov-report/src/interaction/useElementInteraction.ts.html +0 -1474
  1131. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +0 -1513
  1132. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +0 -355
  1133. package/coverage/lcov-report/src/interaction/utils.ts.html +0 -496
  1134. package/coverage/lcov-report/src/layout/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1135. package/coverage/lcov-report/src/layout/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1136. package/coverage/lcov-report/src/layout/Layout.tsx.html +0 -235
  1137. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +0 -364
  1138. package/coverage/lcov-report/src/layout/LayoutAppBarTitle.tsx.html +0 -193
  1139. package/coverage/lcov-report/src/layout/LayoutChildren.tsx.html +0 -718
  1140. package/coverage/lcov-report/src/layout/LayoutMain.tsx.html +0 -580
  1141. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +0 -688
  1142. package/coverage/lcov-report/src/layout/LayoutNavToggle.tsx.html +0 -430
  1143. package/coverage/lcov-report/src/layout/LayoutNavigation.tsx.html +0 -445
  1144. package/coverage/lcov-report/src/layout/LayoutNavigationHeader.tsx.html +0 -274
  1145. package/coverage/lcov-report/src/layout/LayoutProvider.tsx.html +0 -706
  1146. package/coverage/lcov-report/src/layout/LayoutTree.tsx.html +0 -331
  1147. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +0 -472
  1148. package/coverage/lcov-report/src/layout/Main.tsx.html +0 -364
  1149. package/coverage/lcov-report/src/layout/MiniLayoutWrapper.tsx.html +0 -541
  1150. package/coverage/lcov-report/src/layout/NavigationLink.tsx.html +0 -334
  1151. package/coverage/lcov-report/src/layout/NavigationRail.tsx.html +0 -157
  1152. package/coverage/lcov-report/src/layout/TemporaryLayout.tsx.html +0 -85
  1153. package/coverage/lcov-report/src/layout/constants.ts.html +0 -169
  1154. package/coverage/lcov-report/src/layout/index.html +0 -146
  1155. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +0 -166
  1156. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +0 -220
  1157. package/coverage/lcov-report/src/layout/mainStyles.ts.html +0 -217
  1158. package/coverage/lcov-report/src/layout/navigationLinkStyles.ts.html +0 -250
  1159. package/coverage/lcov-report/src/layout/navigationRailStyles.ts.html +0 -148
  1160. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +0 -742
  1161. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +0 -349
  1162. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +0 -358
  1163. package/coverage/lcov-report/src/layout/useLayoutNavigation.ts.html +0 -544
  1164. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +0 -691
  1165. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +0 -496
  1166. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +0 -136
  1167. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +0 -535
  1168. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +0 -589
  1169. package/coverage/lcov-report/src/layout/utils.ts.html +0 -391
  1170. package/coverage/lcov-report/src/link/Link.tsx.html +0 -358
  1171. package/coverage/lcov-report/src/link/LinkProvider.tsx.html +0 -238
  1172. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +0 -448
  1173. package/coverage/lcov-report/src/link/index.html +0 -146
  1174. package/coverage/lcov-report/src/link/styles.ts.html +0 -238
  1175. package/coverage/lcov-report/src/list/List.tsx.html +0 -487
  1176. package/coverage/lcov-report/src/list/ListItem.tsx.html +0 -892
  1177. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +0 -286
  1178. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +0 -445
  1179. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +0 -616
  1180. package/coverage/lcov-report/src/list/ListItemText.tsx.html +0 -277
  1181. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +0 -319
  1182. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +0 -298
  1183. package/coverage/lcov-report/src/list/index.html +0 -116
  1184. package/coverage/lcov-report/src/list/listItemStyles.ts.html +0 -703
  1185. package/coverage/lcov-report/src/main-layout/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1186. package/coverage/lcov-report/src/main-layout/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1187. package/coverage/lcov-report/src/main-layout/Main.tsx.html +0 -298
  1188. package/coverage/lcov-report/src/main-layout/MainLayout.tsx.html +0 -619
  1189. package/coverage/lcov-report/src/main-layout/MainLayoutAppBar.tsx.html +0 -448
  1190. package/coverage/lcov-report/src/main-layout/MainLayoutNavigationButton.tsx.html +0 -295
  1191. package/coverage/lcov-report/src/main-layout/MainLayoutTitle.tsx.html +0 -184
  1192. package/coverage/lcov-report/src/main-layout/MainNavWindowSplitter.tsx.html +0 -427
  1193. package/coverage/lcov-report/src/main-layout/MainNavigation.tsx.html +0 -568
  1194. package/coverage/lcov-report/src/main-layout/MainNavigationTree.tsx.html +0 -115
  1195. package/coverage/lcov-report/src/main-layout/index.html +0 -296
  1196. package/coverage/lcov-report/src/main-layout/useLayoutNavigation.ts.html +0 -727
  1197. package/coverage/lcov-report/src/main-layout/useMainLayout.ts.html +0 -523
  1198. package/coverage/lcov-report/src/main-layout/useMainLayoutProvider.ts.html +0 -484
  1199. package/coverage/lcov-report/src/main-layout-current/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1200. package/coverage/lcov-report/src/main-layout-current/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1201. package/coverage/lcov-report/src/main-layout-current/Main.tsx.html +0 -265
  1202. package/coverage/lcov-report/src/main-layout-current/MainLayout.tsx.html +0 -739
  1203. package/coverage/lcov-report/src/main-layout-current/MainLayoutAppBar.tsx.html +0 -352
  1204. package/coverage/lcov-report/src/main-layout-current/MainLayoutProvider.ts.html +0 -991
  1205. package/coverage/lcov-report/src/main-layout-current/MainLayoutTitle.tsx.html +0 -184
  1206. package/coverage/lcov-report/src/main-layout-current/MainNavWindowSplitter.tsx.html +0 -520
  1207. package/coverage/lcov-report/src/main-layout-current/MainNavigation.tsx.html +0 -586
  1208. package/coverage/lcov-report/src/main-layout-current/NavigationButton.tsx.html +0 -283
  1209. package/coverage/lcov-report/src/main-layout-current/index.html +0 -266
  1210. package/coverage/lcov-report/src/main-layout-current/useLayoutNavigation.ts.html +0 -727
  1211. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +0 -502
  1212. package/coverage/lcov-report/src/media-queries/appSize.ts.html +0 -445
  1213. package/coverage/lcov-report/src/media-queries/index.html +0 -146
  1214. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +0 -244
  1215. package/coverage/lcov-report/src/media-queries/useMinWidthMediaQuery.ts.html +0 -115
  1216. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +0 -976
  1217. package/coverage/lcov-report/src/menu/Menu.tsx.html +0 -1870
  1218. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +0 -442
  1219. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +0 -490
  1220. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +0 -637
  1221. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +0 -292
  1222. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +0 -580
  1223. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +0 -433
  1224. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +0 -376
  1225. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +0 -226
  1226. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +0 -502
  1227. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +0 -370
  1228. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +0 -631
  1229. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +0 -190
  1230. package/coverage/lcov-report/src/menu/index.html +0 -116
  1231. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +0 -490
  1232. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +0 -349
  1233. package/coverage/lcov-report/src/menu/utils.ts.html +0 -271
  1234. package/coverage/lcov-report/src/movement/constants.ts.html +0 -193
  1235. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +0 -385
  1236. package/coverage/lcov-report/src/movement/index.html +0 -116
  1237. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +0 -1687
  1238. package/coverage/lcov-report/src/movement/utils.ts.html +0 -895
  1239. package/coverage/lcov-report/src/navigation/CollapsibleNavGroup.tsx.html +0 -367
  1240. package/coverage/lcov-report/src/navigation/DefaultNavigationRenderer.tsx.html +0 -325
  1241. package/coverage/lcov-report/src/navigation/NavGroup.tsx.html +0 -202
  1242. package/coverage/lcov-report/src/navigation/NavItem.tsx.html +0 -172
  1243. package/coverage/lcov-report/src/navigation/NavSubheader.tsx.html +0 -193
  1244. package/coverage/lcov-report/src/navigation/Navigation.tsx.html +0 -358
  1245. package/coverage/lcov-report/src/navigation/index.html +0 -191
  1246. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +0 -556
  1247. package/coverage/lcov-report/src/overlay/index.html +0 -131
  1248. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +0 -340
  1249. package/coverage/lcov-report/src/portal/Portal.tsx.html +0 -223
  1250. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +0 -367
  1251. package/coverage/lcov-report/src/portal/index.html +0 -131
  1252. package/coverage/lcov-report/src/positioning/constants.ts.html +0 -463
  1253. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +0 -610
  1254. package/coverage/lcov-report/src/positioning/index.html +0 -191
  1255. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +0 -1339
  1256. package/coverage/lcov-report/src/positioning/utils.ts.html +0 -1225
  1257. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +0 -799
  1258. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +0 -658
  1259. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +0 -160
  1260. package/coverage/lcov-report/src/progress/index.html +0 -146
  1261. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +0 -628
  1262. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +0 -385
  1263. package/coverage/lcov-report/src/responsive-item/index.html +0 -146
  1264. package/coverage/lcov-report/src/responsive-item/styles.ts.html +0 -259
  1265. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +0 -133
  1266. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +0 -181
  1267. package/coverage/lcov-report/src/scroll/index.html +0 -146
  1268. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +0 -241
  1269. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +0 -619
  1270. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +0 -277
  1271. package/coverage/lcov-report/src/segmented-button/index.html +0 -161
  1272. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +0 -160
  1273. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +0 -205
  1274. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +0 -397
  1275. package/coverage/lcov-report/src/sheet/index.html +0 -131
  1276. package/coverage/lcov-report/src/sheet/styles.ts.html +0 -376
  1277. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +0 -526
  1278. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +0 -628
  1279. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +0 -841
  1280. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +0 -298
  1281. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +0 -349
  1282. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +0 -364
  1283. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +0 -1786
  1284. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +0 -400
  1285. package/coverage/lcov-report/src/snackbar/index.html +0 -281
  1286. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +0 -214
  1287. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +0 -196
  1288. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +0 -268
  1289. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +0 -226
  1290. package/coverage/lcov-report/src/snackbar/useDefaultToastRenderer.ts.html +0 -85
  1291. package/coverage/lcov-report/src/snackbar/useDefaultToastRenderer.tsx.html +0 -394
  1292. package/coverage/lcov-report/src/snackbar/useRemoveToast.ts.html +0 -169
  1293. package/coverage/lcov-report/src/snackbar/useToast.ts.html +0 -184
  1294. package/coverage/lcov-report/src/snackbar/useToastRenderer.ts.html +0 -85
  1295. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +0 -283
  1296. package/coverage/lcov-report/src/suspense/NullSsrSuspense.tsx.html +0 -151
  1297. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +0 -202
  1298. package/coverage/lcov-report/src/suspense/index.html +0 -131
  1299. package/coverage/lcov-report/src/table/Table.tsx.html +0 -457
  1300. package/coverage/lcov-report/src/table/TableBody.tsx.html +0 -280
  1301. package/coverage/lcov-report/src/table/TableCell.tsx.html +0 -982
  1302. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +0 -436
  1303. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +0 -715
  1304. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +0 -484
  1305. package/coverage/lcov-report/src/table/TableContainer.tsx.html +0 -220
  1306. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +0 -193
  1307. package/coverage/lcov-report/src/table/TableFooter.tsx.html +0 -538
  1308. package/coverage/lcov-report/src/table/TableHeader.tsx.html +0 -565
  1309. package/coverage/lcov-report/src/table/TableRadio.tsx.html +0 -676
  1310. package/coverage/lcov-report/src/table/TableRow.tsx.html +0 -289
  1311. package/coverage/lcov-report/src/table/index.html +0 -371
  1312. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +0 -334
  1313. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +0 -142
  1314. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +0 -166
  1315. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +0 -172
  1316. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +0 -169
  1317. package/coverage/lcov-report/src/table/tableStyles.ts.html +0 -157
  1318. package/coverage/lcov-report/src/tabs/Tab.tsx.html +0 -622
  1319. package/coverage/lcov-report/src/tabs/TabList.tsx.html +0 -796
  1320. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +0 -490
  1321. package/coverage/lcov-report/src/tabs/index.html +0 -251
  1322. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +0 -187
  1323. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +0 -226
  1324. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +0 -241
  1325. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +0 -265
  1326. package/coverage/lcov-report/src/tabs/useTabList.ts.html +0 -736
  1327. package/coverage/lcov-report/src/tabs/useTabs.ts.html +0 -1567
  1328. package/coverage/lcov-report/src/tabs/useTabsOriginal.ts.html +0 -760
  1329. package/coverage/lcov-report/src/tabs/utils.ts.html +0 -337
  1330. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +0 -235
  1331. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +0 -1045
  1332. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +0 -112
  1333. package/coverage/lcov-report/src/test-utils/drag.ts.html +0 -337
  1334. package/coverage/lcov-report/src/test-utils/index.html +0 -116
  1335. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +0 -124
  1336. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +0 -679
  1337. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +0 -109
  1338. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +0 -100
  1339. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +0 -106
  1340. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +0 -100
  1341. package/coverage/lcov-report/src/test-utils/polyfills/index.html +0 -176
  1342. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +0 -109
  1343. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +0 -202
  1344. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +0 -112
  1345. package/coverage/lcov-report/src/test-utils/render.tsx.html +0 -220
  1346. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +0 -85
  1347. package/coverage/lcov-report/src/test-utils/timers.ts.html +0 -223
  1348. package/coverage/lcov-report/src/test-utils/utils.ts.html +0 -118
  1349. package/coverage/lcov-report/src/theme/ColorSchemeProvider.tsx.html +0 -811
  1350. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +0 -475
  1351. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +0 -1510
  1352. package/coverage/lcov-report/src/theme/colors.ts.html +0 -910
  1353. package/coverage/lcov-report/src/theme/cssVars.ts.html +0 -130
  1354. package/coverage/lcov-report/src/theme/index.html +0 -251
  1355. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +0 -622
  1356. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +0 -490
  1357. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +0 -244
  1358. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +0 -433
  1359. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +0 -121
  1360. package/coverage/lcov-report/src/theme/utils.ts.html +0 -670
  1361. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +0 -559
  1362. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +0 -409
  1363. package/coverage/lcov-report/src/tooltip/constants.ts.html +0 -208
  1364. package/coverage/lcov-report/src/tooltip/index.html +0 -206
  1365. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +0 -181
  1366. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +0 -364
  1367. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +0 -2095
  1368. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +0 -388
  1369. package/coverage/lcov-report/src/tooltip/utils.ts.html +0 -238
  1370. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +0 -358
  1371. package/coverage/lcov-report/src/transition/Collapse.tsx.html +0 -337
  1372. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +0 -436
  1373. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +0 -328
  1374. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +0 -613
  1375. package/coverage/lcov-report/src/transition/Slide.tsx.html +0 -367
  1376. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +0 -649
  1377. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +0 -184
  1378. package/coverage/lcov-report/src/transition/config.ts.html +0 -187
  1379. package/coverage/lcov-report/src/transition/constants.ts.html +0 -103
  1380. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +0 -157
  1381. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +0 -400
  1382. package/coverage/lcov-report/src/transition/useCarousel.ts.html +0 -835
  1383. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +0 -1384
  1384. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +0 -469
  1385. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +0 -205
  1386. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +0 -535
  1387. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +0 -958
  1388. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +0 -424
  1389. package/coverage/lcov-report/src/transition/useTransition.ts.html +0 -943
  1390. package/coverage/lcov-report/src/transition/utils.ts.html +0 -529
  1391. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +0 -313
  1392. package/coverage/lcov-report/src/tree/Tree.tsx.html +0 -1054
  1393. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +0 -367
  1394. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +0 -1006
  1395. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +0 -355
  1396. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +0 -679
  1397. package/coverage/lcov-report/src/tree/index.html +0 -116
  1398. package/coverage/lcov-report/src/tree/styles.ts.html +0 -538
  1399. package/coverage/lcov-report/src/tree/useTree.ts.html +0 -289
  1400. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +0 -241
  1401. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +0 -496
  1402. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +0 -700
  1403. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +0 -274
  1404. package/coverage/lcov-report/src/tree/utils.ts.html +0 -277
  1405. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +0 -328
  1406. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +0 -403
  1407. package/coverage/lcov-report/src/typography/Typography.tsx.html +0 -1027
  1408. package/coverage/lcov-report/src/typography/WritingDirection.tsx.html +0 -775
  1409. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +0 -781
  1410. package/coverage/lcov-report/src/typography/index.html +0 -161
  1411. package/coverage/lcov-report/src/useAsyncAction.ts.html +0 -685
  1412. package/coverage/lcov-report/src/useDebounced.ts.html +0 -190
  1413. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +0 -436
  1414. package/coverage/lcov-report/src/useDropzone.ts.html +0 -766
  1415. package/coverage/lcov-report/src/useElementSize.ts.html +0 -409
  1416. package/coverage/lcov-report/src/useEnsuredId.ts.html +0 -175
  1417. package/coverage/lcov-report/src/useEnsuredRef.ts.html +0 -253
  1418. package/coverage/lcov-report/src/useEnsuredState.ts.html +0 -235
  1419. package/coverage/lcov-report/src/useHtmlClassName.ts.html +0 -142
  1420. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +0 -1075
  1421. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +0 -130
  1422. package/coverage/lcov-report/src/useLocalStorage.ts.html +0 -1852
  1423. package/coverage/lcov-report/src/useLocalStorageEvents.ts.html +0 -85
  1424. package/coverage/lcov-report/src/useMediaQuery.ts.html +0 -241
  1425. package/coverage/lcov-report/src/useMinWidthMediaQuery.ts.html +0 -115
  1426. package/coverage/lcov-report/src/useMutationObserver.ts.html +0 -310
  1427. package/coverage/lcov-report/src/useOrientation.ts.html +0 -271
  1428. package/coverage/lcov-report/src/usePageInactive.ts.html +0 -448
  1429. package/coverage/lcov-report/src/useResizeListener.ts.html +0 -391
  1430. package/coverage/lcov-report/src/useResizeObserver.ts.html +0 -790
  1431. package/coverage/lcov-report/src/useThrottledFunction.ts.html +0 -484
  1432. package/coverage/lcov-report/src/useToggle.ts.html +0 -253
  1433. package/coverage/lcov-report/src/useUnmounted.ts.html +0 -217
  1434. package/coverage/lcov-report/src/useWindowSize.ts.html +0 -460
  1435. package/coverage/lcov-report/src/utils/RecursiveRender.tsx.html +0 -253
  1436. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +0 -790
  1437. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +0 -535
  1438. package/coverage/lcov-report/src/utils/applyRef.ts.html +0 -214
  1439. package/coverage/lcov-report/src/utils/bem.ts.html +0 -412
  1440. package/coverage/lcov-report/src/utils/filters.ts.html +0 -1318
  1441. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +0 -226
  1442. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +0 -163
  1443. package/coverage/lcov-report/src/utils/getPercentage.ts.html +0 -253
  1444. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +0 -169
  1445. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +0 -157
  1446. package/coverage/lcov-report/src/utils/getUseStateSetterValue.ts.html +0 -85
  1447. package/coverage/lcov-report/src/utils/identity.ts.html +0 -100
  1448. package/coverage/lcov-report/src/utils/index.html +0 -116
  1449. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +0 -214
  1450. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +0 -118
  1451. package/coverage/lcov-report/src/utils/loop.ts.html +0 -262
  1452. package/coverage/lcov-report/src/utils/nearest.ts.html +0 -220
  1453. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +0 -280
  1454. package/coverage/lcov-report/src/utils/randomInt.ts.html +0 -148
  1455. package/coverage/lcov-report/src/utils/wait.ts.html +0 -139
  1456. package/coverage/lcov-report/src/utils/withinRange.ts.html +0 -184
  1457. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +0 -445
  1458. package/coverage/lcov-report/src/window-splitter/index.html +0 -131
  1459. package/coverage/lcov-report/src/window-splitter/useControlledWindowSplitter.ts.html +0 -562
  1460. package/coverage/lcov-report/src/window-splitter/useLocalStorageWindowSplitter.ts.html +0 -331
  1461. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +0 -508
  1462. package/coverage/lcov-report/src/window-splitter/useWindowSplitterDefault.ts.html +0 -466
  1463. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +0 -256
  1464. package/coverage/lcov-report/styles.ts.html +0 -457
  1465. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +0 -283
  1466. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +0 -202
  1467. package/coverage/lcov-report/suspense/index.html +0 -131
  1468. package/coverage/lcov-report/switchStyles.ts.html +0 -172
  1469. package/coverage/lcov-report/tabIndicatorStyles.ts.html +0 -187
  1470. package/coverage/lcov-report/tabListScrollButtonStyles.ts.html +0 -226
  1471. package/coverage/lcov-report/tabListStyles.ts.html +0 -241
  1472. package/coverage/lcov-report/tabStyles.ts.html +0 -265
  1473. package/coverage/lcov-report/table/Table.tsx.html +0 -526
  1474. package/coverage/lcov-report/table/TableBody.tsx.html +0 -280
  1475. package/coverage/lcov-report/table/TableCell.tsx.html +0 -1180
  1476. package/coverage/lcov-report/table/TableCheckbox.tsx.html +0 -709
  1477. package/coverage/lcov-report/table/TableFooter.tsx.html +0 -508
  1478. package/coverage/lcov-report/table/TableHeader.tsx.html +0 -607
  1479. package/coverage/lcov-report/table/TableRadio.tsx.html +0 -670
  1480. package/coverage/lcov-report/table/TableRow.tsx.html +0 -370
  1481. package/coverage/lcov-report/table/index.html +0 -191
  1482. package/coverage/lcov-report/tableCellStyles.ts.html +0 -334
  1483. package/coverage/lcov-report/tableContainerStyles.ts.html +0 -142
  1484. package/coverage/lcov-report/tableFooterStyles.ts.html +0 -157
  1485. package/coverage/lcov-report/tableHeaderStyles.ts.html +0 -163
  1486. package/coverage/lcov-report/tableRowStyles.ts.html +0 -169
  1487. package/coverage/lcov-report/tableStyles.ts.html +0 -157
  1488. package/coverage/lcov-report/tabs/Tab.tsx.html +0 -592
  1489. package/coverage/lcov-report/tabs/TabList.tsx.html +0 -796
  1490. package/coverage/lcov-report/tabs/TabListScrollButton.tsx.html +0 -472
  1491. package/coverage/lcov-report/tabs/index.html +0 -206
  1492. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +0 -187
  1493. package/coverage/lcov-report/tabs/tabListStyles.ts.html +0 -241
  1494. package/coverage/lcov-report/tabs/tabStyles.ts.html +0 -253
  1495. package/coverage/lcov-report/tabs/useTabList.ts.html +0 -736
  1496. package/coverage/lcov-report/tabs/useTabs.ts.html +0 -1567
  1497. package/coverage/lcov-report/tabs/utils.ts.html +0 -337
  1498. package/coverage/lcov-report/test-utils/index.html +0 -116
  1499. package/coverage/lcov-report/test-utils/jest-setup.ts.html +0 -124
  1500. package/coverage/lcov-report/test-utils/matchMedia.ts.html +0 -667
  1501. package/coverage/lcov-report/test-utils/polyfills/index.html +0 -116
  1502. package/coverage/lcov-report/test-utils/polyfills/matchMedia.ts.html +0 -109
  1503. package/coverage/lcov-report/test-utils/polyfills/offsetParent.ts.html +0 -202
  1504. package/coverage/lcov-report/test-utils/use.ts.html +0 -187
  1505. package/coverage/lcov-report/theme/ColorSchemeProvider.tsx.html +0 -811
  1506. package/coverage/lcov-report/theme/LocalStorageColorSchemeProvider.tsx.html +0 -268
  1507. package/coverage/lcov-report/theme/ThemeProvider.tsx.html +0 -1453
  1508. package/coverage/lcov-report/theme/cssVars.ts.html +0 -130
  1509. package/coverage/lcov-report/theme/index.html +0 -191
  1510. package/coverage/lcov-report/theme/useColorScheme.ts.html +0 -475
  1511. package/coverage/lcov-report/theme/useColorSchemeMetaTag.ts.html +0 -175
  1512. package/coverage/lcov-report/theme/useColorSchemeProvider.ts.html +0 -244
  1513. package/coverage/lcov-report/theme/usePrefersColorScheme.ts.html +0 -103
  1514. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +0 -559
  1515. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +0 -409
  1516. package/coverage/lcov-report/tooltip/constants.ts.html +0 -208
  1517. package/coverage/lcov-report/tooltip/index.html +0 -116
  1518. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +0 -181
  1519. package/coverage/lcov-report/tooltip/useOverflowTooltip.ts.html +0 -364
  1520. package/coverage/lcov-report/tooltip/useTooltip.ts.html +0 -2095
  1521. package/coverage/lcov-report/tooltipStyles.ts.html +0 -181
  1522. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +0 -595
  1523. package/coverage/lcov-report/transition/config.ts.html +0 -187
  1524. package/coverage/lcov-report/transition/maxWidthTransition.ts.html +0 -157
  1525. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +0 -400
  1526. package/coverage/lcov-report/transition/useMaxWidthTransition.ts.html +0 -199
  1527. package/coverage/lcov-report/transition/useScaleTransition.ts.html +0 -535
  1528. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +0 -952
  1529. package/coverage/lcov-report/transition/useTransition.ts.html +0 -943
  1530. package/coverage/lcov-report/tree/DefaultTreeItemRenderer.tsx.html +0 -301
  1531. package/coverage/lcov-report/tree/Tree.tsx.html +0 -1054
  1532. package/coverage/lcov-report/tree/TreeGroup.tsx.html +0 -370
  1533. package/coverage/lcov-report/tree/TreeItem.tsx.html +0 -1006
  1534. package/coverage/lcov-report/tree/TreeItemExpander.tsx.html +0 -328
  1535. package/coverage/lcov-report/tree/TreeProvider.tsx.html +0 -679
  1536. package/coverage/lcov-report/tree/index.html +0 -116
  1537. package/coverage/lcov-report/tree/styles.ts.html +0 -538
  1538. package/coverage/lcov-report/tree/useTree.ts.html +0 -289
  1539. package/coverage/lcov-report/tree/useTreeExpansion.ts.html +0 -241
  1540. package/coverage/lcov-report/tree/useTreeItems.ts.html +0 -496
  1541. package/coverage/lcov-report/tree/useTreeMovement.ts.html +0 -700
  1542. package/coverage/lcov-report/tree/useTreeSelection.ts.html +0 -274
  1543. package/coverage/lcov-report/tree/utils.ts.html +0 -277
  1544. package/coverage/lcov-report/typography/TextContainer.tsx.html +0 -433
  1545. package/coverage/lcov-report/typography/Typography.tsx.html +0 -1027
  1546. package/coverage/lcov-report/typography/WritingDirection.tsx.html +0 -775
  1547. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +0 -781
  1548. package/coverage/lcov-report/useAutoComplete.ts.html +0 -787
  1549. package/coverage/lcov-report/useCollapseTransition.ts.html +0 -1384
  1550. package/coverage/lcov-report/useCombobox.ts.html +0 -1513
  1551. package/coverage/lcov-report/useDraggable.ts.html +0 -2458
  1552. package/coverage/lcov-report/useDropzone.ts.html +0 -763
  1553. package/coverage/lcov-report/useEnsuredRef.ts.html +0 -250
  1554. package/coverage/lcov-report/useExpandableLayout.ts.html +0 -802
  1555. package/coverage/lcov-report/useExpansionPanels.ts.html +0 -913
  1556. package/coverage/lcov-report/useHigherContrastChildren.tsx.html +0 -355
  1557. package/coverage/lcov-report/useInlineAutoComplete.ts.html +0 -379
  1558. package/coverage/lcov-report/useLayoutTree.ts.html +0 -691
  1559. package/coverage/lcov-report/useLocalStorage.ts.html +0 -1828
  1560. package/coverage/lcov-report/useMinWidthMediaQuery.ts.html +0 -115
  1561. package/coverage/lcov-report/useMutationObserver.ts.html +0 -310
  1562. package/coverage/lcov-report/useRemoveToast.ts.html +0 -160
  1563. package/coverage/lcov-report/useResizeObserver.ts.html +0 -874
  1564. package/coverage/lcov-report/useResizingTextArea.ts.html +0 -523
  1565. package/coverage/lcov-report/useSelectCombobox.ts.html +0 -295
  1566. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +0 -952
  1567. package/coverage/lcov-report/useTabList.ts.html +0 -736
  1568. package/coverage/lcov-report/useTabs.ts.html +0 -757
  1569. package/coverage/lcov-report/useThrottledFunction.ts.html +0 -475
  1570. package/coverage/lcov-report/useTooltip.ts.html +0 -2041
  1571. package/coverage/lcov-report/useTransition.ts.html +0 -934
  1572. package/coverage/lcov-report/useTree.ts.html +0 -286
  1573. package/coverage/lcov-report/useWindowSplitter.ts.html +0 -640
  1574. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +0 -256
  1575. package/coverage/lcov-report/utils/RecursiveRender.tsx.html +0 -253
  1576. package/coverage/lcov-report/utils/RenderRecursively.tsx.html +0 -688
  1577. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +0 -496
  1578. package/coverage/lcov-report/utils/caseInsensitiveFilter.ts.html +0 -397
  1579. package/coverage/lcov-report/utils/filters.ts.html +0 -1318
  1580. package/coverage/lcov-report/utils/fuzzyFilter.ts.html +0 -241
  1581. package/coverage/lcov-report/utils/index.html +0 -116
  1582. package/coverage/lcov-report/utils/isElementVisible.ts.html +0 -211
  1583. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +0 -280
  1584. package/coverage/lcov-report/utils/randomInt.ts.html +0 -148
  1585. package/coverage/lcov-report/utils/searching.ts.html +0 -85
  1586. package/coverage/lcov-report/utils/wait.ts.html +0 -139
  1587. package/coverage/lcov-report/wait.ts.html +0 -139
  1588. package/coverage/lcov-report/window-splitter/WindowSplitter.tsx.html +0 -448
  1589. package/coverage/lcov-report/window-splitter/index.html +0 -116
  1590. package/coverage/lcov-report/window-splitter/useControlledWindowSplitter.ts.html +0 -562
  1591. package/coverage/lcov-report/window-splitter/useLocalStorageWindowSplitter.ts.html +0 -331
  1592. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +0 -640
  1593. package/coverage/lcov-report/window-splitter/useWindowSplitterDefault.ts.html +0 -466
  1594. package/coverage/lcov-report/window-splitter/useWindowSplitterOrig.ts.html +0 -598
  1595. package/dist/useAsyncAction.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/icon/materialConfig.ts"],"sourcesContent":["import { type CSSProperties } from \"react\";\nimport {\n type MaterialIconFamily,\n type MaterialSymbolFamily,\n} from \"./material.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialIconCustomization {\n /**\n * @defaultValue `\"filled\"`\n */\n iconFamily?: MaterialIconFamily;\n}\n\n/**\n * @since 6.0.0\n */\nexport type MaterialIconConfiguration = Required<MaterialIconCustomization>;\n\n/**\n * Fill gives you the ability to modify the default icon style. A single icon\n * can render both unfilled and filled states.\n *\n * To convey a state transition, use the fill axis for animation or\n * interaction. The values are 0 for default or 1 for completely filled. Along\n * with the weight axis, the fill also impacts the look of the icon.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolFill = 0 | 1;\n\n/**\n * Weight defines the symbol’s stroke weight, with a range of weights between\n * thin (100) and bold (700). Weight can also affect the overall size of the\n * symbol.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolWeight = 100 | 200 | 300 | 400 | 500 | 600 | 700;\n\n/**\n * Weight and grade affect a symbol’s thickness. Adjustments to grade are more\n * granular than adjustments to weight and have a small impact on the size of\n * the symbol.\n *\n * Grade is also available in some text fonts. You can match grade levels\n * between text and symbols for a harmonious visual effect. For example, if\n * the text font has a -25 grade value, the symbols can match it with a\n * suitable value, say -25.\n *\n * You can use grade for different needs:\n *\n * - Low emphasis (e.g. -25 grade): To reduce glare for a light symbol on a\n * dark background, use a low grade.\n * - High emphasis (e.g. 200 grade): To highlight a symbol, increase the\n * positive grade.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolGrade = -25 | 0 | 200;\n\n/**\n * Optical Sizes range from 20dp to 48dp.\n *\n * For the image to look the same at different sizes, the stroke weight\n * (thickness) changes as the icon size scales. Optical Size offers a way to\n * automatically adjust the stroke weight when you increase or decrease the\n * symbol size.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolOpticalSize = 20 | 24 | 40 | 48;\n\n/**\n * The comments for each customizable part was copied from\n * https://fonts.google.com/icons?icon.set=Material+Symbols and clicking the\n * info icon next to each property.\n *\n * @see https://fonts.google.com/icons?icon.set=Material+Symbols\n * @since 6.0.0\n */\nexport interface MaterialSymbolCustomization {\n /**\n * Fill gives you the ability to modify the default icon style. A single icon\n * can render both unfilled and filled states.\n *\n * To convey a state transition, use the fill axis for animation or\n * interaction. The values are 0 for default or 1 for completely filled. Along\n * with the weight axis, the fill also impacts the look of the icon.\n *\n * @defaultValue `0`\n */\n fill?: MaterialSymbolFill;\n\n /**\n * Weight defines the symbol’s stroke weight, with a range of weights between\n * thin (100) and bold (700). Weight can also affect the overall size of the\n * symbol.\n *\n * @defaultValue `400`\n */\n weight?: MaterialSymbolWeight;\n\n /**\n * Weight and grade affect a symbol’s thickness. Adjustments to grade are more\n * granular than adjustments to weight and have a small impact on the size of\n * the symbol.\n *\n * Grade is also available in some text fonts. You can match grade levels\n * between text and symbols for a harmonious visual effect. For example, if\n * the text font has a -25 grade value, the symbols can match it with a\n * suitable value, say -25.\n *\n * You can use grade for different needs:\n *\n * - Low emphasis (e.g. -25 grade): To reduce glare for a light symbol on a\n * dark background, use a low grade.\n * - High emphasis (e.g. 200 grade): To highlight a symbol, increase the\n * positive grade.\n *\n * @defaultValue `0`\n */\n grade?: MaterialSymbolGrade;\n\n /**\n * Optical Sizes range from 20dp to 48dp.\n *\n * For the image to look the same at different sizes, the stroke weight\n * (thickness) changes as the icon size scales. Optical Size offers a way to\n * automatically adjust the stroke weight when you increase or decrease the\n * symbol size.\n *\n * @defaultValue `48`\n */\n opticalSize?: MaterialSymbolOpticalSize;\n\n /**\n * @defaultValue `\"outlined\"`\n */\n family?: MaterialSymbolFamily;\n}\n\n/**\n * @since 6.0.0\n */\nexport type MaterialSymbolConfiguration = Required<MaterialSymbolCustomization>;\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialConfiguration\n extends MaterialIconConfiguration,\n MaterialSymbolConfiguration {}\n\n/**\n * @since 6.0.0\n */\nexport const MATERIAL_CONFIG: MaterialConfiguration = {\n fill: 0,\n weight: 400,\n grade: 0,\n opticalSize: 48,\n iconFamily: \"filled\",\n family: \"outlined\",\n};\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialSymbolFontVariationSettings {\n style?: CSSProperties;\n family: MaterialSymbolFamily;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport function getFontVariationSettings(\n options: MaterialSymbolCustomization & { style?: CSSProperties }\n): MaterialSymbolFontVariationSettings {\n let { style } = options;\n const {\n fill = MATERIAL_CONFIG.fill,\n grade = MATERIAL_CONFIG.grade,\n opticalSize = MATERIAL_CONFIG.opticalSize,\n weight = MATERIAL_CONFIG.weight,\n family: symbolFamily = MATERIAL_CONFIG.family,\n } = options;\n if (\n !style?.fontVariationSettings &&\n (fill !== MATERIAL_CONFIG.fill ||\n grade !== MATERIAL_CONFIG.grade ||\n opticalSize !== MATERIAL_CONFIG.opticalSize ||\n weight !== MATERIAL_CONFIG.weight)\n ) {\n style = {\n ...style,\n fontVariationSettings: `\"FILL\" ${fill}, \"wght\" ${weight}, \"GRAD\" ${grade}, \"opsz\" ${opticalSize}`,\n };\n }\n\n return { family: symbolFamily, style };\n}\n"],"names":["MATERIAL_CONFIG","fill","weight","grade","opticalSize","iconFamily","family","getFontVariationSettings","options","style","symbolFamily","fontVariationSettings"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AA4JA;;CAEC,GACD,OAAO,MAAMA,kBAAyC;IACpDC,MAAM;IACNC,QAAQ;IACRC,OAAO;IACPC,aAAa;IACbC,YAAY;IACZC,QAAQ;AACV,EAAE;AAUF;;;CAGC,GACD,OAAO,SAASC,yBACdC,OAAgE;IAEhE,IAAI,EAAEC,KAAK,EAAE,GAAGD;IAChB,MAAM,EACJP,OAAOD,gBAAgBC,IAAI,EAC3BE,QAAQH,gBAAgBG,KAAK,EAC7BC,cAAcJ,gBAAgBI,WAAW,EACzCF,SAASF,gBAAgBE,MAAM,EAC/BI,QAAQI,eAAeV,gBAAgBM,MAAM,EAC9C,GAAGE;IACJ,IACE,CAACC,OAAOE,yBACPV,CAAAA,SAASD,gBAAgBC,IAAI,IAC5BE,UAAUH,gBAAgBG,KAAK,IAC/BC,gBAAgBJ,gBAAgBI,WAAW,IAC3CF,WAAWF,gBAAgBE,MAAM,AAAD,GAClC;QACAO,QAAQ;YACN,GAAGA,KAAK;YACRE,uBAAuB,CAAC,OAAO,EAAEV,KAAK,SAAS,EAAEC,OAAO,SAAS,EAAEC,MAAM,SAAS,EAAEC,YAAY,CAAC;QACnG;IACF;IAEA,OAAO;QAAEE,QAAQI;QAAcD;IAAM;AACvC"}
1
+ {"version":3,"sources":["../../src/icon/materialConfig.ts"],"sourcesContent":["import { type CSSProperties } from \"react\";\nimport {\n type MaterialIconFamily,\n type MaterialSymbolFamily,\n} from \"./material.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialIconCustomization {\n /**\n * @defaultValue `\"filled\"`\n */\n iconFamily?: MaterialIconFamily;\n}\n\n/**\n * @since 6.0.0\n */\nexport type MaterialIconConfiguration = Required<MaterialIconCustomization>;\n\n/**\n * Fill gives you the ability to modify the default icon style. A single icon\n * can render both unfilled and filled states.\n *\n * To convey a state transition, use the fill axis for animation or\n * interaction. The values are 0 for default or 1 for completely filled. Along\n * with the weight axis, the fill also impacts the look of the icon.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolFill = 0 | 1;\n\n/**\n * Weight defines the symbol’s stroke weight, with a range of weights between\n * thin (100) and bold (700). Weight can also affect the overall size of the\n * symbol.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolWeight = 100 | 200 | 300 | 400 | 500 | 600 | 700;\n\n/**\n * Weight and grade affect a symbol’s thickness. Adjustments to grade are more\n * granular than adjustments to weight and have a small impact on the size of\n * the symbol.\n *\n * Grade is also available in some text fonts. You can match grade levels\n * between text and symbols for a harmonious visual effect. For example, if\n * the text font has a -25 grade value, the symbols can match it with a\n * suitable value, say -25.\n *\n * You can use grade for different needs:\n *\n * - Low emphasis (e.g. -25 grade): To reduce glare for a light symbol on a\n * dark background, use a low grade.\n * - High emphasis (e.g. 200 grade): To highlight a symbol, increase the\n * positive grade.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolGrade = -25 | 0 | 200;\n\n/**\n * Optical Sizes range from 20dp to 48dp.\n *\n * For the image to look the same at different sizes, the stroke weight\n * (thickness) changes as the icon size scales. Optical Size offers a way to\n * automatically adjust the stroke weight when you increase or decrease the\n * symbol size.\n *\n * @since 6.0.0\n */\nexport type MaterialSymbolOpticalSize = 20 | 24 | 40 | 48;\n\n/**\n * The comments for each customizable part was copied from\n * https://fonts.google.com/icons?icon.set=Material+Symbols and clicking the\n * info icon next to each property.\n *\n * @see https://fonts.google.com/icons?icon.set=Material+Symbols\n * @since 6.0.0\n */\nexport interface MaterialSymbolCustomization {\n /**\n * Fill gives you the ability to modify the default icon style. A single icon\n * can render both unfilled and filled states.\n *\n * To convey a state transition, use the fill axis for animation or\n * interaction. The values are 0 for default or 1 for completely filled. Along\n * with the weight axis, the fill also impacts the look of the icon.\n *\n * @defaultValue `0`\n */\n fill?: MaterialSymbolFill;\n\n /**\n * Weight defines the symbol’s stroke weight, with a range of weights between\n * thin (100) and bold (700). Weight can also affect the overall size of the\n * symbol.\n *\n * @defaultValue `400`\n */\n weight?: MaterialSymbolWeight;\n\n /**\n * Weight and grade affect a symbol’s thickness. Adjustments to grade are more\n * granular than adjustments to weight and have a small impact on the size of\n * the symbol.\n *\n * Grade is also available in some text fonts. You can match grade levels\n * between text and symbols for a harmonious visual effect. For example, if\n * the text font has a -25 grade value, the symbols can match it with a\n * suitable value, say -25.\n *\n * You can use grade for different needs:\n *\n * - Low emphasis (e.g. -25 grade): To reduce glare for a light symbol on a\n * dark background, use a low grade.\n * - High emphasis (e.g. 200 grade): To highlight a symbol, increase the\n * positive grade.\n *\n * @defaultValue `0`\n */\n grade?: MaterialSymbolGrade;\n\n /**\n * Optical Sizes range from 20dp to 48dp.\n *\n * For the image to look the same at different sizes, the stroke weight\n * (thickness) changes as the icon size scales. Optical Size offers a way to\n * automatically adjust the stroke weight when you increase or decrease the\n * symbol size.\n *\n * @defaultValue `48`\n */\n opticalSize?: MaterialSymbolOpticalSize;\n\n /**\n * @defaultValue `\"outlined\"`\n */\n family?: MaterialSymbolFamily;\n}\n\n/**\n * @since 6.0.0\n */\nexport type MaterialSymbolConfiguration = Required<MaterialSymbolCustomization>;\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialConfiguration\n extends MaterialIconConfiguration,\n MaterialSymbolConfiguration {}\n\n/**\n * @since 6.0.0\n */\nexport const MATERIAL_CONFIG: MaterialConfiguration = {\n fill: 0,\n weight: 400,\n grade: 0,\n opticalSize: 48,\n iconFamily: \"filled\",\n family: \"outlined\",\n};\n\n/**\n * @since 6.0.0\n */\nexport interface MaterialSymbolFontVariationSettings {\n style?: CSSProperties;\n family: MaterialSymbolFamily;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport function getFontVariationSettings(\n options: MaterialSymbolCustomization & { style?: CSSProperties }\n): MaterialSymbolFontVariationSettings {\n let { style } = options;\n const {\n fill = MATERIAL_CONFIG.fill,\n grade = MATERIAL_CONFIG.grade,\n opticalSize = MATERIAL_CONFIG.opticalSize,\n weight = MATERIAL_CONFIG.weight,\n family: symbolFamily = MATERIAL_CONFIG.family,\n } = options;\n if (\n !style?.fontVariationSettings &&\n (fill !== MATERIAL_CONFIG.fill ||\n grade !== MATERIAL_CONFIG.grade ||\n opticalSize !== MATERIAL_CONFIG.opticalSize ||\n weight !== MATERIAL_CONFIG.weight)\n ) {\n style = {\n ...style,\n fontVariationSettings: `\"FILL\" ${fill}, \"wght\" ${weight}, \"GRAD\" ${grade}, \"opsz\" ${opticalSize}`,\n };\n }\n\n return { family: symbolFamily, style };\n}\n"],"names":["MATERIAL_CONFIG","fill","weight","grade","opticalSize","iconFamily","family","getFontVariationSettings","options","style","symbolFamily","fontVariationSettings"],"mappings":"AA4JA;;CAEC,GACD,OAAO,MAAMA,kBAAyC;IACpDC,MAAM;IACNC,QAAQ;IACRC,OAAO;IACPC,aAAa;IACbC,YAAY;IACZC,QAAQ;AACV,EAAE;AAUF;;;CAGC,GACD,OAAO,SAASC,yBACdC,OAAgE;IAEhE,IAAI,EAAEC,KAAK,EAAE,GAAGD;IAChB,MAAM,EACJP,OAAOD,gBAAgBC,IAAI,EAC3BE,QAAQH,gBAAgBG,KAAK,EAC7BC,cAAcJ,gBAAgBI,WAAW,EACzCF,SAASF,gBAAgBE,MAAM,EAC/BI,QAAQI,eAAeV,gBAAgBM,MAAM,EAC9C,GAAGE;IACJ,IACE,CAACC,OAAOE,yBACPV,CAAAA,SAASD,gBAAgBC,IAAI,IAC5BE,UAAUH,gBAAgBG,KAAK,IAC/BC,gBAAgBJ,gBAAgBI,WAAW,IAC3CF,WAAWF,gBAAgBE,MAAM,AAAD,GAClC;QACAO,QAAQ;YACN,GAAGA,KAAK;YACRE,uBAAuB,CAAC,OAAO,EAAEV,KAAK,SAAS,EAAEC,OAAO,SAAS,EAAEC,MAAM,SAAS,EAAEC,YAAY,CAAC;QACnG;IACF;IAEA,OAAO;QAAEE,QAAQI;QAAcD;IAAM;AACvC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/icon/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils, type TextColor, type ThemeColor } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type { MaterialIconFamily, MaterialSymbolFamily } from \"./material.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-icon-color\"?: string;\n \"--rmd-icon-size\"?: string | number;\n \"--rmd-icon-spacing\"?: string | number;\n \"--rmd-icon-rotate-from\"?: string | number;\n \"--rmd-icon-rotate-to\"?: string | number;\n }\n}\n\nconst styles = bem(\"rmd-icon\");\nconst rotatorStyles = bem(\"rmd-icon-rotator\");\n\n/** @since 6.0.0 */\nexport interface SVGIconClassNameOptions {\n className?: string;\n\n /**\n * An optional theme color to apply to the icon. When this is `undefined`, the\n * default icon color will be used instead.\n *\n * - `primary -> $primary-color`\n * - `secondary -> $secondary-color`\n * - `warning -> $warning-color`\n * - `success -> $success-color`\n * - `error -> $error-color`\n * - `text-primary -> $text-primary-color`\n * - `text-secondary -> $text-primary-color`\n * - `text-hint -> $text-hint-color`\n * - `text-disabled -> $text-disabled-color`\n */\n theme?: ThemeColor | TextColor;\n\n /**\n * Boolean if the font icon should use the dense spec.\n *\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * Set this to `true` if the icon should display inline with other text (like\n * a paragraph) by applying `vertical-align: bottom`.\n *\n * @example\n * ```tsx\n * <Typography>\n * <InfoIcon inline className=\"rmd-icon--before\" />\n * Some additional information around xyz.\n * </Typography>\n * ```\n *\n * @defaultValue `false`\n */\n inline?: boolean;\n}\n\n/** @since 6.0.0 */\nexport interface FontIconClassNameOptions extends SVGIconClassNameOptions {\n /**\n * The font icon class name to use.\n *\n * @defaultValue `\"material-icons\"`\n */\n iconClassName?: string;\n}\n\n/** @since 6.0.0 */\nexport interface MaterialIconClassNameOptions extends SVGIconClassNameOptions {\n family: MaterialIconFamily;\n}\n\n/** @since 6.0.0 */\nexport interface MaterialSymbolClassNameOptions\n extends SVGIconClassNameOptions {\n family: MaterialSymbolFamily;\n}\n\n/** @since 6.0.0 */\nexport type IconClassNameOptions =\n | ({ type: \"font\" } & FontIconClassNameOptions)\n | ({ type: \"svg\" } & SVGIconClassNameOptions)\n | ({ type: \"material\" } & MaterialIconClassNameOptions)\n | ({ type: \"symbol\" } & MaterialSymbolClassNameOptions);\n\n/**\n *\n * @since 6.0.0\n */\nexport function icon(options: IconClassNameOptions): string {\n const {\n className,\n type,\n theme,\n family = \"\",\n dense = false,\n inline = false,\n iconClassName,\n } = options as FontIconClassNameOptions &\n SVGIconClassNameOptions & {\n type: \"font\" | \"svg\" | \"symbol\" | \"material\";\n family?: MaterialIconFamily;\n };\n\n const isFont = type === \"font\";\n const isSvg = type === \"svg\";\n const isSymbol = type === \"symbol\";\n const isMaterial = type === \"material\";\n\n return cnb(\n styles({\n svg: isSvg,\n font: isFont || isMaterial,\n symbol: isSymbol,\n vab: inline,\n dense,\n }),\n isSymbol && `material-symbols-${family}`,\n isMaterial &&\n `material-icons${\n family === \"filled\" ? \"\" : `-${family === \"rounded\" ? \"round\" : family}`\n }`,\n cssUtils({\n textColor: theme,\n }),\n iconClassName,\n className\n );\n}\n\n/** @since 6.0.0 */\nexport interface IconRotatorClassNameOptions {\n className?: string;\n\n /**\n * Boolean if the icon is currently rotated.\n */\n rotated: boolean;\n\n /**\n * Boolean if changing the {@link rotated} state should no longer transition.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n}\n\n/**\n *\n * @since 6.0.0\n */\nexport function iconRotator(options: IconRotatorClassNameOptions): string {\n const { className, rotated, disableTransition = false } = options;\n\n return cnb(\n rotatorStyles({\n animate: !disableTransition,\n rotated,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","rotatorStyles","icon","options","className","type","theme","family","dense","inline","iconClassName","isFont","isSvg","isSymbol","isMaterial","svg","font","symbol","vab","textColor","iconRotator","rotated","disableTransition","animate"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAyC,iBAAiB;AAC3E,SAASC,GAAG,QAAQ,kBAAkB;AAatC,MAAMC,SAASD,IAAI;AACnB,MAAME,gBAAgBF,IAAI;AA0E1B;;;CAGC,GACD,OAAO,SAASG,KAAKC,OAA6B;IAChD,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,KAAK,EACLC,SAAS,EAAE,EACXC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,aAAa,EACd,GAAGP;IAMJ,MAAMQ,SAASN,SAAS;IACxB,MAAMO,QAAQP,SAAS;IACvB,MAAMQ,WAAWR,SAAS;IAC1B,MAAMS,aAAaT,SAAS;IAE5B,OAAOR,IACLG,OAAO;QACLe,KAAKH;QACLI,MAAML,UAAUG;QAChBG,QAAQJ;QACRK,KAAKT;QACLD;IACF,IACAK,YAAY,CAAC,iBAAiB,EAAEN,OAAO,CAAC,EACxCO,cACE,CAAC,cAAc,EACbP,WAAW,WAAW,KAAK,CAAC,CAAC,EAAEA,WAAW,YAAY,UAAUA,OAAO,CAAC,CACzE,CAAC,EACJT,SAAS;QACPqB,WAAWb;IACb,IACAI,eACAN;AAEJ;AAmBA;;;CAGC,GACD,OAAO,SAASgB,YAAYjB,OAAoC;IAC9D,MAAM,EAAEC,SAAS,EAAEiB,OAAO,EAAEC,oBAAoB,KAAK,EAAE,GAAGnB;IAE1D,OAAON,IACLI,cAAc;QACZsB,SAAS,CAACD;QACVD;IACF,IACAjB;AAEJ"}
1
+ {"version":3,"sources":["../../src/icon/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils, type TextColor, type ThemeColor } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type { MaterialIconFamily, MaterialSymbolFamily } from \"./material.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-icon-color\"?: string;\n \"--rmd-icon-size\"?: string | number;\n \"--rmd-icon-spacing\"?: string | number;\n \"--rmd-icon-rotate-from\"?: string | number;\n \"--rmd-icon-rotate-to\"?: string | number;\n }\n}\n\nconst styles = bem(\"rmd-icon\");\nconst rotatorStyles = bem(\"rmd-icon-rotator\");\n\n/** @since 6.0.0 */\nexport interface SVGIconClassNameOptions {\n className?: string;\n\n /**\n * An optional theme color to apply to the icon. When this is `undefined`, the\n * default icon color will be used instead.\n *\n * - `primary -> $primary-color`\n * - `secondary -> $secondary-color`\n * - `warning -> $warning-color`\n * - `success -> $success-color`\n * - `error -> $error-color`\n * - `text-primary -> $text-primary-color`\n * - `text-secondary -> $text-primary-color`\n * - `text-hint -> $text-hint-color`\n * - `text-disabled -> $text-disabled-color`\n */\n theme?: ThemeColor | TextColor;\n\n /**\n * Boolean if the font icon should use the dense spec.\n *\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * Set this to `true` if the icon should display inline with other text (like\n * a paragraph) by applying `vertical-align: bottom`.\n *\n * @example\n * ```tsx\n * <Typography>\n * <InfoIcon inline className=\"rmd-icon--before\" />\n * Some additional information around xyz.\n * </Typography>\n * ```\n *\n * @defaultValue `false`\n */\n inline?: boolean;\n}\n\n/** @since 6.0.0 */\nexport interface FontIconClassNameOptions extends SVGIconClassNameOptions {\n /**\n * The font icon class name to use.\n *\n * @defaultValue `\"material-icons\"`\n */\n iconClassName?: string;\n}\n\n/** @since 6.0.0 */\nexport interface MaterialIconClassNameOptions extends SVGIconClassNameOptions {\n family: MaterialIconFamily;\n}\n\n/** @since 6.0.0 */\nexport interface MaterialSymbolClassNameOptions\n extends SVGIconClassNameOptions {\n family: MaterialSymbolFamily;\n}\n\n/** @since 6.0.0 */\nexport type IconClassNameOptions =\n | ({ type: \"font\" } & FontIconClassNameOptions)\n | ({ type: \"svg\" } & SVGIconClassNameOptions)\n | ({ type: \"material\" } & MaterialIconClassNameOptions)\n | ({ type: \"symbol\" } & MaterialSymbolClassNameOptions);\n\n/**\n *\n * @since 6.0.0\n */\nexport function icon(options: IconClassNameOptions): string {\n const {\n className,\n type,\n theme,\n family = \"\",\n dense = false,\n inline = false,\n iconClassName,\n } = options as FontIconClassNameOptions &\n SVGIconClassNameOptions & {\n type: \"font\" | \"svg\" | \"symbol\" | \"material\";\n family?: MaterialIconFamily;\n };\n\n const isFont = type === \"font\";\n const isSvg = type === \"svg\";\n const isSymbol = type === \"symbol\";\n const isMaterial = type === \"material\";\n\n return cnb(\n styles({\n svg: isSvg,\n font: isFont || isMaterial,\n symbol: isSymbol,\n vab: inline,\n dense,\n }),\n isSymbol && `material-symbols-${family}`,\n isMaterial &&\n `material-icons${\n family === \"filled\" ? \"\" : `-${family === \"rounded\" ? \"round\" : family}`\n }`,\n cssUtils({\n textColor: theme,\n }),\n iconClassName,\n className\n );\n}\n\n/** @since 6.0.0 */\nexport interface IconRotatorClassNameOptions {\n className?: string;\n\n /**\n * Boolean if the icon is currently rotated.\n */\n rotated: boolean;\n\n /**\n * Boolean if changing the {@link rotated} state should no longer transition.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n}\n\n/**\n *\n * @since 6.0.0\n */\nexport function iconRotator(options: IconRotatorClassNameOptions): string {\n const { className, rotated, disableTransition = false } = options;\n\n return cnb(\n rotatorStyles({\n animate: !disableTransition,\n rotated,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","rotatorStyles","icon","options","className","type","theme","family","dense","inline","iconClassName","isFont","isSvg","isSymbol","isMaterial","svg","font","symbol","vab","textColor","iconRotator","rotated","disableTransition","animate"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAyC,iBAAiB;AAC3E,SAASC,GAAG,QAAQ,kBAAkB;AAatC,MAAMC,SAASD,IAAI;AACnB,MAAME,gBAAgBF,IAAI;AA0E1B;;;CAGC,GACD,OAAO,SAASG,KAAKC,OAA6B;IAChD,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,KAAK,EACLC,SAAS,EAAE,EACXC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,aAAa,EACd,GAAGP;IAMJ,MAAMQ,SAASN,SAAS;IACxB,MAAMO,QAAQP,SAAS;IACvB,MAAMQ,WAAWR,SAAS;IAC1B,MAAMS,aAAaT,SAAS;IAE5B,OAAOR,IACLG,OAAO;QACLe,KAAKH;QACLI,MAAML,UAAUG;QAChBG,QAAQJ;QACRK,KAAKT;QACLD;IACF,IACAK,YAAY,CAAC,iBAAiB,EAAEN,OAAO,CAAC,EACxCO,cACE,CAAC,cAAc,EACbP,WAAW,WAAW,KAAK,CAAC,CAAC,EAAEA,WAAW,YAAY,UAAUA,OAAO,CAAC,CACzE,CAAC,EACJT,SAAS;QACPqB,WAAWb;IACb,IACAI,eACAN;AAEJ;AAmBA;;;CAGC,GACD,OAAO,SAASgB,YAAYjB,OAAoC;IAC9D,MAAM,EAAEC,SAAS,EAAEiB,OAAO,EAAEC,oBAAoB,KAAK,EAAE,GAAGnB;IAE1D,OAAON,IACLI,cAAc;QACZsB,SAAS,CAACD;QACVD;IACF,IACAjB;AAEJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/Ripple.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { type ReactElement } from \"react\";\nimport {\n type CSSTransitionClassNames,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { type RippleState, type RippleTransitionCallbacks } from \"./types.js\";\n\n/** @internal */\nexport const DEFAULT_RIPPLE_CLASSNAMES: Readonly<CSSTransitionClassNames> = {\n enter: \"rmd-ripple--animating\",\n enterActive: \"rmd-ripple--scaling\",\n enterDone: \"rmd-ripple--animating rmd-ripple--scaling\",\n exit: \"rmd-ripple--animating rmd-ripple--scaling\",\n exitActive: \"rmd-ripple--fading\",\n};\n\n/** @internal */\nexport const DEFAULT_RIPPLE_TIMEOUT: Readonly<TransitionTimeout> = {\n enter: 150,\n exit: 300,\n};\n\n/** @internal */\nexport interface RippleProps extends RippleTransitionCallbacks {\n className?: string;\n timeout?: TransitionTimeout;\n classNames?: CSSTransitionClassNames;\n ripple: RippleState;\n}\n\n/**\n * **Client Component**\n *\n * This component should only be used by the `RippleContainer` component.\n *\n * @internal\n */\nexport function Ripple(props: RippleProps): ReactElement {\n const {\n className,\n timeout = DEFAULT_RIPPLE_TIMEOUT,\n classNames = DEFAULT_RIPPLE_CLASSNAMES,\n ripple,\n onEntered,\n onExited,\n } = props;\n const { style, exiting } = ripple;\n const { elementProps, rendered } = useCSSTransition({\n appear: true,\n className: cnb(\"rmd-ripple\", className),\n transitionIn: !exiting,\n timeout,\n classNames,\n onEntered() {\n onEntered(ripple);\n },\n onExited() {\n onExited(ripple);\n },\n });\n\n return <>{rendered && <span style={style} {...elementProps} />}</>;\n}\n"],"names":["cnb","useCSSTransition","DEFAULT_RIPPLE_CLASSNAMES","enter","enterActive","enterDone","exit","exitActive","DEFAULT_RIPPLE_TIMEOUT","Ripple","props","className","timeout","classNames","ripple","onEntered","onExited","style","exiting","elementProps","rendered","appear","transitionIn","span"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAMhC,SAASC,gBAAgB,QAAQ,oCAAoC;AAGrE,cAAc,GACd,OAAO,MAAMC,4BAA+D;IAC1EC,OAAO;IACPC,aAAa;IACbC,WAAW;IACXC,MAAM;IACNC,YAAY;AACd,EAAE;AAEF,cAAc,GACd,OAAO,MAAMC,yBAAsD;IACjEL,OAAO;IACPG,MAAM;AACR,EAAE;AAUF;;;;;;CAMC,GACD,OAAO,SAASG,OAAOC,KAAkB;IACvC,MAAM,EACJC,SAAS,EACTC,UAAUJ,sBAAsB,EAChCK,aAAaX,yBAAyB,EACtCY,MAAM,EACNC,SAAS,EACTC,QAAQ,EACT,GAAGN;IACJ,MAAM,EAAEO,KAAK,EAAEC,OAAO,EAAE,GAAGJ;IAC3B,MAAM,EAAEK,YAAY,EAAEC,QAAQ,EAAE,GAAGnB,iBAAiB;QAClDoB,QAAQ;QACRV,WAAWX,IAAI,cAAcW;QAC7BW,cAAc,CAACJ;QACfN;QACAC;QACAE;YACEA,UAAUD;QACZ;QACAE;YACEA,SAASF;QACX;IACF;IAEA,qBAAO;kBAAGM,0BAAY,KAACG;YAAKN,OAAOA;YAAQ,GAAGE,YAAY;;;AAC5D"}
1
+ {"version":3,"sources":["../../src/interaction/Ripple.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { type ReactElement } from \"react\";\nimport {\n type CSSTransitionClassNames,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { type RippleState, type RippleTransitionCallbacks } from \"./types.js\";\n\n/** @internal */\nexport const DEFAULT_RIPPLE_CLASSNAMES: Readonly<CSSTransitionClassNames> = {\n enter: \"rmd-ripple--animating\",\n enterActive: \"rmd-ripple--scaling\",\n enterDone: \"rmd-ripple--animating rmd-ripple--scaling\",\n exit: \"rmd-ripple--animating rmd-ripple--scaling\",\n exitActive: \"rmd-ripple--fading\",\n};\n\n/** @internal */\nexport const DEFAULT_RIPPLE_TIMEOUT: Readonly<TransitionTimeout> = {\n enter: 150,\n exit: 300,\n};\n\n/** @internal */\nexport interface RippleProps extends RippleTransitionCallbacks {\n className?: string;\n timeout?: TransitionTimeout;\n classNames?: CSSTransitionClassNames;\n ripple: RippleState;\n}\n\n/**\n * **Client Component**\n *\n * This component should only be used by the `RippleContainer` component.\n *\n * @internal\n */\nexport function Ripple(props: RippleProps): ReactElement {\n const {\n className,\n timeout = DEFAULT_RIPPLE_TIMEOUT,\n classNames = DEFAULT_RIPPLE_CLASSNAMES,\n ripple,\n onEntered,\n onExited,\n } = props;\n const { style, exiting } = ripple;\n const { elementProps, rendered } = useCSSTransition({\n appear: true,\n className: cnb(\"rmd-ripple\", className),\n transitionIn: !exiting,\n timeout,\n classNames,\n onEntered() {\n onEntered(ripple);\n },\n onExited() {\n onExited(ripple);\n },\n });\n\n return <>{rendered && <span style={style} {...elementProps} />}</>;\n}\n"],"names":["cnb","useCSSTransition","DEFAULT_RIPPLE_CLASSNAMES","enter","enterActive","enterDone","exit","exitActive","DEFAULT_RIPPLE_TIMEOUT","Ripple","props","className","timeout","classNames","ripple","onEntered","onExited","style","exiting","elementProps","rendered","appear","transitionIn","span"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAMhC,SAASC,gBAAgB,QAAQ,oCAAoC;AAGrE,cAAc,GACd,OAAO,MAAMC,4BAA+D;IAC1EC,OAAO;IACPC,aAAa;IACbC,WAAW;IACXC,MAAM;IACNC,YAAY;AACd,EAAE;AAEF,cAAc,GACd,OAAO,MAAMC,yBAAsD;IACjEL,OAAO;IACPG,MAAM;AACR,EAAE;AAUF;;;;;;CAMC,GACD,OAAO,SAASG,OAAOC,KAAkB;IACvC,MAAM,EACJC,SAAS,EACTC,UAAUJ,sBAAsB,EAChCK,aAAaX,yBAAyB,EACtCY,MAAM,EACNC,SAAS,EACTC,QAAQ,EACT,GAAGN;IACJ,MAAM,EAAEO,KAAK,EAAEC,OAAO,EAAE,GAAGJ;IAC3B,MAAM,EAAEK,YAAY,EAAEC,QAAQ,EAAE,GAAGnB,iBAAiB;QAClDoB,QAAQ;QACRV,WAAWX,IAAI,cAAcW;QAC7BW,cAAc,CAACJ;QACfN;QACAC;QACAE;YACEA,UAAUD;QACZ;QACAE;YACEA,SAASF;QACX;IACF;IAEA,qBAAO;kBAAGM,0BAAY,KAACG;YAAKN,OAAOA;YAAQ,GAAGE,YAAY;;;AAC5D"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/RippleContainer.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { type ReactElement } from \"react\";\nimport { Ripple } from \"./Ripple.js\";\nimport { type ProvidedRippleContainerProps } from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-ripple-inset\"?: string | number;\n \"--rmd-ripple-border-radius\"?: string | number;\n }\n}\n\n/** @internal */\nexport interface RippleContainerProps extends ProvidedRippleContainerProps {\n className?: string;\n}\n\n/**\n * **Server Component**\n *\n * This component should generally only be used internally within `react-md`\n * unless you are implementing a custom component interaction with\n * `useElementInteraction`.\n *\n * @see {@link useElementInteraction} for example usage.\n */\nexport function RippleContainer(props: RippleContainerProps): ReactElement {\n const { className, ripples, onEntered, onExited } = props;\n\n return (\n <span className={cnb(\"rmd-ripple-container\", className)}>\n {ripples.map((ripple) => (\n <Ripple\n key={ripple.startTime}\n ripple={ripple}\n onEntered={onEntered}\n onExited={onExited}\n />\n ))}\n </span>\n );\n}\n"],"names":["cnb","Ripple","RippleContainer","props","className","ripples","onEntered","onExited","span","map","ripple","startTime"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,MAAM,QAAQ,cAAc;AAerC;;;;;;;;CAQC,GACD,OAAO,SAASC,gBAAgBC,KAA2B;IACzD,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGJ;IAEpD,qBACE,KAACK;QAAKJ,WAAWJ,IAAI,wBAAwBI;kBAC1CC,QAAQI,GAAG,CAAC,CAACC,uBACZ,KAACT;gBAECS,QAAQA;gBACRJ,WAAWA;gBACXC,UAAUA;eAHLG,OAAOC,SAAS;;AAQ/B"}
1
+ {"version":3,"sources":["../../src/interaction/RippleContainer.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { type ReactElement } from \"react\";\nimport { Ripple } from \"./Ripple.js\";\nimport { type ProvidedRippleContainerProps } from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-ripple-inset\"?: string | number;\n \"--rmd-ripple-border-radius\"?: string | number;\n }\n}\n\n/** @internal */\nexport interface RippleContainerProps extends ProvidedRippleContainerProps {\n className?: string;\n}\n\n/**\n * **Server Component**\n *\n * This component should generally only be used internally within `react-md`\n * unless you are implementing a custom component interaction with\n * `useElementInteraction`.\n *\n * @see {@link useElementInteraction} for example usage.\n */\nexport function RippleContainer(props: RippleContainerProps): ReactElement {\n const { className, ripples, onEntered, onExited } = props;\n\n return (\n <span className={cnb(\"rmd-ripple-container\", className)}>\n {ripples.map((ripple) => (\n <Ripple\n key={ripple.startTime}\n ripple={ripple}\n onEntered={onEntered}\n onExited={onExited}\n />\n ))}\n </span>\n );\n}\n"],"names":["cnb","Ripple","RippleContainer","props","className","ripples","onEntered","onExited","span","map","ripple","startTime"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,MAAM,QAAQ,cAAc;AAerC;;;;;;;;CAQC,GACD,OAAO,SAASC,gBAAgBC,KAA2B;IACzD,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGJ;IAEpD,qBACE,KAACK;QAAKJ,WAAWJ,IAAI,wBAAwBI;kBAC1CC,QAAQI,GAAG,CAAC,CAACC,uBACZ,KAACT;gBAECS,QAAQA;gBACRJ,WAAWA;gBACXC,UAAUA;eAHLG,OAAOC,SAAS;;AAQ/B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/UserInteractionModeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from \"react\";\n\n/**\n * This is the current mode for how your user is interacting with your app. This\n * will be used to determine which type of state styles should be applied at the\n * time of interacting with an element on your page.\n *\n * @defaultValue `\"mouse\"`\n */\nexport type UserInteractionMode = \"keyboard\" | \"mouse\" | \"touch\";\n\n/** @internal */\ninterface UserInteractionModeContext {\n __root: boolean;\n mode: UserInteractionMode;\n}\n\nconst context = createContext<UserInteractionModeContext>({\n __root: false,\n mode: \"mouse\",\n});\ncontext.displayName = \"UserInteractionMode\";\nconst { Provider } = context;\n\n/**\n * @returns the current user interaction mode\n */\nexport function useUserInteractionMode(): UserInteractionMode {\n return useContext(context).mode;\n}\n\n/** @internal */\nconst TOUCH_TIMEOUT = 1200;\n\nexport interface UserInteractionModeProviderProps {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to determine how a user is interacting with your app\n * to update component functionality and applying the following class names to\n * the `document.body`:\n *\n * - `\"mouse-mode\"`\n * - `\"keyboard-mode\"`\n * - `\"touch-mode\"`\n *\n * Within `react-md`, these classes are used for the following behavior:\n * - only display `:focus` outlines while in `\"keyboard-mode\"`\n * - do not display `:hover` effects while in `\"touch-mode\"`\n *\n * @example Mount at the root of your app\n * ```tsx\n * import { createRoot } from \"react-dom/client\";\n * import { UserInteractionModeProvider } from \"@react-md/core\";\n * import App from \"./App\":\n *\n * const container = document.getElementById(\"root\");\n * const root = createRoot(container);\n *\n * root.render(\n * <UserInteractionModeProvider>\n * <App />\n * </UserInteractionModeProvider>\n * );\n * ```\n *\n * @throws \"The `UserInteractionModeProvider` cannot be mounted multiple times.\"\n * if this component is mounted multiple times in your app.\n */\nexport function UserInteractionModeProvider(\n props: UserInteractionModeProviderProps\n): ReactElement {\n const { children } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\n \"The `UserInteractionModeProvider` cannot be mounted multiple times.\"\n );\n }\n\n const [mode, setMode] = useState<UserInteractionMode>(\"mouse\");\n const lastTouchTime = useRef(0);\n const isTouchContextMenu = useRef(false);\n\n /**\n * This effect helps determine the current interaction mode by attaching the\n * required event listeners to the window. The `mode` will always be defaulted\n * to `mouse` at first since it has the least possibilities of causing errors\n * with styles since the mouse-only styles are normally just `:hover` effects.\n *\n * ## Switching between modes:\n *\n * ### While in `mouse` mode:\n *\n * - any `keydown` event will switch to `keyboard` mode\n * - this does have the side effect of meta keys also causing the switch over,\n * but it feels fine since it helps show the current focus in the document\n * as well\n * - any `touchstart` event will switch to `touch` mode\n *\n * ### While in `keyboard` mode:\n *\n * - any `mousedown` event will switch to `mouse` mode\n * - it is perfectly okay to move the mouse while in keyboard mode, but still\n * want to keep the keyboard styles until the user actually starts clicking\n * - any `touchstart` event will switch to `touch` mode\n *\n * ### While in `touch` mode:\n *\n * - any `mousemove` event will switch to `mouse` mode, but **only** if there\n * hasn't been a `contextmenu` event within the last `1.2s`\n * - you can really only switch back to `mouse` mode if you are using the\n * devtools to emulate devices OR using a touch-desktop. I don't know how\n * common this really is though.\n * - touching the screen will always fire a `mousemove` event (which is why\n * the `:hover` styles are normally with `rmd-utils-mouse-only`) and even\n * after the `contextmenu` event. Normally want to go back to `mouse` mode\n * when the mouse re-enters the `window`\n *\n * Note: It's currently impossible to switch from `touch` to `keyboard`\n * immediately. You'd first need to switch to `mouse` and then to `keyboard`. I\n * don't really know of any use-cases other than the weird touch-desktop stuff\n * and I have no experience using them.\n */\n useEffect(() => {\n const enableMouseMode = (): void => setMode(\"mouse\");\n const enableKeyboardMode = (): void => setMode(\"keyboard\");\n\n const handleTouchStart = (): void => {\n lastTouchTime.current = Date.now();\n isTouchContextMenu.current = false;\n setMode(\"touch\");\n };\n\n const handleMouseMove = (): void => {\n if (\n isTouchContextMenu.current ||\n Date.now() - lastTouchTime.current < TOUCH_TIMEOUT\n ) {\n isTouchContextMenu.current = false;\n return;\n }\n\n enableMouseMode();\n };\n const handleContextMenu = (): void => {\n isTouchContextMenu.current = true;\n };\n\n const className = `${mode}-mode`;\n document.body.classList.add(className);\n window.addEventListener(\"touchstart\", handleTouchStart, true);\n if (mode === \"mouse\") {\n window.addEventListener(\"keydown\", enableKeyboardMode, true);\n } else if (mode === \"keyboard\") {\n window.addEventListener(\"mousedown\", enableMouseMode, true);\n } else {\n window.addEventListener(\"mousemove\", handleMouseMove, true);\n window.addEventListener(\"contextmenu\", handleContextMenu, true);\n }\n\n return () => {\n document.body.classList.remove(className);\n window.removeEventListener(\"touchstart\", handleTouchStart, true);\n if (mode === \"mouse\") {\n window.removeEventListener(\"keydown\", enableKeyboardMode, true);\n } else if (mode === \"keyboard\") {\n window.removeEventListener(\"mousedown\", enableMouseMode, true);\n } else {\n window.removeEventListener(\"mousemove\", handleMouseMove, true);\n window.removeEventListener(\"contextmenu\", handleContextMenu, true);\n }\n };\n }, [mode]);\n\n const value = useMemo<UserInteractionModeContext>(\n () => ({\n mode,\n __root: true,\n }),\n [mode]\n );\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","context","__root","mode","displayName","Provider","useUserInteractionMode","TOUCH_TIMEOUT","UserInteractionModeProvider","props","children","Error","setMode","lastTouchTime","isTouchContextMenu","enableMouseMode","enableKeyboardMode","handleTouchStart","current","Date","now","handleMouseMove","handleContextMenu","className","document","body","classList","add","window","addEventListener","remove","removeEventListener","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAGH,QAAQ;AAiBf,MAAMC,wBAAUN,cAA0C;IACxDO,QAAQ;IACRC,MAAM;AACR;AACAF,QAAQG,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;AAErB;;CAEC,GACD,OAAO,SAASK;IACd,OAAOV,WAAWK,SAASE,IAAI;AACjC;AAEA,cAAc,GACd,MAAMI,gBAAgB;AAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCC,GACD,OAAO,SAASC,4BACdC,KAAuC;IAEvC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IACrB,MAAM,EAAEP,MAAM,EAAE,GAAGN,WAAWK;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIS,MACR;IAEJ;IAEA,MAAM,CAACR,MAAMS,QAAQ,GAAGZ,SAA8B;IACtD,MAAMa,gBAAgBd,OAAO;IAC7B,MAAMe,qBAAqBf,OAAO;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCC,GACDF,UAAU;QACR,MAAMkB,kBAAkB,IAAYH,QAAQ;QAC5C,MAAMI,qBAAqB,IAAYJ,QAAQ;QAE/C,MAAMK,mBAAmB;YACvBJ,cAAcK,OAAO,GAAGC,KAAKC,GAAG;YAChCN,mBAAmBI,OAAO,GAAG;YAC7BN,QAAQ;QACV;QAEA,MAAMS,kBAAkB;YACtB,IACEP,mBAAmBI,OAAO,IAC1BC,KAAKC,GAAG,KAAKP,cAAcK,OAAO,GAAGX,eACrC;gBACAO,mBAAmBI,OAAO,GAAG;gBAC7B;YACF;YAEAH;QACF;QACA,MAAMO,oBAAoB;YACxBR,mBAAmBI,OAAO,GAAG;QAC/B;QAEA,MAAMK,YAAY,CAAC,EAAEpB,KAAK,KAAK,CAAC;QAChCqB,SAASC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACJ;QAC5BK,OAAOC,gBAAgB,CAAC,cAAcZ,kBAAkB;QACxD,IAAId,SAAS,SAAS;YACpByB,OAAOC,gBAAgB,CAAC,WAAWb,oBAAoB;QACzD,OAAO,IAAIb,SAAS,YAAY;YAC9ByB,OAAOC,gBAAgB,CAAC,aAAad,iBAAiB;QACxD,OAAO;YACLa,OAAOC,gBAAgB,CAAC,aAAaR,iBAAiB;YACtDO,OAAOC,gBAAgB,CAAC,eAAeP,mBAAmB;QAC5D;QAEA,OAAO;YACLE,SAASC,IAAI,CAACC,SAAS,CAACI,MAAM,CAACP;YAC/BK,OAAOG,mBAAmB,CAAC,cAAcd,kBAAkB;YAC3D,IAAId,SAAS,SAAS;gBACpByB,OAAOG,mBAAmB,CAAC,WAAWf,oBAAoB;YAC5D,OAAO,IAAIb,SAAS,YAAY;gBAC9ByB,OAAOG,mBAAmB,CAAC,aAAahB,iBAAiB;YAC3D,OAAO;gBACLa,OAAOG,mBAAmB,CAAC,aAAaV,iBAAiB;gBACzDO,OAAOG,mBAAmB,CAAC,eAAeT,mBAAmB;YAC/D;QACF;IACF,GAAG;QAACnB;KAAK;IAET,MAAM6B,QAAQlC,QACZ,IAAO,CAAA;YACLK;YACAD,QAAQ;QACV,CAAA,GACA;QAACC;KAAK;IAER,qBAAO,KAACE;QAAS2B,OAAOA;kBAAQtB;;AAClC"}
1
+ {"version":3,"sources":["../../src/interaction/UserInteractionModeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from \"react\";\n\n/**\n * This is the current mode for how your user is interacting with your app. This\n * will be used to determine which type of state styles should be applied at the\n * time of interacting with an element on your page.\n *\n * @defaultValue `\"mouse\"`\n */\nexport type UserInteractionMode = \"keyboard\" | \"mouse\" | \"touch\";\n\n/** @internal */\ninterface UserInteractionModeContext {\n __root: boolean;\n mode: UserInteractionMode;\n}\n\nconst context = createContext<UserInteractionModeContext>({\n __root: false,\n mode: \"mouse\",\n});\ncontext.displayName = \"UserInteractionMode\";\nconst { Provider } = context;\n\n/**\n * @returns the current user interaction mode\n */\nexport function useUserInteractionMode(): UserInteractionMode {\n return useContext(context).mode;\n}\n\n/** @internal */\nconst TOUCH_TIMEOUT = 1200;\n\nexport interface UserInteractionModeProviderProps {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to determine how a user is interacting with your app\n * to update component functionality and applying the following class names to\n * the `document.body`:\n *\n * - `\"mouse-mode\"`\n * - `\"keyboard-mode\"`\n * - `\"touch-mode\"`\n *\n * Within `react-md`, these classes are used for the following behavior:\n * - only display `:focus` outlines while in `\"keyboard-mode\"`\n * - do not display `:hover` effects while in `\"touch-mode\"`\n *\n * @example Mount at the root of your app\n * ```tsx\n * import { createRoot } from \"react-dom/client\";\n * import { UserInteractionModeProvider } from \"@react-md/core\";\n * import App from \"./App\":\n *\n * const container = document.getElementById(\"root\");\n * const root = createRoot(container);\n *\n * root.render(\n * <UserInteractionModeProvider>\n * <App />\n * </UserInteractionModeProvider>\n * );\n * ```\n *\n * @throws \"The `UserInteractionModeProvider` cannot be mounted multiple times.\"\n * if this component is mounted multiple times in your app.\n */\nexport function UserInteractionModeProvider(\n props: UserInteractionModeProviderProps\n): ReactElement {\n const { children } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\n \"The `UserInteractionModeProvider` cannot be mounted multiple times.\"\n );\n }\n\n const [mode, setMode] = useState<UserInteractionMode>(\"mouse\");\n const lastTouchTime = useRef(0);\n const isTouchContextMenu = useRef(false);\n\n /**\n * This effect helps determine the current interaction mode by attaching the\n * required event listeners to the window. The `mode` will always be defaulted\n * to `mouse` at first since it has the least possibilities of causing errors\n * with styles since the mouse-only styles are normally just `:hover` effects.\n *\n * ## Switching between modes:\n *\n * ### While in `mouse` mode:\n *\n * - any `keydown` event will switch to `keyboard` mode\n * - this does have the side effect of meta keys also causing the switch over,\n * but it feels fine since it helps show the current focus in the document\n * as well\n * - any `touchstart` event will switch to `touch` mode\n *\n * ### While in `keyboard` mode:\n *\n * - any `mousedown` event will switch to `mouse` mode\n * - it is perfectly okay to move the mouse while in keyboard mode, but still\n * want to keep the keyboard styles until the user actually starts clicking\n * - any `touchstart` event will switch to `touch` mode\n *\n * ### While in `touch` mode:\n *\n * - any `mousemove` event will switch to `mouse` mode, but **only** if there\n * hasn't been a `contextmenu` event within the last `1.2s`\n * - you can really only switch back to `mouse` mode if you are using the\n * devtools to emulate devices OR using a touch-desktop. I don't know how\n * common this really is though.\n * - touching the screen will always fire a `mousemove` event (which is why\n * the `:hover` styles are normally with `rmd-utils-mouse-only`) and even\n * after the `contextmenu` event. Normally want to go back to `mouse` mode\n * when the mouse re-enters the `window`\n *\n * Note: It's currently impossible to switch from `touch` to `keyboard`\n * immediately. You'd first need to switch to `mouse` and then to `keyboard`. I\n * don't really know of any use-cases other than the weird touch-desktop stuff\n * and I have no experience using them.\n */\n useEffect(() => {\n const enableMouseMode = (): void => setMode(\"mouse\");\n const enableKeyboardMode = (): void => setMode(\"keyboard\");\n\n const handleTouchStart = (): void => {\n lastTouchTime.current = Date.now();\n isTouchContextMenu.current = false;\n setMode(\"touch\");\n };\n\n const handleMouseMove = (): void => {\n if (\n isTouchContextMenu.current ||\n Date.now() - lastTouchTime.current < TOUCH_TIMEOUT\n ) {\n isTouchContextMenu.current = false;\n return;\n }\n\n enableMouseMode();\n };\n const handleContextMenu = (): void => {\n isTouchContextMenu.current = true;\n };\n\n const className = `${mode}-mode`;\n document.body.classList.add(className);\n window.addEventListener(\"touchstart\", handleTouchStart, true);\n if (mode === \"mouse\") {\n window.addEventListener(\"keydown\", enableKeyboardMode, true);\n } else if (mode === \"keyboard\") {\n window.addEventListener(\"mousedown\", enableMouseMode, true);\n } else {\n window.addEventListener(\"mousemove\", handleMouseMove, true);\n window.addEventListener(\"contextmenu\", handleContextMenu, true);\n }\n\n return () => {\n document.body.classList.remove(className);\n window.removeEventListener(\"touchstart\", handleTouchStart, true);\n if (mode === \"mouse\") {\n window.removeEventListener(\"keydown\", enableKeyboardMode, true);\n } else if (mode === \"keyboard\") {\n window.removeEventListener(\"mousedown\", enableMouseMode, true);\n } else {\n window.removeEventListener(\"mousemove\", handleMouseMove, true);\n window.removeEventListener(\"contextmenu\", handleContextMenu, true);\n }\n };\n }, [mode]);\n\n const value = useMemo<UserInteractionModeContext>(\n () => ({\n mode,\n __root: true,\n }),\n [mode]\n );\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","context","__root","mode","displayName","Provider","useUserInteractionMode","TOUCH_TIMEOUT","UserInteractionModeProvider","props","children","Error","setMode","lastTouchTime","isTouchContextMenu","enableMouseMode","enableKeyboardMode","handleTouchStart","current","Date","now","handleMouseMove","handleContextMenu","className","document","body","classList","add","window","addEventListener","remove","removeEventListener","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAGH,QAAQ;AAiBf,MAAMC,wBAAUN,cAA0C;IACxDO,QAAQ;IACRC,MAAM;AACR;AACAF,QAAQG,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;AAErB;;CAEC,GACD,OAAO,SAASK;IACd,OAAOV,WAAWK,SAASE,IAAI;AACjC;AAEA,cAAc,GACd,MAAMI,gBAAgB;AAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCC,GACD,OAAO,SAASC,4BACdC,KAAuC;IAEvC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IACrB,MAAM,EAAEP,MAAM,EAAE,GAAGN,WAAWK;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIS,MACR;IAEJ;IAEA,MAAM,CAACR,MAAMS,QAAQ,GAAGZ,SAA8B;IACtD,MAAMa,gBAAgBd,OAAO;IAC7B,MAAMe,qBAAqBf,OAAO;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCC,GACDF,UAAU;QACR,MAAMkB,kBAAkB,IAAYH,QAAQ;QAC5C,MAAMI,qBAAqB,IAAYJ,QAAQ;QAE/C,MAAMK,mBAAmB;YACvBJ,cAAcK,OAAO,GAAGC,KAAKC,GAAG;YAChCN,mBAAmBI,OAAO,GAAG;YAC7BN,QAAQ;QACV;QAEA,MAAMS,kBAAkB;YACtB,IACEP,mBAAmBI,OAAO,IAC1BC,KAAKC,GAAG,KAAKP,cAAcK,OAAO,GAAGX,eACrC;gBACAO,mBAAmBI,OAAO,GAAG;gBAC7B;YACF;YAEAH;QACF;QACA,MAAMO,oBAAoB;YACxBR,mBAAmBI,OAAO,GAAG;QAC/B;QAEA,MAAMK,YAAY,CAAC,EAAEpB,KAAK,KAAK,CAAC;QAChCqB,SAASC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACJ;QAC5BK,OAAOC,gBAAgB,CAAC,cAAcZ,kBAAkB;QACxD,IAAId,SAAS,SAAS;YACpByB,OAAOC,gBAAgB,CAAC,WAAWb,oBAAoB;QACzD,OAAO,IAAIb,SAAS,YAAY;YAC9ByB,OAAOC,gBAAgB,CAAC,aAAad,iBAAiB;QACxD,OAAO;YACLa,OAAOC,gBAAgB,CAAC,aAAaR,iBAAiB;YACtDO,OAAOC,gBAAgB,CAAC,eAAeP,mBAAmB;QAC5D;QAEA,OAAO;YACLE,SAASC,IAAI,CAACC,SAAS,CAACI,MAAM,CAACP;YAC/BK,OAAOG,mBAAmB,CAAC,cAAcd,kBAAkB;YAC3D,IAAId,SAAS,SAAS;gBACpByB,OAAOG,mBAAmB,CAAC,WAAWf,oBAAoB;YAC5D,OAAO,IAAIb,SAAS,YAAY;gBAC9ByB,OAAOG,mBAAmB,CAAC,aAAahB,iBAAiB;YAC3D,OAAO;gBACLa,OAAOG,mBAAmB,CAAC,aAAaV,iBAAiB;gBACzDO,OAAOG,mBAAmB,CAAC,eAAeT,mBAAmB;YAC/D;QACF;IACF,GAAG;QAACnB;KAAK;IAET,MAAM6B,QAAQlC,QACZ,IAAO,CAAA;YACLK;YACAD,QAAQ;QACV,CAAA,GACA;QAACC;KAAK;IAER,qBAAO,KAACE;QAAS2B,OAAOA;kBAAQtB;;AAClC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/config.ts"],"sourcesContent":["import { type ElementInteractionMode } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface ElementInteractionConfiguration {\n mode: ElementInteractionMode;\n higherContrast: boolean;\n}\n\n// NOTE: Uses get/set for test mocking\n\nlet mode: ElementInteractionMode = \"ripple\";\nlet higherContrast = true;\n\n/**\n * @since 6.0.0\n */\nexport const INTERACTION_CONFIG: ElementInteractionConfiguration = {\n get mode() {\n return mode;\n },\n set mode(nextMode: ElementInteractionMode) {\n mode = nextMode;\n },\n get higherContrast() {\n return higherContrast;\n },\n set higherContrast(nextHigherContrast) {\n higherContrast = nextHigherContrast;\n },\n};\n"],"names":["mode","higherContrast","INTERACTION_CONFIG","nextMode","nextHigherContrast"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAUA,sCAAsC;AAEtC,IAAIA,OAA+B;AACnC,IAAIC,iBAAiB;AAErB;;CAEC,GACD,OAAO,MAAMC,qBAAsD;IACjE,IAAIF,QAAO;QACT,OAAOA;IACT;IACA,IAAIA,MAAKG,SAAkC;QACzCH,OAAOG;IACT;IACA,IAAIF,kBAAiB;QACnB,OAAOA;IACT;IACA,IAAIA,gBAAeG,mBAAoB;QACrCH,iBAAiBG;IACnB;AACF,EAAE"}
1
+ {"version":3,"sources":["../../src/interaction/config.ts"],"sourcesContent":["import { type ElementInteractionMode } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface ElementInteractionConfiguration {\n mode: ElementInteractionMode;\n higherContrast: boolean;\n}\n\n// NOTE: Uses get/set for test mocking\n\nlet mode: ElementInteractionMode = \"ripple\";\nlet higherContrast = true;\n\n/**\n * @since 6.0.0\n */\nexport const INTERACTION_CONFIG: ElementInteractionConfiguration = {\n get mode() {\n return mode;\n },\n set mode(nextMode: ElementInteractionMode) {\n mode = nextMode;\n },\n get higherContrast() {\n return higherContrast;\n },\n set higherContrast(nextHigherContrast) {\n higherContrast = nextHigherContrast;\n },\n};\n"],"names":["mode","higherContrast","INTERACTION_CONFIG","nextMode","nextHigherContrast"],"mappings":"AAUA,sCAAsC;AAEtC,IAAIA,OAA+B;AACnC,IAAIC,iBAAiB;AAErB;;CAEC,GACD,OAAO,MAAMC,qBAAsD;IACjE,IAAIF,QAAO;QACT,OAAOA;IACT;IACA,IAAIA,MAAKG,SAAkC;QACzCH,OAAOG;IACT;IACA,IAAIF,kBAAiB;QACnB,OAAOA;IACT;IACA,IAAIA,gBAAeG,mBAAoB;QACrCH,iBAAiBG;IACnB;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/types.ts"],"sourcesContent":["import type {\n DragEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n TouchEventHandler,\n} from \"react\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-ripple-background-color\"?: string;\n \"--rmd-interaction-background-color\"?: string;\n \"--rmd-hover-background-color\"?: string;\n \"--rmd-focus-background-color\"?: string;\n \"--rmd-press-background-color\"?: string;\n \"--rmd-selected-background-color\"?: string;\n \"--rmd-focus-color\"?: string;\n \"--rmd-focus-width\"?: string | number;\n }\n}\n\n/**\n * This is used to provide feedback to the user that they are interacting with\n * elements on the page. It is recommended to not set this to `\"none\"` unless\n * you will implement your own version.\n *\n * When this is set to `\"press\"`, the `background-color` for the element will\n * become slightly darker while the user:\n * - is holding the mouse down on the element\n * - holding the enter or space key on the element\n * - holding their finger on the element for touch devices\n *\n * The `background-color` will transition in and out based on the pressed state.\n *\n * When this is set to `\"ripple\"`, a water droplet type of animation will appear\n * from the current coordinates of the mouse or touch event within the element.\n * Keyboard events will just trigger the animation from the center of the\n * element. Once the user stops pressing the element, the animation will start\n * to fade out.\n *\n * Note: this should match the `$interaction-mode` SCSS variable.\n *\n * @defaultValue `\"ripple\"`\n * @since 6.0.0\n */\nexport type ElementInteractionMode = \"ripple\" | \"press\" | \"none\";\n\n/** @since 6.0.0 */\nexport interface ElementInteractionHandlers<E extends HTMLElement> {\n onBlur: FocusEventHandler<E>;\n\n /**\n * The click event handler is is only used to display a ripple for\n * `<button type=\"submit\" />` since pressing enter on form elements should\n * submit the form. This ripple is really just to help show that the form has\n * been submitted.\n */\n onClick: MouseEventHandler<E>;\n\n /**\n * The keydown event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation when the `enter` or `space`\n * keys are pressed. It will also trigger a click event for elements that do\n * not support this natively (`<button>`, `<a>`).\n *\n * When the space key is pressed, `event.preventDefault()` will also be called\n * to prevent the page from scrolling.\n */\n onKeyDown: KeyboardEventHandler<E>;\n\n /**\n * The keyup event handler is used to either deactivate the `pressed` state\n * for the element or start the exit animation for the ripple if the ripple\n * was activated by the keydown event.\n */\n onKeyUp: KeyboardEventHandler<E>;\n\n /**\n * The mousedown event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation.\n */\n onMouseDown: MouseEventHandler<E>;\n\n /**\n * The mouseup event handler is used to either deactivate the `pressed` state\n * for the element or start the exit animation for the ripple if the ripple\n * was activated by the mousedown event.\n */\n onMouseUp: MouseEventHandler<E>;\n\n /**\n * The mouseleave event handler will remove all ripples and prevent any other\n * interactions if the current {@link UserInteractionMode} is `\"mouse\"`.\n *\n * The ripples have to be cancelled since the user might release the mouse\n * outside of the element which would never trigger the `onMouseUp` flow.\n */\n onMouseLeave: MouseEventHandler<E>;\n\n /**\n * The dragstart event handler will remove the ripples and prevent any other\n * interactions.\n */\n onDragStart: DragEventHandler<E>;\n\n /**\n * The touchstart event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation.\n */\n onTouchStart: TouchEventHandler<E>;\n\n /**\n * The touchend event handler is used to either deactivate the `pressed`\n * state for the element or start the exit animation for the ripple if the\n * ripple was activated by the touchstart event.\n */\n onTouchEnd: TouchEventHandler<E>;\n\n /**\n * The touchmove event handler will remove all ripples and prevent any other\n * interactions if the current {@link UserInteractionMode} is `\"touch\"`.\n */\n onTouchMove: TouchEventHandler<E>;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleStyle {\n readonly left: number;\n readonly top: number;\n readonly height: number;\n readonly width: number;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleState {\n readonly style: RippleStyle;\n readonly exiting: boolean;\n readonly entered: boolean;\n readonly startTime: number;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type RippleStateList = readonly RippleState[];\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleTransitionCallbacks {\n onEntered(ripple: RippleState): void;\n onExited(ripple: RippleState): void;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ProvidedRippleContainerProps\n extends RippleTransitionCallbacks {\n ripples: RippleStateList;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ElementInteractionState {\n pressed: boolean;\n ripples: RippleStateList;\n}\n"],"names":[],"rangeMappings":";;;","mappings":"AA2KA;;;CAGC,GACD,WAGC"}
1
+ {"version":3,"sources":["../../src/interaction/types.ts"],"sourcesContent":["import type {\n DragEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n TouchEventHandler,\n} from \"react\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-ripple-background-color\"?: string;\n \"--rmd-interaction-background-color\"?: string;\n \"--rmd-hover-background-color\"?: string;\n \"--rmd-focus-background-color\"?: string;\n \"--rmd-press-background-color\"?: string;\n \"--rmd-selected-background-color\"?: string;\n \"--rmd-focus-color\"?: string;\n \"--rmd-focus-width\"?: string | number;\n }\n}\n\n/**\n * This is used to provide feedback to the user that they are interacting with\n * elements on the page. It is recommended to not set this to `\"none\"` unless\n * you will implement your own version.\n *\n * When this is set to `\"press\"`, the `background-color` for the element will\n * become slightly darker while the user:\n * - is holding the mouse down on the element\n * - holding the enter or space key on the element\n * - holding their finger on the element for touch devices\n *\n * The `background-color` will transition in and out based on the pressed state.\n *\n * When this is set to `\"ripple\"`, a water droplet type of animation will appear\n * from the current coordinates of the mouse or touch event within the element.\n * Keyboard events will just trigger the animation from the center of the\n * element. Once the user stops pressing the element, the animation will start\n * to fade out.\n *\n * Note: this should match the `$interaction-mode` SCSS variable.\n *\n * @defaultValue `\"ripple\"`\n * @since 6.0.0\n */\nexport type ElementInteractionMode = \"ripple\" | \"press\" | \"none\";\n\n/** @since 6.0.0 */\nexport interface ElementInteractionHandlers<E extends HTMLElement> {\n onBlur: FocusEventHandler<E>;\n\n /**\n * The click event handler is is only used to display a ripple for\n * `<button type=\"submit\" />` since pressing enter on form elements should\n * submit the form. This ripple is really just to help show that the form has\n * been submitted.\n */\n onClick: MouseEventHandler<E>;\n\n /**\n * The keydown event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation when the `enter` or `space`\n * keys are pressed. It will also trigger a click event for elements that do\n * not support this natively (`<button>`, `<a>`).\n *\n * When the space key is pressed, `event.preventDefault()` will also be called\n * to prevent the page from scrolling.\n */\n onKeyDown: KeyboardEventHandler<E>;\n\n /**\n * The keyup event handler is used to either deactivate the `pressed` state\n * for the element or start the exit animation for the ripple if the ripple\n * was activated by the keydown event.\n */\n onKeyUp: KeyboardEventHandler<E>;\n\n /**\n * The mousedown event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation.\n */\n onMouseDown: MouseEventHandler<E>;\n\n /**\n * The mouseup event handler is used to either deactivate the `pressed` state\n * for the element or start the exit animation for the ripple if the ripple\n * was activated by the mousedown event.\n */\n onMouseUp: MouseEventHandler<E>;\n\n /**\n * The mouseleave event handler will remove all ripples and prevent any other\n * interactions if the current {@link UserInteractionMode} is `\"mouse\"`.\n *\n * The ripples have to be cancelled since the user might release the mouse\n * outside of the element which would never trigger the `onMouseUp` flow.\n */\n onMouseLeave: MouseEventHandler<E>;\n\n /**\n * The dragstart event handler will remove the ripples and prevent any other\n * interactions.\n */\n onDragStart: DragEventHandler<E>;\n\n /**\n * The touchstart event handler is used to either activate the `pressed` state\n * for the element or start the ripple animation.\n */\n onTouchStart: TouchEventHandler<E>;\n\n /**\n * The touchend event handler is used to either deactivate the `pressed`\n * state for the element or start the exit animation for the ripple if the\n * ripple was activated by the touchstart event.\n */\n onTouchEnd: TouchEventHandler<E>;\n\n /**\n * The touchmove event handler will remove all ripples and prevent any other\n * interactions if the current {@link UserInteractionMode} is `\"touch\"`.\n */\n onTouchMove: TouchEventHandler<E>;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleStyle {\n readonly left: number;\n readonly top: number;\n readonly height: number;\n readonly width: number;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleState {\n readonly style: RippleStyle;\n readonly exiting: boolean;\n readonly entered: boolean;\n readonly startTime: number;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type RippleStateList = readonly RippleState[];\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RippleTransitionCallbacks {\n onEntered(ripple: RippleState): void;\n onExited(ripple: RippleState): void;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ProvidedRippleContainerProps\n extends RippleTransitionCallbacks {\n ripples: RippleStateList;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ElementInteractionState {\n pressed: boolean;\n ripples: RippleStateList;\n}\n"],"names":[],"mappings":"AA2KA;;;CAGC,GACD,WAGC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/useElementInteraction.tsx"],"sourcesContent":["\"use client\";\nimport type {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useReducer, useRef } from \"react\";\nimport { RippleContainer } from \"./RippleContainer.js\";\nimport { useUserInteractionMode } from \"./UserInteractionModeProvider.js\";\nimport { INTERACTION_CONFIG } from \"./config.js\";\nimport type {\n ElementInteractionHandlers,\n ElementInteractionState,\n RippleState,\n RippleStyle,\n} from \"./types.js\";\nimport { getRippleStyle, releaseRipple, updateRipplesState } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-surface-inset\"?: string | number;\n \"--rmd-surface-border-radius\"?: string | number;\n }\n}\n\n/** @since 6.0.0 */\nexport const PRESSED_CLASS_NAME = \"rmd-pressed\";\n\n/** @since 6.0.0 */\nexport interface ElementInteractionOptions<E extends HTMLElement>\n extends Partial<ElementInteractionHandlers<E>> {\n /**\n * Boolean if the element is currently disabled which will prevent any of the\n * element interaction states from happening.\n *\n * @defaultValue `false`\n */\n disabled?: boolean;\n}\n\n/** @since 6.0.0 */\nexport interface ElementInteractionHookReturnValue<E extends HTMLElement> {\n /**\n * The event handlers required for element interaction.\n */\n handlers: Readonly<ElementInteractionHandlers<E>>;\n\n /**\n * Boolean if the element is currently pressed. This will always be `false` if\n * the {@link ElementInteractionMode} is set to `\"none\"`\n */\n pressed: boolean;\n\n /**\n * This will be set to {@link PRESSED_CLASS_NAME} only when {@link pressed} is\n * `true` and the {@link ElementInteractionMode} is set to `\"press\"`. It will\n * be `undefined` otherwise.\n */\n pressedClassName: string | undefined;\n\n /**\n * The ripple click/touch interaction. This will be `undefined` when the {@link ElementInteractionMode}\n * is set to `\"none\"` or `\"press\"`.\n */\n ripples?: ReactElement;\n}\n\ntype ElementInteractionAction =\n | { type: \"press\"; style?: RippleStyle; programmatic?: boolean }\n | { type: \"release\" | \"cancel\" }\n | { type: \"entered\" | \"exited\"; ripple: RippleState };\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook is used to apply the required element interaction based on the\n * {@link ElementInteractionMode} and should generally be used internally only.\n *\n * @example Providing Element Interaction\n * ```tsx\n * import { useElementInteraction } from \"@react-md/core\";\n * import { cnb } from \"cnbuilder\";\n * import type { ReactElement } from \"react\";\n *\n * import styles from \"./CustomComponent.module.scss\";\n *\n * interface Props extends HTMLAttributes<HTMLDivElement> {\n * disabled?: boolean;\n * }\n *\n * function CustomComponent(props: Props): ReactElement {\n * const {\n * disabled = false,\n * className,\n * onBlur,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchMove,\n * onTouchEnd,\n * ...remaining,\n * } = props;\n *\n * const { handlers, pressed, ripples } =\n * useElementInteraction({\n * disabled,\n * // pass remaining props so that if any event handlers were provided to\n * // the component, they will be merged with the element interaction\n * // handlers\n * onBlur,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchMove,\n * onTouchEnd,\n * })\n *\n * return (\n * <div\n * {...remaining}\n * {...handlers}\n * aria-disabled={disabled}\n * role=\"button\"\n * className={cnb(styles.button, pressed && styles.pressed)}\n * tabIndex={disabled ? undefined : 0}\n * >\n * {children}\n * {ripples}\n * </div>\n * );\n * }\n * ```\n *\n * @param options - An object of {@link ElementInteractionOptions} that is used\n * to merge event handlers or disable the interactions.\n * @returns the {@link ElementInteractionHookReturnValue}\n * @since 6.0.0 Touch interactions were removed since it never looked\n * good if the user touched a clickable element right before scrolling. The\n * ripple effect will only be fired on click now for touch devices.\n */\nexport function useElementInteraction<E extends HTMLElement>(\n options: ElementInteractionOptions<E> = {}\n): ElementInteractionHookReturnValue<E> {\n const {\n onBlur = noop,\n onClick = noop,\n onMouseDown = noop,\n onMouseUp = noop,\n onMouseLeave = noop,\n onKeyUp = noop,\n onKeyDown = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onTouchMove = noop,\n onDragStart = noop,\n disabled = false,\n } = options;\n\n const { mode } = INTERACTION_CONFIG;\n\n const holding = useRef(false);\n const disableClick = useRef(false);\n const userMode = useUserInteractionMode();\n const isInteractionDisabled = disabled || mode === \"none\";\n const [state, dispatch] = useReducer(\n function reducer(\n state: ElementInteractionState,\n action: ElementInteractionAction\n ): ElementInteractionState {\n switch (action.type) {\n case \"press\": {\n const { style } = action;\n let { ripples } = state;\n if (style) {\n ripples = [\n ...ripples,\n {\n style,\n entered: false,\n exiting: false,\n startTime: Date.now(),\n },\n ];\n }\n\n return {\n pressed: true,\n ripples,\n };\n }\n case \"cancel\":\n // Note: unlike previous react-md versions, this will immediately\n // remove ALL ripple effects instead of trying to fade out. this seems\n // much nicer for touch devices when they are trying to scroll\n return {\n pressed: false,\n ripples: [],\n };\n case \"release\": {\n if (mode === \"press\") {\n return { ...state, pressed: false };\n }\n\n return releaseRipple(state);\n }\n case \"entered\":\n return updateRipplesState({\n type: \"entered\",\n state,\n ripple: action.ripple,\n holding: holding.current,\n });\n case \"exited\":\n return updateRipplesState({\n type: \"exited\",\n state,\n ripple: action.ripple,\n holding: holding.current,\n });\n\n default:\n return state;\n }\n },\n { pressed: false, ripples: [] }\n );\n const { pressed } = state;\n\n let ripples: ReactElement | undefined;\n if (mode == \"ripple\") {\n ripples = (\n <RippleContainer\n ripples={state.ripples}\n onEntered={(ripple) => {\n dispatch({ type: \"entered\", ripple });\n }}\n onExited={(ripple) => {\n dispatch({ type: \"exited\", ripple });\n }}\n />\n );\n }\n\n return {\n pressed,\n pressedClassName:\n pressed && mode === \"press\" ? PRESSED_CLASS_NAME : undefined,\n ripples,\n handlers: {\n onBlur: useCallback(\n (event: FocusEvent<E>) => {\n onBlur(event);\n if (holding.current) {\n holding.current = false;\n dispatch({ type: \"release\" });\n }\n },\n [onBlur]\n ),\n onClick: useCallback(\n (event: MouseEvent<E>) => {\n if (disabled) {\n return;\n }\n\n onClick(event);\n if (\n event.isPropagationStopped() ||\n userMode === \"touch\" ||\n mode !== \"ripple\" ||\n disableClick.current ||\n holding.current ||\n document.activeElement === event.currentTarget\n ) {\n disableClick.current = false;\n return;\n }\n\n dispatch({\n type: \"press\",\n style: getRippleStyle(event, true),\n });\n },\n [disabled, mode, onClick, userMode]\n ),\n onMouseDown: useCallback(\n (event: MouseEvent<E>) => {\n onMouseDown(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"mouse\" ||\n event.shiftKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.button !== 0\n ) {\n return;\n }\n\n // prevent text selection on double click\n // https://stackoverflow.com/a/43321596\n if (event.detail > 1) {\n event.preventDefault();\n }\n\n holding.current = true;\n disableClick.current = true;\n let style: RippleStyle | undefined;\n if (mode === \"ripple\") {\n style = getRippleStyle(event, false);\n }\n\n dispatch({ type: \"press\", style });\n },\n [onMouseDown, isInteractionDisabled, userMode, mode]\n ),\n onMouseUp: useCallback(\n (event: MouseEvent<E>) => {\n onMouseUp(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onMouseUp]\n ),\n onMouseLeave: useCallback(\n (event: MouseEvent<E>) => {\n onMouseLeave(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"mouse\" ||\n !holding.current\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n [isInteractionDisabled, onMouseLeave, userMode]\n ),\n onDragStart(event) {\n onDragStart(event);\n if (\n event.isPropagationStopped() ||\n !holding.current ||\n userMode !== \"mouse\"\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n onKeyDown: useCallback(\n (event: KeyboardEvent<E>) => {\n onKeyDown(event);\n const { key } = event;\n const { tagName } = event.currentTarget;\n\n if (\n event.isPropagationStopped() ||\n userMode !== \"keyboard\" ||\n disabled ||\n (key !== \" \" && key !== \"Enter\") ||\n // links do not support clicking on space\n (key === \" \" && tagName === \"A\") ||\n // inputs submit a form instead of clicking on enter\n (key === \"Enter\" && tagName === \"INPUT\")\n ) {\n return;\n }\n\n // stop propagation since we're starting to do custom event behavior\n // to click the element for everything except elements that the\n // browser clicks natively\n event.stopPropagation();\n\n if (tagName !== \"BUTTON\" && tagName !== \"A\") {\n if (key === \" \") {\n // prevent the pager from scrolling\n event.preventDefault();\n }\n\n event.currentTarget.click();\n }\n\n if (holding.current || isInteractionDisabled) {\n return;\n }\n\n holding.current = true;\n dispatch({ type: \"press\", style: getRippleStyle(event, false) });\n },\n [disabled, isInteractionDisabled, onKeyDown, userMode]\n ),\n onKeyUp: useCallback(\n (event: KeyboardEvent<E>) => {\n onKeyUp(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"keyboard\" ||\n !holding.current\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onKeyUp, userMode]\n ),\n onTouchStart: useCallback(\n (event: TouchEvent<E>) => {\n onTouchStart(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = true;\n let style: RippleStyle | undefined;\n if (mode === \"ripple\") {\n style = getRippleStyle(event, false);\n }\n\n dispatch({ type: \"press\", style });\n },\n [mode, isInteractionDisabled, onTouchStart]\n ),\n onTouchEnd: useCallback(\n (event: TouchEvent<E>) => {\n onTouchEnd(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onTouchEnd]\n ),\n onTouchMove: useCallback(\n (event: TouchEvent<E>) => {\n onTouchMove(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n [isInteractionDisabled, onTouchMove]\n ),\n },\n };\n}\n"],"names":["useCallback","useReducer","useRef","RippleContainer","useUserInteractionMode","INTERACTION_CONFIG","getRippleStyle","releaseRipple","updateRipplesState","PRESSED_CLASS_NAME","noop","useElementInteraction","options","onBlur","onClick","onMouseDown","onMouseUp","onMouseLeave","onKeyUp","onKeyDown","onTouchStart","onTouchEnd","onTouchMove","onDragStart","disabled","mode","holding","disableClick","userMode","isInteractionDisabled","state","dispatch","reducer","action","type","style","ripples","entered","exiting","startTime","Date","now","pressed","ripple","current","onEntered","onExited","pressedClassName","undefined","handlers","event","isPropagationStopped","document","activeElement","currentTarget","shiftKey","ctrlKey","metaKey","altKey","button","detail","preventDefault","key","tagName","stopPropagation","click"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAQA,SAASA,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,QAAQ;AACxD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E,SAASC,kBAAkB,QAAQ,cAAc;AAOjD,SAASC,cAAc,EAAEC,aAAa,EAAEC,kBAAkB,QAAQ,aAAa;AAS/E,iBAAiB,GACjB,OAAO,MAAMC,qBAAqB,cAAc;AA8ChD,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEC,GACD,OAAO,SAASC,sBACdC,UAAwC,CAAC,CAAC;IAE1C,MAAM,EACJC,SAASH,IAAI,EACbI,UAAUJ,IAAI,EACdK,cAAcL,IAAI,EAClBM,YAAYN,IAAI,EAChBO,eAAeP,IAAI,EACnBQ,UAAUR,IAAI,EACdS,YAAYT,IAAI,EAChBU,eAAeV,IAAI,EACnBW,aAAaX,IAAI,EACjBY,cAAcZ,IAAI,EAClBa,cAAcb,IAAI,EAClBc,WAAW,KAAK,EACjB,GAAGZ;IAEJ,MAAM,EAAEa,IAAI,EAAE,GAAGpB;IAEjB,MAAMqB,UAAUxB,OAAO;IACvB,MAAMyB,eAAezB,OAAO;IAC5B,MAAM0B,WAAWxB;IACjB,MAAMyB,wBAAwBL,YAAYC,SAAS;IACnD,MAAM,CAACK,OAAOC,SAAS,GAAG9B,WACxB,SAAS+B,QACPF,KAA8B,EAC9BG,MAAgC;QAEhC,OAAQA,OAAOC,IAAI;YACjB,KAAK;gBAAS;oBACZ,MAAM,EAAEC,KAAK,EAAE,GAAGF;oBAClB,IAAI,EAAEG,OAAO,EAAE,GAAGN;oBAClB,IAAIK,OAAO;wBACTC,UAAU;+BACLA;4BACH;gCACED;gCACAE,SAAS;gCACTC,SAAS;gCACTC,WAAWC,KAAKC,GAAG;4BACrB;yBACD;oBACH;oBAEA,OAAO;wBACLC,SAAS;wBACTN;oBACF;gBACF;YACA,KAAK;gBACH,iEAAiE;gBACjE,sEAAsE;gBACtE,8DAA8D;gBAC9D,OAAO;oBACLM,SAAS;oBACTN,SAAS,EAAE;gBACb;YACF,KAAK;gBAAW;oBACd,IAAIX,SAAS,SAAS;wBACpB,OAAO;4BAAE,GAAGK,KAAK;4BAAEY,SAAS;wBAAM;oBACpC;oBAEA,OAAOnC,cAAcuB;gBACvB;YACA,KAAK;gBACH,OAAOtB,mBAAmB;oBACxB0B,MAAM;oBACNJ;oBACAa,QAAQV,OAAOU,MAAM;oBACrBjB,SAASA,QAAQkB,OAAO;gBAC1B;YACF,KAAK;gBACH,OAAOpC,mBAAmB;oBACxB0B,MAAM;oBACNJ;oBACAa,QAAQV,OAAOU,MAAM;oBACrBjB,SAASA,QAAQkB,OAAO;gBAC1B;YAEF;gBACE,OAAOd;QACX;IACF,GACA;QAAEY,SAAS;QAAON,SAAS,EAAE;IAAC;IAEhC,MAAM,EAAEM,OAAO,EAAE,GAAGZ;IAEpB,IAAIM;IACJ,IAAIX,QAAQ,UAAU;QACpBW,wBACE,KAACjC;YACCiC,SAASN,MAAMM,OAAO;YACtBS,WAAW,CAACF;gBACVZ,SAAS;oBAAEG,MAAM;oBAAWS;gBAAO;YACrC;YACAG,UAAU,CAACH;gBACTZ,SAAS;oBAAEG,MAAM;oBAAUS;gBAAO;YACpC;;IAGN;IAEA,OAAO;QACLD;QACAK,kBACEL,WAAWjB,SAAS,UAAUhB,qBAAqBuC;QACrDZ;QACAa,UAAU;YACRpC,QAAQb,YACN,CAACkD;gBACCrC,OAAOqC;gBACP,IAAIxB,QAAQkB,OAAO,EAAE;oBACnBlB,QAAQkB,OAAO,GAAG;oBAClBb,SAAS;wBAAEG,MAAM;oBAAU;gBAC7B;YACF,GACA;gBAACrB;aAAO;YAEVC,SAASd,YACP,CAACkD;gBACC,IAAI1B,UAAU;oBACZ;gBACF;gBAEAV,QAAQoC;gBACR,IACEA,MAAMC,oBAAoB,MAC1BvB,aAAa,WACbH,SAAS,YACTE,aAAaiB,OAAO,IACpBlB,QAAQkB,OAAO,IACfQ,SAASC,aAAa,KAAKH,MAAMI,aAAa,EAC9C;oBACA3B,aAAaiB,OAAO,GAAG;oBACvB;gBACF;gBAEAb,SAAS;oBACPG,MAAM;oBACNC,OAAO7B,eAAe4C,OAAO;gBAC/B;YACF,GACA;gBAAC1B;gBAAUC;gBAAMX;gBAASc;aAAS;YAErCb,aAAaf,YACX,CAACkD;gBACCnC,YAAYmC;gBACZ,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,WACbsB,MAAMK,QAAQ,IACdL,MAAMM,OAAO,IACbN,MAAMO,OAAO,IACbP,MAAMQ,MAAM,IACZR,MAAMS,MAAM,KAAK,GACjB;oBACA;gBACF;gBAEA,yCAAyC;gBACzC,uCAAuC;gBACvC,IAAIT,MAAMU,MAAM,GAAG,GAAG;oBACpBV,MAAMW,cAAc;gBACtB;gBAEAnC,QAAQkB,OAAO,GAAG;gBAClBjB,aAAaiB,OAAO,GAAG;gBACvB,IAAIT;gBACJ,IAAIV,SAAS,UAAU;oBACrBU,QAAQ7B,eAAe4C,OAAO;gBAChC;gBAEAnB,SAAS;oBAAEG,MAAM;oBAASC;gBAAM;YAClC,GACA;gBAACpB;gBAAac;gBAAuBD;gBAAUH;aAAK;YAEtDT,WAAWhB,YACT,CAACkD;gBACClC,UAAUkC;gBACV,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBb;aAAU;YAEpCC,cAAcjB,YACZ,CAACkD;gBACCjC,aAAaiC;gBACb,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,WACb,CAACF,QAAQkB,OAAO,EAChB;oBACA;gBACF;gBAEAlB,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B,GACA;gBAACL;gBAAuBZ;gBAAcW;aAAS;YAEjDL,aAAY2B,KAAK;gBACf3B,YAAY2B;gBACZ,IACEA,MAAMC,oBAAoB,MAC1B,CAACzB,QAAQkB,OAAO,IAChBhB,aAAa,SACb;oBACA;gBACF;gBAEAF,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B;YACAf,WAAWnB,YACT,CAACkD;gBACC/B,UAAU+B;gBACV,MAAM,EAAEY,GAAG,EAAE,GAAGZ;gBAChB,MAAM,EAAEa,OAAO,EAAE,GAAGb,MAAMI,aAAa;gBAEvC,IACEJ,MAAMC,oBAAoB,MAC1BvB,aAAa,cACbJ,YACCsC,QAAQ,OAAOA,QAAQ,WACxB,yCAAyC;gBACxCA,QAAQ,OAAOC,YAAY,OAC5B,oDAAoD;gBACnDD,QAAQ,WAAWC,YAAY,SAChC;oBACA;gBACF;gBAEA,oEAAoE;gBACpE,+DAA+D;gBAC/D,0BAA0B;gBAC1Bb,MAAMc,eAAe;gBAErB,IAAID,YAAY,YAAYA,YAAY,KAAK;oBAC3C,IAAID,QAAQ,KAAK;wBACf,mCAAmC;wBACnCZ,MAAMW,cAAc;oBACtB;oBAEAX,MAAMI,aAAa,CAACW,KAAK;gBAC3B;gBAEA,IAAIvC,QAAQkB,OAAO,IAAIf,uBAAuB;oBAC5C;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;oBAASC,OAAO7B,eAAe4C,OAAO;gBAAO;YAChE,GACA;gBAAC1B;gBAAUK;gBAAuBV;gBAAWS;aAAS;YAExDV,SAASlB,YACP,CAACkD;gBACChC,QAAQgC;gBACR,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,cACb,CAACF,QAAQkB,OAAO,EAChB;oBACA;gBACF;gBAEAlB,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBX;gBAASU;aAAS;YAE5CR,cAAcpB,YACZ,CAACkD;gBACC9B,aAAa8B;gBACb,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClB,IAAIT;gBACJ,IAAIV,SAAS,UAAU;oBACrBU,QAAQ7B,eAAe4C,OAAO;gBAChC;gBAEAnB,SAAS;oBAAEG,MAAM;oBAASC;gBAAM;YAClC,GACA;gBAACV;gBAAMI;gBAAuBT;aAAa;YAE7CC,YAAYrB,YACV,CAACkD;gBACC7B,WAAW6B;gBACX,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBR;aAAW;YAErCC,aAAatB,YACX,CAACkD;gBACC5B,YAAY4B;gBACZ,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B,GACA;gBAACL;gBAAuBP;aAAY;QAExC;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/interaction/useElementInteraction.tsx"],"sourcesContent":["\"use client\";\nimport type {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useReducer, useRef } from \"react\";\nimport { RippleContainer } from \"./RippleContainer.js\";\nimport { useUserInteractionMode } from \"./UserInteractionModeProvider.js\";\nimport { INTERACTION_CONFIG } from \"./config.js\";\nimport type {\n ElementInteractionHandlers,\n ElementInteractionState,\n RippleState,\n RippleStyle,\n} from \"./types.js\";\nimport { getRippleStyle, releaseRipple, updateRipplesState } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-surface-inset\"?: string | number;\n \"--rmd-surface-border-radius\"?: string | number;\n }\n}\n\n/** @since 6.0.0 */\nexport const PRESSED_CLASS_NAME = \"rmd-pressed\";\n\n/** @since 6.0.0 */\nexport interface ElementInteractionOptions<E extends HTMLElement>\n extends Partial<ElementInteractionHandlers<E>> {\n /**\n * Boolean if the element is currently disabled which will prevent any of the\n * element interaction states from happening.\n *\n * @defaultValue `false`\n */\n disabled?: boolean;\n}\n\n/** @since 6.0.0 */\nexport interface ElementInteractionHookReturnValue<E extends HTMLElement> {\n /**\n * The event handlers required for element interaction.\n */\n handlers: Readonly<ElementInteractionHandlers<E>>;\n\n /**\n * Boolean if the element is currently pressed. This will always be `false` if\n * the {@link ElementInteractionMode} is set to `\"none\"`\n */\n pressed: boolean;\n\n /**\n * This will be set to {@link PRESSED_CLASS_NAME} only when {@link pressed} is\n * `true` and the {@link ElementInteractionMode} is set to `\"press\"`. It will\n * be `undefined` otherwise.\n */\n pressedClassName: string | undefined;\n\n /**\n * The ripple click/touch interaction. This will be `undefined` when the {@link ElementInteractionMode}\n * is set to `\"none\"` or `\"press\"`.\n */\n ripples?: ReactElement;\n}\n\ntype ElementInteractionAction =\n | { type: \"press\"; style?: RippleStyle; programmatic?: boolean }\n | { type: \"release\" | \"cancel\" }\n | { type: \"entered\" | \"exited\"; ripple: RippleState };\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook is used to apply the required element interaction based on the\n * {@link ElementInteractionMode} and should generally be used internally only.\n *\n * @example Providing Element Interaction\n * ```tsx\n * import { useElementInteraction } from \"@react-md/core\";\n * import { cnb } from \"cnbuilder\";\n * import type { ReactElement } from \"react\";\n *\n * import styles from \"./CustomComponent.module.scss\";\n *\n * interface Props extends HTMLAttributes<HTMLDivElement> {\n * disabled?: boolean;\n * }\n *\n * function CustomComponent(props: Props): ReactElement {\n * const {\n * disabled = false,\n * className,\n * onBlur,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchMove,\n * onTouchEnd,\n * ...remaining,\n * } = props;\n *\n * const { handlers, pressed, ripples } =\n * useElementInteraction({\n * disabled,\n * // pass remaining props so that if any event handlers were provided to\n * // the component, they will be merged with the element interaction\n * // handlers\n * onBlur,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchMove,\n * onTouchEnd,\n * })\n *\n * return (\n * <div\n * {...remaining}\n * {...handlers}\n * aria-disabled={disabled}\n * role=\"button\"\n * className={cnb(styles.button, pressed && styles.pressed)}\n * tabIndex={disabled ? undefined : 0}\n * >\n * {children}\n * {ripples}\n * </div>\n * );\n * }\n * ```\n *\n * @param options - An object of {@link ElementInteractionOptions} that is used\n * to merge event handlers or disable the interactions.\n * @returns the {@link ElementInteractionHookReturnValue}\n * @since 6.0.0 Touch interactions were removed since it never looked\n * good if the user touched a clickable element right before scrolling. The\n * ripple effect will only be fired on click now for touch devices.\n */\nexport function useElementInteraction<E extends HTMLElement>(\n options: ElementInteractionOptions<E> = {}\n): ElementInteractionHookReturnValue<E> {\n const {\n onBlur = noop,\n onClick = noop,\n onMouseDown = noop,\n onMouseUp = noop,\n onMouseLeave = noop,\n onKeyUp = noop,\n onKeyDown = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onTouchMove = noop,\n onDragStart = noop,\n disabled = false,\n } = options;\n\n const { mode } = INTERACTION_CONFIG;\n\n const holding = useRef(false);\n const disableClick = useRef(false);\n const userMode = useUserInteractionMode();\n const isInteractionDisabled = disabled || mode === \"none\";\n const [state, dispatch] = useReducer(\n function reducer(\n state: ElementInteractionState,\n action: ElementInteractionAction\n ): ElementInteractionState {\n switch (action.type) {\n case \"press\": {\n const { style } = action;\n let { ripples } = state;\n if (style) {\n ripples = [\n ...ripples,\n {\n style,\n entered: false,\n exiting: false,\n startTime: Date.now(),\n },\n ];\n }\n\n return {\n pressed: true,\n ripples,\n };\n }\n case \"cancel\":\n // Note: unlike previous react-md versions, this will immediately\n // remove ALL ripple effects instead of trying to fade out. this seems\n // much nicer for touch devices when they are trying to scroll\n return {\n pressed: false,\n ripples: [],\n };\n case \"release\": {\n if (mode === \"press\") {\n return { ...state, pressed: false };\n }\n\n return releaseRipple(state);\n }\n case \"entered\":\n return updateRipplesState({\n type: \"entered\",\n state,\n ripple: action.ripple,\n holding: holding.current,\n });\n case \"exited\":\n return updateRipplesState({\n type: \"exited\",\n state,\n ripple: action.ripple,\n holding: holding.current,\n });\n\n default:\n return state;\n }\n },\n { pressed: false, ripples: [] }\n );\n const { pressed } = state;\n\n let ripples: ReactElement | undefined;\n if (mode == \"ripple\") {\n ripples = (\n <RippleContainer\n ripples={state.ripples}\n onEntered={(ripple) => {\n dispatch({ type: \"entered\", ripple });\n }}\n onExited={(ripple) => {\n dispatch({ type: \"exited\", ripple });\n }}\n />\n );\n }\n\n return {\n pressed,\n pressedClassName:\n pressed && mode === \"press\" ? PRESSED_CLASS_NAME : undefined,\n ripples,\n handlers: {\n onBlur: useCallback(\n (event: FocusEvent<E>) => {\n onBlur(event);\n if (holding.current) {\n holding.current = false;\n dispatch({ type: \"release\" });\n }\n },\n [onBlur]\n ),\n onClick: useCallback(\n (event: MouseEvent<E>) => {\n if (disabled) {\n return;\n }\n\n onClick(event);\n if (\n event.isPropagationStopped() ||\n userMode === \"touch\" ||\n mode !== \"ripple\" ||\n disableClick.current ||\n holding.current ||\n document.activeElement === event.currentTarget\n ) {\n disableClick.current = false;\n return;\n }\n\n dispatch({\n type: \"press\",\n style: getRippleStyle(event, true),\n });\n },\n [disabled, mode, onClick, userMode]\n ),\n onMouseDown: useCallback(\n (event: MouseEvent<E>) => {\n onMouseDown(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"mouse\" ||\n event.shiftKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.button !== 0\n ) {\n return;\n }\n\n // prevent text selection on double click\n // https://stackoverflow.com/a/43321596\n if (event.detail > 1) {\n event.preventDefault();\n }\n\n holding.current = true;\n disableClick.current = true;\n let style: RippleStyle | undefined;\n if (mode === \"ripple\") {\n style = getRippleStyle(event, false);\n }\n\n dispatch({ type: \"press\", style });\n },\n [onMouseDown, isInteractionDisabled, userMode, mode]\n ),\n onMouseUp: useCallback(\n (event: MouseEvent<E>) => {\n onMouseUp(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onMouseUp]\n ),\n onMouseLeave: useCallback(\n (event: MouseEvent<E>) => {\n onMouseLeave(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"mouse\" ||\n !holding.current\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n [isInteractionDisabled, onMouseLeave, userMode]\n ),\n onDragStart(event) {\n onDragStart(event);\n if (\n event.isPropagationStopped() ||\n !holding.current ||\n userMode !== \"mouse\"\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n onKeyDown: useCallback(\n (event: KeyboardEvent<E>) => {\n onKeyDown(event);\n const { key } = event;\n const { tagName } = event.currentTarget;\n\n if (\n event.isPropagationStopped() ||\n userMode !== \"keyboard\" ||\n disabled ||\n (key !== \" \" && key !== \"Enter\") ||\n // links do not support clicking on space\n (key === \" \" && tagName === \"A\") ||\n // inputs submit a form instead of clicking on enter\n (key === \"Enter\" && tagName === \"INPUT\")\n ) {\n return;\n }\n\n // stop propagation since we're starting to do custom event behavior\n // to click the element for everything except elements that the\n // browser clicks natively\n event.stopPropagation();\n\n if (tagName !== \"BUTTON\" && tagName !== \"A\") {\n if (key === \" \") {\n // prevent the pager from scrolling\n event.preventDefault();\n }\n\n event.currentTarget.click();\n }\n\n if (holding.current || isInteractionDisabled) {\n return;\n }\n\n holding.current = true;\n dispatch({ type: \"press\", style: getRippleStyle(event, false) });\n },\n [disabled, isInteractionDisabled, onKeyDown, userMode]\n ),\n onKeyUp: useCallback(\n (event: KeyboardEvent<E>) => {\n onKeyUp(event);\n if (\n event.isPropagationStopped() ||\n isInteractionDisabled ||\n userMode !== \"keyboard\" ||\n !holding.current\n ) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onKeyUp, userMode]\n ),\n onTouchStart: useCallback(\n (event: TouchEvent<E>) => {\n onTouchStart(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = true;\n let style: RippleStyle | undefined;\n if (mode === \"ripple\") {\n style = getRippleStyle(event, false);\n }\n\n dispatch({ type: \"press\", style });\n },\n [mode, isInteractionDisabled, onTouchStart]\n ),\n onTouchEnd: useCallback(\n (event: TouchEvent<E>) => {\n onTouchEnd(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"release\" });\n },\n [isInteractionDisabled, onTouchEnd]\n ),\n onTouchMove: useCallback(\n (event: TouchEvent<E>) => {\n onTouchMove(event);\n if (event.isPropagationStopped() || isInteractionDisabled) {\n return;\n }\n\n holding.current = false;\n dispatch({ type: \"cancel\" });\n },\n [isInteractionDisabled, onTouchMove]\n ),\n },\n };\n}\n"],"names":["useCallback","useReducer","useRef","RippleContainer","useUserInteractionMode","INTERACTION_CONFIG","getRippleStyle","releaseRipple","updateRipplesState","PRESSED_CLASS_NAME","noop","useElementInteraction","options","onBlur","onClick","onMouseDown","onMouseUp","onMouseLeave","onKeyUp","onKeyDown","onTouchStart","onTouchEnd","onTouchMove","onDragStart","disabled","mode","holding","disableClick","userMode","isInteractionDisabled","state","dispatch","reducer","action","type","style","ripples","entered","exiting","startTime","Date","now","pressed","ripple","current","onEntered","onExited","pressedClassName","undefined","handlers","event","isPropagationStopped","document","activeElement","currentTarget","shiftKey","ctrlKey","metaKey","altKey","button","detail","preventDefault","key","tagName","stopPropagation","click"],"mappings":"AAAA;;AAQA,SAASA,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,QAAQ;AACxD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E,SAASC,kBAAkB,QAAQ,cAAc;AAOjD,SAASC,cAAc,EAAEC,aAAa,EAAEC,kBAAkB,QAAQ,aAAa;AAS/E,iBAAiB,GACjB,OAAO,MAAMC,qBAAqB,cAAc;AA8ChD,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEC,GACD,OAAO,SAASC,sBACdC,UAAwC,CAAC,CAAC;IAE1C,MAAM,EACJC,SAASH,IAAI,EACbI,UAAUJ,IAAI,EACdK,cAAcL,IAAI,EAClBM,YAAYN,IAAI,EAChBO,eAAeP,IAAI,EACnBQ,UAAUR,IAAI,EACdS,YAAYT,IAAI,EAChBU,eAAeV,IAAI,EACnBW,aAAaX,IAAI,EACjBY,cAAcZ,IAAI,EAClBa,cAAcb,IAAI,EAClBc,WAAW,KAAK,EACjB,GAAGZ;IAEJ,MAAM,EAAEa,IAAI,EAAE,GAAGpB;IAEjB,MAAMqB,UAAUxB,OAAO;IACvB,MAAMyB,eAAezB,OAAO;IAC5B,MAAM0B,WAAWxB;IACjB,MAAMyB,wBAAwBL,YAAYC,SAAS;IACnD,MAAM,CAACK,OAAOC,SAAS,GAAG9B,WACxB,SAAS+B,QACPF,KAA8B,EAC9BG,MAAgC;QAEhC,OAAQA,OAAOC,IAAI;YACjB,KAAK;gBAAS;oBACZ,MAAM,EAAEC,KAAK,EAAE,GAAGF;oBAClB,IAAI,EAAEG,OAAO,EAAE,GAAGN;oBAClB,IAAIK,OAAO;wBACTC,UAAU;+BACLA;4BACH;gCACED;gCACAE,SAAS;gCACTC,SAAS;gCACTC,WAAWC,KAAKC,GAAG;4BACrB;yBACD;oBACH;oBAEA,OAAO;wBACLC,SAAS;wBACTN;oBACF;gBACF;YACA,KAAK;gBACH,iEAAiE;gBACjE,sEAAsE;gBACtE,8DAA8D;gBAC9D,OAAO;oBACLM,SAAS;oBACTN,SAAS,EAAE;gBACb;YACF,KAAK;gBAAW;oBACd,IAAIX,SAAS,SAAS;wBACpB,OAAO;4BAAE,GAAGK,KAAK;4BAAEY,SAAS;wBAAM;oBACpC;oBAEA,OAAOnC,cAAcuB;gBACvB;YACA,KAAK;gBACH,OAAOtB,mBAAmB;oBACxB0B,MAAM;oBACNJ;oBACAa,QAAQV,OAAOU,MAAM;oBACrBjB,SAASA,QAAQkB,OAAO;gBAC1B;YACF,KAAK;gBACH,OAAOpC,mBAAmB;oBACxB0B,MAAM;oBACNJ;oBACAa,QAAQV,OAAOU,MAAM;oBACrBjB,SAASA,QAAQkB,OAAO;gBAC1B;YAEF;gBACE,OAAOd;QACX;IACF,GACA;QAAEY,SAAS;QAAON,SAAS,EAAE;IAAC;IAEhC,MAAM,EAAEM,OAAO,EAAE,GAAGZ;IAEpB,IAAIM;IACJ,IAAIX,QAAQ,UAAU;QACpBW,wBACE,KAACjC;YACCiC,SAASN,MAAMM,OAAO;YACtBS,WAAW,CAACF;gBACVZ,SAAS;oBAAEG,MAAM;oBAAWS;gBAAO;YACrC;YACAG,UAAU,CAACH;gBACTZ,SAAS;oBAAEG,MAAM;oBAAUS;gBAAO;YACpC;;IAGN;IAEA,OAAO;QACLD;QACAK,kBACEL,WAAWjB,SAAS,UAAUhB,qBAAqBuC;QACrDZ;QACAa,UAAU;YACRpC,QAAQb,YACN,CAACkD;gBACCrC,OAAOqC;gBACP,IAAIxB,QAAQkB,OAAO,EAAE;oBACnBlB,QAAQkB,OAAO,GAAG;oBAClBb,SAAS;wBAAEG,MAAM;oBAAU;gBAC7B;YACF,GACA;gBAACrB;aAAO;YAEVC,SAASd,YACP,CAACkD;gBACC,IAAI1B,UAAU;oBACZ;gBACF;gBAEAV,QAAQoC;gBACR,IACEA,MAAMC,oBAAoB,MAC1BvB,aAAa,WACbH,SAAS,YACTE,aAAaiB,OAAO,IACpBlB,QAAQkB,OAAO,IACfQ,SAASC,aAAa,KAAKH,MAAMI,aAAa,EAC9C;oBACA3B,aAAaiB,OAAO,GAAG;oBACvB;gBACF;gBAEAb,SAAS;oBACPG,MAAM;oBACNC,OAAO7B,eAAe4C,OAAO;gBAC/B;YACF,GACA;gBAAC1B;gBAAUC;gBAAMX;gBAASc;aAAS;YAErCb,aAAaf,YACX,CAACkD;gBACCnC,YAAYmC;gBACZ,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,WACbsB,MAAMK,QAAQ,IACdL,MAAMM,OAAO,IACbN,MAAMO,OAAO,IACbP,MAAMQ,MAAM,IACZR,MAAMS,MAAM,KAAK,GACjB;oBACA;gBACF;gBAEA,yCAAyC;gBACzC,uCAAuC;gBACvC,IAAIT,MAAMU,MAAM,GAAG,GAAG;oBACpBV,MAAMW,cAAc;gBACtB;gBAEAnC,QAAQkB,OAAO,GAAG;gBAClBjB,aAAaiB,OAAO,GAAG;gBACvB,IAAIT;gBACJ,IAAIV,SAAS,UAAU;oBACrBU,QAAQ7B,eAAe4C,OAAO;gBAChC;gBAEAnB,SAAS;oBAAEG,MAAM;oBAASC;gBAAM;YAClC,GACA;gBAACpB;gBAAac;gBAAuBD;gBAAUH;aAAK;YAEtDT,WAAWhB,YACT,CAACkD;gBACClC,UAAUkC;gBACV,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBb;aAAU;YAEpCC,cAAcjB,YACZ,CAACkD;gBACCjC,aAAaiC;gBACb,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,WACb,CAACF,QAAQkB,OAAO,EAChB;oBACA;gBACF;gBAEAlB,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B,GACA;gBAACL;gBAAuBZ;gBAAcW;aAAS;YAEjDL,aAAY2B,KAAK;gBACf3B,YAAY2B;gBACZ,IACEA,MAAMC,oBAAoB,MAC1B,CAACzB,QAAQkB,OAAO,IAChBhB,aAAa,SACb;oBACA;gBACF;gBAEAF,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B;YACAf,WAAWnB,YACT,CAACkD;gBACC/B,UAAU+B;gBACV,MAAM,EAAEY,GAAG,EAAE,GAAGZ;gBAChB,MAAM,EAAEa,OAAO,EAAE,GAAGb,MAAMI,aAAa;gBAEvC,IACEJ,MAAMC,oBAAoB,MAC1BvB,aAAa,cACbJ,YACCsC,QAAQ,OAAOA,QAAQ,WACxB,yCAAyC;gBACxCA,QAAQ,OAAOC,YAAY,OAC5B,oDAAoD;gBACnDD,QAAQ,WAAWC,YAAY,SAChC;oBACA;gBACF;gBAEA,oEAAoE;gBACpE,+DAA+D;gBAC/D,0BAA0B;gBAC1Bb,MAAMc,eAAe;gBAErB,IAAID,YAAY,YAAYA,YAAY,KAAK;oBAC3C,IAAID,QAAQ,KAAK;wBACf,mCAAmC;wBACnCZ,MAAMW,cAAc;oBACtB;oBAEAX,MAAMI,aAAa,CAACW,KAAK;gBAC3B;gBAEA,IAAIvC,QAAQkB,OAAO,IAAIf,uBAAuB;oBAC5C;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;oBAASC,OAAO7B,eAAe4C,OAAO;gBAAO;YAChE,GACA;gBAAC1B;gBAAUK;gBAAuBV;gBAAWS;aAAS;YAExDV,SAASlB,YACP,CAACkD;gBACChC,QAAQgC;gBACR,IACEA,MAAMC,oBAAoB,MAC1BtB,yBACAD,aAAa,cACb,CAACF,QAAQkB,OAAO,EAChB;oBACA;gBACF;gBAEAlB,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBX;gBAASU;aAAS;YAE5CR,cAAcpB,YACZ,CAACkD;gBACC9B,aAAa8B;gBACb,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClB,IAAIT;gBACJ,IAAIV,SAAS,UAAU;oBACrBU,QAAQ7B,eAAe4C,OAAO;gBAChC;gBAEAnB,SAAS;oBAAEG,MAAM;oBAASC;gBAAM;YAClC,GACA;gBAACV;gBAAMI;gBAAuBT;aAAa;YAE7CC,YAAYrB,YACV,CAACkD;gBACC7B,WAAW6B;gBACX,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAU;YAC7B,GACA;gBAACL;gBAAuBR;aAAW;YAErCC,aAAatB,YACX,CAACkD;gBACC5B,YAAY4B;gBACZ,IAAIA,MAAMC,oBAAoB,MAAMtB,uBAAuB;oBACzD;gBACF;gBAEAH,QAAQkB,OAAO,GAAG;gBAClBb,SAAS;oBAAEG,MAAM;gBAAS;YAC5B,GACA;gBAACL;gBAAuBP;aAAY;QAExC;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/useHigherContrastChildren.tsx"],"sourcesContent":["import { Children, type ReactNode } from \"react\";\nimport { INTERACTION_CONFIG } from \"./config.js\";\n\n/**\n * This hook is used to wrap any `number` and `string` children with a `<span>`\n * so that the ripple/hover/focus background colors do not cause the text to\n * become dimmed.\n *\n * If the {@link INTERACTION_CONFIG.higherContrast} is set to `false`, this hook\n * will just return the `children` unmodified.\n *\n * Note: This should generally be used with the {@link useElementInteraction}\n * hook.\n *\n * @example Simple Example\n * ```tsx\n * import {\n * useElementInteraction,\n * useHigherContrastChildren,\n * } from \"@react-md/core\";\n * import type { ButtonHTMLAttributes, ReactElement, ReactNode } from \"react\";\n *\n * function Example(props: ButtonHTMLAttributes<HTMLButtonElement>): ReactElement {\n * const {\n * children: propChildren,\n * disabled = false,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onTouchMove,\n * ...remaining\n * } = props;\n * const { pressedClassName, ripples, handlers } =\n * useElementInteraction({\n * disabled,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onTouchMove,\n * });\n *\n * const children = useHigherContrastChildren(propChildren)\n *\n * return (\n * <button {...remaining} {...handlers} className={pressedClassName}>\n * {children}\n * {ripples}\n * </button>\n * );\n * }\n * ```\n *\n * @param propChildren - The children to conditionally wrap in spans.\n * @param disable - Manually disable this functionality even if the higher\n * contrast mode is enabled. This is really used within `ListItem`s so there\n * aren't unneeded `<span>`s for string/number children when there are addons.\n * @returns the children to render\n * @since 6.0.0\n * @internal\n */\nexport function useHigherContrastChildren(\n propChildren: ReactNode,\n disable = false\n): ReactNode {\n if (!INTERACTION_CONFIG.higherContrast || disable) {\n return propChildren;\n }\n\n // Note: This will fail if the child is wrapped in a Fragment, but that use\n // case doesn't matter to me\n return Children.map(propChildren, (child) => {\n const t = typeof child;\n if (t === \"string\" || t === \"number\") {\n return <span>{child}</span>;\n }\n\n return child;\n });\n}\n"],"names":["Children","INTERACTION_CONFIG","useHigherContrastChildren","propChildren","disable","higherContrast","map","child","t","span"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,QAAQ,QAAwB,QAAQ;AACjD,SAASC,kBAAkB,QAAQ,cAAc;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEC,GACD,OAAO,SAASC,0BACdC,YAAuB,EACvBC,UAAU,KAAK;IAEf,IAAI,CAACH,mBAAmBI,cAAc,IAAID,SAAS;QACjD,OAAOD;IACT;IAEA,2EAA2E;IAC3E,4BAA4B;IAC5B,OAAOH,SAASM,GAAG,CAACH,cAAc,CAACI;QACjC,MAAMC,IAAI,OAAOD;QACjB,IAAIC,MAAM,YAAYA,MAAM,UAAU;YACpC,qBAAO,KAACC;0BAAMF;;QAChB;QAEA,OAAOA;IACT;AACF"}
1
+ {"version":3,"sources":["../../src/interaction/useHigherContrastChildren.tsx"],"sourcesContent":["import { Children, type ReactNode } from \"react\";\nimport { INTERACTION_CONFIG } from \"./config.js\";\n\n/**\n * This hook is used to wrap any `number` and `string` children with a `<span>`\n * so that the ripple/hover/focus background colors do not cause the text to\n * become dimmed.\n *\n * If the {@link INTERACTION_CONFIG.higherContrast} is set to `false`, this hook\n * will just return the `children` unmodified.\n *\n * Note: This should generally be used with the {@link useElementInteraction}\n * hook.\n *\n * @example Simple Example\n * ```tsx\n * import {\n * useElementInteraction,\n * useHigherContrastChildren,\n * } from \"@react-md/core\";\n * import type { ButtonHTMLAttributes, ReactElement, ReactNode } from \"react\";\n *\n * function Example(props: ButtonHTMLAttributes<HTMLButtonElement>): ReactElement {\n * const {\n * children: propChildren,\n * disabled = false,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onTouchMove,\n * ...remaining\n * } = props;\n * const { pressedClassName, ripples, handlers } =\n * useElementInteraction({\n * disabled,\n * onClick,\n * onKeyDown,\n * onKeyUp,\n * onMouseDown,\n * onMouseUp,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onTouchMove,\n * });\n *\n * const children = useHigherContrastChildren(propChildren)\n *\n * return (\n * <button {...remaining} {...handlers} className={pressedClassName}>\n * {children}\n * {ripples}\n * </button>\n * );\n * }\n * ```\n *\n * @param propChildren - The children to conditionally wrap in spans.\n * @param disable - Manually disable this functionality even if the higher\n * contrast mode is enabled. This is really used within `ListItem`s so there\n * aren't unneeded `<span>`s for string/number children when there are addons.\n * @returns the children to render\n * @since 6.0.0\n * @internal\n */\nexport function useHigherContrastChildren(\n propChildren: ReactNode,\n disable = false\n): ReactNode {\n if (!INTERACTION_CONFIG.higherContrast || disable) {\n return propChildren;\n }\n\n // Note: This will fail if the child is wrapped in a Fragment, but that use\n // case doesn't matter to me\n return Children.map(propChildren, (child) => {\n const t = typeof child;\n if (t === \"string\" || t === \"number\") {\n return <span>{child}</span>;\n }\n\n return child;\n });\n}\n"],"names":["Children","INTERACTION_CONFIG","useHigherContrastChildren","propChildren","disable","higherContrast","map","child","t","span"],"mappings":";AAAA,SAASA,QAAQ,QAAwB,QAAQ;AACjD,SAASC,kBAAkB,QAAQ,cAAc;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEC,GACD,OAAO,SAASC,0BACdC,YAAuB,EACvBC,UAAU,KAAK;IAEf,IAAI,CAACH,mBAAmBI,cAAc,IAAID,SAAS;QACjD,OAAOD;IACT;IAEA,2EAA2E;IAC3E,4BAA4B;IAC5B,OAAOH,SAASM,GAAG,CAACH,cAAc,CAACI;QACjC,MAAMC,IAAI,OAAOD;QACjB,IAAIC,MAAM,YAAYA,MAAM,UAAU;YACpC,qBAAO,KAACC;0BAAMF;;QAChB;QAEA,OAAOA;IACT;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/interaction/utils.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent, TouchEvent } from \"react\";\nimport { findSizingContainer } from \"../positioning/utils.js\";\nimport type {\n ElementInteractionState,\n RippleState,\n RippleStyle,\n} from \"./types.js\";\n\n/** @internal */\nfunction calcHypotenuse(a: number, b: number): number {\n return Math.sqrt(a * a + b * b);\n}\n\n/**\n * Gets the current radius for a ripple based on the x and y page dimensions\n * as well as the size of the element.\n *\n * This is really just in a separate file so I can easily mock this and write\n * tests.\n *\n * @internal\n */\nfunction getRadius(\n x: number,\n y: number,\n offsetWidth: number,\n offsetHeight: number\n): number {\n return Math.max(\n calcHypotenuse(x, y),\n calcHypotenuse(offsetWidth - x, y),\n calcHypotenuse(offsetWidth - x, offsetHeight - y),\n calcHypotenuse(x, offsetHeight - y)\n );\n}\n\n/** @internal */\nexport function getRippleStyle(\n event:\n | MouseEvent<HTMLElement>\n | TouchEvent<HTMLElement>\n | KeyboardEvent<HTMLElement>,\n programmatic: boolean\n): RippleStyle {\n const element =\n findSizingContainer(event.currentTarget) || event.currentTarget;\n const rect = element.getBoundingClientRect();\n const { left, top, height, width } = rect;\n\n let x: number;\n let y: number;\n if (\"key\" in event || programmatic) {\n x = width / 2;\n y = height / 2;\n } else {\n let pageX: number;\n let pageY: number;\n if (\"touches\" in event) {\n ({ pageX, pageY } = event.touches[0]);\n } else {\n ({ pageX, pageY } = event);\n }\n\n x = pageX - (left + window.pageXOffset);\n y = pageY - (top + window.pageYOffset);\n }\n\n const radius = getRadius(x, y, width, height);\n const size = radius * 2;\n\n return {\n left: x - radius,\n top: y - radius,\n height: size,\n width: size,\n };\n}\n\n/**\n * This is used to set the `exiting` state after a normal \"touch\" duration.\n * 300ms seemed like a good threshold since it is the majority of the scaling\n * duration (450ms)\n */\nconst ENTER_DELAY = 300;\n\n/** @internal */\nexport function releaseRipple(\n state: ElementInteractionState\n): ElementInteractionState {\n // find the first non-exiting ripple which should now be released\n const i = state.ripples.findIndex((ripple) => !ripple.exiting);\n if (i === -1) {\n return state;\n }\n\n const ripples = state.ripples.slice();\n const ripple = ripples[i];\n ripples[i] = {\n ...ripple,\n exiting: ripple.entered || Date.now() - ripple.startTime > ENTER_DELAY,\n };\n return { pressed: false, ripples };\n}\n\n/** @internal */\ninterface UpdateRipplesStateOptions {\n type: \"entered\" | \"exited\";\n state: ElementInteractionState;\n ripple: RippleState;\n holding: boolean;\n}\n\n/** @internal */\nexport function updateRipplesState(\n options: UpdateRipplesStateOptions\n): ElementInteractionState {\n const { type, ripple, state, holding } = options;\n\n const rippleIndex = state.ripples.findIndex((r) => r === ripple);\n if (rippleIndex === -1) {\n return state;\n }\n\n const ripples = state.ripples.slice();\n if (type === \"exited\") {\n ripples.splice(rippleIndex, 1);\n } else {\n const exiting = !holding || Date.now() - ripple.startTime > ENTER_DELAY;\n ripples[rippleIndex] = {\n ...ripple,\n exiting,\n entered: true,\n };\n }\n\n return { ...state, ripples };\n}\n"],"names":["findSizingContainer","calcHypotenuse","a","b","Math","sqrt","getRadius","x","y","offsetWidth","offsetHeight","max","getRippleStyle","event","programmatic","element","currentTarget","rect","getBoundingClientRect","left","top","height","width","pageX","pageY","touches","window","pageXOffset","pageYOffset","radius","size","ENTER_DELAY","releaseRipple","state","i","ripples","findIndex","ripple","exiting","slice","entered","Date","now","startTime","pressed","updateRipplesState","options","type","holding","rippleIndex","r","splice"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAO9D,cAAc,GACd,SAASC,eAAeC,CAAS,EAAEC,CAAS;IAC1C,OAAOC,KAAKC,IAAI,CAACH,IAAIA,IAAIC,IAAIA;AAC/B;AAEA;;;;;;;;CAQC,GACD,SAASG,UACPC,CAAS,EACTC,CAAS,EACTC,WAAmB,EACnBC,YAAoB;IAEpB,OAAON,KAAKO,GAAG,CACbV,eAAeM,GAAGC,IAClBP,eAAeQ,cAAcF,GAAGC,IAChCP,eAAeQ,cAAcF,GAAGG,eAAeF,IAC/CP,eAAeM,GAAGG,eAAeF;AAErC;AAEA,cAAc,GACd,OAAO,SAASI,eACdC,KAG8B,EAC9BC,YAAqB;IAErB,MAAMC,UACJf,oBAAoBa,MAAMG,aAAa,KAAKH,MAAMG,aAAa;IACjE,MAAMC,OAAOF,QAAQG,qBAAqB;IAC1C,MAAM,EAAEC,IAAI,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGL;IAErC,IAAIV;IACJ,IAAIC;IACJ,IAAI,SAASK,SAASC,cAAc;QAClCP,IAAIe,QAAQ;QACZd,IAAIa,SAAS;IACf,OAAO;QACL,IAAIE;QACJ,IAAIC;QACJ,IAAI,aAAaX,OAAO;YACrB,CAAA,EAAEU,KAAK,EAAEC,KAAK,EAAE,GAAGX,MAAMY,OAAO,CAAC,EAAE,AAAD;QACrC,OAAO;YACJ,CAAA,EAAEF,KAAK,EAAEC,KAAK,EAAE,GAAGX,KAAI;QAC1B;QAEAN,IAAIgB,QAASJ,CAAAA,OAAOO,OAAOC,WAAW,AAAD;QACrCnB,IAAIgB,QAASJ,CAAAA,MAAMM,OAAOE,WAAW,AAAD;IACtC;IAEA,MAAMC,SAASvB,UAAUC,GAAGC,GAAGc,OAAOD;IACtC,MAAMS,OAAOD,SAAS;IAEtB,OAAO;QACLV,MAAMZ,IAAIsB;QACVT,KAAKZ,IAAIqB;QACTR,QAAQS;QACRR,OAAOQ;IACT;AACF;AAEA;;;;CAIC,GACD,MAAMC,cAAc;AAEpB,cAAc,GACd,OAAO,SAASC,cACdC,KAA8B;IAE9B,iEAAiE;IACjE,MAAMC,IAAID,MAAME,OAAO,CAACC,SAAS,CAAC,CAACC,SAAW,CAACA,OAAOC,OAAO;IAC7D,IAAIJ,MAAM,CAAC,GAAG;QACZ,OAAOD;IACT;IAEA,MAAME,UAAUF,MAAME,OAAO,CAACI,KAAK;IACnC,MAAMF,SAASF,OAAO,CAACD,EAAE;IACzBC,OAAO,CAACD,EAAE,GAAG;QACX,GAAGG,MAAM;QACTC,SAASD,OAAOG,OAAO,IAAIC,KAAKC,GAAG,KAAKL,OAAOM,SAAS,GAAGZ;IAC7D;IACA,OAAO;QAAEa,SAAS;QAAOT;IAAQ;AACnC;AAUA,cAAc,GACd,OAAO,SAASU,mBACdC,OAAkC;IAElC,MAAM,EAAEC,IAAI,EAAEV,MAAM,EAAEJ,KAAK,EAAEe,OAAO,EAAE,GAAGF;IAEzC,MAAMG,cAAchB,MAAME,OAAO,CAACC,SAAS,CAAC,CAACc,IAAMA,MAAMb;IACzD,IAAIY,gBAAgB,CAAC,GAAG;QACtB,OAAOhB;IACT;IAEA,MAAME,UAAUF,MAAME,OAAO,CAACI,KAAK;IACnC,IAAIQ,SAAS,UAAU;QACrBZ,QAAQgB,MAAM,CAACF,aAAa;IAC9B,OAAO;QACL,MAAMX,UAAU,CAACU,WAAWP,KAAKC,GAAG,KAAKL,OAAOM,SAAS,GAAGZ;QAC5DI,OAAO,CAACc,YAAY,GAAG;YACrB,GAAGZ,MAAM;YACTC;YACAE,SAAS;QACX;IACF;IAEA,OAAO;QAAE,GAAGP,KAAK;QAAEE;IAAQ;AAC7B"}
1
+ {"version":3,"sources":["../../src/interaction/utils.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent, TouchEvent } from \"react\";\nimport { findSizingContainer } from \"../positioning/utils.js\";\nimport type {\n ElementInteractionState,\n RippleState,\n RippleStyle,\n} from \"./types.js\";\n\n/** @internal */\nfunction calcHypotenuse(a: number, b: number): number {\n return Math.sqrt(a * a + b * b);\n}\n\n/**\n * Gets the current radius for a ripple based on the x and y page dimensions\n * as well as the size of the element.\n *\n * This is really just in a separate file so I can easily mock this and write\n * tests.\n *\n * @internal\n */\nfunction getRadius(\n x: number,\n y: number,\n offsetWidth: number,\n offsetHeight: number\n): number {\n return Math.max(\n calcHypotenuse(x, y),\n calcHypotenuse(offsetWidth - x, y),\n calcHypotenuse(offsetWidth - x, offsetHeight - y),\n calcHypotenuse(x, offsetHeight - y)\n );\n}\n\n/** @internal */\nexport function getRippleStyle(\n event:\n | MouseEvent<HTMLElement>\n | TouchEvent<HTMLElement>\n | KeyboardEvent<HTMLElement>,\n programmatic: boolean\n): RippleStyle {\n const element =\n findSizingContainer(event.currentTarget) || event.currentTarget;\n const rect = element.getBoundingClientRect();\n const { left, top, height, width } = rect;\n\n let x: number;\n let y: number;\n if (\"key\" in event || programmatic) {\n x = width / 2;\n y = height / 2;\n } else {\n let pageX: number;\n let pageY: number;\n if (\"touches\" in event) {\n ({ pageX, pageY } = event.touches[0]);\n } else {\n ({ pageX, pageY } = event);\n }\n\n x = pageX - (left + window.pageXOffset);\n y = pageY - (top + window.pageYOffset);\n }\n\n const radius = getRadius(x, y, width, height);\n const size = radius * 2;\n\n return {\n left: x - radius,\n top: y - radius,\n height: size,\n width: size,\n };\n}\n\n/**\n * This is used to set the `exiting` state after a normal \"touch\" duration.\n * 300ms seemed like a good threshold since it is the majority of the scaling\n * duration (450ms)\n */\nconst ENTER_DELAY = 300;\n\n/** @internal */\nexport function releaseRipple(\n state: ElementInteractionState\n): ElementInteractionState {\n // find the first non-exiting ripple which should now be released\n const i = state.ripples.findIndex((ripple) => !ripple.exiting);\n if (i === -1) {\n return state;\n }\n\n const ripples = state.ripples.slice();\n const ripple = ripples[i];\n ripples[i] = {\n ...ripple,\n exiting: ripple.entered || Date.now() - ripple.startTime > ENTER_DELAY,\n };\n return { pressed: false, ripples };\n}\n\n/** @internal */\ninterface UpdateRipplesStateOptions {\n type: \"entered\" | \"exited\";\n state: ElementInteractionState;\n ripple: RippleState;\n holding: boolean;\n}\n\n/** @internal */\nexport function updateRipplesState(\n options: UpdateRipplesStateOptions\n): ElementInteractionState {\n const { type, ripple, state, holding } = options;\n\n const rippleIndex = state.ripples.findIndex((r) => r === ripple);\n if (rippleIndex === -1) {\n return state;\n }\n\n const ripples = state.ripples.slice();\n if (type === \"exited\") {\n ripples.splice(rippleIndex, 1);\n } else {\n const exiting = !holding || Date.now() - ripple.startTime > ENTER_DELAY;\n ripples[rippleIndex] = {\n ...ripple,\n exiting,\n entered: true,\n };\n }\n\n return { ...state, ripples };\n}\n"],"names":["findSizingContainer","calcHypotenuse","a","b","Math","sqrt","getRadius","x","y","offsetWidth","offsetHeight","max","getRippleStyle","event","programmatic","element","currentTarget","rect","getBoundingClientRect","left","top","height","width","pageX","pageY","touches","window","pageXOffset","pageYOffset","radius","size","ENTER_DELAY","releaseRipple","state","i","ripples","findIndex","ripple","exiting","slice","entered","Date","now","startTime","pressed","updateRipplesState","options","type","holding","rippleIndex","r","splice"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAO9D,cAAc,GACd,SAASC,eAAeC,CAAS,EAAEC,CAAS;IAC1C,OAAOC,KAAKC,IAAI,CAACH,IAAIA,IAAIC,IAAIA;AAC/B;AAEA;;;;;;;;CAQC,GACD,SAASG,UACPC,CAAS,EACTC,CAAS,EACTC,WAAmB,EACnBC,YAAoB;IAEpB,OAAON,KAAKO,GAAG,CACbV,eAAeM,GAAGC,IAClBP,eAAeQ,cAAcF,GAAGC,IAChCP,eAAeQ,cAAcF,GAAGG,eAAeF,IAC/CP,eAAeM,GAAGG,eAAeF;AAErC;AAEA,cAAc,GACd,OAAO,SAASI,eACdC,KAG8B,EAC9BC,YAAqB;IAErB,MAAMC,UACJf,oBAAoBa,MAAMG,aAAa,KAAKH,MAAMG,aAAa;IACjE,MAAMC,OAAOF,QAAQG,qBAAqB;IAC1C,MAAM,EAAEC,IAAI,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGL;IAErC,IAAIV;IACJ,IAAIC;IACJ,IAAI,SAASK,SAASC,cAAc;QAClCP,IAAIe,QAAQ;QACZd,IAAIa,SAAS;IACf,OAAO;QACL,IAAIE;QACJ,IAAIC;QACJ,IAAI,aAAaX,OAAO;YACrB,CAAA,EAAEU,KAAK,EAAEC,KAAK,EAAE,GAAGX,MAAMY,OAAO,CAAC,EAAE,AAAD;QACrC,OAAO;YACJ,CAAA,EAAEF,KAAK,EAAEC,KAAK,EAAE,GAAGX,KAAI;QAC1B;QAEAN,IAAIgB,QAASJ,CAAAA,OAAOO,OAAOC,WAAW,AAAD;QACrCnB,IAAIgB,QAASJ,CAAAA,MAAMM,OAAOE,WAAW,AAAD;IACtC;IAEA,MAAMC,SAASvB,UAAUC,GAAGC,GAAGc,OAAOD;IACtC,MAAMS,OAAOD,SAAS;IAEtB,OAAO;QACLV,MAAMZ,IAAIsB;QACVT,KAAKZ,IAAIqB;QACTR,QAAQS;QACRR,OAAOQ;IACT;AACF;AAEA;;;;CAIC,GACD,MAAMC,cAAc;AAEpB,cAAc,GACd,OAAO,SAASC,cACdC,KAA8B;IAE9B,iEAAiE;IACjE,MAAMC,IAAID,MAAME,OAAO,CAACC,SAAS,CAAC,CAACC,SAAW,CAACA,OAAOC,OAAO;IAC7D,IAAIJ,MAAM,CAAC,GAAG;QACZ,OAAOD;IACT;IAEA,MAAME,UAAUF,MAAME,OAAO,CAACI,KAAK;IACnC,MAAMF,SAASF,OAAO,CAACD,EAAE;IACzBC,OAAO,CAACD,EAAE,GAAG;QACX,GAAGG,MAAM;QACTC,SAASD,OAAOG,OAAO,IAAIC,KAAKC,GAAG,KAAKL,OAAOM,SAAS,GAAGZ;IAC7D;IACA,OAAO;QAAEa,SAAS;QAAOT;IAAQ;AACnC;AAUA,cAAc,GACd,OAAO,SAASU,mBACdC,OAAkC;IAElC,MAAM,EAAEC,IAAI,EAAEV,MAAM,EAAEJ,KAAK,EAAEe,OAAO,EAAE,GAAGF;IAEzC,MAAMG,cAAchB,MAAME,OAAO,CAACC,SAAS,CAAC,CAACc,IAAMA,MAAMb;IACzD,IAAIY,gBAAgB,CAAC,GAAG;QACtB,OAAOhB;IACT;IAEA,MAAME,UAAUF,MAAME,OAAO,CAACI,KAAK;IACnC,IAAIQ,SAAS,UAAU;QACrBZ,QAAQgB,MAAM,CAACF,aAAa;IAC9B,OAAO;QACL,MAAMX,UAAU,CAACU,WAAWP,KAAKC,GAAG,KAAKL,OAAOM,SAAS,GAAGZ;QAC5DI,OAAO,CAACc,YAAY,GAAG;YACrB,GAAGZ,MAAM;YACTC;YACAE,SAAS;QACX;IACF;IAEA,OAAO;QAAE,GAAGP,KAAK;QAAEE;IAAQ;AAC7B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/LayoutAppBar.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport {\n AppBar,\n type AppBarProps,\n type CustomAppBarComponent,\n} from \"../app-bar/AppBar.js\";\nimport {\n SkipToMainContent,\n type SkipToMainContentProps,\n} from \"../link/SkipToMainContent.js\";\nimport { useCSSVariables } from \"../theme/useCSSVariables.js\";\nimport { type CssPosition, type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useLayoutAppBarHeight } from \"./useLayoutAppBarHeight.js\";\n\n/**\n * @since 6.0.0 Only supports `AppBar` + `SkipToMainContent` props\n */\nexport interface LayoutAppBarProps extends AppBarProps {\n /** @defaultValue `\"header\"` */\n as?: CustomAppBarComponent;\n\n /** @defaultValue `\"fixed\"` */\n position?: CssPosition;\n\n /**\n * Any additional props to pass to the {@link SkipToMainContent} component.\n */\n skipProps?: PropsWithRef<SkipToMainContentProps, HTMLAnchorElement>;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to dynamically update the `--rmd-layout-header-offset`\n * based on the current height of this app bar. If you are concerned about\n * javascript bundle size, it is recommended to configure this variable in SCSS\n * instead.\n *\n * @example Static Height\n * ```scss\n * @use \"everything\";\n *\n * :root {\n * @include everything.layout-set-var(header-height, everything.$app-bar-height);\n * }\n * ```\n *\n * @example Media Query Height Changes\n * ```scss\n * @use \"everything\";\n *\n * :root {\n * @include everything.layout-set-var(header-height, everything.$app-bar-height);\n * @include everything.tablet-media {\n * @include everything.layout-set-var(header-height, everything.$app-bar-dense-height);\n * }\n * }\n * ```\n *\n * @since 6.0.0 This component no longer renders the `LayoutNavToggle` and\n * `LayoutAppBarTitle` since they no longer exist. The only purpose of this\n * component is to dynamically set the `--rmd-layout-header-height` variable.\n */\nexport const LayoutAppBar = forwardRef<HTMLDivElement, LayoutAppBarProps>(\n function LayoutAppBar(props, ref) {\n const {\n as = \"header\",\n id: propId,\n position = \"fixed\",\n skipProps,\n children,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"layout-header\");\n const { appBarRef, variables } = useLayoutAppBarHeight(ref);\n useCSSVariables(variables);\n\n return (\n <AppBar\n {...remaining}\n id={id}\n as={as}\n ref={appBarRef}\n position={position}\n >\n <SkipToMainContent {...skipProps} />\n {children}\n </AppBar>\n );\n }\n);\n"],"names":["forwardRef","AppBar","SkipToMainContent","useCSSVariables","useEnsuredId","useLayoutAppBarHeight","LayoutAppBar","props","ref","as","id","propId","position","skipProps","children","remaining","appBarRef","variables"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SACEC,MAAM,QAGD,uBAAuB;AAC9B,SACEC,iBAAiB,QAEZ,+BAA+B;AACtC,SAASC,eAAe,QAAQ,8BAA8B;AAE9D,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,qBAAqB,QAAQ,6BAA6B;AAkBnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,MAAMC,6BAAeN,WAC1B,SAASM,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,KAAK,QAAQ,EACbC,IAAIC,MAAM,EACVC,WAAW,OAAO,EAClBC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IACJ,MAAMG,KAAKN,aAAaO,QAAQ;IAChC,MAAM,EAAEK,SAAS,EAAEC,SAAS,EAAE,GAAGZ,sBAAsBG;IACvDL,gBAAgBc;IAEhB,qBACE,MAAChB;QACE,GAAGc,SAAS;QACbL,IAAIA;QACJD,IAAIA;QACJD,KAAKQ;QACLJ,UAAUA;;0BAEV,KAACV;gBAAmB,GAAGW,SAAS;;YAC/BC;;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/layout/LayoutAppBar.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport {\n AppBar,\n type AppBarProps,\n type CustomAppBarComponent,\n} from \"../app-bar/AppBar.js\";\nimport {\n SkipToMainContent,\n type SkipToMainContentProps,\n} from \"../link/SkipToMainContent.js\";\nimport { useCSSVariables } from \"../theme/useCSSVariables.js\";\nimport { type CssPosition, type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useLayoutAppBarHeight } from \"./useLayoutAppBarHeight.js\";\n\n/**\n * @since 6.0.0 Only supports `AppBar` + `SkipToMainContent` props\n */\nexport interface LayoutAppBarProps extends AppBarProps {\n /** @defaultValue `\"header\"` */\n as?: CustomAppBarComponent;\n\n /** @defaultValue `\"fixed\"` */\n position?: CssPosition;\n\n /**\n * Any additional props to pass to the {@link SkipToMainContent} component.\n */\n skipProps?: PropsWithRef<SkipToMainContentProps, HTMLAnchorElement>;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to dynamically update the `--rmd-layout-header-offset`\n * based on the current height of this app bar. If you are concerned about\n * javascript bundle size, it is recommended to configure this variable in SCSS\n * instead.\n *\n * @example Static Height\n * ```scss\n * @use \"everything\";\n *\n * :root {\n * @include everything.layout-set-var(header-height, everything.$app-bar-height);\n * }\n * ```\n *\n * @example Media Query Height Changes\n * ```scss\n * @use \"everything\";\n *\n * :root {\n * @include everything.layout-set-var(header-height, everything.$app-bar-height);\n * @include everything.tablet-media {\n * @include everything.layout-set-var(header-height, everything.$app-bar-dense-height);\n * }\n * }\n * ```\n *\n * @since 6.0.0 This component no longer renders the `LayoutNavToggle` and\n * `LayoutAppBarTitle` since they no longer exist. The only purpose of this\n * component is to dynamically set the `--rmd-layout-header-height` variable.\n */\nexport const LayoutAppBar = forwardRef<HTMLDivElement, LayoutAppBarProps>(\n function LayoutAppBar(props, ref) {\n const {\n as = \"header\",\n id: propId,\n position = \"fixed\",\n skipProps,\n children,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"layout-header\");\n const { appBarRef, variables } = useLayoutAppBarHeight(ref);\n useCSSVariables(variables);\n\n return (\n <AppBar\n {...remaining}\n id={id}\n as={as}\n ref={appBarRef}\n position={position}\n >\n <SkipToMainContent {...skipProps} />\n {children}\n </AppBar>\n );\n }\n);\n"],"names":["forwardRef","AppBar","SkipToMainContent","useCSSVariables","useEnsuredId","useLayoutAppBarHeight","LayoutAppBar","props","ref","as","id","propId","position","skipProps","children","remaining","appBarRef","variables"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SACEC,MAAM,QAGD,uBAAuB;AAC9B,SACEC,iBAAiB,QAEZ,+BAA+B;AACtC,SAASC,eAAe,QAAQ,8BAA8B;AAE9D,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,qBAAqB,QAAQ,6BAA6B;AAkBnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,MAAMC,6BAAeN,WAC1B,SAASM,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,KAAK,QAAQ,EACbC,IAAIC,MAAM,EACVC,WAAW,OAAO,EAClBC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IACJ,MAAMG,KAAKN,aAAaO,QAAQ;IAChC,MAAM,EAAEK,SAAS,EAAEC,SAAS,EAAE,GAAGZ,sBAAsBG;IACvDL,gBAAgBc;IAEhB,qBACE,MAAChB;QACE,GAAGc,SAAS;QACbL,IAAIA;QACJD,IAAIA;QACJD,KAAKQ;QACLJ,UAAUA;;0BAEV,KAACV;gBAAmB,GAAGW,SAAS;;YAC/BC;;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/LayoutNav.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport {\n DEFAULT_SHEET_CLASSNAMES,\n DEFAULT_SHEET_TIMEOUT,\n} from \"../sheet/Sheet.js\";\nimport { sheet, type BaseSheetClassNameOptions } from \"../sheet/styles.js\";\nimport {\n type CSSTransitionClassNames,\n type TransitionActions,\n type TransitionCallbacks,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { layoutNav } from \"./layoutNavStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutNavProps\n extends HTMLAttributes<HTMLDivElement>,\n BaseSheetClassNameOptions,\n TransitionCallbacks,\n TransitionActions {\n children: ReactNode;\n\n /**\n * The component to render as.\n *\n * @defaultValue `\"nav\"`\n */\n as?: \"nav\" | \"div\";\n\n /**\n * Set this to `true` to display the navigation.\n */\n expanded: boolean;\n\n /**\n * Set this to `true` to force the navigation to appear below the fixed app\n * bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n\n /** @defaultValue {@link DEFAULT_SHEET_TIMEOUT} */\n timeout?: TransitionTimeout;\n /** @defaultValue {@link DEFAULT_SHEET_CLASSNAMES} */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to render a persistent navigation on the left of the\n * page. There is some built-in functionality to support resizing with the\n * `LayoutWindowSplitter` and expandable layouts. Do not use this component for\n * temporary navigation and instead use a `Sheet`.\n *\n * @example Full Height Layout\n * ```tsx\n * \"use client\";\n * import {\n * LayoutAppBar,\n * LayoutNav,\n * Main,\n * useHorizontalLayoutTransition,\n * } from \"@react-md/core\";\n * import type { ReactElement, PropsWithChildren } from \"react\";\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * const { elementProps } = useHorizontalLayoutTransition({\n * transitionIn: true,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar {...elementProps}>\n * <YourAppBarContent />\n * </LayoutAppBar>\n * <LayoutNav expanded>\n * <YourNavigationComponent />\n * </LayoutNav>\n * <Main navOffset appBarOffset {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @example Toggleable Layout\n * ```tsx\n * \"use client\";\n * import {\n * LayoutNav,\n * Main,\n * useHorizontalLayoutTransition,\n * useToggle,\n * } from \"@react-md/core\";\n * import MenuIcon from \"@react-md/material-icons/MenuIcon\";\n * import { cnb } from \"cnbuilder\";\n * import type { ReactElement, PropsWithChildren } from \"react\";\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * const { toggled: expanded, toggle } = useToggle();\n * const { elementProps } = useHorizontalLayoutTransition({\n * transitionIn: expanded,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar {...elementProps}>\n * <Button\n * aria-label=\"Navigation\"\n * onClick={toggle}\n * buttonType=\"icon\"\n * >\n * <MenuIcon />\n * </Button>\n * <YourAppBarContent />\n * </LayoutAppBar>\n * <LayoutNav expanded>\n * <YourNavigationComponent />\n * </LayoutNav>\n * <Main navOffset={expanded} appBarOffset {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const LayoutNav = forwardRef<HTMLDivElement, LayoutNavProps>(\n function LayoutNav(props, ref) {\n const {\n as: Component = \"nav\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel = Component == \"nav\" && !ariaLabelledBy\n ? \"Navigation\"\n : undefined,\n expanded,\n children,\n className,\n timeout = DEFAULT_SHEET_TIMEOUT,\n classNames = DEFAULT_SHEET_CLASSNAMES,\n appear,\n enter,\n exit,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExited,\n onExiting,\n appBarOffset,\n ...remaining\n } = props;\n const { elementProps } = useCSSTransition({\n nodeRef: ref,\n timeout,\n className: cnb(\n layoutNav({ appBarOffset }),\n sheet({\n className,\n horizontalSize: \"none\",\n disableOverlay: true,\n })\n ),\n classNames,\n enter,\n exit,\n appear,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExited,\n onExiting,\n exitedHidden: true,\n transitionIn: expanded,\n });\n\n return (\n <Component\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n {...remaining}\n {...elementProps}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["cnb","forwardRef","DEFAULT_SHEET_CLASSNAMES","DEFAULT_SHEET_TIMEOUT","sheet","useCSSTransition","layoutNav","LayoutNav","props","ref","as","Component","ariaLabelledBy","ariaLabel","undefined","expanded","children","className","timeout","classNames","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExited","onExiting","appBarOffset","remaining","elementProps","nodeRef","horizontalSize","disableOverlay","exitedHidden","transitionIn","aria-label","aria-labelledby"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6C,QAAQ;AACxE,SACEC,wBAAwB,EACxBC,qBAAqB,QAChB,oBAAoB;AAC3B,SAASC,KAAK,QAAwC,qBAAqB;AAO3E,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,SAAS,QAAQ,uBAAuB;AAsCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFC,GACD,OAAO,MAAMC,0BAAYN,WACvB,SAASM,UAAUC,KAAK,EAAEC,GAAG;IAC3B,MAAM,EACJC,IAAIC,YAAY,KAAK,EACrB,mBAAmBC,cAAc,EACjC,cAAcC,YAAYF,aAAa,SAAS,CAACC,iBAC7C,eACAE,SAAS,EACbC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,UAAUf,qBAAqB,EAC/BgB,aAAajB,wBAAwB,EACrCkB,MAAM,EACNC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,YAAY,EACZ,GAAGC,WACJ,GAAGtB;IACJ,MAAM,EAAEuB,YAAY,EAAE,GAAG1B,iBAAiB;QACxC2B,SAASvB;QACTS;QACAD,WAAWjB,IACTM,UAAU;YAAEuB;QAAa,IACzBzB,MAAM;YACJa;YACAgB,gBAAgB;YAChBC,gBAAgB;QAClB;QAEFf;QACAE;QACAC;QACAF;QACAG;QACAC;QACAC;QACAC;QACAC;QACAC;QACAO,cAAc;QACdC,cAAcrB;IAChB;IAEA,qBACE,KAACJ;QACC0B,cAAYxB;QACZyB,mBAAiB1B;QAChB,GAAGkB,SAAS;QACZ,GAAGC,YAAY;kBAEff;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/layout/LayoutNav.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport {\n DEFAULT_SHEET_CLASSNAMES,\n DEFAULT_SHEET_TIMEOUT,\n} from \"../sheet/Sheet.js\";\nimport { sheet, type BaseSheetClassNameOptions } from \"../sheet/styles.js\";\nimport {\n type CSSTransitionClassNames,\n type TransitionActions,\n type TransitionCallbacks,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { layoutNav } from \"./layoutNavStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutNavProps\n extends HTMLAttributes<HTMLDivElement>,\n BaseSheetClassNameOptions,\n TransitionCallbacks,\n TransitionActions {\n children: ReactNode;\n\n /**\n * The component to render as.\n *\n * @defaultValue `\"nav\"`\n */\n as?: \"nav\" | \"div\";\n\n /**\n * Set this to `true` to display the navigation.\n */\n expanded: boolean;\n\n /**\n * Set this to `true` to force the navigation to appear below the fixed app\n * bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n\n /** @defaultValue {@link DEFAULT_SHEET_TIMEOUT} */\n timeout?: TransitionTimeout;\n /** @defaultValue {@link DEFAULT_SHEET_CLASSNAMES} */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to render a persistent navigation on the left of the\n * page. There is some built-in functionality to support resizing with the\n * `LayoutWindowSplitter` and expandable layouts. Do not use this component for\n * temporary navigation and instead use a `Sheet`.\n *\n * @example Full Height Layout\n * ```tsx\n * \"use client\";\n * import {\n * LayoutAppBar,\n * LayoutNav,\n * Main,\n * useHorizontalLayoutTransition,\n * } from \"@react-md/core\";\n * import type { ReactElement, PropsWithChildren } from \"react\";\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * const { elementProps } = useHorizontalLayoutTransition({\n * transitionIn: true,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar {...elementProps}>\n * <YourAppBarContent />\n * </LayoutAppBar>\n * <LayoutNav expanded>\n * <YourNavigationComponent />\n * </LayoutNav>\n * <Main navOffset appBarOffset {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @example Toggleable Layout\n * ```tsx\n * \"use client\";\n * import {\n * LayoutNav,\n * Main,\n * useHorizontalLayoutTransition,\n * useToggle,\n * } from \"@react-md/core\";\n * import MenuIcon from \"@react-md/material-icons/MenuIcon\";\n * import { cnb } from \"cnbuilder\";\n * import type { ReactElement, PropsWithChildren } from \"react\";\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * const { toggled: expanded, toggle } = useToggle();\n * const { elementProps } = useHorizontalLayoutTransition({\n * transitionIn: expanded,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar {...elementProps}>\n * <Button\n * aria-label=\"Navigation\"\n * onClick={toggle}\n * buttonType=\"icon\"\n * >\n * <MenuIcon />\n * </Button>\n * <YourAppBarContent />\n * </LayoutAppBar>\n * <LayoutNav expanded>\n * <YourNavigationComponent />\n * </LayoutNav>\n * <Main navOffset={expanded} appBarOffset {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const LayoutNav = forwardRef<HTMLDivElement, LayoutNavProps>(\n function LayoutNav(props, ref) {\n const {\n as: Component = \"nav\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel = Component == \"nav\" && !ariaLabelledBy\n ? \"Navigation\"\n : undefined,\n expanded,\n children,\n className,\n timeout = DEFAULT_SHEET_TIMEOUT,\n classNames = DEFAULT_SHEET_CLASSNAMES,\n appear,\n enter,\n exit,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExited,\n onExiting,\n appBarOffset,\n ...remaining\n } = props;\n const { elementProps } = useCSSTransition({\n nodeRef: ref,\n timeout,\n className: cnb(\n layoutNav({ appBarOffset }),\n sheet({\n className,\n horizontalSize: \"none\",\n disableOverlay: true,\n })\n ),\n classNames,\n enter,\n exit,\n appear,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExited,\n onExiting,\n exitedHidden: true,\n transitionIn: expanded,\n });\n\n return (\n <Component\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n {...remaining}\n {...elementProps}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["cnb","forwardRef","DEFAULT_SHEET_CLASSNAMES","DEFAULT_SHEET_TIMEOUT","sheet","useCSSTransition","layoutNav","LayoutNav","props","ref","as","Component","ariaLabelledBy","ariaLabel","undefined","expanded","children","className","timeout","classNames","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExited","onExiting","appBarOffset","remaining","elementProps","nodeRef","horizontalSize","disableOverlay","exitedHidden","transitionIn","aria-label","aria-labelledby"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6C,QAAQ;AACxE,SACEC,wBAAwB,EACxBC,qBAAqB,QAChB,oBAAoB;AAC3B,SAASC,KAAK,QAAwC,qBAAqB;AAO3E,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,SAAS,QAAQ,uBAAuB;AAsCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFC,GACD,OAAO,MAAMC,0BAAYN,WACvB,SAASM,UAAUC,KAAK,EAAEC,GAAG;IAC3B,MAAM,EACJC,IAAIC,YAAY,KAAK,EACrB,mBAAmBC,cAAc,EACjC,cAAcC,YAAYF,aAAa,SAAS,CAACC,iBAC7C,eACAE,SAAS,EACbC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,UAAUf,qBAAqB,EAC/BgB,aAAajB,wBAAwB,EACrCkB,MAAM,EACNC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,YAAY,EACZ,GAAGC,WACJ,GAAGtB;IACJ,MAAM,EAAEuB,YAAY,EAAE,GAAG1B,iBAAiB;QACxC2B,SAASvB;QACTS;QACAD,WAAWjB,IACTM,UAAU;YAAEuB;QAAa,IACzBzB,MAAM;YACJa;YACAgB,gBAAgB;YAChBC,gBAAgB;QAClB;QAEFf;QACAE;QACAC;QACAF;QACAG;QACAC;QACAC;QACAC;QACAC;QACAC;QACAO,cAAc;QACdC,cAAcrB;IAChB;IAEA,qBACE,KAACJ;QACC0B,cAAYxB;QACZyB,mBAAiB1B;QAChB,GAAGkB,SAAS;QACZ,GAAGC,YAAY;kBAEff;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/LayoutWindowSplitter.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, useMemo } from \"react\";\nimport { type DefinedCSSVariableName } from \"../theme/types.js\";\nimport { useCSSVariables } from \"../theme/useCSSVariables.js\";\nimport {\n WindowSplitter,\n type BaseWindowSplitterProps,\n} from \"../window-splitter/WindowSplitter.js\";\nimport { type WindowSplitterWidgetProps } from \"../window-splitter/useWindowSplitter.js\";\nimport {\n layoutWindowSplitter,\n type LayoutWindowSplitterClassNameOptions,\n} from \"./layoutWindowSplitterStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutWindowSplitterProps\n extends WindowSplitterWidgetProps<HTMLButtonElement>,\n Omit<\n BaseWindowSplitterProps,\n keyof WindowSplitterWidgetProps<HTMLButtonElement>\n >,\n LayoutWindowSplitterClassNameOptions {\n /** @defaultValue `\"Resize Navigation\"` */\n \"aria-label\"?: string;\n\n /**\n * The current navigation width (in px).\n */\n navWidth: number;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to resize the `LayoutNav` component.\n *\n * @see {@link useResizableExpandableLayout} for a default implementation for\n * this component.\n *\n * @example Dynamic Resizing\n * ```tsx\n * import {\n * LayoutNav,\n * LayoutWindowSplitter,\n * Main,\n * NoSsr,\n * useWindowSize,\n * useWindowSplitter,\n * } from \"@react-md/core\";\n * import type { ReactElement, PropsWithChildren } from \"react\"\n *\n * function MyWindowSplitter(): ReactElement {\n * const { width } = useWindowSize({ disableHeight: true });\n * const min = 96;\n * const max = Math.max(600, width * .7);\n *\n * const { value, splitterProps } = useWindowSplitter({\n * min,\n * max,\n * defaultValue: 256,\n * });\n *\n * return (\n * <LayoutWindowSplitter\n * aria-controls=\"layout-nav-id\"\n * {...splitterProps}\n * value={value}\n * />\n * );\n * }\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * return (\n * <>\n * <LayoutNav id=\"layout-nav\" {...otherProps}>\n * <YourNavigation />\n * </LayoutNav>\n * // only required when using SSR\n * <NoSsr>\n * <MyWindowSplitter />\n * </NoSsr>\n * <Main navOffset>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const LayoutWindowSplitter = forwardRef<\n HTMLButtonElement,\n LayoutWindowSplitterProps\n>(function LayoutWindowSplitter(props, ref) {\n const {\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel = ariaLabelledBy ? undefined : \"Resize Navigation\",\n appBarOffset,\n disableResponsive,\n className,\n navWidth,\n ...remaining\n } = props;\n\n useCSSVariables<DefinedCSSVariableName>(\n useMemo(\n () => [{ name: \"--rmd-layout-size\", value: `${navWidth}px` }],\n [navWidth]\n )\n );\n\n return (\n <WindowSplitter\n {...remaining}\n ref={ref}\n aria-label={ariaLabel as string}\n aria-labelledby={ariaLabelledBy}\n className={layoutWindowSplitter({\n appBarOffset,\n disableResponsive,\n className,\n })}\n />\n );\n});\n"],"names":["forwardRef","useMemo","useCSSVariables","WindowSplitter","layoutWindowSplitter","LayoutWindowSplitter","props","ref","ariaLabelledBy","ariaLabel","undefined","appBarOffset","disableResponsive","className","navWidth","remaining","name","value","aria-label","aria-labelledby"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAE5C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SACEC,cAAc,QAET,uCAAuC;AAE9C,SACEC,oBAAoB,QAEf,kCAAkC;AAqBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DC,GACD,OAAO,MAAMC,qCAAuBL,WAGlC,SAASK,qBAAqBC,KAAK,EAAEC,GAAG;IACxC,MAAM,EACJ,mBAAmBC,cAAc,EACjC,cAAcC,YAAYD,iBAAiBE,YAAY,mBAAmB,EAC1EC,YAAY,EACZC,iBAAiB,EACjBC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGT;IAEJJ,gBACED,QACE,IAAM;YAAC;gBAAEe,MAAM;gBAAqBC,OAAO,CAAC,EAAEH,SAAS,EAAE,CAAC;YAAC;SAAE,EAC7D;QAACA;KAAS;IAId,qBACE,KAACX;QACE,GAAGY,SAAS;QACbR,KAAKA;QACLW,cAAYT;QACZU,mBAAiBX;QACjBK,WAAWT,qBAAqB;YAC9BO;YACAC;YACAC;QACF;;AAGN,GAAG"}
1
+ {"version":3,"sources":["../../src/layout/LayoutWindowSplitter.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, useMemo } from \"react\";\nimport { type DefinedCSSVariableName } from \"../theme/types.js\";\nimport { useCSSVariables } from \"../theme/useCSSVariables.js\";\nimport {\n WindowSplitter,\n type BaseWindowSplitterProps,\n} from \"../window-splitter/WindowSplitter.js\";\nimport { type WindowSplitterWidgetProps } from \"../window-splitter/useWindowSplitter.js\";\nimport {\n layoutWindowSplitter,\n type LayoutWindowSplitterClassNameOptions,\n} from \"./layoutWindowSplitterStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutWindowSplitterProps\n extends WindowSplitterWidgetProps<HTMLButtonElement>,\n Omit<\n BaseWindowSplitterProps,\n keyof WindowSplitterWidgetProps<HTMLButtonElement>\n >,\n LayoutWindowSplitterClassNameOptions {\n /** @defaultValue `\"Resize Navigation\"` */\n \"aria-label\"?: string;\n\n /**\n * The current navigation width (in px).\n */\n navWidth: number;\n}\n\n/**\n * **Client Component**\n *\n * This component is used to resize the `LayoutNav` component.\n *\n * @see {@link useResizableExpandableLayout} for a default implementation for\n * this component.\n *\n * @example Dynamic Resizing\n * ```tsx\n * import {\n * LayoutNav,\n * LayoutWindowSplitter,\n * Main,\n * NoSsr,\n * useWindowSize,\n * useWindowSplitter,\n * } from \"@react-md/core\";\n * import type { ReactElement, PropsWithChildren } from \"react\"\n *\n * function MyWindowSplitter(): ReactElement {\n * const { width } = useWindowSize({ disableHeight: true });\n * const min = 96;\n * const max = Math.max(600, width * .7);\n *\n * const { value, splitterProps } = useWindowSplitter({\n * min,\n * max,\n * defaultValue: 256,\n * });\n *\n * return (\n * <LayoutWindowSplitter\n * aria-controls=\"layout-nav-id\"\n * {...splitterProps}\n * value={value}\n * />\n * );\n * }\n *\n * function Layout({ children }: PropsWithChildren): ReactElement {\n * return (\n * <>\n * <LayoutNav id=\"layout-nav\" {...otherProps}>\n * <YourNavigation />\n * </LayoutNav>\n * // only required when using SSR\n * <NoSsr>\n * <MyWindowSplitter />\n * </NoSsr>\n * <Main navOffset>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const LayoutWindowSplitter = forwardRef<\n HTMLButtonElement,\n LayoutWindowSplitterProps\n>(function LayoutWindowSplitter(props, ref) {\n const {\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel = ariaLabelledBy ? undefined : \"Resize Navigation\",\n appBarOffset,\n disableResponsive,\n className,\n navWidth,\n ...remaining\n } = props;\n\n useCSSVariables<DefinedCSSVariableName>(\n useMemo(\n () => [{ name: \"--rmd-layout-size\", value: `${navWidth}px` }],\n [navWidth]\n )\n );\n\n return (\n <WindowSplitter\n {...remaining}\n ref={ref}\n aria-label={ariaLabel as string}\n aria-labelledby={ariaLabelledBy}\n className={layoutWindowSplitter({\n appBarOffset,\n disableResponsive,\n className,\n })}\n />\n );\n});\n"],"names":["forwardRef","useMemo","useCSSVariables","WindowSplitter","layoutWindowSplitter","LayoutWindowSplitter","props","ref","ariaLabelledBy","ariaLabel","undefined","appBarOffset","disableResponsive","className","navWidth","remaining","name","value","aria-label","aria-labelledby"],"mappings":"AAAA;;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAE5C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SACEC,cAAc,QAET,uCAAuC;AAE9C,SACEC,oBAAoB,QAEf,kCAAkC;AAqBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DC,GACD,OAAO,MAAMC,qCAAuBL,WAGlC,SAASK,qBAAqBC,KAAK,EAAEC,GAAG;IACxC,MAAM,EACJ,mBAAmBC,cAAc,EACjC,cAAcC,YAAYD,iBAAiBE,YAAY,mBAAmB,EAC1EC,YAAY,EACZC,iBAAiB,EACjBC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGT;IAEJJ,gBACED,QACE,IAAM;YAAC;gBAAEe,MAAM;gBAAqBC,OAAO,CAAC,EAAEH,SAAS,EAAE,CAAC;YAAC;SAAE,EAC7D;QAACA;KAAS;IAId,qBACE,KAACX;QACE,GAAGY,SAAS;QACbR,KAAKA;QACLW,cAAYT;QACZU,mBAAiBX;QACjBK,WAAWT,qBAAqB;YAC9BO;YACAC;YACAC;QACF;;AAGN,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/Main.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type ElementType,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { main, type MainClassNameOptions } from \"./mainStyles.js\";\nimport { useMainTabIndex } from \"./useMainTabIndex.js\";\n\n/**\n * @since 6.0.0\n */\nexport type CustomMainElement = ElementType<\n HTMLAttributes<HTMLElement> & {\n ref: Ref<HTMLElement>;\n className?: string;\n tabIndex?: number;\n }\n>;\n\n/**\n * @since 6.0.0\n */\nexport interface MainProps\n extends HTMLAttributes<HTMLElement>,\n MainClassNameOptions {\n /**\n * @defaultValue `\"main\"`\n */\n as?: CustomMainElement;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is really only used to dynamically set the `tabIndex` to `-1`\n * while using a keyboard for the `SkipToMainContent` component's focus behavior\n * to work correctly. If you don't need that functionality, use the {@link main}\n * style utility instead.\n *\n * @example Styles Only\n * ```tsx\n * import { main as mainStyles } from \"@react-md/core\":\n *\n * function MyCustomMainElement({ children }) {\n * return (\n * <main\n * className={mainStyles({\n * navOffset: true,\n * appBarOffset: true,\n * })}\n * >\n * {children}\n * </main>\n * );\n * }\n * ```\n *\n * @since 6.0.0 Renamed from `LayoutMain` removed a lot of\n * functionality to keep this component simple.\n */\nexport const Main = forwardRef<HTMLElement, MainProps>(\n function Main(props, ref) {\n const {\n as: Component = \"main\",\n id: propId,\n className,\n children,\n tabIndex: propTabIndex,\n navOffset,\n appBarOffset,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"main\");\n const tabIndex = useMainTabIndex(propTabIndex);\n\n return (\n <Component\n {...remaining}\n id={id}\n ref={ref}\n className={main({ navOffset, appBarOffset, className })}\n tabIndex={tabIndex}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["forwardRef","useEnsuredId","main","useMainTabIndex","Main","props","ref","as","Component","id","propId","className","children","tabIndex","propTabIndex","navOffset","appBarOffset","remaining"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SACEA,UAAU,QAKL,QAAQ;AACf,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,IAAI,QAAmC,kBAAkB;AAClE,SAASC,eAAe,QAAQ,uBAAuB;AA0BvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,MAAMC,qBAAOJ,WAClB,SAASI,KAAKC,KAAK,EAAEC,GAAG;IACtB,MAAM,EACJC,IAAIC,YAAY,MAAM,EACtBC,IAAIC,MAAM,EACVC,SAAS,EACTC,QAAQ,EACRC,UAAUC,YAAY,EACtBC,SAAS,EACTC,YAAY,EACZ,GAAGC,WACJ,GAAGZ;IACJ,MAAMI,KAAKR,aAAaS,QAAQ;IAChC,MAAMG,WAAWV,gBAAgBW;IAEjC,qBACE,KAACN;QACE,GAAGS,SAAS;QACbR,IAAIA;QACJH,KAAKA;QACLK,WAAWT,KAAK;YAAEa;YAAWC;YAAcL;QAAU;QACrDE,UAAUA;kBAETD;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/layout/Main.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type ElementType,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { main, type MainClassNameOptions } from \"./mainStyles.js\";\nimport { useMainTabIndex } from \"./useMainTabIndex.js\";\n\n/**\n * @since 6.0.0\n */\nexport type CustomMainElement = ElementType<\n HTMLAttributes<HTMLElement> & {\n ref: Ref<HTMLElement>;\n className?: string;\n tabIndex?: number;\n }\n>;\n\n/**\n * @since 6.0.0\n */\nexport interface MainProps\n extends HTMLAttributes<HTMLElement>,\n MainClassNameOptions {\n /**\n * @defaultValue `\"main\"`\n */\n as?: CustomMainElement;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is really only used to dynamically set the `tabIndex` to `-1`\n * while using a keyboard for the `SkipToMainContent` component's focus behavior\n * to work correctly. If you don't need that functionality, use the {@link main}\n * style utility instead.\n *\n * @example Styles Only\n * ```tsx\n * import { main as mainStyles } from \"@react-md/core\":\n *\n * function MyCustomMainElement({ children }) {\n * return (\n * <main\n * className={mainStyles({\n * navOffset: true,\n * appBarOffset: true,\n * })}\n * >\n * {children}\n * </main>\n * );\n * }\n * ```\n *\n * @since 6.0.0 Renamed from `LayoutMain` removed a lot of\n * functionality to keep this component simple.\n */\nexport const Main = forwardRef<HTMLElement, MainProps>(\n function Main(props, ref) {\n const {\n as: Component = \"main\",\n id: propId,\n className,\n children,\n tabIndex: propTabIndex,\n navOffset,\n appBarOffset,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"main\");\n const tabIndex = useMainTabIndex(propTabIndex);\n\n return (\n <Component\n {...remaining}\n id={id}\n ref={ref}\n className={main({ navOffset, appBarOffset, className })}\n tabIndex={tabIndex}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["forwardRef","useEnsuredId","main","useMainTabIndex","Main","props","ref","as","Component","id","propId","className","children","tabIndex","propTabIndex","navOffset","appBarOffset","remaining"],"mappings":"AAAA;;AACA,SACEA,UAAU,QAKL,QAAQ;AACf,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,IAAI,QAAmC,kBAAkB;AAClE,SAASC,eAAe,QAAQ,uBAAuB;AA0BvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,MAAMC,qBAAOJ,WAClB,SAASI,KAAKC,KAAK,EAAEC,GAAG;IACtB,MAAM,EACJC,IAAIC,YAAY,MAAM,EACtBC,IAAIC,MAAM,EACVC,SAAS,EACTC,QAAQ,EACRC,UAAUC,YAAY,EACtBC,SAAS,EACTC,YAAY,EACZ,GAAGC,WACJ,GAAGZ;IACJ,MAAMI,KAAKR,aAAaS,QAAQ;IAChC,MAAMG,WAAWV,gBAAgBW;IAEjC,qBACE,KAACN;QACE,GAAGS,SAAS;QACbR,IAAIA;QACJH,KAAKA;QACLK,WAAWT,KAAK;YAAEa;YAAWC;YAAcL;QAAU;QACrDE,UAAUA;kBAETD;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/layoutNavStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-nav\");\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutNavClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the nav should appear below the fixed app bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function layoutNav(options: LayoutNavClassNameOptions = {}): string {\n const { className, appBarOffset } = options;\n\n return cnb(styles({ \"offset-v\": appBarOffset }), className);\n}\n"],"names":["cnb","bem","styles","layoutNav","options","className","appBarOffset"],"rangeMappings":";;;;;;;;;;","mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAgBnB;;CAEC,GACD,OAAO,SAASE,UAAUC,UAAqC,CAAC,CAAC;IAC/D,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAGF;IAEpC,OAAOJ,IAAIE,OAAO;QAAE,YAAYI;IAAa,IAAID;AACnD"}
1
+ {"version":3,"sources":["../../src/layout/layoutNavStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-nav\");\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutNavClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the nav should appear below the fixed app bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function layoutNav(options: LayoutNavClassNameOptions = {}): string {\n const { className, appBarOffset } = options;\n\n return cnb(styles({ \"offset-v\": appBarOffset }), className);\n}\n"],"names":["cnb","bem","styles","layoutNav","options","className","appBarOffset"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAgBnB;;CAEC,GACD,OAAO,SAASE,UAAUC,UAAqC,CAAC,CAAC;IAC/D,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAGF;IAEpC,OAAOJ,IAAIE,OAAO;QAAE,YAAYI;IAAa,IAAID;AACnD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/layoutWindowSplitterStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-splitter\");\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutWindowSplitterClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the window splitter should stop below the fixed app\n * bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n\n /**\n * Set this to `true` if the window splitter should no longer automatically be\n * hidden on for any viewport below the `$layout-navigation-breakpoint`\n * (default phone).\n *\n * @defaultValue `false`\n */\n disableResponsive?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function layoutWindowSplitter(\n options: LayoutWindowSplitterClassNameOptions = {}\n): string {\n const { className, appBarOffset, disableResponsive } = options;\n\n return cnb(\n styles({\n \"offset-v\": appBarOffset,\n responsive: !disableResponsive,\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","layoutWindowSplitter","options","className","appBarOffset","disableResponsive","responsive"],"rangeMappings":";;;;;;;;;;;","mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AA0BnB;;CAEC,GACD,OAAO,SAASE,qBACdC,UAAgD,CAAC,CAAC;IAElD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAEC,iBAAiB,EAAE,GAAGH;IAEvD,OAAOJ,IACLE,OAAO;QACL,YAAYI;QACZE,YAAY,CAACD;IACf,IACAF;AAEJ"}
1
+ {"version":3,"sources":["../../src/layout/layoutWindowSplitterStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-splitter\");\n\n/**\n * @since 6.0.0\n */\nexport interface LayoutWindowSplitterClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the window splitter should stop below the fixed app\n * bar.\n *\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n\n /**\n * Set this to `true` if the window splitter should no longer automatically be\n * hidden on for any viewport below the `$layout-navigation-breakpoint`\n * (default phone).\n *\n * @defaultValue `false`\n */\n disableResponsive?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function layoutWindowSplitter(\n options: LayoutWindowSplitterClassNameOptions = {}\n): string {\n const { className, appBarOffset, disableResponsive } = options;\n\n return cnb(\n styles({\n \"offset-v\": appBarOffset,\n responsive: !disableResponsive,\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","layoutWindowSplitter","options","className","appBarOffset","disableResponsive","responsive"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AA0BnB;;CAEC,GACD,OAAO,SAASE,qBACdC,UAAgD,CAAC,CAAC;IAElD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAEC,iBAAiB,EAAE,GAAGH;IAEvD,OAAOJ,IACLE,OAAO;QACL,YAAYI;QACZE,YAAY,CAACD;IACf,IACAF;AAEJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/mainStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-main\");\n\n/**\n * @since 6.0.0\n */\nexport interface MainClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` to apply `margin-left` equal to the current navigation\n * width. If you want this value to animate, use the `useMainClassName` hook\n * instead.\n *\n * @defaultValue `false`\n */\n navOffset?: boolean;\n\n /**\n * Set this to `true` to apply `padding-top` equal to the height of the main\n * app bar so that content is not covered.\n *\n * @see {@link useLayoutAppBarHeight}\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function main(options: MainClassNameOptions = {}): string {\n const { navOffset, appBarOffset, className } = options;\n\n return cnb(\n styles({\n \"offset-v\": appBarOffset,\n }),\n navOffset && \"rmd-layout-h--active\",\n className\n );\n}\n"],"names":["cnb","bem","styles","main","options","navOffset","appBarOffset","className"],"rangeMappings":";;;;;;;;;;","mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AA2BnB;;CAEC,GACD,OAAO,SAASE,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGH;IAE/C,OAAOJ,IACLE,OAAO;QACL,YAAYI;IACd,IACAD,aAAa,wBACbE;AAEJ"}
1
+ {"version":3,"sources":["../../src/layout/mainStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-layout-main\");\n\n/**\n * @since 6.0.0\n */\nexport interface MainClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` to apply `margin-left` equal to the current navigation\n * width. If you want this value to animate, use the `useMainClassName` hook\n * instead.\n *\n * @defaultValue `false`\n */\n navOffset?: boolean;\n\n /**\n * Set this to `true` to apply `padding-top` equal to the height of the main\n * app bar so that content is not covered.\n *\n * @see {@link useLayoutAppBarHeight}\n * @defaultValue `false`\n */\n appBarOffset?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function main(options: MainClassNameOptions = {}): string {\n const { navOffset, appBarOffset, className } = options;\n\n return cnb(\n styles({\n \"offset-v\": appBarOffset,\n }),\n navOffset && \"rmd-layout-h--active\",\n className\n );\n}\n"],"names":["cnb","bem","styles","main","options","navOffset","appBarOffset","className"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AA2BnB;;CAEC,GACD,OAAO,SAASE,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGH;IAE/C,OAAOJ,IACLE,OAAO;QACL,YAAYI;IACd,IACAD,aAAa,wBACbE;AAEJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/useExpandableLayout.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { type CSSTransitionElementProps } from \"../transition/types.js\";\nimport { type CssPosition, type UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { type LayoutNavProps } from \"./LayoutNav.js\";\nimport {\n useHorizontalLayoutTransition,\n type HorizontalLayoutTransitionOptions,\n} from \"./useHorizontalLayoutTransition.js\";\nimport { useSsr } from \"../SsrProvider.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { type useResizableLayout } from \"./useResizableLayout.js\";\nimport {\n useTemporaryLayout,\n type ProvidedLayoutNavToggleProps,\n type ProvidedTemporaryLayoutAppBarProps,\n type ProvidedTemporaryLayoutMainProps,\n type TemporaryLayoutImplementation,\n type TemporaryLayoutOptions,\n} from \"./useTemporaryLayout.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface ExpandableLayoutOptions extends TemporaryLayoutOptions {\n /** @defaultValue `\"fixed\"` */\n appBarPosition?: CssPosition;\n\n /** @defaultValue `false` */\n defaultExpanded?: UseStateInitializer<boolean>;\n\n /**\n * Set this to `true` if the expandable navigation should be the full height\n * of the screen. This will also update the app bar so that it is not covered\n * by the navigation. The default behavior is to place the navigation below\n * the fixed header.\n *\n * Set this to `\"static\"` to make the navigation span the full height of the\n * screen and hide the button until the screen shrinks to the temporary\n * layout type.\n *\n * @defaultValue `false`\n */\n fullHeightNav?: boolean | \"static\";\n\n /** @see {@link HorizontalLayoutTransitionOptions} */\n transitionProps?: Omit<HorizontalLayoutTransitionOptions, \"transitionIn\">;\n\n /**\n * Set this to `\"desktop\"` if you want to use the temporary navigation until\n * the viewport is at least desktop width instead of tablet.\n *\n * @defaultValue `\"tablet\"`\n */\n temporaryUntil?: \"tablet\" | \"desktop\";\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedLayoutMainProps\n extends ProvidedTemporaryLayoutMainProps,\n CSSTransitionElementProps<HTMLElement> {}\n\n/**\n * @since 6.0.0\n */\nexport type ProvidedLayoutNavProps = Pick<\n LayoutNavProps,\n \"expanded\" | \"appBarOffset\"\n>;\n\n/**\n * @since 6.0.0\n */\nexport type ProvidedLayoutAppBarProps = ProvidedTemporaryLayoutAppBarProps &\n Partial<CSSTransitionElementProps<HTMLElement>>;\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedExpandableLayoutNavToggleProps\n extends ProvidedLayoutNavToggleProps {\n className: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ExpandableLayoutImplementation\n extends TemporaryLayoutImplementation {\n temporary: boolean;\n persistent: boolean;\n expanded: boolean;\n expandNavigation(): void;\n collapseNavigation(): void;\n toggleNavigation(): void;\n appBarProps: ProvidedLayoutAppBarProps;\n mainProps: ProvidedLayoutMainProps;\n navToggleProps: ProvidedExpandableLayoutNavToggleProps;\n expandableNavProps: ProvidedLayoutNavProps;\n}\n\n/**\n * @example Main Usage\n * ```tsx\n * import {\n * AppBarTitle,\n * Button,\n * LayoutAppBar,\n * LayoutNav,\n * Main,\n * Sheet,\n * useExpandableLayout,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * import { CustomNavigation } from \"./CustomNavigation\";\n *\n * export interface LayoutProps {\n * children: ReactNode;\n * }\n *\n * export function Layout(props: LayoutProps): ReactElement {\n * const { children } = props;\n *\n * // choose whichever one for your app\n * // nextjs app dir\n * const pathname = usePathname();\n * // nextjs pages\n * const { pathname } = useRouter();\n * // react router\n * const { pathname } = useHistory();\n *\n * const {\n * temporary,\n * appBarProps,\n * expandableNavProps,\n * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * windowSplitterProps,\n * } = useExpandableLayout({ pathname });\n *\n * return {\n * <>\n * <LayoutAppBar {...appBarProps}>\n * <Button {...navToggleProps} />\n * <AppBarTitle>Hello, world!</AppBarTitle>\n * </LayoutAppBar>\n * <LayoutNav {...expandableNavProps}>\n * <CustomNavigation />\n * </LayoutNav>\n * {temporary && (\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * )}\n * <Main {...mainProps}>{children}</Main>\n * </>\n * }\n * }\n * ```\n *\n * If you have a large navigation panel, you can conditionally render the\n * `LayoutNav` with the `persistent` boolean returned by the hook which will\n * ensure that the DOM has rehydrated before unmounting to prevent SSR errors.\n *\n * @example Safely Conditionally Rendering\n * ```diff\n * const {\n * temporary,\n * + persistent,\n * appBarProps,\n * expandableNavProps,\n * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * windowSplitterProps,\n * } = useExpandableLayout({ pathname });\n *\n * return {\n * <>\n * <LayoutAppBar {...appBarProps}>\n * <Button {...navToggleProps} />\n * <AppBarTitle>Hello, world!</AppBarTitle>\n * </LayoutAppBar>\n * - <LayoutNav {...expandableNavProps}>\n * - <CustomNavigation />\n * - </LayoutNav>\n * + {persistent && (\n * + <LayoutNav {...expandableNavProps}>\n * + <CustomNavigation />\n * + </LayoutNav>\n * + )}\n * {temporary && (\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * )}\n * <Main {...mainProps}>{children}</Main>\n * </>\n * }\n * ```\n *\n * @since 6.0.0\n * @see {@link useResizableLayout}\n */\nexport function useExpandableLayout(\n options: ExpandableLayoutOptions\n): ExpandableLayoutImplementation {\n const {\n fullHeightNav = false,\n temporaryUntil = \"tablet\",\n transitionProps,\n defaultExpanded = fullHeightNav === \"static\",\n ...temporaryOptions\n } = options;\n\n const ssr = useSsr();\n const {\n appBarProps,\n mainProps,\n navToggleProps,\n temporaryNavProps,\n hideTemporaryNav,\n showTemporaryNav,\n visible,\n } = useTemporaryLayout(temporaryOptions);\n\n const {\n toggled: expanded,\n enable: expandNavigation,\n disable: collapseNavigation,\n toggle: toggleNavigation,\n } = useToggle(defaultExpanded);\n const { elementProps } = useHorizontalLayoutTransition({\n ...transitionProps,\n transitionIn: expanded,\n });\n const { isPhone, isDesktop } = useAppSize();\n const temporary = isPhone || (temporaryUntil === \"desktop\" && !isDesktop);\n\n return {\n visible,\n temporary,\n persistent: ssr || !temporary,\n hideTemporaryNav,\n showTemporaryNav,\n expanded,\n expandNavigation,\n collapseNavigation,\n toggleNavigation,\n appBarProps: {\n ...appBarProps,\n ...(fullHeightNav ? elementProps : {}),\n },\n mainProps: {\n ...mainProps,\n ...elementProps,\n },\n temporaryNavProps,\n expandableNavProps: {\n expanded,\n appBarOffset: !fullHeightNav,\n },\n navToggleProps: {\n ...navToggleProps,\n onClick() {\n if (temporary) {\n showTemporaryNav();\n } else {\n toggleNavigation();\n }\n },\n className: cnb(fullHeightNav === \"static\" && \"rmd-layout-nav-toggle\"),\n },\n };\n}\n"],"names":["cnb","useAppSize","useToggle","useHorizontalLayoutTransition","useSsr","useTemporaryLayout","useExpandableLayout","options","fullHeightNav","temporaryUntil","transitionProps","defaultExpanded","temporaryOptions","ssr","appBarProps","mainProps","navToggleProps","temporaryNavProps","hideTemporaryNav","showTemporaryNav","visible","toggled","expanded","enable","expandNavigation","disable","collapseNavigation","toggle","toggleNavigation","elementProps","transitionIn","isPhone","isDesktop","temporary","persistent","expandableNavProps","appBarOffset","onClick","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,sCAAsC;AAGjE,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SACEC,6BAA6B,QAExB,qCAAqC;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAG3C,SACEC,kBAAkB,QAMb,0BAA0B;AAoFjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGC,GACD,OAAO,SAASC,oBACdC,OAAgC;IAEhC,MAAM,EACJC,gBAAgB,KAAK,EACrBC,iBAAiB,QAAQ,EACzBC,eAAe,EACfC,kBAAkBH,kBAAkB,QAAQ,EAC5C,GAAGI,kBACJ,GAAGL;IAEJ,MAAMM,MAAMT;IACZ,MAAM,EACJU,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,OAAO,EACR,GAAGf,mBAAmBO;IAEvB,MAAM,EACJS,SAASC,QAAQ,EACjBC,QAAQC,gBAAgB,EACxBC,SAASC,kBAAkB,EAC3BC,QAAQC,gBAAgB,EACzB,GAAG1B,UAAUS;IACd,MAAM,EAAEkB,YAAY,EAAE,GAAG1B,8BAA8B;QACrD,GAAGO,eAAe;QAClBoB,cAAcR;IAChB;IACA,MAAM,EAAES,OAAO,EAAEC,SAAS,EAAE,GAAG/B;IAC/B,MAAMgC,YAAYF,WAAYtB,mBAAmB,aAAa,CAACuB;IAE/D,OAAO;QACLZ;QACAa;QACAC,YAAYrB,OAAO,CAACoB;QACpBf;QACAC;QACAG;QACAE;QACAE;QACAE;QACAd,aAAa;YACX,GAAGA,WAAW;YACd,GAAIN,gBAAgBqB,eAAe,CAAC,CAAC;QACvC;QACAd,WAAW;YACT,GAAGA,SAAS;YACZ,GAAGc,YAAY;QACjB;QACAZ;QACAkB,oBAAoB;YAClBb;YACAc,cAAc,CAAC5B;QACjB;QACAQ,gBAAgB;YACd,GAAGA,cAAc;YACjBqB;gBACE,IAAIJ,WAAW;oBACbd;gBACF,OAAO;oBACLS;gBACF;YACF;YACAU,WAAWtC,IAAIQ,kBAAkB,YAAY;QAC/C;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/layout/useExpandableLayout.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport { type CSSTransitionElementProps } from \"../transition/types.js\";\nimport { type CssPosition, type UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { type LayoutNavProps } from \"./LayoutNav.js\";\nimport {\n useHorizontalLayoutTransition,\n type HorizontalLayoutTransitionOptions,\n} from \"./useHorizontalLayoutTransition.js\";\nimport { useSsr } from \"../SsrProvider.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { type useResizableLayout } from \"./useResizableLayout.js\";\nimport {\n useTemporaryLayout,\n type ProvidedLayoutNavToggleProps,\n type ProvidedTemporaryLayoutAppBarProps,\n type ProvidedTemporaryLayoutMainProps,\n type TemporaryLayoutImplementation,\n type TemporaryLayoutOptions,\n} from \"./useTemporaryLayout.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface ExpandableLayoutOptions extends TemporaryLayoutOptions {\n /** @defaultValue `\"fixed\"` */\n appBarPosition?: CssPosition;\n\n /** @defaultValue `false` */\n defaultExpanded?: UseStateInitializer<boolean>;\n\n /**\n * Set this to `true` if the expandable navigation should be the full height\n * of the screen. This will also update the app bar so that it is not covered\n * by the navigation. The default behavior is to place the navigation below\n * the fixed header.\n *\n * Set this to `\"static\"` to make the navigation span the full height of the\n * screen and hide the button until the screen shrinks to the temporary\n * layout type.\n *\n * @defaultValue `false`\n */\n fullHeightNav?: boolean | \"static\";\n\n /** @see {@link HorizontalLayoutTransitionOptions} */\n transitionProps?: Omit<HorizontalLayoutTransitionOptions, \"transitionIn\">;\n\n /**\n * Set this to `\"desktop\"` if you want to use the temporary navigation until\n * the viewport is at least desktop width instead of tablet.\n *\n * @defaultValue `\"tablet\"`\n */\n temporaryUntil?: \"tablet\" | \"desktop\";\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedLayoutMainProps\n extends ProvidedTemporaryLayoutMainProps,\n CSSTransitionElementProps<HTMLElement> {}\n\n/**\n * @since 6.0.0\n */\nexport type ProvidedLayoutNavProps = Pick<\n LayoutNavProps,\n \"expanded\" | \"appBarOffset\"\n>;\n\n/**\n * @since 6.0.0\n */\nexport type ProvidedLayoutAppBarProps = ProvidedTemporaryLayoutAppBarProps &\n Partial<CSSTransitionElementProps<HTMLElement>>;\n\n/**\n * @since 6.0.0\n */\nexport interface ProvidedExpandableLayoutNavToggleProps\n extends ProvidedLayoutNavToggleProps {\n className: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ExpandableLayoutImplementation\n extends TemporaryLayoutImplementation {\n temporary: boolean;\n persistent: boolean;\n expanded: boolean;\n expandNavigation(): void;\n collapseNavigation(): void;\n toggleNavigation(): void;\n appBarProps: ProvidedLayoutAppBarProps;\n mainProps: ProvidedLayoutMainProps;\n navToggleProps: ProvidedExpandableLayoutNavToggleProps;\n expandableNavProps: ProvidedLayoutNavProps;\n}\n\n/**\n * @example Main Usage\n * ```tsx\n * import {\n * AppBarTitle,\n * Button,\n * LayoutAppBar,\n * LayoutNav,\n * Main,\n * Sheet,\n * useExpandableLayout,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * import { CustomNavigation } from \"./CustomNavigation\";\n *\n * export interface LayoutProps {\n * children: ReactNode;\n * }\n *\n * export function Layout(props: LayoutProps): ReactElement {\n * const { children } = props;\n *\n * // choose whichever one for your app\n * // nextjs app dir\n * const pathname = usePathname();\n * // nextjs pages\n * const { pathname } = useRouter();\n * // react router\n * const { pathname } = useHistory();\n *\n * const {\n * temporary,\n * appBarProps,\n * expandableNavProps,\n * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * windowSplitterProps,\n * } = useExpandableLayout({ pathname });\n *\n * return {\n * <>\n * <LayoutAppBar {...appBarProps}>\n * <Button {...navToggleProps} />\n * <AppBarTitle>Hello, world!</AppBarTitle>\n * </LayoutAppBar>\n * <LayoutNav {...expandableNavProps}>\n * <CustomNavigation />\n * </LayoutNav>\n * {temporary && (\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * )}\n * <Main {...mainProps}>{children}</Main>\n * </>\n * }\n * }\n * ```\n *\n * If you have a large navigation panel, you can conditionally render the\n * `LayoutNav` with the `persistent` boolean returned by the hook which will\n * ensure that the DOM has rehydrated before unmounting to prevent SSR errors.\n *\n * @example Safely Conditionally Rendering\n * ```diff\n * const {\n * temporary,\n * + persistent,\n * appBarProps,\n * expandableNavProps,\n * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * windowSplitterProps,\n * } = useExpandableLayout({ pathname });\n *\n * return {\n * <>\n * <LayoutAppBar {...appBarProps}>\n * <Button {...navToggleProps} />\n * <AppBarTitle>Hello, world!</AppBarTitle>\n * </LayoutAppBar>\n * - <LayoutNav {...expandableNavProps}>\n * - <CustomNavigation />\n * - </LayoutNav>\n * + {persistent && (\n * + <LayoutNav {...expandableNavProps}>\n * + <CustomNavigation />\n * + </LayoutNav>\n * + )}\n * {temporary && (\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * )}\n * <Main {...mainProps}>{children}</Main>\n * </>\n * }\n * ```\n *\n * @since 6.0.0\n * @see {@link useResizableLayout}\n */\nexport function useExpandableLayout(\n options: ExpandableLayoutOptions\n): ExpandableLayoutImplementation {\n const {\n fullHeightNav = false,\n temporaryUntil = \"tablet\",\n transitionProps,\n defaultExpanded = fullHeightNav === \"static\",\n ...temporaryOptions\n } = options;\n\n const ssr = useSsr();\n const {\n appBarProps,\n mainProps,\n navToggleProps,\n temporaryNavProps,\n hideTemporaryNav,\n showTemporaryNav,\n visible,\n } = useTemporaryLayout(temporaryOptions);\n\n const {\n toggled: expanded,\n enable: expandNavigation,\n disable: collapseNavigation,\n toggle: toggleNavigation,\n } = useToggle(defaultExpanded);\n const { elementProps } = useHorizontalLayoutTransition({\n ...transitionProps,\n transitionIn: expanded,\n });\n const { isPhone, isDesktop } = useAppSize();\n const temporary = isPhone || (temporaryUntil === \"desktop\" && !isDesktop);\n\n return {\n visible,\n temporary,\n persistent: ssr || !temporary,\n hideTemporaryNav,\n showTemporaryNav,\n expanded,\n expandNavigation,\n collapseNavigation,\n toggleNavigation,\n appBarProps: {\n ...appBarProps,\n ...(fullHeightNav ? elementProps : {}),\n },\n mainProps: {\n ...mainProps,\n ...elementProps,\n },\n temporaryNavProps,\n expandableNavProps: {\n expanded,\n appBarOffset: !fullHeightNav,\n },\n navToggleProps: {\n ...navToggleProps,\n onClick() {\n if (temporary) {\n showTemporaryNav();\n } else {\n toggleNavigation();\n }\n },\n className: cnb(fullHeightNav === \"static\" && \"rmd-layout-nav-toggle\"),\n },\n };\n}\n"],"names":["cnb","useAppSize","useToggle","useHorizontalLayoutTransition","useSsr","useTemporaryLayout","useExpandableLayout","options","fullHeightNav","temporaryUntil","transitionProps","defaultExpanded","temporaryOptions","ssr","appBarProps","mainProps","navToggleProps","temporaryNavProps","hideTemporaryNav","showTemporaryNav","visible","toggled","expanded","enable","expandNavigation","disable","collapseNavigation","toggle","toggleNavigation","elementProps","transitionIn","isPhone","isDesktop","temporary","persistent","expandableNavProps","appBarOffset","onClick","className"],"mappings":"AAAA;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,sCAAsC;AAGjE,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SACEC,6BAA6B,QAExB,qCAAqC;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAG3C,SACEC,kBAAkB,QAMb,0BAA0B;AAoFjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGC,GACD,OAAO,SAASC,oBACdC,OAAgC;IAEhC,MAAM,EACJC,gBAAgB,KAAK,EACrBC,iBAAiB,QAAQ,EACzBC,eAAe,EACfC,kBAAkBH,kBAAkB,QAAQ,EAC5C,GAAGI,kBACJ,GAAGL;IAEJ,MAAMM,MAAMT;IACZ,MAAM,EACJU,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,OAAO,EACR,GAAGf,mBAAmBO;IAEvB,MAAM,EACJS,SAASC,QAAQ,EACjBC,QAAQC,gBAAgB,EACxBC,SAASC,kBAAkB,EAC3BC,QAAQC,gBAAgB,EACzB,GAAG1B,UAAUS;IACd,MAAM,EAAEkB,YAAY,EAAE,GAAG1B,8BAA8B;QACrD,GAAGO,eAAe;QAClBoB,cAAcR;IAChB;IACA,MAAM,EAAES,OAAO,EAAEC,SAAS,EAAE,GAAG/B;IAC/B,MAAMgC,YAAYF,WAAYtB,mBAAmB,aAAa,CAACuB;IAE/D,OAAO;QACLZ;QACAa;QACAC,YAAYrB,OAAO,CAACoB;QACpBf;QACAC;QACAG;QACAE;QACAE;QACAE;QACAd,aAAa;YACX,GAAGA,WAAW;YACd,GAAIN,gBAAgBqB,eAAe,CAAC,CAAC;QACvC;QACAd,WAAW;YACT,GAAGA,SAAS;YACZ,GAAGc,YAAY;QACjB;QACAZ;QACAkB,oBAAoB;YAClBb;YACAc,cAAc,CAAC5B;QACjB;QACAQ,gBAAgB;YACd,GAAGA,cAAc;YACjBqB;gBACE,IAAIJ,WAAW;oBACbd;gBACF,OAAO;oBACLS;gBACF;YACF;YACAU,WAAWtC,IAAIQ,kBAAkB,YAAY;QAC/C;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/useHorizontalLayoutTransition.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { DEFAULT_SHEET_TIMEOUT } from \"../sheet/Sheet.js\";\nimport {\n type CSSTransitionClassNames,\n type CSSTransitionHookReturnValue,\n type PreconfiguredCSSTransitionOptions,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\n\n/**\n * @since 6.0.0\n */\nexport const DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES = {\n appearDone: \"rmd-layout-h--active\",\n enter: \"rmd-layout-h--enter\",\n enterActive: \"rmd-layout-h--active\",\n enterDone: \"rmd-layout-h--active\",\n exit: \"rmd-layout-h--exit\",\n} satisfies Readonly<CSSTransitionClassNames>;\n\n/**\n * @since 6.0.0\n */\nexport interface HorizontalLayoutTransitionOptions\n extends PreconfiguredCSSTransitionOptions<HTMLElement> {\n /**\n * @see {@link DEFAULT_SHEET_TIMEOUT}\n * @defaultValue `DEFAULT_SHEET_TIMEOUT`\n */\n timeout?: TransitionTimeout;\n /**\n * @see {@link DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES}\n * @defaultValue `DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES`\n */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * @example\n * ```tsx\n * import { LayoutAppBar, Main, useHorizontalLayoutTransition } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * interface Props {\n * title: ReactNode;\n * children: ReactNode;\n * }\n *\n * export default function Example({ title, children }: Props): ReactElement {\n * const { toggled: staticNavExpanded, toggle: toggleStaticNav } = useToggle();\n * const { elementProps, className } = useHorizontalLayoutTransition({\n * transitionIn: staticNavExpanded,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar className={className}>\n * <Button\n * aria-label=\"Navigation\"\n * buttonType=\"icon\"\n * onClick={toggleStaticNav}\n * >\n * <MenuOutlinedIcon />\n * '</Button>\n * {title}\n * </LayoutAppBar>\n * <Main {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useHorizontalLayoutTransition<\n E extends HTMLElement = HTMLElement,\n>(options: HorizontalLayoutTransitionOptions): CSSTransitionHookReturnValue<E> {\n return useCSSTransition({\n timeout: DEFAULT_SHEET_TIMEOUT,\n classNames: DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES,\n ...options,\n className: cnb(\"rmd-layout-h\", options.className),\n });\n}\n"],"names":["cnb","DEFAULT_SHEET_TIMEOUT","useCSSTransition","DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES","appearDone","enter","enterActive","enterDone","exit","useHorizontalLayoutTransition","options","timeout","classNames","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,qBAAqB,QAAQ,oBAAoB;AAO1D,SAASC,gBAAgB,QAAQ,oCAAoC;AAErE;;CAEC,GACD,OAAO,MAAMC,kDAAkD;IAC7DC,YAAY;IACZC,OAAO;IACPC,aAAa;IACbC,WAAW;IACXC,MAAM;AACR,EAA8C;AAmB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCC,GACD,OAAO,SAASC,8BAEdC,OAA0C;IAC1C,OAAOR,iBAAiB;QACtBS,SAASV;QACTW,YAAYT;QACZ,GAAGO,OAAO;QACVG,WAAWb,IAAI,gBAAgBU,QAAQG,SAAS;IAClD;AACF"}
1
+ {"version":3,"sources":["../../src/layout/useHorizontalLayoutTransition.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { DEFAULT_SHEET_TIMEOUT } from \"../sheet/Sheet.js\";\nimport {\n type CSSTransitionClassNames,\n type CSSTransitionHookReturnValue,\n type PreconfiguredCSSTransitionOptions,\n type TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\n\n/**\n * @since 6.0.0\n */\nexport const DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES = {\n appearDone: \"rmd-layout-h--active\",\n enter: \"rmd-layout-h--enter\",\n enterActive: \"rmd-layout-h--active\",\n enterDone: \"rmd-layout-h--active\",\n exit: \"rmd-layout-h--exit\",\n} satisfies Readonly<CSSTransitionClassNames>;\n\n/**\n * @since 6.0.0\n */\nexport interface HorizontalLayoutTransitionOptions\n extends PreconfiguredCSSTransitionOptions<HTMLElement> {\n /**\n * @see {@link DEFAULT_SHEET_TIMEOUT}\n * @defaultValue `DEFAULT_SHEET_TIMEOUT`\n */\n timeout?: TransitionTimeout;\n /**\n * @see {@link DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES}\n * @defaultValue `DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES`\n */\n classNames?: CSSTransitionClassNames;\n}\n\n/**\n * @example\n * ```tsx\n * import { LayoutAppBar, Main, useHorizontalLayoutTransition } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * interface Props {\n * title: ReactNode;\n * children: ReactNode;\n * }\n *\n * export default function Example({ title, children }: Props): ReactElement {\n * const { toggled: staticNavExpanded, toggle: toggleStaticNav } = useToggle();\n * const { elementProps, className } = useHorizontalLayoutTransition({\n * transitionIn: staticNavExpanded,\n * });\n *\n * return (\n * <>\n * <LayoutAppBar className={className}>\n * <Button\n * aria-label=\"Navigation\"\n * buttonType=\"icon\"\n * onClick={toggleStaticNav}\n * >\n * <MenuOutlinedIcon />\n * '</Button>\n * {title}\n * </LayoutAppBar>\n * <Main {...elementProps}>\n * {children}\n * </Main>\n * </>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useHorizontalLayoutTransition<\n E extends HTMLElement = HTMLElement,\n>(options: HorizontalLayoutTransitionOptions): CSSTransitionHookReturnValue<E> {\n return useCSSTransition({\n timeout: DEFAULT_SHEET_TIMEOUT,\n classNames: DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES,\n ...options,\n className: cnb(\"rmd-layout-h\", options.className),\n });\n}\n"],"names":["cnb","DEFAULT_SHEET_TIMEOUT","useCSSTransition","DEFAULT_HORIZONTAL_LAYOUT_TRANSITION_CLASSNAMES","appearDone","enter","enterActive","enterDone","exit","useHorizontalLayoutTransition","options","timeout","classNames","className"],"mappings":"AAAA;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,qBAAqB,QAAQ,oBAAoB;AAO1D,SAASC,gBAAgB,QAAQ,oCAAoC;AAErE;;CAEC,GACD,OAAO,MAAMC,kDAAkD;IAC7DC,YAAY;IACZC,OAAO;IACPC,aAAa;IACbC,WAAW;IACXC,MAAM;AACR,EAA8C;AAmB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCC,GACD,OAAO,SAASC,8BAEdC,OAA0C;IAC1C,OAAOR,iBAAiB;QACtBS,SAASV;QACTW,YAAYT;QACZ,GAAGO,OAAO;QACVG,WAAWb,IAAI,gBAAgBU,QAAQG,SAAS;IAClD;AACF"}