@react-md/core 1.0.0-next.4 → 1.0.0-next.5

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 (1110) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/CHANGELOG.md +6 -0
  3. package/dist/CoreProviders.js.map +1 -0
  4. package/dist/NoSsr.js.map +1 -0
  5. package/dist/SsrProvider.js.map +1 -0
  6. package/dist/app-bar/AppBar.js.map +1 -0
  7. package/dist/app-bar/AppBarTitle.js.map +1 -0
  8. package/dist/avatar/Avatar.js.map +1 -0
  9. package/dist/avatar/styles.js.map +1 -0
  10. package/dist/badge/Badge.js.map +1 -0
  11. package/dist/box/Box.js.map +1 -0
  12. package/dist/box/styles.js.map +1 -0
  13. package/dist/button/AsyncButton.js.map +1 -0
  14. package/dist/button/Button.js.map +1 -0
  15. package/dist/button/ButtonUnstyled.js.map +1 -0
  16. package/dist/button/FloatingActionButton.js.map +1 -0
  17. package/dist/button/TooltippedButton.js.map +1 -0
  18. package/dist/button/buttonStyles.js.map +1 -0
  19. package/dist/button/buttonUnstyledStyles.js.map +1 -0
  20. package/dist/card/Card.js.map +1 -0
  21. package/dist/card/CardContent.js.map +1 -0
  22. package/dist/card/CardFooter.js.map +1 -0
  23. package/dist/card/CardHeader.js.map +1 -0
  24. package/dist/card/CardSubtitle.js.map +1 -0
  25. package/dist/card/CardTitle.js.map +1 -0
  26. package/dist/card/ClickableCard.js.map +1 -0
  27. package/dist/card/styles.js.map +1 -0
  28. package/dist/chip/Chip.js.map +1 -0
  29. package/dist/chip/styles.js.map +1 -0
  30. package/dist/cssUtils.js.map +1 -0
  31. package/dist/delegateEvent.js.map +1 -0
  32. package/dist/dialog/Dialog.js.map +1 -0
  33. package/dist/dialog/DialogContainer.js.map +1 -0
  34. package/dist/dialog/DialogContent.js.map +1 -0
  35. package/dist/dialog/DialogFooter.js.map +1 -0
  36. package/dist/dialog/DialogHeader.js.map +1 -0
  37. package/dist/dialog/DialogTitle.js.map +1 -0
  38. package/dist/dialog/FixedDialog.js.map +1 -0
  39. package/dist/dialog/NestedDialogProvider.js.map +1 -0
  40. package/dist/dialog/styles.js.map +1 -0
  41. package/dist/divider/Divider.js.map +1 -0
  42. package/dist/divider/styles.js.map +1 -0
  43. package/dist/draggable/useDraggable.js.map +1 -0
  44. package/dist/draggable/utils.js.map +1 -0
  45. package/dist/expansion-panel/ExpansionList.js.map +1 -0
  46. package/dist/expansion-panel/ExpansionPanel.js.map +1 -0
  47. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -0
  48. package/dist/expansion-panel/useExpansionList.js.map +1 -0
  49. package/dist/expansion-panel/useExpansionPanels.js.map +1 -0
  50. package/dist/focus/useFocusContainer.js.map +1 -0
  51. package/dist/focus/utils.js.map +1 -0
  52. package/dist/form/Checkbox.js.map +1 -0
  53. package/dist/form/Fieldset.js.map +1 -0
  54. package/dist/form/FileInput.js.map +1 -0
  55. package/dist/form/Form.js.map +1 -0
  56. package/dist/form/FormMessage.js.map +1 -0
  57. package/dist/form/FormMessageContainer.js.map +1 -0
  58. package/dist/form/FormMessageCounter.js.map +1 -0
  59. package/dist/form/InputToggle.js.map +1 -0
  60. package/dist/form/InputToggleIcon.js.map +1 -0
  61. package/dist/form/Label.js.map +1 -0
  62. package/dist/form/Legend.js.map +1 -0
  63. package/dist/form/MenuItemCheckbox.js.map +1 -0
  64. package/dist/form/MenuItemFileInput.js.map +1 -0
  65. package/dist/form/MenuItemInputToggle.js.map +1 -0
  66. package/dist/form/MenuItemRadio.js.map +1 -0
  67. package/dist/form/MenuItemSwitch.js.map +1 -0
  68. package/dist/form/MenuItemTextField.js.map +1 -0
  69. package/dist/form/NativeSelect.js.map +1 -0
  70. package/dist/form/OptGroup.js.map +1 -0
  71. package/dist/form/Option.js.map +1 -0
  72. package/dist/form/Password.js.map +1 -0
  73. package/dist/form/Radio.js.map +1 -0
  74. package/dist/form/Select.js.map +1 -0
  75. package/dist/form/SelectValue.js.map +1 -0
  76. package/dist/form/Slider.js.map +1 -0
  77. package/dist/form/SliderContainer.js.map +1 -0
  78. package/dist/form/SliderMark.js.map +1 -0
  79. package/dist/form/SliderMarkLabel.js.map +1 -0
  80. package/dist/form/SliderThumb.js.map +1 -0
  81. package/dist/form/SliderTrack.js.map +1 -0
  82. package/dist/form/SliderValueMarks.js.map +1 -0
  83. package/dist/form/SliderValueTooltip.js.map +1 -0
  84. package/dist/form/Switch.js.map +1 -0
  85. package/dist/form/SwitchTrack.js.map +1 -0
  86. package/dist/form/TextArea.js.map +1 -0
  87. package/dist/form/TextField.js.map +1 -0
  88. package/dist/form/TextFieldAddon.js.map +1 -0
  89. package/dist/form/TextFieldContainer.js.map +1 -0
  90. package/dist/form/TextFieldContainerStyles.js.map +1 -0
  91. package/dist/form/fileUtils.js.map +1 -0
  92. package/dist/form/formConfig.js.map +1 -0
  93. package/dist/form/formMessageStyles.js.map +1 -0
  94. package/dist/form/inputToggleStyles.js.map +1 -0
  95. package/dist/form/nativeSelectStyles.js.map +1 -0
  96. package/dist/form/optionStyles.js.map +1 -0
  97. package/dist/form/passwordStyles.js.map +1 -0
  98. package/dist/form/selectStyles.js.map +1 -0
  99. package/dist/form/selectUtils.js.map +1 -0
  100. package/dist/form/sliderUtils.js.map +1 -0
  101. package/dist/form/switchStyles.js.map +1 -0
  102. package/dist/form/textAreaStyles.js.map +1 -0
  103. package/dist/form/textFieldStyles.js.map +1 -0
  104. package/dist/form/types.js.map +1 -0
  105. package/dist/form/useCheckboxGroup.js.map +1 -0
  106. package/dist/form/useFileUpload.js.map +1 -0
  107. package/dist/form/useListboxProvider.js.map +1 -0
  108. package/dist/form/useNumberField.js.map +1 -0
  109. package/dist/form/useRadioGroup.js.map +1 -0
  110. package/dist/form/useRangeSlider.js.map +1 -0
  111. package/dist/form/useResizingTextArea.js.map +1 -0
  112. package/dist/form/useSlider.js.map +1 -0
  113. package/dist/form/useTextField.js.map +1 -0
  114. package/dist/form/utils.js.map +1 -0
  115. package/dist/form/validation.js.map +1 -0
  116. package/dist/hoverMode/useHoverMode.js.map +1 -0
  117. package/dist/hoverMode/useHoverModeProvider.js.map +1 -0
  118. package/dist/icon/FontIcon.js.map +1 -0
  119. package/dist/icon/IconRotator.js.map +1 -0
  120. package/dist/icon/MaterialIcon.js.map +1 -0
  121. package/dist/icon/MaterialSymbol.js.map +1 -0
  122. package/dist/icon/SVGIcon.js.map +1 -0
  123. package/dist/icon/TextIconSpacing.js.map +1 -0
  124. package/dist/icon/iconConfig.js.map +1 -0
  125. package/dist/icon/material.js.map +1 -0
  126. package/dist/icon/materialConfig.js.map +1 -0
  127. package/dist/icon/styles.js.map +1 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/interaction/Ripple.js.map +1 -0
  130. package/dist/interaction/RippleContainer.js.map +1 -0
  131. package/dist/interaction/UserInteractionModeProvider.js.map +1 -0
  132. package/dist/interaction/config.js.map +1 -0
  133. package/dist/interaction/types.js.map +1 -0
  134. package/dist/interaction/useElementInteraction.js.map +1 -0
  135. package/dist/interaction/useHigherContrastChildren.js.map +1 -0
  136. package/dist/interaction/utils.js.map +1 -0
  137. package/dist/layout/LayoutAppBar.js.map +1 -0
  138. package/dist/layout/LayoutNav.js.map +1 -0
  139. package/dist/layout/LayoutWindowSplitter.js.map +1 -0
  140. package/dist/layout/Main.js.map +1 -0
  141. package/dist/layout/layoutNavStyles.js.map +1 -0
  142. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -0
  143. package/dist/layout/mainStyles.js.map +1 -0
  144. package/dist/layout/useExpandableLayout.js.map +1 -0
  145. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -0
  146. package/dist/layout/useLayoutAppBarHeight.js.map +1 -0
  147. package/dist/layout/useLayoutTree.js.map +1 -0
  148. package/dist/layout/useLayoutWindowSplitter.js.map +1 -0
  149. package/dist/layout/useMainTabIndex.js.map +1 -0
  150. package/dist/layout/useResizableLayout.js.map +1 -0
  151. package/dist/layout/useTemporaryLayout.js.map +1 -0
  152. package/dist/link/Link.js.map +1 -0
  153. package/dist/link/SkipToMainContent.js.map +1 -0
  154. package/dist/link/styles.js.map +1 -0
  155. package/dist/list/List.js.map +1 -0
  156. package/dist/list/ListItem.js.map +1 -0
  157. package/dist/list/ListItemAddon.js.map +1 -0
  158. package/dist/list/ListItemChildren.js.map +1 -0
  159. package/dist/list/ListItemLink.js.map +1 -0
  160. package/dist/list/ListItemText.js.map +1 -0
  161. package/dist/list/ListSubheader.js.map +1 -0
  162. package/dist/list/getListItemHeight.js.map +1 -0
  163. package/dist/list/listItemStyles.js.map +1 -0
  164. package/dist/list/types.js.map +1 -0
  165. package/dist/media-queries/AppSizeProvider.js.map +1 -0
  166. package/dist/media-queries/appSize.js.map +1 -0
  167. package/dist/media-queries/useMediaQuery.js.map +1 -0
  168. package/dist/menu/DropdownMenu.js.map +1 -0
  169. package/dist/menu/Menu.js.map +1 -0
  170. package/dist/menu/MenuBar.js.map +1 -0
  171. package/dist/menu/MenuButton.js.map +1 -0
  172. package/dist/menu/MenuConfigurationProvider.js.map +1 -0
  173. package/dist/menu/MenuItem.js.map +1 -0
  174. package/dist/menu/MenuItemButton.js.map +1 -0
  175. package/dist/menu/MenuItemGroup.js.map +1 -0
  176. package/dist/menu/MenuItemSeparator.js.map +1 -0
  177. package/dist/menu/MenuSheet.js.map +1 -0
  178. package/dist/menu/MenuVisibilityProvider.js.map +1 -0
  179. package/dist/menu/MenuWidget.js.map +1 -0
  180. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -0
  181. package/dist/menu/useContextMenu.js.map +1 -0
  182. package/dist/menu/useMenuBarProvider.js.map +1 -0
  183. package/dist/menu/utils.js.map +1 -0
  184. package/dist/movement/constants.js.map +1 -0
  185. package/dist/movement/findMatchIndex.js.map +1 -0
  186. package/dist/movement/types.js.map +1 -0
  187. package/dist/movement/useKeyboardMovementProvider.js.map +1 -0
  188. package/dist/movement/utils.js.map +1 -0
  189. package/dist/overlay/Overlay.js.map +1 -0
  190. package/dist/overlay/overlayStyles.js.map +1 -0
  191. package/dist/portal/Portal.js.map +1 -0
  192. package/dist/portal/PortalContainerProvider.js.map +1 -0
  193. package/dist/positioning/constants.js.map +1 -0
  194. package/dist/positioning/createHorizontalPosition.js.map +1 -0
  195. package/dist/positioning/createVerticalPosition.js.map +1 -0
  196. package/dist/positioning/getFixedPosition.js.map +1 -0
  197. package/dist/positioning/types.js.map +1 -0
  198. package/dist/positioning/useFixedPositioning.js.map +1 -0
  199. package/dist/positioning/utils.js.map +1 -0
  200. package/dist/progress/CircularProgress.js.map +1 -0
  201. package/dist/progress/LinearProgress.js.map +1 -0
  202. package/dist/progress/getProgressA11y.js.map +1 -0
  203. package/dist/progress/types.js.map +1 -0
  204. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -0
  205. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -0
  206. package/dist/responsive-item/styles.js.map +1 -0
  207. package/dist/scroll/ScrollLock.js.map +1 -0
  208. package/dist/scroll/getScrollbarWidth.js.map +1 -0
  209. package/dist/scroll/useScrollLock.js.map +1 -0
  210. package/dist/segmented-button/SegmentedButton.js.map +1 -0
  211. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -0
  212. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -0
  213. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -0
  214. package/dist/sheet/Sheet.js.map +1 -0
  215. package/dist/sheet/styles.js.map +1 -0
  216. package/dist/snackbar/DefaultToastRenderer.js.map +1 -0
  217. package/dist/snackbar/Snackbar.js.map +1 -0
  218. package/dist/snackbar/Toast.js.map +1 -0
  219. package/dist/snackbar/ToastActionButton.js.map +1 -0
  220. package/dist/snackbar/ToastCloseButton.js.map +1 -0
  221. package/dist/snackbar/ToastContent.js.map +1 -0
  222. package/dist/snackbar/ToastManager.js.map +1 -0
  223. package/dist/snackbar/ToastManagerProvider.js.map +1 -0
  224. package/dist/snackbar/snackbarStyles.js.map +1 -0
  225. package/dist/snackbar/toastContentStyles.js.map +1 -0
  226. package/dist/snackbar/toastStyles.js.map +1 -0
  227. package/dist/snackbar/useCurrentToastActions.js.map +1 -0
  228. package/dist/suspense/CircularProgressSuspense.js.map +1 -0
  229. package/dist/suspense/NullSuspense.js.map +1 -0
  230. package/dist/table/Table.js.map +1 -0
  231. package/dist/table/TableBody.js.map +1 -0
  232. package/dist/table/TableCell.js.map +1 -0
  233. package/dist/table/TableCellContent.js.map +1 -0
  234. package/dist/table/TableCheckbox.js.map +1 -0
  235. package/dist/table/TableConfigurationProvider.js.map +1 -0
  236. package/dist/table/TableContainer.js.map +1 -0
  237. package/dist/table/TableContainerProvider.js.map +1 -0
  238. package/dist/table/TableFooter.js.map +1 -0
  239. package/dist/table/TableHeader.js.map +1 -0
  240. package/dist/table/TableRadio.js.map +1 -0
  241. package/dist/table/TableRow.js.map +1 -0
  242. package/dist/table/tableCellStyles.js.map +1 -0
  243. package/dist/table/tableContainerStyles.js.map +1 -0
  244. package/dist/table/tableFooterStyles.js.map +1 -0
  245. package/dist/table/tableHeaderStyles.js.map +1 -0
  246. package/dist/table/tableRowStyles.js.map +1 -0
  247. package/dist/table/tableStyles.js.map +1 -0
  248. package/dist/table/types.js.map +1 -0
  249. package/dist/tabs/Tab.js.map +1 -0
  250. package/dist/tabs/TabList.js.map +1 -0
  251. package/dist/tabs/TabListScrollButton.js.map +1 -0
  252. package/dist/tabs/tabIndicatorStyles.js.map +1 -0
  253. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -0
  254. package/dist/tabs/tabListStyles.js.map +1 -0
  255. package/dist/tabs/tabStyles.js.map +1 -0
  256. package/dist/tabs/useTabList.js.map +1 -0
  257. package/dist/tabs/useTabs.js.map +1 -0
  258. package/dist/tabs/utils.js.map +1 -0
  259. package/dist/test-utils/IntersectionObserver.js.map +1 -0
  260. package/dist/test-utils/ResizeObserver.js.map +1 -0
  261. package/dist/test-utils/data-testid.js.map +1 -0
  262. package/dist/test-utils/index.js.map +1 -0
  263. package/dist/test-utils/jest-setup.js.map +1 -0
  264. package/dist/test-utils/matchMedia.js.map +1 -0
  265. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -0
  266. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -0
  267. package/dist/test-utils/polyfills/index.js.map +1 -0
  268. package/dist/test-utils/polyfills/matchMedia.js.map +1 -0
  269. package/dist/test-utils/polyfills/offsetParent.js.map +1 -0
  270. package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -0
  271. package/dist/test-utils/render.js.map +1 -0
  272. package/dist/test-utils/timers.js.map +1 -0
  273. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -0
  274. package/dist/theme/ThemeProvider.js.map +1 -0
  275. package/dist/theme/colors.js.map +1 -0
  276. package/dist/theme/cssVars.js.map +1 -0
  277. package/dist/theme/types.js.map +1 -0
  278. package/dist/theme/useCSSVariables.js.map +1 -0
  279. package/dist/theme/useColorScheme.js.map +1 -0
  280. package/dist/theme/useColorSchemeMetaTag.js.map +1 -0
  281. package/dist/theme/useColorSchemeProvider.js.map +1 -0
  282. package/dist/theme/usePrefersColorScheme.js.map +1 -0
  283. package/dist/theme/utils.js.map +1 -0
  284. package/dist/tooltip/Tooltip.js.map +1 -0
  285. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -0
  286. package/dist/tooltip/constants.js.map +1 -0
  287. package/dist/tooltip/tooltipStyles.js.map +1 -0
  288. package/dist/tooltip/useTooltip.js.map +1 -0
  289. package/dist/tooltip/useTooltipPosition.js.map +1 -0
  290. package/dist/tooltip/utils.js.map +1 -0
  291. package/dist/transition/CSSTransition.js.map +1 -0
  292. package/dist/transition/Collapse.js.map +1 -0
  293. package/dist/transition/CrossFade.js.map +1 -0
  294. package/dist/transition/ScaleTransition.js.map +1 -0
  295. package/dist/transition/SkeletonPlaceholder.js.map +1 -0
  296. package/dist/transition/Slide.js.map +1 -0
  297. package/dist/transition/SlideContainer.js.map +1 -0
  298. package/dist/transition/collapseStyles.js.map +1 -0
  299. package/dist/transition/config.js.map +1 -0
  300. package/dist/transition/maxWidthTransition.js.map +1 -0
  301. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -0
  302. package/dist/transition/types.js.map +1 -0
  303. package/dist/transition/useCSSTransition.js.map +1 -0
  304. package/dist/transition/useCarousel.js.map +1 -0
  305. package/dist/transition/useCollapseTransition.js.map +1 -0
  306. package/dist/transition/useCrossFadeTransition.js.map +1 -0
  307. package/dist/transition/useMaxWidthTransition.js.map +1 -0
  308. package/dist/transition/useScaleTransition.js.map +1 -0
  309. package/dist/transition/useSkeletonPlaceholder.js.map +1 -0
  310. package/dist/transition/useSlideTransition.js.map +1 -0
  311. package/dist/transition/useTransition.js.map +1 -0
  312. package/dist/transition/utils.js.map +1 -0
  313. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -0
  314. package/dist/tree/Tree.js.map +1 -0
  315. package/dist/tree/TreeGroup.js.map +1 -0
  316. package/dist/tree/TreeItem.js.map +1 -0
  317. package/dist/tree/TreeItemExpander.js.map +1 -0
  318. package/dist/tree/TreeProvider.js.map +1 -0
  319. package/dist/tree/styles.js.map +1 -0
  320. package/dist/tree/types.js.map +1 -0
  321. package/dist/tree/useTree.js.map +1 -0
  322. package/dist/tree/useTreeExpansion.js.map +1 -0
  323. package/dist/tree/useTreeItems.js.map +1 -0
  324. package/dist/tree/useTreeMovement.js.map +1 -0
  325. package/dist/tree/useTreeSelection.js.map +1 -0
  326. package/dist/tree/utils.js.map +1 -0
  327. package/dist/types.js.map +1 -0
  328. package/dist/typography/SrOnly.js.map +1 -0
  329. package/dist/typography/TextContainer.js.map +1 -0
  330. package/dist/typography/Typography.js.map +1 -0
  331. package/dist/typography/WritingDirectionProvider.js.map +1 -0
  332. package/dist/useAsyncAction.js.map +1 -0
  333. package/dist/useDebouncedFunction.js.map +1 -0
  334. package/dist/useDropzone.js.map +1 -0
  335. package/dist/useElementSize.js.map +1 -0
  336. package/dist/useEnsuredId.js.map +1 -0
  337. package/dist/useEnsuredRef.js.map +1 -0
  338. package/dist/useEnsuredState.js.map +1 -0
  339. package/dist/useHtmlClassName.js.map +1 -0
  340. package/dist/useIntersectionObserver.js.map +1 -0
  341. package/dist/useIsomorphicLayoutEffect.js.map +1 -0
  342. package/dist/useLocalStorage.js.map +1 -0
  343. package/dist/useOrientation.js.map +1 -0
  344. package/dist/usePageInactive.js.map +1 -0
  345. package/dist/useResizeListener.js.map +1 -0
  346. package/dist/useResizeObserver.js.map +1 -0
  347. package/dist/useThrottledFunction.js.map +1 -0
  348. package/dist/useToggle.js.map +1 -0
  349. package/dist/useUnmounted.js.map +1 -0
  350. package/dist/useWindowSize.js.map +1 -0
  351. package/dist/utils/RenderRecursively.js.map +1 -0
  352. package/dist/utils/alphaNumericSort.js.map +1 -0
  353. package/dist/utils/applyRef.js.map +1 -0
  354. package/dist/utils/bem.js.map +1 -0
  355. package/dist/utils/filters.js.map +1 -0
  356. package/dist/utils/getClientPosition.js.map +1 -0
  357. package/dist/utils/getMiddleOfRange.js.map +1 -0
  358. package/dist/utils/getPercentage.js.map +1 -0
  359. package/dist/utils/getRangeDefaultValue.js.map +1 -0
  360. package/dist/utils/getRangeSteps.js.map +1 -0
  361. package/dist/utils/identity.js.map +1 -0
  362. package/dist/utils/isElementVisible.js.map +1 -0
  363. package/dist/utils/loop.js.map +1 -0
  364. package/dist/utils/nearest.js.map +1 -0
  365. package/dist/utils/parseCssLengthUnit.js.map +1 -0
  366. package/dist/utils/randomInt.js.map +1 -0
  367. package/dist/utils/wait.js.map +1 -0
  368. package/dist/utils/withinRange.js.map +1 -0
  369. package/dist/window-splitter/WindowSplitter.js.map +1 -0
  370. package/dist/window-splitter/useWindowSplitter.js.map +1 -0
  371. package/package.json +2 -2
  372. package/.turbo/turbo-lint.log +0 -12
  373. package/.turbo/turbo-test.log +0 -179
  374. package/.turbo/turbo-typecheck.log +0 -4
  375. package/dist/src/CoreProviders.js.map +0 -1
  376. package/dist/src/NoSsr.js.map +0 -1
  377. package/dist/src/SsrProvider.js.map +0 -1
  378. package/dist/src/app-bar/AppBar.js.map +0 -1
  379. package/dist/src/app-bar/AppBarTitle.js.map +0 -1
  380. package/dist/src/avatar/Avatar.js.map +0 -1
  381. package/dist/src/avatar/styles.js.map +0 -1
  382. package/dist/src/badge/Badge.js.map +0 -1
  383. package/dist/src/box/Box.js.map +0 -1
  384. package/dist/src/box/styles.js.map +0 -1
  385. package/dist/src/button/AsyncButton.js.map +0 -1
  386. package/dist/src/button/Button.js.map +0 -1
  387. package/dist/src/button/ButtonUnstyled.js.map +0 -1
  388. package/dist/src/button/FloatingActionButton.js.map +0 -1
  389. package/dist/src/button/TooltippedButton.js.map +0 -1
  390. package/dist/src/button/buttonStyles.js.map +0 -1
  391. package/dist/src/button/buttonUnstyledStyles.js.map +0 -1
  392. package/dist/src/card/Card.js.map +0 -1
  393. package/dist/src/card/CardContent.js.map +0 -1
  394. package/dist/src/card/CardFooter.js.map +0 -1
  395. package/dist/src/card/CardHeader.js.map +0 -1
  396. package/dist/src/card/CardSubtitle.js.map +0 -1
  397. package/dist/src/card/CardTitle.js.map +0 -1
  398. package/dist/src/card/ClickableCard.js.map +0 -1
  399. package/dist/src/card/styles.js.map +0 -1
  400. package/dist/src/chip/Chip.js.map +0 -1
  401. package/dist/src/chip/styles.js.map +0 -1
  402. package/dist/src/cssUtils.js.map +0 -1
  403. package/dist/src/delegateEvent.js.map +0 -1
  404. package/dist/src/dialog/Dialog.js.map +0 -1
  405. package/dist/src/dialog/DialogContainer.js.map +0 -1
  406. package/dist/src/dialog/DialogContent.js.map +0 -1
  407. package/dist/src/dialog/DialogFooter.js.map +0 -1
  408. package/dist/src/dialog/DialogHeader.js.map +0 -1
  409. package/dist/src/dialog/DialogTitle.js.map +0 -1
  410. package/dist/src/dialog/FixedDialog.js.map +0 -1
  411. package/dist/src/dialog/NestedDialogProvider.js.map +0 -1
  412. package/dist/src/dialog/styles.js.map +0 -1
  413. package/dist/src/divider/Divider.js.map +0 -1
  414. package/dist/src/divider/styles.js.map +0 -1
  415. package/dist/src/draggable/useDraggable.js.map +0 -1
  416. package/dist/src/draggable/utils.js.map +0 -1
  417. package/dist/src/expansion-panel/ExpansionList.js.map +0 -1
  418. package/dist/src/expansion-panel/ExpansionPanel.js.map +0 -1
  419. package/dist/src/expansion-panel/ExpansionPanelHeader.js.map +0 -1
  420. package/dist/src/expansion-panel/useExpansionList.js.map +0 -1
  421. package/dist/src/expansion-panel/useExpansionPanels.js.map +0 -1
  422. package/dist/src/focus/useFocusContainer.js.map +0 -1
  423. package/dist/src/focus/utils.js.map +0 -1
  424. package/dist/src/form/Checkbox.js.map +0 -1
  425. package/dist/src/form/Fieldset.js.map +0 -1
  426. package/dist/src/form/FileInput.js.map +0 -1
  427. package/dist/src/form/Form.js.map +0 -1
  428. package/dist/src/form/FormMessage.js.map +0 -1
  429. package/dist/src/form/FormMessageContainer.js.map +0 -1
  430. package/dist/src/form/FormMessageCounter.js.map +0 -1
  431. package/dist/src/form/InputToggle.js.map +0 -1
  432. package/dist/src/form/InputToggleIcon.js.map +0 -1
  433. package/dist/src/form/Label.js.map +0 -1
  434. package/dist/src/form/Legend.js.map +0 -1
  435. package/dist/src/form/MenuItemCheckbox.js.map +0 -1
  436. package/dist/src/form/MenuItemFileInput.js.map +0 -1
  437. package/dist/src/form/MenuItemInputToggle.js.map +0 -1
  438. package/dist/src/form/MenuItemRadio.js.map +0 -1
  439. package/dist/src/form/MenuItemSwitch.js.map +0 -1
  440. package/dist/src/form/MenuItemTextField.js.map +0 -1
  441. package/dist/src/form/NativeSelect.js.map +0 -1
  442. package/dist/src/form/OptGroup.js.map +0 -1
  443. package/dist/src/form/Option.js.map +0 -1
  444. package/dist/src/form/Password.js.map +0 -1
  445. package/dist/src/form/Radio.js.map +0 -1
  446. package/dist/src/form/Select.js.map +0 -1
  447. package/dist/src/form/SelectValue.js.map +0 -1
  448. package/dist/src/form/Slider.js.map +0 -1
  449. package/dist/src/form/SliderContainer.js.map +0 -1
  450. package/dist/src/form/SliderMark.js.map +0 -1
  451. package/dist/src/form/SliderMarkLabel.js.map +0 -1
  452. package/dist/src/form/SliderThumb.js.map +0 -1
  453. package/dist/src/form/SliderTrack.js.map +0 -1
  454. package/dist/src/form/SliderValueMarks.js.map +0 -1
  455. package/dist/src/form/SliderValueTooltip.js.map +0 -1
  456. package/dist/src/form/Switch.js.map +0 -1
  457. package/dist/src/form/SwitchTrack.js.map +0 -1
  458. package/dist/src/form/TextArea.js.map +0 -1
  459. package/dist/src/form/TextField.js.map +0 -1
  460. package/dist/src/form/TextFieldAddon.js.map +0 -1
  461. package/dist/src/form/TextFieldContainer.js.map +0 -1
  462. package/dist/src/form/TextFieldContainerStyles.js.map +0 -1
  463. package/dist/src/form/fileUtils.js.map +0 -1
  464. package/dist/src/form/formConfig.js.map +0 -1
  465. package/dist/src/form/formMessageStyles.js.map +0 -1
  466. package/dist/src/form/inputToggleStyles.js.map +0 -1
  467. package/dist/src/form/nativeSelectStyles.js.map +0 -1
  468. package/dist/src/form/optionStyles.js.map +0 -1
  469. package/dist/src/form/passwordStyles.js.map +0 -1
  470. package/dist/src/form/selectStyles.js.map +0 -1
  471. package/dist/src/form/selectUtils.js.map +0 -1
  472. package/dist/src/form/sliderUtils.js.map +0 -1
  473. package/dist/src/form/switchStyles.js.map +0 -1
  474. package/dist/src/form/textAreaStyles.js.map +0 -1
  475. package/dist/src/form/textFieldStyles.js.map +0 -1
  476. package/dist/src/form/types.js.map +0 -1
  477. package/dist/src/form/useCheckboxGroup.js.map +0 -1
  478. package/dist/src/form/useFileUpload.js.map +0 -1
  479. package/dist/src/form/useListboxProvider.js.map +0 -1
  480. package/dist/src/form/useNumberField.js.map +0 -1
  481. package/dist/src/form/useRadioGroup.js.map +0 -1
  482. package/dist/src/form/useRangeSlider.js.map +0 -1
  483. package/dist/src/form/useResizingTextArea.js.map +0 -1
  484. package/dist/src/form/useSlider.js.map +0 -1
  485. package/dist/src/form/useTextField.js.map +0 -1
  486. package/dist/src/form/utils.js.map +0 -1
  487. package/dist/src/form/validation.js.map +0 -1
  488. package/dist/src/hoverMode/useHoverMode.js.map +0 -1
  489. package/dist/src/hoverMode/useHoverModeProvider.js.map +0 -1
  490. package/dist/src/icon/FontIcon.js.map +0 -1
  491. package/dist/src/icon/IconRotator.js.map +0 -1
  492. package/dist/src/icon/MaterialIcon.js.map +0 -1
  493. package/dist/src/icon/MaterialSymbol.js.map +0 -1
  494. package/dist/src/icon/SVGIcon.js.map +0 -1
  495. package/dist/src/icon/TextIconSpacing.js.map +0 -1
  496. package/dist/src/icon/iconConfig.js.map +0 -1
  497. package/dist/src/icon/material.js.map +0 -1
  498. package/dist/src/icon/materialConfig.js.map +0 -1
  499. package/dist/src/icon/styles.js.map +0 -1
  500. package/dist/src/index.js.map +0 -1
  501. package/dist/src/interaction/Ripple.js.map +0 -1
  502. package/dist/src/interaction/RippleContainer.js.map +0 -1
  503. package/dist/src/interaction/UserInteractionModeProvider.js.map +0 -1
  504. package/dist/src/interaction/config.js.map +0 -1
  505. package/dist/src/interaction/types.js.map +0 -1
  506. package/dist/src/interaction/useElementInteraction.js.map +0 -1
  507. package/dist/src/interaction/useHigherContrastChildren.js.map +0 -1
  508. package/dist/src/interaction/utils.js.map +0 -1
  509. package/dist/src/layout/LayoutAppBar.js.map +0 -1
  510. package/dist/src/layout/LayoutNav.js.map +0 -1
  511. package/dist/src/layout/LayoutWindowSplitter.js.map +0 -1
  512. package/dist/src/layout/Main.js.map +0 -1
  513. package/dist/src/layout/layoutNavStyles.js.map +0 -1
  514. package/dist/src/layout/layoutWindowSplitterStyles.js.map +0 -1
  515. package/dist/src/layout/mainStyles.js.map +0 -1
  516. package/dist/src/layout/useExpandableLayout.js.map +0 -1
  517. package/dist/src/layout/useHorizontalLayoutTransition.js.map +0 -1
  518. package/dist/src/layout/useLayoutAppBarHeight.js.map +0 -1
  519. package/dist/src/layout/useLayoutTree.js.map +0 -1
  520. package/dist/src/layout/useLayoutWindowSplitter.js.map +0 -1
  521. package/dist/src/layout/useMainTabIndex.js.map +0 -1
  522. package/dist/src/layout/useResizableLayout.js.map +0 -1
  523. package/dist/src/layout/useTemporaryLayout.js.map +0 -1
  524. package/dist/src/link/Link.js.map +0 -1
  525. package/dist/src/link/SkipToMainContent.js.map +0 -1
  526. package/dist/src/link/styles.js.map +0 -1
  527. package/dist/src/list/List.js.map +0 -1
  528. package/dist/src/list/ListItem.js.map +0 -1
  529. package/dist/src/list/ListItemAddon.js.map +0 -1
  530. package/dist/src/list/ListItemChildren.js.map +0 -1
  531. package/dist/src/list/ListItemLink.js.map +0 -1
  532. package/dist/src/list/ListItemText.js.map +0 -1
  533. package/dist/src/list/ListSubheader.js.map +0 -1
  534. package/dist/src/list/getListItemHeight.js.map +0 -1
  535. package/dist/src/list/listItemStyles.js.map +0 -1
  536. package/dist/src/list/types.js.map +0 -1
  537. package/dist/src/media-queries/AppSizeProvider.js.map +0 -1
  538. package/dist/src/media-queries/appSize.js.map +0 -1
  539. package/dist/src/media-queries/useMediaQuery.js.map +0 -1
  540. package/dist/src/menu/DropdownMenu.js.map +0 -1
  541. package/dist/src/menu/Menu.js.map +0 -1
  542. package/dist/src/menu/MenuBar.js.map +0 -1
  543. package/dist/src/menu/MenuButton.js.map +0 -1
  544. package/dist/src/menu/MenuConfigurationProvider.js.map +0 -1
  545. package/dist/src/menu/MenuItem.js.map +0 -1
  546. package/dist/src/menu/MenuItemButton.js.map +0 -1
  547. package/dist/src/menu/MenuItemGroup.js.map +0 -1
  548. package/dist/src/menu/MenuItemSeparator.js.map +0 -1
  549. package/dist/src/menu/MenuSheet.js.map +0 -1
  550. package/dist/src/menu/MenuVisibilityProvider.js.map +0 -1
  551. package/dist/src/menu/MenuWidget.js.map +0 -1
  552. package/dist/src/menu/MenuWidgetKeyboardProvider.js.map +0 -1
  553. package/dist/src/menu/useContextMenu.js.map +0 -1
  554. package/dist/src/menu/useMenuBarProvider.js.map +0 -1
  555. package/dist/src/menu/utils.js.map +0 -1
  556. package/dist/src/movement/constants.js.map +0 -1
  557. package/dist/src/movement/findMatchIndex.js.map +0 -1
  558. package/dist/src/movement/types.js.map +0 -1
  559. package/dist/src/movement/useKeyboardMovementProvider.js.map +0 -1
  560. package/dist/src/movement/utils.js.map +0 -1
  561. package/dist/src/overlay/Overlay.js.map +0 -1
  562. package/dist/src/overlay/overlayStyles.js.map +0 -1
  563. package/dist/src/portal/Portal.js.map +0 -1
  564. package/dist/src/portal/PortalContainerProvider.js.map +0 -1
  565. package/dist/src/positioning/constants.js.map +0 -1
  566. package/dist/src/positioning/createHorizontalPosition.js.map +0 -1
  567. package/dist/src/positioning/createVerticalPosition.js.map +0 -1
  568. package/dist/src/positioning/getFixedPosition.js.map +0 -1
  569. package/dist/src/positioning/types.js.map +0 -1
  570. package/dist/src/positioning/useFixedPositioning.js.map +0 -1
  571. package/dist/src/positioning/utils.js.map +0 -1
  572. package/dist/src/progress/CircularProgress.js.map +0 -1
  573. package/dist/src/progress/LinearProgress.js.map +0 -1
  574. package/dist/src/progress/getProgressA11y.js.map +0 -1
  575. package/dist/src/progress/types.js.map +0 -1
  576. package/dist/src/responsive-item/ResponsiveItemContainer.js.map +0 -1
  577. package/dist/src/responsive-item/ResponsiveItemOverlay.js.map +0 -1
  578. package/dist/src/responsive-item/styles.js.map +0 -1
  579. package/dist/src/scroll/ScrollLock.js.map +0 -1
  580. package/dist/src/scroll/getScrollbarWidth.js.map +0 -1
  581. package/dist/src/scroll/useScrollLock.js.map +0 -1
  582. package/dist/src/segmented-button/SegmentedButton.js.map +0 -1
  583. package/dist/src/segmented-button/SegmentedButtonContainer.js.map +0 -1
  584. package/dist/src/segmented-button/segmentedButtonContainerStyles.js.map +0 -1
  585. package/dist/src/segmented-button/segmentedButtonStyles.js.map +0 -1
  586. package/dist/src/sheet/Sheet.js.map +0 -1
  587. package/dist/src/sheet/styles.js.map +0 -1
  588. package/dist/src/snackbar/DefaultToastRenderer.js.map +0 -1
  589. package/dist/src/snackbar/Snackbar.js.map +0 -1
  590. package/dist/src/snackbar/Toast.js.map +0 -1
  591. package/dist/src/snackbar/ToastActionButton.js.map +0 -1
  592. package/dist/src/snackbar/ToastCloseButton.js.map +0 -1
  593. package/dist/src/snackbar/ToastContent.js.map +0 -1
  594. package/dist/src/snackbar/ToastManager.js.map +0 -1
  595. package/dist/src/snackbar/ToastManagerProvider.js.map +0 -1
  596. package/dist/src/snackbar/snackbarStyles.js.map +0 -1
  597. package/dist/src/snackbar/toastContentStyles.js.map +0 -1
  598. package/dist/src/snackbar/toastStyles.js.map +0 -1
  599. package/dist/src/snackbar/useCurrentToastActions.js.map +0 -1
  600. package/dist/src/suspense/CircularProgressSuspense.js.map +0 -1
  601. package/dist/src/suspense/NullSuspense.js.map +0 -1
  602. package/dist/src/table/Table.js.map +0 -1
  603. package/dist/src/table/TableBody.js.map +0 -1
  604. package/dist/src/table/TableCell.js.map +0 -1
  605. package/dist/src/table/TableCellContent.js.map +0 -1
  606. package/dist/src/table/TableCheckbox.js.map +0 -1
  607. package/dist/src/table/TableConfigurationProvider.js.map +0 -1
  608. package/dist/src/table/TableContainer.js.map +0 -1
  609. package/dist/src/table/TableContainerProvider.js.map +0 -1
  610. package/dist/src/table/TableFooter.js.map +0 -1
  611. package/dist/src/table/TableHeader.js.map +0 -1
  612. package/dist/src/table/TableRadio.js.map +0 -1
  613. package/dist/src/table/TableRow.js.map +0 -1
  614. package/dist/src/table/tableCellStyles.js.map +0 -1
  615. package/dist/src/table/tableContainerStyles.js.map +0 -1
  616. package/dist/src/table/tableFooterStyles.js.map +0 -1
  617. package/dist/src/table/tableHeaderStyles.js.map +0 -1
  618. package/dist/src/table/tableRowStyles.js.map +0 -1
  619. package/dist/src/table/tableStyles.js.map +0 -1
  620. package/dist/src/table/types.js.map +0 -1
  621. package/dist/src/tabs/Tab.js.map +0 -1
  622. package/dist/src/tabs/TabList.js.map +0 -1
  623. package/dist/src/tabs/TabListScrollButton.js.map +0 -1
  624. package/dist/src/tabs/tabIndicatorStyles.js.map +0 -1
  625. package/dist/src/tabs/tabListScrollButtonStyles.js.map +0 -1
  626. package/dist/src/tabs/tabListStyles.js.map +0 -1
  627. package/dist/src/tabs/tabStyles.js.map +0 -1
  628. package/dist/src/tabs/useTabList.js.map +0 -1
  629. package/dist/src/tabs/useTabs.js.map +0 -1
  630. package/dist/src/tabs/utils.js.map +0 -1
  631. package/dist/src/test-utils/IntersectionObserver.js.map +0 -1
  632. package/dist/src/test-utils/ResizeObserver.js.map +0 -1
  633. package/dist/src/test-utils/data-testid.js.map +0 -1
  634. package/dist/src/test-utils/index.js.map +0 -1
  635. package/dist/src/test-utils/jest-setup.js.map +0 -1
  636. package/dist/src/test-utils/matchMedia.js.map +0 -1
  637. package/dist/src/test-utils/polyfills/IntersectionObserver.js.map +0 -1
  638. package/dist/src/test-utils/polyfills/ResizeObserver.js.map +0 -1
  639. package/dist/src/test-utils/polyfills/index.js.map +0 -1
  640. package/dist/src/test-utils/polyfills/matchMedia.js.map +0 -1
  641. package/dist/src/test-utils/polyfills/offsetParent.js.map +0 -1
  642. package/dist/src/test-utils/polyfills/scrollIntoView.js.map +0 -1
  643. package/dist/src/test-utils/render.js.map +0 -1
  644. package/dist/src/test-utils/timers.js.map +0 -1
  645. package/dist/src/theme/LocalStorageColorSchemeProvider.js.map +0 -1
  646. package/dist/src/theme/ThemeProvider.js.map +0 -1
  647. package/dist/src/theme/colors.js.map +0 -1
  648. package/dist/src/theme/cssVars.js.map +0 -1
  649. package/dist/src/theme/types.js.map +0 -1
  650. package/dist/src/theme/useCSSVariables.js.map +0 -1
  651. package/dist/src/theme/useColorScheme.js.map +0 -1
  652. package/dist/src/theme/useColorSchemeMetaTag.js.map +0 -1
  653. package/dist/src/theme/useColorSchemeProvider.js.map +0 -1
  654. package/dist/src/theme/usePrefersColorScheme.js.map +0 -1
  655. package/dist/src/theme/utils.js.map +0 -1
  656. package/dist/src/tooltip/Tooltip.js.map +0 -1
  657. package/dist/src/tooltip/TooltipHoverModeProvider.js.map +0 -1
  658. package/dist/src/tooltip/constants.js.map +0 -1
  659. package/dist/src/tooltip/tooltipStyles.js.map +0 -1
  660. package/dist/src/tooltip/useTooltip.js.map +0 -1
  661. package/dist/src/tooltip/useTooltipPosition.js.map +0 -1
  662. package/dist/src/tooltip/utils.js.map +0 -1
  663. package/dist/src/transition/CSSTransition.js.map +0 -1
  664. package/dist/src/transition/Collapse.js.map +0 -1
  665. package/dist/src/transition/CrossFade.js.map +0 -1
  666. package/dist/src/transition/ScaleTransition.js.map +0 -1
  667. package/dist/src/transition/SkeletonPlaceholder.js.map +0 -1
  668. package/dist/src/transition/Slide.js.map +0 -1
  669. package/dist/src/transition/SlideContainer.js.map +0 -1
  670. package/dist/src/transition/collapseStyles.js.map +0 -1
  671. package/dist/src/transition/config.js.map +0 -1
  672. package/dist/src/transition/maxWidthTransition.js.map +0 -1
  673. package/dist/src/transition/skeletonPlaceholderUtils.js.map +0 -1
  674. package/dist/src/transition/types.js.map +0 -1
  675. package/dist/src/transition/useCSSTransition.js.map +0 -1
  676. package/dist/src/transition/useCarousel.js.map +0 -1
  677. package/dist/src/transition/useCollapseTransition.js.map +0 -1
  678. package/dist/src/transition/useCrossFadeTransition.js.map +0 -1
  679. package/dist/src/transition/useMaxWidthTransition.js.map +0 -1
  680. package/dist/src/transition/useScaleTransition.js.map +0 -1
  681. package/dist/src/transition/useSkeletonPlaceholder.js.map +0 -1
  682. package/dist/src/transition/useSlideTransition.js.map +0 -1
  683. package/dist/src/transition/useTransition.js.map +0 -1
  684. package/dist/src/transition/utils.js.map +0 -1
  685. package/dist/src/tree/DefaultTreeItemRenderer.js.map +0 -1
  686. package/dist/src/tree/Tree.js.map +0 -1
  687. package/dist/src/tree/TreeGroup.js.map +0 -1
  688. package/dist/src/tree/TreeItem.js.map +0 -1
  689. package/dist/src/tree/TreeItemExpander.js.map +0 -1
  690. package/dist/src/tree/TreeProvider.js.map +0 -1
  691. package/dist/src/tree/styles.js.map +0 -1
  692. package/dist/src/tree/types.js.map +0 -1
  693. package/dist/src/tree/useTree.js.map +0 -1
  694. package/dist/src/tree/useTreeExpansion.js.map +0 -1
  695. package/dist/src/tree/useTreeItems.js.map +0 -1
  696. package/dist/src/tree/useTreeMovement.js.map +0 -1
  697. package/dist/src/tree/useTreeSelection.js.map +0 -1
  698. package/dist/src/tree/utils.js.map +0 -1
  699. package/dist/src/types.js.map +0 -1
  700. package/dist/src/typography/SrOnly.js.map +0 -1
  701. package/dist/src/typography/TextContainer.js.map +0 -1
  702. package/dist/src/typography/Typography.js.map +0 -1
  703. package/dist/src/typography/WritingDirectionProvider.js.map +0 -1
  704. package/dist/src/useAsyncAction.js.map +0 -1
  705. package/dist/src/useDebouncedFunction.js.map +0 -1
  706. package/dist/src/useDropzone.js.map +0 -1
  707. package/dist/src/useElementSize.js.map +0 -1
  708. package/dist/src/useEnsuredId.js.map +0 -1
  709. package/dist/src/useEnsuredRef.js.map +0 -1
  710. package/dist/src/useEnsuredState.js.map +0 -1
  711. package/dist/src/useHtmlClassName.js.map +0 -1
  712. package/dist/src/useIntersectionObserver.js.map +0 -1
  713. package/dist/src/useIsomorphicLayoutEffect.js.map +0 -1
  714. package/dist/src/useLocalStorage.js.map +0 -1
  715. package/dist/src/useOrientation.js.map +0 -1
  716. package/dist/src/usePageInactive.js.map +0 -1
  717. package/dist/src/useResizeListener.js.map +0 -1
  718. package/dist/src/useResizeObserver.js.map +0 -1
  719. package/dist/src/useThrottledFunction.js.map +0 -1
  720. package/dist/src/useToggle.js.map +0 -1
  721. package/dist/src/useUnmounted.js.map +0 -1
  722. package/dist/src/useWindowSize.js.map +0 -1
  723. package/dist/src/utils/RenderRecursively.js.map +0 -1
  724. package/dist/src/utils/alphaNumericSort.js.map +0 -1
  725. package/dist/src/utils/applyRef.js.map +0 -1
  726. package/dist/src/utils/bem.js.map +0 -1
  727. package/dist/src/utils/filters.js.map +0 -1
  728. package/dist/src/utils/getClientPosition.js.map +0 -1
  729. package/dist/src/utils/getMiddleOfRange.js.map +0 -1
  730. package/dist/src/utils/getPercentage.js.map +0 -1
  731. package/dist/src/utils/getRangeDefaultValue.js.map +0 -1
  732. package/dist/src/utils/getRangeSteps.js.map +0 -1
  733. package/dist/src/utils/identity.js.map +0 -1
  734. package/dist/src/utils/isElementVisible.js.map +0 -1
  735. package/dist/src/utils/loop.js.map +0 -1
  736. package/dist/src/utils/nearest.js.map +0 -1
  737. package/dist/src/utils/parseCssLengthUnit.js.map +0 -1
  738. package/dist/src/utils/randomInt.js.map +0 -1
  739. package/dist/src/utils/wait.js.map +0 -1
  740. package/dist/src/utils/withinRange.js.map +0 -1
  741. package/dist/src/window-splitter/WindowSplitter.js.map +0 -1
  742. package/dist/src/window-splitter/useWindowSplitter.js.map +0 -1
  743. /package/dist/{src/CoreProviders.js → CoreProviders.js} +0 -0
  744. /package/dist/{src/NoSsr.js → NoSsr.js} +0 -0
  745. /package/dist/{src/SsrProvider.js → SsrProvider.js} +0 -0
  746. /package/dist/{src/app-bar → app-bar}/AppBar.js +0 -0
  747. /package/dist/{src/app-bar → app-bar}/AppBarTitle.js +0 -0
  748. /package/dist/{src/avatar → avatar}/Avatar.js +0 -0
  749. /package/dist/{src/avatar → avatar}/styles.js +0 -0
  750. /package/dist/{src/badge → badge}/Badge.js +0 -0
  751. /package/dist/{src/box → box}/Box.js +0 -0
  752. /package/dist/{src/box → box}/styles.js +0 -0
  753. /package/dist/{src/button → button}/AsyncButton.js +0 -0
  754. /package/dist/{src/button → button}/Button.js +0 -0
  755. /package/dist/{src/button → button}/ButtonUnstyled.js +0 -0
  756. /package/dist/{src/button → button}/FloatingActionButton.js +0 -0
  757. /package/dist/{src/button → button}/TooltippedButton.js +0 -0
  758. /package/dist/{src/button → button}/buttonStyles.js +0 -0
  759. /package/dist/{src/button → button}/buttonUnstyledStyles.js +0 -0
  760. /package/dist/{src/card → card}/Card.js +0 -0
  761. /package/dist/{src/card → card}/CardContent.js +0 -0
  762. /package/dist/{src/card → card}/CardFooter.js +0 -0
  763. /package/dist/{src/card → card}/CardHeader.js +0 -0
  764. /package/dist/{src/card → card}/CardSubtitle.js +0 -0
  765. /package/dist/{src/card → card}/CardTitle.js +0 -0
  766. /package/dist/{src/card → card}/ClickableCard.js +0 -0
  767. /package/dist/{src/card → card}/styles.js +0 -0
  768. /package/dist/{src/chip → chip}/Chip.js +0 -0
  769. /package/dist/{src/chip → chip}/styles.js +0 -0
  770. /package/dist/{src/cssUtils.js → cssUtils.js} +0 -0
  771. /package/dist/{src/delegateEvent.js → delegateEvent.js} +0 -0
  772. /package/dist/{src/dialog → dialog}/Dialog.js +0 -0
  773. /package/dist/{src/dialog → dialog}/DialogContainer.js +0 -0
  774. /package/dist/{src/dialog → dialog}/DialogContent.js +0 -0
  775. /package/dist/{src/dialog → dialog}/DialogFooter.js +0 -0
  776. /package/dist/{src/dialog → dialog}/DialogHeader.js +0 -0
  777. /package/dist/{src/dialog → dialog}/DialogTitle.js +0 -0
  778. /package/dist/{src/dialog → dialog}/FixedDialog.js +0 -0
  779. /package/dist/{src/dialog → dialog}/NestedDialogProvider.js +0 -0
  780. /package/dist/{src/dialog → dialog}/styles.js +0 -0
  781. /package/dist/{src/divider → divider}/Divider.js +0 -0
  782. /package/dist/{src/divider → divider}/styles.js +0 -0
  783. /package/dist/{src/draggable → draggable}/useDraggable.js +0 -0
  784. /package/dist/{src/draggable → draggable}/utils.js +0 -0
  785. /package/dist/{src/expansion-panel → expansion-panel}/ExpansionList.js +0 -0
  786. /package/dist/{src/expansion-panel → expansion-panel}/ExpansionPanel.js +0 -0
  787. /package/dist/{src/expansion-panel → expansion-panel}/ExpansionPanelHeader.js +0 -0
  788. /package/dist/{src/expansion-panel → expansion-panel}/useExpansionList.js +0 -0
  789. /package/dist/{src/expansion-panel → expansion-panel}/useExpansionPanels.js +0 -0
  790. /package/dist/{src/focus → focus}/useFocusContainer.js +0 -0
  791. /package/dist/{src/focus → focus}/utils.js +0 -0
  792. /package/dist/{src/form → form}/Checkbox.js +0 -0
  793. /package/dist/{src/form → form}/Fieldset.js +0 -0
  794. /package/dist/{src/form → form}/FileInput.js +0 -0
  795. /package/dist/{src/form → form}/Form.js +0 -0
  796. /package/dist/{src/form → form}/FormMessage.js +0 -0
  797. /package/dist/{src/form → form}/FormMessageContainer.js +0 -0
  798. /package/dist/{src/form → form}/FormMessageCounter.js +0 -0
  799. /package/dist/{src/form → form}/InputToggle.js +0 -0
  800. /package/dist/{src/form → form}/InputToggleIcon.js +0 -0
  801. /package/dist/{src/form → form}/Label.js +0 -0
  802. /package/dist/{src/form → form}/Legend.js +0 -0
  803. /package/dist/{src/form → form}/MenuItemCheckbox.js +0 -0
  804. /package/dist/{src/form → form}/MenuItemFileInput.js +0 -0
  805. /package/dist/{src/form → form}/MenuItemInputToggle.js +0 -0
  806. /package/dist/{src/form → form}/MenuItemRadio.js +0 -0
  807. /package/dist/{src/form → form}/MenuItemSwitch.js +0 -0
  808. /package/dist/{src/form → form}/MenuItemTextField.js +0 -0
  809. /package/dist/{src/form → form}/NativeSelect.js +0 -0
  810. /package/dist/{src/form → form}/OptGroup.js +0 -0
  811. /package/dist/{src/form → form}/Option.js +0 -0
  812. /package/dist/{src/form → form}/Password.js +0 -0
  813. /package/dist/{src/form → form}/Radio.js +0 -0
  814. /package/dist/{src/form → form}/Select.js +0 -0
  815. /package/dist/{src/form → form}/SelectValue.js +0 -0
  816. /package/dist/{src/form → form}/Slider.js +0 -0
  817. /package/dist/{src/form → form}/SliderContainer.js +0 -0
  818. /package/dist/{src/form → form}/SliderMark.js +0 -0
  819. /package/dist/{src/form → form}/SliderMarkLabel.js +0 -0
  820. /package/dist/{src/form → form}/SliderThumb.js +0 -0
  821. /package/dist/{src/form → form}/SliderTrack.js +0 -0
  822. /package/dist/{src/form → form}/SliderValueMarks.js +0 -0
  823. /package/dist/{src/form → form}/SliderValueTooltip.js +0 -0
  824. /package/dist/{src/form → form}/Switch.js +0 -0
  825. /package/dist/{src/form → form}/SwitchTrack.js +0 -0
  826. /package/dist/{src/form → form}/TextArea.js +0 -0
  827. /package/dist/{src/form → form}/TextField.js +0 -0
  828. /package/dist/{src/form → form}/TextFieldAddon.js +0 -0
  829. /package/dist/{src/form → form}/TextFieldContainer.js +0 -0
  830. /package/dist/{src/form → form}/TextFieldContainerStyles.js +0 -0
  831. /package/dist/{src/form → form}/fileUtils.js +0 -0
  832. /package/dist/{src/form → form}/formConfig.js +0 -0
  833. /package/dist/{src/form → form}/formMessageStyles.js +0 -0
  834. /package/dist/{src/form → form}/inputToggleStyles.js +0 -0
  835. /package/dist/{src/form → form}/nativeSelectStyles.js +0 -0
  836. /package/dist/{src/form → form}/optionStyles.js +0 -0
  837. /package/dist/{src/form → form}/passwordStyles.js +0 -0
  838. /package/dist/{src/form → form}/selectStyles.js +0 -0
  839. /package/dist/{src/form → form}/selectUtils.js +0 -0
  840. /package/dist/{src/form → form}/sliderUtils.js +0 -0
  841. /package/dist/{src/form → form}/switchStyles.js +0 -0
  842. /package/dist/{src/form → form}/textAreaStyles.js +0 -0
  843. /package/dist/{src/form → form}/textFieldStyles.js +0 -0
  844. /package/dist/{src/form → form}/types.js +0 -0
  845. /package/dist/{src/form → form}/useCheckboxGroup.js +0 -0
  846. /package/dist/{src/form → form}/useFileUpload.js +0 -0
  847. /package/dist/{src/form → form}/useListboxProvider.js +0 -0
  848. /package/dist/{src/form → form}/useNumberField.js +0 -0
  849. /package/dist/{src/form → form}/useRadioGroup.js +0 -0
  850. /package/dist/{src/form → form}/useRangeSlider.js +0 -0
  851. /package/dist/{src/form → form}/useResizingTextArea.js +0 -0
  852. /package/dist/{src/form → form}/useSlider.js +0 -0
  853. /package/dist/{src/form → form}/useTextField.js +0 -0
  854. /package/dist/{src/form → form}/utils.js +0 -0
  855. /package/dist/{src/form → form}/validation.js +0 -0
  856. /package/dist/{src/hoverMode → hoverMode}/useHoverMode.js +0 -0
  857. /package/dist/{src/hoverMode → hoverMode}/useHoverModeProvider.js +0 -0
  858. /package/dist/{src/icon → icon}/FontIcon.js +0 -0
  859. /package/dist/{src/icon → icon}/IconRotator.js +0 -0
  860. /package/dist/{src/icon → icon}/MaterialIcon.js +0 -0
  861. /package/dist/{src/icon → icon}/MaterialSymbol.js +0 -0
  862. /package/dist/{src/icon → icon}/SVGIcon.js +0 -0
  863. /package/dist/{src/icon → icon}/TextIconSpacing.js +0 -0
  864. /package/dist/{src/icon → icon}/iconConfig.js +0 -0
  865. /package/dist/{src/icon → icon}/material.js +0 -0
  866. /package/dist/{src/icon → icon}/materialConfig.js +0 -0
  867. /package/dist/{src/icon → icon}/styles.js +0 -0
  868. /package/dist/{src/index.js → index.js} +0 -0
  869. /package/dist/{src/interaction → interaction}/Ripple.js +0 -0
  870. /package/dist/{src/interaction → interaction}/RippleContainer.js +0 -0
  871. /package/dist/{src/interaction → interaction}/UserInteractionModeProvider.js +0 -0
  872. /package/dist/{src/interaction → interaction}/config.js +0 -0
  873. /package/dist/{src/interaction → interaction}/types.js +0 -0
  874. /package/dist/{src/interaction → interaction}/useElementInteraction.js +0 -0
  875. /package/dist/{src/interaction → interaction}/useHigherContrastChildren.js +0 -0
  876. /package/dist/{src/interaction → interaction}/utils.js +0 -0
  877. /package/dist/{src/layout → layout}/LayoutAppBar.js +0 -0
  878. /package/dist/{src/layout → layout}/LayoutNav.js +0 -0
  879. /package/dist/{src/layout → layout}/LayoutWindowSplitter.js +0 -0
  880. /package/dist/{src/layout → layout}/Main.js +0 -0
  881. /package/dist/{src/layout → layout}/layoutNavStyles.js +0 -0
  882. /package/dist/{src/layout → layout}/layoutWindowSplitterStyles.js +0 -0
  883. /package/dist/{src/layout → layout}/mainStyles.js +0 -0
  884. /package/dist/{src/layout → layout}/useExpandableLayout.js +0 -0
  885. /package/dist/{src/layout → layout}/useHorizontalLayoutTransition.js +0 -0
  886. /package/dist/{src/layout → layout}/useLayoutAppBarHeight.js +0 -0
  887. /package/dist/{src/layout → layout}/useLayoutTree.js +0 -0
  888. /package/dist/{src/layout → layout}/useLayoutWindowSplitter.js +0 -0
  889. /package/dist/{src/layout → layout}/useMainTabIndex.js +0 -0
  890. /package/dist/{src/layout → layout}/useResizableLayout.js +0 -0
  891. /package/dist/{src/layout → layout}/useTemporaryLayout.js +0 -0
  892. /package/dist/{src/link → link}/Link.js +0 -0
  893. /package/dist/{src/link → link}/SkipToMainContent.js +0 -0
  894. /package/dist/{src/link → link}/styles.js +0 -0
  895. /package/dist/{src/list → list}/List.js +0 -0
  896. /package/dist/{src/list → list}/ListItem.js +0 -0
  897. /package/dist/{src/list → list}/ListItemAddon.js +0 -0
  898. /package/dist/{src/list → list}/ListItemChildren.js +0 -0
  899. /package/dist/{src/list → list}/ListItemLink.js +0 -0
  900. /package/dist/{src/list → list}/ListItemText.js +0 -0
  901. /package/dist/{src/list → list}/ListSubheader.js +0 -0
  902. /package/dist/{src/list → list}/getListItemHeight.js +0 -0
  903. /package/dist/{src/list → list}/listItemStyles.js +0 -0
  904. /package/dist/{src/list → list}/types.js +0 -0
  905. /package/dist/{src/media-queries → media-queries}/AppSizeProvider.js +0 -0
  906. /package/dist/{src/media-queries → media-queries}/appSize.js +0 -0
  907. /package/dist/{src/media-queries → media-queries}/useMediaQuery.js +0 -0
  908. /package/dist/{src/menu → menu}/DropdownMenu.js +0 -0
  909. /package/dist/{src/menu → menu}/Menu.js +0 -0
  910. /package/dist/{src/menu → menu}/MenuBar.js +0 -0
  911. /package/dist/{src/menu → menu}/MenuButton.js +0 -0
  912. /package/dist/{src/menu → menu}/MenuConfigurationProvider.js +0 -0
  913. /package/dist/{src/menu → menu}/MenuItem.js +0 -0
  914. /package/dist/{src/menu → menu}/MenuItemButton.js +0 -0
  915. /package/dist/{src/menu → menu}/MenuItemGroup.js +0 -0
  916. /package/dist/{src/menu → menu}/MenuItemSeparator.js +0 -0
  917. /package/dist/{src/menu → menu}/MenuSheet.js +0 -0
  918. /package/dist/{src/menu → menu}/MenuVisibilityProvider.js +0 -0
  919. /package/dist/{src/menu → menu}/MenuWidget.js +0 -0
  920. /package/dist/{src/menu → menu}/MenuWidgetKeyboardProvider.js +0 -0
  921. /package/dist/{src/menu → menu}/useContextMenu.js +0 -0
  922. /package/dist/{src/menu → menu}/useMenuBarProvider.js +0 -0
  923. /package/dist/{src/menu → menu}/utils.js +0 -0
  924. /package/dist/{src/movement → movement}/constants.js +0 -0
  925. /package/dist/{src/movement → movement}/findMatchIndex.js +0 -0
  926. /package/dist/{src/movement → movement}/types.js +0 -0
  927. /package/dist/{src/movement → movement}/useKeyboardMovementProvider.js +0 -0
  928. /package/dist/{src/movement → movement}/utils.js +0 -0
  929. /package/dist/{src/overlay → overlay}/Overlay.js +0 -0
  930. /package/dist/{src/overlay → overlay}/overlayStyles.js +0 -0
  931. /package/dist/{src/portal → portal}/Portal.js +0 -0
  932. /package/dist/{src/portal → portal}/PortalContainerProvider.js +0 -0
  933. /package/dist/{src/positioning → positioning}/constants.js +0 -0
  934. /package/dist/{src/positioning → positioning}/createHorizontalPosition.js +0 -0
  935. /package/dist/{src/positioning → positioning}/createVerticalPosition.js +0 -0
  936. /package/dist/{src/positioning → positioning}/getFixedPosition.js +0 -0
  937. /package/dist/{src/positioning → positioning}/types.js +0 -0
  938. /package/dist/{src/positioning → positioning}/useFixedPositioning.js +0 -0
  939. /package/dist/{src/positioning → positioning}/utils.js +0 -0
  940. /package/dist/{src/progress → progress}/CircularProgress.js +0 -0
  941. /package/dist/{src/progress → progress}/LinearProgress.js +0 -0
  942. /package/dist/{src/progress → progress}/getProgressA11y.js +0 -0
  943. /package/dist/{src/progress → progress}/types.js +0 -0
  944. /package/dist/{src/responsive-item → responsive-item}/ResponsiveItemContainer.js +0 -0
  945. /package/dist/{src/responsive-item → responsive-item}/ResponsiveItemOverlay.js +0 -0
  946. /package/dist/{src/responsive-item → responsive-item}/styles.js +0 -0
  947. /package/dist/{src/scroll → scroll}/ScrollLock.js +0 -0
  948. /package/dist/{src/scroll → scroll}/getScrollbarWidth.js +0 -0
  949. /package/dist/{src/scroll → scroll}/useScrollLock.js +0 -0
  950. /package/dist/{src/segmented-button → segmented-button}/SegmentedButton.js +0 -0
  951. /package/dist/{src/segmented-button → segmented-button}/SegmentedButtonContainer.js +0 -0
  952. /package/dist/{src/segmented-button → segmented-button}/segmentedButtonContainerStyles.js +0 -0
  953. /package/dist/{src/segmented-button → segmented-button}/segmentedButtonStyles.js +0 -0
  954. /package/dist/{src/sheet → sheet}/Sheet.js +0 -0
  955. /package/dist/{src/sheet → sheet}/styles.js +0 -0
  956. /package/dist/{src/snackbar → snackbar}/DefaultToastRenderer.js +0 -0
  957. /package/dist/{src/snackbar → snackbar}/Snackbar.js +0 -0
  958. /package/dist/{src/snackbar → snackbar}/Toast.js +0 -0
  959. /package/dist/{src/snackbar → snackbar}/ToastActionButton.js +0 -0
  960. /package/dist/{src/snackbar → snackbar}/ToastCloseButton.js +0 -0
  961. /package/dist/{src/snackbar → snackbar}/ToastContent.js +0 -0
  962. /package/dist/{src/snackbar → snackbar}/ToastManager.js +0 -0
  963. /package/dist/{src/snackbar → snackbar}/ToastManagerProvider.js +0 -0
  964. /package/dist/{src/snackbar → snackbar}/snackbarStyles.js +0 -0
  965. /package/dist/{src/snackbar → snackbar}/toastContentStyles.js +0 -0
  966. /package/dist/{src/snackbar → snackbar}/toastStyles.js +0 -0
  967. /package/dist/{src/snackbar → snackbar}/useCurrentToastActions.js +0 -0
  968. /package/dist/{src/suspense → suspense}/CircularProgressSuspense.js +0 -0
  969. /package/dist/{src/suspense → suspense}/NullSuspense.js +0 -0
  970. /package/dist/{src/table → table}/Table.js +0 -0
  971. /package/dist/{src/table → table}/TableBody.js +0 -0
  972. /package/dist/{src/table → table}/TableCell.js +0 -0
  973. /package/dist/{src/table → table}/TableCellContent.js +0 -0
  974. /package/dist/{src/table → table}/TableCheckbox.js +0 -0
  975. /package/dist/{src/table → table}/TableConfigurationProvider.js +0 -0
  976. /package/dist/{src/table → table}/TableContainer.js +0 -0
  977. /package/dist/{src/table → table}/TableContainerProvider.js +0 -0
  978. /package/dist/{src/table → table}/TableFooter.js +0 -0
  979. /package/dist/{src/table → table}/TableHeader.js +0 -0
  980. /package/dist/{src/table → table}/TableRadio.js +0 -0
  981. /package/dist/{src/table → table}/TableRow.js +0 -0
  982. /package/dist/{src/table → table}/tableCellStyles.js +0 -0
  983. /package/dist/{src/table → table}/tableContainerStyles.js +0 -0
  984. /package/dist/{src/table → table}/tableFooterStyles.js +0 -0
  985. /package/dist/{src/table → table}/tableHeaderStyles.js +0 -0
  986. /package/dist/{src/table → table}/tableRowStyles.js +0 -0
  987. /package/dist/{src/table → table}/tableStyles.js +0 -0
  988. /package/dist/{src/table → table}/types.js +0 -0
  989. /package/dist/{src/tabs → tabs}/Tab.js +0 -0
  990. /package/dist/{src/tabs → tabs}/TabList.js +0 -0
  991. /package/dist/{src/tabs → tabs}/TabListScrollButton.js +0 -0
  992. /package/dist/{src/tabs → tabs}/tabIndicatorStyles.js +0 -0
  993. /package/dist/{src/tabs → tabs}/tabListScrollButtonStyles.js +0 -0
  994. /package/dist/{src/tabs → tabs}/tabListStyles.js +0 -0
  995. /package/dist/{src/tabs → tabs}/tabStyles.js +0 -0
  996. /package/dist/{src/tabs → tabs}/useTabList.js +0 -0
  997. /package/dist/{src/tabs → tabs}/useTabs.js +0 -0
  998. /package/dist/{src/tabs → tabs}/utils.js +0 -0
  999. /package/dist/{src/test-utils → test-utils}/IntersectionObserver.js +0 -0
  1000. /package/dist/{src/test-utils → test-utils}/ResizeObserver.js +0 -0
  1001. /package/dist/{src/test-utils → test-utils}/data-testid.js +0 -0
  1002. /package/dist/{src/test-utils → test-utils}/index.js +0 -0
  1003. /package/dist/{src/test-utils → test-utils}/jest-setup.js +0 -0
  1004. /package/dist/{src/test-utils → test-utils}/matchMedia.js +0 -0
  1005. /package/dist/{src/test-utils → test-utils}/polyfills/IntersectionObserver.js +0 -0
  1006. /package/dist/{src/test-utils → test-utils}/polyfills/ResizeObserver.js +0 -0
  1007. /package/dist/{src/test-utils → test-utils}/polyfills/index.js +0 -0
  1008. /package/dist/{src/test-utils → test-utils}/polyfills/matchMedia.js +0 -0
  1009. /package/dist/{src/test-utils → test-utils}/polyfills/offsetParent.js +0 -0
  1010. /package/dist/{src/test-utils → test-utils}/polyfills/scrollIntoView.js +0 -0
  1011. /package/dist/{src/test-utils → test-utils}/render.js +0 -0
  1012. /package/dist/{src/test-utils → test-utils}/timers.js +0 -0
  1013. /package/dist/{src/theme → theme}/LocalStorageColorSchemeProvider.js +0 -0
  1014. /package/dist/{src/theme → theme}/ThemeProvider.js +0 -0
  1015. /package/dist/{src/theme → theme}/colors.js +0 -0
  1016. /package/dist/{src/theme → theme}/cssVars.js +0 -0
  1017. /package/dist/{src/theme → theme}/types.js +0 -0
  1018. /package/dist/{src/theme → theme}/useCSSVariables.js +0 -0
  1019. /package/dist/{src/theme → theme}/useColorScheme.js +0 -0
  1020. /package/dist/{src/theme → theme}/useColorSchemeMetaTag.js +0 -0
  1021. /package/dist/{src/theme → theme}/useColorSchemeProvider.js +0 -0
  1022. /package/dist/{src/theme → theme}/usePrefersColorScheme.js +0 -0
  1023. /package/dist/{src/theme → theme}/utils.js +0 -0
  1024. /package/dist/{src/tooltip → tooltip}/Tooltip.js +0 -0
  1025. /package/dist/{src/tooltip → tooltip}/TooltipHoverModeProvider.js +0 -0
  1026. /package/dist/{src/tooltip → tooltip}/constants.js +0 -0
  1027. /package/dist/{src/tooltip → tooltip}/tooltipStyles.js +0 -0
  1028. /package/dist/{src/tooltip → tooltip}/useTooltip.js +0 -0
  1029. /package/dist/{src/tooltip → tooltip}/useTooltipPosition.js +0 -0
  1030. /package/dist/{src/tooltip → tooltip}/utils.js +0 -0
  1031. /package/dist/{src/transition → transition}/CSSTransition.js +0 -0
  1032. /package/dist/{src/transition → transition}/Collapse.js +0 -0
  1033. /package/dist/{src/transition → transition}/CrossFade.js +0 -0
  1034. /package/dist/{src/transition → transition}/ScaleTransition.js +0 -0
  1035. /package/dist/{src/transition → transition}/SkeletonPlaceholder.js +0 -0
  1036. /package/dist/{src/transition → transition}/Slide.js +0 -0
  1037. /package/dist/{src/transition → transition}/SlideContainer.js +0 -0
  1038. /package/dist/{src/transition → transition}/collapseStyles.js +0 -0
  1039. /package/dist/{src/transition → transition}/config.js +0 -0
  1040. /package/dist/{src/transition → transition}/maxWidthTransition.js +0 -0
  1041. /package/dist/{src/transition → transition}/skeletonPlaceholderUtils.js +0 -0
  1042. /package/dist/{src/transition → transition}/types.js +0 -0
  1043. /package/dist/{src/transition → transition}/useCSSTransition.js +0 -0
  1044. /package/dist/{src/transition → transition}/useCarousel.js +0 -0
  1045. /package/dist/{src/transition → transition}/useCollapseTransition.js +0 -0
  1046. /package/dist/{src/transition → transition}/useCrossFadeTransition.js +0 -0
  1047. /package/dist/{src/transition → transition}/useMaxWidthTransition.js +0 -0
  1048. /package/dist/{src/transition → transition}/useScaleTransition.js +0 -0
  1049. /package/dist/{src/transition → transition}/useSkeletonPlaceholder.js +0 -0
  1050. /package/dist/{src/transition → transition}/useSlideTransition.js +0 -0
  1051. /package/dist/{src/transition → transition}/useTransition.js +0 -0
  1052. /package/dist/{src/transition → transition}/utils.js +0 -0
  1053. /package/dist/{src/tree → tree}/DefaultTreeItemRenderer.js +0 -0
  1054. /package/dist/{src/tree → tree}/Tree.js +0 -0
  1055. /package/dist/{src/tree → tree}/TreeGroup.js +0 -0
  1056. /package/dist/{src/tree → tree}/TreeItem.js +0 -0
  1057. /package/dist/{src/tree → tree}/TreeItemExpander.js +0 -0
  1058. /package/dist/{src/tree → tree}/TreeProvider.js +0 -0
  1059. /package/dist/{src/tree → tree}/styles.js +0 -0
  1060. /package/dist/{src/tree → tree}/types.js +0 -0
  1061. /package/dist/{src/tree → tree}/useTree.js +0 -0
  1062. /package/dist/{src/tree → tree}/useTreeExpansion.js +0 -0
  1063. /package/dist/{src/tree → tree}/useTreeItems.js +0 -0
  1064. /package/dist/{src/tree → tree}/useTreeMovement.js +0 -0
  1065. /package/dist/{src/tree → tree}/useTreeSelection.js +0 -0
  1066. /package/dist/{src/tree → tree}/utils.js +0 -0
  1067. /package/dist/{src/types.js → types.js} +0 -0
  1068. /package/dist/{src/typography → typography}/SrOnly.js +0 -0
  1069. /package/dist/{src/typography → typography}/TextContainer.js +0 -0
  1070. /package/dist/{src/typography → typography}/Typography.js +0 -0
  1071. /package/dist/{src/typography → typography}/WritingDirectionProvider.js +0 -0
  1072. /package/dist/{src/useAsyncAction.js → useAsyncAction.js} +0 -0
  1073. /package/dist/{src/useDebouncedFunction.js → useDebouncedFunction.js} +0 -0
  1074. /package/dist/{src/useDropzone.js → useDropzone.js} +0 -0
  1075. /package/dist/{src/useElementSize.js → useElementSize.js} +0 -0
  1076. /package/dist/{src/useEnsuredId.js → useEnsuredId.js} +0 -0
  1077. /package/dist/{src/useEnsuredRef.js → useEnsuredRef.js} +0 -0
  1078. /package/dist/{src/useEnsuredState.js → useEnsuredState.js} +0 -0
  1079. /package/dist/{src/useHtmlClassName.js → useHtmlClassName.js} +0 -0
  1080. /package/dist/{src/useIntersectionObserver.js → useIntersectionObserver.js} +0 -0
  1081. /package/dist/{src/useIsomorphicLayoutEffect.js → useIsomorphicLayoutEffect.js} +0 -0
  1082. /package/dist/{src/useLocalStorage.js → useLocalStorage.js} +0 -0
  1083. /package/dist/{src/useOrientation.js → useOrientation.js} +0 -0
  1084. /package/dist/{src/usePageInactive.js → usePageInactive.js} +0 -0
  1085. /package/dist/{src/useResizeListener.js → useResizeListener.js} +0 -0
  1086. /package/dist/{src/useResizeObserver.js → useResizeObserver.js} +0 -0
  1087. /package/dist/{src/useThrottledFunction.js → useThrottledFunction.js} +0 -0
  1088. /package/dist/{src/useToggle.js → useToggle.js} +0 -0
  1089. /package/dist/{src/useUnmounted.js → useUnmounted.js} +0 -0
  1090. /package/dist/{src/useWindowSize.js → useWindowSize.js} +0 -0
  1091. /package/dist/{src/utils → utils}/RenderRecursively.js +0 -0
  1092. /package/dist/{src/utils → utils}/alphaNumericSort.js +0 -0
  1093. /package/dist/{src/utils → utils}/applyRef.js +0 -0
  1094. /package/dist/{src/utils → utils}/bem.js +0 -0
  1095. /package/dist/{src/utils → utils}/filters.js +0 -0
  1096. /package/dist/{src/utils → utils}/getClientPosition.js +0 -0
  1097. /package/dist/{src/utils → utils}/getMiddleOfRange.js +0 -0
  1098. /package/dist/{src/utils → utils}/getPercentage.js +0 -0
  1099. /package/dist/{src/utils → utils}/getRangeDefaultValue.js +0 -0
  1100. /package/dist/{src/utils → utils}/getRangeSteps.js +0 -0
  1101. /package/dist/{src/utils → utils}/identity.js +0 -0
  1102. /package/dist/{src/utils → utils}/isElementVisible.js +0 -0
  1103. /package/dist/{src/utils → utils}/loop.js +0 -0
  1104. /package/dist/{src/utils → utils}/nearest.js +0 -0
  1105. /package/dist/{src/utils → utils}/parseCssLengthUnit.js +0 -0
  1106. /package/dist/{src/utils → utils}/randomInt.js +0 -0
  1107. /package/dist/{src/utils → utils}/wait.js +0 -0
  1108. /package/dist/{src/utils → utils}/withinRange.js +0 -0
  1109. /package/dist/{src/window-splitter → window-splitter}/WindowSplitter.js +0 -0
  1110. /package/dist/{src/window-splitter → window-splitter}/useWindowSplitter.js +0 -0
@@ -0,0 +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/** @remarks \\@since 6.0.0 */\nexport const PRESSED_CLASS_NAME = \"rmd-pressed\";\n\n/** @remarks \\@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/** @remarks \\@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\n * 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 * @remarks \\@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,2BAA2B,GAC3B,OAAO,MAAMC,qBAAqB,cAAc;AA8ChD,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EC,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"}
@@ -0,0 +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\n * 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 * @remarks \\@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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEC,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"}
@@ -0,0 +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"],"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"}
@@ -0,0 +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 * @remarks \\@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\n * 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\n * 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 * @remarks\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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCC,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"}
@@ -0,0 +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 * @remarks \\@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\n * 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\n * 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 * @remarks \\@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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFC,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"}
@@ -0,0 +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 * @remarks \\@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\n * 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 * @remarks \\@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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DC,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"}
@@ -0,0 +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 * @remarks \\@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 * @remarks \\@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\n * 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 * @remarks \\@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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,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"}
@@ -0,0 +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 * @remarks \\@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 * @remarks \\@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"}
@@ -0,0 +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 * @remarks \\@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 * @remarks \\@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"}
@@ -0,0 +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 * @remarks \\@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 * @remarks \\@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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useExpandableLayout.ts"],"sourcesContent":["\"use client\";\nimport { useAppSize } from \"../media-queries/AppSizeProvider.js\";\nimport type { CSSTransitionElementProps } from \"../transition/types.js\";\nimport type { CssPosition, UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport type { LayoutNavProps } from \"./LayoutNav.js\";\nimport type { HorizontalLayoutTransitionOptions } from \"./useHorizontalLayoutTransition.js\";\nimport { useHorizontalLayoutTransition } from \"./useHorizontalLayoutTransition.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { useResizableLayout } from \"./useResizableLayout.js\";\nimport type {\n ProvidedTemporaryLayoutAppBarProps,\n ProvidedTemporaryLayoutMainProps,\n TemporaryLayoutImplementation,\n TemporaryLayoutOptions,\n} from \"./useTemporaryLayout.js\";\nimport { useTemporaryLayout } from \"./useTemporaryLayout.js\";\n\n/**\n * @remarks \\@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 * @defaultValue `false`\n */\n fullHeightNav?: boolean;\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 * @remarks \\@since 6.0.0\n */\nexport interface ProvidedLayoutMainProps\n extends ProvidedTemporaryLayoutMainProps,\n CSSTransitionElementProps<HTMLElement> {}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedLayoutNavProps = Pick<\n LayoutNavProps,\n \"expanded\" | \"appBarOffset\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedLayoutAppBarProps = ProvidedTemporaryLayoutAppBarProps &\n Partial<CSSTransitionElementProps<HTMLElement>>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ExpandableLayoutImplementation\n extends TemporaryLayoutImplementation {\n temporary: boolean;\n expanded: boolean;\n expandNavigation(): void;\n collapseNavigation(): void;\n toggleNavigation(): void;\n appBarProps: ProvidedLayoutAppBarProps;\n mainProps: ProvidedLayoutMainProps;\n expandableNavProps: ProvidedLayoutNavProps;\n}\n\n/**\n * @example\n * 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 * @remarks \\@since 6.0.0\n * @see {@link useResizableLayout}\n */\nexport function useExpandableLayout(\n options: ExpandableLayoutOptions\n): ExpandableLayoutImplementation {\n const {\n defaultExpanded = false,\n fullHeightNav = false,\n transitionProps,\n temporaryUntil = \"tablet\",\n ...temporaryOptions\n } = options;\n\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 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 },\n };\n}\n"],"names":["useAppSize","useToggle","useHorizontalLayoutTransition","useTemporaryLayout","useExpandableLayout","options","defaultExpanded","fullHeightNav","transitionProps","temporaryUntil","temporaryOptions","appBarProps","mainProps","navToggleProps","temporaryNavProps","hideTemporaryNav","showTemporaryNav","visible","toggled","expanded","enable","expandNavigation","disable","collapseNavigation","toggle","toggleNavigation","elementProps","transitionIn","isPhone","isDesktop","temporary","expandableNavProps","appBarOffset","onClick"],"mappings":"AAAA;AACA,SAASA,UAAU,QAAQ,sCAAsC;AAGjE,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,6BAA6B,QAAQ,qCAAqC;AASnF,SAASC,kBAAkB,QAAQ,0BAA0B;AAsE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEC,GACD,OAAO,SAASC,oBACdC,OAAgC;IAEhC,MAAM,EACJC,kBAAkB,KAAK,EACvBC,gBAAgB,KAAK,EACrBC,eAAe,EACfC,iBAAiB,QAAQ,EACzB,GAAGC,kBACJ,GAAGL;IAEJ,MAAM,EACJM,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,OAAO,EACR,GAAGd,mBAAmBO;IAEvB,MAAM,EACJQ,SAASC,QAAQ,EACjBC,QAAQC,gBAAgB,EACxBC,SAASC,kBAAkB,EAC3BC,QAAQC,gBAAgB,EACzB,GAAGxB,UAAUK;IACd,MAAM,EAAEoB,YAAY,EAAE,GAAGxB,8BAA8B;QACrD,GAAGM,eAAe;QAClBmB,cAAcR;IAChB;IACA,MAAM,EAAES,OAAO,EAAEC,SAAS,EAAE,GAAG7B;IAC/B,MAAM8B,YAAYF,WAAYnB,mBAAmB,aAAa,CAACoB;IAE/D,OAAO;QACLZ;QACAa;QACAf;QACAC;QACAG;QACAE;QACAE;QACAE;QACAd,aAAa;YACX,GAAGA,WAAW;YACd,GAAIJ,gBAAgBmB,eAAe,CAAC,CAAC;QACvC;QACAd,WAAW;YACT,GAAGA,SAAS;YACZ,GAAGc,YAAY;QACjB;QACAZ;QACAiB,oBAAoB;YAClBZ;YACAa,cAAc,CAACzB;QACjB;QACAM,gBAAgB;YACd,GAAGA,cAAc;YACjBoB;gBACE,IAAIH,WAAW;oBACbd;gBACF,OAAO;oBACLS;gBACF;YACF;QACF;IACF;AACF"}
@@ -0,0 +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 type {\n CSSTransitionClassNames,\n CSSTransitionHookReturnValue,\n PreconfiguredCSSTransitionOptions,\n TransitionTimeout,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\n\n/**\n * @remarks \\@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 * @remarks \\@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 * @remarks \\@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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useLayoutAppBarHeight.ts"],"sourcesContent":["\"use client\";\nimport type { Ref, RefCallback } from \"react\";\nimport { useMemo } from \"react\";\nimport type { DefinedCSSVariableName } from \"../theme/types.js\";\nimport type { CSSVariable } from \"../theme/useCSSVariables.js\";\nimport { useElementSize } from \"../useElementSize.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-layout-size\"?: string;\n \"--rmd-layout-header-height\"?: string;\n }\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface LayoutAppBarHeightResult {\n height: number | undefined;\n variables: readonly CSSVariable<DefinedCSSVariableName>[];\n appBarRef: RefCallback<HTMLDivElement>;\n}\n\n/**\n * @example\n * Main Usage\n * ```tsx\n * import type { PropsWithChildren, ReactElement } from \"react\";\n * import {\n * AppBar,\n * useCSSVariables,\n * useLayoutAppBarHeight\n * } from \"@react-md/core\";\n *\n * export function LayoutHeader({ children }: PropsWithChildren): ReactElement {\n * const { appBarRef, variables } = useLayoutAppBarHeight();\n * useCSSVariables(variables);\n *\n * return (\n * <AppBar ref={appBarRef} {...customProps}>\n * <CustomChildren />\n * </AppBar>\n * );\n * };\n * ```\n *\n * @example\n * Inline Variables\n * ```tsx\n * import type { PropsWithChildren, ReactElement } from \"react\";\n * import {\n * AppBar,\n * useCSSVariables,\n * useLayoutAppBarHeight\n * } from \"@react-md/core\";\n *\n * export function Layout({ children }: PropsWithChildren): ReactElement {\n * const { appBarRef, variables } = useLayoutAppBarHeight();\n * const inlineStyle = useCSSVariables(variables, true);\n *\n * return (\n * <div style={inlineStyle}>\n * <AppBar ref={appBarRef} {...customProps}>\n * <CustomChildren />\n * </AppBar>\n * {children}\n * </div>\n * );\n * };\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useLayoutAppBarHeight(\n ref?: Ref<HTMLDivElement>\n): LayoutAppBarHeightResult {\n const { height, elementRef } = useElementSize({\n ref,\n disableWidth: true,\n });\n const variables = useMemo<CSSVariable<DefinedCSSVariableName>[]>(() => {\n if (Number.isNaN(height)) {\n return [];\n }\n\n return [{ name: \"--rmd-layout-header-height\", value: `${height}px` }];\n }, [height]);\n\n return {\n height,\n variables,\n appBarRef: elementRef,\n };\n}\n"],"names":["useMemo","useElementSize","useLayoutAppBarHeight","ref","height","elementRef","disableWidth","variables","Number","isNaN","name","value","appBarRef"],"mappings":"AAAA;AAEA,SAASA,OAAO,QAAQ,QAAQ;AAGhC,SAASC,cAAc,QAAQ,uBAAuB;AAkBtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDC,GACD,OAAO,SAASC,sBACdC,GAAyB;IAEzB,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAE,GAAGJ,eAAe;QAC5CE;QACAG,cAAc;IAChB;IACA,MAAMC,YAAYP,QAA+C;QAC/D,IAAIQ,OAAOC,KAAK,CAACL,SAAS;YACxB,OAAO,EAAE;QACX;QAEA,OAAO;YAAC;gBAAEM,MAAM;gBAA8BC,OAAO,CAAC,EAAEP,OAAO,EAAE,CAAC;YAAC;SAAE;IACvE,GAAG;QAACA;KAAO;IAEX,OAAO;QACLA;QACAG;QACAK,WAAWP;IACb;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useLayoutTree.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\nimport type { TreeProps } from \"../tree/Tree.js\";\nimport type {\n DefaultTreeItemNode,\n TreeData,\n TreeItemDefaultIds,\n TreeItemNode,\n} from \"../tree/types.js\";\nimport type { TreeImplementation } from \"../tree/useTree.js\";\nimport { useTreeExpansion } from \"../tree/useTreeExpansion.js\";\nimport { getTreeItemsFrom } from \"../tree/utils.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @internal\n */\nconst getParentIds = (\n itemId: string,\n navItems: TreeData<TreeItemNode>\n): readonly string[] =>\n getTreeItemsFrom(navItems, itemId).map(({ itemId }) => itemId);\n\n/**\n * @remarks \\@since 6.0.0 Removed the `linkComponent` option.\n */\nexport interface LayoutTreeOptions<\n T extends TreeItemNode = DefaultTreeItemNode,\n> {\n /**\n * The current pathname which is used as the tree `itemId`.\n */\n pathname: string;\n\n /**\n * @example\n * ```tsx\n * const navItems = {\n * \"/\": {\n * itemId: \"/\",\n * parentId: null,\n * children: \"Home\",\n * leftAddon: <HomeIcon />,\n * to: \"/\",\n * },\n * \"/route-1\": {\n * itemId: \"/route-1\",\n * parentId: null,\n * children: \"Route 1\",\n * leftAddon: <TvIcon />,\n * to: \"/route-1\",\n * },\n * \"/route-2\": {\n * itemId: \"/route-2\",\n * parentId: null,\n * children: \"Route 2\",\n * leftAddon: <AppsIcon />,\n * to: \"/route-2\",\n * },\n * \"/route-3\": {\n * itemId: \"/route-3\",\n * parentId: null,\n * children: \"Route 3\",\n * leftAddon: <BookIcon />,\n * to: \"/route-3\",\n * },\n * } satisfies TreeData;\n * ```\n */\n navItems: TreeData<T>;\n\n /**\n * @defaultValue `getParentIds(pathname, navItems)`\n */\n defaultExpandedIds?: TreeItemDefaultIds;\n}\n\n/**\n * @remarks \\@since 6.0.0 Renamed from `LayoutNavigationState`, removed the\n * `linkComponent`, and remap `navItems` to `data` so it can be passed to the\n * `Tree` component.\n */\nexport interface LayoutTreeImplementation<\n T extends TreeItemNode = DefaultTreeItemNode,\n> extends Pick<TreeProps<T>, \"data\">,\n TreeImplementation {}\n\n/**\n * Before considering to use a `Tree` for site navigation, it is important to\n * understand:\n * - There is a lot of functionality required to implement the tree widget so\n * your bundle size will increase\n * - A pattern more suited for typical site navigation with expandable groups of\n * links is the disclosure pattern.\n * - @see https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n *\n * @see https://www.w3.org/WAI/ARIA/apg/patterns/treeview/examples/treeview-navigation/\n *\n * This is a pretty reasonable default implementation for having a navigation\n * tree within the Layout component. The way it'll work is that the current\n * route will be the only selected item within the tree. When the pathname\n * changes, the selectedIds will be updated to only be the current pathname once\n * again.\n *\n * This means that you can use whatever routing library or history provider that\n * ensures that your layout re-renders on a path change.\n *\n * @example\n * ```tsx\n * import { Tree, useLayoutTree } from \"@react-md/core\";\n * import type { TreeData } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * // choose your routing library...\n * import { Link, useLocation } from \"react-router\";\n *\n * const navItems = {\n * \"/\": {\n * itemId: \"/\",\n * parentId: null,\n * children: \"Home\",\n * leftAddon: <HomeIcon />,\n * to: \"/\",\n * },\n * \"/route-1\": {\n * itemId: \"/route-1\",\n * parentId: null,\n * children: \"Route 1\",\n * leftAddon: <TvIcon />,\n * to: \"/route-1\",\n * },\n * \"/route-2\": {\n * itemId: \"/route-2\",\n * parentId: null,\n * children: \"Route 2\",\n * leftAddon: <AppsIcon />,\n * to: \"/route-2\",\n * },\n * \"/route-3\": {\n * itemId: \"/route-3\",\n * parentId: null,\n * children: \"Route 3\",\n * leftAddon: <BookIcon />,\n * to: \"/route-3\",\n * },\n * } satisfies TreeData;\n *\n * function Example(): ReactElement {\n * const { pathname } = useLocation();\n * const tree = useLayoutTree({\n * navItems,\n * pathname,\n * });\n *\n * return (\n * <Tree\n * {...tree}\n * aria-label=\"Navigation\"\n * linkComponent={Link}\n * />\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0 Renamed from `useLayoutNavigation`.\n */\nexport function useLayoutTree(\n options: LayoutTreeOptions\n): LayoutTreeImplementation {\n const { defaultExpandedIds, navItems, pathname } = options;\n\n const selectedIds = useMemo(() => new Set([pathname]), [pathname]);\n const { expandedIds, expandMultipleTreeItems, toggleTreeItemExpansion } =\n useTreeExpansion(\n defaultExpandedIds ?? (() => getParentIds(pathname, navItems))\n );\n\n useEffect(() => {\n expandMultipleTreeItems((prevExpandedIds) => {\n const nextExpandedIds = new Set([\n ...prevExpandedIds,\n ...getParentIds(pathname, navItems),\n ]);\n\n return nextExpandedIds;\n });\n }, [expandMultipleTreeItems, pathname, navItems]);\n\n return {\n data: navItems,\n multiSelect: false,\n selectedIds,\n expandedIds,\n expandMultipleTreeItems,\n toggleTreeItemExpansion,\n toggleTreeItemSelection: noop,\n selectMultipleTreeItems: noop,\n };\n}\n"],"names":["useEffect","useMemo","useTreeExpansion","getTreeItemsFrom","noop","getParentIds","itemId","navItems","map","useLayoutTree","options","defaultExpandedIds","pathname","selectedIds","Set","expandedIds","expandMultipleTreeItems","toggleTreeItemExpansion","prevExpandedIds","nextExpandedIds","data","multiSelect","toggleTreeItemSelection","selectMultipleTreeItems"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAS3C,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,gBAAgB,QAAQ,mBAAmB;AAEpD,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;CAEC,GACD,MAAMC,eAAe,CACnBC,QACAC,WAEAJ,iBAAiBI,UAAUD,QAAQE,GAAG,CAAC,CAAC,EAAEF,MAAM,EAAE,GAAKA;AAkEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EC,GACD,OAAO,SAASG,cACdC,OAA0B;IAE1B,MAAM,EAAEC,kBAAkB,EAAEJ,QAAQ,EAAEK,QAAQ,EAAE,GAAGF;IAEnD,MAAMG,cAAcZ,QAAQ,IAAM,IAAIa,IAAI;YAACF;SAAS,GAAG;QAACA;KAAS;IACjE,MAAM,EAAEG,WAAW,EAAEC,uBAAuB,EAAEC,uBAAuB,EAAE,GACrEf,iBACES,sBAAuB,CAAA,IAAMN,aAAaO,UAAUL,SAAQ;IAGhEP,UAAU;QACRgB,wBAAwB,CAACE;YACvB,MAAMC,kBAAkB,IAAIL,IAAI;mBAC3BI;mBACAb,aAAaO,UAAUL;aAC3B;YAED,OAAOY;QACT;IACF,GAAG;QAACH;QAAyBJ;QAAUL;KAAS;IAEhD,OAAO;QACLa,MAAMb;QACNc,aAAa;QACbR;QACAE;QACAC;QACAC;QACAK,yBAAyBlB;QACzBmB,yBAAyBnB;IAC3B;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useLayoutWindowSplitter.ts"],"sourcesContent":["\"use client\";\nimport { type UncontrolledDraggableOptions } from \"../draggable/useDraggable.js\";\nimport { type UseStateInitializer } from \"../types.js\";\nimport { useWindowSize } from \"../useWindowSize.js\";\nimport {\n useWindowSplitter,\n type WindowSplitterImplementation,\n type WindowSplitterOptions,\n type WindowSplitterWidgetProps,\n} from \"../window-splitter/useWindowSplitter.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface LayoutWindowSplitterOptions\n extends Omit<WindowSplitterOptions, \"min\" | \"max\"> {\n /**\n * @see {@link WindowSplitterOptions.min}\n * @defaultValue `96`\n */\n min?: number;\n\n /**\n * This is the minimum max value that can be allowed while resizing the\n * browser. I don't know the best way to describe it, but the `max` value is\n * determined by:\n *\n * ```ts\n * const { width } = useWindowSize({ disableHeight: true });\n * const max = Math.max(maxMinimum, width * windowPercentage);\n * ```\n *\n * @defaultValue `600`\n */\n maxMinimum?: number;\n\n /**\n * This will be multiplied by the current window's width to determine the\n * dynamic max value for the window splitter.\n *\n * @see {@link maxMinimum}\n * @defaultValue `0.45`\n */\n windowPercentage?: number;\n\n /** @defaultValue `256` */\n defaultValue?: UseStateInitializer<number>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedLayoutWindowSplitterProps\n extends WindowSplitterWidgetProps<HTMLButtonElement> {\n /** @defaultValue {@link WindowSplitterImplementation.value} */\n navWidth: number;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface LayoutWindowSplitterImplementation\n extends WindowSplitterImplementation {\n splitterProps: ProvidedLayoutWindowSplitterProps;\n}\n\n/**\n * A custom window splitter implementation to be used with the\n * `LayoutWindowSplitter` that will dynamically configure the max width to be a\n * percentage of the current window's width.\n *\n * Note: This will automatically save the width in local storage as\n * `\"navWidth\"`. See the example below if you do not want to use local storage.\n *\n * @example\n * Without this hook\n * ```tsx\n * import { useWindowSize, useWindowSplitter } from \"@react-md/core\";\n * import type { ProvidedLayoutWindowSplitterProps } from \"@react-md/core\";\n *\n * export function useMyLayoutWindowSplitter(): ProvidedLayoutWindowSplitterProps {\n * const { width } = useWindowSize({ disableHeight: true });\n * const { splitterProps, value } = useWindowSplitter({\n * min: 96,\n * max: Math.max(maxMinimum, width * 0.45),\n * maxMinimum: 600,\n * });\n *\n * return {\n * ...splitterProps,\n * navWidth: value,\n * };\n * }\n *\n * function MyLayout() {\n * const splitterProps = useMyLayoutWindowSplitter();\n *\n * return (\n * <LayoutWindowSplitter\n * {...splitterProps}\n * aria-controls=\"layout-nav-id\"\n * />\n * );\n * }\n * ```\n *\n * @see {@link useResizableLayout} For a pre-built solution.\n * @remarks \\@since 6.0.0\n */\nexport function useLayoutWindowSplitter(\n options: LayoutWindowSplitterOptions = {}\n): LayoutWindowSplitterImplementation {\n const {\n min = 96,\n maxMinimum = 600,\n windowPercentage = 0.45,\n defaultValue = 256,\n ...remaining\n } = options;\n const { width } = useWindowSize({ disableHeight: true });\n const implementation = useWindowSplitter({\n min,\n max: Math.max(maxMinimum, width * windowPercentage),\n defaultValue,\n // type cast so it doesn't complain about defaultValue being provided with\n // value. That's mostly for public api usage\n ...(remaining as UncontrolledDraggableOptions),\n });\n\n return {\n ...implementation,\n splitterProps: {\n ...implementation.splitterProps,\n navWidth: implementation.value,\n },\n };\n}\n"],"names":["useWindowSize","useWindowSplitter","useLayoutWindowSplitter","options","min","maxMinimum","windowPercentage","defaultValue","remaining","width","disableHeight","implementation","max","Math","splitterProps","navWidth","value"],"mappings":"AAAA;AAGA,SAASA,aAAa,QAAQ,sBAAsB;AACpD,SACEC,iBAAiB,QAIZ,0CAA0C;AAyDjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CC,GACD,OAAO,SAASC,wBACdC,UAAuC,CAAC,CAAC;IAEzC,MAAM,EACJC,MAAM,EAAE,EACRC,aAAa,GAAG,EAChBC,mBAAmB,IAAI,EACvBC,eAAe,GAAG,EAClB,GAAGC,WACJ,GAAGL;IACJ,MAAM,EAAEM,KAAK,EAAE,GAAGT,cAAc;QAAEU,eAAe;IAAK;IACtD,MAAMC,iBAAiBV,kBAAkB;QACvCG;QACAQ,KAAKC,KAAKD,GAAG,CAACP,YAAYI,QAAQH;QAClCC;QACA,0EAA0E;QAC1E,4CAA4C;QAC5C,GAAIC,SAAS;IACf;IAEA,OAAO;QACL,GAAGG,cAAc;QACjBG,eAAe;YACb,GAAGH,eAAeG,aAAa;YAC/BC,UAAUJ,eAAeK,KAAK;QAChC;IACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useMainTabIndex.ts"],"sourcesContent":["\"use client\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\n\n/**\n * This hook is used to return a tab index of `-1` whenever the user is using a\n * keyboard for the `SkipToMainContent` to work correctly.\n *\n * @remarks \\@since 6.0.0\n */\nexport function useMainTabIndex(tabIndex?: number): number | undefined {\n const keyboard = useUserInteractionMode() === \"keyboard\";\n if (keyboard && typeof tabIndex === \"undefined\") {\n tabIndex = -1;\n }\n\n return tabIndex;\n}\n"],"names":["useUserInteractionMode","useMainTabIndex","tabIndex","keyboard"],"mappings":"AAAA;AACA,SAASA,sBAAsB,QAAQ,gDAAgD;AAEvF;;;;;CAKC,GACD,OAAO,SAASC,gBAAgBC,QAAiB;IAC/C,MAAMC,WAAWH,6BAA6B;IAC9C,IAAIG,YAAY,OAAOD,aAAa,aAAa;QAC/CA,WAAW,CAAC;IACd;IAEA,OAAOA;AACT"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useResizableLayout.ts"],"sourcesContent":["import { useEnsuredId } from \"../useEnsuredId.js\";\nimport { DISPLAY_NONE_CLASS } from \"../utils/isElementVisible.js\";\nimport { type LayoutWindowSplitterProps } from \"./LayoutWindowSplitter.js\";\nimport {\n type ExpandableLayoutImplementation,\n type ExpandableLayoutOptions,\n type ProvidedLayoutNavProps,\n} from \"./useExpandableLayout.js\";\nimport { useExpandableLayout } from \"./useExpandableLayout.js\";\nimport {\n useLayoutWindowSplitter,\n type LayoutWindowSplitterOptions,\n} from \"./useLayoutWindowSplitter.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ResizableLayoutOptions\n extends ExpandableLayoutOptions,\n LayoutWindowSplitterOptions {\n /**\n * This id will be used as the `aria-controls` prop for the\n * `LayoutWindowSplitter` and should be applied to the `LayoutNav` as an `id`.\n *\n * @defaultValue `\"layout-nav\" + useId()`\n */\n navId?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ProvidedResizableLayoutNavProps\n extends ProvidedLayoutNavProps {\n id: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface ResizableLayoutImplementation\n extends ExpandableLayoutImplementation {\n expandableNavProps: ProvidedResizableLayoutNavProps;\n windowSplitterProps: LayoutWindowSplitterProps;\n}\n\n/**\n * @example\n * Main USage\n * ```tsx\n * import {\n * AppBarTitle,\n * Button,\n * LayoutAppBar,\n * LayoutNav,\n * LayoutWindowSplitter,\n * Main,\n * Sheet,\n * useResizableLayout,\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 * isPhone,\n * appBarProps,\n * expandableNavProps,\n * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * windowSplitterProps,\n * } = useResizableLayout({ 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 * <LayoutWindowSplitter {...windowSplitterProps} />\n * {isPhone && (\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * )}\n * <Main {...mainProps}>{children}</Main>\n * </>\n * }\n * }\n * ```\n * @remarks \\@since 6.0.0\n */\nexport function useResizableLayout(\n options: ResizableLayoutOptions\n): ResizableLayoutImplementation {\n const {\n navId: propNavId,\n pathname,\n appBarPosition = \"fixed\",\n fullHeightNav = false,\n defaultVisible,\n defaultExpanded,\n ...splitterOptions\n } = options;\n const navId = useEnsuredId(propNavId, \"layout-nav\");\n const { splitterProps, ...windowSplitter } =\n useLayoutWindowSplitter(splitterOptions);\n const expandableLayout = useExpandableLayout({\n pathname,\n appBarPosition,\n fullHeightNav,\n defaultExpanded,\n defaultVisible,\n });\n const { expandableNavProps, expanded } = expandableLayout;\n\n return {\n ...expandableLayout,\n ...windowSplitter,\n expandableNavProps: {\n id: navId,\n ...expandableNavProps,\n },\n windowSplitterProps: {\n ...splitterProps,\n \"aria-controls\": navId,\n appBarOffset: !fullHeightNav,\n className: (!expanded && DISPLAY_NONE_CLASS) || undefined,\n },\n };\n}\n"],"names":["useEnsuredId","DISPLAY_NONE_CLASS","useExpandableLayout","useLayoutWindowSplitter","useResizableLayout","options","navId","propNavId","pathname","appBarPosition","fullHeightNav","defaultVisible","defaultExpanded","splitterOptions","splitterProps","windowSplitter","expandableLayout","expandableNavProps","expanded","id","windowSplitterProps","appBarOffset","className","undefined"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,SAASC,kBAAkB,QAAQ,+BAA+B;AAOlE,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SACEC,uBAAuB,QAElB,+BAA+B;AAkCtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEC,GACD,OAAO,SAASC,mBACdC,OAA+B;IAE/B,MAAM,EACJC,OAAOC,SAAS,EAChBC,QAAQ,EACRC,iBAAiB,OAAO,EACxBC,gBAAgB,KAAK,EACrBC,cAAc,EACdC,eAAe,EACf,GAAGC,iBACJ,GAAGR;IACJ,MAAMC,QAAQN,aAAaO,WAAW;IACtC,MAAM,EAAEO,aAAa,EAAE,GAAGC,gBAAgB,GACxCZ,wBAAwBU;IAC1B,MAAMG,mBAAmBd,oBAAoB;QAC3CM;QACAC;QACAC;QACAE;QACAD;IACF;IACA,MAAM,EAAEM,kBAAkB,EAAEC,QAAQ,EAAE,GAAGF;IAEzC,OAAO;QACL,GAAGA,gBAAgB;QACnB,GAAGD,cAAc;QACjBE,oBAAoB;YAClBE,IAAIb;YACJ,GAAGW,kBAAkB;QACvB;QACAG,qBAAqB;YACnB,GAAGN,aAAa;YAChB,iBAAiBR;YACjBe,cAAc,CAACX;YACfY,WAAW,AAAC,CAACJ,YAAYjB,sBAAuBsB;QAClD;IACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/useTemporaryLayout.ts"],"sourcesContent":["\"use client\";\nimport type { PropsWithChildren } from \"react\";\nimport { useEffect } from \"react\";\nimport type { AppBarProps } from \"../app-bar/AppBar.js\";\nimport type { ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport type { SheetProps } from \"../sheet/Sheet.js\";\nimport type { CssPosition, UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport type { MainProps } from \"./Main.js\";\n\nexport interface TemporaryLayoutOptions {\n /**\n * This is used to automatically hide the temporary navigation whenever the\n * route changes. Set this to `null` if you want to handle closing yourself.\n */\n pathname: string | null;\n\n /** @defaultValue `\"fixed\"` */\n appBarPosition?: CssPosition;\n\n /** @defaultValue `false` */\n defaultVisible?: UseStateInitializer<boolean>;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedLayoutNavToggleProps = PropsWithChildren<\n Pick<Required<ButtonProps>, \"aria-label\" | \"buttonType\" | \"onClick\">\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedTemporaryLayoutNavProps = Pick<\n Required<SheetProps>,\n \"aria-label\" | \"visible\" | \"onRequestClose\"\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedTemporaryLayoutMainProps = Required<\n Pick<MainProps, \"appBarOffset\">\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type ProvidedTemporaryLayoutAppBarProps = Required<\n Pick<AppBarProps, \"position\">\n>;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TemporaryLayoutImplementation {\n visible: boolean;\n showTemporaryNav(): void;\n hideTemporaryNav(): void;\n appBarProps: ProvidedTemporaryLayoutAppBarProps;\n mainProps: ProvidedTemporaryLayoutMainProps;\n navToggleProps: ProvidedLayoutNavToggleProps;\n temporaryNavProps: ProvidedTemporaryLayoutNavProps;\n}\n\n/**\n * @example\n * ```tsx\n * import {\n * AppBar,\n * AppBarTitle,\n * Button,\n * Main,\n * Sheet,\n * useTemporaryLayout,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * import { CustomNavigation } from \"./CustomNavigation.jsx\";\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 * mainProps,\n * navToggleProps,\n * temporaryNavProps,\n * } = useTemporaryLayout({ pathname });\n *\n * return (\n * <>\n * <AppBar position=\"fixed\">\n * <Button {...navToggleProps} />\n * <AppBarTitle>Hello, world!</AppBarTitle>\n * </AppBar>\n * <Main {...mainProps}>{children}</Main>\n * <Sheet {...temporaryNavProps}>\n * <CustomNavigation />\n * </Sheet>\n * </>\n * );\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function useTemporaryLayout(\n options: TemporaryLayoutOptions\n): TemporaryLayoutImplementation {\n const {\n pathname,\n defaultVisible = false,\n appBarPosition = \"fixed\",\n } = options;\n\n const menuIcon = getIcon(\"menu\");\n const {\n toggled: visible,\n enable: showTemporaryNav,\n disable: hideTemporaryNav,\n } = useToggle(defaultVisible);\n\n // hide the temporary nav whenever the route changes\n useEffect(() => {\n if (pathname !== null) {\n hideTemporaryNav();\n }\n }, [hideTemporaryNav, pathname]);\n\n return {\n visible,\n showTemporaryNav,\n hideTemporaryNav,\n appBarProps: {\n position: appBarPosition,\n },\n mainProps: {\n appBarOffset: appBarPosition !== \"static\",\n },\n temporaryNavProps: {\n \"aria-label\": \"Navigation\",\n visible,\n onRequestClose: hideTemporaryNav,\n },\n navToggleProps: {\n \"aria-label\": \"Navigation\",\n buttonType: \"icon\",\n children: menuIcon,\n onClick() {\n showTemporaryNav();\n },\n },\n };\n}\n"],"names":["useEffect","getIcon","useToggle","useTemporaryLayout","options","pathname","defaultVisible","appBarPosition","menuIcon","toggled","visible","enable","showTemporaryNav","disable","hideTemporaryNav","appBarProps","position","mainProps","appBarOffset","temporaryNavProps","onRequestClose","navToggleProps","buttonType","children","onClick"],"mappings":"AAAA;AAEA,SAASA,SAAS,QAAQ,QAAQ;AAGlC,SAASC,OAAO,QAAQ,wBAAwB;AAGhD,SAASC,SAAS,QAAQ,kBAAkB;AA2D5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDC,GACD,OAAO,SAASC,mBACdC,OAA+B;IAE/B,MAAM,EACJC,QAAQ,EACRC,iBAAiB,KAAK,EACtBC,iBAAiB,OAAO,EACzB,GAAGH;IAEJ,MAAMI,WAAWP,QAAQ;IACzB,MAAM,EACJQ,SAASC,OAAO,EAChBC,QAAQC,gBAAgB,EACxBC,SAASC,gBAAgB,EAC1B,GAAGZ,UAAUI;IAEd,oDAAoD;IACpDN,UAAU;QACR,IAAIK,aAAa,MAAM;YACrBS;QACF;IACF,GAAG;QAACA;QAAkBT;KAAS;IAE/B,OAAO;QACLK;QACAE;QACAE;QACAC,aAAa;YACXC,UAAUT;QACZ;QACAU,WAAW;YACTC,cAAcX,mBAAmB;QACnC;QACAY,mBAAmB;YACjB,cAAc;YACdT;YACAU,gBAAgBN;QAClB;QACAO,gBAAgB;YACd,cAAc;YACdC,YAAY;YACZC,UAAUf;YACVgB;gBACEZ;YACF;QACF;IACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/link/Link.tsx"],"sourcesContent":["import {\n forwardRef,\n type AnchorHTMLAttributes,\n type ForwardRefExoticComponent,\n} from \"react\";\nimport { link, type LinkClassNameOptions } from \"./styles.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-link-color\"?: string;\n \"--rmd-link-visited-color\"?: string;\n \"--rmd-link-hover-color\"?: string;\n }\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type CustomLinkComponent =\n | ForwardRefExoticComponent<{ href: string }>\n | ForwardRefExoticComponent<{ to: string }>\n | \"a\";\n\n/**\n * @remarks\n * \\@since 6.0.0 Removed the `preventMaliciousTarget` prop since browsers\n * default to `rel=noopener` after updating the {@link https://github.com/whatwg/html/issues/4078|spec}.\n * \\@since 6.0.0 Removed the `component` prop since all you need for link\n * behavior is `className=\"rmd-link\"`.\n * \\@since 6.0.0 The `href` prop is required.\n * \\@since 6.0.0 Removed the `flexCentered` prop since it is now the default\n * styles.\n */\nexport interface LinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement>,\n LinkClassNameOptions {\n /**\n * All links **must** have a valid href.\n */\n href: string;\n\n /**\n * Set this to `true` if your link contains icons that should be centered and\n * spaced with additional text. This is not used by default so that links can\n * correctly line wrap while rendered within paragraphs of text.\n *\n * @defaultValue `false`\n */\n flex?: boolean;\n}\n\n/**\n * **Server Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Link, Typography } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Element(): ReactElement {\n * return (\n * <Typography>\n * Here is a paragraph of text with a {\" \"}\n * <Link href=\"/some-url\">link to some content</Link>.\n * </Typography>\n * );\n * }\n * ```\n *\n *\n * @remarks\n * \\@since 6.0.0 Removed the `preventMaliciousTarget` prop since browsers\n * default to `rel=noopener` after updating the {@link https://github.com/whatwg/html/issues/4078|spec}.\n * \\@since 6.0.0 Removed the `component` prop since all you need for link\n * behavior is `className=\"rmd-link\"`.\n * \\@since 6.0.0 The `href` prop is required.\n * \\@since 6.0.0 Removed the `flexCentered` prop since it is now the default\n * styles.\n */\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n function Link(props, ref) {\n const { className, flex, children, ...remaining } = props;\n\n return (\n <a {...remaining} ref={ref} className={link({ flex, className })}>\n {children}\n </a>\n );\n }\n);\n"],"names":["forwardRef","link","Link","props","ref","className","flex","children","remaining","a"],"mappings":";AAAA,SACEA,UAAU,QAGL,QAAQ;AACf,SAASC,IAAI,QAAmC,cAAc;AA8C9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,MAAMC,qBAAOF,WAClB,SAASE,KAAKC,KAAK,EAAEC,GAAG;IACtB,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,WAAW,GAAGL;IAEpD,qBACE,KAACM;QAAG,GAAGD,SAAS;QAAEJ,KAAKA;QAAKC,WAAWJ,KAAK;YAAEK;YAAMD;QAAU;kBAC3DE;;AAGP,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/link/SkipToMainContent.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, useEffect, useRef, type ReactNode } from \"react\";\nimport { Link, type LinkProps } from \"./Link.js\";\nimport {\n skipToMainContent,\n type SKipToMainContentClassNameOptions,\n} from \"./styles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\nconst getMainElement = (mainId: string): HTMLElement | null =>\n mainId\n ? document.getElementById(mainId)\n : document.querySelector<HTMLElement>('main,[role=\"main\"]');\n\n/**\n * @remarks\n * \\@since 6.0.0 The {@link mainId} is optional\n */\nexport interface SkipToMainContentProps\n extends Omit<LinkProps, \"href\">,\n SKipToMainContentClassNameOptions {\n id?: string;\n\n /**\n * An optional id for the main element. When this is not provided, the main\n * element will be found by:\n *\n * ```ts\n * document.querySelector('main,[role=\"main\"]');\n * ```\n */\n mainId?: string;\n\n /**\n * @defaultValue `\"Skip to main content\"`\n */\n children?: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @remarks\n * \\@since 6.0.0 Throws an error after rendering if no main element can be found\n * with the provided `mainId` in development mode. The previous behavior would\n * only log an error after being clicked.\n */\nexport const SkipToMainContent = forwardRef<\n HTMLAnchorElement,\n SkipToMainContentProps\n>(function SkipToMainContent(props, ref) {\n const {\n id = \"skip-to-main\",\n className,\n children = \"Skip to main content\",\n mainId = \"\",\n onClick = noop,\n unstyled = false,\n ...remaining\n } = props;\n\n const mainNodeRef = useRef<HTMLElement | null>(null);\n // want to warn the developer about missing main element in development\n // immediately to help prevent errors, but in production this can be lazy\n // initialized only once a keyboard user focuses and clicks this element\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n mainNodeRef.current = getMainElement(mainId);\n\n if (!mainNodeRef.current) {\n const foundMainId = document.querySelector('main,[role=\"main\"]')?.id;\n let message = `Unable to find a main element to focus`;\n if (mainId) {\n message += ` with an id of \"${mainId}\"`;\n\n if (foundMainId) {\n message += ` but a main element was found with an id of \"${foundMainId}\".`;\n }\n }\n if (!foundMainId) {\n message +=\n '. There should be at least one <main> element or an element with role=\"main\" on the page for accessibility.';\n }\n\n throw new Error(message);\n }\n }, [mainId]);\n }\n\n return (\n <Link\n {...remaining}\n id={id}\n ref={ref}\n href={`#${mainId}`}\n onClick={(event) => {\n onClick(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n // see comment above useEffect\n mainNodeRef.current ||= getMainElement(mainId);\n mainNodeRef.current?.focus();\n }}\n className={skipToMainContent({\n unstyled,\n className,\n })}\n >\n {children}\n </Link>\n );\n});\n"],"names":["forwardRef","useEffect","useRef","Link","skipToMainContent","noop","getMainElement","mainId","document","getElementById","querySelector","SkipToMainContent","props","ref","id","className","children","onClick","unstyled","remaining","mainNodeRef","process","env","NODE_ENV","current","foundMainId","message","Error","href","event","isPropagationStopped","preventDefault","stopPropagation","focus"],"mappings":"AAAA;;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAwB,QAAQ;AACtE,SAASC,IAAI,QAAwB,YAAY;AACjD,SACEC,iBAAiB,QAEZ,cAAc;AAErB,MAAMC,OAAO;AACX,aAAa;AACf;AAEA,MAAMC,iBAAiB,CAACC,SACtBA,SACIC,SAASC,cAAc,CAACF,UACxBC,SAASE,aAAa,CAAc;AA2B1C;;;;;;;CAOC,GACD,OAAO,MAAMC,kCAAoBX,WAG/B,SAASW,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EACJC,KAAK,cAAc,EACnBC,SAAS,EACTC,WAAW,sBAAsB,EACjCT,SAAS,EAAE,EACXU,UAAUZ,IAAI,EACda,WAAW,KAAK,EAChB,GAAGC,WACJ,GAAGP;IAEJ,MAAMQ,cAAclB,OAA2B;IAC/C,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,IAAImB,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzC,sDAAsD;QACtDtB,UAAU;YACRmB,YAAYI,OAAO,GAAGlB,eAAeC;YAErC,IAAI,CAACa,YAAYI,OAAO,EAAE;gBACxB,MAAMC,cAAcjB,SAASE,aAAa,CAAC,uBAAuBI;gBAClE,IAAIY,UAAU,CAAC,sCAAsC,CAAC;gBACtD,IAAInB,QAAQ;oBACVmB,WAAW,CAAC,gBAAgB,EAAEnB,OAAO,CAAC,CAAC;oBAEvC,IAAIkB,aAAa;wBACfC,WAAW,CAAC,6CAA6C,EAAED,YAAY,EAAE,CAAC;oBAC5E;gBACF;gBACA,IAAI,CAACA,aAAa;oBAChBC,WACE;gBACJ;gBAEA,MAAM,IAAIC,MAAMD;YAClB;QACF,GAAG;YAACnB;SAAO;IACb;IAEA,qBACE,KAACJ;QACE,GAAGgB,SAAS;QACbL,IAAIA;QACJD,KAAKA;QACLe,MAAM,CAAC,CAAC,EAAErB,OAAO,CAAC;QAClBU,SAAS,CAACY;YACRZ,QAAQY;YACR,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YAErB,8BAA8B;YAC9BZ,YAAYI,OAAO,KAAKlB,eAAeC;YACvCa,YAAYI,OAAO,EAAES;QACvB;QACAlB,WAAWX,kBAAkB;YAC3Bc;YACAH;QACF;kBAECC;;AAGP,GAAG"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/link/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-link\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface LinkClassNameOptions {\n className?: string;\n\n /** @defaultValue `false` */\n flex?: boolean;\n}\n\n/**\n * This really doesn't do much at this time since it only merges `rmd-link` with\n * the optional className. This was mostly added just for convention purposes.\n *\n * @remarks \\@since 6.0.0\n */\nexport function link(options: LinkClassNameOptions = {}): string {\n const { flex, className } = options;\n\n return cnb(styles({ flex }), className);\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface SKipToMainContentClassNameOptions {\n className?: string;\n\n /**\n * @defaultValue `false`\n */\n unstyled?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function skipToMainContent(\n options: SKipToMainContentClassNameOptions = {}\n): string {\n const { unstyled = false, className } = options;\n\n return cnb(\n styles({\n skip: true,\n \"skip-styled\": !unstyled,\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","link","options","flex","className","skipToMainContent","unstyled","skip"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAUnB;;;;;CAKC,GACD,OAAO,SAASE,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGF;IAE5B,OAAOJ,IAAIE,OAAO;QAAEG;IAAK,IAAIC;AAC/B;AAYA;;CAEC,GACD,OAAO,SAASC,kBACdH,UAA6C,CAAC,CAAC;IAE/C,MAAM,EAAEI,WAAW,KAAK,EAAEF,SAAS,EAAE,GAAGF;IAExC,OAAOJ,IACLE,OAAO;QACLO,MAAM;QACN,eAAe,CAACD;IAClB,IACAF;AAEJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/List.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { bem } from \"../utils/bem.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-list-padding-h\"?: string | number;\n \"--rmd-list-padding-v\"?: string | number;\n }\n}\n\nconst styles = bem(\"rmd-list\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListClassNameOptions {\n className?: string;\n\n /** @defaultValue `false` */\n dense?: boolean;\n\n /** @defaultValue `false` */\n horizontal?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function list(options: ListClassNameOptions = {}): string {\n const { dense = false, horizontal = false, className } = options;\n\n return cnb(styles({ dense, horizontal }), className);\n}\n\nexport type ListElement = HTMLUListElement | HTMLOListElement;\n\nexport interface ListProps extends HTMLAttributes<ListElement> {\n /**\n * @defaultValue `\"none\"`\n */\n role?: HTMLAttributes<ListElement>[\"role\"];\n\n /**\n * Set to `true` to decrease the amount of padding and font size within the\n * list.\n *\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * Set this to `true` to render as `<ol>` instead of `<ul>` when the children\n * are in a specific order. For example: steps within a recipe.\n *\n * @defaultValue `false`\n */\n ordered?: boolean;\n\n /**\n * Set this to `true` to render horizontally instead of vertically.\n *\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * **Server Component**\n *\n * The `List` component is used to render a collection of clickable actions\n * vertically or horizontally and does not include the default `ol`/`ul` styles.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { List, ListItem, ListItemLink } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <List>\n * <ListItem\n * onClick={() => {\n * // do something\n * }}\n * >\n * Item 1\n * </ListItem>\n * <ListItem\n * onClick={() => {\n * // do something\n * }}\n * >\n * Item 2\n * </ListItem>\n * <ListItem\n * onClick={() => {\n * // do something\n * }}\n * >\n * Item 3\n * </ListItem>\n * <ListItemLink href=\"/some-route\">Link Example</ListItemLink>\n * </List>\n * );\n * }\n * ```\n */\nexport const List = forwardRef<ListElement, ListProps>(\n function List(props, ref) {\n const {\n className,\n children,\n role = \"none\",\n dense = false,\n ordered = false,\n horizontal = false,\n ...remaining\n } = props;\n const Component = (ordered ? \"ol\" : \"ul\") as \"ul\";\n return (\n <Component\n {...remaining}\n ref={ref}\n role={role}\n className={list({\n dense,\n horizontal,\n className,\n })}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["cnb","forwardRef","bem","styles","list","options","dense","horizontal","className","List","props","ref","children","role","ordered","remaining","Component"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AACxD,SAASC,GAAG,QAAQ,kBAAkB;AAStC,MAAMC,SAASD,IAAI;AAanB;;CAEC,GACD,OAAO,SAASE,KAAKC,UAAgC,CAAC,CAAC;IACrD,MAAM,EAAEC,QAAQ,KAAK,EAAEC,aAAa,KAAK,EAAEC,SAAS,EAAE,GAAGH;IAEzD,OAAOL,IAAIG,OAAO;QAAEG;QAAOC;IAAW,IAAIC;AAC5C;AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCC,GACD,OAAO,MAAMC,qBAAOR,WAClB,SAASQ,KAAKC,KAAK,EAAEC,GAAG;IACtB,MAAM,EACJH,SAAS,EACTI,QAAQ,EACRC,OAAO,MAAM,EACbP,QAAQ,KAAK,EACbQ,UAAU,KAAK,EACfP,aAAa,KAAK,EAClB,GAAGQ,WACJ,GAAGL;IACJ,MAAMM,YAAaF,UAAU,OAAO;IACpC,qBACE,KAACE;QACE,GAAGD,SAAS;QACbJ,KAAKA;QACLE,MAAMA;QACNL,WAAWJ,KAAK;YACdE;YACAC;YACAC;QACF;kBAECI;;AAGP,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListItem.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { useElementInteraction } from \"../interaction/useElementInteraction.js\";\nimport { useHigherContrastChildren } from \"../interaction/useHigherContrastChildren.js\";\nimport { getListItemHeight } from \"./getListItemHeight.js\";\nimport { ListItemChildren } from \"./ListItemChildren.js\";\nimport { listItem } from \"./listItemStyles.js\";\nimport { type ListItemChildrenProps, type ListItemHeight } from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-list-item-keyline\"?: string | number;\n \"--rmd-list-item-padding-h\"?: string | number;\n \"--rmd-list-item-padding-v\"?: string | number;\n \"--rmd-list-item-height\"?: string | number;\n \"--rmd-list-item-medium-height\"?: string | number;\n \"--rmd-list-item-large-height\"?: string | number;\n \"--rmd-list-item-extra-large-height\"?: string | number;\n \"--rmd-list-item-multiline-clamp\"?: string | number;\n \"--rmd-list-item-multiline-height\"?: string | number;\n \"--rmd-list-item-media-size\"?: string | number;\n \"--rmd-list-item-media-spacing\"?: string | number;\n \"--rmd-list-item-text-multiline-height\"?: string | number;\n }\n}\n\n/**\n * @remarks \\@since 6.0.0 Renamed `threeLines` to `multiline` since it can\n * support more than three lines of text.\n */\nexport interface ListItemProps\n extends HTMLAttributes<HTMLLIElement>,\n ListItemChildrenProps {\n /**\n * @defaultValue `\"button\"`\n */\n role?: HTMLAttributes<HTMLLIElement>[\"role\"];\n\n /**\n * @defaultValue `disabled ? -1 : 0`\n */\n tabIndex?: number;\n\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n\n /**\n * @defaultValue `false`\n */\n multiline?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disabled?: boolean;\n\n /**\n * Note: This does nothing if the `disabled` prop is not enabled.\n *\n * @defaultValue `false`\n * @remarks \\@since 2.4.3\n */\n disabledOpacity?: boolean;\n\n /**\n * Set this to `false` if the list item should not gain the interaction\n * states: hover, focus, press, etc. This is kind of like being disabled\n * without the disabled styles being applied.\n *\n * @defaultValue `role === \"presentation\"`\n */\n presentational?: boolean;\n}\n\n/**\n * **Client Component**\n *\n * The `ListItem` is used to create a clickable/focusable button within a\n * `List` and removes the normal `<li>` styles.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { List, ListItem } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <List>\n * <ListItem\n * onClick={() => {\n * // do something\n * }}\n * >\n * Item 1\n * </ListItem>\n * <ListItem\n * onClick={() => {\n * // do something\n * }}\n * secondaryText={<span>Some <strong>additional</strong> content.</span>}\n * >\n * Item 2\n * </ListItem>\n * </List>\n * );\n * );\n * }\n * ```\n *\n * @example\n * Applying Addons Example\n * ```tsx\n * import { List, ListItem } from \"@react-md/core\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <List>\n * <ListItem leftAddon={<FavoriteIcon />}>\n * Item 1\n * </ListItem>\n * <ListItem rightAddon={<FavoriteIcon />}>\n * Item 2\n * </ListItem>\n * <ListItem\n * leftAddon={<FavoriteIcon />}\n * rightAddon={<img alt=\"\" src=\"/some-image.png\" />}\n * rightAddonType=\"media\"\n * >\n * Item 3\n * </ListItem>\n * </List>\n * );\n * );\n * }\n * ```\n */\nexport const ListItem = forwardRef<HTMLLIElement, ListItemProps>(\n function ListItem(props, ref) {\n const {\n className,\n textProps,\n textClassName,\n secondaryTextClassName,\n primaryText,\n secondaryText,\n secondaryTextProps,\n disableTextChildren = false,\n height: propHeight,\n leftAddon,\n leftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonSpacing,\n disableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n role = \"button\",\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n tabIndex: propTabIndex,\n children: propChildren,\n presentational = role === \"presentation\",\n ...remaining\n } = props;\n\n let tabIndex = propTabIndex;\n if (!presentational && typeof tabIndex === \"undefined\") {\n tabIndex = disabled ? -1 : 0;\n }\n\n const { pressedClassName, ripples, handlers } = useElementInteraction({\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n disabled: disabled || presentational,\n });\n const children = useHigherContrastChildren(\n propChildren,\n !disableTextChildren\n );\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon,\n leftAddonType,\n rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <li\n {...remaining}\n {...handlers}\n aria-disabled={disabled || undefined}\n ref={ref}\n role={role}\n tabIndex={tabIndex}\n className={listItem({\n className,\n height,\n disabled,\n disabledOpacity,\n multiline,\n clickable: !presentational,\n pressedClassName,\n })}\n >\n <ListItemChildren\n multiline={multiline}\n textClassName={textClassName}\n secondaryTextClassName={secondaryTextClassName}\n disableTextChildren={disableTextChildren}\n primaryText={primaryText}\n textProps={textProps}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonSpacing={disableLeftAddonSpacing}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemChildren>\n {ripples}\n </li>\n );\n }\n);\n"],"names":["forwardRef","useElementInteraction","useHigherContrastChildren","getListItemHeight","ListItemChildren","listItem","ListItem","props","ref","className","textProps","textClassName","secondaryTextClassName","primaryText","secondaryText","secondaryTextProps","disableTextChildren","height","propHeight","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonSpacing","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","multiline","disabled","disabledOpacity","role","onBlur","onClick","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onMouseLeave","onDragStart","onTouchStart","onTouchEnd","onTouchMove","tabIndex","propTabIndex","children","propChildren","presentational","remaining","pressedClassName","ripples","handlers","li","aria-disabled","undefined","clickable"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AACxD,SAASC,qBAAqB,QAAQ,0CAA0C;AAChF,SAASC,yBAAyB,QAAQ,8CAA8C;AACxF,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,QAAQ,QAAQ,sBAAsB;AAuE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEC,GACD,OAAO,MAAMC,yBAAWN,WACtB,SAASM,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,sBAAsB,KAAK,EAC3BC,QAAQC,UAAU,EAClBC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,OAAO,QAAQ,EACfC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,UAAUC,YAAY,EACtBC,UAAUC,YAAY,EACtBC,iBAAiBhB,SAAS,cAAc,EACxC,GAAGiB,WACJ,GAAG7C;IAEJ,IAAIwC,WAAWC;IACf,IAAI,CAACG,kBAAkB,OAAOJ,aAAa,aAAa;QACtDA,WAAWd,WAAW,CAAC,IAAI;IAC7B;IAEA,MAAM,EAAEoB,gBAAgB,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGtD,sBAAsB;QACpEmC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAb,UAAUA,YAAYkB;IACxB;IACA,MAAMF,WAAW/C,0BACfgD,cACA,CAAClC;IAGH,MAAMC,SAASd,kBAAkB;QAC/Bc,QAAQC;QACRC;QACAC;QACAI;QACAC;QACAX;IACF;IAEA,qBACE,MAAC0C;QACE,GAAGJ,SAAS;QACZ,GAAGG,QAAQ;QACZE,iBAAexB,YAAYyB;QAC3BlD,KAAKA;QACL2B,MAAMA;QACNY,UAAUA;QACVtC,WAAWJ,SAAS;YAClBI;YACAQ;YACAgB;YACAC;YACAF;YACA2B,WAAW,CAACR;YACZE;QACF;;0BAEA,KAACjD;gBACC4B,WAAWA;gBACXrB,eAAeA;gBACfC,wBAAwBA;gBACxBI,qBAAqBA;gBACrBH,aAAaA;gBACbH,WAAWA;gBACXI,eAAeA;gBACfC,oBAAoBA;gBACpBI,WAAWA;gBACXC,eAAeA;gBACfC,mBAAmBA;gBACnBC,oBAAoBA;gBACpBC,oBAAoBA;gBACpBC,YAAYA;gBACZC,gBAAgBA;gBAChBC,oBAAoBA;gBACpBC,qBAAqBA;gBACrBC,qBAAqBA;gBACrBC,yBAAyBA;gBACzBC,+BAA+BA;gBAC/BC,gCAAgCA;0BAE/BkB;;YAEFK;;;AAGP,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListItemAddon.tsx"],"sourcesContent":["import { type ReactElement, type ReactNode } from \"react\";\nimport {\n TextIconSpacing,\n type TextIconSpacingProps,\n} from \"../icon/TextIconSpacing.js\";\nimport {\n listItemAddon,\n type ListItemAddonClassNameOptions,\n} from \"./listItemStyles.js\";\n\nexport interface ListItemAddonProps\n extends Omit<TextIconSpacingProps, \"icon\" | \"iconAfter\" | \"forceIconWrap\">,\n ListItemAddonClassNameOptions {\n /**\n * The addon that should be rendered.\n */\n addon: ReactNode;\n\n /**\n * @defaultValue `type === \"media\" || type === \"large-media\"`\n */\n forceAddonWrap?: boolean;\n}\n\n/**\n * **Server Component**\n *\n * The `ListItemAddon` is used to create an addon to the left or right of the\n * text/children of a `ListItem`.\n *\n * @internal\n */\nexport function ListItemAddon(props: ListItemAddonProps): ReactElement {\n const {\n className,\n children,\n addon,\n addonAfter,\n type = \"icon\",\n position,\n forceAddonWrap,\n disableCenteredMedia,\n disableBeforeSpacing,\n ...remaining\n } = props;\n\n const isMedia = type === \"media\" || type === \"large-media\";\n\n return (\n <TextIconSpacing\n {...remaining}\n icon={addon}\n forceIconWrap={forceAddonWrap ?? isMedia}\n className={listItemAddon({\n type,\n position,\n className,\n addonAfter,\n disableBeforeSpacing,\n disableCenteredMedia,\n })}\n iconAfter={addonAfter}\n >\n {children}\n </TextIconSpacing>\n );\n}\n"],"names":["TextIconSpacing","listItemAddon","ListItemAddon","props","className","children","addon","addonAfter","type","position","forceAddonWrap","disableCenteredMedia","disableBeforeSpacing","remaining","isMedia","icon","forceIconWrap","iconAfter"],"mappings":";AACA,SACEA,eAAe,QAEV,6BAA6B;AACpC,SACEC,aAAa,QAER,sBAAsB;AAgB7B;;;;;;;CAOC,GACD,OAAO,SAASC,cAAcC,KAAyB;IACrD,MAAM,EACJC,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,OAAO,MAAM,EACbC,QAAQ,EACRC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpB,GAAGC,WACJ,GAAGV;IAEJ,MAAMW,UAAUN,SAAS,WAAWA,SAAS;IAE7C,qBACE,KAACR;QACE,GAAGa,SAAS;QACbE,MAAMT;QACNU,eAAeN,kBAAkBI;QACjCV,WAAWH,cAAc;YACvBO;YACAC;YACAL;YACAG;YACAK;YACAD;QACF;QACAM,WAAWV;kBAEVF;;AAGP"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListItemChildren.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { ListItemAddon } from \"./ListItemAddon.js\";\nimport { ListItemText } from \"./ListItemText.js\";\nimport { type ListItemChildrenProps } from \"./types.js\";\n\n/**\n * **Server Component**\n *\n * The `ListItemChildren` component is used to create a styled list item that\n * can have optional addons to the left or right of the children in the form of\n * icons, avatars, or media. The `children` can be replaced by the `primaryText`\n * and `secondaryText` props to create stacked text spanning two or more lines\n * with the default behavior of using `line-clamp` at three lines.\n *\n * Note: This will return a `React.Fragment` of the children and does not wrap\n * in a DOM node for styling. The parent component should normally have\n * `display: flex` for the styling to work.\n *\n * @example\n * Custom Component Usage\n * ```tsx\n * import { ListItemChildren } from \"@react-md/core\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <div style={{ display: \"flex\" }}>\n * <ListItemChildren\n * leftAddon={<FavoriteIcon />}\n * rightAddon={<img alt=\"\" src=\"/some-image.png\" />}\n * rightAddonType=\"media\"\n * secondaryText={<span>Some <strong>additional</strong> content.</span>}\n * >\n * Content\n * </ListItemChildren>\n * </div>\n * );\n * }\n * ```\n */\nexport function ListItemChildren(props: ListItemChildrenProps): ReactElement {\n const {\n multiline,\n textProps,\n textClassName,\n secondaryTextClassName,\n disableTextChildren,\n primaryText,\n secondaryText,\n secondaryTextProps,\n leftAddon,\n leftAddonType = \"icon\",\n leftAddonPosition = \"middle\",\n leftAddonClassName,\n leftAddonForceWrap,\n disableLeftAddonSpacing,\n disableLeftAddonCenteredMedia,\n rightAddon,\n rightAddonType = \"icon\",\n rightAddonPosition = \"middle\",\n rightAddonClassName,\n rightAddonForceWrap,\n disableRightAddonCenteredMedia,\n children: propChildren,\n } = props;\n\n const stringifiedChildren =\n typeof propChildren === \"number\" ? `${propChildren}` : propChildren;\n\n let children = stringifiedChildren;\n if (primaryText || secondaryText || !disableTextChildren) {\n children = (\n <ListItemText\n {...textProps}\n className={textClassName}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n secondaryTextClamped={multiline}\n secondaryTextClassName={secondaryTextClassName}\n >\n {(!disableTextChildren && children) || primaryText}\n </ListItemText>\n );\n }\n\n children = (\n <ListItemAddon\n addon={leftAddon}\n type={leftAddonType}\n position={leftAddonPosition}\n className={leftAddonClassName}\n forceAddonWrap={leftAddonForceWrap}\n disableBeforeSpacing={disableLeftAddonSpacing}\n disableCenteredMedia={disableLeftAddonCenteredMedia}\n >\n {children}\n </ListItemAddon>\n );\n children = (\n <ListItemAddon\n addon={rightAddon}\n addonAfter\n type={rightAddonType}\n position={rightAddonPosition}\n className={rightAddonClassName}\n forceAddonWrap={rightAddonForceWrap}\n disableCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemAddon>\n );\n\n return (\n <>\n {children}\n {(primaryText && stringifiedChildren) || null}\n </>\n );\n}\n"],"names":["ListItemAddon","ListItemText","ListItemChildren","props","multiline","textProps","textClassName","secondaryTextClassName","disableTextChildren","primaryText","secondaryText","secondaryTextProps","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","disableLeftAddonSpacing","disableLeftAddonCenteredMedia","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableRightAddonCenteredMedia","children","propChildren","stringifiedChildren","className","secondaryTextClamped","addon","type","position","forceAddonWrap","disableBeforeSpacing","disableCenteredMedia","addonAfter"],"mappings":";AACA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,YAAY,QAAQ,oBAAoB;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCC,GACD,OAAO,SAASC,iBAAiBC,KAA4B;IAC3D,MAAM,EACJC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,mBAAmB,EACnBC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,oBAAoB,QAAQ,EAC5BC,kBAAkB,EAClBC,kBAAkB,EAClBC,uBAAuB,EACvBC,6BAA6B,EAC7BC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,qBAAqB,QAAQ,EAC7BC,mBAAmB,EACnBC,mBAAmB,EACnBC,8BAA8B,EAC9BC,UAAUC,YAAY,EACvB,GAAGvB;IAEJ,MAAMwB,sBACJ,OAAOD,iBAAiB,WAAW,CAAC,EAAEA,aAAa,CAAC,GAAGA;IAEzD,IAAID,WAAWE;IACf,IAAIlB,eAAeC,iBAAiB,CAACF,qBAAqB;QACxDiB,yBACE,KAACxB;YACE,GAAGI,SAAS;YACbuB,WAAWtB;YACXI,eAAeA;YACfC,oBAAoBA;YACpBkB,sBAAsBzB;YACtBG,wBAAwBA;sBAEvB,AAAC,CAACC,uBAAuBiB,YAAahB;;IAG7C;IAEAgB,yBACE,KAACzB;QACC8B,OAAOlB;QACPmB,MAAMlB;QACNmB,UAAUlB;QACVc,WAAWb;QACXkB,gBAAgBjB;QAChBkB,sBAAsBjB;QACtBkB,sBAAsBjB;kBAErBO;;IAGLA,yBACE,KAACzB;QACC8B,OAAOX;QACPiB,UAAU;QACVL,MAAMX;QACNY,UAAUX;QACVO,WAAWN;QACXW,gBAAgBV;QAChBY,sBAAsBX;kBAErBC;;IAIL,qBACE;;YACGA;YACChB,eAAekB,uBAAwB;;;AAG/C"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListItemLink.tsx"],"sourcesContent":["\"use client\";\nimport {\n forwardRef,\n type AnchorHTMLAttributes,\n type HTMLAttributes,\n} from \"react\";\nimport { useElementInteraction } from \"../interaction/useElementInteraction.js\";\nimport { useHigherContrastChildren } from \"../interaction/useHigherContrastChildren.js\";\nimport { type CustomLinkComponent } from \"../link/Link.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { ListItemChildren } from \"./ListItemChildren.js\";\nimport { getListItemHeight } from \"./getListItemHeight.js\";\nimport { listItem, type ListItemClassNameOptions } from \"./listItemStyles.js\";\nimport { type ListItemChildrenProps } from \"./types.js\";\n\nexport interface ListItemLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement>,\n ListItemClassNameOptions,\n ListItemChildrenProps {\n /** @defaultValue `\"a\"` */\n as?: CustomLinkComponent;\n\n /**\n * This should only be used if the {@link as} {@link CustomLinkComponent}\n * accepts a `to` prop instead of {@link href}.\n */\n to?: string;\n\n /**\n * The link's href. Either this or the {@link to} prop **should** be provided.\n */\n href?: string;\n\n /**\n * Any additional props to provide the wrapping `<li>` element such as\n * `style`, `className`, and `ref`.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n\n /**\n * @defaultValue `disabled ? -1 : undefined`\n */\n tabIndex?: number;\n}\n\n/**\n * **Client Component**\n *\n * The `ListItemLink` should be used to render links within the `List` component.\n */\nexport const ListItemLink = forwardRef<HTMLAnchorElement, ListItemLinkProps>(\n function ListItemLink(props, ref) {\n const {\n as: Link = \"a\",\n to,\n href,\n className,\n liProps,\n textProps,\n textClassName,\n secondaryTextClassName,\n primaryText,\n secondaryText,\n secondaryTextProps,\n disableTextChildren = false,\n height: propHeight,\n leftAddon,\n leftAddonType = \"icon\",\n leftAddonPosition = \"middle\",\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType = \"icon\",\n rightAddonPosition = \"middle\",\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia = false,\n disableRightAddonCenteredMedia = false,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n role,\n tabIndex = disabled || role === \"menuitem\" ? -1 : undefined,\n children: propChildren,\n ...remaining\n } = props;\n\n const { pressedClassName, ripples, handlers } = useElementInteraction({\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n disabled,\n });\n const children = useHigherContrastChildren(\n propChildren,\n !disableTextChildren\n );\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon,\n leftAddonType,\n rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <li {...liProps} role=\"none\">\n <Link\n ref={ref}\n {...remaining}\n {...handlers}\n role={role}\n className={listItem({\n className,\n link: true,\n height,\n disabled,\n disabledOpacity,\n multiline,\n pressedClassName,\n })}\n // TODO: Figure out a better type for the CustomLinkComponent to fix this\n to={to as string}\n href={href as string}\n tabIndex={tabIndex}\n >\n <ListItemChildren\n multiline={multiline}\n textClassName={textClassName}\n secondaryTextClassName={secondaryTextClassName}\n disableTextChildren={disableTextChildren}\n primaryText={primaryText}\n textProps={textProps}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemChildren>\n {ripples}\n </Link>\n </li>\n );\n }\n);\n"],"names":["forwardRef","useElementInteraction","useHigherContrastChildren","ListItemChildren","getListItemHeight","listItem","ListItemLink","props","ref","as","Link","to","href","className","liProps","textProps","textClassName","secondaryTextClassName","primaryText","secondaryText","secondaryTextProps","disableTextChildren","height","propHeight","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","multiline","disabled","disabledOpacity","onBlur","onClick","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onMouseLeave","onDragStart","onTouchStart","onTouchEnd","onTouchMove","role","tabIndex","undefined","children","propChildren","remaining","pressedClassName","ripples","handlers","li","link"],"mappings":"AAAA;;AACA,SACEA,UAAU,QAGL,QAAQ;AACf,SAASC,qBAAqB,QAAQ,0CAA0C;AAChF,SAASC,yBAAyB,QAAQ,8CAA8C;AAGxF,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,QAAQ,QAAuC,sBAAsB;AAiC9E;;;;CAIC,GACD,OAAO,MAAMC,6BAAeN,WAC1B,SAASM,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,IAAIC,OAAO,GAAG,EACdC,EAAE,EACFC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,sBAAsB,KAAK,EAC3BC,QAAQC,UAAU,EAClBC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,oBAAoB,QAAQ,EAC5BC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,qBAAqB,QAAQ,EAC7BC,mBAAmB,EACnBC,mBAAmB,EACnBC,gCAAgC,KAAK,EACrCC,iCAAiC,KAAK,EACtCC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,IAAI,EACJC,WAAWd,YAAYa,SAAS,aAAa,CAAC,IAAIE,SAAS,EAC3DC,UAAUC,YAAY,EACtB,GAAGC,WACJ,GAAGhD;IAEJ,MAAM,EAAEiD,gBAAgB,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGzD,sBAAsB;QACpEsC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAZ;IACF;IACA,MAAMgB,WAAWnD,0BACfoD,cACA,CAACjC;IAGH,MAAMC,SAASlB,kBAAkB;QAC/BkB,QAAQC;QACRC;QACAC;QACAI;QACAC;QACAX;IACF;IAEA,qBACE,KAACwC;QAAI,GAAG7C,OAAO;QAAEoC,MAAK;kBACpB,cAAA,MAACxC;YACCF,KAAKA;YACJ,GAAG+C,SAAS;YACZ,GAAGG,QAAQ;YACZR,MAAMA;YACNrC,WAAWR,SAAS;gBAClBQ;gBACA+C,MAAM;gBACNtC;gBACAe;gBACAC;gBACAF;gBACAoB;YACF;YACA,yEAAyE;YACzE7C,IAAIA;YACJC,MAAMA;YACNuC,UAAUA;;8BAEV,KAAChD;oBACCiC,WAAWA;oBACXpB,eAAeA;oBACfC,wBAAwBA;oBACxBI,qBAAqBA;oBACrBH,aAAaA;oBACbH,WAAWA;oBACXI,eAAeA;oBACfC,oBAAoBA;oBACpBI,WAAWA;oBACXC,eAAeA;oBACfC,mBAAmBA;oBACnBC,oBAAoBA;oBACpBC,oBAAoBA;oBACpBC,YAAYA;oBACZC,gBAAgBA;oBAChBC,oBAAoBA;oBACpBC,qBAAqBA;oBACrBC,qBAAqBA;oBACrBC,+BAA+BA;oBAC/BC,gCAAgCA;8BAE/BkB;;gBAEFI;;;;AAIT,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListItemText.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { listItemText } from \"./listItemStyles.js\";\n\n/**\n * @internal\n */\nexport interface ListItemTextProps extends HTMLAttributes<HTMLSpanElement> {\n secondaryText?: ReactNode;\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /** @defaultValue `false` */\n secondaryTextClamped?: boolean;\n secondaryTextClassName?: string;\n}\n\n/**\n * **Server Component**\n *\n * This is mostly an internal component that can conditionally render secondary\n * text within list items.\n *\n * @internal\n */\nexport const ListItemText = forwardRef<HTMLSpanElement, ListItemTextProps>(\n function ListItemText(props, ref) {\n const {\n className,\n secondaryText,\n secondaryTextProps,\n secondaryTextClamped = false,\n secondaryTextClassName,\n children,\n ...remaining\n } = props;\n\n return (\n <span\n {...remaining}\n ref={ref}\n className={listItemText({\n className,\n })}\n >\n {children}\n {secondaryText && (\n <span\n {...secondaryTextProps}\n className={listItemText({\n clamped: secondaryTextClamped,\n className: secondaryTextClassName,\n secondary: true,\n })}\n >\n {secondaryText}\n </span>\n )}\n </span>\n );\n }\n);\n"],"names":["forwardRef","listItemText","ListItemText","props","ref","className","secondaryText","secondaryTextProps","secondaryTextClamped","secondaryTextClassName","children","remaining","span","clamped","secondary"],"mappings":";AAAA,SAASA,UAAU,QAA6C,QAAQ;AAExE,SAASC,YAAY,QAAQ,sBAAsB;AAiBnD;;;;;;;CAOC,GACD,OAAO,MAAMC,6BAAeF,WAC1B,SAASE,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,SAAS,EACTC,aAAa,EACbC,kBAAkB,EAClBC,uBAAuB,KAAK,EAC5BC,sBAAsB,EACtBC,QAAQ,EACR,GAAGC,WACJ,GAAGR;IAEJ,qBACE,MAACS;QACE,GAAGD,SAAS;QACbP,KAAKA;QACLC,WAAWJ,aAAa;YACtBI;QACF;;YAECK;YACAJ,+BACC,KAACM;gBACE,GAAGL,kBAAkB;gBACtBF,WAAWJ,aAAa;oBACtBY,SAASL;oBACTH,WAAWI;oBACXK,WAAW;gBACb;0BAECR;;;;AAKX,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/ListSubheader.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { ListItemText } from \"./ListItemText.js\";\n\nconst styles = bem(\"rmd-list-subheader\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListSubheaderClassNameOptions {\n className?: string;\n\n /**\n * Boolean if the subheader should be inset to match the `ListItem` text\n * keyline.\n *\n * @defaultValue `false`\n */\n inset?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listSubheader(\n options: ListSubheaderClassNameOptions = {}\n): string {\n const { inset = false, className } = options;\n\n return cnb(styles({ inset }), className);\n}\n\nexport interface ListSubheaderProps\n extends HTMLAttributes<HTMLLIElement>,\n ListSubheaderClassNameOptions {\n /**\n * @defaultValue `\"presentation\"`\n */\n role?: HTMLAttributes<HTMLLIElement>[\"role\"];\n\n /**\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n}\n\n/**\n * **Server Component**\n *\n * The `ListSubheader` is a wrapper for the `<li>` element to apply subheader\n * typography styles and {@link ListItemText} layout.\n */\nexport const ListSubheader = forwardRef<HTMLLIElement, ListSubheaderProps>(\n function ListSubheader(props, ref) {\n const {\n role = \"presentation\",\n inset = false,\n className,\n children,\n textProps,\n ...remaining\n } = props;\n\n return (\n <li\n {...remaining}\n ref={ref}\n role={role}\n className={listSubheader({\n inset,\n className,\n })}\n >\n <ListItemText {...textProps}>{children}</ListItemText>\n </li>\n );\n }\n);\n"],"names":["cnb","forwardRef","bem","ListItemText","styles","listSubheader","options","inset","className","ListSubheader","props","ref","role","children","textProps","remaining","li"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AAExD,SAASC,GAAG,QAAQ,kBAAkB;AACtC,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,MAAMC,SAASF,IAAI;AAenB;;CAEC,GACD,OAAO,SAASG,cACdC,UAAyC,CAAC,CAAC;IAE3C,MAAM,EAAEC,QAAQ,KAAK,EAAEC,SAAS,EAAE,GAAGF;IAErC,OAAON,IAAII,OAAO;QAAEG;IAAM,IAAIC;AAChC;AAgBA;;;;;CAKC,GACD,OAAO,MAAMC,8BAAgBR,WAC3B,SAASQ,cAAcC,KAAK,EAAEC,GAAG;IAC/B,MAAM,EACJC,OAAO,cAAc,EACrBL,QAAQ,KAAK,EACbC,SAAS,EACTK,QAAQ,EACRC,SAAS,EACT,GAAGC,WACJ,GAAGL;IAEJ,qBACE,KAACM;QACE,GAAGD,SAAS;QACbJ,KAAKA;QACLC,MAAMA;QACNJ,WAAWH,cAAc;YACvBE;YACAC;QACF;kBAEA,cAAA,KAACL;YAAc,GAAGW,SAAS;sBAAGD;;;AAGpC,GACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/getListItemHeight.ts"],"sourcesContent":["import type { ListItemChildrenProps, ListItemHeight } from \"./types.js\";\n\n/**\n * @remarks \\@since 6.0.0\n * @internal\n */\nexport interface ListItemHeightOptions\n extends Pick<\n ListItemChildrenProps,\n | \"leftAddon\"\n | \"rightAddon\"\n | \"leftAddonType\"\n | \"rightAddonType\"\n | \"secondaryText\"\n > {\n /**\n * @see {@link ListItemHeight}\n */\n height?: ListItemHeight;\n}\n\n/**\n * Gets the expected height for the `ListItem` or `SimpleListItem` based on the\n * addons and `secondaryText` props.\n *\n * @see {@link ListItemHeight}\n * @internal\n */\nexport function getListItemHeight(\n options: ListItemHeightOptions = {}\n): ListItemHeight {\n const {\n height,\n leftAddon,\n leftAddonType = \"icon\",\n rightAddon,\n rightAddonType = \"icon\",\n secondaryText,\n } = options;\n\n if (height) {\n return height;\n }\n\n const isIcon =\n (leftAddon && leftAddonType === \"icon\") ||\n (rightAddon && rightAddonType === \"icon\");\n const isAvatar =\n (leftAddon && leftAddonType === \"avatar\") ||\n (rightAddon && rightAddonType === \"avatar\");\n const isGraphic =\n (leftAddon &&\n (leftAddonType === \"media\" || leftAddonType === \"large-media\")) ||\n (rightAddon &&\n (rightAddonType === \"media\" || rightAddonType === \"large-media\"));\n\n // secondary text will always be extra large due to the default `line-height`\n if (isGraphic || secondaryText) {\n return \"extra-large\";\n }\n\n if (isAvatar) {\n return \"large\";\n }\n\n if (isIcon) {\n return \"medium\";\n }\n\n return \"normal\";\n}\n"],"names":["getListItemHeight","options","height","leftAddon","leftAddonType","rightAddon","rightAddonType","secondaryText","isIcon","isAvatar","isGraphic"],"mappings":"AAqBA;;;;;;CAMC,GACD,OAAO,SAASA,kBACdC,UAAiC,CAAC,CAAC;IAEnC,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,gBAAgB,MAAM,EACtBC,UAAU,EACVC,iBAAiB,MAAM,EACvBC,aAAa,EACd,GAAGN;IAEJ,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,MAAMM,SACJ,AAACL,aAAaC,kBAAkB,UAC/BC,cAAcC,mBAAmB;IACpC,MAAMG,WACJ,AAACN,aAAaC,kBAAkB,YAC/BC,cAAcC,mBAAmB;IACpC,MAAMI,YACJ,AAACP,aACEC,CAAAA,kBAAkB,WAAWA,kBAAkB,aAAY,KAC7DC,cACEC,CAAAA,mBAAmB,WAAWA,mBAAmB,aAAY;IAElE,6EAA6E;IAC7E,IAAII,aAAaH,eAAe;QAC9B,OAAO;IACT;IAEA,IAAIE,UAAU;QACZ,OAAO;IACT;IAEA,IAAID,QAAQ;QACV,OAAO;IACT;IAEA,OAAO;AACT"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/listItemStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport type {\n ListItemAddonPosition,\n ListItemAddonType,\n ListItemHeight,\n} from \"./types.js\";\n\nconst styles = bem(\"rmd-list-item\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemClassNameOptions {\n className?: string;\n /**\n * @see {@link ListItemHeight}\n * @defaultValue `\"auto\"`\n */\n height?: ListItemHeight;\n\n /**\n * @defaultValue `false`\n */\n multiline?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disabled?: boolean;\n\n /**\n * Note: This does nothing if the `disabled` prop is not enabled.\n *\n * @defaultValue `false`\n * @remarks \\@since 2.4.3\n */\n disabledOpacity?: boolean;\n\n /**\n * Set this to `false` if the list item should not gain the interaction\n * states: hover, focus, press, etc. This is kind of like being disabled\n * without the disabled styles being applied.\n *\n * @defaultValue `true`\n */\n clickable?: boolean;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface InternalListItemClassNameOptions\n extends ListItemClassNameOptions {\n /**\n * @defaultValue `false`\n */\n link?: boolean;\n\n /**\n * This is prop is used internally when integrating with the\n * {@link useElementInteraction} hook.\n */\n pressedClassName?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItem(\n options: InternalListItemClassNameOptions = {}\n): string {\n const {\n className,\n link = false,\n height = \"auto\",\n clickable = true,\n multiline = false,\n disabled = false,\n disabledOpacity = false,\n pressedClassName,\n } = options;\n\n return cnb(\n styles({\n link,\n [height]: height !== \"auto\",\n multiline,\n \"disabled-color\": disabled && !disabledOpacity,\n \"disabled-opacity\": disabled && disabledOpacity,\n }),\n cssUtils({ surface: clickable }),\n pressedClassName,\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemTextClassNameOptions {\n className?: string;\n /**\n * @defaultValue `false`\n */\n clamped?: boolean;\n\n /**\n * @defaultValue `false`\n */\n secondary?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function listItemText(\n options: ListItemTextClassNameOptions = {}\n): string {\n const { className, secondary = false, clamped = false } = options;\n\n return cnb(\n styles(\"text\", {\n clamped: secondary && clamped,\n secondary,\n }),\n className\n );\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemAddonClassNameOptions {\n className?: string;\n\n /**\n * The addon type that is used to adjust the spacing styles.\n *\n * @defaultValue `\"icon\"`\n */\n type?: ListItemAddonType;\n\n /**\n * The vertical position to use for the addon.\n *\n * @defaultValue `\"middle\"`\n */\n position?: ListItemAddonPosition;\n\n /**\n * Boolean if the addon should appear after the `children`.\n *\n * @defaultValue `false`\n */\n addonAfter?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableCenteredMedia?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableBeforeSpacing?: boolean;\n}\n\n/**\n *\n * @remarks \\@since 6.0.0\n */\nexport function listItemAddon(\n options: ListItemAddonClassNameOptions = {}\n): string {\n const {\n type = \"icon\",\n position = \"middle\",\n className,\n addonAfter = false,\n disableCenteredMedia = false,\n disableBeforeSpacing = false,\n } = options;\n\n const isMedia = type === \"media\" || type === \"large-media\";\n const isAvatar = type === \"avatar\";\n\n return cnb(\n styles(\"addon\", {\n [position]: position !== \"middle\",\n before: !disableBeforeSpacing && !addonAfter,\n \"avatar-before\": !disableBeforeSpacing && !addonAfter && isAvatar,\n media: isMedia,\n \"media-large\": type === \"large-media\",\n \"media-centered\": isMedia && !disableCenteredMedia,\n }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","listItem","options","className","link","height","clickable","multiline","disabled","disabledOpacity","pressedClassName","surface","listItemText","secondary","clamped","listItemAddon","type","position","addonAfter","disableCenteredMedia","disableBeforeSpacing","isMedia","isAvatar","before","media"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAOtC,MAAMC,SAASD,IAAI;AAsDnB;;CAEC,GACD,OAAO,SAASE,SACdC,UAA4C,CAAC,CAAC;IAE9C,MAAM,EACJC,SAAS,EACTC,OAAO,KAAK,EACZC,SAAS,MAAM,EACfC,YAAY,IAAI,EAChBC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,gBAAgB,EACjB,GAAGR;IAEJ,OAAOL,IACLG,OAAO;QACLI;QACA,CAACC,OAAO,EAAEA,WAAW;QACrBE;QACA,kBAAkBC,YAAY,CAACC;QAC/B,oBAAoBD,YAAYC;IAClC,IACAX,SAAS;QAAEa,SAASL;IAAU,IAC9BI,kBACAP;AAEJ;AAgBA;;CAEC,GACD,OAAO,SAASS,aACdV,UAAwC,CAAC,CAAC;IAE1C,MAAM,EAAEC,SAAS,EAAEU,YAAY,KAAK,EAAEC,UAAU,KAAK,EAAE,GAAGZ;IAE1D,OAAOL,IACLG,OAAO,QAAQ;QACbc,SAASD,aAAaC;QACtBD;IACF,IACAV;AAEJ;AAoDA;;;CAGC,GACD,OAAO,SAASY,cACdb,UAAyC,CAAC,CAAC;IAE3C,MAAM,EACJc,OAAO,MAAM,EACbC,WAAW,QAAQ,EACnBd,SAAS,EACTe,aAAa,KAAK,EAClBC,uBAAuB,KAAK,EAC5BC,uBAAuB,KAAK,EAC7B,GAAGlB;IAEJ,MAAMmB,UAAUL,SAAS,WAAWA,SAAS;IAC7C,MAAMM,WAAWN,SAAS;IAE1B,OAAOnB,IACLG,OAAO,SAAS;QACd,CAACiB,SAAS,EAAEA,aAAa;QACzBM,QAAQ,CAACH,wBAAwB,CAACF;QAClC,iBAAiB,CAACE,wBAAwB,CAACF,cAAcI;QACzDE,OAAOH;QACP,eAAeL,SAAS;QACxB,kBAAkBK,WAAW,CAACF;IAChC,IACAhB;AAEJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/list/types.ts"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\n\n/**\n * The height to apply to the list item.\n *\n * Conversions:\n *\n * - height !== undefined && height !== \"auto\" -&gt; height\n * - secondaryText or left/right addon is media/media-large -&gt; \"extra-large\"\n * - left/right addon is avatar -&gt; \"large\"\n * - left/right addon is icon -&gt; \"medium\"\n * - no addons and no secondary text -&gt; \"normal\"\n */\nexport type ListItemHeight =\n | \"auto\"\n | \"normal\"\n | \"medium\"\n | \"large\"\n | \"extra-large\";\n\nexport type ListItemAddonPosition = \"top\" | \"middle\" | \"bottom\";\nexport type ListItemAddonType = \"icon\" | \"avatar\" | \"media\" | \"large-media\";\n\n/** @remarks \\@since 6.0.0 */\nexport interface ListItemChildrenAddonProps {\n /**\n * An optional addon to display to the left of the `primaryText` or\n * `children` and should be used with the `leftAddonType` prop to adjust\n * spacing.\n */\n leftAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the left of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n leftAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the left icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n leftAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n leftAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `leftAddonType === \"media\" || leftAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n leftAddonForceWrap?: boolean;\n\n /**\n * Set this to `true` to disable the additional spacing applied to the addons\n * that appear before the `children` and the normal `--rmd-text-icon-spacing`\n * value is used instead.\n *\n * @defaultValue `false`\n */\n disableLeftAddonSpacing?: boolean;\n\n /**\n * An optional addon to display to the right of the `primaryText` or\n * `children` and should be used with the `rightAddonType` prop to adjust\n * spacing.\n */\n rightAddon?: ReactNode;\n\n /**\n * The type of the addon that appears to the right of the `primaryText` or\n * `children`.\n *\n * @defaultValue `\"icon\"`\n */\n rightAddonType?: ListItemAddonType;\n\n /**\n * The vertical position the right icon, avatar, media, or large media\n * should be placed.\n *\n * @defaultValue `\"middle\"`\n */\n rightAddonPosition?: ListItemAddonPosition;\n\n /**\n * @remarks \\@since 6.0.0\n */\n rightAddonClassName?: string;\n\n /**\n * Set this to `true` if your addon does not accept a `className` prop to\n * apply the correct styling.\n *\n * @defaultValue `rightAddonType === \"media\" || rightAddonType === \"large-media\"`\n * @remarks \\@since 6.0.0\n */\n rightAddonForceWrap?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableLeftAddonCenteredMedia?: boolean;\n\n /**\n * The media items are centered by default using:\n * ```scss\n * align-items: center;\n * display: flex;\n * justify-content: center;\n * ```\n *\n * When this is set to `true`, the flex styles will not be applied.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n disableRightAddonCenteredMedia?: boolean;\n}\n\nexport interface ListItemChildrenProps extends ListItemChildrenAddonProps {\n /**\n * The main content to display. When the `textChildren` prop is enabled and\n * there is child content, it will be treated as primary text and update the\n * styles automatically.\n */\n children?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link children}, {@link primaryText}, and {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n textProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `primaryText` and optionally `secondaryText` within the list item.\n */\n textClassName?: string;\n\n /**\n * An optional className to apply to the `<span>` that surrounds the\n * `secondaryText` within the list item.\n */\n secondaryTextClassName?: string;\n\n /**\n * Set this to `true` if the {@link children} should not automatically be\n * wrapped in the `ListItemText` component.\n *\n * @remarks \\@since 6.0.0 Renamed from `textChildren` since it was defaulted on.\n * @defaultValue `false`\n */\n disableTextChildren?: boolean;\n\n /**\n * An optional element that should be rendered as the `primaryText` within the\n * list item. It is most likely easier to use the `children` prop instead, but\n * this allows you to create more complex components with the `ListItem` since\n * you can provided `children` and have the styles for the `primaryText` still\n * applied. By default, this will only allow one line of text and add ellipsis\n * for any text overflow.\n */\n primaryText?: ReactNode;\n\n /**\n * An optional element that should be rendered as the `secondaryText` within\n * the list item. By default, this will only span one line and add ellipsis\n * for overflow.\n */\n secondaryText?: ReactNode;\n\n /**\n * Any additional props that should be passed to the `<span>` surrounding\n * the {@link secondaryText}.\n *\n * @remarks \\@since 6.0.0\n */\n secondaryTextProps?: PropsWithRef<\n HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n >;\n\n /**\n * Set this to `true` to allow the {@link secondaryText} to span multiple\n * lines and use the CSS clamp after two lines of text are visible. The number\n * of lines can be configured by `core.$list-item-multiline-clamp` or\n * `@include core.list-set-var(item-multiline-clamp, $new-value)`.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp}\n * @defaultValue `false`\n */\n multiline?: boolean;\n}\n"],"names":[],"mappings":"AA4IA,WA2EC"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/media-queries/AppSizeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useOrientation } from \"../useOrientation.js\";\nimport {\n DEFAULT_APP_SIZE,\n DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n DEFAULT_DESKTOP_MIN_WIDTH,\n DEFAULT_PHONE_MAX_WIDTH,\n DEFAULT_TABLET_MAX_WIDTH,\n DEFAULT_TABLET_MIN_WIDTH,\n type AppSize,\n type AppSizeQueries,\n} from \"./appSize.js\";\nimport { useMediaQuery } from \"./useMediaQuery.js\";\n\n/** @internal */\ninterface AppSizeContext extends AppSize {\n __root: boolean;\n}\n\nconst context = createContext<AppSizeContext>({\n __root: false,\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n});\ncontext.displayName = \"AppSize\";\nconst { Provider } = context;\n\n/**\n * **Note**: The app size object returned by this hook will **not** be equal\n * between renders.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { useAppSize } from \"@react-md/core\";\n *\n * function Example() {\n * const { isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape } =\n * useAppSize()\n *\n * // do something based on the app size\n * return null;\n * }\n * ```\n *\n * @returns the current app size.\n * @throws \"The `AppSizeProvider` has not been mounted.\"\n */\nexport function useAppSize(): Readonly<AppSize> {\n const { __root, ...appSize } = useContext(context);\n if (!__root) {\n throw new Error(\"The `AppSizeProvider` has not been mounted.\");\n }\n\n return appSize;\n}\n\nexport interface AppSizeProviderProps extends AppSizeQueries {\n /**\n * @defaultValue `DEFAULT_APP_SIZE`\n * @see {@link DEFAULT_APP_SIZE}\n */\n ssrSize?: Readonly<AppSize>;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component should be mounted near the root of your app to determine the\n * current app size based on different media queries.\n */\nexport function AppSizeProvider(props: AppSizeProviderProps): ReactElement {\n const {\n ssrSize = DEFAULT_APP_SIZE,\n phoneMaxWidth = DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth = DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth = DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth = DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth = DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n children,\n } = props;\n const { __root } = useContext(context);\n if (__root) {\n throw new Error(\"The `AppSizeProvider` cannot be mounted multiple times.\");\n }\n\n const ssr = useSsr();\n const matchesDesktop = useMediaQuery(\n `screen and (min-width: ${desktopMinWidth})`\n );\n const matchesLargeDesktop = useMediaQuery(\n `screen and (min-width: ${desktopLargeMinWidth})`\n );\n const matchesTablet = useMediaQuery(\n `screen and (min-width: ${tabletMinWidth}) and (max-width: ${tabletMaxWidth})`\n );\n const matchesPhone = useMediaQuery(\n `screen and (max-width: ${phoneMaxWidth})`\n );\n const isDesktop = matchesDesktop;\n const isTablet = !matchesDesktop && matchesTablet;\n const isPhone = !isTablet && !isDesktop && matchesPhone;\n const isLandscape = useOrientation().includes(\"landscape\");\n const isLargeDesktop = matchesLargeDesktop;\n\n const appSize = useMemo<AppSizeContext>(\n () => ({\n __root: true,\n isPhone,\n isTablet,\n isDesktop,\n isLargeDesktop,\n isLandscape,\n }),\n [isDesktop, isLandscape, isLargeDesktop, isPhone, isTablet]\n );\n\n let value = appSize;\n if (ssr || typeof window === \"undefined\") {\n value = {\n __root: true,\n ...ssrSize,\n };\n }\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","useSsr","useOrientation","DEFAULT_APP_SIZE","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","useMediaQuery","context","__root","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape","displayName","Provider","useAppSize","appSize","Error","AppSizeProvider","props","ssrSize","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","children","ssr","matchesDesktop","matchesLargeDesktop","matchesTablet","matchesPhone","includes","value","window"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AACf,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SACEC,gBAAgB,EAChBC,+BAA+B,EAC/BC,yBAAyB,EACzBC,uBAAuB,EACvBC,wBAAwB,EACxBC,wBAAwB,QAGnB,eAAe;AACtB,SAASC,aAAa,QAAQ,qBAAqB;AAOnD,MAAMC,wBAAUZ,cAA8B;IAC5Ca,QAAQ;IACRC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf;AACAN,QAAQO,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGR;AAErB;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASS;IACd,MAAM,EAAER,MAAM,EAAE,GAAGS,SAAS,GAAGrB,WAAWW;IAC1C,IAAI,CAACC,QAAQ;QACX,MAAM,IAAIU,MAAM;IAClB;IAEA,OAAOD;AACT;AAWA;;;;;CAKC,GACD,OAAO,SAASE,gBAAgBC,KAA2B;IACzD,MAAM,EACJC,UAAUrB,gBAAgB,EAC1BsB,gBAAgBnB,uBAAuB,EACvCoB,iBAAiBlB,wBAAwB,EACzCmB,iBAAiBpB,wBAAwB,EACzCqB,kBAAkBvB,yBAAyB,EAC3CwB,uBAAuBzB,+BAA+B,EACtD0B,QAAQ,EACT,GAAGP;IACJ,MAAM,EAAEZ,MAAM,EAAE,GAAGZ,WAAWW;IAC9B,IAAIC,QAAQ;QACV,MAAM,IAAIU,MAAM;IAClB;IAEA,MAAMU,MAAM9B;IACZ,MAAM+B,iBAAiBvB,cACrB,CAAC,uBAAuB,EAAEmB,gBAAgB,CAAC,CAAC;IAE9C,MAAMK,sBAAsBxB,cAC1B,CAAC,uBAAuB,EAAEoB,qBAAqB,CAAC,CAAC;IAEnD,MAAMK,gBAAgBzB,cACpB,CAAC,uBAAuB,EAAEiB,eAAe,kBAAkB,EAAEC,eAAe,CAAC,CAAC;IAEhF,MAAMQ,eAAe1B,cACnB,CAAC,uBAAuB,EAAEgB,cAAc,CAAC,CAAC;IAE5C,MAAMX,YAAYkB;IAClB,MAAMnB,WAAW,CAACmB,kBAAkBE;IACpC,MAAMtB,UAAU,CAACC,YAAY,CAACC,aAAaqB;IAC3C,MAAMnB,cAAcd,iBAAiBkC,QAAQ,CAAC;IAC9C,MAAMrB,iBAAiBkB;IAEvB,MAAMb,UAAUpB,QACd,IAAO,CAAA;YACLW,QAAQ;YACRC;YACAC;YACAC;YACAC;YACAC;QACF,CAAA,GACA;QAACF;QAAWE;QAAaD;QAAgBH;QAASC;KAAS;IAG7D,IAAIwB,QAAQjB;IACZ,IAAIW,OAAO,OAAOO,WAAW,aAAa;QACxCD,QAAQ;YACN1B,QAAQ;YACR,GAAGa,OAAO;QACZ;IACF;IAEA,qBAAO,KAACN;QAASmB,OAAOA;kBAAQP;;AAClC"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/media-queries/appSize.ts"],"sourcesContent":["export type QuerySize = number | `${number}${string}`;\n\n/** @defaultValue `47.9375em` */\nexport const DEFAULT_PHONE_MAX_WIDTH = `${767 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `48em` */\nexport const DEFAULT_TABLET_MIN_WIDTH = `${768 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64em` */\nexport const DEFAULT_TABLET_MAX_WIDTH = `${1024 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `64.0625em` */\nexport const DEFAULT_DESKTOP_MIN_WIDTH = `${1025 / 16}em` satisfies QuerySize;\n\n/** @defaultValue `80em` */\nexport const DEFAULT_DESKTOP_LARGE_MIN_WIDTH = `${\n 1280 / 16\n}em` satisfies QuerySize;\n\nexport interface AppSizeQueries {\n /**\n * The max width to use for phones. This one is a max width unlike the others\n * since everything from 0 to this value will be considered a phone.\n *\n * @defaultValue `47.9375em`\n * @see {@link DEFAULT_PHONE_MAX_WIDTH}\n */\n phoneMaxWidth?: QuerySize;\n\n /**\n * The min width for a tablet device.\n *\n * @defaultValue `48em`\n * @see {@link DEFAULT_TABLET_MIN_WIDTH}\n */\n tabletMinWidth?: QuerySize;\n\n /**\n * The max width for a tablet device. This should normally be `1px` less than\n * the `desktopMinWidth`, but it can be any value if needed. The tablet has a\n * range of min to max so that you can have a bit more control.\n *\n * @defaultValue `64em`\n * @see {@link DEFAULT_TABLET_MAX_WIDTH}\n */\n tabletMaxWidth?: QuerySize;\n\n /**\n * The min width for a desktop screen.\n *\n * @defaultValue `64.0625em`\n * @see {@link DEFAULT_DESKTOP_MIN_WIDTH}\n */\n desktopMinWidth?: QuerySize;\n\n /**\n * The min width for a large (1440p, 4k, etc) desktop screen.\n *\n * @defaultValue `80em`\n * @see {@link DEFAULT_DESKTOP_LARGE_MIN_WIDTH}\n */\n desktopLargeMinWidth?: QuerySize;\n}\n\nexport const DEFAULT_APP_SIZE_QUERIES: Readonly<AppSizeQueries> = {\n phoneMaxWidth: DEFAULT_PHONE_MAX_WIDTH,\n tabletMinWidth: DEFAULT_TABLET_MIN_WIDTH,\n tabletMaxWidth: DEFAULT_TABLET_MAX_WIDTH,\n desktopMinWidth: DEFAULT_DESKTOP_MIN_WIDTH,\n desktopLargeMinWidth: DEFAULT_DESKTOP_LARGE_MIN_WIDTH,\n};\n\n/**\n * The current size for your application. This should work both server side and\n * client side, but you will have much better results client side.\n */\nexport interface AppSize {\n /**\n * Boolean if currently matching a phone by comparing the max width of the\n * device.\n */\n isPhone: boolean;\n\n /**\n * Boolean if currently matching a tablet by comparing the max width of the\n * device.\n */\n isTablet: boolean;\n\n /**\n * Boolean if currently matching a desktop screen by comparing the max width\n * of the device.\n */\n isDesktop: boolean;\n\n /**\n * Boolean if currently matching a large desktop screen by comparing the max\n * width of the device.\n */\n isLargeDesktop: boolean;\n\n /**\n * Boolean if the app is considered to be in landscape mode. This will just\n * verify that the window width is greater than the window height.\n *\n * NOTE: This might not be super accurate on Android devices since the soft\n * keyboard will change the dimensions of the viewport when it appears. It is\n * recommended to use the `useOrientation` hook as well if you'd like to get\n * the current orientation type.\n */\n isLandscape: boolean;\n}\n\nexport const DEFAULT_APP_SIZE: AppSize = {\n isPhone: false,\n isTablet: false,\n isDesktop: true,\n isLargeDesktop: false,\n isLandscape: true,\n};\n"],"names":["DEFAULT_PHONE_MAX_WIDTH","DEFAULT_TABLET_MIN_WIDTH","DEFAULT_TABLET_MAX_WIDTH","DEFAULT_DESKTOP_MIN_WIDTH","DEFAULT_DESKTOP_LARGE_MIN_WIDTH","DEFAULT_APP_SIZE_QUERIES","phoneMaxWidth","tabletMinWidth","tabletMaxWidth","desktopMinWidth","desktopLargeMinWidth","DEFAULT_APP_SIZE","isPhone","isTablet","isDesktop","isLargeDesktop","isLandscape"],"mappings":"AAEA,8BAA8B,GAC9B,OAAO,MAAMA,0BAA0B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE3E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAqB;AAE5E,yBAAyB,GACzB,OAAO,MAAMC,2BAA2B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE7E,8BAA8B,GAC9B,OAAO,MAAMC,4BAA4B,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAqB;AAE9E,yBAAyB,GACzB,OAAO,MAAMC,kCAAkC,CAAC,EAC9C,OAAO,GACR,EAAE,CAAC,CAAqB;AA+CzB,OAAO,MAAMC,2BAAqD;IAChEC,eAAeN;IACfO,gBAAgBN;IAChBO,gBAAgBN;IAChBO,iBAAiBN;IACjBO,sBAAsBN;AACxB,EAAE;AA2CF,OAAO,MAAMO,mBAA4B;IACvCC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,gBAAgB;IAChBC,aAAa;AACf,EAAE"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/media-queries/useMediaQuery.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\n\n/**\n * @example\n * Simple Example\n * ```tsx\n * import { useMediaQuery } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const matches = useMediaQuery(\"screen and (min-width: 768px)\");\n *\n * return <>{matches ? \"Matches\" : \"Doesn't\"}</>;\n * }\n * ```\n *\n * @param query - The media query to use\n * @param disabled - When `true`, the `window.matchMedia` API will not be\n * activated and the hook will always return `false`.\n * @returns `true` if the media query matches\n * @remarks \\@since 6.0.0\n */\nexport function useMediaQuery(query: string, disabled = false): boolean {\n const ssr = useSsr();\n const [matches, setMatches] = useState(() => {\n if (typeof window === \"undefined\" || disabled || ssr) {\n return false;\n }\n\n return window.matchMedia(query).matches;\n });\n\n useEffect(() => {\n if (disabled || ssr) {\n return;\n }\n\n const result = window.matchMedia(query);\n setMatches(result.matches);\n\n const updater = ({ matches }: MediaQueryListEvent): void =>\n setMatches(matches);\n\n result.addEventListener(\"change\", updater);\n return () => {\n result.removeEventListener(\"change\", updater);\n };\n }, [disabled, query, ssr]);\n\n return matches;\n}\n"],"names":["useEffect","useState","useSsr","useMediaQuery","query","disabled","ssr","matches","setMatches","window","matchMedia","result","updater","addEventListener","removeEventListener"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASC,cAAcC,KAAa,EAAEC,WAAW,KAAK;IAC3D,MAAMC,MAAMJ;IACZ,MAAM,CAACK,SAASC,WAAW,GAAGP,SAAS;QACrC,IAAI,OAAOQ,WAAW,eAAeJ,YAAYC,KAAK;YACpD,OAAO;QACT;QAEA,OAAOG,OAAOC,UAAU,CAACN,OAAOG,OAAO;IACzC;IAEAP,UAAU;QACR,IAAIK,YAAYC,KAAK;YACnB;QACF;QAEA,MAAMK,SAASF,OAAOC,UAAU,CAACN;QACjCI,WAAWG,OAAOJ,OAAO;QAEzB,MAAMK,UAAU,CAAC,EAAEL,OAAO,EAAuB,GAC/CC,WAAWD;QAEbI,OAAOE,gBAAgB,CAAC,UAAUD;QAClC,OAAO;YACLD,OAAOG,mBAAmB,CAAC,UAAUF;QACvC;IACF,GAAG;QAACP;QAAUD;QAAOE;KAAI;IAEzB,OAAOC;AACT"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { getLastFocusableIndex } from \"../movement/utils.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredState } from \"../useEnsuredState.js\";\nimport {\n Menu,\n type MenuConvenienceProps,\n type MenuListConvenienceProps,\n} from \"./Menu.js\";\nimport { MenuButton, type MenuButtonProps } from \"./MenuButton.js\";\nimport {\n MenuConfigurationProvider,\n type MenuConfiguration,\n} from \"./MenuConfigurationProvider.js\";\nimport { MenuItemButton, type MenuItemButtonProps } from \"./MenuItemButton.js\";\nimport { type MenuSheetConvenienceProps } from \"./MenuSheet.js\";\nimport { MenuVisibilityProvider } from \"./MenuVisibilityProvider.js\";\nimport { useMenuBarContext } from \"./useMenuBarProvider.js\";\n\nexport interface BaseDropdownMenuProps\n extends MenuConfiguration,\n MenuListConvenienceProps,\n MenuSheetConvenienceProps,\n MenuConvenienceProps {\n buttonChildren: ReactNode;\n}\n\nexport interface DropdownMenuButtonProps\n extends MenuButtonProps,\n BaseDropdownMenuProps {}\n\nexport interface DropdownMenuItemButtonProps\n extends MenuItemButtonProps,\n BaseDropdownMenuProps {}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface DropdownMenuStateProps {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use an `&` instead of `|` to allow autocompletion to\n * work better by default. It's up to the user to make sure they don't provide\n * incorrect props.\n */\nexport type DropdownMenuProps = DropdownMenuButtonProps &\n DropdownMenuItemButtonProps &\n (DropdownMenuStateProps | { visible?: never; setVisible?: never });\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @example\n * Nested Dropdown Menus\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { DropdownMenu, MenuItem } from \"@react-md/core\";\n *\n * function Example() {\n * return (\n * <DropdownMenu buttonChildren=\"Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Item 2\n * </MenuItem>\n * <DropdownMenu buttonChildren=\"Nested Dropdown\">\n * <MenuItem onClick={() => console.log('Clicked Item 1')}>\n * Nested Item 1\n * </MenuItem>\n * <MenuItem onClick={() => console.log('Clicked Item 2')}>\n * Nested Item 2\n * </MenuItem>\n * </DropdownMenu>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 5.0.0\n * \\@since 6.0.0 Updated to use the latest menu API.\n */\nexport function DropdownMenu(props: DropdownMenuProps): ReactElement {\n const {\n id: propId,\n horizontal,\n sheetHeader,\n sheetFooter,\n renderAsSheet,\n sheetPosition,\n sheetVerticalSize,\n buttonChildren,\n iconRotatorProps: propIconRotatorProps,\n disableTransition: propDisableTransition,\n floating,\n anchor,\n vwMargin,\n vhMargin,\n xMargin,\n yMargin,\n initialX,\n initialY,\n width,\n transformOrigin,\n preventOverlap,\n disableSwapping,\n disableVHBounds,\n preventScroll,\n closeOnResize,\n closeOnScroll,\n getFixedPositionOptions,\n children,\n temporary,\n disablePortal,\n disableElevation,\n menuProps,\n menuStyle,\n menuClassName,\n sheetProps,\n sheetStyle,\n sheetClassName,\n visible: propVisible,\n setVisible: propSetVisible,\n ...remaining\n } = props;\n\n const fixedTo = useRef<HTMLElement | HTMLButtonElement>(null);\n const defaultFocusIndex = useRef(0);\n const [visible, setVisible] = useEnsuredState({\n value: propVisible,\n setValue: propSetVisible,\n defaultValue: false,\n });\n const { menubar, menuitem, activeIdRef, animatedOnceRef } =\n useMenuBarContext();\n const id = useEnsuredId(propId, `menu${menuitem ? \"item\" : \"button\"}`);\n const mode = useUserInteractionMode();\n const mouse = mode === \"mouse\";\n const keyboard = mode === \"keyboard\";\n const disableTransition =\n propDisableTransition ??\n (animatedOnceRef.current &&\n menubar &&\n !!activeIdRef.current &&\n (mouse || keyboard));\n\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n\n let iconRotatorProps = propIconRotatorProps;\n if (disableTransition) {\n iconRotatorProps = {\n disableTransition,\n ...propIconRotatorProps,\n };\n }\n\n let toggle: ReactElement;\n if (menuitem) {\n toggle = (\n <MenuItemButton\n {...(remaining as DropdownMenuItemButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLLIElement>}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuItemButton>\n );\n } else {\n toggle = (\n <MenuButton\n {...(remaining as DropdownMenuButtonProps)}\n id={id}\n ref={fixedTo as RefObject<HTMLButtonElement>}\n floating={floating}\n iconRotatorProps={iconRotatorProps}\n >\n {buttonChildren}\n </MenuButton>\n );\n }\n\n return (\n <MenuVisibilityProvider\n visible={visible}\n setVisible={setVisible}\n defaultFocusIndex={defaultFocusIndex}\n >\n <MenuConfigurationProvider\n horizontal={horizontal}\n renderAsSheet={renderAsSheet}\n sheetFooter={sheetFooter}\n sheetHeader={sheetHeader}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n >\n {toggle}\n </MenuConfigurationProvider>\n <Menu\n aria-labelledby={(menuProps?.[\"aria-label\"] ? undefined : id) as string}\n style={menuStyle}\n className={menuClassName}\n sheetProps={sheetProps}\n sheetStyle={sheetStyle}\n sheetClassName={sheetClassName}\n temporary={temporary}\n disablePortal={disablePortal}\n disableElevation={disableElevation}\n disableTransition={disableTransition}\n floating={floating}\n anchor={anchor}\n vwMargin={vwMargin}\n vhMargin={vhMargin}\n xMargin={xMargin}\n yMargin={yMargin}\n initialX={initialX}\n initialY={initialY}\n width={width}\n transformOrigin={transformOrigin}\n preventOverlap={preventOverlap}\n disableSwapping={disableSwapping}\n disableVHBounds={disableVHBounds}\n preventScroll={preventScroll}\n closeOnResize={closeOnResize}\n closeOnScroll={closeOnScroll}\n getFixedPositionOptions={getFixedPositionOptions}\n horizontal={horizontal}\n sheetHeader={sheetHeader}\n sheetFooter={sheetFooter}\n renderAsSheet={renderAsSheet}\n sheetPosition={sheetPosition}\n sheetVerticalSize={sheetVerticalSize}\n {...menuProps}\n fixedTo={fixedTo}\n visible={visible}\n getDefaultFocusedIndex={(options) => {\n const defaultIndex = defaultFocusIndex.current;\n if (defaultIndex < 0) {\n return getLastFocusableIndex(options);\n }\n\n return defaultIndex;\n }}\n onRequestClose={onRequestClose}\n onEntered={(appearing) => {\n menuProps?.onEntered?.(appearing);\n // this will be called before `getDefaultFocusedIndex`\n if (disableTransition) {\n return;\n }\n\n defaultFocusIndex.current = 0;\n }}\n >\n {children}\n </Menu>\n </MenuVisibilityProvider>\n );\n}\n"],"names":["useCallback","useRef","useUserInteractionMode","getLastFocusableIndex","useEnsuredId","useEnsuredState","Menu","MenuButton","MenuConfigurationProvider","MenuItemButton","MenuVisibilityProvider","useMenuBarContext","DropdownMenu","props","id","propId","horizontal","sheetHeader","sheetFooter","renderAsSheet","sheetPosition","sheetVerticalSize","buttonChildren","iconRotatorProps","propIconRotatorProps","disableTransition","propDisableTransition","floating","anchor","vwMargin","vhMargin","xMargin","yMargin","initialX","initialY","width","transformOrigin","preventOverlap","disableSwapping","disableVHBounds","preventScroll","closeOnResize","closeOnScroll","getFixedPositionOptions","children","temporary","disablePortal","disableElevation","menuProps","menuStyle","menuClassName","sheetProps","sheetStyle","sheetClassName","visible","propVisible","setVisible","propSetVisible","remaining","fixedTo","defaultFocusIndex","value","setValue","defaultValue","menubar","menuitem","activeIdRef","animatedOnceRef","mode","mouse","keyboard","current","onRequestClose","toggle","ref","aria-labelledby","undefined","style","className","getDefaultFocusedIndex","options","defaultIndex","onEntered","appearing"],"mappings":"AAAA;;AACA,SACEA,WAAW,EACXC,MAAM,QAID,QAAQ;AACf,SAASC,sBAAsB,QAAQ,gDAAgD;AACvF,SAASC,qBAAqB,QAAQ,uBAAuB;AAE7D,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SACEC,IAAI,QAGC,YAAY;AACnB,SAASC,UAAU,QAA8B,kBAAkB;AACnE,SACEC,yBAAyB,QAEpB,iCAAiC;AACxC,SAASC,cAAc,QAAkC,sBAAsB;AAE/E,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,QAAQ,0BAA0B;AAqC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDC,GACD,OAAO,SAASC,aAAaC,KAAwB;IACnD,MAAM,EACJC,IAAIC,MAAM,EACVC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,cAAc,EACdC,kBAAkBC,oBAAoB,EACtCC,mBAAmBC,qBAAqB,EACxCC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,uBAAuB,EACvBC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,SAASC,WAAW,EACpBC,YAAYC,cAAc,EAC1B,GAAGC,WACJ,GAAG7C;IAEJ,MAAM8C,UAAU1D,OAAwC;IACxD,MAAM2D,oBAAoB3D,OAAO;IACjC,MAAM,CAACqD,SAASE,WAAW,GAAGnD,gBAAgB;QAC5CwD,OAAON;QACPO,UAAUL;QACVM,cAAc;IAChB;IACA,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,eAAe,EAAE,GACvDxD;IACF,MAAMG,KAAKV,aAAaW,QAAQ,CAAC,IAAI,EAAEkD,WAAW,SAAS,SAAS,CAAC;IACrE,MAAMG,OAAOlE;IACb,MAAMmE,QAAQD,SAAS;IACvB,MAAME,WAAWF,SAAS;IAC1B,MAAM3C,oBACJC,yBACCyC,CAAAA,gBAAgBI,OAAO,IACtBP,WACA,CAAC,CAACE,YAAYK,OAAO,IACpBF,CAAAA,SAASC,QAAO,CAAC;IAEtB,MAAME,iBAAiBxE,YAAY;QACjCwD,WAAW;IACb,GAAG;QAACA;KAAW;IAEf,IAAIjC,mBAAmBC;IACvB,IAAIC,mBAAmB;QACrBF,mBAAmB;YACjBE;YACA,GAAGD,oBAAoB;QACzB;IACF;IAEA,IAAIiD;IACJ,IAAIR,UAAU;QACZQ,uBACE,KAAChE;YACE,GAAIiD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLpC,kBAAkBA;sBAEjBD;;IAGP,OAAO;QACLmD,uBACE,KAAClE;YACE,GAAImD,SAAS;YACd5C,IAAIA;YACJ4D,KAAKf;YACLhC,UAAUA;YACVJ,kBAAkBA;sBAEjBD;;IAGP;IAEA,qBACE,MAACZ;QACC4C,SAASA;QACTE,YAAYA;QACZI,mBAAmBA;;0BAEnB,KAACpD;gBACCQ,YAAYA;gBACZG,eAAeA;gBACfD,aAAaA;gBACbD,aAAaA;gBACbG,eAAeA;gBACfC,mBAAmBA;0BAElBoD;;0BAEH,KAACnE;gBACCqE,mBAAkB3B,WAAW,CAAC,aAAa,GAAG4B,YAAY9D;gBAC1D+D,OAAO5B;gBACP6B,WAAW5B;gBACXC,YAAYA;gBACZC,YAAYA;gBACZC,gBAAgBA;gBAChBR,WAAWA;gBACXC,eAAeA;gBACfC,kBAAkBA;gBAClBtB,mBAAmBA;gBACnBE,UAAUA;gBACVC,QAAQA;gBACRC,UAAUA;gBACVC,UAAUA;gBACVC,SAASA;gBACTC,SAASA;gBACTC,UAAUA;gBACVC,UAAUA;gBACVC,OAAOA;gBACPC,iBAAiBA;gBACjBC,gBAAgBA;gBAChBC,iBAAiBA;gBACjBC,iBAAiBA;gBACjBC,eAAeA;gBACfC,eAAeA;gBACfC,eAAeA;gBACfC,yBAAyBA;gBACzB3B,YAAYA;gBACZC,aAAaA;gBACbC,aAAaA;gBACbC,eAAeA;gBACfC,eAAeA;gBACfC,mBAAmBA;gBAClB,GAAG2B,SAAS;gBACbW,SAASA;gBACTL,SAASA;gBACTyB,wBAAwB,CAACC;oBACvB,MAAMC,eAAerB,kBAAkBW,OAAO;oBAC9C,IAAIU,eAAe,GAAG;wBACpB,OAAO9E,sBAAsB6E;oBAC/B;oBAEA,OAAOC;gBACT;gBACAT,gBAAgBA;gBAChBU,WAAW,CAACC;oBACVnC,WAAWkC,YAAYC;oBACvB,sDAAsD;oBACtD,IAAI1D,mBAAmB;wBACrB;oBACF;oBAEAmC,kBAAkBW,OAAO,GAAG;gBAC9B;0BAEC3B;;;;AAIT"}