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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1595) hide show
  1. package/.eslintrc.cjs +8 -0
  2. package/.turbo/turbo-build.log +22 -22
  3. package/.turbo/turbo-lint.log +12 -0
  4. package/.turbo/turbo-test.log +5516 -0
  5. package/.turbo/turbo-typecheck.log +4 -0
  6. package/CHANGELOG.md +40 -0
  7. package/coverage/clover.xml +725 -141
  8. package/coverage/coverage-final.json +5 -4
  9. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +876 -171
  10. package/coverage/lcov-report/{src/layout/LayoutCloseNavigationButton.tsx.html → autocomplete/AutocompleteClearButton.tsx.html} +54 -57
  11. package/coverage/lcov-report/{menu/MenuVisibilityProvider.tsx.html → autocomplete/FilterAutocompleteOptions.tsx.html} +147 -153
  12. package/coverage/lcov-report/autocomplete/index.html +35 -110
  13. package/coverage/lcov-report/button/Button.tsx.html +84 -84
  14. package/coverage/lcov-report/button/index.html +10 -10
  15. package/coverage/lcov-report/card/Card.tsx.html +5 -5
  16. package/coverage/lcov-report/{dialog/DialogTitle.tsx.html → card/CardSubtitle.tsx.html} +57 -48
  17. package/coverage/lcov-report/card/index.html +39 -9
  18. package/coverage/lcov-report/card/styles.ts.html +21 -33
  19. package/coverage/lcov-report/{src/positioning/createHorizontalPosition.ts.html → createHorizontalPosition.ts.html} +137 -137
  20. package/coverage/lcov-report/{src/positioning/createVerticalPosition.ts.html → createVerticalPosition.ts.html} +77 -77
  21. package/coverage/lcov-report/form/Option.tsx.html +141 -141
  22. package/coverage/lcov-report/form/index.html +28 -43
  23. package/coverage/lcov-report/form/useListboxProvider.ts.html +135 -96
  24. package/coverage/lcov-report/index.html +37 -22
  25. package/coverage/lcov-report/searching/fuzzy.ts.html +80 -83
  26. package/coverage/lcov-report/searching/index.html +13 -43
  27. package/coverage/lcov-report/src/card/Card.tsx.html +5 -5
  28. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +33 -6
  29. package/coverage/lcov-report/src/card/index.html +9 -84
  30. package/coverage/lcov-report/src/card/styles.ts.html +21 -33
  31. package/coverage/lcov-report/src/cssUtils.ts.html +65 -65
  32. package/coverage/lcov-report/src/index.html +21 -21
  33. package/coverage/lcov-report/src/transition/index.html +11 -311
  34. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +81 -81
  35. package/coverage/lcov-report/transition/index.html +12 -12
  36. package/coverage/lcov-report/{useCSSTransition.ts.html → transition/useCSSTransition.ts.html} +169 -166
  37. package/coverage/lcov-report/typography/SrOnly.tsx.html +52 -79
  38. package/coverage/lcov-report/typography/index.html +18 -18
  39. package/coverage/lcov-report/utils.ts.html +940 -97
  40. package/coverage/lcov.info +831 -181
  41. package/dist/CoreProviders.js.map +1 -1
  42. package/dist/NoSsr.js.map +1 -1
  43. package/dist/RootHtml.js.map +1 -1
  44. package/dist/SsrProvider.js.map +1 -1
  45. package/dist/_box-shadows.scss +7 -4
  46. package/dist/_core.scss +5 -1
  47. package/dist/_utils.scss +3 -3
  48. package/dist/app-bar/AppBar.js.map +1 -1
  49. package/dist/app-bar/AppBarTitle.d.ts +8 -4
  50. package/dist/app-bar/AppBarTitle.js +3 -2
  51. package/dist/app-bar/AppBarTitle.js.map +1 -1
  52. package/dist/autocomplete/Autocomplete.d.ts +85 -0
  53. package/dist/autocomplete/Autocomplete.js +138 -0
  54. package/dist/autocomplete/Autocomplete.js.map +1 -0
  55. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +16 -0
  56. package/dist/autocomplete/AutocompleteCircularProgress.js +15 -0
  57. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -0
  58. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +32 -0
  59. package/dist/autocomplete/AutocompleteDropdownButton.js +29 -0
  60. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -0
  61. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +8 -0
  62. package/dist/autocomplete/FilterAutocompleteOptions.js +57 -0
  63. package/dist/autocomplete/FilterAutocompleteOptions.js.map +1 -0
  64. package/dist/autocomplete/_autocomplete.scss +75 -0
  65. package/dist/autocomplete/autocompleteStyles.d.ts +32 -0
  66. package/dist/autocomplete/autocompleteStyles.js +34 -0
  67. package/dist/autocomplete/autocompleteStyles.js.map +1 -0
  68. package/dist/autocomplete/defaults.d.ts +21 -0
  69. package/dist/autocomplete/defaults.js +52 -0
  70. package/dist/autocomplete/defaults.js.map +1 -0
  71. package/dist/autocomplete/types.d.ts +103 -0
  72. package/dist/autocomplete/types.js +5 -0
  73. package/dist/autocomplete/types.js.map +1 -0
  74. package/dist/avatar/Avatar.d.ts +1 -2
  75. package/dist/avatar/Avatar.js +1 -2
  76. package/dist/avatar/Avatar.js.map +1 -1
  77. package/dist/avatar/_avatar.scss +4 -3
  78. package/dist/avatar/styles.js.map +1 -1
  79. package/dist/badge/Badge.js.map +1 -1
  80. package/dist/box/Box.js.map +1 -1
  81. package/dist/box/styles.js.map +1 -1
  82. package/dist/button/AsyncButton.js +2 -2
  83. package/dist/button/AsyncButton.js.map +1 -1
  84. package/dist/button/Button.js.map +1 -1
  85. package/dist/button/ButtonUnstyled.js.map +1 -1
  86. package/dist/button/FloatingActionButton.js.map +1 -1
  87. package/dist/button/TooltippedButton.js.map +1 -1
  88. package/dist/button/buttonStyles.js.map +1 -1
  89. package/dist/button/buttonUnstyledStyles.js.map +1 -1
  90. package/dist/card/Card.d.ts +2 -1
  91. package/dist/card/Card.js.map +1 -1
  92. package/dist/card/CardContent.js.map +1 -1
  93. package/dist/card/CardFooter.js.map +1 -1
  94. package/dist/card/CardHeader.js.map +1 -1
  95. package/dist/card/CardSubtitle.d.ts +6 -0
  96. package/dist/card/CardSubtitle.js +2 -1
  97. package/dist/card/CardSubtitle.js.map +1 -1
  98. package/dist/card/CardTitle.js.map +1 -1
  99. package/dist/card/ClickableCard.js.map +1 -1
  100. package/dist/card/styles.js +2 -4
  101. package/dist/card/styles.js.map +1 -1
  102. package/dist/chip/Chip.js.map +1 -1
  103. package/dist/chip/styles.js.map +1 -1
  104. package/dist/cssUtils.d.ts +1 -1
  105. package/dist/cssUtils.js.map +1 -1
  106. package/dist/delegateEvent.js.map +1 -1
  107. package/dist/dialog/Dialog.js.map +1 -1
  108. package/dist/dialog/DialogContainer.js.map +1 -1
  109. package/dist/dialog/DialogContent.js.map +1 -1
  110. package/dist/dialog/DialogFooter.js.map +1 -1
  111. package/dist/dialog/DialogHeader.js.map +1 -1
  112. package/dist/dialog/DialogTitle.js.map +1 -1
  113. package/dist/dialog/FixedDialog.js.map +1 -1
  114. package/dist/dialog/NestedDialogProvider.js.map +1 -1
  115. package/dist/dialog/styles.js.map +1 -1
  116. package/dist/divider/Divider.js.map +1 -1
  117. package/dist/divider/styles.js.map +1 -1
  118. package/dist/draggable/useDraggable.js +2 -13
  119. package/dist/draggable/useDraggable.js.map +1 -1
  120. package/dist/draggable/utils.js.map +1 -1
  121. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  122. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  123. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  124. package/dist/expansion-panel/useExpansionList.js.map +1 -1
  125. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  126. package/dist/focus/useFocusContainer.js.map +1 -1
  127. package/dist/focus/utils.js.map +1 -1
  128. package/dist/form/Checkbox.js.map +1 -1
  129. package/dist/form/Fieldset.js.map +1 -1
  130. package/dist/form/FileInput.js.map +1 -1
  131. package/dist/form/Form.js.map +1 -1
  132. package/dist/form/FormMessage.js.map +1 -1
  133. package/dist/form/FormMessageContainer.js.map +1 -1
  134. package/dist/form/FormMessageCounter.js.map +1 -1
  135. package/dist/form/InputToggle.js.map +1 -1
  136. package/dist/form/InputToggleIcon.js.map +1 -1
  137. package/dist/form/Label.js.map +1 -1
  138. package/dist/form/Legend.js.map +1 -1
  139. package/dist/form/MenuItemCheckbox.js.map +1 -1
  140. package/dist/form/MenuItemFileInput.js.map +1 -1
  141. package/dist/form/MenuItemInputToggle.js.map +1 -1
  142. package/dist/form/MenuItemRadio.js.map +1 -1
  143. package/dist/form/MenuItemSwitch.js.map +1 -1
  144. package/dist/form/MenuItemTextField.js.map +1 -1
  145. package/dist/form/NativeSelect.js.map +1 -1
  146. package/dist/form/OptGroup.js.map +1 -1
  147. package/dist/form/Option.js.map +1 -1
  148. package/dist/form/Password.js.map +1 -1
  149. package/dist/form/Radio.js.map +1 -1
  150. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  151. package/dist/form/Select.js.map +1 -1
  152. package/dist/form/SelectedOption.js.map +1 -1
  153. package/dist/form/Slider.js.map +1 -1
  154. package/dist/form/SliderContainer.js.map +1 -1
  155. package/dist/form/SliderMark.js.map +1 -1
  156. package/dist/form/SliderMarkLabel.js.map +1 -1
  157. package/dist/form/SliderThumb.js.map +1 -1
  158. package/dist/form/SliderTrack.js.map +1 -1
  159. package/dist/form/SliderValueMarks.js.map +1 -1
  160. package/dist/form/SliderValueTooltip.js.map +1 -1
  161. package/dist/form/Switch.js.map +1 -1
  162. package/dist/form/SwitchTrack.js.map +1 -1
  163. package/dist/form/TextArea.js.map +1 -1
  164. package/dist/form/TextField.d.ts +1 -10
  165. package/dist/form/TextField.js +1 -2
  166. package/dist/form/TextField.js.map +1 -1
  167. package/dist/form/TextFieldAddon.js +5 -2
  168. package/dist/form/TextFieldAddon.js.map +1 -1
  169. package/dist/form/TextFieldContainer.js.map +1 -1
  170. package/dist/form/_form.scss +81 -40
  171. package/dist/form/fileUtils.js.map +1 -1
  172. package/dist/form/formConfig.js.map +1 -1
  173. package/dist/form/formMessageStyles.js.map +1 -1
  174. package/dist/form/inputToggleStyles.js.map +1 -1
  175. package/dist/form/menuItemInputToggleStyles.js.map +1 -1
  176. package/dist/form/nativeSelectStyles.js.map +1 -1
  177. package/dist/form/optionStyles.js.map +1 -1
  178. package/dist/form/passwordStyles.js.map +1 -1
  179. package/dist/form/selectStyles.js.map +1 -1
  180. package/dist/form/selectUtils.js.map +1 -1
  181. package/dist/form/sliderUtils.js.map +1 -1
  182. package/dist/form/switchStyles.js.map +1 -1
  183. package/dist/form/textAreaStyles.js.map +1 -1
  184. package/dist/form/textFieldContainerStyles.js.map +1 -1
  185. package/dist/form/textFieldStyles.js.map +1 -1
  186. package/dist/form/types.js.map +1 -1
  187. package/dist/form/useCheckboxGroup.js.map +1 -1
  188. package/dist/form/useCombobox.d.ts +6 -6
  189. package/dist/form/useCombobox.js +1 -1
  190. package/dist/form/useCombobox.js.map +1 -1
  191. package/dist/form/useEditableCombobox.js +3 -0
  192. package/dist/form/useEditableCombobox.js.map +1 -1
  193. package/dist/form/useFileUpload.js.map +1 -1
  194. package/dist/form/useFormReset.js.map +1 -1
  195. package/dist/form/useListboxProvider.js.map +1 -1
  196. package/dist/form/useNumberField.js.map +1 -1
  197. package/dist/form/useRadioGroup.js.map +1 -1
  198. package/dist/form/useRangeSlider.js.map +1 -1
  199. package/dist/form/useResizingTextArea.js.map +1 -1
  200. package/dist/form/useSelectCombobox.js.map +1 -1
  201. package/dist/form/useSlider.js.map +1 -1
  202. package/dist/form/useTextField.js.map +1 -1
  203. package/dist/form/useTextFieldContainerAddons.d.ts +88 -0
  204. package/dist/form/useTextFieldContainerAddons.js +85 -0
  205. package/dist/form/useTextFieldContainerAddons.js.map +1 -0
  206. package/dist/form/utils.js.map +1 -1
  207. package/dist/form/validation.js.map +1 -1
  208. package/dist/hoverMode/useHoverMode.js.map +1 -1
  209. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  210. package/dist/icon/FontIcon.d.ts +10 -6
  211. package/dist/icon/FontIcon.js +1 -5
  212. package/dist/icon/FontIcon.js.map +1 -1
  213. package/dist/icon/IconRotator.js.map +1 -1
  214. package/dist/icon/MaterialIcon.d.ts +19 -2
  215. package/dist/icon/MaterialIcon.js +14 -2
  216. package/dist/icon/MaterialIcon.js.map +1 -1
  217. package/dist/icon/MaterialSymbol.js.map +1 -1
  218. package/dist/icon/SVGIcon.d.ts +3 -0
  219. package/dist/icon/SVGIcon.js.map +1 -1
  220. package/dist/icon/TextIconSpacing.js.map +1 -1
  221. package/dist/icon/iconConfig.d.ts +8 -0
  222. package/dist/icon/iconConfig.js +4 -0
  223. package/dist/icon/iconConfig.js.map +1 -1
  224. package/dist/icon/material.d.ts +1 -1
  225. package/dist/icon/material.js.map +1 -1
  226. package/dist/icon/materialConfig.js.map +1 -1
  227. package/dist/icon/styles.js.map +1 -1
  228. package/dist/interaction/Ripple.js.map +1 -1
  229. package/dist/interaction/RippleContainer.js.map +1 -1
  230. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  231. package/dist/interaction/config.js.map +1 -1
  232. package/dist/interaction/types.js.map +1 -1
  233. package/dist/interaction/useElementInteraction.js.map +1 -1
  234. package/dist/interaction/useHigherContrastChildren.js.map +1 -1
  235. package/dist/interaction/utils.js.map +1 -1
  236. package/dist/layout/LayoutAppBar.js.map +1 -1
  237. package/dist/layout/LayoutNav.js.map +1 -1
  238. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  239. package/dist/layout/Main.js.map +1 -1
  240. package/dist/layout/layoutNavStyles.js.map +1 -1
  241. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
  242. package/dist/layout/mainStyles.js.map +1 -1
  243. package/dist/layout/useExpandableLayout.js.map +1 -1
  244. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  245. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  246. package/dist/layout/useLayoutTree.js.map +1 -1
  247. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  248. package/dist/layout/useMainTabIndex.js.map +1 -1
  249. package/dist/layout/useResizableLayout.js.map +1 -1
  250. package/dist/layout/useTemporaryLayout.js.map +1 -1
  251. package/dist/link/Link.d.ts +2 -4
  252. package/dist/link/Link.js +1 -2
  253. package/dist/link/Link.js.map +1 -1
  254. package/dist/link/SkipToMainContent.d.ts +10 -3
  255. package/dist/link/SkipToMainContent.js +4 -1
  256. package/dist/link/SkipToMainContent.js.map +1 -1
  257. package/dist/link/styles.d.ts +2 -2
  258. package/dist/link/styles.js.map +1 -1
  259. package/dist/list/List.js.map +1 -1
  260. package/dist/list/ListItem.js.map +1 -1
  261. package/dist/list/ListItemAddon.js.map +1 -1
  262. package/dist/list/ListItemChildren.js.map +1 -1
  263. package/dist/list/ListItemLink.js.map +1 -1
  264. package/dist/list/ListItemText.js.map +1 -1
  265. package/dist/list/ListSubheader.js.map +1 -1
  266. package/dist/list/getListItemHeight.js.map +1 -1
  267. package/dist/list/listItemStyles.js.map +1 -1
  268. package/dist/list/types.js.map +1 -1
  269. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  270. package/dist/media-queries/appSize.js.map +1 -1
  271. package/dist/media-queries/useMediaQuery.js.map +1 -1
  272. package/dist/menu/DropdownMenu.js.map +1 -1
  273. package/dist/menu/Menu.js.map +1 -1
  274. package/dist/menu/MenuBar.js.map +1 -1
  275. package/dist/menu/MenuButton.js.map +1 -1
  276. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  277. package/dist/menu/MenuItem.js.map +1 -1
  278. package/dist/menu/MenuItemButton.js.map +1 -1
  279. package/dist/menu/MenuItemCircularProgress.d.ts +2 -2
  280. package/dist/menu/MenuItemCircularProgress.js +2 -2
  281. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  282. package/dist/menu/MenuItemGroup.js.map +1 -1
  283. package/dist/menu/MenuItemSeparator.js.map +1 -1
  284. package/dist/menu/MenuSheet.js.map +1 -1
  285. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  286. package/dist/menu/MenuWidget.js.map +1 -1
  287. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
  288. package/dist/menu/useContextMenu.js.map +1 -1
  289. package/dist/menu/useMenuBarProvider.js.map +1 -1
  290. package/dist/menu/utils.js.map +1 -1
  291. package/dist/movement/constants.js.map +1 -1
  292. package/dist/movement/findMatchIndex.js.map +1 -1
  293. package/dist/movement/types.js.map +1 -1
  294. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  295. package/dist/movement/utils.js.map +1 -1
  296. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  297. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  298. package/dist/navigation/NavGroup.js.map +1 -1
  299. package/dist/navigation/NavItem.js.map +1 -1
  300. package/dist/navigation/NavItemButton.js.map +1 -1
  301. package/dist/navigation/NavItemLink.js.map +1 -1
  302. package/dist/navigation/NavSubheader.js.map +1 -1
  303. package/dist/navigation/Navigation.js.map +1 -1
  304. package/dist/navigation/getHrefFromParents.js.map +1 -1
  305. package/dist/navigation/navGroupStyles.js.map +1 -1
  306. package/dist/navigation/navItemStyles.js.map +1 -1
  307. package/dist/navigation/types.js.map +1 -1
  308. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  309. package/dist/overlay/Overlay.d.ts +1 -0
  310. package/dist/overlay/Overlay.js.map +1 -1
  311. package/dist/overlay/overlayStyles.js.map +1 -1
  312. package/dist/portal/Portal.d.ts +4 -0
  313. package/dist/portal/Portal.js.map +1 -1
  314. package/dist/portal/PortalContainerProvider.d.ts +8 -3
  315. package/dist/portal/PortalContainerProvider.js +1 -0
  316. package/dist/portal/PortalContainerProvider.js.map +1 -1
  317. package/dist/positioning/constants.d.ts +1 -1
  318. package/dist/positioning/constants.js.map +1 -1
  319. package/dist/positioning/createHorizontalPosition.d.ts +2 -2
  320. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  321. package/dist/positioning/createVerticalPosition.d.ts +3 -3
  322. package/dist/positioning/createVerticalPosition.js.map +1 -1
  323. package/dist/positioning/getFixedPosition.d.ts +1 -1
  324. package/dist/positioning/getFixedPosition.js.map +1 -1
  325. package/dist/positioning/types.d.ts +1 -1
  326. package/dist/positioning/types.js.map +1 -1
  327. package/dist/positioning/useFixedPositioning.d.ts +3 -3
  328. package/dist/positioning/useFixedPositioning.js.map +1 -1
  329. package/dist/positioning/utils.d.ts +1 -1
  330. package/dist/positioning/utils.js.map +1 -1
  331. package/dist/progress/CircularProgress.d.ts +5 -4
  332. package/dist/progress/CircularProgress.js.map +1 -1
  333. package/dist/progress/LinearProgress.js.map +1 -1
  334. package/dist/progress/getProgressA11y.js.map +1 -1
  335. package/dist/progress/types.js.map +1 -1
  336. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
  337. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  338. package/dist/responsive-item/_responsive-item.scss +4 -1
  339. package/dist/responsive-item/styles.js.map +1 -1
  340. package/dist/scroll/ScrollLock.js.map +1 -1
  341. package/dist/scroll/getScrollbarWidth.js.map +1 -1
  342. package/dist/scroll/useScrollLock.js.map +1 -1
  343. package/dist/searching/caseInsensitive.js.map +1 -1
  344. package/dist/searching/fuzzy.js.map +1 -1
  345. package/dist/searching/toSearchQuery.js.map +1 -1
  346. package/dist/searching/types.js.map +1 -1
  347. package/dist/searching/useFuzzyMatch.js.map +1 -1
  348. package/dist/searching/utils.js.map +1 -1
  349. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  350. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  351. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
  352. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  353. package/dist/sheet/Sheet.js.map +1 -1
  354. package/dist/sheet/styles.js.map +1 -1
  355. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  356. package/dist/snackbar/Snackbar.js.map +1 -1
  357. package/dist/snackbar/Toast.js.map +1 -1
  358. package/dist/snackbar/ToastActionButton.js.map +1 -1
  359. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  360. package/dist/snackbar/ToastContent.js.map +1 -1
  361. package/dist/snackbar/ToastManager.js.map +1 -1
  362. package/dist/snackbar/ToastManagerProvider.js.map +1 -1
  363. package/dist/snackbar/snackbarStyles.js.map +1 -1
  364. package/dist/snackbar/toastContentStyles.js.map +1 -1
  365. package/dist/snackbar/toastStyles.js.map +1 -1
  366. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  367. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  368. package/dist/suspense/NullSuspense.js.map +1 -1
  369. package/dist/table/StickyTableSection.d.ts +23 -0
  370. package/dist/table/StickyTableSection.js +56 -0
  371. package/dist/table/StickyTableSection.js.map +1 -0
  372. package/dist/table/Table.d.ts +1 -1
  373. package/dist/table/Table.js.map +1 -1
  374. package/dist/table/TableBody.d.ts +1 -1
  375. package/dist/table/TableBody.js.map +1 -1
  376. package/dist/table/TableCell.d.ts +3 -2
  377. package/dist/table/TableCell.js.map +1 -1
  378. package/dist/table/TableCellContent.d.ts +1 -2
  379. package/dist/table/TableCellContent.js.map +1 -1
  380. package/dist/table/TableCheckbox.js.map +1 -1
  381. package/dist/table/TableConfigurationProvider.d.ts +1 -73
  382. package/dist/table/TableConfigurationProvider.js.map +1 -1
  383. package/dist/table/TableContainer.js.map +1 -1
  384. package/dist/table/TableContainerProvider.js.map +1 -1
  385. package/dist/table/TableFooter.d.ts +8 -17
  386. package/dist/table/TableFooter.js +17 -80
  387. package/dist/table/TableFooter.js.map +1 -1
  388. package/dist/table/TableHeader.d.ts +8 -17
  389. package/dist/table/TableHeader.js +20 -87
  390. package/dist/table/TableHeader.js.map +1 -1
  391. package/dist/table/TableRadio.js.map +1 -1
  392. package/dist/table/TableRow.d.ts +1 -1
  393. package/dist/table/TableRow.js.map +1 -1
  394. package/dist/table/tableCellStyles.d.ts +1 -1
  395. package/dist/table/tableCellStyles.js.map +1 -1
  396. package/dist/table/tableContainerStyles.js.map +1 -1
  397. package/dist/table/tableFooterStyles.js.map +1 -1
  398. package/dist/table/tableHeaderStyles.js.map +1 -1
  399. package/dist/table/tableRowStyles.js.map +1 -1
  400. package/dist/table/tableStyles.js.map +1 -1
  401. package/dist/table/types.d.ts +89 -9
  402. package/dist/table/types.js.map +1 -1
  403. package/dist/table/useStickyTableSection.d.ts +27 -0
  404. package/dist/table/useStickyTableSection.js +84 -0
  405. package/dist/table/useStickyTableSection.js.map +1 -0
  406. package/dist/table/useTableSectionConfig.d.ts +13 -0
  407. package/dist/table/useTableSectionConfig.js +33 -0
  408. package/dist/table/useTableSectionConfig.js.map +1 -0
  409. package/dist/tabs/Tab.js.map +1 -1
  410. package/dist/tabs/TabList.js.map +1 -1
  411. package/dist/tabs/TabListScrollButton.js.map +1 -1
  412. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  413. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  414. package/dist/tabs/tabListStyles.js.map +1 -1
  415. package/dist/tabs/tabStyles.js.map +1 -1
  416. package/dist/tabs/useTabList.js.map +1 -1
  417. package/dist/tabs/useTabs.js.map +1 -1
  418. package/dist/tabs/utils.js.map +1 -1
  419. package/dist/test-utils/IntersectionObserver.js.map +1 -1
  420. package/dist/test-utils/ResizeObserver.js.map +1 -1
  421. package/dist/test-utils/data-testid.js.map +1 -1
  422. package/dist/test-utils/index.js.map +1 -1
  423. package/dist/test-utils/jest-setup.js.map +1 -1
  424. package/dist/test-utils/matchMedia.js.map +1 -1
  425. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
  426. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
  427. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  428. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -1
  429. package/dist/test-utils/polyfills/index.js.map +1 -1
  430. package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
  431. package/dist/test-utils/polyfills/offsetParent.js.map +1 -1
  432. package/dist/test-utils/polyfills/scrollIntoView.js.map +1 -1
  433. package/dist/test-utils/render.js.map +1 -1
  434. package/dist/test-utils/timers.js.map +1 -1
  435. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  436. package/dist/theme/ThemeProvider.js.map +1 -1
  437. package/dist/theme/_theme.scss +6 -5
  438. package/dist/theme/colors.js.map +1 -1
  439. package/dist/theme/cssVars.js.map +1 -1
  440. package/dist/theme/types.js.map +1 -1
  441. package/dist/theme/useCSSVariables.js.map +1 -1
  442. package/dist/theme/useColorScheme.js.map +1 -1
  443. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  444. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  445. package/dist/theme/usePrefersColorScheme.js.map +1 -1
  446. package/dist/theme/utils.js.map +1 -1
  447. package/dist/tooltip/Tooltip.d.ts +20 -9
  448. package/dist/tooltip/Tooltip.js.map +1 -1
  449. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  450. package/dist/tooltip/constants.js.map +1 -1
  451. package/dist/tooltip/tooltipStyles.js.map +1 -1
  452. package/dist/tooltip/useTooltip.d.ts +30 -16
  453. package/dist/tooltip/useTooltip.js.map +1 -1
  454. package/dist/tooltip/useTooltipPosition.d.ts +2 -4
  455. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  456. package/dist/tooltip/utils.js.map +1 -1
  457. package/dist/transition/CSSTransition.js.map +1 -1
  458. package/dist/transition/Collapse.js.map +1 -1
  459. package/dist/transition/CrossFade.js +2 -3
  460. package/dist/transition/CrossFade.js.map +1 -1
  461. package/dist/transition/ScaleTransition.js.map +1 -1
  462. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  463. package/dist/transition/Slide.js.map +1 -1
  464. package/dist/transition/SlideContainer.js.map +1 -1
  465. package/dist/transition/collapseStyles.js.map +1 -1
  466. package/dist/transition/config.js.map +1 -1
  467. package/dist/transition/maxWidthTransition.js.map +1 -1
  468. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  469. package/dist/transition/types.d.ts +19 -24
  470. package/dist/transition/types.js.map +1 -1
  471. package/dist/transition/useCSSTransition.js.map +1 -1
  472. package/dist/transition/useCarousel.js.map +1 -1
  473. package/dist/transition/useCollapseTransition.js.map +1 -1
  474. package/dist/transition/useCrossFadeTransition.js +2 -1
  475. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  476. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  477. package/dist/transition/useScaleTransition.js +2 -1
  478. package/dist/transition/useScaleTransition.js.map +1 -1
  479. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  480. package/dist/transition/useSlideTransition.js.map +1 -1
  481. package/dist/transition/useTransition.d.ts +1 -0
  482. package/dist/transition/useTransition.js +1 -0
  483. package/dist/transition/useTransition.js.map +1 -1
  484. package/dist/transition/utils.js.map +1 -1
  485. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  486. package/dist/tree/Tree.js.map +1 -1
  487. package/dist/tree/TreeGroup.js.map +1 -1
  488. package/dist/tree/TreeItem.js.map +1 -1
  489. package/dist/tree/TreeItemExpander.js.map +1 -1
  490. package/dist/tree/TreeProvider.js.map +1 -1
  491. package/dist/tree/styles.js.map +1 -1
  492. package/dist/tree/types.js.map +1 -1
  493. package/dist/tree/useTree.d.ts +3 -3
  494. package/dist/tree/useTree.js.map +1 -1
  495. package/dist/tree/useTreeExpansion.js.map +1 -1
  496. package/dist/tree/useTreeItems.js.map +1 -1
  497. package/dist/tree/useTreeMovement.js.map +1 -1
  498. package/dist/tree/useTreeSelection.js.map +1 -1
  499. package/dist/tree/utils.js.map +1 -1
  500. package/dist/types.js.map +1 -1
  501. package/dist/typography/SrOnly.js.map +1 -1
  502. package/dist/typography/TextContainer.d.ts +4 -0
  503. package/dist/typography/TextContainer.js +2 -0
  504. package/dist/typography/TextContainer.js.map +1 -1
  505. package/dist/typography/Typography.d.ts +10 -0
  506. package/dist/typography/Typography.js +3 -0
  507. package/dist/typography/Typography.js.map +1 -1
  508. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  509. package/dist/typography/textContainerStyles.js.map +1 -1
  510. package/dist/typography/typographyStyles.js.map +1 -1
  511. package/dist/{useAsyncAction.d.ts → useAsyncFunction.d.ts} +10 -10
  512. package/dist/{useAsyncAction.js → useAsyncFunction.js} +6 -6
  513. package/dist/useAsyncFunction.js.map +1 -0
  514. package/dist/useDebouncedFunction.js.map +1 -1
  515. package/dist/useDropzone.js.map +1 -1
  516. package/dist/useElementSize.js.map +1 -1
  517. package/dist/useEnsuredId.js.map +1 -1
  518. package/dist/useEnsuredRef.js.map +1 -1
  519. package/dist/useEnsuredState.js.map +1 -1
  520. package/dist/useHtmlClassName.js.map +1 -1
  521. package/dist/useIntersectionObserver.js.map +1 -1
  522. package/dist/useIsomorphicLayoutEffect.js.map +1 -1
  523. package/dist/useLocalStorage.js.map +1 -1
  524. package/dist/useMutationObserver.d.ts +52 -0
  525. package/dist/useMutationObserver.js +84 -0
  526. package/dist/useMutationObserver.js.map +1 -0
  527. package/dist/useOrientation.js.map +1 -1
  528. package/dist/usePageInactive.js.map +1 -1
  529. package/dist/useResizeListener.js.map +1 -1
  530. package/dist/useResizeObserver.js.map +1 -1
  531. package/dist/useThrottledFunction.js.map +1 -1
  532. package/dist/useToggle.js.map +1 -1
  533. package/dist/useUnmounted.js.map +1 -1
  534. package/dist/useWindowSize.js.map +1 -1
  535. package/dist/utils/RenderRecursively.js.map +1 -1
  536. package/dist/utils/alphaNumericSort.js.map +1 -1
  537. package/dist/utils/applyRef.js.map +1 -1
  538. package/dist/utils/bem.js.map +1 -1
  539. package/dist/utils/getClientPosition.js.map +1 -1
  540. package/dist/utils/getMiddleOfRange.js.map +1 -1
  541. package/dist/utils/getPercentage.js.map +1 -1
  542. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  543. package/dist/utils/getRangeSteps.js.map +1 -1
  544. package/dist/utils/identity.js.map +1 -1
  545. package/dist/utils/isElementVisible.js.map +1 -1
  546. package/dist/utils/loop.js.map +1 -1
  547. package/dist/utils/nearest.js.map +1 -1
  548. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  549. package/dist/utils/randomInt.js.map +1 -1
  550. package/dist/utils/wait.js.map +1 -1
  551. package/dist/utils/withinRange.js.map +1 -1
  552. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  553. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  554. package/package.json +26 -25
  555. package/scripts/getExportMap.ts +66 -0
  556. package/scripts/tsconfig.json +1 -1
  557. package/src/__tests__/{useAsyncAction.tsx → useAsyncFunction.tsx} +3 -3
  558. package/src/__tests__/useWindowSize.tsx +1 -2
  559. package/src/_box-shadows.scss +7 -4
  560. package/src/_core.scss +5 -1
  561. package/src/_utils.scss +3 -3
  562. package/src/app-bar/AppBarTitle.tsx +8 -4
  563. package/src/autocomplete/Autocomplete.tsx +294 -0
  564. package/src/autocomplete/AutocompleteCircularProgress.tsx +41 -0
  565. package/src/autocomplete/AutocompleteDropdownButton.tsx +66 -0
  566. package/src/autocomplete/FilterAutocompleteOptions.tsx +86 -0
  567. package/src/autocomplete/__tests__/Autocomplete.tsx +458 -0
  568. package/src/autocomplete/__tests__/__snapshots__/Autocomplete.tsx.snap +144 -0
  569. package/src/autocomplete/_autocomplete.scss +75 -0
  570. package/src/autocomplete/autocompleteStyles.ts +78 -0
  571. package/src/autocomplete/defaults.ts +83 -0
  572. package/src/autocomplete/types.ts +122 -0
  573. package/src/avatar/Avatar.tsx +1 -2
  574. package/src/avatar/_avatar.scss +4 -3
  575. package/src/button/AsyncButton.tsx +2 -2
  576. package/src/card/Card.tsx +2 -1
  577. package/src/card/CardSubtitle.tsx +9 -0
  578. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +1 -1
  579. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +2 -2
  580. package/src/card/__tests__/__snapshots__/styles.ts.snap +1 -1
  581. package/src/card/styles.ts +2 -6
  582. package/src/cssUtils.ts +1 -1
  583. package/src/draggable/useDraggable.ts +6 -13
  584. package/src/form/TextField.tsx +0 -13
  585. package/src/form/TextFieldAddon.tsx +6 -4
  586. package/src/form/__tests__/__snapshots__/Select.tsx.snap +2 -2
  587. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +2 -2
  588. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +2 -2
  589. package/src/form/__tests__/useFormReset.tsx +1 -2
  590. package/src/form/_form.scss +81 -40
  591. package/src/form/useCombobox.ts +9 -19
  592. package/src/form/useEditableCombobox.ts +3 -0
  593. package/src/form/useTextFieldContainerAddons.ts +195 -0
  594. package/src/icon/FontIcon.tsx +19 -9
  595. package/src/icon/MaterialIcon.tsx +23 -4
  596. package/src/icon/SVGIcon.tsx +3 -0
  597. package/src/icon/iconConfig.tsx +10 -0
  598. package/src/icon/material.ts +276 -19
  599. package/src/link/Link.tsx +2 -4
  600. package/src/link/SkipToMainContent.tsx +11 -4
  601. package/src/link/styles.ts +2 -2
  602. package/src/menu/MenuItemCircularProgress.tsx +2 -2
  603. package/src/overlay/Overlay.tsx +1 -0
  604. package/src/portal/Portal.tsx +5 -0
  605. package/src/portal/PortalContainerProvider.tsx +16 -7
  606. package/src/positioning/__tests__/createHorizontalPosition.ts +2 -4
  607. package/src/positioning/constants.ts +1 -1
  608. package/src/positioning/createHorizontalPosition.ts +2 -2
  609. package/src/positioning/createVerticalPosition.ts +3 -3
  610. package/src/positioning/getFixedPosition.ts +1 -1
  611. package/src/positioning/types.ts +1 -1
  612. package/src/positioning/useFixedPositioning.ts +12 -4
  613. package/src/positioning/utils.ts +1 -1
  614. package/src/progress/CircularProgress.tsx +5 -4
  615. package/src/responsive-item/_responsive-item.scss +4 -1
  616. package/src/suspense/__tests__/CircularProgressSuspense.tsx +4 -4
  617. package/src/table/StickyTableSection.tsx +91 -0
  618. package/src/table/Table.tsx +2 -5
  619. package/src/table/TableBody.tsx +1 -2
  620. package/src/table/TableCell.tsx +3 -5
  621. package/src/table/TableCellContent.tsx +1 -3
  622. package/src/table/TableConfigurationProvider.tsx +1 -86
  623. package/src/table/TableFooter.tsx +19 -116
  624. package/src/table/TableHeader.tsx +20 -118
  625. package/src/table/TableRow.tsx +2 -4
  626. package/src/table/__tests__/Table.tsx +9 -8
  627. package/src/table/tableCellStyles.ts +1 -1
  628. package/src/table/types.ts +105 -10
  629. package/src/table/useStickyTableSection.tsx +126 -0
  630. package/src/table/useTableSectionConfig.ts +45 -0
  631. package/src/theme/_theme.scss +6 -5
  632. package/src/tooltip/Tooltip.tsx +24 -8
  633. package/src/tooltip/useTooltip.ts +52 -27
  634. package/src/tooltip/useTooltipPosition.ts +2 -4
  635. package/src/transition/CrossFade.tsx +1 -8
  636. package/src/transition/types.ts +23 -27
  637. package/src/transition/useCrossFadeTransition.ts +2 -0
  638. package/src/transition/useScaleTransition.ts +2 -0
  639. package/src/transition/useTransition.ts +1 -0
  640. package/src/tree/useTree.ts +3 -5
  641. package/src/typography/TextContainer.tsx +4 -0
  642. package/src/typography/Typography.tsx +10 -0
  643. package/src/{useAsyncAction.ts → useAsyncFunction.ts} +15 -15
  644. package/src/useMutationObserver.ts +118 -0
  645. package/src/useResizeListener.ts +1 -1
  646. package/coverage/lcov-report/AppBar.tsx.html +0 -784
  647. package/coverage/lcov-report/AsyncButton.tsx.html +0 -649
  648. package/coverage/lcov-report/AutoComplete.tsx.html +0 -283
  649. package/coverage/lcov-report/Avatar.tsx.html +0 -472
  650. package/coverage/lcov-report/Badge.tsx.html +0 -253
  651. package/coverage/lcov-report/CircularProgress.tsx.html +0 -799
  652. package/coverage/lcov-report/Collapse.tsx.html +0 -340
  653. package/coverage/lcov-report/CoreProviders.tsx.html +0 -502
  654. package/coverage/lcov-report/DefaultNavigationRenderer.tsx.html +0 -298
  655. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +0 -526
  656. package/coverage/lcov-report/Dialog.tsx.html +0 -1309
  657. package/coverage/lcov-report/DialogContent.tsx.html +0 -178
  658. package/coverage/lcov-report/DialogFooter.tsx.html +0 -169
  659. package/coverage/lcov-report/ExpansionList.tsx.html +0 -205
  660. package/coverage/lcov-report/ExpansionPanel.tsx.html +0 -934
  661. package/coverage/lcov-report/ExpansionPanelHeader.tsx.html +0 -622
  662. package/coverage/lcov-report/FileInput.tsx.html +0 -733
  663. package/coverage/lcov-report/FontIcon.tsx.html +0 -265
  664. package/coverage/lcov-report/IconRotator.tsx.html +0 -322
  665. package/coverage/lcov-report/InputToggle.tsx.html +0 -1117
  666. package/coverage/lcov-report/InputToggleIcon.tsx.html +0 -478
  667. package/coverage/lcov-report/LinearProgress.tsx.html +0 -658
  668. package/coverage/lcov-report/ListItem.tsx.html +0 -892
  669. package/coverage/lcov-report/ListItemLink.tsx.html +0 -616
  670. package/coverage/lcov-report/MaterialIcon.tsx.html +0 -235
  671. package/coverage/lcov-report/MaterialSymbol.tsx.html +0 -421
  672. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +0 -223
  673. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +0 -925
  674. package/coverage/lcov-report/MenuItemRadio.tsx.html +0 -436
  675. package/coverage/lcov-report/MenuItemSeparator.tsx.html +0 -223
  676. package/coverage/lcov-report/MenuItemTextField.tsx.html +0 -289
  677. package/coverage/lcov-report/NativeSelect.tsx.html +0 -763
  678. package/coverage/lcov-report/Navigation.tsx.html +0 -358
  679. package/coverage/lcov-report/Portal.tsx.html +0 -223
  680. package/coverage/lcov-report/PortalContainerProvider.tsx.html +0 -367
  681. package/coverage/lcov-report/RootHtml.tsx.html +0 -370
  682. package/coverage/lcov-report/SVGIcon.tsx.html +0 -445
  683. package/coverage/lcov-report/SegmentedButton.tsx.html +0 -628
  684. package/coverage/lcov-report/SegmentedButtonContainer.tsx.html +0 -277
  685. package/coverage/lcov-report/Select.tsx.html +0 -1411
  686. package/coverage/lcov-report/SkeletonPlaceholder.tsx.html +0 -613
  687. package/coverage/lcov-report/Snackbar.tsx.html +0 -610
  688. package/coverage/lcov-report/SrOnly.tsx.html +0 -328
  689. package/coverage/lcov-report/Switch.tsx.html +0 -535
  690. package/coverage/lcov-report/SwitchTrack.tsx.html +0 -262
  691. package/coverage/lcov-report/Tab.tsx.html +0 -622
  692. package/coverage/lcov-report/TabList.tsx.html +0 -757
  693. package/coverage/lcov-report/TabListScrollButton.tsx.html +0 -472
  694. package/coverage/lcov-report/Table.tsx.html +0 -457
  695. package/coverage/lcov-report/TableCell.tsx.html +0 -982
  696. package/coverage/lcov-report/TableCheckbox.tsx.html +0 -709
  697. package/coverage/lcov-report/TableContainer.tsx.html +0 -220
  698. package/coverage/lcov-report/TableFooter.tsx.html +0 -502
  699. package/coverage/lcov-report/TableHeader.tsx.html +0 -541
  700. package/coverage/lcov-report/TableRadio.tsx.html +0 -670
  701. package/coverage/lcov-report/TableRow.tsx.html +0 -289
  702. package/coverage/lcov-report/TextArea.tsx.html +0 -940
  703. package/coverage/lcov-report/TextField.tsx.html +0 -829
  704. package/coverage/lcov-report/TextFieldAddon.tsx.html +0 -382
  705. package/coverage/lcov-report/TextFieldContainer.tsx.html +0 -364
  706. package/coverage/lcov-report/Toast.tsx.html +0 -868
  707. package/coverage/lcov-report/ToastCloseButton.tsx.html +0 -340
  708. package/coverage/lcov-report/ToastManager.tsx.html +0 -1783
  709. package/coverage/lcov-report/ToastManagerProvider.tsx.html +0 -400
  710. package/coverage/lcov-report/Tooltip.tsx.html +0 -559
  711. package/coverage/lcov-report/TooltipHoverModeProvider.tsx.html +0 -253
  712. package/coverage/lcov-report/Tree.tsx.html +0 -1135
  713. package/coverage/lcov-report/TreeGroup.tsx.html +0 -313
  714. package/coverage/lcov-report/Typography.tsx.html +0 -1027
  715. package/coverage/lcov-report/app-bar/AppBar.tsx.html +0 -928
  716. package/coverage/lcov-report/app-bar/AppBarTitle.tsx.html +0 -430
  717. package/coverage/lcov-report/app-bar/index.html +0 -131
  718. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +0 -283
  719. package/coverage/lcov-report/autocomplete/AutocompleteGeneric.tsx.html +0 -304
  720. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +0 -775
  721. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +0 -1039
  722. package/coverage/lcov-report/autocomplete/useAutocompleteAgain.ts.html +0 -829
  723. package/coverage/lcov-report/autocomplete/useAutocompletev2.ts.html +0 -715
  724. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +0 -340
  725. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +0 -454
  726. package/coverage/lcov-report/autocomplete/useInlineSelection.ts.html +0 -373
  727. package/coverage/lcov-report/autocomplete/utils.ts.html +0 -196
  728. package/coverage/lcov-report/avatar/Avatar.tsx.html +0 -535
  729. package/coverage/lcov-report/avatar/index.html +0 -116
  730. package/coverage/lcov-report/avatar/styles.ts.html +0 -268
  731. package/coverage/lcov-report/badge/Badge.tsx.html +0 -364
  732. package/coverage/lcov-report/badge/index.html +0 -116
  733. package/coverage/lcov-report/box/Box.tsx.html +0 -562
  734. package/coverage/lcov-report/box/index.html +0 -131
  735. package/coverage/lcov-report/box/styles.ts.html +0 -622
  736. package/coverage/lcov-report/button/AsyncButton.tsx.html +0 -1045
  737. package/coverage/lcov-report/button/ButtonUnstyled.tsx.html +0 -214
  738. package/coverage/lcov-report/button/FloatingActionButton.tsx.html +0 -427
  739. package/coverage/lcov-report/button/TooltippedButton.tsx.html +0 -433
  740. package/coverage/lcov-report/button/buttonStyles.ts.html +0 -607
  741. package/coverage/lcov-report/button/buttonUnstyledStyles.ts.html +0 -142
  742. package/coverage/lcov-report/card/CardContent.tsx.html +0 -223
  743. package/coverage/lcov-report/card/CardHeader.tsx.html +0 -322
  744. package/coverage/lcov-report/card/ClickableCard.tsx.html +0 -400
  745. package/coverage/lcov-report/chip/Chip.tsx.html +0 -1072
  746. package/coverage/lcov-report/chip/index.html +0 -116
  747. package/coverage/lcov-report/chip/styles.ts.html +0 -436
  748. package/coverage/lcov-report/collapseStyles.ts.html +0 -184
  749. package/coverage/lcov-report/config.ts.html +0 -151
  750. package/coverage/lcov-report/cssUtils.ts.html +0 -814
  751. package/coverage/lcov-report/dialog/Dialog.tsx.html +0 -1309
  752. package/coverage/lcov-report/dialog/DialogContent.tsx.html +0 -178
  753. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +0 -169
  754. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +0 -148
  755. package/coverage/lcov-report/dialog/FixedDialog.tsx.html +0 -583
  756. package/coverage/lcov-report/dialog/index.html +0 -131
  757. package/coverage/lcov-report/dialog/styles.ts.html +0 -439
  758. package/coverage/lcov-report/divider/Divider.tsx.html +0 -280
  759. package/coverage/lcov-report/divider/index.html +0 -116
  760. package/coverage/lcov-report/draggable/index.html +0 -116
  761. package/coverage/lcov-report/draggable/useControlledDraggable.ts.html +0 -2131
  762. package/coverage/lcov-report/draggable/useDraggable.ts.html +0 -2398
  763. package/coverage/lcov-report/draggable/useDraggableOrig.ts.html +0 -316
  764. package/coverage/lcov-report/draggable/useLocalStorageDraggable.ts.html +0 -361
  765. package/coverage/lcov-report/draggable/useLocalStorageDraggableControls.ts.html +0 -487
  766. package/coverage/lcov-report/draggable/useLocalStorageDraggableLatest.ts.html +0 -334
  767. package/coverage/lcov-report/draggable/utils.ts.html +0 -808
  768. package/coverage/lcov-report/expansion-panel/ExpansionList.tsx.html +0 -211
  769. package/coverage/lcov-report/expansion-panel/ExpansionPanel.tsx.html +0 -943
  770. package/coverage/lcov-report/expansion-panel/ExpansionPanelHeader.tsx.html +0 -649
  771. package/coverage/lcov-report/expansion-panel/index.html +0 -146
  772. package/coverage/lcov-report/expansion-panel/useExpansionPanels.ts.html +0 -928
  773. package/coverage/lcov-report/filters.ts.html +0 -1045
  774. package/coverage/lcov-report/findMatchIndex.ts.html +0 -385
  775. package/coverage/lcov-report/form/AutoComplete.tsx.html +0 -283
  776. package/coverage/lcov-report/form/FileInput.tsx.html +0 -739
  777. package/coverage/lcov-report/form/Form.tsx.html +0 -238
  778. package/coverage/lcov-report/form/FormMessage.tsx.html +0 -322
  779. package/coverage/lcov-report/form/FormMessageContainer.tsx.html +0 -229
  780. package/coverage/lcov-report/form/InputToggle.tsx.html +0 -1108
  781. package/coverage/lcov-report/form/InputToggleIcon.tsx.html +0 -478
  782. package/coverage/lcov-report/form/Label.tsx.html +0 -442
  783. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +0 -979
  784. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +0 -289
  785. package/coverage/lcov-report/form/NativeSelect.tsx.html +0 -826
  786. package/coverage/lcov-report/form/OptGroup.tsx.html +0 -343
  787. package/coverage/lcov-report/form/Password.tsx.html +0 -721
  788. package/coverage/lcov-report/form/Radio.tsx.html +0 -169
  789. package/coverage/lcov-report/form/ResizingTextArea.tsx.html +0 -442
  790. package/coverage/lcov-report/form/ResizingTextAreaWrapper.tsx.html +0 -310
  791. package/coverage/lcov-report/form/Select.tsx.html +0 -1456
  792. package/coverage/lcov-report/form/SelectOriginal.tsx.html +0 -1630
  793. package/coverage/lcov-report/form/SelectV2.tsx.html +0 -1024
  794. package/coverage/lcov-report/form/SelectedOption.tsx.html +0 -250
  795. package/coverage/lcov-report/form/SimpleTextArea.tsx.html +0 -727
  796. package/coverage/lcov-report/form/Slider.tsx.html +0 -2014
  797. package/coverage/lcov-report/form/SliderThumb.tsx.html +0 -1030
  798. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +0 -319
  799. package/coverage/lcov-report/form/Switch.tsx.html +0 -535
  800. package/coverage/lcov-report/form/SwitchTrack.tsx.html +0 -262
  801. package/coverage/lcov-report/form/TextArea.tsx.html +0 -964
  802. package/coverage/lcov-report/form/TextArea2.tsx.html +0 -985
  803. package/coverage/lcov-report/form/TextAreaBackup.tsx.html +0 -1006
  804. package/coverage/lcov-report/form/TextField.tsx.html +0 -829
  805. package/coverage/lcov-report/form/fileUtils.ts.html +0 -2155
  806. package/coverage/lcov-report/form/formMessageStyles.ts.html +0 -238
  807. package/coverage/lcov-report/form/inputToggleStyles.ts.html +0 -316
  808. package/coverage/lcov-report/form/selectUtils.ts.html +0 -397
  809. package/coverage/lcov-report/form/switchStyles.ts.html +0 -172
  810. package/coverage/lcov-report/form/textAreaStyles.ts.html +0 -382
  811. package/coverage/lcov-report/form/useAutoComplete.ts.html +0 -787
  812. package/coverage/lcov-report/form/useCheckboxGroup.ts.html +0 -1087
  813. package/coverage/lcov-report/form/useCombobox-6-13.ts.html +0 -1054
  814. package/coverage/lcov-report/form/useCombobox-6-15.ts.html +0 -1048
  815. package/coverage/lcov-report/form/useCombobox.ts.html +0 -1045
  816. package/coverage/lcov-report/form/useComboboxBoth.ts.html +0 -85
  817. package/coverage/lcov-report/form/useComboboxDialog.ts.html +0 -85
  818. package/coverage/lcov-report/form/useComboboxList.ts.html +0 -418
  819. package/coverage/lcov-report/form/useComboboxOrig.ts.html +0 -781
  820. package/coverage/lcov-report/form/useFileUpload.ts.html +0 -1702
  821. package/coverage/lcov-report/form/useFormReset.ts.html +0 -229
  822. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +0 -379
  823. package/coverage/lcov-report/form/useNumberField.ts.html +0 -1561
  824. package/coverage/lcov-report/form/useRadioGroup.ts.html +0 -1009
  825. package/coverage/lcov-report/form/useRangeSlider.ts.html +0 -355
  826. package/coverage/lcov-report/form/useResizingTextArea.ts.html +0 -631
  827. package/coverage/lcov-report/form/useResizingTextArea2.ts.html +0 -631
  828. package/coverage/lcov-report/form/useSelectCombobox.ts.html +0 -499
  829. package/coverage/lcov-report/form/useSlider.ts.html +0 -421
  830. package/coverage/lcov-report/form/useTextField.ts.html +0 -2203
  831. package/coverage/lcov-report/form/utils.ts.html +0 -382
  832. package/coverage/lcov-report/form/validation.ts.html +0 -886
  833. package/coverage/lcov-report/getHrefFromParents.ts.html +0 -133
  834. package/coverage/lcov-report/getListItemHeight.ts.html +0 -298
  835. package/coverage/lcov-report/hoverMode/index.html +0 -116
  836. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +0 -676
  837. package/coverage/lcov-report/icon/FontIcon.tsx.html +0 -256
  838. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +0 -235
  839. package/coverage/lcov-report/icon/index.html +0 -116
  840. package/coverage/lcov-report/icon/styles.ts.html +0 -586
  841. package/coverage/lcov-report/iconConfig.tsx.html +0 -973
  842. package/coverage/lcov-report/inputToggleStyles.ts.html +0 -316
  843. package/coverage/lcov-report/interaction/ElementInteractionProvider.tsx.html +0 -253
  844. package/coverage/lcov-report/interaction/UserInteractionModeProvider.tsx.html +0 -679
  845. package/coverage/lcov-report/interaction/config.ts.html +0 -181
  846. package/coverage/lcov-report/interaction/index.html +0 -131
  847. package/coverage/lcov-report/layout/LayoutAppBar.tsx.html +0 -358
  848. package/coverage/lcov-report/layout/LayoutNav.tsx.html +0 -682
  849. package/coverage/lcov-report/layout/LayoutWindowSplitter.tsx.html +0 -460
  850. package/coverage/lcov-report/layout/Main.tsx.html +0 -364
  851. package/coverage/lcov-report/layout/NavigationLink.tsx.html +0 -334
  852. package/coverage/lcov-report/layout/NavigationRail.tsx.html +0 -157
  853. package/coverage/lcov-report/layout/index.html +0 -161
  854. package/coverage/lcov-report/layout/layoutNavStyles.ts.html +0 -166
  855. package/coverage/lcov-report/layout/layoutWindowSplitterStyles.ts.html +0 -220
  856. package/coverage/lcov-report/layout/navigationLinkStyles.ts.html +0 -250
  857. package/coverage/lcov-report/layout/navigationRailStyles.ts.html +0 -148
  858. package/coverage/lcov-report/layout/useExpandableLayout.ts.html +0 -928
  859. package/coverage/lcov-report/layout/useExpandableLayoutAppBarTransition.ts.html +0 -199
  860. package/coverage/lcov-report/layout/useHorizontalLayoutTransition.ts.html +0 -349
  861. package/coverage/lcov-report/layout/useLayoutAppBarHeight.ts.html +0 -343
  862. package/coverage/lcov-report/layout/useLayoutNavigation.ts.html +0 -544
  863. package/coverage/lcov-report/layout/useLayoutTree.ts.html +0 -691
  864. package/coverage/lcov-report/layout/useLayoutWindowSplitter.ts.html +0 -517
  865. package/coverage/lcov-report/layout/useMainTabIndex.ts.html +0 -136
  866. package/coverage/lcov-report/layout/useResizableLayout.ts.html +0 -328
  867. package/coverage/lcov-report/layout/useTemporaryLayout.ts.html +0 -589
  868. package/coverage/lcov-report/link/Link.tsx.html +0 -358
  869. package/coverage/lcov-report/link/LinkProvider.tsx.html +0 -214
  870. package/coverage/lcov-report/link/SkipToMainContent.tsx.html +0 -448
  871. package/coverage/lcov-report/link/index.html +0 -116
  872. package/coverage/lcov-report/list/List.tsx.html +0 -490
  873. package/coverage/lcov-report/list/ListItem.tsx.html +0 -886
  874. package/coverage/lcov-report/list/ListItemAddon.tsx.html +0 -286
  875. package/coverage/lcov-report/list/ListItemChildren.tsx.html +0 -445
  876. package/coverage/lcov-report/list/ListItemLink.tsx.html +0 -616
  877. package/coverage/lcov-report/list/ListItemText.tsx.html +0 -280
  878. package/coverage/lcov-report/list/ListSubheader.tsx.html +0 -322
  879. package/coverage/lcov-report/list/index.html +0 -191
  880. package/coverage/lcov-report/list/listItemStyles.ts.html +0 -703
  881. package/coverage/lcov-report/materialConfig.ts.html +0 -703
  882. package/coverage/lcov-report/media-queries/AppSizeProvider.tsx.html +0 -499
  883. package/coverage/lcov-report/media-queries/appSize.ts.html +0 -445
  884. package/coverage/lcov-report/media-queries/index.html +0 -116
  885. package/coverage/lcov-report/media-queries/useMediaQuery.ts.html +0 -244
  886. package/coverage/lcov-report/media-queries/useMinWidthMediaQuery.ts.html +0 -115
  887. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +0 -976
  888. package/coverage/lcov-report/menu/Menu.tsx.html +0 -1894
  889. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +0 -637
  890. package/coverage/lcov-report/menu/MenuItem.tsx.html +0 -292
  891. package/coverage/lcov-report/menu/MenuItemCircularProgress.tsx.html +0 -433
  892. package/coverage/lcov-report/menu/MenuItemGroup.tsx.html +0 -382
  893. package/coverage/lcov-report/menu/MenuSheet.tsx.html +0 -502
  894. package/coverage/lcov-report/menu/MenuWidget.tsx.html +0 -634
  895. package/coverage/lcov-report/menu/index.html +0 -116
  896. package/coverage/lcov-report/menu/menuConfig.ts.html +0 -118
  897. package/coverage/lcov-report/menu/useContextMenu.ts.html +0 -490
  898. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +0 -319
  899. package/coverage/lcov-report/movement/index.html +0 -116
  900. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +0 -1723
  901. package/coverage/lcov-report/navigation/CollapsibleNavGroup.tsx.html +0 -334
  902. package/coverage/lcov-report/navigation/DefaultNavigationRenderer.tsx.html +0 -298
  903. package/coverage/lcov-report/navigation/NavGroup.tsx.html +0 -193
  904. package/coverage/lcov-report/navigation/NavItem.tsx.html +0 -160
  905. package/coverage/lcov-report/navigation/NavItemButton.tsx.html +0 -397
  906. package/coverage/lcov-report/navigation/NavItemLink.tsx.html +0 -574
  907. package/coverage/lcov-report/navigation/NavSubheader.tsx.html +0 -184
  908. package/coverage/lcov-report/navigation/Navigation.tsx.html +0 -358
  909. package/coverage/lcov-report/navigation/getHrefFromParents.ts.html +0 -130
  910. package/coverage/lcov-report/navigation/index.html +0 -146
  911. package/coverage/lcov-report/navigation/navGroupStyles.ts.html +0 -148
  912. package/coverage/lcov-report/navigation/navItemStyles.ts.html +0 -298
  913. package/coverage/lcov-report/overlay/Overlay.tsx.html +0 -655
  914. package/coverage/lcov-report/overlay/index.html +0 -116
  915. package/coverage/lcov-report/positioning/constants.ts.html +0 -463
  916. package/coverage/lcov-report/positioning/createVerticalPosition.ts.html +0 -1009
  917. package/coverage/lcov-report/positioning/getFixedPosition.ts.html +0 -616
  918. package/coverage/lcov-report/positioning/index.html +0 -131
  919. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +0 -1321
  920. package/coverage/lcov-report/progress/CircularProgress.tsx.html +0 -799
  921. package/coverage/lcov-report/progress/LinearProgress.tsx.html +0 -658
  922. package/coverage/lcov-report/progress/index.html +0 -116
  923. package/coverage/lcov-report/searching/caseInsensitive.ts.html +0 -685
  924. package/coverage/lcov-report/searching/toSearchQuery.ts.html +0 -145
  925. package/coverage/lcov-report/searching/useFuzzyMatch.ts.html +0 -211
  926. package/coverage/lcov-report/searching/utils.ts.html +0 -244
  927. package/coverage/lcov-report/segmented-button/SegmentedButton.tsx.html +0 -628
  928. package/coverage/lcov-report/segmented-button/SegmentedButtonContainer.tsx.html +0 -259
  929. package/coverage/lcov-report/segmented-button/index.html +0 -161
  930. package/coverage/lcov-report/segmented-button/segmentedButtonContainerStyles.ts.html +0 -151
  931. package/coverage/lcov-report/segmented-button/segmentedButtonStyles.ts.html +0 -199
  932. package/coverage/lcov-report/segmentedButtonContainerStyles.ts.html +0 -160
  933. package/coverage/lcov-report/segmentedButtonStyles.ts.html +0 -199
  934. package/coverage/lcov-report/sheet/Sheet.tsx.html +0 -397
  935. package/coverage/lcov-report/sheet/index.html +0 -116
  936. package/coverage/lcov-report/sheet/styles.ts.html +0 -376
  937. package/coverage/lcov-report/skeletonPlaceholderUtils.ts.html +0 -400
  938. package/coverage/lcov-report/snackbar/DefaultToastRenderer.tsx.html +0 -529
  939. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +0 -610
  940. package/coverage/lcov-report/snackbar/Toast.tsx.html +0 -868
  941. package/coverage/lcov-report/snackbar/ToastContent.tsx.html +0 -364
  942. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +0 -1804
  943. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +0 -400
  944. package/coverage/lcov-report/snackbar/index.html +0 -116
  945. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +0 -139
  946. package/coverage/lcov-report/snackbar/toastContentStyles.ts.html +0 -196
  947. package/coverage/lcov-report/snackbar/toastStyles.ts.html +0 -349
  948. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +0 -226
  949. package/coverage/lcov-report/snackbarStyles.ts.html +0 -139
  950. package/coverage/lcov-report/src/AppSize.tsx.html +0 -247
  951. package/coverage/lcov-report/src/AppSizeProvider.tsx.html +0 -787
  952. package/coverage/lcov-report/src/CoreProviders.tsx.html +0 -412
  953. package/coverage/lcov-report/src/NoSsr.tsx.html +0 -250
  954. package/coverage/lcov-report/src/NullSsrSuspense.tsx.html +0 -223
  955. package/coverage/lcov-report/src/RootHtml.tsx.html +0 -370
  956. package/coverage/lcov-report/src/SsrProvider.tsx.html +0 -211
  957. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +0 -937
  958. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +0 -445
  959. package/coverage/lcov-report/src/app-bar/index.html +0 -131
  960. package/coverage/lcov-report/src/autocomplete/Autocomplete.tsx.html +0 -328
  961. package/coverage/lcov-report/src/autocomplete/AutocompleteGeneric.tsx.html +0 -304
  962. package/coverage/lcov-report/src/autocomplete/index.html +0 -221
  963. package/coverage/lcov-report/src/autocomplete/useAutocomplete.ts.html +0 -1039
  964. package/coverage/lcov-report/src/autocomplete/useAutocompleteAgain.ts.html +0 -829
  965. package/coverage/lcov-report/src/autocomplete/useAutocompletev2.ts.html +0 -715
  966. package/coverage/lcov-report/src/autocomplete/useInlineAutocomplete.ts.html +0 -454
  967. package/coverage/lcov-report/src/autocomplete/useInlineSelection.ts.html +0 -373
  968. package/coverage/lcov-report/src/autocomplete/utils.ts.html +0 -196
  969. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +0 -472
  970. package/coverage/lcov-report/src/avatar/index.html +0 -131
  971. package/coverage/lcov-report/src/avatar/styles.ts.html +0 -268
  972. package/coverage/lcov-report/src/badge/Badge.tsx.html +0 -382
  973. package/coverage/lcov-report/src/badge/index.html +0 -116
  974. package/coverage/lcov-report/src/box/Box.tsx.html +0 -541
  975. package/coverage/lcov-report/src/box/index.html +0 -131
  976. package/coverage/lcov-report/src/box/styles.ts.html +0 -622
  977. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +0 -1045
  978. package/coverage/lcov-report/src/button/Button.tsx.html +0 -688
  979. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +0 -211
  980. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +0 -382
  981. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +0 -445
  982. package/coverage/lcov-report/src/button/buttonStyles.ts.html +0 -607
  983. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +0 -142
  984. package/coverage/lcov-report/src/button/index.html +0 -116
  985. package/coverage/lcov-report/src/card/CardContent.tsx.html +0 -223
  986. package/coverage/lcov-report/src/card/CardFooter.tsx.html +0 -196
  987. package/coverage/lcov-report/src/card/CardHeader.tsx.html +0 -319
  988. package/coverage/lcov-report/src/card/CardTitle.tsx.html +0 -247
  989. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +0 -400
  990. package/coverage/lcov-report/src/chip/Chip.tsx.html +0 -1102
  991. package/coverage/lcov-report/src/chip/index.html +0 -131
  992. package/coverage/lcov-report/src/chip/styles.ts.html +0 -457
  993. package/coverage/lcov-report/src/delegateEvent.ts.html +0 -619
  994. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +0 -1309
  995. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +0 -175
  996. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +0 -178
  997. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +0 -169
  998. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +0 -148
  999. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +0 -256
  1000. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +0 -577
  1001. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +0 -127
  1002. package/coverage/lcov-report/src/dialog/index.html +0 -236
  1003. package/coverage/lcov-report/src/dialog/styles.ts.html +0 -439
  1004. package/coverage/lcov-report/src/divider/Divider.tsx.html +0 -274
  1005. package/coverage/lcov-report/src/divider/VerticalDivider.tsx.html +0 -235
  1006. package/coverage/lcov-report/src/divider/index.html +0 -116
  1007. package/coverage/lcov-report/src/divider/styles.ts.html +0 -232
  1008. package/coverage/lcov-report/src/divider/useVerticalDividerHeight.ts.html +0 -301
  1009. package/coverage/lcov-report/src/draggable/index.html +0 -131
  1010. package/coverage/lcov-report/src/draggable/useControlledDraggable.ts.html +0 -2137
  1011. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +0 -2398
  1012. package/coverage/lcov-report/src/draggable/useDraggableOrig.ts.html +0 -316
  1013. package/coverage/lcov-report/src/draggable/useLocalStorageDraggable.ts.html +0 -370
  1014. package/coverage/lcov-report/src/draggable/utils.ts.html +0 -808
  1015. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +0 -211
  1016. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +0 -943
  1017. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +0 -649
  1018. package/coverage/lcov-report/src/expansion-panel/index.html +0 -176
  1019. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +0 -322
  1020. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +0 -928
  1021. package/coverage/lcov-report/src/focus/index.html +0 -131
  1022. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +0 -883
  1023. package/coverage/lcov-report/src/focus/utils.ts.html +0 -544
  1024. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +0 -283
  1025. package/coverage/lcov-report/src/form/Checkbox.tsx.html +0 -160
  1026. package/coverage/lcov-report/src/form/Fieldset.tsx.html +0 -355
  1027. package/coverage/lcov-report/src/form/FileInput.tsx.html +0 -739
  1028. package/coverage/lcov-report/src/form/Form.tsx.html +0 -238
  1029. package/coverage/lcov-report/src/form/FormMessage.tsx.html +0 -322
  1030. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +0 -223
  1031. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +0 -262
  1032. package/coverage/lcov-report/src/form/FormThemeProvider.tsx.html +0 -313
  1033. package/coverage/lcov-report/src/form/InputToggle.tsx.html +0 -1108
  1034. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +0 -478
  1035. package/coverage/lcov-report/src/form/Label.tsx.html +0 -439
  1036. package/coverage/lcov-report/src/form/Legend.tsx.html +0 -199
  1037. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +0 -223
  1038. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +0 -424
  1039. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +0 -925
  1040. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +0 -436
  1041. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +0 -211
  1042. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +0 -289
  1043. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +0 -763
  1044. package/coverage/lcov-report/src/form/OptGroup.tsx.html +0 -343
  1045. package/coverage/lcov-report/src/form/Option.tsx.html +0 -709
  1046. package/coverage/lcov-report/src/form/Password.tsx.html +0 -721
  1047. package/coverage/lcov-report/src/form/Radio.tsx.html +0 -172
  1048. package/coverage/lcov-report/src/form/ResizingTextArea.tsx.html +0 -988
  1049. package/coverage/lcov-report/src/form/ResizingTextAreaWrapper.tsx.html +0 -310
  1050. package/coverage/lcov-report/src/form/Select.tsx.html +0 -1411
  1051. package/coverage/lcov-report/src/form/SelectValue.tsx.html +0 -202
  1052. package/coverage/lcov-report/src/form/SimpleTextArea.tsx.html +0 -694
  1053. package/coverage/lcov-report/src/form/Slider.tsx.html +0 -2008
  1054. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +0 -358
  1055. package/coverage/lcov-report/src/form/SliderMark.tsx.html +0 -208
  1056. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +0 -271
  1057. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +0 -1084
  1058. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +0 -454
  1059. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +0 -745
  1060. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +0 -319
  1061. package/coverage/lcov-report/src/form/Switch.tsx.html +0 -535
  1062. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +0 -262
  1063. package/coverage/lcov-report/src/form/TextArea.tsx.html +0 -1006
  1064. package/coverage/lcov-report/src/form/TextArea2.tsx.html +0 -985
  1065. package/coverage/lcov-report/src/form/TextAreaBackup.tsx.html +0 -985
  1066. package/coverage/lcov-report/src/form/TextField.tsx.html +0 -829
  1067. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +0 -382
  1068. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +0 -364
  1069. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +0 -418
  1070. package/coverage/lcov-report/src/form/fileUtils.ts.html +0 -2155
  1071. package/coverage/lcov-report/src/form/formConfig.ts.html +0 -157
  1072. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +0 -238
  1073. package/coverage/lcov-report/src/form/index.html +0 -176
  1074. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +0 -316
  1075. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +0 -319
  1076. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +0 -253
  1077. package/coverage/lcov-report/src/form/optionStyles.ts.html +0 -151
  1078. package/coverage/lcov-report/src/form/passwordStyles.ts.html +0 -235
  1079. package/coverage/lcov-report/src/form/selectStyles.ts.html +0 -181
  1080. package/coverage/lcov-report/src/form/selectUtils.ts.html +0 -430
  1081. package/coverage/lcov-report/src/form/sliderUtils.ts.html +0 -790
  1082. package/coverage/lcov-report/src/form/switchStyles.ts.html +0 -172
  1083. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +0 -385
  1084. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +0 -184
  1085. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +0 -787
  1086. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +0 -1087
  1087. package/coverage/lcov-report/src/form/useCombobox.ts.html +0 -1540
  1088. package/coverage/lcov-report/src/form/useComboboxBoth.ts.html +0 -85
  1089. package/coverage/lcov-report/src/form/useComboboxDialog.ts.html +0 -85
  1090. package/coverage/lcov-report/src/form/useComboboxList.ts.html +0 -403
  1091. package/coverage/lcov-report/src/form/useComboboxOrig.ts.html +0 -781
  1092. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +0 -502
  1093. package/coverage/lcov-report/src/form/useFileUpload.ts.html +0 -1702
  1094. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +0 -109
  1095. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +0 -214
  1096. package/coverage/lcov-report/src/form/useNumberField.ts.html +0 -1561
  1097. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +0 -1021
  1098. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +0 -355
  1099. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +0 -634
  1100. package/coverage/lcov-report/src/form/useResizingTextArea.tsx.html +0 -523
  1101. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +0 -295
  1102. package/coverage/lcov-report/src/form/useSlider.ts.html +0 -421
  1103. package/coverage/lcov-report/src/form/useTextField.ts.html +0 -2203
  1104. package/coverage/lcov-report/src/form/utils.ts.html +0 -373
  1105. package/coverage/lcov-report/src/form/validation.ts.html +0 -886
  1106. package/coverage/lcov-report/src/hoverMode/index.html +0 -131
  1107. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +0 -676
  1108. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +0 -1018
  1109. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +0 -256
  1110. package/coverage/lcov-report/src/icon/IconProvider.tsx.html +0 -931
  1111. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +0 -322
  1112. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +0 -235
  1113. package/coverage/lcov-report/src/icon/MaterialIconsProvider.ts.html +0 -154
  1114. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +0 -421
  1115. package/coverage/lcov-report/src/icon/MaterialSymbolsProvider.tsx.html +0 -757
  1116. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +0 -445
  1117. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +0 -679
  1118. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +0 -973
  1119. package/coverage/lcov-report/src/icon/index.html +0 -116
  1120. package/coverage/lcov-report/src/icon/material.ts.html +0 -15922
  1121. package/coverage/lcov-report/src/icon/materialConfig.ts.html +0 -703
  1122. package/coverage/lcov-report/src/icon/styles.ts.html +0 -586
  1123. package/coverage/lcov-report/src/interaction/ElementInteractionProvider.tsx.html +0 -277
  1124. package/coverage/lcov-report/src/interaction/LazyRippleContainer.tsx.html +0 -136
  1125. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +0 -283
  1126. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +0 -211
  1127. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +0 -679
  1128. package/coverage/lcov-report/src/interaction/config.ts.html +0 -181
  1129. package/coverage/lcov-report/src/interaction/index.html +0 -206
  1130. package/coverage/lcov-report/src/interaction/useElementInteraction.ts.html +0 -1474
  1131. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +0 -1513
  1132. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +0 -355
  1133. package/coverage/lcov-report/src/interaction/utils.ts.html +0 -496
  1134. package/coverage/lcov-report/src/layout/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1135. package/coverage/lcov-report/src/layout/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1136. package/coverage/lcov-report/src/layout/Layout.tsx.html +0 -235
  1137. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +0 -364
  1138. package/coverage/lcov-report/src/layout/LayoutAppBarTitle.tsx.html +0 -193
  1139. package/coverage/lcov-report/src/layout/LayoutChildren.tsx.html +0 -718
  1140. package/coverage/lcov-report/src/layout/LayoutMain.tsx.html +0 -580
  1141. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +0 -688
  1142. package/coverage/lcov-report/src/layout/LayoutNavToggle.tsx.html +0 -430
  1143. package/coverage/lcov-report/src/layout/LayoutNavigation.tsx.html +0 -445
  1144. package/coverage/lcov-report/src/layout/LayoutNavigationHeader.tsx.html +0 -274
  1145. package/coverage/lcov-report/src/layout/LayoutProvider.tsx.html +0 -706
  1146. package/coverage/lcov-report/src/layout/LayoutTree.tsx.html +0 -331
  1147. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +0 -472
  1148. package/coverage/lcov-report/src/layout/Main.tsx.html +0 -364
  1149. package/coverage/lcov-report/src/layout/MiniLayoutWrapper.tsx.html +0 -541
  1150. package/coverage/lcov-report/src/layout/NavigationLink.tsx.html +0 -334
  1151. package/coverage/lcov-report/src/layout/NavigationRail.tsx.html +0 -157
  1152. package/coverage/lcov-report/src/layout/TemporaryLayout.tsx.html +0 -85
  1153. package/coverage/lcov-report/src/layout/constants.ts.html +0 -169
  1154. package/coverage/lcov-report/src/layout/index.html +0 -146
  1155. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +0 -166
  1156. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +0 -220
  1157. package/coverage/lcov-report/src/layout/mainStyles.ts.html +0 -217
  1158. package/coverage/lcov-report/src/layout/navigationLinkStyles.ts.html +0 -250
  1159. package/coverage/lcov-report/src/layout/navigationRailStyles.ts.html +0 -148
  1160. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +0 -742
  1161. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +0 -349
  1162. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +0 -358
  1163. package/coverage/lcov-report/src/layout/useLayoutNavigation.ts.html +0 -544
  1164. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +0 -691
  1165. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +0 -496
  1166. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +0 -136
  1167. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +0 -535
  1168. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +0 -589
  1169. package/coverage/lcov-report/src/layout/utils.ts.html +0 -391
  1170. package/coverage/lcov-report/src/link/Link.tsx.html +0 -358
  1171. package/coverage/lcov-report/src/link/LinkProvider.tsx.html +0 -238
  1172. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +0 -448
  1173. package/coverage/lcov-report/src/link/index.html +0 -146
  1174. package/coverage/lcov-report/src/link/styles.ts.html +0 -238
  1175. package/coverage/lcov-report/src/list/List.tsx.html +0 -487
  1176. package/coverage/lcov-report/src/list/ListItem.tsx.html +0 -892
  1177. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +0 -286
  1178. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +0 -445
  1179. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +0 -616
  1180. package/coverage/lcov-report/src/list/ListItemText.tsx.html +0 -277
  1181. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +0 -319
  1182. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +0 -298
  1183. package/coverage/lcov-report/src/list/index.html +0 -116
  1184. package/coverage/lcov-report/src/list/listItemStyles.ts.html +0 -703
  1185. package/coverage/lcov-report/src/main-layout/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1186. package/coverage/lcov-report/src/main-layout/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1187. package/coverage/lcov-report/src/main-layout/Main.tsx.html +0 -298
  1188. package/coverage/lcov-report/src/main-layout/MainLayout.tsx.html +0 -619
  1189. package/coverage/lcov-report/src/main-layout/MainLayoutAppBar.tsx.html +0 -448
  1190. package/coverage/lcov-report/src/main-layout/MainLayoutNavigationButton.tsx.html +0 -295
  1191. package/coverage/lcov-report/src/main-layout/MainLayoutTitle.tsx.html +0 -184
  1192. package/coverage/lcov-report/src/main-layout/MainNavWindowSplitter.tsx.html +0 -427
  1193. package/coverage/lcov-report/src/main-layout/MainNavigation.tsx.html +0 -568
  1194. package/coverage/lcov-report/src/main-layout/MainNavigationTree.tsx.html +0 -115
  1195. package/coverage/lcov-report/src/main-layout/index.html +0 -296
  1196. package/coverage/lcov-report/src/main-layout/useLayoutNavigation.ts.html +0 -727
  1197. package/coverage/lcov-report/src/main-layout/useMainLayout.ts.html +0 -523
  1198. package/coverage/lcov-report/src/main-layout/useMainLayoutProvider.ts.html +0 -484
  1199. package/coverage/lcov-report/src/main-layout-current/DefaultLayoutNavigationItemRenderer.tsx.html +0 -169
  1200. package/coverage/lcov-report/src/main-layout-current/DefaultLayoutNavigationMiniItemRenderer.tsx.html +0 -160
  1201. package/coverage/lcov-report/src/main-layout-current/Main.tsx.html +0 -265
  1202. package/coverage/lcov-report/src/main-layout-current/MainLayout.tsx.html +0 -739
  1203. package/coverage/lcov-report/src/main-layout-current/MainLayoutAppBar.tsx.html +0 -352
  1204. package/coverage/lcov-report/src/main-layout-current/MainLayoutProvider.ts.html +0 -991
  1205. package/coverage/lcov-report/src/main-layout-current/MainLayoutTitle.tsx.html +0 -184
  1206. package/coverage/lcov-report/src/main-layout-current/MainNavWindowSplitter.tsx.html +0 -520
  1207. package/coverage/lcov-report/src/main-layout-current/MainNavigation.tsx.html +0 -586
  1208. package/coverage/lcov-report/src/main-layout-current/NavigationButton.tsx.html +0 -283
  1209. package/coverage/lcov-report/src/main-layout-current/index.html +0 -266
  1210. package/coverage/lcov-report/src/main-layout-current/useLayoutNavigation.ts.html +0 -727
  1211. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +0 -502
  1212. package/coverage/lcov-report/src/media-queries/appSize.ts.html +0 -445
  1213. package/coverage/lcov-report/src/media-queries/index.html +0 -146
  1214. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +0 -244
  1215. package/coverage/lcov-report/src/media-queries/useMinWidthMediaQuery.ts.html +0 -115
  1216. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +0 -976
  1217. package/coverage/lcov-report/src/menu/Menu.tsx.html +0 -1870
  1218. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +0 -442
  1219. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +0 -490
  1220. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +0 -637
  1221. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +0 -292
  1222. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +0 -580
  1223. package/coverage/lcov-report/src/menu/MenuItemCircularProgress.tsx.html +0 -433
  1224. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +0 -376
  1225. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +0 -226
  1226. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +0 -502
  1227. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +0 -370
  1228. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +0 -631
  1229. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +0 -190
  1230. package/coverage/lcov-report/src/menu/index.html +0 -116
  1231. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +0 -490
  1232. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +0 -349
  1233. package/coverage/lcov-report/src/menu/utils.ts.html +0 -271
  1234. package/coverage/lcov-report/src/movement/constants.ts.html +0 -193
  1235. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +0 -385
  1236. package/coverage/lcov-report/src/movement/index.html +0 -116
  1237. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +0 -1687
  1238. package/coverage/lcov-report/src/movement/utils.ts.html +0 -895
  1239. package/coverage/lcov-report/src/navigation/CollapsibleNavGroup.tsx.html +0 -367
  1240. package/coverage/lcov-report/src/navigation/DefaultNavigationRenderer.tsx.html +0 -325
  1241. package/coverage/lcov-report/src/navigation/NavGroup.tsx.html +0 -202
  1242. package/coverage/lcov-report/src/navigation/NavItem.tsx.html +0 -172
  1243. package/coverage/lcov-report/src/navigation/NavSubheader.tsx.html +0 -193
  1244. package/coverage/lcov-report/src/navigation/Navigation.tsx.html +0 -358
  1245. package/coverage/lcov-report/src/navigation/index.html +0 -191
  1246. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +0 -556
  1247. package/coverage/lcov-report/src/overlay/index.html +0 -131
  1248. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +0 -340
  1249. package/coverage/lcov-report/src/portal/Portal.tsx.html +0 -223
  1250. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +0 -367
  1251. package/coverage/lcov-report/src/portal/index.html +0 -131
  1252. package/coverage/lcov-report/src/positioning/constants.ts.html +0 -463
  1253. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +0 -610
  1254. package/coverage/lcov-report/src/positioning/index.html +0 -191
  1255. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +0 -1339
  1256. package/coverage/lcov-report/src/positioning/utils.ts.html +0 -1225
  1257. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +0 -799
  1258. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +0 -658
  1259. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +0 -160
  1260. package/coverage/lcov-report/src/progress/index.html +0 -146
  1261. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +0 -628
  1262. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +0 -385
  1263. package/coverage/lcov-report/src/responsive-item/index.html +0 -146
  1264. package/coverage/lcov-report/src/responsive-item/styles.ts.html +0 -259
  1265. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +0 -133
  1266. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +0 -181
  1267. package/coverage/lcov-report/src/scroll/index.html +0 -146
  1268. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +0 -241
  1269. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +0 -619
  1270. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +0 -277
  1271. package/coverage/lcov-report/src/segmented-button/index.html +0 -161
  1272. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +0 -160
  1273. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +0 -205
  1274. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +0 -397
  1275. package/coverage/lcov-report/src/sheet/index.html +0 -131
  1276. package/coverage/lcov-report/src/sheet/styles.ts.html +0 -376
  1277. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +0 -526
  1278. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +0 -628
  1279. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +0 -841
  1280. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +0 -298
  1281. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +0 -349
  1282. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +0 -364
  1283. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +0 -1786
  1284. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +0 -400
  1285. package/coverage/lcov-report/src/snackbar/index.html +0 -281
  1286. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +0 -214
  1287. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +0 -196
  1288. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +0 -268
  1289. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +0 -226
  1290. package/coverage/lcov-report/src/snackbar/useDefaultToastRenderer.ts.html +0 -85
  1291. package/coverage/lcov-report/src/snackbar/useDefaultToastRenderer.tsx.html +0 -394
  1292. package/coverage/lcov-report/src/snackbar/useRemoveToast.ts.html +0 -169
  1293. package/coverage/lcov-report/src/snackbar/useToast.ts.html +0 -184
  1294. package/coverage/lcov-report/src/snackbar/useToastRenderer.ts.html +0 -85
  1295. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +0 -283
  1296. package/coverage/lcov-report/src/suspense/NullSsrSuspense.tsx.html +0 -151
  1297. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +0 -202
  1298. package/coverage/lcov-report/src/suspense/index.html +0 -131
  1299. package/coverage/lcov-report/src/table/Table.tsx.html +0 -457
  1300. package/coverage/lcov-report/src/table/TableBody.tsx.html +0 -280
  1301. package/coverage/lcov-report/src/table/TableCell.tsx.html +0 -982
  1302. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +0 -436
  1303. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +0 -715
  1304. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +0 -484
  1305. package/coverage/lcov-report/src/table/TableContainer.tsx.html +0 -220
  1306. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +0 -193
  1307. package/coverage/lcov-report/src/table/TableFooter.tsx.html +0 -538
  1308. package/coverage/lcov-report/src/table/TableHeader.tsx.html +0 -565
  1309. package/coverage/lcov-report/src/table/TableRadio.tsx.html +0 -676
  1310. package/coverage/lcov-report/src/table/TableRow.tsx.html +0 -289
  1311. package/coverage/lcov-report/src/table/index.html +0 -371
  1312. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +0 -334
  1313. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +0 -142
  1314. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +0 -166
  1315. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +0 -172
  1316. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +0 -169
  1317. package/coverage/lcov-report/src/table/tableStyles.ts.html +0 -157
  1318. package/coverage/lcov-report/src/tabs/Tab.tsx.html +0 -622
  1319. package/coverage/lcov-report/src/tabs/TabList.tsx.html +0 -796
  1320. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +0 -490
  1321. package/coverage/lcov-report/src/tabs/index.html +0 -251
  1322. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +0 -187
  1323. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +0 -226
  1324. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +0 -241
  1325. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +0 -265
  1326. package/coverage/lcov-report/src/tabs/useTabList.ts.html +0 -736
  1327. package/coverage/lcov-report/src/tabs/useTabs.ts.html +0 -1567
  1328. package/coverage/lcov-report/src/tabs/useTabsOriginal.ts.html +0 -760
  1329. package/coverage/lcov-report/src/tabs/utils.ts.html +0 -337
  1330. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +0 -235
  1331. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +0 -1045
  1332. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +0 -112
  1333. package/coverage/lcov-report/src/test-utils/drag.ts.html +0 -337
  1334. package/coverage/lcov-report/src/test-utils/index.html +0 -116
  1335. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +0 -124
  1336. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +0 -679
  1337. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +0 -109
  1338. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +0 -100
  1339. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +0 -106
  1340. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +0 -100
  1341. package/coverage/lcov-report/src/test-utils/polyfills/index.html +0 -176
  1342. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +0 -109
  1343. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +0 -202
  1344. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +0 -112
  1345. package/coverage/lcov-report/src/test-utils/render.tsx.html +0 -220
  1346. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +0 -85
  1347. package/coverage/lcov-report/src/test-utils/timers.ts.html +0 -223
  1348. package/coverage/lcov-report/src/test-utils/utils.ts.html +0 -118
  1349. package/coverage/lcov-report/src/theme/ColorSchemeProvider.tsx.html +0 -811
  1350. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +0 -475
  1351. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +0 -1510
  1352. package/coverage/lcov-report/src/theme/colors.ts.html +0 -910
  1353. package/coverage/lcov-report/src/theme/cssVars.ts.html +0 -130
  1354. package/coverage/lcov-report/src/theme/index.html +0 -251
  1355. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +0 -622
  1356. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +0 -490
  1357. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +0 -244
  1358. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +0 -433
  1359. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +0 -121
  1360. package/coverage/lcov-report/src/theme/utils.ts.html +0 -670
  1361. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +0 -559
  1362. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +0 -409
  1363. package/coverage/lcov-report/src/tooltip/constants.ts.html +0 -208
  1364. package/coverage/lcov-report/src/tooltip/index.html +0 -206
  1365. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +0 -181
  1366. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +0 -364
  1367. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +0 -2095
  1368. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +0 -388
  1369. package/coverage/lcov-report/src/tooltip/utils.ts.html +0 -238
  1370. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +0 -358
  1371. package/coverage/lcov-report/src/transition/Collapse.tsx.html +0 -337
  1372. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +0 -436
  1373. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +0 -328
  1374. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +0 -613
  1375. package/coverage/lcov-report/src/transition/Slide.tsx.html +0 -367
  1376. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +0 -649
  1377. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +0 -184
  1378. package/coverage/lcov-report/src/transition/config.ts.html +0 -187
  1379. package/coverage/lcov-report/src/transition/constants.ts.html +0 -103
  1380. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +0 -157
  1381. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +0 -400
  1382. package/coverage/lcov-report/src/transition/useCarousel.ts.html +0 -835
  1383. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +0 -1384
  1384. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +0 -469
  1385. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +0 -205
  1386. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +0 -535
  1387. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +0 -958
  1388. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +0 -424
  1389. package/coverage/lcov-report/src/transition/useTransition.ts.html +0 -943
  1390. package/coverage/lcov-report/src/transition/utils.ts.html +0 -529
  1391. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +0 -313
  1392. package/coverage/lcov-report/src/tree/Tree.tsx.html +0 -1054
  1393. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +0 -367
  1394. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +0 -1006
  1395. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +0 -355
  1396. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +0 -679
  1397. package/coverage/lcov-report/src/tree/index.html +0 -116
  1398. package/coverage/lcov-report/src/tree/styles.ts.html +0 -538
  1399. package/coverage/lcov-report/src/tree/useTree.ts.html +0 -289
  1400. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +0 -241
  1401. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +0 -496
  1402. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +0 -700
  1403. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +0 -274
  1404. package/coverage/lcov-report/src/tree/utils.ts.html +0 -277
  1405. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +0 -328
  1406. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +0 -403
  1407. package/coverage/lcov-report/src/typography/Typography.tsx.html +0 -1027
  1408. package/coverage/lcov-report/src/typography/WritingDirection.tsx.html +0 -775
  1409. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +0 -781
  1410. package/coverage/lcov-report/src/typography/index.html +0 -161
  1411. package/coverage/lcov-report/src/useAsyncAction.ts.html +0 -685
  1412. package/coverage/lcov-report/src/useDebounced.ts.html +0 -190
  1413. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +0 -436
  1414. package/coverage/lcov-report/src/useDropzone.ts.html +0 -766
  1415. package/coverage/lcov-report/src/useElementSize.ts.html +0 -409
  1416. package/coverage/lcov-report/src/useEnsuredId.ts.html +0 -175
  1417. package/coverage/lcov-report/src/useEnsuredRef.ts.html +0 -253
  1418. package/coverage/lcov-report/src/useEnsuredState.ts.html +0 -235
  1419. package/coverage/lcov-report/src/useHtmlClassName.ts.html +0 -142
  1420. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +0 -1075
  1421. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +0 -130
  1422. package/coverage/lcov-report/src/useLocalStorage.ts.html +0 -1852
  1423. package/coverage/lcov-report/src/useLocalStorageEvents.ts.html +0 -85
  1424. package/coverage/lcov-report/src/useMediaQuery.ts.html +0 -241
  1425. package/coverage/lcov-report/src/useMinWidthMediaQuery.ts.html +0 -115
  1426. package/coverage/lcov-report/src/useMutationObserver.ts.html +0 -310
  1427. package/coverage/lcov-report/src/useOrientation.ts.html +0 -271
  1428. package/coverage/lcov-report/src/usePageInactive.ts.html +0 -448
  1429. package/coverage/lcov-report/src/useResizeListener.ts.html +0 -391
  1430. package/coverage/lcov-report/src/useResizeObserver.ts.html +0 -790
  1431. package/coverage/lcov-report/src/useThrottledFunction.ts.html +0 -484
  1432. package/coverage/lcov-report/src/useToggle.ts.html +0 -253
  1433. package/coverage/lcov-report/src/useUnmounted.ts.html +0 -217
  1434. package/coverage/lcov-report/src/useWindowSize.ts.html +0 -460
  1435. package/coverage/lcov-report/src/utils/RecursiveRender.tsx.html +0 -253
  1436. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +0 -790
  1437. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +0 -535
  1438. package/coverage/lcov-report/src/utils/applyRef.ts.html +0 -214
  1439. package/coverage/lcov-report/src/utils/bem.ts.html +0 -412
  1440. package/coverage/lcov-report/src/utils/filters.ts.html +0 -1318
  1441. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +0 -226
  1442. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +0 -163
  1443. package/coverage/lcov-report/src/utils/getPercentage.ts.html +0 -253
  1444. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +0 -169
  1445. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +0 -157
  1446. package/coverage/lcov-report/src/utils/getUseStateSetterValue.ts.html +0 -85
  1447. package/coverage/lcov-report/src/utils/identity.ts.html +0 -100
  1448. package/coverage/lcov-report/src/utils/index.html +0 -116
  1449. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +0 -214
  1450. package/coverage/lcov-report/src/utils/isValidNumber.ts.html +0 -118
  1451. package/coverage/lcov-report/src/utils/loop.ts.html +0 -262
  1452. package/coverage/lcov-report/src/utils/nearest.ts.html +0 -220
  1453. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +0 -280
  1454. package/coverage/lcov-report/src/utils/randomInt.ts.html +0 -148
  1455. package/coverage/lcov-report/src/utils/wait.ts.html +0 -139
  1456. package/coverage/lcov-report/src/utils/withinRange.ts.html +0 -184
  1457. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +0 -445
  1458. package/coverage/lcov-report/src/window-splitter/index.html +0 -131
  1459. package/coverage/lcov-report/src/window-splitter/useControlledWindowSplitter.ts.html +0 -562
  1460. package/coverage/lcov-report/src/window-splitter/useLocalStorageWindowSplitter.ts.html +0 -331
  1461. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +0 -508
  1462. package/coverage/lcov-report/src/window-splitter/useWindowSplitterDefault.ts.html +0 -466
  1463. package/coverage/lcov-report/src/window-splitter/useWindowSplitterMaxValue.ts.html +0 -256
  1464. package/coverage/lcov-report/styles.ts.html +0 -457
  1465. package/coverage/lcov-report/suspense/CircularProgressSuspense.tsx.html +0 -283
  1466. package/coverage/lcov-report/suspense/NullSuspense.tsx.html +0 -202
  1467. package/coverage/lcov-report/suspense/index.html +0 -131
  1468. package/coverage/lcov-report/switchStyles.ts.html +0 -172
  1469. package/coverage/lcov-report/tabIndicatorStyles.ts.html +0 -187
  1470. package/coverage/lcov-report/tabListScrollButtonStyles.ts.html +0 -226
  1471. package/coverage/lcov-report/tabListStyles.ts.html +0 -241
  1472. package/coverage/lcov-report/tabStyles.ts.html +0 -265
  1473. package/coverage/lcov-report/table/Table.tsx.html +0 -526
  1474. package/coverage/lcov-report/table/TableBody.tsx.html +0 -280
  1475. package/coverage/lcov-report/table/TableCell.tsx.html +0 -1180
  1476. package/coverage/lcov-report/table/TableCheckbox.tsx.html +0 -709
  1477. package/coverage/lcov-report/table/TableFooter.tsx.html +0 -508
  1478. package/coverage/lcov-report/table/TableHeader.tsx.html +0 -607
  1479. package/coverage/lcov-report/table/TableRadio.tsx.html +0 -670
  1480. package/coverage/lcov-report/table/TableRow.tsx.html +0 -370
  1481. package/coverage/lcov-report/table/index.html +0 -191
  1482. package/coverage/lcov-report/tableCellStyles.ts.html +0 -334
  1483. package/coverage/lcov-report/tableContainerStyles.ts.html +0 -142
  1484. package/coverage/lcov-report/tableFooterStyles.ts.html +0 -157
  1485. package/coverage/lcov-report/tableHeaderStyles.ts.html +0 -163
  1486. package/coverage/lcov-report/tableRowStyles.ts.html +0 -169
  1487. package/coverage/lcov-report/tableStyles.ts.html +0 -157
  1488. package/coverage/lcov-report/tabs/Tab.tsx.html +0 -592
  1489. package/coverage/lcov-report/tabs/TabList.tsx.html +0 -796
  1490. package/coverage/lcov-report/tabs/TabListScrollButton.tsx.html +0 -472
  1491. package/coverage/lcov-report/tabs/index.html +0 -206
  1492. package/coverage/lcov-report/tabs/tabIndicatorStyles.ts.html +0 -187
  1493. package/coverage/lcov-report/tabs/tabListStyles.ts.html +0 -241
  1494. package/coverage/lcov-report/tabs/tabStyles.ts.html +0 -253
  1495. package/coverage/lcov-report/tabs/useTabList.ts.html +0 -736
  1496. package/coverage/lcov-report/tabs/useTabs.ts.html +0 -1567
  1497. package/coverage/lcov-report/tabs/utils.ts.html +0 -337
  1498. package/coverage/lcov-report/test-utils/index.html +0 -116
  1499. package/coverage/lcov-report/test-utils/jest-setup.ts.html +0 -124
  1500. package/coverage/lcov-report/test-utils/matchMedia.ts.html +0 -667
  1501. package/coverage/lcov-report/test-utils/polyfills/index.html +0 -116
  1502. package/coverage/lcov-report/test-utils/polyfills/matchMedia.ts.html +0 -109
  1503. package/coverage/lcov-report/test-utils/polyfills/offsetParent.ts.html +0 -202
  1504. package/coverage/lcov-report/test-utils/use.ts.html +0 -187
  1505. package/coverage/lcov-report/theme/ColorSchemeProvider.tsx.html +0 -811
  1506. package/coverage/lcov-report/theme/LocalStorageColorSchemeProvider.tsx.html +0 -268
  1507. package/coverage/lcov-report/theme/ThemeProvider.tsx.html +0 -1453
  1508. package/coverage/lcov-report/theme/cssVars.ts.html +0 -130
  1509. package/coverage/lcov-report/theme/index.html +0 -191
  1510. package/coverage/lcov-report/theme/useColorScheme.ts.html +0 -475
  1511. package/coverage/lcov-report/theme/useColorSchemeMetaTag.ts.html +0 -175
  1512. package/coverage/lcov-report/theme/useColorSchemeProvider.ts.html +0 -244
  1513. package/coverage/lcov-report/theme/usePrefersColorScheme.ts.html +0 -103
  1514. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +0 -559
  1515. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +0 -409
  1516. package/coverage/lcov-report/tooltip/constants.ts.html +0 -208
  1517. package/coverage/lcov-report/tooltip/index.html +0 -116
  1518. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +0 -181
  1519. package/coverage/lcov-report/tooltip/useOverflowTooltip.ts.html +0 -364
  1520. package/coverage/lcov-report/tooltip/useTooltip.ts.html +0 -2095
  1521. package/coverage/lcov-report/tooltipStyles.ts.html +0 -181
  1522. package/coverage/lcov-report/transition/SkeletonPlaceholder.tsx.html +0 -595
  1523. package/coverage/lcov-report/transition/config.ts.html +0 -187
  1524. package/coverage/lcov-report/transition/maxWidthTransition.ts.html +0 -157
  1525. package/coverage/lcov-report/transition/skeletonPlaceholderUtils.ts.html +0 -400
  1526. package/coverage/lcov-report/transition/useMaxWidthTransition.ts.html +0 -199
  1527. package/coverage/lcov-report/transition/useScaleTransition.ts.html +0 -535
  1528. package/coverage/lcov-report/transition/useSkeletonPlaceholder.ts.html +0 -952
  1529. package/coverage/lcov-report/transition/useTransition.ts.html +0 -943
  1530. package/coverage/lcov-report/tree/DefaultTreeItemRenderer.tsx.html +0 -301
  1531. package/coverage/lcov-report/tree/Tree.tsx.html +0 -1054
  1532. package/coverage/lcov-report/tree/TreeGroup.tsx.html +0 -370
  1533. package/coverage/lcov-report/tree/TreeItem.tsx.html +0 -1006
  1534. package/coverage/lcov-report/tree/TreeItemExpander.tsx.html +0 -328
  1535. package/coverage/lcov-report/tree/TreeProvider.tsx.html +0 -679
  1536. package/coverage/lcov-report/tree/index.html +0 -116
  1537. package/coverage/lcov-report/tree/styles.ts.html +0 -538
  1538. package/coverage/lcov-report/tree/useTree.ts.html +0 -289
  1539. package/coverage/lcov-report/tree/useTreeExpansion.ts.html +0 -241
  1540. package/coverage/lcov-report/tree/useTreeItems.ts.html +0 -496
  1541. package/coverage/lcov-report/tree/useTreeMovement.ts.html +0 -700
  1542. package/coverage/lcov-report/tree/useTreeSelection.ts.html +0 -274
  1543. package/coverage/lcov-report/tree/utils.ts.html +0 -277
  1544. package/coverage/lcov-report/typography/TextContainer.tsx.html +0 -433
  1545. package/coverage/lcov-report/typography/Typography.tsx.html +0 -1027
  1546. package/coverage/lcov-report/typography/WritingDirection.tsx.html +0 -775
  1547. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +0 -781
  1548. package/coverage/lcov-report/useAutoComplete.ts.html +0 -787
  1549. package/coverage/lcov-report/useCollapseTransition.ts.html +0 -1384
  1550. package/coverage/lcov-report/useCombobox.ts.html +0 -1513
  1551. package/coverage/lcov-report/useDraggable.ts.html +0 -2458
  1552. package/coverage/lcov-report/useDropzone.ts.html +0 -763
  1553. package/coverage/lcov-report/useEnsuredRef.ts.html +0 -250
  1554. package/coverage/lcov-report/useExpandableLayout.ts.html +0 -802
  1555. package/coverage/lcov-report/useExpansionPanels.ts.html +0 -913
  1556. package/coverage/lcov-report/useHigherContrastChildren.tsx.html +0 -355
  1557. package/coverage/lcov-report/useInlineAutoComplete.ts.html +0 -379
  1558. package/coverage/lcov-report/useLayoutTree.ts.html +0 -691
  1559. package/coverage/lcov-report/useLocalStorage.ts.html +0 -1828
  1560. package/coverage/lcov-report/useMinWidthMediaQuery.ts.html +0 -115
  1561. package/coverage/lcov-report/useMutationObserver.ts.html +0 -310
  1562. package/coverage/lcov-report/useRemoveToast.ts.html +0 -160
  1563. package/coverage/lcov-report/useResizeObserver.ts.html +0 -874
  1564. package/coverage/lcov-report/useResizingTextArea.ts.html +0 -523
  1565. package/coverage/lcov-report/useSelectCombobox.ts.html +0 -295
  1566. package/coverage/lcov-report/useSkeletonPlaceholder.ts.html +0 -952
  1567. package/coverage/lcov-report/useTabList.ts.html +0 -736
  1568. package/coverage/lcov-report/useTabs.ts.html +0 -757
  1569. package/coverage/lcov-report/useThrottledFunction.ts.html +0 -475
  1570. package/coverage/lcov-report/useTooltip.ts.html +0 -2041
  1571. package/coverage/lcov-report/useTransition.ts.html +0 -934
  1572. package/coverage/lcov-report/useTree.ts.html +0 -286
  1573. package/coverage/lcov-report/useWindowSplitter.ts.html +0 -640
  1574. package/coverage/lcov-report/useWindowSplitterMaxValue.ts.html +0 -256
  1575. package/coverage/lcov-report/utils/RecursiveRender.tsx.html +0 -253
  1576. package/coverage/lcov-report/utils/RenderRecursively.tsx.html +0 -688
  1577. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +0 -496
  1578. package/coverage/lcov-report/utils/caseInsensitiveFilter.ts.html +0 -397
  1579. package/coverage/lcov-report/utils/filters.ts.html +0 -1318
  1580. package/coverage/lcov-report/utils/fuzzyFilter.ts.html +0 -241
  1581. package/coverage/lcov-report/utils/index.html +0 -116
  1582. package/coverage/lcov-report/utils/isElementVisible.ts.html +0 -211
  1583. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +0 -280
  1584. package/coverage/lcov-report/utils/randomInt.ts.html +0 -148
  1585. package/coverage/lcov-report/utils/searching.ts.html +0 -85
  1586. package/coverage/lcov-report/utils/wait.ts.html +0 -139
  1587. package/coverage/lcov-report/wait.ts.html +0 -139
  1588. package/coverage/lcov-report/window-splitter/WindowSplitter.tsx.html +0 -448
  1589. package/coverage/lcov-report/window-splitter/index.html +0 -116
  1590. package/coverage/lcov-report/window-splitter/useControlledWindowSplitter.ts.html +0 -562
  1591. package/coverage/lcov-report/window-splitter/useLocalStorageWindowSplitter.ts.html +0 -331
  1592. package/coverage/lcov-report/window-splitter/useWindowSplitter.ts.html +0 -640
  1593. package/coverage/lcov-report/window-splitter/useWindowSplitterDefault.ts.html +0 -466
  1594. package/coverage/lcov-report/window-splitter/useWindowSplitterOrig.ts.html +0 -598
  1595. package/dist/useAsyncAction.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuItemGroup.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { List, type ListElement, type ListProps } from \"../list/List.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @since 5.0.0 */\nexport type MenuItemGroupProps = LabelRequiredForA11y<\n Omit<ListProps, \"role\">\n> & {\n children: ReactNode;\n};\n\n/**\n * **Client Component**\n *\n * If a menu or menubar contains more than one group of menuitemradio elements,\n * or if the menu contains one group and other, unrelated menu items, authors\n * SHOULD nest each set of related menuitemradio elements in an element using\n * the group role, and authors SHOULD delimit the group from other menu items\n * with an element using the separator role.\n *\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio}\n *\n * @example Simple Example\n * ```tsx\n * import { ReactElement, useState } from \"react\";\n * import {\n * DropdownMenu,\n * MenuItemGroup,\n * MenuItemRadio,\n * MenuItemSeparator,\n * MenuItemSwitch,\n * } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState(\"value1\");\n * const [checked, setChecked] = useState(false);\n *\n * return (\n * <DropdownMenu id=\"dropdown-menu-id\" buttonChildren=\"Button\">\n * <MenuItemSwitch\n * id=\"switch-id\"\n * checked={checked}\n * onCheckedChange={nextChecked => setChecked(nextChecked)}\n * >\n * Light mode\n * </MenuItemSwitch>\n * <MenuItemSeparator />\n * <MenuItemGroup aria-label=\"My Group Label\">\n * <MenuItemRadio\n * id=\"radio-1\"\n * checked={value === \"value1\"}\n * onCheckedChange={() => setValue(\"value1\")}\n * >\n * Radio 1\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-2\"\n * checked={value === \"value2\"}\n * onCheckedChange={() => setValue(\"value2\")}\n * >\n * Radio 2\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-3\"\n * checked={value === \"value3\"}\n * onCheckedChange={() => setValue(\"value3\")}\n * >\n * Radio 3\n * </MenuItemRadio>\n * </MenuItemGroup>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n */\nexport const MenuItemGroup = forwardRef<ListElement, MenuItemGroupProps>(\n function MenuItemGroup({ children, className, ...props }, ref) {\n const { horizontal } = useMenuConfiguration(props);\n return (\n <List\n {...props}\n ref={ref}\n role=\"group\"\n className={cnb(\"rmd-menu-item-group\", className)}\n horizontal={horizontal}\n >\n {children}\n </List>\n );\n }\n);\n"],"names":["cnb","forwardRef","List","useMenuConfiguration","MenuItemGroup","children","className","props","ref","horizontal","role"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAwB,QAAQ;AACnD,SAASC,IAAI,QAA0C,kBAAkB;AAEzE,SAASC,oBAAoB,QAAQ,iCAAiC;AAStE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEC,GACD,OAAO,MAAMC,8BAAgBH,WAC3B,SAASG,cAAc,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,OAAO,EAAEC,GAAG;IAC3D,MAAM,EAAEC,UAAU,EAAE,GAAGN,qBAAqBI;IAC5C,qBACE,KAACL;QACE,GAAGK,KAAK;QACTC,KAAKA;QACLE,MAAK;QACLJ,WAAWN,IAAI,uBAAuBM;QACtCG,YAAYA;kBAEXJ;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/menu/MenuItemGroup.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { List, type ListElement, type ListProps } from \"../list/List.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @since 5.0.0 */\nexport type MenuItemGroupProps = LabelRequiredForA11y<\n Omit<ListProps, \"role\">\n> & {\n children: ReactNode;\n};\n\n/**\n * **Client Component**\n *\n * If a menu or menubar contains more than one group of menuitemradio elements,\n * or if the menu contains one group and other, unrelated menu items, authors\n * SHOULD nest each set of related menuitemradio elements in an element using\n * the group role, and authors SHOULD delimit the group from other menu items\n * with an element using the separator role.\n *\n * @see {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio}\n *\n * @example Simple Example\n * ```tsx\n * import { ReactElement, useState } from \"react\";\n * import {\n * DropdownMenu,\n * MenuItemGroup,\n * MenuItemRadio,\n * MenuItemSeparator,\n * MenuItemSwitch,\n * } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const [value, setValue] = useState(\"value1\");\n * const [checked, setChecked] = useState(false);\n *\n * return (\n * <DropdownMenu id=\"dropdown-menu-id\" buttonChildren=\"Button\">\n * <MenuItemSwitch\n * id=\"switch-id\"\n * checked={checked}\n * onCheckedChange={nextChecked => setChecked(nextChecked)}\n * >\n * Light mode\n * </MenuItemSwitch>\n * <MenuItemSeparator />\n * <MenuItemGroup aria-label=\"My Group Label\">\n * <MenuItemRadio\n * id=\"radio-1\"\n * checked={value === \"value1\"}\n * onCheckedChange={() => setValue(\"value1\")}\n * >\n * Radio 1\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-2\"\n * checked={value === \"value2\"}\n * onCheckedChange={() => setValue(\"value2\")}\n * >\n * Radio 2\n * </MenuItemRadio>\n * <MenuItemRadio\n * id=\"radio-3\"\n * checked={value === \"value3\"}\n * onCheckedChange={() => setValue(\"value3\")}\n * >\n * Radio 3\n * </MenuItemRadio>\n * </MenuItemGroup>\n * </DropdownMenu>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n */\nexport const MenuItemGroup = forwardRef<ListElement, MenuItemGroupProps>(\n function MenuItemGroup({ children, className, ...props }, ref) {\n const { horizontal } = useMenuConfiguration(props);\n return (\n <List\n {...props}\n ref={ref}\n role=\"group\"\n className={cnb(\"rmd-menu-item-group\", className)}\n horizontal={horizontal}\n >\n {children}\n </List>\n );\n }\n);\n"],"names":["cnb","forwardRef","List","useMenuConfiguration","MenuItemGroup","children","className","props","ref","horizontal","role"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAwB,QAAQ;AACnD,SAASC,IAAI,QAA0C,kBAAkB;AAEzE,SAASC,oBAAoB,QAAQ,iCAAiC;AAStE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEC,GACD,OAAO,MAAMC,8BAAgBH,WAC3B,SAASG,cAAc,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,OAAO,EAAEC,GAAG;IAC3D,MAAM,EAAEC,UAAU,EAAE,GAAGN,qBAAqBI;IAC5C,qBACE,KAACL;QACE,GAAGK,KAAK;QACTC,KAAKA;QACLE,MAAK;QACLJ,WAAWN,IAAI,uBAAuBM;QACtCG,YAAYA;kBAEXJ;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuItemSeparator.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type DividerProps } from \"../divider/Divider.js\";\nimport { divider } from \"../divider/styles.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @since 5.0.0 */\nexport interface MenuItemSeparatorProps\n extends HTMLAttributes<HTMLLIElement>,\n Pick<DividerProps, \"inset\" | \"vertical\"> {}\n\n/**\n * **Client Component**\n *\n * This component renders a `<li role=\"separator\">` with the divider styles. It\n * will also automatically render itself vertically instead of horizontally if\n * the menu is rendering horizontally.\n *\n * @since 5.0.0 Renders as an `<li>` instead of a `<div>` or `<hr />`.\n */\nexport const MenuItemSeparator = forwardRef<\n HTMLLIElement,\n MenuItemSeparatorProps\n>(function MenuItemSeparator(props, ref) {\n const {\n className,\n inset,\n vertical: propVertical,\n children,\n ...remaining\n } = props;\n\n const horizontal = useMenuConfiguration().horizontal;\n const vertical = propVertical ?? horizontal;\n\n return (\n <li\n {...remaining}\n aria-orientation={vertical ? \"vertical\" : undefined}\n ref={ref}\n role=\"separator\"\n className={divider({ inset: inset && !vertical, vertical, className })}\n >\n {children}\n </li>\n );\n});\n"],"names":["forwardRef","divider","useMenuConfiguration","MenuItemSeparator","props","ref","className","inset","vertical","propVertical","children","remaining","horizontal","li","aria-orientation","undefined","role"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AAExD,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,oBAAoB,QAAQ,iCAAiC;AAOtE;;;;;;;;CAQC,GACD,OAAO,MAAMC,kCAAoBH,WAG/B,SAASG,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EACJC,SAAS,EACTC,KAAK,EACLC,UAAUC,YAAY,EACtBC,QAAQ,EACR,GAAGC,WACJ,GAAGP;IAEJ,MAAMQ,aAAaV,uBAAuBU,UAAU;IACpD,MAAMJ,WAAWC,gBAAgBG;IAEjC,qBACE,KAACC;QACE,GAAGF,SAAS;QACbG,oBAAkBN,WAAW,aAAaO;QAC1CV,KAAKA;QACLW,MAAK;QACLV,WAAWL,QAAQ;YAAEM,OAAOA,SAAS,CAACC;YAAUA;YAAUF;QAAU;kBAEnEI;;AAGP,GAAG"}
1
+ {"version":3,"sources":["../../src/menu/MenuItemSeparator.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type DividerProps } from \"../divider/Divider.js\";\nimport { divider } from \"../divider/styles.js\";\nimport { useMenuConfiguration } from \"./MenuConfigurationProvider.js\";\n\n/** @since 5.0.0 */\nexport interface MenuItemSeparatorProps\n extends HTMLAttributes<HTMLLIElement>,\n Pick<DividerProps, \"inset\" | \"vertical\"> {}\n\n/**\n * **Client Component**\n *\n * This component renders a `<li role=\"separator\">` with the divider styles. It\n * will also automatically render itself vertically instead of horizontally if\n * the menu is rendering horizontally.\n *\n * @since 5.0.0 Renders as an `<li>` instead of a `<div>` or `<hr />`.\n */\nexport const MenuItemSeparator = forwardRef<\n HTMLLIElement,\n MenuItemSeparatorProps\n>(function MenuItemSeparator(props, ref) {\n const {\n className,\n inset,\n vertical: propVertical,\n children,\n ...remaining\n } = props;\n\n const horizontal = useMenuConfiguration().horizontal;\n const vertical = propVertical ?? horizontal;\n\n return (\n <li\n {...remaining}\n aria-orientation={vertical ? \"vertical\" : undefined}\n ref={ref}\n role=\"separator\"\n className={divider({ inset: inset && !vertical, vertical, className })}\n >\n {children}\n </li>\n );\n});\n"],"names":["forwardRef","divider","useMenuConfiguration","MenuItemSeparator","props","ref","className","inset","vertical","propVertical","children","remaining","horizontal","li","aria-orientation","undefined","role"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AAExD,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,oBAAoB,QAAQ,iCAAiC;AAOtE;;;;;;;;CAQC,GACD,OAAO,MAAMC,kCAAoBH,WAG/B,SAASG,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EACJC,SAAS,EACTC,KAAK,EACLC,UAAUC,YAAY,EACtBC,QAAQ,EACR,GAAGC,WACJ,GAAGP;IAEJ,MAAMQ,aAAaV,uBAAuBU,UAAU;IACpD,MAAMJ,WAAWC,gBAAgBG;IAEjC,qBACE,KAACC;QACE,GAAGF,SAAS;QACbG,oBAAkBN,WAAW,aAAaO;QAC1CV,KAAKA;QACLW,MAAK;QACLV,WAAWL,QAAQ;YAAEM,OAAOA,SAAS,CAACC;YAAUA;YAAUF;QAAU;kBAEnEI;;AAGP,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuSheet.tsx"],"sourcesContent":["\"use client\";\nimport { type CSSProperties, type ReactElement, type ReactNode } from \"react\";\nimport { Sheet, type BaseSheetProps } from \"../sheet/Sheet.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { type RenderMenuAsSheet } from \"./MenuConfigurationProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport type MenuSheetConfigurableProps = Omit<\n BaseSheetProps,\n \"visible\" | \"onRequestClose\"\n>;\n\n/**\n * @since 6.0.0\n */\nexport interface MenuSheetConvenienceProps {\n /**\n * This can be used to apply additional props to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n *\n * Note: You can override the `style` and `className` using\n * {@link sheetStyle} and {@link sheetClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <Menu\n * {...props}\n * sheetProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * horizontalSize: \"touch\",\n * }}\n * />\n * ```\n */\n sheetProps?: PropsWithRef<MenuSheetConfigurableProps, HTMLDivElement>;\n\n /**\n * Convenience prop to apply custom style to the `Sheet` component when the\n * `Menu` is being rendered as a `Sheet`.\n */\n sheetStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n */\n sheetClassName?: string;\n}\n\n/**\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Updated to use the latest menu API.\n */\nexport interface MenuSheetProps extends BaseSheetProps {\n /** {@inheritDoc MenuConfiguration.sheetHeader} */\n header?: ReactNode;\n /** {@inheritDoc MenuConfiguration.sheetFooter} */\n footer?: ReactNode;\n children: ReactNode;\n\n /** @since 6.0.0 */\n enabled: RenderMenuAsSheet;\n}\n\n/**\n * **Client Component**\n *\n * Implements a `Menu` using the `Sheet` component that probably shouldn't\n * really be used externally.\n *\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Added the `enabled` prop and does not render a custom `Menu`\n * implementation.\n */\nexport function MenuSheet(\n props: LabelRequiredForA11y<MenuSheetProps>\n): ReactElement {\n const {\n header,\n footer,\n children,\n onClick = noop,\n overlayProps,\n enabled,\n ...remaining\n } = props;\n const { onRequestClose } = props;\n\n if (!enabled) {\n return <>{children}</>;\n }\n\n return (\n <Sheet\n {...remaining}\n onClick={(event) => {\n onClick(event);\n\n // Prevent closing parent sheet/menus if an element in the header or\n // footer is clicked\n if (\n !(event.target instanceof HTMLElement) ||\n event.target\n .closest('.rmd-menu,[role=\"dialog\"]')\n ?.getAttribute(\"role\") === \"dialog\"\n ) {\n event.stopPropagation();\n }\n }}\n overlayProps={{\n ...overlayProps,\n onClick: (event) => {\n overlayProps?.onClick?.(event);\n\n // prevent closing parent menus if the overlay element is clicked.\n event.stopPropagation();\n onRequestClose();\n },\n }}\n >\n {header}\n {children}\n {footer}\n </Sheet>\n );\n}\n"],"names":["Sheet","noop","MenuSheet","props","header","footer","children","onClick","overlayProps","enabled","remaining","onRequestClose","event","target","HTMLElement","closest","getAttribute","stopPropagation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAEA,SAASA,KAAK,QAA6B,oBAAoB;AAI/D,MAAMC,OAAO;AACX,aAAa;AACf;AAkEA;;;;;;;;;;CAUC,GACD,OAAO,SAASC,UACdC,KAA2C;IAE3C,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,UAAUN,IAAI,EACdO,YAAY,EACZC,OAAO,EACP,GAAGC,WACJ,GAAGP;IACJ,MAAM,EAAEQ,cAAc,EAAE,GAAGR;IAE3B,IAAI,CAACM,SAAS;QACZ,qBAAO;sBAAGH;;IACZ;IAEA,qBACE,MAACN;QACE,GAAGU,SAAS;QACbH,SAAS,CAACK;YACRL,QAAQK;YAER,oEAAoE;YACpE,oBAAoB;YACpB,IACE,CAAEA,CAAAA,MAAMC,MAAM,YAAYC,WAAU,KACpCF,MAAMC,MAAM,CACTE,OAAO,CAAC,8BACPC,aAAa,YAAY,UAC7B;gBACAJ,MAAMK,eAAe;YACvB;QACF;QACAT,cAAc;YACZ,GAAGA,YAAY;YACfD,SAAS,CAACK;gBACRJ,cAAcD,UAAUK;gBAExB,kEAAkE;gBAClEA,MAAMK,eAAe;gBACrBN;YACF;QACF;;YAECP;YACAE;YACAD;;;AAGP"}
1
+ {"version":3,"sources":["../../src/menu/MenuSheet.tsx"],"sourcesContent":["\"use client\";\nimport { type CSSProperties, type ReactElement, type ReactNode } from \"react\";\nimport { Sheet, type BaseSheetProps } from \"../sheet/Sheet.js\";\nimport { type LabelRequiredForA11y, type PropsWithRef } from \"../types.js\";\nimport { type RenderMenuAsSheet } from \"./MenuConfigurationProvider.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport type MenuSheetConfigurableProps = Omit<\n BaseSheetProps,\n \"visible\" | \"onRequestClose\"\n>;\n\n/**\n * @since 6.0.0\n */\nexport interface MenuSheetConvenienceProps {\n /**\n * This can be used to apply additional props to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n *\n * Note: You can override the `style` and `className` using\n * {@link sheetStyle} and {@link sheetClassName} instead for convenience.\n *\n * @example\n * ```tsx\n * <Menu\n * {...props}\n * sheetProps={{\n * style: {\n * // custom inline style\n * },\n * className: \"come-class-name\",\n * horizontalSize: \"touch\",\n * }}\n * />\n * ```\n */\n sheetProps?: PropsWithRef<MenuSheetConfigurableProps, HTMLDivElement>;\n\n /**\n * Convenience prop to apply custom style to the `Sheet` component when the\n * `Menu` is being rendered as a `Sheet`.\n */\n sheetStyle?: CSSProperties;\n\n /**\n * Convenience prop to apply custom class name to the `Sheet` component when\n * the `Menu` is being rendered as a `Sheet`.\n */\n sheetClassName?: string;\n}\n\n/**\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Updated to use the latest menu API.\n */\nexport interface MenuSheetProps extends BaseSheetProps {\n /** {@inheritDoc MenuConfiguration.sheetHeader} */\n header?: ReactNode;\n /** {@inheritDoc MenuConfiguration.sheetFooter} */\n footer?: ReactNode;\n children: ReactNode;\n\n /** @since 6.0.0 */\n enabled: RenderMenuAsSheet;\n}\n\n/**\n * **Client Component**\n *\n * Implements a `Menu` using the `Sheet` component that probably shouldn't\n * really be used externally.\n *\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Added the `enabled` prop and does not render a custom `Menu`\n * implementation.\n */\nexport function MenuSheet(\n props: LabelRequiredForA11y<MenuSheetProps>\n): ReactElement {\n const {\n header,\n footer,\n children,\n onClick = noop,\n overlayProps,\n enabled,\n ...remaining\n } = props;\n const { onRequestClose } = props;\n\n if (!enabled) {\n return <>{children}</>;\n }\n\n return (\n <Sheet\n {...remaining}\n onClick={(event) => {\n onClick(event);\n\n // Prevent closing parent sheet/menus if an element in the header or\n // footer is clicked\n if (\n !(event.target instanceof HTMLElement) ||\n event.target\n .closest('.rmd-menu,[role=\"dialog\"]')\n ?.getAttribute(\"role\") === \"dialog\"\n ) {\n event.stopPropagation();\n }\n }}\n overlayProps={{\n ...overlayProps,\n onClick: (event) => {\n overlayProps?.onClick?.(event);\n\n // prevent closing parent menus if the overlay element is clicked.\n event.stopPropagation();\n onRequestClose();\n },\n }}\n >\n {header}\n {children}\n {footer}\n </Sheet>\n );\n}\n"],"names":["Sheet","noop","MenuSheet","props","header","footer","children","onClick","overlayProps","enabled","remaining","onRequestClose","event","target","HTMLElement","closest","getAttribute","stopPropagation"],"mappings":"AAAA;;AAEA,SAASA,KAAK,QAA6B,oBAAoB;AAI/D,MAAMC,OAAO;AACX,aAAa;AACf;AAkEA;;;;;;;;;;CAUC,GACD,OAAO,SAASC,UACdC,KAA2C;IAE3C,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,UAAUN,IAAI,EACdO,YAAY,EACZC,OAAO,EACP,GAAGC,WACJ,GAAGP;IACJ,MAAM,EAAEQ,cAAc,EAAE,GAAGR;IAE3B,IAAI,CAACM,SAAS;QACZ,qBAAO;sBAAGH;;IACZ;IAEA,qBACE,MAACN;QACE,GAAGU,SAAS;QACbH,SAAS,CAACK;YACRL,QAAQK;YAER,oEAAoE;YACpE,oBAAoB;YACpB,IACE,CAAEA,CAAAA,MAAMC,MAAM,YAAYC,WAAU,KACpCF,MAAMC,MAAM,CACTE,OAAO,CAAC,8BACPC,aAAa,YAAY,UAC7B;gBACAJ,MAAMK,eAAe;YACvB;QACF;QACAT,cAAc;YACZ,GAAGA,YAAY;YACfD,SAAS,CAACK;gBACRJ,cAAcD,UAAUK;gBAExB,kEAAkE;gBAClEA,MAAMK,eAAe;gBACrBN;YACF;QACF;;YAECP;YACAE;YACAD;;;AAGP"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuVisibilityProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type NonNullMutableRef, type UseStateObject } from \"../types.js\";\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Added the `defaultFocusIndex` ref.\n */\nexport interface MenuVisibilityContext\n extends UseStateObject<\"visible\", boolean> {\n defaultFocusIndex: NonNullMutableRef<number>;\n}\n\n/**\n * @internal\n * @since 5.0.0\n */\nconst context = createContext<MenuVisibilityContext>({\n visible: false,\n setVisible() {\n throw new Error('\"MenuVisibilityProvider\" must be a parent component');\n },\n defaultFocusIndex: { current: 0 },\n});\ncontext.displayName = \"MenuVisibility\";\n\n/**\n * @internal\n * @since 5.0.0\n */\nconst { Provider } = context;\n\n/**\n * This hook allows you control the visibility of a parent menu. The main\n * use-case for this hook is adding a custom sheet header/footer.\n *\n * @example Simple Example\n * ```tsx\n * function SheetFooter(): ReactElement {\n * const { setVisible } = useMenuVisibility();\n *\n * return (\n * <DialogFooter>\n * <Button onClick={() => setVisible(false)}>Cancel</Button>\n * </DialogFooter>\n * );\n * }\n * ```\n *\n * @returns the {@link MenuVisibilityContext}\n * @since 5.0.0\n */\nexport function useMenuVisibility(): Readonly<MenuVisibilityContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @since 5.0.0\n */\nexport interface MenuVisibilityProviderProps extends MenuVisibilityContext {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @internal\n * @since 5.0.0\n */\nexport function MenuVisibilityProvider({\n visible,\n setVisible,\n defaultFocusIndex,\n children,\n}: MenuVisibilityProviderProps): ReactElement {\n const value = useMemo<MenuVisibilityContext>(\n () => ({\n visible,\n setVisible,\n defaultFocusIndex,\n }),\n [visible, setVisible, defaultFocusIndex]\n );\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","context","visible","setVisible","Error","defaultFocusIndex","current","displayName","Provider","useMenuVisibility","MenuVisibilityProvider","children","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AAYf;;;CAGC,GACD,MAAMC,wBAAUH,cAAqC;IACnDI,SAAS;IACTC;QACE,MAAM,IAAIC,MAAM;IAClB;IACAC,mBAAmB;QAAEC,SAAS;IAAE;AAClC;AACAL,QAAQM,WAAW,GAAG;AAEtB;;;CAGC,GACD,MAAM,EAAEC,QAAQ,EAAE,GAAGP;AAErB;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASQ;IACd,OAAOV,WAAWE;AACpB;AAUA;;;;;CAKC,GACD,OAAO,SAASS,uBAAuB,EACrCR,OAAO,EACPC,UAAU,EACVE,iBAAiB,EACjBM,QAAQ,EACoB;IAC5B,MAAMC,QAAQZ,QACZ,IAAO,CAAA;YACLE;YACAC;YACAE;QACF,CAAA,GACA;QAACH;QAASC;QAAYE;KAAkB;IAG1C,qBAAO,KAACG;QAASI,OAAOA;kBAAQD;;AAClC"}
1
+ {"version":3,"sources":["../../src/menu/MenuVisibilityProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { type NonNullMutableRef, type UseStateObject } from \"../types.js\";\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Added the `defaultFocusIndex` ref.\n */\nexport interface MenuVisibilityContext\n extends UseStateObject<\"visible\", boolean> {\n defaultFocusIndex: NonNullMutableRef<number>;\n}\n\n/**\n * @internal\n * @since 5.0.0\n */\nconst context = createContext<MenuVisibilityContext>({\n visible: false,\n setVisible() {\n throw new Error('\"MenuVisibilityProvider\" must be a parent component');\n },\n defaultFocusIndex: { current: 0 },\n});\ncontext.displayName = \"MenuVisibility\";\n\n/**\n * @internal\n * @since 5.0.0\n */\nconst { Provider } = context;\n\n/**\n * This hook allows you control the visibility of a parent menu. The main\n * use-case for this hook is adding a custom sheet header/footer.\n *\n * @example Simple Example\n * ```tsx\n * function SheetFooter(): ReactElement {\n * const { setVisible } = useMenuVisibility();\n *\n * return (\n * <DialogFooter>\n * <Button onClick={() => setVisible(false)}>Cancel</Button>\n * </DialogFooter>\n * );\n * }\n * ```\n *\n * @returns the {@link MenuVisibilityContext}\n * @since 5.0.0\n */\nexport function useMenuVisibility(): Readonly<MenuVisibilityContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @since 5.0.0\n */\nexport interface MenuVisibilityProviderProps extends MenuVisibilityContext {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @internal\n * @since 5.0.0\n */\nexport function MenuVisibilityProvider({\n visible,\n setVisible,\n defaultFocusIndex,\n children,\n}: MenuVisibilityProviderProps): ReactElement {\n const value = useMemo<MenuVisibilityContext>(\n () => ({\n visible,\n setVisible,\n defaultFocusIndex,\n }),\n [visible, setVisible, defaultFocusIndex]\n );\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useMemo","context","visible","setVisible","Error","defaultFocusIndex","current","displayName","Provider","useMenuVisibility","MenuVisibilityProvider","children","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,OAAO,QAGF,QAAQ;AAYf;;;CAGC,GACD,MAAMC,wBAAUH,cAAqC;IACnDI,SAAS;IACTC;QACE,MAAM,IAAIC,MAAM;IAClB;IACAC,mBAAmB;QAAEC,SAAS;IAAE;AAClC;AACAL,QAAQM,WAAW,GAAG;AAEtB;;;CAGC,GACD,MAAM,EAAEC,QAAQ,EAAE,GAAGP;AAErB;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASQ;IACd,OAAOV,WAAWE;AACpB;AAUA;;;;;CAKC,GACD,OAAO,SAASS,uBAAuB,EACrCR,OAAO,EACPC,UAAU,EACVE,iBAAiB,EACjBM,QAAQ,EACoB;IAC5B,MAAMC,QAAQZ,QACZ,IAAO,CAAA;YACLE;YACAC;YACAE;QACF,CAAA,GACA;QAACH;QAASC;QAAYE;KAAkB;IAG1C,qBAAO,KAACG;QAASI,OAAOA;kBAAQD;;AAClC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuWidget.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, useRef, useState, type HTMLAttributes } from \"react\";\nimport { List } from \"../list/List.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type NonNullMutableRef } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { type MenuListConvenienceProps } from \"./Menu.js\";\nimport { MenuWidgetKeyboardProvider } from \"./MenuWidgetKeyboardProvider.js\";\nimport {\n MenuBarProvider,\n useMenuBarContext,\n useMenuBarProvider,\n} from \"./useMenuBarProvider.js\";\n\nconst styles = bem(\"rmd-menu\");\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport interface MenuClassNameOptions {\n className?: string;\n horizontal?: boolean;\n elevated?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function menu(options: MenuClassNameOptions = {}): string {\n const { className, horizontal, elevated } = options;\n\n return cnb(styles({ horizontal, elevated }), className);\n}\n\n/**\n * @internal\n */\nexport interface MenuWidgetProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuListConvenienceProps {\n isSheet: boolean;\n horizontal: boolean;\n disableElevation?: boolean;\n cancelUnmountFocus: NonNullMutableRef<boolean>;\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n}\n\n/**\n * **Client Component**\n *\n * This component was added to support the listbox role and the `useId()` hook.\n * If the `temporary` prop is set, the `MenuItem`'s ids will not be the same the\n * next time the menu opens, so the aria-activedescendant will point to a\n * non-existing id\n *\n * @internal\n */\nexport const MenuWidget = forwardRef<HTMLDivElement, MenuWidgetProps>(\n function MenuWidget(props, ref) {\n const {\n id,\n role = \"menu\",\n className,\n listStyle,\n listClassName,\n listProps,\n children,\n onClick,\n onBlur = noop,\n onFocus = noop,\n onKeyDown = noop,\n tabIndex = -1,\n isSheet,\n horizontal,\n disableElevation,\n cancelUnmountFocus,\n getDefaultFocusedIndex,\n ...remaining\n } = props;\n const isListbox = role === \"listbox\";\n const { menubar } = useMenuBarContext();\n\n // Since there is the possibility of other tab focusable elements within the\n // sheet and the menu items are programmatically focused, the menu's\n // tabIndex needs to be set to `-1` while one of the child menu items are\n // focused. This allows Shift+Tab correctly focuses the previous focusable\n // element within the sheet. Since `onFocus` and `onBlur` will be bubbled up\n // to the menu widget each time a new MenuItem is focused, only disable the\n // focused state if the blur event is fired without another focus event\n // within an animation frame.\n const [sheetMenuFocused, setSheetMenuFocused] = useState(false);\n const sheetBlurredFame = useRef(0);\n const menuBarContext = useMenuBarProvider({\n root: false,\n menubar,\n hoverTimeout: menubar ? 0 : undefined,\n defaultActiveId: id,\n });\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick,\n onFocus(event) {\n onFocus(event);\n\n if (!isSheet) {\n return;\n }\n\n window.cancelAnimationFrame(sheetBlurredFame.current);\n setSheetMenuFocused(true);\n },\n onKeyDown,\n horizontal,\n loopable: true,\n searchable: true,\n programmatic: true,\n includeDisabled: true,\n getDefaultFocusedIndex,\n });\n\n return (\n <MenuWidgetKeyboardProvider disabled={isListbox} value={movementContext}>\n <MenuBarProvider value={menuBarContext}>\n <div\n aria-orientation={horizontal ? \"horizontal\" : undefined}\n {...remaining}\n {...(isListbox ? { onClick, onFocus, onKeyDown } : movementProps)}\n id={id}\n ref={ref}\n role={role}\n className={menu({\n className,\n elevated: !disableElevation && !isSheet,\n horizontal,\n })}\n tabIndex={isSheet && !sheetMenuFocused ? 0 : tabIndex}\n onBlur={(event) => {\n onBlur(event);\n if (!isSheet) {\n return;\n }\n\n sheetBlurredFame.current = window.requestAnimationFrame(() => {\n setSheetMenuFocused(false);\n });\n }}\n >\n <List\n {...listProps}\n style={listStyle ?? listProps?.style}\n className={listClassName || listProps?.className}\n horizontal={horizontal}\n onClick={(event) => {\n listProps?.onClick?.(event);\n\n // this makes it so you can click on the menu/list without\n // closing the menu\n if (event.target === event.currentTarget) {\n event.stopPropagation();\n }\n\n // This might be a test only workaround since clicking links move focus\n // somewhere else\n if (event.target instanceof HTMLElement) {\n cancelUnmountFocus.current = event.currentTarget.contains(\n event.target.closest(\"a\")\n );\n }\n }}\n >\n {children}\n </List>\n </div>\n </MenuBarProvider>\n </MenuWidgetKeyboardProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useRef","useState","List","useKeyboardMovementProvider","bem","MenuWidgetKeyboardProvider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","styles","noop","menu","options","className","horizontal","elevated","MenuWidget","props","ref","id","role","listStyle","listClassName","listProps","children","onClick","onBlur","onFocus","onKeyDown","tabIndex","isSheet","disableElevation","cancelUnmountFocus","getDefaultFocusedIndex","remaining","isListbox","menubar","sheetMenuFocused","setSheetMenuFocused","sheetBlurredFame","menuBarContext","root","hoverTimeout","undefined","defaultActiveId","movementProps","movementContext","event","window","cancelAnimationFrame","current","loopable","searchable","programmatic","includeDisabled","disabled","value","div","aria-orientation","requestAnimationFrame","style","target","currentTarget","stopPropagation","HTMLElement","contains","closest"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/menu/MenuWidget.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, useRef, useState, type HTMLAttributes } from \"react\";\nimport { List } from \"../list/List.js\";\nimport { type GetDefaultFocusedIndex } from \"../movement/types.js\";\nimport { useKeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type NonNullMutableRef } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { type MenuListConvenienceProps } from \"./Menu.js\";\nimport { MenuWidgetKeyboardProvider } from \"./MenuWidgetKeyboardProvider.js\";\nimport {\n MenuBarProvider,\n useMenuBarContext,\n useMenuBarProvider,\n} from \"./useMenuBarProvider.js\";\n\nconst styles = bem(\"rmd-menu\");\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport interface MenuClassNameOptions {\n className?: string;\n horizontal?: boolean;\n elevated?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function menu(options: MenuClassNameOptions = {}): string {\n const { className, horizontal, elevated } = options;\n\n return cnb(styles({ horizontal, elevated }), className);\n}\n\n/**\n * @internal\n */\nexport interface MenuWidgetProps\n extends HTMLAttributes<HTMLDivElement>,\n MenuListConvenienceProps {\n isSheet: boolean;\n horizontal: boolean;\n disableElevation?: boolean;\n cancelUnmountFocus: NonNullMutableRef<boolean>;\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n}\n\n/**\n * **Client Component**\n *\n * This component was added to support the listbox role and the `useId()` hook.\n * If the `temporary` prop is set, the `MenuItem`'s ids will not be the same the\n * next time the menu opens, so the aria-activedescendant will point to a\n * non-existing id\n *\n * @internal\n */\nexport const MenuWidget = forwardRef<HTMLDivElement, MenuWidgetProps>(\n function MenuWidget(props, ref) {\n const {\n id,\n role = \"menu\",\n className,\n listStyle,\n listClassName,\n listProps,\n children,\n onClick,\n onBlur = noop,\n onFocus = noop,\n onKeyDown = noop,\n tabIndex = -1,\n isSheet,\n horizontal,\n disableElevation,\n cancelUnmountFocus,\n getDefaultFocusedIndex,\n ...remaining\n } = props;\n const isListbox = role === \"listbox\";\n const { menubar } = useMenuBarContext();\n\n // Since there is the possibility of other tab focusable elements within the\n // sheet and the menu items are programmatically focused, the menu's\n // tabIndex needs to be set to `-1` while one of the child menu items are\n // focused. This allows Shift+Tab correctly focuses the previous focusable\n // element within the sheet. Since `onFocus` and `onBlur` will be bubbled up\n // to the menu widget each time a new MenuItem is focused, only disable the\n // focused state if the blur event is fired without another focus event\n // within an animation frame.\n const [sheetMenuFocused, setSheetMenuFocused] = useState(false);\n const sheetBlurredFame = useRef(0);\n const menuBarContext = useMenuBarProvider({\n root: false,\n menubar,\n hoverTimeout: menubar ? 0 : undefined,\n defaultActiveId: id,\n });\n const { movementProps, movementContext } = useKeyboardMovementProvider({\n onClick,\n onFocus(event) {\n onFocus(event);\n\n if (!isSheet) {\n return;\n }\n\n window.cancelAnimationFrame(sheetBlurredFame.current);\n setSheetMenuFocused(true);\n },\n onKeyDown,\n horizontal,\n loopable: true,\n searchable: true,\n programmatic: true,\n includeDisabled: true,\n getDefaultFocusedIndex,\n });\n\n return (\n <MenuWidgetKeyboardProvider disabled={isListbox} value={movementContext}>\n <MenuBarProvider value={menuBarContext}>\n <div\n aria-orientation={horizontal ? \"horizontal\" : undefined}\n {...remaining}\n {...(isListbox ? { onClick, onFocus, onKeyDown } : movementProps)}\n id={id}\n ref={ref}\n role={role}\n className={menu({\n className,\n elevated: !disableElevation && !isSheet,\n horizontal,\n })}\n tabIndex={isSheet && !sheetMenuFocused ? 0 : tabIndex}\n onBlur={(event) => {\n onBlur(event);\n if (!isSheet) {\n return;\n }\n\n sheetBlurredFame.current = window.requestAnimationFrame(() => {\n setSheetMenuFocused(false);\n });\n }}\n >\n <List\n {...listProps}\n style={listStyle ?? listProps?.style}\n className={listClassName || listProps?.className}\n horizontal={horizontal}\n onClick={(event) => {\n listProps?.onClick?.(event);\n\n // this makes it so you can click on the menu/list without\n // closing the menu\n if (event.target === event.currentTarget) {\n event.stopPropagation();\n }\n\n // This might be a test only workaround since clicking links move focus\n // somewhere else\n if (event.target instanceof HTMLElement) {\n cancelUnmountFocus.current = event.currentTarget.contains(\n event.target.closest(\"a\")\n );\n }\n }}\n >\n {children}\n </List>\n </div>\n </MenuBarProvider>\n </MenuWidgetKeyboardProvider>\n );\n }\n);\n"],"names":["cnb","forwardRef","useRef","useState","List","useKeyboardMovementProvider","bem","MenuWidgetKeyboardProvider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","styles","noop","menu","options","className","horizontal","elevated","MenuWidget","props","ref","id","role","listStyle","listClassName","listProps","children","onClick","onBlur","onFocus","onKeyDown","tabIndex","isSheet","disableElevation","cancelUnmountFocus","getDefaultFocusedIndex","remaining","isListbox","menubar","sheetMenuFocused","setSheetMenuFocused","sheetBlurredFame","menuBarContext","root","hoverTimeout","undefined","defaultActiveId","movementProps","movementContext","event","window","cancelAnimationFrame","current","loopable","searchable","programmatic","includeDisabled","disabled","value","div","aria-orientation","requestAnimationFrame","style","target","currentTarget","stopPropagation","HTMLElement","contains","closest"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/MenuWidgetKeyboardProvider.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { type KeyboardMovementContext } from \"../movement/types.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface MenuWidgetKeyboardProviderProps {\n value: Readonly<KeyboardMovementContext>;\n disabled: boolean;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n * @internal\n */\nexport function MenuWidgetKeyboardProvider(\n props: MenuWidgetKeyboardProviderProps\n): ReactElement {\n const { value, disabled, children } = props;\n if (disabled) {\n return <>{children}</>;\n }\n\n return (\n <KeyboardMovementProvider value={value}>\n {children}\n </KeyboardMovementProvider>\n );\n}\n"],"names":["KeyboardMovementProvider","MenuWidgetKeyboardProvider","props","value","disabled","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,SAASA,wBAAwB,QAAQ,6CAA6C;AAYtF;;;;;CAKC,GACD,OAAO,SAASC,2BACdC,KAAsC;IAEtC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IACtC,IAAIE,UAAU;QACZ,qBAAO;sBAAGC;;IACZ;IAEA,qBACE,KAACL;QAAyBG,OAAOA;kBAC9BE;;AAGP"}
1
+ {"version":3,"sources":["../../src/menu/MenuWidgetKeyboardProvider.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { type KeyboardMovementContext } from \"../movement/types.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface MenuWidgetKeyboardProviderProps {\n value: Readonly<KeyboardMovementContext>;\n disabled: boolean;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n * @internal\n */\nexport function MenuWidgetKeyboardProvider(\n props: MenuWidgetKeyboardProviderProps\n): ReactElement {\n const { value, disabled, children } = props;\n if (disabled) {\n return <>{children}</>;\n }\n\n return (\n <KeyboardMovementProvider value={value}>\n {children}\n </KeyboardMovementProvider>\n );\n}\n"],"names":["KeyboardMovementProvider","MenuWidgetKeyboardProvider","props","value","disabled","children"],"mappings":"AAAA;;AAGA,SAASA,wBAAwB,QAAQ,6CAA6C;AAYtF;;;;;CAKC,GACD,OAAO,SAASC,2BACdC,KAAsC;IAEtC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IACtC,IAAIE,UAAU;QACZ,qBAAO;sBAAGC;;IACZ;IAEA,qBACE,KAACL;QAAyBG,OAAOA;kBAC9BE;;AAGP"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/useContextMenu.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent, RefObject } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { BELOW_INNER_LEFT_ANCHOR } from \"../positioning/constants.js\";\nimport type { InitialCoords, PositionAnchor } from \"../positioning/types.js\";\nimport type { UseStateObject } from \"../types.js\";\n\n/** @since 6.0.0 */\nexport interface ContextMenuProps extends InitialCoords {\n \"aria-label\": string;\n anchor: PositionAnchor;\n fixedTo: RefObject<HTMLElement>;\n visible: boolean;\n preventScroll: boolean;\n onRequestClose(): void;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Dropped most options since they are no longer required for the\n * context menu to work. Apply any `Menu` props directly to the `Menu` component\n * instead.\n */\nexport interface ContextMenuHookOptions {\n /**\n * @defaultValue `BELOW_INNER_LEFT_ANCHOR`\n * @see {@link BELOW_INNER_LEFT_ANCHOR}\n */\n anchor?: PositionAnchor;\n\n /**\n * @defaultValue `\"Context Menu\"`\n */\n menuLabel?: string;\n\n /**\n * @defaultValue `true`\n */\n preventScroll?: boolean;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Renamed from `ContextMenuHookReturnValue` to\n * `ContextMenuImplementation` and dropped the `menuRef` and `menuNodeRef`\n * fields.\n */\nexport interface ContextMenuImplementation\n extends UseStateObject<\"visible\", boolean> {\n menuProps: ContextMenuProps;\n onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook controls the visibility and positioning for a context menu.\n *\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import [ Menu, MenuItem, useContextMenu ] from \"@react-md/core\":\n *\n * function Example(): ReactElement {\n * const { menuProps, onContextMenu } = useContextMenu();\n *\n * return (\n * <>\n * <textarea onContextMenu={onContextMenu} />\n * <Menu {...menuProps}>\n * <MenuItem>Cut</MenuItem>\n * <MenuItem>Copy</MenuItem>\n * <MenuItem>Paste</MenuItem>\n * <MenuItem>Undo</MenuItem>\n * </Menu>\n * </>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n * @since 6.0.0 No longer supports overriding most of the `Menu` props. The\n * props must be passed to the `Menu` component manually.\n */\nexport function useContextMenu(\n options: ContextMenuHookOptions = {}\n): ContextMenuImplementation {\n const {\n anchor = BELOW_INNER_LEFT_ANCHOR,\n menuLabel = \"Context Menu\",\n onContextMenu = noop,\n preventScroll = true,\n } = options;\n const [coords, setCoords] = useState<InitialCoords>({});\n const [visible, setVisible] = useState(false);\n const fixedTo = useRef<HTMLElement>(null);\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, []);\n\n return {\n visible,\n setVisible,\n menuProps: {\n \"aria-label\": menuLabel,\n anchor,\n ...coords,\n fixedTo,\n visible,\n onRequestClose,\n preventScroll,\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n setCoords({\n initialX: event.clientX,\n initialY: event.clientY,\n });\n setVisible(true);\n },\n };\n}\n"],"names":["useCallback","useRef","useState","BELOW_INNER_LEFT_ANCHOR","noop","useContextMenu","options","anchor","menuLabel","onContextMenu","preventScroll","coords","setCoords","visible","setVisible","fixedTo","onRequestClose","menuProps","event","isPropagationStopped","preventDefault","stopPropagation","initialX","clientX","initialY","clientY"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AAmDtE,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,SAASC,eACdC,UAAkC,CAAC,CAAC;IAEpC,MAAM,EACJC,SAASJ,uBAAuB,EAChCK,YAAY,cAAc,EAC1BC,gBAAgBL,IAAI,EACpBM,gBAAgB,IAAI,EACrB,GAAGJ;IACJ,MAAM,CAACK,QAAQC,UAAU,GAAGV,SAAwB,CAAC;IACrD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IACvC,MAAMa,UAAUd,OAAoB;IACpC,MAAMe,iBAAiBhB,YAAY;QACjCc,WAAW;IACb,GAAG,EAAE;IAEL,OAAO;QACLD;QACAC;QACAG,WAAW;YACT,cAAcT;YACdD;YACA,GAAGI,MAAM;YACTI;YACAF;YACAG;YACAN;QACF;QACAD,eAAcS,KAAK;YACjBT,cAAcS;YACd,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YACrBT,UAAU;gBACRU,UAAUJ,MAAMK,OAAO;gBACvBC,UAAUN,MAAMO,OAAO;YACzB;YACAX,WAAW;QACb;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/menu/useContextMenu.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent, RefObject } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { BELOW_INNER_LEFT_ANCHOR } from \"../positioning/constants.js\";\nimport type { InitialCoords, PositionAnchor } from \"../positioning/types.js\";\nimport type { UseStateObject } from \"../types.js\";\n\n/** @since 6.0.0 */\nexport interface ContextMenuProps extends InitialCoords {\n \"aria-label\": string;\n anchor: PositionAnchor;\n fixedTo: RefObject<HTMLElement>;\n visible: boolean;\n preventScroll: boolean;\n onRequestClose(): void;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Dropped most options since they are no longer required for the\n * context menu to work. Apply any `Menu` props directly to the `Menu` component\n * instead.\n */\nexport interface ContextMenuHookOptions {\n /**\n * @defaultValue `BELOW_INNER_LEFT_ANCHOR`\n * @see {@link BELOW_INNER_LEFT_ANCHOR}\n */\n anchor?: PositionAnchor;\n\n /**\n * @defaultValue `\"Context Menu\"`\n */\n menuLabel?: string;\n\n /**\n * @defaultValue `true`\n */\n preventScroll?: boolean;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Renamed from `ContextMenuHookReturnValue` to\n * `ContextMenuImplementation` and dropped the `menuRef` and `menuNodeRef`\n * fields.\n */\nexport interface ContextMenuImplementation\n extends UseStateObject<\"visible\", boolean> {\n menuProps: ContextMenuProps;\n onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This hook controls the visibility and positioning for a context menu.\n *\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import [ Menu, MenuItem, useContextMenu ] from \"@react-md/core\":\n *\n * function Example(): ReactElement {\n * const { menuProps, onContextMenu } = useContextMenu();\n *\n * return (\n * <>\n * <textarea onContextMenu={onContextMenu} />\n * <Menu {...menuProps}>\n * <MenuItem>Cut</MenuItem>\n * <MenuItem>Copy</MenuItem>\n * <MenuItem>Paste</MenuItem>\n * <MenuItem>Undo</MenuItem>\n * </Menu>\n * </>\n * );\n * }\n * ```\n *\n * @since 5.0.0\n * @since 6.0.0 No longer supports overriding most of the `Menu` props. The\n * props must be passed to the `Menu` component manually.\n */\nexport function useContextMenu(\n options: ContextMenuHookOptions = {}\n): ContextMenuImplementation {\n const {\n anchor = BELOW_INNER_LEFT_ANCHOR,\n menuLabel = \"Context Menu\",\n onContextMenu = noop,\n preventScroll = true,\n } = options;\n const [coords, setCoords] = useState<InitialCoords>({});\n const [visible, setVisible] = useState(false);\n const fixedTo = useRef<HTMLElement>(null);\n const onRequestClose = useCallback(() => {\n setVisible(false);\n }, []);\n\n return {\n visible,\n setVisible,\n menuProps: {\n \"aria-label\": menuLabel,\n anchor,\n ...coords,\n fixedTo,\n visible,\n onRequestClose,\n preventScroll,\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n setCoords({\n initialX: event.clientX,\n initialY: event.clientY,\n });\n setVisible(true);\n },\n };\n}\n"],"names":["useCallback","useRef","useState","BELOW_INNER_LEFT_ANCHOR","noop","useContextMenu","options","anchor","menuLabel","onContextMenu","preventScroll","coords","setCoords","visible","setVisible","fixedTo","onRequestClose","menuProps","event","isPropagationStopped","preventDefault","stopPropagation","initialX","clientX","initialY","clientY"],"mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AAmDtE,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,SAASC,eACdC,UAAkC,CAAC,CAAC;IAEpC,MAAM,EACJC,SAASJ,uBAAuB,EAChCK,YAAY,cAAc,EAC1BC,gBAAgBL,IAAI,EACpBM,gBAAgB,IAAI,EACrB,GAAGJ;IACJ,MAAM,CAACK,QAAQC,UAAU,GAAGV,SAAwB,CAAC;IACrD,MAAM,CAACW,SAASC,WAAW,GAAGZ,SAAS;IACvC,MAAMa,UAAUd,OAAoB;IACpC,MAAMe,iBAAiBhB,YAAY;QACjCc,WAAW;IACb,GAAG,EAAE;IAEL,OAAO;QACLD;QACAC;QACAG,WAAW;YACT,cAAcT;YACdD;YACA,GAAGI,MAAM;YACTI;YACAF;YACAG;YACAN;QACF;QACAD,eAAcS,KAAK;YACjBT,cAAcS;YACd,IAAIA,MAAMC,oBAAoB,IAAI;gBAChC;YACF;YAEAD,MAAME,cAAc;YACpBF,MAAMG,eAAe;YACrBT,UAAU;gBACRU,UAAUJ,MAAMK,OAAO;gBACvBC,UAAUN,MAAMO,OAAO;YACzB;YACAX,WAAW;QACb;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/useMenuBarProvider.ts"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, useMemo } from \"react\";\nimport type { HoverModeContext } from \"../hoverMode/useHoverModeProvider.js\";\nimport {\n createHoverModeContext,\n useHoverModeProvider,\n} from \"../hoverMode/useHoverModeProvider.js\";\n\n/**\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Updated to use the new `HoverModeContext` behavior.\n */\nexport interface MenuBarContext extends HoverModeContext {\n root: boolean;\n menubar: boolean;\n menuitem: boolean;\n}\n\nconst context = createContext<MenuBarContext>({\n ...createHoverModeContext(),\n root: false,\n menubar: false,\n menuitem: false,\n});\ncontext.displayName = \"MenuBar\";\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport const { Provider: MenuBarProvider } = context;\n\n/**\n * @internal\n * @since 5.0.0\n */\nexport function useMenuBarContext(): Readonly<MenuBarContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport interface MenuBarProviderOptions {\n root: boolean;\n menubar: boolean;\n hoverTimeout: number | undefined;\n\n /** @defaultValue `\"\"` */\n defaultActiveId?: string;\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport function useMenuBarProvider(\n options: MenuBarProviderOptions\n): Readonly<MenuBarContext> {\n const { hoverTimeout, root, menubar, defaultActiveId = \"\" } = options;\n\n const hoverMode = useHoverModeProvider({\n hoverTimeout,\n forceRerender: true,\n defaultActiveId,\n });\n\n if (defaultActiveId) {\n // without this \"fix\", first-level nested dropdown menus will only disable\n // the animation the first time they are shown.\n hoverMode.animatedOnceRef.current = true;\n }\n\n return useMemo<MenuBarContext>(\n () => ({\n // when not within a menubar, disable all the hover mode functionality by\n // creating an empty hover mode context. This makes it so nested dropdown\n // menus don't trigger the hover mode timeouts and behavior\n ...(menubar ? hoverMode : createHoverModeContext()),\n root,\n menubar,\n menuitem: true,\n }),\n [hoverMode, menubar, root]\n );\n}\n"],"names":["createContext","useContext","useMemo","createHoverModeContext","useHoverModeProvider","context","root","menubar","menuitem","displayName","Provider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","options","hoverTimeout","defaultActiveId","hoverMode","forceRerender","animatedOnceRef","current"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAE3D,SACEC,sBAAsB,EACtBC,oBAAoB,QACf,uCAAuC;AAa9C,MAAMC,UAAUL,cAA8B;IAC5C,GAAGG,wBAAwB;IAC3BG,MAAM;IACNC,SAAS;IACTC,UAAU;AACZ;AACAH,QAAQI,WAAW,GAAG;AAEtB;;;CAGC,GACD,OAAO,MAAM,EAAEC,UAAUC,eAAe,EAAE,GAAGN,QAAQ;AAErD;;;CAGC,GACD,OAAO,SAASO;IACd,OAAOX,WAAWI;AACpB;AAeA;;;CAGC,GACD,OAAO,SAASQ,mBACdC,OAA+B;IAE/B,MAAM,EAAEC,YAAY,EAAET,IAAI,EAAEC,OAAO,EAAES,kBAAkB,EAAE,EAAE,GAAGF;IAE9D,MAAMG,YAAYb,qBAAqB;QACrCW;QACAG,eAAe;QACfF;IACF;IAEA,IAAIA,iBAAiB;QACnB,0EAA0E;QAC1E,+CAA+C;QAC/CC,UAAUE,eAAe,CAACC,OAAO,GAAG;IACtC;IAEA,OAAOlB,QACL,IAAO,CAAA;YACL,yEAAyE;YACzE,yEAAyE;YACzE,2DAA2D;YAC3D,GAAIK,UAAUU,YAAYd,wBAAwB;YAClDG;YACAC;YACAC,UAAU;QACZ,CAAA,GACA;QAACS;QAAWV;QAASD;KAAK;AAE9B"}
1
+ {"version":3,"sources":["../../src/menu/useMenuBarProvider.ts"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, useMemo } from \"react\";\nimport type { HoverModeContext } from \"../hoverMode/useHoverModeProvider.js\";\nimport {\n createHoverModeContext,\n useHoverModeProvider,\n} from \"../hoverMode/useHoverModeProvider.js\";\n\n/**\n * @internal\n * @since 5.0.0\n * @since 6.0.0 Updated to use the new `HoverModeContext` behavior.\n */\nexport interface MenuBarContext extends HoverModeContext {\n root: boolean;\n menubar: boolean;\n menuitem: boolean;\n}\n\nconst context = createContext<MenuBarContext>({\n ...createHoverModeContext(),\n root: false,\n menubar: false,\n menuitem: false,\n});\ncontext.displayName = \"MenuBar\";\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport const { Provider: MenuBarProvider } = context;\n\n/**\n * @internal\n * @since 5.0.0\n */\nexport function useMenuBarContext(): Readonly<MenuBarContext> {\n return useContext(context);\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport interface MenuBarProviderOptions {\n root: boolean;\n menubar: boolean;\n hoverTimeout: number | undefined;\n\n /** @defaultValue `\"\"` */\n defaultActiveId?: string;\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport function useMenuBarProvider(\n options: MenuBarProviderOptions\n): Readonly<MenuBarContext> {\n const { hoverTimeout, root, menubar, defaultActiveId = \"\" } = options;\n\n const hoverMode = useHoverModeProvider({\n hoverTimeout,\n forceRerender: true,\n defaultActiveId,\n });\n\n if (defaultActiveId) {\n // without this \"fix\", first-level nested dropdown menus will only disable\n // the animation the first time they are shown.\n hoverMode.animatedOnceRef.current = true;\n }\n\n return useMemo<MenuBarContext>(\n () => ({\n // when not within a menubar, disable all the hover mode functionality by\n // creating an empty hover mode context. This makes it so nested dropdown\n // menus don't trigger the hover mode timeouts and behavior\n ...(menubar ? hoverMode : createHoverModeContext()),\n root,\n menubar,\n menuitem: true,\n }),\n [hoverMode, menubar, root]\n );\n}\n"],"names":["createContext","useContext","useMemo","createHoverModeContext","useHoverModeProvider","context","root","menubar","menuitem","displayName","Provider","MenuBarProvider","useMenuBarContext","useMenuBarProvider","options","hoverTimeout","defaultActiveId","hoverMode","forceRerender","animatedOnceRef","current"],"mappings":"AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAE3D,SACEC,sBAAsB,EACtBC,oBAAoB,QACf,uCAAuC;AAa9C,MAAMC,UAAUL,cAA8B;IAC5C,GAAGG,wBAAwB;IAC3BG,MAAM;IACNC,SAAS;IACTC,UAAU;AACZ;AACAH,QAAQI,WAAW,GAAG;AAEtB;;;CAGC,GACD,OAAO,MAAM,EAAEC,UAAUC,eAAe,EAAE,GAAGN,QAAQ;AAErD;;;CAGC,GACD,OAAO,SAASO;IACd,OAAOX,WAAWI;AACpB;AAeA;;;CAGC,GACD,OAAO,SAASQ,mBACdC,OAA+B;IAE/B,MAAM,EAAEC,YAAY,EAAET,IAAI,EAAEC,OAAO,EAAES,kBAAkB,EAAE,EAAE,GAAGF;IAE9D,MAAMG,YAAYb,qBAAqB;QACrCW;QACAG,eAAe;QACfF;IACF;IAEA,IAAIA,iBAAiB;QACnB,0EAA0E;QAC1E,+CAA+C;QAC/CC,UAAUE,eAAe,CAACC,OAAO,GAAG;IACtC;IAEA,OAAOlB,QACL,IAAO,CAAA;YACL,yEAAyE;YACzE,yEAAyE;YACzE,2DAA2D;YAC3D,GAAIK,UAAUU,YAAYd,wBAAwB;YAClDG;YACAC;YACAC,UAAU;QACZ,CAAA,GACA;QAACS;QAAWV;QAASD;KAAK;AAE9B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu/utils.ts"],"sourcesContent":["import type { FloatingActionButtonPosition } from \"../button/FloatingActionButton.js\";\nimport {\n BELOW_CENTER_ANCHOR,\n BELOW_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_RIGHT_ANCHOR,\n CENTER_RIGHT_ANCHOR,\n TOP_INNER_LEFT_ANCHOR,\n TOP_INNER_RIGHT_ANCHOR,\n TOP_RIGHT_ANCHOR,\n} from \"../positioning/constants.js\";\nimport type { PositionAnchor } from \"../positioning/types.js\";\n\n/**\n * @since 5.0.0\n * @internal\n */\ninterface DefaultAnchorOptions {\n anchor?: PositionAnchor;\n menubar: boolean;\n menuitem: boolean;\n floating?: FloatingActionButtonPosition;\n horizontal: boolean;\n}\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getDefaultAnchor = (\n options: DefaultAnchorOptions\n): PositionAnchor => {\n const { anchor, menubar, menuitem, floating, horizontal } = options;\n if (anchor) {\n return anchor;\n }\n\n switch (floating) {\n case \"bottom-left\":\n return BOTTOM_INNER_LEFT_ANCHOR;\n case \"bottom-right\":\n return BOTTOM_INNER_RIGHT_ANCHOR;\n case \"top-left\":\n return TOP_INNER_LEFT_ANCHOR;\n case \"top-right\":\n return TOP_INNER_RIGHT_ANCHOR;\n }\n\n if (menubar) {\n return menuitem ? CENTER_RIGHT_ANCHOR : BELOW_INNER_LEFT_ANCHOR;\n }\n\n if (horizontal) {\n return BELOW_CENTER_ANCHOR;\n }\n\n if (menuitem) {\n return TOP_RIGHT_ANCHOR;\n }\n\n return TOP_INNER_RIGHT_ANCHOR;\n};\n"],"names":["BELOW_CENTER_ANCHOR","BELOW_INNER_LEFT_ANCHOR","BOTTOM_INNER_LEFT_ANCHOR","BOTTOM_INNER_RIGHT_ANCHOR","CENTER_RIGHT_ANCHOR","TOP_INNER_LEFT_ANCHOR","TOP_INNER_RIGHT_ANCHOR","TOP_RIGHT_ANCHOR","getDefaultAnchor","options","anchor","menubar","menuitem","floating","horizontal"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SACEA,mBAAmB,EACnBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB,EACnBC,qBAAqB,EACrBC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B;AAerC;;;CAGC,GACD,OAAO,MAAMC,mBAAmB,CAC9BC;IAEA,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGL;IAC5D,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,OAAQG;QACN,KAAK;YACH,OAAOX;QACT,KAAK;YACH,OAAOC;QACT,KAAK;YACH,OAAOE;QACT,KAAK;YACH,OAAOC;IACX;IAEA,IAAIK,SAAS;QACX,OAAOC,WAAWR,sBAAsBH;IAC1C;IAEA,IAAIa,YAAY;QACd,OAAOd;IACT;IAEA,IAAIY,UAAU;QACZ,OAAOL;IACT;IAEA,OAAOD;AACT,EAAE"}
1
+ {"version":3,"sources":["../../src/menu/utils.ts"],"sourcesContent":["import type { FloatingActionButtonPosition } from \"../button/FloatingActionButton.js\";\nimport {\n BELOW_CENTER_ANCHOR,\n BELOW_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_LEFT_ANCHOR,\n BOTTOM_INNER_RIGHT_ANCHOR,\n CENTER_RIGHT_ANCHOR,\n TOP_INNER_LEFT_ANCHOR,\n TOP_INNER_RIGHT_ANCHOR,\n TOP_RIGHT_ANCHOR,\n} from \"../positioning/constants.js\";\nimport type { PositionAnchor } from \"../positioning/types.js\";\n\n/**\n * @since 5.0.0\n * @internal\n */\ninterface DefaultAnchorOptions {\n anchor?: PositionAnchor;\n menubar: boolean;\n menuitem: boolean;\n floating?: FloatingActionButtonPosition;\n horizontal: boolean;\n}\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getDefaultAnchor = (\n options: DefaultAnchorOptions\n): PositionAnchor => {\n const { anchor, menubar, menuitem, floating, horizontal } = options;\n if (anchor) {\n return anchor;\n }\n\n switch (floating) {\n case \"bottom-left\":\n return BOTTOM_INNER_LEFT_ANCHOR;\n case \"bottom-right\":\n return BOTTOM_INNER_RIGHT_ANCHOR;\n case \"top-left\":\n return TOP_INNER_LEFT_ANCHOR;\n case \"top-right\":\n return TOP_INNER_RIGHT_ANCHOR;\n }\n\n if (menubar) {\n return menuitem ? CENTER_RIGHT_ANCHOR : BELOW_INNER_LEFT_ANCHOR;\n }\n\n if (horizontal) {\n return BELOW_CENTER_ANCHOR;\n }\n\n if (menuitem) {\n return TOP_RIGHT_ANCHOR;\n }\n\n return TOP_INNER_RIGHT_ANCHOR;\n};\n"],"names":["BELOW_CENTER_ANCHOR","BELOW_INNER_LEFT_ANCHOR","BOTTOM_INNER_LEFT_ANCHOR","BOTTOM_INNER_RIGHT_ANCHOR","CENTER_RIGHT_ANCHOR","TOP_INNER_LEFT_ANCHOR","TOP_INNER_RIGHT_ANCHOR","TOP_RIGHT_ANCHOR","getDefaultAnchor","options","anchor","menubar","menuitem","floating","horizontal"],"mappings":"AACA,SACEA,mBAAmB,EACnBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB,EACnBC,qBAAqB,EACrBC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B;AAerC;;;CAGC,GACD,OAAO,MAAMC,mBAAmB,CAC9BC;IAEA,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGL;IAC5D,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,OAAQG;QACN,KAAK;YACH,OAAOX;QACT,KAAK;YACH,OAAOC;QACT,KAAK;YACH,OAAOE;QACT,KAAK;YACH,OAAOC;IACX;IAEA,IAAIK,SAAS;QACX,OAAOC,WAAWR,sBAAsBH;IAC1C;IAEA,IAAIa,YAAY;QACd,OAAOd;IACT;IAEA,IAAIY,UAAU;QACZ,OAAOL;IACT;IAEA,OAAOD;AACT,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/constants.ts"],"sourcesContent":["import type { KeyboardMovementConfig } from \"./types.js\";\n\n/**\n * Most custom keyboard functionality use these keys.\n *\n * @since 5.0.0\n * @internal\n */\nexport const DEFAULT_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowDown\"],\n decrementKeys: [\"ArrowUp\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @since 5.1.2\n * @internal\n */\nexport const DEFAULT_LTR_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowRight\"],\n decrementKeys: [\"ArrowLeft\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @since 5.1.2\n * @internal\n */\nexport const DEFAULT_RTL_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowLeft\"],\n decrementKeys: [\"ArrowRight\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n"],"names":["DEFAULT_KEYBOARD_MOVEMENT","incrementKeys","decrementKeys","jumpToFirstKeys","jumpToLastKeys","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA;;;;;CAKC,GACD,OAAO,MAAMA,4BAA8D;IACzEC,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAU;IAC1BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMC,gCAAkE;IAC7EJ,eAAe;QAAC;KAAa;IAC7BC,eAAe;QAAC;KAAY;IAC5BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAME,gCAAkE;IAC7EL,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAa;IAC7BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE"}
1
+ {"version":3,"sources":["../../src/movement/constants.ts"],"sourcesContent":["import type { KeyboardMovementConfig } from \"./types.js\";\n\n/**\n * Most custom keyboard functionality use these keys.\n *\n * @since 5.0.0\n * @internal\n */\nexport const DEFAULT_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowDown\"],\n decrementKeys: [\"ArrowUp\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @since 5.1.2\n * @internal\n */\nexport const DEFAULT_LTR_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowRight\"],\n decrementKeys: [\"ArrowLeft\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n\n/**\n * @since 5.1.2\n * @internal\n */\nexport const DEFAULT_RTL_KEYBOARD_MOVEMENT: Readonly<KeyboardMovementConfig> = {\n incrementKeys: [\"ArrowLeft\"],\n decrementKeys: [\"ArrowRight\"],\n jumpToFirstKeys: [\"Home\"],\n jumpToLastKeys: [\"End\"],\n};\n"],"names":["DEFAULT_KEYBOARD_MOVEMENT","incrementKeys","decrementKeys","jumpToFirstKeys","jumpToLastKeys","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT"],"mappings":"AAEA;;;;;CAKC,GACD,OAAO,MAAMA,4BAA8D;IACzEC,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAU;IAC1BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMC,gCAAkE;IAC7EJ,eAAe;QAAC;KAAa;IAC7BC,eAAe;QAAC;KAAY;IAC5BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAME,gCAAkE;IAC7EL,eAAe;QAAC;KAAY;IAC5BC,eAAe;QAAC;KAAa;IAC7BC,iBAAiB;QAAC;KAAO;IACzBC,gBAAgB;QAAC;KAAM;AACzB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/findMatchIndex.ts"],"sourcesContent":["/** @internal */\nexport interface BaseOptions {\n /**\n * The current query string to find within the values\n */\n value: string;\n\n /**\n * The list of values to search within\n */\n values: readonly string[];\n\n /**\n * The start index for the search\n */\n startIndex: number;\n}\n\n/** @internal */\nexport interface MatchInRangeOptions extends BaseOptions {\n /**\n * The end index for the search\n */\n endIndex: number;\n}\n\n/**\n * Attempts to find the first match index for a list of values that starts with\n * the provided query string and is within the start and end indexes. If no\n * matches are found, -1 will be returned instead.\n *\n * Since this is normally coming from a keydown event, the query *must* be a\n * string of all capital letters to work as each value will be converted to\n * uppercase before checking.\n * @internal\n */\nexport function findMatchInRange(options: MatchInRangeOptions): number {\n const { values, startIndex, endIndex } = options;\n if (!values.length) {\n return -1;\n }\n\n const value = options.value.toUpperCase();\n\n for (let i = startIndex; i < endIndex; i += 1) {\n const content = values[i];\n if (content.toUpperCase().indexOf(value) === 0) {\n return i;\n }\n }\n\n return -1;\n}\n\n/** @internal */\nexport interface MatchIndexOptions extends BaseOptions {\n /**\n * Boolean if the current index can be included in the search\n *\n * @defaultValue `true`\n */\n isSelfMatchable?: boolean;\n}\n\n/**\n * A function that is used to find the next match index within a list of values\n * by comparing the start values ignoring case.\n *\n * If a match can not be found from the search string, `-1` will be returned.\n * The search value is self-matchable by default, but it can be omitted by\n * disabling the `isSelfMatchable` argument. This will make a self-match return\n * `-1`.\n *\n * @internal\n */\nexport function findMatchIndex(options: MatchIndexOptions): number {\n const { value, values, startIndex, isSelfMatchable = true } = options;\n // this was added to support comboboxes when there are no options available\n if (!values.length) {\n return -1;\n }\n\n let index = findMatchInRange({\n value,\n values,\n startIndex: startIndex + 1,\n endIndex: values.length,\n });\n if (index === -1) {\n const endIndex = startIndex + (isSelfMatchable ? 1 : 0);\n index = findMatchInRange({\n value,\n values,\n startIndex: 0,\n endIndex,\n });\n }\n\n return index;\n}\n"],"names":["findMatchInRange","options","values","startIndex","endIndex","length","value","toUpperCase","i","content","indexOf","findMatchIndex","isSelfMatchable","index"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,cAAc,GA0Bd;;;;;;;;;CASC,GACD,OAAO,SAASA,iBAAiBC,OAA4B;IAC3D,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;IACzC,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,MAAMC,QAAQL,QAAQK,KAAK,CAACC,WAAW;IAEvC,IAAK,IAAIC,IAAIL,YAAYK,IAAIJ,UAAUI,KAAK,EAAG;QAC7C,MAAMC,UAAUP,MAAM,CAACM,EAAE;QACzB,IAAIC,QAAQF,WAAW,GAAGG,OAAO,CAACJ,WAAW,GAAG;YAC9C,OAAOE;QACT;IACF;IAEA,OAAO,CAAC;AACV;AAYA;;;;;;;;;;CAUC,GACD,OAAO,SAASG,eAAeV,OAA0B;IACvD,MAAM,EAAEK,KAAK,EAAEJ,MAAM,EAAEC,UAAU,EAAES,kBAAkB,IAAI,EAAE,GAAGX;IAC9D,2EAA2E;IAC3E,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,IAAIQ,QAAQb,iBAAiB;QAC3BM;QACAJ;QACAC,YAAYA,aAAa;QACzBC,UAAUF,OAAOG,MAAM;IACzB;IACA,IAAIQ,UAAU,CAAC,GAAG;QAChB,MAAMT,WAAWD,aAAcS,CAAAA,kBAAkB,IAAI,CAAA;QACrDC,QAAQb,iBAAiB;YACvBM;YACAJ;YACAC,YAAY;YACZC;QACF;IACF;IAEA,OAAOS;AACT"}
1
+ {"version":3,"sources":["../../src/movement/findMatchIndex.ts"],"sourcesContent":["/** @internal */\nexport interface BaseOptions {\n /**\n * The current query string to find within the values\n */\n value: string;\n\n /**\n * The list of values to search within\n */\n values: readonly string[];\n\n /**\n * The start index for the search\n */\n startIndex: number;\n}\n\n/** @internal */\nexport interface MatchInRangeOptions extends BaseOptions {\n /**\n * The end index for the search\n */\n endIndex: number;\n}\n\n/**\n * Attempts to find the first match index for a list of values that starts with\n * the provided query string and is within the start and end indexes. If no\n * matches are found, -1 will be returned instead.\n *\n * Since this is normally coming from a keydown event, the query *must* be a\n * string of all capital letters to work as each value will be converted to\n * uppercase before checking.\n * @internal\n */\nexport function findMatchInRange(options: MatchInRangeOptions): number {\n const { values, startIndex, endIndex } = options;\n if (!values.length) {\n return -1;\n }\n\n const value = options.value.toUpperCase();\n\n for (let i = startIndex; i < endIndex; i += 1) {\n const content = values[i];\n if (content.toUpperCase().indexOf(value) === 0) {\n return i;\n }\n }\n\n return -1;\n}\n\n/** @internal */\nexport interface MatchIndexOptions extends BaseOptions {\n /**\n * Boolean if the current index can be included in the search\n *\n * @defaultValue `true`\n */\n isSelfMatchable?: boolean;\n}\n\n/**\n * A function that is used to find the next match index within a list of values\n * by comparing the start values ignoring case.\n *\n * If a match can not be found from the search string, `-1` will be returned.\n * The search value is self-matchable by default, but it can be omitted by\n * disabling the `isSelfMatchable` argument. This will make a self-match return\n * `-1`.\n *\n * @internal\n */\nexport function findMatchIndex(options: MatchIndexOptions): number {\n const { value, values, startIndex, isSelfMatchable = true } = options;\n // this was added to support comboboxes when there are no options available\n if (!values.length) {\n return -1;\n }\n\n let index = findMatchInRange({\n value,\n values,\n startIndex: startIndex + 1,\n endIndex: values.length,\n });\n if (index === -1) {\n const endIndex = startIndex + (isSelfMatchable ? 1 : 0);\n index = findMatchInRange({\n value,\n values,\n startIndex: 0,\n endIndex,\n });\n }\n\n return index;\n}\n"],"names":["findMatchInRange","options","values","startIndex","endIndex","length","value","toUpperCase","i","content","indexOf","findMatchIndex","isSelfMatchable","index"],"mappings":"AAAA,cAAc,GA0Bd;;;;;;;;;CASC,GACD,OAAO,SAASA,iBAAiBC,OAA4B;IAC3D,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;IACzC,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,MAAMC,QAAQL,QAAQK,KAAK,CAACC,WAAW;IAEvC,IAAK,IAAIC,IAAIL,YAAYK,IAAIJ,UAAUI,KAAK,EAAG;QAC7C,MAAMC,UAAUP,MAAM,CAACM,EAAE;QACzB,IAAIC,QAAQF,WAAW,GAAGG,OAAO,CAACJ,WAAW,GAAG;YAC9C,OAAOE;QACT;IACF;IAEA,OAAO,CAAC;AACV;AAYA;;;;;;;;;;CAUC,GACD,OAAO,SAASG,eAAeV,OAA0B;IACvD,MAAM,EAAEK,KAAK,EAAEJ,MAAM,EAAEC,UAAU,EAAES,kBAAkB,IAAI,EAAE,GAAGX;IAC9D,2EAA2E;IAC3E,IAAI,CAACC,OAAOG,MAAM,EAAE;QAClB,OAAO,CAAC;IACV;IAEA,IAAIQ,QAAQb,iBAAiB;QAC3BM;QACAJ;QACAC,YAAYA,aAAa;QACzBC,UAAUF,OAAOG,MAAM;IACzB;IACA,IAAIQ,UAAU,CAAC,GAAG;QAChB,MAAMT,WAAWD,aAAcS,CAAAA,kBAAkB,IAAI,CAAA;QACrDC,QAAQb,iBAAiB;YACvBM;YACAJ;YACAC,YAAY;YACZC;QACF;IACF;IAEA,OAAOS;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/types.ts"],"sourcesContent":["import type {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n} from \"react\";\nimport type {\n NonNullMutableRef,\n NonNullRef,\n UseStateSetter,\n} from \"../types.js\";\n\n/**\n * Set this to `\"roving\"` when:\n * - there are a group of focusable elements that have a `tabIndex={-1}`\n * - the container element defaults to having a `tabIndex={0}`\n * - if the container is focused, it should no longer be included in the normal\n * tab flow. Instead, the current focused element should be included instead\n * by changing its `tabIndex` from `-1` to `0`\n *\n * Set this to `\"virtual\"` when:\n * - the container element should never lose focus\n * - the \"focused\" element only gains focus styles instead of being focused\n * - the container element specifies an `aria-activedescendant` pointing to one\n * of the ids for the child \"focusable\" elements\n *\n * @since 6.0.0\n */\nexport type TabIndexBehavior = \"roving\" | \"virtual\";\n\n/**\n * This should be used for specific widgets that should not include all\n * focusable elements and instead only specific elements.\n *\n * @example\n * ```ts\n * const getExpansionPanelsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\".rmd-expansion-panel__button\")];\n *\n * const getTreeItemsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\"[role='treeitem']\")];\n * ```\n *\n * @defaultValue `getFocusableElements`\n * @see the default `getFocusableElements` function.\n */\nexport type GetFocusableElements = (\n container: HTMLElement,\n programmatic: boolean\n) => readonly HTMLElement[];\n\n/**\n * @since 5.0.0\n */\nexport interface KeyboardMovementConfiguration {\n /**\n * A list of keys that will attempt to increment the focus index by 1.\n *\n * @defaultValue `[\"ArrowDown\"]`\n */\n incrementKeys?: readonly string[];\n\n /**\n * A list of keys that will attempt to decrement the focus index by 1.\n *\n * @defaultValue `[\"ArrowUp\"]`\n */\n decrementKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to `0`.\n *\n * @defaultValue `[\"Home\"]`\n */\n jumpToFirstKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to the last focusable index.\n *\n * @defaultValue `[\"End\"]`\n */\n jumpToLastKeys?: readonly string[];\n}\n\n/**\n * The defined {@link KeyboardMovementConfiguration} that should be used for\n * custom keyboard focus behavior.\n *\n * @since 5.0.0\n */\nexport type KeyboardMovementConfig = Required<KeyboardMovementConfiguration>;\n\n/**\n * @since 5.0.0\n */\nexport interface KeyboardMovementBehavior {\n /**\n * Boolean if pressing a letter will focus the next item in the\n * {@link KeyboardMovementProvider} that starts with the same letter.\n *\n * @defaultValue `false`\n */\n searchable?: boolean;\n\n /**\n * Boolean if the {@link KeyboardMovementProvider} should allow the focus behavior\n * to loop from the first to last or last to first item instead of preventing\n * any new focus behavior. In other words... if the last item is focused and\n * the user presses a key that should advance the focus to the next focusable\n * element, should the focus stay on the current element or loop back and\n * focus the first focusable item.\n *\n * @defaultValue `false`\n */\n loopable?: boolean;\n\n /**\n * Boolean if elements that are `aria-disabled` or `disabled` should still be\n * able to gain focus.\n *\n * @defaultValue `false`\n */\n includeDisabled?: boolean;\n\n /**\n * Boolean if the keyboard movement is horizontal instead of vertical. This\n * updates the default keyboard config to use `ArrowRight` and `ArrowLeft`\n * instead of `ArrowDown` and `ArrowUp`,\n *\n * @since 5.1.2\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Removed `attach`, `detach` and `watching`\n * @internal\n */\nexport interface KeyboardMovementContext\n extends Required<KeyboardMovementBehavior> {\n /** {@inheritDoc KeyboardMovementConfig} */\n config: NonNullRef<KeyboardMovementConfig>;\n\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior: TabIndexBehavior | undefined;\n\n /**\n * Note: This will only update if the {@link KeyboardMovementProviderOptions.tabIndexBehavior}\n * has been set to `\"roving\"` or `\"virtual\"`.\n */\n activeDescendantId: string;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface FocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type ExtendKeyDown<E extends HTMLElement> = (\n movementData: KeyboardMovementExtensionData<E>\n) => void;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementFocusChangeEvent {\n index: number;\n element: HTMLElement;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type KeyboardMovementFocusChangeEventHandler = (\n event: KeyboardMovementFocusChangeEvent\n) => void;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementExtensionData<E extends HTMLElement>\n extends KeyboardMovementContext {\n event: KeyboardEvent<E>;\n currentFocusIndex: NonNullMutableRef<number>;\n setFocusIndex(index: number, focusables: readonly HTMLElement[]): void;\n setActiveDescendantId(id: string): void;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderOptions<E extends HTMLElement>\n extends KeyboardMovementBehavior,\n KeyboardMovementConfiguration {\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior?: TabIndexBehavior;\n\n onClick?(event: MouseEvent<E>): void;\n onFocus?(event: FocusEvent<E>): void;\n onKeyDown?(event: KeyboardEvent<E>): void;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * This is used to implement custom keyboard movement for the `keydown` event.\n */\n extendKeyDown?: ExtendKeyDown<E>;\n\n /**\n * Triggered whenever the focus changes.\n */\n onFocusChange?: KeyboardMovementFocusChangeEventHandler;\n\n /**\n * From what I've understood so far, programmatically focusable elements\n * should only be included when disabled elements via `aria-disabled` are\n * allowed.\n *\n * @defaultValue `includeDisabled`\n */\n programmatic?: boolean;\n\n /** @see {@link GetFocusableElements} */\n getFocusableElements?: GetFocusableElements;\n\n /**\n * This can be used to set the initial focus index whenever the container\n * element is first focused or the focus index is `-1` on other focus events.\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * This was added to support editable combobox behavior. As the user types or\n * uses native input keyboard behavior, the focus index should be reset to\n * `-1` so that the next \"ArrowDown\" event focuses the first option again\n * instead of the last selected one.\n *\n * @defaultValue `false`\n */\n isNegativeOneAllowed?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProps<E extends HTMLElement> {\n /**\n * This will only be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is set to `\"virtual\"`.\n */\n \"aria-activedescendant\"?: string;\n\n /**\n * This will not be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is `undefined`. Otherwise:\n * - `0` when `\"virtual\"`\n * - `0` when `\"roving\"` and the container element has not been focused at\n * least once\n * - `-1` when `\"roving\"` and the container has been focused at least once\n * - a child element **should** have a `tabIndex={0}` instead\n */\n tabIndex?: number;\n onClick: MouseEventHandler<E>;\n onFocus: FocusEventHandler<E>;\n onKeyDown: KeyboardEventHandler<E>;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderImplementation<E extends HTMLElement> {\n movementProps: Readonly<KeyboardMovementProps<E>>;\n movementContext: Readonly<KeyboardMovementContext>;\n currentFocusIndex: NonNullMutableRef<number>;\n activeDescendantId: string;\n setActiveDescendantId: UseStateSetter<string>;\n}\n"],"names":[],"rangeMappings":";;;","mappings":"AAmSA;;;CAGC,GACD,WAMC"}
1
+ {"version":3,"sources":["../../src/movement/types.ts"],"sourcesContent":["import type {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n} from \"react\";\nimport type {\n NonNullMutableRef,\n NonNullRef,\n UseStateSetter,\n} from \"../types.js\";\n\n/**\n * Set this to `\"roving\"` when:\n * - there are a group of focusable elements that have a `tabIndex={-1}`\n * - the container element defaults to having a `tabIndex={0}`\n * - if the container is focused, it should no longer be included in the normal\n * tab flow. Instead, the current focused element should be included instead\n * by changing its `tabIndex` from `-1` to `0`\n *\n * Set this to `\"virtual\"` when:\n * - the container element should never lose focus\n * - the \"focused\" element only gains focus styles instead of being focused\n * - the container element specifies an `aria-activedescendant` pointing to one\n * of the ids for the child \"focusable\" elements\n *\n * @since 6.0.0\n */\nexport type TabIndexBehavior = \"roving\" | \"virtual\";\n\n/**\n * This should be used for specific widgets that should not include all\n * focusable elements and instead only specific elements.\n *\n * @example\n * ```ts\n * const getExpansionPanelsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\".rmd-expansion-panel__button\")];\n *\n * const getTreeItemsOnly: GetFocusableElements = (container) =>\n * [...container.querySelectorAll(\"[role='treeitem']\")];\n * ```\n *\n * @defaultValue `getFocusableElements`\n * @see the default `getFocusableElements` function.\n */\nexport type GetFocusableElements = (\n container: HTMLElement,\n programmatic: boolean\n) => readonly HTMLElement[];\n\n/**\n * @since 5.0.0\n */\nexport interface KeyboardMovementConfiguration {\n /**\n * A list of keys that will attempt to increment the focus index by 1.\n *\n * @defaultValue `[\"ArrowDown\"]`\n */\n incrementKeys?: readonly string[];\n\n /**\n * A list of keys that will attempt to decrement the focus index by 1.\n *\n * @defaultValue `[\"ArrowUp\"]`\n */\n decrementKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to `0`.\n *\n * @defaultValue `[\"Home\"]`\n */\n jumpToFirstKeys?: readonly string[];\n\n /**\n * A list of keys that will set the focus index to the last focusable index.\n *\n * @defaultValue `[\"End\"]`\n */\n jumpToLastKeys?: readonly string[];\n}\n\n/**\n * The defined {@link KeyboardMovementConfiguration} that should be used for\n * custom keyboard focus behavior.\n *\n * @since 5.0.0\n */\nexport type KeyboardMovementConfig = Required<KeyboardMovementConfiguration>;\n\n/**\n * @since 5.0.0\n */\nexport interface KeyboardMovementBehavior {\n /**\n * Boolean if pressing a letter will focus the next item in the\n * {@link KeyboardMovementProvider} that starts with the same letter.\n *\n * @defaultValue `false`\n */\n searchable?: boolean;\n\n /**\n * Boolean if the {@link KeyboardMovementProvider} should allow the focus behavior\n * to loop from the first to last or last to first item instead of preventing\n * any new focus behavior. In other words... if the last item is focused and\n * the user presses a key that should advance the focus to the next focusable\n * element, should the focus stay on the current element or loop back and\n * focus the first focusable item.\n *\n * @defaultValue `false`\n */\n loopable?: boolean;\n\n /**\n * Boolean if elements that are `aria-disabled` or `disabled` should still be\n * able to gain focus.\n *\n * @defaultValue `false`\n */\n includeDisabled?: boolean;\n\n /**\n * Boolean if the keyboard movement is horizontal instead of vertical. This\n * updates the default keyboard config to use `ArrowRight` and `ArrowLeft`\n * instead of `ArrowDown` and `ArrowUp`,\n *\n * @since 5.1.2\n * @defaultValue `false`\n */\n horizontal?: boolean;\n}\n\n/**\n * @since 5.0.0\n * @since 6.0.0 Removed `attach`, `detach` and `watching`\n * @internal\n */\nexport interface KeyboardMovementContext\n extends Required<KeyboardMovementBehavior> {\n /** {@inheritDoc KeyboardMovementConfig} */\n config: NonNullRef<KeyboardMovementConfig>;\n\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior: TabIndexBehavior | undefined;\n\n /**\n * Note: This will only update if the {@link KeyboardMovementProviderOptions.tabIndexBehavior}\n * has been set to `\"roving\"` or `\"virtual\"`.\n */\n activeDescendantId: string;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface FocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type ExtendKeyDown<E extends HTMLElement> = (\n movementData: KeyboardMovementExtensionData<E>\n) => void;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementFocusChangeEvent {\n index: number;\n element: HTMLElement;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport type KeyboardMovementFocusChangeEventHandler = (\n event: KeyboardMovementFocusChangeEvent\n) => void;\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementExtensionData<E extends HTMLElement>\n extends KeyboardMovementContext {\n event: KeyboardEvent<E>;\n currentFocusIndex: NonNullMutableRef<number>;\n setFocusIndex(index: number, focusables: readonly HTMLElement[]): void;\n setActiveDescendantId(id: string): void;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderOptions<E extends HTMLElement>\n extends KeyboardMovementBehavior,\n KeyboardMovementConfiguration {\n /** @see {@link TabIndexBehavior} */\n tabIndexBehavior?: TabIndexBehavior;\n\n onClick?(event: MouseEvent<E>): void;\n onFocus?(event: FocusEvent<E>): void;\n onKeyDown?(event: KeyboardEvent<E>): void;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * This is used to implement custom keyboard movement for the `keydown` event.\n */\n extendKeyDown?: ExtendKeyDown<E>;\n\n /**\n * Triggered whenever the focus changes.\n */\n onFocusChange?: KeyboardMovementFocusChangeEventHandler;\n\n /**\n * From what I've understood so far, programmatically focusable elements\n * should only be included when disabled elements via `aria-disabled` are\n * allowed.\n *\n * @defaultValue `includeDisabled`\n */\n programmatic?: boolean;\n\n /** @see {@link GetFocusableElements} */\n getFocusableElements?: GetFocusableElements;\n\n /**\n * This can be used to set the initial focus index whenever the container\n * element is first focused or the focus index is `-1` on other focus events.\n */\n getDefaultFocusedIndex?: GetDefaultFocusedIndex;\n\n /**\n * This was added to support editable combobox behavior. As the user types or\n * uses native input keyboard behavior, the focus index should be reset to\n * `-1` so that the next \"ArrowDown\" event focuses the first option again\n * instead of the last selected one.\n *\n * @defaultValue `false`\n */\n isNegativeOneAllowed?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProps<E extends HTMLElement> {\n /**\n * This will only be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is set to `\"virtual\"`.\n */\n \"aria-activedescendant\"?: string;\n\n /**\n * This will not be provided if the {@link KeyboardMovementContext.tabIndexBehavior}\n * is `undefined`. Otherwise:\n * - `0` when `\"virtual\"`\n * - `0` when `\"roving\"` and the container element has not been focused at\n * least once\n * - `-1` when `\"roving\"` and the container has been focused at least once\n * - a child element **should** have a `tabIndex={0}` instead\n */\n tabIndex?: number;\n onClick: MouseEventHandler<E>;\n onFocus: FocusEventHandler<E>;\n onKeyDown: KeyboardEventHandler<E>;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface KeyboardMovementProviderImplementation<E extends HTMLElement> {\n movementProps: Readonly<KeyboardMovementProps<E>>;\n movementContext: Readonly<KeyboardMovementContext>;\n currentFocusIndex: NonNullMutableRef<number>;\n activeDescendantId: string;\n setActiveDescendantId: UseStateSetter<string>;\n}\n"],"names":[],"mappings":"AAmSA;;;CAGC,GACD,WAMC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/useKeyboardMovementProvider.ts"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getFocusableElements as defaultGetFocusableElements } from \"../focus/utils.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport {\n DEFAULT_KEYBOARD_MOVEMENT,\n DEFAULT_LTR_KEYBOARD_MOVEMENT,\n DEFAULT_RTL_KEYBOARD_MOVEMENT,\n} from \"./constants.js\";\nimport { findMatchIndex } from \"./findMatchIndex.js\";\nimport type {\n KeyboardMovementConfig,\n KeyboardMovementConfiguration,\n KeyboardMovementContext,\n KeyboardMovementProviderImplementation,\n KeyboardMovementProviderOptions,\n} from \"./types.js\";\nimport {\n getFirstFocusableIndex,\n getLastFocusableIndex,\n getNextFocusableIndex,\n getSearchText,\n getVirtualFocusDefaultIndex,\n isElementDisabled,\n isNotFocusable,\n isSearchableEvent,\n recalculateFocusIndex,\n} from \"./utils.js\";\n\n/**\n * @since 5.0.0\n * @internal\n */\nconst context = createContext<KeyboardMovementContext>({\n config: { current: DEFAULT_KEYBOARD_MOVEMENT },\n loopable: false,\n searchable: false,\n horizontal: false,\n includeDisabled: false,\n tabIndexBehavior: undefined,\n activeDescendantId: \"\",\n});\ncontext.displayName = \"KeyboardMovement\";\nexport const { Provider: KeyboardMovementProvider } = context;\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport function useKeyboardMovementContext(): Readonly<KeyboardMovementContext> {\n return useContext(context);\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\nconst returnNegative1 = (): number => -1;\n\n/**\n * Implements the custom keyboard movement behavior throughout react-md. Using\n * the \"Find References\" will be the best way to see example usage.\n *\n * @example Default Keyboard Movement for any Focusable Element\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider();\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * {children}\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example Active Descendant Movement\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * className={cnb(id === activeDescendantId && \"focused-class-name\")}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"virtual\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example Roving Tab Index\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"roving\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n * @since 6.0.0\n * @internal\n */\nexport function useKeyboardMovementProvider<E extends HTMLElement>(\n options: KeyboardMovementProviderOptions<E> = {}\n): KeyboardMovementProviderImplementation<E> {\n const {\n onClick = noop,\n onFocus = noop,\n onKeyDown = noop,\n loopable = false,\n disabled,\n searchable = false,\n horizontal = false,\n includeDisabled = false,\n tabIndexBehavior,\n extendKeyDown = noop,\n onFocusChange = noop,\n programmatic = includeDisabled,\n incrementKeys: propIncrementKeys,\n decrementKeys: propDecrementKeys,\n jumpToFirstKeys: propJumpToFirstKeys,\n jumpToLastKeys: propJumpToLastKeys,\n getFocusableElements = defaultGetFocusableElements,\n getDefaultFocusedIndex = returnNegative1,\n isNegativeOneAllowed = false,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n let defaults: Readonly<Required<KeyboardMovementConfiguration>>;\n if (horizontal) {\n defaults = isRTL\n ? DEFAULT_RTL_KEYBOARD_MOVEMENT\n : DEFAULT_LTR_KEYBOARD_MOVEMENT;\n } else {\n defaults = DEFAULT_KEYBOARD_MOVEMENT;\n }\n\n const incrementKeys = propIncrementKeys || defaults.incrementKeys;\n const decrementKeys = propDecrementKeys || defaults.decrementKeys;\n const jumpToFirstKeys = propJumpToFirstKeys || defaults.jumpToFirstKeys;\n const jumpToLastKeys = propJumpToLastKeys || defaults.jumpToLastKeys;\n\n const configuration: KeyboardMovementConfig = {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n };\n const config = useRef(configuration);\n useIsomorphicLayoutEffect(() => {\n config.current = configuration;\n });\n\n const [activeDescendantId, setActiveDescendantId] = useState(\"\");\n const movementContext = useMemo<KeyboardMovementContext>(\n () => ({\n config,\n loopable,\n searchable,\n horizontal,\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n }),\n [\n activeDescendantId,\n horizontal,\n includeDisabled,\n loopable,\n searchable,\n tabIndexBehavior,\n ]\n );\n const currentFocusIndex = useRef(-1);\n const mode = useUserInteractionMode();\n const refocus = useRef(false);\n\n if (process.env.NODE_ENV !== \"production\") {\n // this fixes issues during hot reloading and using the `useId()` hook\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n return () => {\n setActiveDescendantId(\"\");\n };\n }, []);\n }\n\n let tabIndex: number | undefined;\n if (tabIndexBehavior) {\n tabIndex =\n disabled || (tabIndexBehavior === \"roving\" && activeDescendantId)\n ? -1\n : 0;\n }\n\n return {\n movementProps: {\n \"aria-activedescendant\":\n tabIndexBehavior === \"virtual\" ? activeDescendantId : undefined,\n tabIndex,\n\n // Note: This used to be on the `onFocus` event, but this causes issues in\n // Chromium browsers for drag and drop behavior\n onClick(event) {\n onClick(event);\n if (disabled) {\n return;\n }\n\n // This makes it so you can click an element with a mouse and then\n // keyboard navigate from that element instead of the last keyboard focus\n // element\n const { currentTarget, target } = event;\n if (target === currentTarget || !(target instanceof HTMLElement)) {\n return;\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const focusedIndex = focusables.findIndex(\n (element) => element === target || element.contains(target)\n );\n if (focusedIndex === -1 || !focusables.length) {\n return;\n }\n\n currentFocusIndex.current = focusedIndex;\n const focused = focusables[focusedIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n // need to force focus back to the container element when using\n // aria activedescendant\n if (tabIndexBehavior === \"virtual\") {\n refocus.current = true;\n currentTarget.focus();\n }\n\n onFocusChange({\n index: focusedIndex,\n element: focused,\n });\n },\n onFocus(event) {\n onFocus(event);\n if (event.isPropagationStopped() || refocus.current) {\n refocus.current = false;\n return;\n }\n\n if (\n (mode !== \"keyboard\" && tabIndexBehavior !== \"virtual\") ||\n event.target !== event.currentTarget\n ) {\n return;\n }\n\n const focusables = getFocusableElements(\n event.currentTarget,\n programmatic\n );\n if (!focusables.length) {\n return;\n }\n\n let defaultFocusIndex = getDefaultFocusedIndex({\n focusables,\n includeDisabled,\n });\n\n // This allows my custom `getDefaultFocusedIndex` implementations to\n // have a nice fallback without having to re-implement the \"focus\n // first\" behavior\n if (!isNegativeOneAllowed && defaultFocusIndex === -1) {\n if (tabIndexBehavior === \"virtual\") {\n // virtual keyboard navigation **must** always focus at least one element\n defaultFocusIndex = getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n } else {\n defaultFocusIndex = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n }\n }\n\n if (defaultFocusIndex === -1) {\n return;\n }\n\n currentFocusIndex.current = defaultFocusIndex;\n const focused = focusables[defaultFocusIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n } else {\n focused.scrollIntoView({ block: \"nearest\" });\n }\n\n onFocusChange({\n index: defaultFocusIndex,\n element: focused,\n });\n },\n onKeyDown(event) {\n onKeyDown(event);\n if (disabled) {\n return;\n }\n\n const { currentTarget } = event;\n\n const setFocusIndex = (\n index: number,\n focusables: readonly HTMLElement[]\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n if (currentFocusIndex.current === index || index === -1) {\n return;\n }\n\n currentFocusIndex.current = index;\n const focused = focusables[index];\n if (tabIndexBehavior) {\n focused.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n }\n\n onFocusChange({\n index,\n element: focused,\n });\n };\n\n extendKeyDown({\n event,\n setFocusIndex,\n currentFocusIndex,\n setActiveDescendantId,\n ...movementContext,\n });\n\n if (event.isPropagationStopped()) {\n return;\n }\n\n // TODO: Figure this part out. This is currently required for the tree\n // movement when the asterisk key is pressed. There might be other cases\n // as well.\n if (!isNegativeOneAllowed && currentFocusIndex.current === -1) {\n currentFocusIndex.current = recalculateFocusIndex({\n focusables: getFocusableElements(currentTarget, programmatic),\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n });\n }\n\n const { key, shiftKey } = event;\n if (\n tabIndexBehavior === \"virtual\" &&\n activeDescendantId &&\n (key === \" \" || key === \"Enter\")\n ) {\n if (key === \" \") {\n event.preventDefault();\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const activeElement = focusables[currentFocusIndex.current];\n if (!activeElement || isElementDisabled(activeElement)) {\n return;\n }\n\n activeElement.click();\n return;\n }\n\n const {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n } = config.current;\n\n if (searchable && isSearchableEvent(event)) {\n const focusables = getFocusableElements(currentTarget, programmatic);\n const index = findMatchIndex({\n value: key,\n values: focusables.map((element) =>\n getSearchText(element, !isNotFocusable(element, includeDisabled))\n ),\n startIndex: shiftKey ? -1 : currentFocusIndex.current,\n });\n setFocusIndex(index, focusables);\n return;\n }\n\n const jumpToFirst = jumpToFirstKeys.includes(key);\n const jumpToLast = !jumpToFirst && jumpToLastKeys.includes(key);\n const increment =\n !jumpToFirst && !jumpToLast && incrementKeys.includes(key);\n const decrement =\n !jumpToFirst &&\n !jumpToLast &&\n !increment &&\n decrementKeys.includes(key);\n\n if (!jumpToFirst && !jumpToLast && !increment && !decrement) {\n return;\n }\n const focusables = getFocusableElements(currentTarget, programmatic);\n\n let index: number;\n if (jumpToFirst) {\n index = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else if (jumpToLast) {\n index = getLastFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else {\n index = getNextFocusableIndex({\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex: currentFocusIndex.current,\n });\n }\n\n setFocusIndex(index, focusables);\n },\n },\n movementContext,\n currentFocusIndex,\n activeDescendantId,\n setActiveDescendantId,\n };\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","getFocusableElements","defaultGetFocusableElements","useUserInteractionMode","useDir","useIsomorphicLayoutEffect","DEFAULT_KEYBOARD_MOVEMENT","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT","findMatchIndex","getFirstFocusableIndex","getLastFocusableIndex","getNextFocusableIndex","getSearchText","getVirtualFocusDefaultIndex","isElementDisabled","isNotFocusable","isSearchableEvent","recalculateFocusIndex","context","config","current","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","undefined","activeDescendantId","displayName","Provider","KeyboardMovementProvider","useKeyboardMovementContext","noop","returnNegative1","useKeyboardMovementProvider","options","onClick","onFocus","onKeyDown","disabled","extendKeyDown","onFocusChange","programmatic","incrementKeys","propIncrementKeys","decrementKeys","propDecrementKeys","jumpToFirstKeys","propJumpToFirstKeys","jumpToLastKeys","propJumpToLastKeys","getDefaultFocusedIndex","isNegativeOneAllowed","isRTL","dir","defaults","configuration","setActiveDescendantId","movementContext","currentFocusIndex","mode","refocus","process","env","NODE_ENV","tabIndex","movementProps","event","currentTarget","target","HTMLElement","focusables","focusedIndex","findIndex","element","contains","length","focused","id","focus","index","isPropagationStopped","defaultFocusIndex","scrollIntoView","block","setFocusIndex","preventDefault","stopPropagation","inline","key","shiftKey","activeElement","click","value","values","map","startIndex","jumpToFirst","includes","jumpToLast","increment","decrement"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/movement/useKeyboardMovementProvider.ts"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getFocusableElements as defaultGetFocusableElements } from \"../focus/utils.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useDir } from \"../typography/WritingDirectionProvider.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport {\n DEFAULT_KEYBOARD_MOVEMENT,\n DEFAULT_LTR_KEYBOARD_MOVEMENT,\n DEFAULT_RTL_KEYBOARD_MOVEMENT,\n} from \"./constants.js\";\nimport { findMatchIndex } from \"./findMatchIndex.js\";\nimport type {\n KeyboardMovementConfig,\n KeyboardMovementConfiguration,\n KeyboardMovementContext,\n KeyboardMovementProviderImplementation,\n KeyboardMovementProviderOptions,\n} from \"./types.js\";\nimport {\n getFirstFocusableIndex,\n getLastFocusableIndex,\n getNextFocusableIndex,\n getSearchText,\n getVirtualFocusDefaultIndex,\n isElementDisabled,\n isNotFocusable,\n isSearchableEvent,\n recalculateFocusIndex,\n} from \"./utils.js\";\n\n/**\n * @since 5.0.0\n * @internal\n */\nconst context = createContext<KeyboardMovementContext>({\n config: { current: DEFAULT_KEYBOARD_MOVEMENT },\n loopable: false,\n searchable: false,\n horizontal: false,\n includeDisabled: false,\n tabIndexBehavior: undefined,\n activeDescendantId: \"\",\n});\ncontext.displayName = \"KeyboardMovement\";\nexport const { Provider: KeyboardMovementProvider } = context;\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport function useKeyboardMovementContext(): Readonly<KeyboardMovementContext> {\n return useContext(context);\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\nconst returnNegative1 = (): number => -1;\n\n/**\n * Implements the custom keyboard movement behavior throughout react-md. Using\n * the \"Find References\" will be the best way to see example usage.\n *\n * @example Default Keyboard Movement for any Focusable Element\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider();\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * {children}\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example Active Descendant Movement\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * className={cnb(id === activeDescendantId && \"focused-class-name\")}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"virtual\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n *\n * @example Roving Tab Index\n * ```tsx\n * import {\n * KeyboardMovementProvider,\n * useKeyboardMovementContext,\n * useKeyboardMovementProvider,\n * } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useId } from \"react\";\n *\n * function Child(): ReactElement {\n * const id = useId()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * return (\n * <div\n * {...props}\n * id={id}\n * tabIndex={id === activeDescendantId ? 0 : -1}\n * >\n * Some Content\n * </div>\n * );\n * }\n *\n * function Example({ children }: { children: ReactNode }): ReactElement {\n * const { movementContext, movementProps } = useKeyboardMovementProvider({\n * loopable: true,\n * searchable: true,\n * tabIndexBehavior: \"roving\",\n * });\n *\n * // any focusable element child can be focused with the arrow , home, and\n * // end keys\n * return (\n * <KeyboardMovementProvider value={movementContext}>\n * <div {...movementProps}>\n * <Child />\n * <Child />\n * <Child />\n * </div>\n * </KeyboardMovementProvider>\n * );\n * }\n * ```\n * @since 6.0.0\n * @internal\n */\nexport function useKeyboardMovementProvider<E extends HTMLElement>(\n options: KeyboardMovementProviderOptions<E> = {}\n): KeyboardMovementProviderImplementation<E> {\n const {\n onClick = noop,\n onFocus = noop,\n onKeyDown = noop,\n loopable = false,\n disabled,\n searchable = false,\n horizontal = false,\n includeDisabled = false,\n tabIndexBehavior,\n extendKeyDown = noop,\n onFocusChange = noop,\n programmatic = includeDisabled,\n incrementKeys: propIncrementKeys,\n decrementKeys: propDecrementKeys,\n jumpToFirstKeys: propJumpToFirstKeys,\n jumpToLastKeys: propJumpToLastKeys,\n getFocusableElements = defaultGetFocusableElements,\n getDefaultFocusedIndex = returnNegative1,\n isNegativeOneAllowed = false,\n } = options;\n\n const isRTL = useDir().dir === \"rtl\";\n let defaults: Readonly<Required<KeyboardMovementConfiguration>>;\n if (horizontal) {\n defaults = isRTL\n ? DEFAULT_RTL_KEYBOARD_MOVEMENT\n : DEFAULT_LTR_KEYBOARD_MOVEMENT;\n } else {\n defaults = DEFAULT_KEYBOARD_MOVEMENT;\n }\n\n const incrementKeys = propIncrementKeys || defaults.incrementKeys;\n const decrementKeys = propDecrementKeys || defaults.decrementKeys;\n const jumpToFirstKeys = propJumpToFirstKeys || defaults.jumpToFirstKeys;\n const jumpToLastKeys = propJumpToLastKeys || defaults.jumpToLastKeys;\n\n const configuration: KeyboardMovementConfig = {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n };\n const config = useRef(configuration);\n useIsomorphicLayoutEffect(() => {\n config.current = configuration;\n });\n\n const [activeDescendantId, setActiveDescendantId] = useState(\"\");\n const movementContext = useMemo<KeyboardMovementContext>(\n () => ({\n config,\n loopable,\n searchable,\n horizontal,\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n }),\n [\n activeDescendantId,\n horizontal,\n includeDisabled,\n loopable,\n searchable,\n tabIndexBehavior,\n ]\n );\n const currentFocusIndex = useRef(-1);\n const mode = useUserInteractionMode();\n const refocus = useRef(false);\n\n if (process.env.NODE_ENV !== \"production\") {\n // this fixes issues during hot reloading and using the `useId()` hook\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n return () => {\n setActiveDescendantId(\"\");\n };\n }, []);\n }\n\n let tabIndex: number | undefined;\n if (tabIndexBehavior) {\n tabIndex =\n disabled || (tabIndexBehavior === \"roving\" && activeDescendantId)\n ? -1\n : 0;\n }\n\n return {\n movementProps: {\n \"aria-activedescendant\":\n tabIndexBehavior === \"virtual\" ? activeDescendantId : undefined,\n tabIndex,\n\n // Note: This used to be on the `onFocus` event, but this causes issues in\n // Chromium browsers for drag and drop behavior\n onClick(event) {\n onClick(event);\n if (disabled) {\n return;\n }\n\n // This makes it so you can click an element with a mouse and then\n // keyboard navigate from that element instead of the last keyboard focus\n // element\n const { currentTarget, target } = event;\n if (target === currentTarget || !(target instanceof HTMLElement)) {\n return;\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const focusedIndex = focusables.findIndex(\n (element) => element === target || element.contains(target)\n );\n if (focusedIndex === -1 || !focusables.length) {\n return;\n }\n\n currentFocusIndex.current = focusedIndex;\n const focused = focusables[focusedIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n // need to force focus back to the container element when using\n // aria activedescendant\n if (tabIndexBehavior === \"virtual\") {\n refocus.current = true;\n currentTarget.focus();\n }\n\n onFocusChange({\n index: focusedIndex,\n element: focused,\n });\n },\n onFocus(event) {\n onFocus(event);\n if (event.isPropagationStopped() || refocus.current) {\n refocus.current = false;\n return;\n }\n\n if (\n (mode !== \"keyboard\" && tabIndexBehavior !== \"virtual\") ||\n event.target !== event.currentTarget\n ) {\n return;\n }\n\n const focusables = getFocusableElements(\n event.currentTarget,\n programmatic\n );\n if (!focusables.length) {\n return;\n }\n\n let defaultFocusIndex = getDefaultFocusedIndex({\n focusables,\n includeDisabled,\n });\n\n // This allows my custom `getDefaultFocusedIndex` implementations to\n // have a nice fallback without having to re-implement the \"focus\n // first\" behavior\n if (!isNegativeOneAllowed && defaultFocusIndex === -1) {\n if (tabIndexBehavior === \"virtual\") {\n // virtual keyboard navigation **must** always focus at least one element\n defaultFocusIndex = getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n } else {\n defaultFocusIndex = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n }\n }\n\n if (defaultFocusIndex === -1) {\n return;\n }\n\n currentFocusIndex.current = defaultFocusIndex;\n const focused = focusables[defaultFocusIndex];\n if (tabIndexBehavior) {\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n } else {\n focused.scrollIntoView({ block: \"nearest\" });\n }\n\n onFocusChange({\n index: defaultFocusIndex,\n element: focused,\n });\n },\n onKeyDown(event) {\n onKeyDown(event);\n if (disabled) {\n return;\n }\n\n const { currentTarget } = event;\n\n const setFocusIndex = (\n index: number,\n focusables: readonly HTMLElement[]\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n if (currentFocusIndex.current === index || index === -1) {\n return;\n }\n\n currentFocusIndex.current = index;\n const focused = focusables[index];\n if (tabIndexBehavior) {\n focused.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n setActiveDescendantId(focused.id);\n }\n\n if (tabIndexBehavior !== \"virtual\") {\n focused.focus();\n }\n\n onFocusChange({\n index,\n element: focused,\n });\n };\n\n extendKeyDown({\n event,\n setFocusIndex,\n currentFocusIndex,\n setActiveDescendantId,\n ...movementContext,\n });\n\n if (event.isPropagationStopped()) {\n return;\n }\n\n // TODO: Figure this part out. This is currently required for the tree\n // movement when the asterisk key is pressed. There might be other cases\n // as well.\n if (!isNegativeOneAllowed && currentFocusIndex.current === -1) {\n currentFocusIndex.current = recalculateFocusIndex({\n focusables: getFocusableElements(currentTarget, programmatic),\n includeDisabled,\n tabIndexBehavior,\n activeDescendantId,\n });\n }\n\n const { key, shiftKey } = event;\n if (\n tabIndexBehavior === \"virtual\" &&\n activeDescendantId &&\n (key === \" \" || key === \"Enter\")\n ) {\n if (key === \" \") {\n event.preventDefault();\n }\n\n const focusables = getFocusableElements(currentTarget, programmatic);\n const activeElement = focusables[currentFocusIndex.current];\n if (!activeElement || isElementDisabled(activeElement)) {\n return;\n }\n\n activeElement.click();\n return;\n }\n\n const {\n incrementKeys,\n decrementKeys,\n jumpToFirstKeys,\n jumpToLastKeys,\n } = config.current;\n\n if (searchable && isSearchableEvent(event)) {\n const focusables = getFocusableElements(currentTarget, programmatic);\n const index = findMatchIndex({\n value: key,\n values: focusables.map((element) =>\n getSearchText(element, !isNotFocusable(element, includeDisabled))\n ),\n startIndex: shiftKey ? -1 : currentFocusIndex.current,\n });\n setFocusIndex(index, focusables);\n return;\n }\n\n const jumpToFirst = jumpToFirstKeys.includes(key);\n const jumpToLast = !jumpToFirst && jumpToLastKeys.includes(key);\n const increment =\n !jumpToFirst && !jumpToLast && incrementKeys.includes(key);\n const decrement =\n !jumpToFirst &&\n !jumpToLast &&\n !increment &&\n decrementKeys.includes(key);\n\n if (!jumpToFirst && !jumpToLast && !increment && !decrement) {\n return;\n }\n const focusables = getFocusableElements(currentTarget, programmatic);\n\n let index: number;\n if (jumpToFirst) {\n index = getFirstFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else if (jumpToLast) {\n index = getLastFocusableIndex({\n focusables,\n includeDisabled,\n });\n } else {\n index = getNextFocusableIndex({\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex: currentFocusIndex.current,\n });\n }\n\n setFocusIndex(index, focusables);\n },\n },\n movementContext,\n currentFocusIndex,\n activeDescendantId,\n setActiveDescendantId,\n };\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useRef","useState","getFocusableElements","defaultGetFocusableElements","useUserInteractionMode","useDir","useIsomorphicLayoutEffect","DEFAULT_KEYBOARD_MOVEMENT","DEFAULT_LTR_KEYBOARD_MOVEMENT","DEFAULT_RTL_KEYBOARD_MOVEMENT","findMatchIndex","getFirstFocusableIndex","getLastFocusableIndex","getNextFocusableIndex","getSearchText","getVirtualFocusDefaultIndex","isElementDisabled","isNotFocusable","isSearchableEvent","recalculateFocusIndex","context","config","current","loopable","searchable","horizontal","includeDisabled","tabIndexBehavior","undefined","activeDescendantId","displayName","Provider","KeyboardMovementProvider","useKeyboardMovementContext","noop","returnNegative1","useKeyboardMovementProvider","options","onClick","onFocus","onKeyDown","disabled","extendKeyDown","onFocusChange","programmatic","incrementKeys","propIncrementKeys","decrementKeys","propDecrementKeys","jumpToFirstKeys","propJumpToFirstKeys","jumpToLastKeys","propJumpToLastKeys","getDefaultFocusedIndex","isNegativeOneAllowed","isRTL","dir","defaults","configuration","setActiveDescendantId","movementContext","currentFocusIndex","mode","refocus","process","env","NODE_ENV","tabIndex","movementProps","event","currentTarget","target","HTMLElement","focusables","focusedIndex","findIndex","element","contains","length","focused","id","focus","index","isPropagationStopped","defaultFocusIndex","scrollIntoView","block","setFocusIndex","preventDefault","stopPropagation","inline","key","shiftKey","activeElement","click","value","values","map","startIndex","jumpToFirst","includes","jumpToLast","increment","decrement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/movement/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from \"react\";\nimport { loop } from \"../utils/loop.js\";\nimport { type FocusableIndexOptions, type TabIndexBehavior } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const isElementDisabled = (element: HTMLElement): boolean =>\n element.getAttribute(\"disabled\") !== null ||\n element.getAttribute(\"aria-disabled\") === \"true\";\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const isNotFocusable = (\n element: HTMLElement | undefined,\n includeDisabled: boolean\n): boolean => {\n if (!element) {\n return true;\n }\n\n if (includeDisabled) {\n return false;\n }\n\n return isElementDisabled(element);\n};\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface VirtualFocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n activeDescendantId: string;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const getVirtualFocusDefaultIndex = (\n options: VirtualFocusableIndexOptions\n): number => {\n const { focusables, includeDisabled, activeDescendantId } = options;\n if (!focusables.length || (!activeDescendantId && includeDisabled)) {\n return 0;\n }\n\n const activeIndex = focusables.findIndex((element) => {\n if (activeDescendantId) {\n return element.id === activeDescendantId;\n }\n\n return !isElementDisabled(element);\n });\n return Math.max(0, activeIndex);\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getFirstFocusableIndex = (\n options: FocusableIndexOptions\n): number => {\n const { focusables, includeDisabled } = options;\n\n if (!focusables.length) {\n return -1;\n }\n\n let firstIndex = 0;\n while (\n firstIndex < focusables.length - 1 &&\n isNotFocusable(focusables[firstIndex], includeDisabled)\n ) {\n firstIndex += 1;\n }\n\n if (isNotFocusable(focusables[firstIndex], includeDisabled)) {\n return -1;\n }\n\n return firstIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getLastFocusableIndex = (\n options: FocusableIndexOptions\n): number => {\n const { focusables, includeDisabled } = options;\n\n if (!focusables.length) {\n return -1;\n }\n\n let lastIndex = focusables.length - 1;\n while (\n lastIndex > 0 &&\n isNotFocusable(focusables[lastIndex], includeDisabled)\n ) {\n lastIndex -= 1;\n }\n\n if (isNotFocusable(focusables[lastIndex], includeDisabled)) {\n return -1;\n }\n\n return lastIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\ninterface NextFocusableIndexOptions extends FocusableIndexOptions {\n loopable: boolean;\n increment: boolean;\n currentFocusIndex: number;\n}\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getNextFocusableIndex = (\n options: NextFocusableIndexOptions\n): number => {\n const {\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex,\n } = options;\n if (!focusables.length) {\n return currentFocusIndex;\n }\n\n const min = getFirstFocusableIndex({ focusables, includeDisabled });\n const max = getLastFocusableIndex({ focusables, includeDisabled });\n let nextIndex = loop({\n min,\n max,\n value: currentFocusIndex,\n minmax: !loopable,\n increment,\n });\n while (\n isNotFocusable(focusables[nextIndex], includeDisabled) &&\n (loopable || nextIndex !== (increment ? max : min))\n ) {\n nextIndex = loop({\n min,\n max,\n value: nextIndex,\n minmax: !loopable,\n increment,\n });\n }\n\n // Since the `min` and `max` values are \"safely\" set, I don't need to verify\n // the nextIndex is still focusable\n return nextIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport function getSearchText(\n element: HTMLElement,\n searchable: boolean\n): string {\n if (!searchable) {\n return \"\";\n }\n\n const cloned = element.cloneNode(true) as HTMLElement;\n cloned\n .querySelectorAll(\n // Note: do not include DISPLAY_NONE_CLASS since it is presentational only\n \".rmd-icon--font,[aria-hidden=true],[hidden],[role=presentation]\"\n )\n .forEach((element) => {\n element.parentNode?.removeChild(element);\n });\n\n // Note: It would be good to use `cloned.innerText` (maybe?) at some point,\n // but it returns `undefined` in jsdom. It also does cause a reflow, so maybe\n // this is fine?\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#differences_from_innertext\n return (cloned.textContent || \"\")[0].toUpperCase();\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RecalculateOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n tabIndexBehavior: TabIndexBehavior | undefined;\n activeDescendantId: string;\n}\n\n/**\n * This was added to help with specific widgets that cause focus index to change\n * between renders (i.e. expanding all tree items on the same level with `*`).\n * There might be a better way to handle this in the future.\n *\n * @since 6.0.0\n * @internal\n */\nexport function recalculateFocusIndex(options: RecalculateOptions): number {\n const { focusables, includeDisabled, tabIndexBehavior, activeDescendantId } =\n options;\n if (tabIndexBehavior === \"virtual\") {\n return getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n }\n\n const { activeElement } = document;\n return focusables.findIndex((element) => element === activeElement);\n}\n\n/**\n * Checks if a keyboard event can trigger a search through focusable elements\n * by:\n *\n * - checking if the key is a single letter that is not the space key\n * - checking that the alt, ctrl, and meta keys are not being held\n *\n * The shift key **is allowed** because holding shift means \"search from the\n * beginning\" instead of \"search from current location\".\n *\n * @since 6.0.0\n * @internal\n */\nexport function isSearchableEvent(event: KeyboardEvent): boolean {\n const { key, altKey, ctrlKey, metaKey } = event;\n\n return (\n key.length === 1 &&\n // can't search with space since it is generally a click event\n key !== \" \" &&\n !altKey &&\n !ctrlKey &&\n !metaKey\n );\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport function isTypeEvent(event: KeyboardEvent): boolean {\n return (\n isSearchableEvent(event) || [\"Backspace\", \"Delete\", \" \"].includes(event.key)\n );\n}\n"],"names":["loop","isElementDisabled","element","getAttribute","isNotFocusable","includeDisabled","getVirtualFocusDefaultIndex","options","focusables","activeDescendantId","length","activeIndex","findIndex","id","Math","max","getFirstFocusableIndex","firstIndex","getLastFocusableIndex","lastIndex","getNextFocusableIndex","loopable","increment","currentFocusIndex","min","nextIndex","value","minmax","getSearchText","searchable","cloned","cloneNode","querySelectorAll","forEach","parentNode","removeChild","textContent","toUpperCase","recalculateFocusIndex","tabIndexBehavior","activeElement","document","isSearchableEvent","event","key","altKey","ctrlKey","metaKey","isTypeEvent","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,IAAI,QAAQ,mBAAmB;AAGxC;;;CAGC,GACD,OAAO,MAAMC,oBAAoB,CAACC,UAChCA,QAAQC,YAAY,CAAC,gBAAgB,QACrCD,QAAQC,YAAY,CAAC,qBAAqB,OAAO;AAEnD;;;CAGC,GACD,OAAO,MAAMC,iBAAiB,CAC5BF,SACAG;IAEA,IAAI,CAACH,SAAS;QACZ,OAAO;IACT;IAEA,IAAIG,iBAAiB;QACnB,OAAO;IACT;IAEA,OAAOJ,kBAAkBC;AAC3B,EAAE;AAYF;;;CAGC,GACD,OAAO,MAAMI,8BAA8B,CACzCC;IAEA,MAAM,EAAEC,UAAU,EAAEH,eAAe,EAAEI,kBAAkB,EAAE,GAAGF;IAC5D,IAAI,CAACC,WAAWE,MAAM,IAAK,CAACD,sBAAsBJ,iBAAkB;QAClE,OAAO;IACT;IAEA,MAAMM,cAAcH,WAAWI,SAAS,CAAC,CAACV;QACxC,IAAIO,oBAAoB;YACtB,OAAOP,QAAQW,EAAE,KAAKJ;QACxB;QAEA,OAAO,CAACR,kBAAkBC;IAC5B;IACA,OAAOY,KAAKC,GAAG,CAAC,GAAGJ;AACrB,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMK,yBAAyB,CACpCT;IAEA,MAAM,EAAEC,UAAU,EAAEH,eAAe,EAAE,GAAGE;IAExC,IAAI,CAACC,WAAWE,MAAM,EAAE;QACtB,OAAO,CAAC;IACV;IAEA,IAAIO,aAAa;IACjB,MACEA,aAAaT,WAAWE,MAAM,GAAG,KACjCN,eAAeI,UAAU,CAACS,WAAW,EAAEZ,iBACvC;QACAY,cAAc;IAChB;IAEA,IAAIb,eAAeI,UAAU,CAACS,WAAW,EAAEZ,kBAAkB;QAC3D,OAAO,CAAC;IACV;IAEA,OAAOY;AACT,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMC,wBAAwB,CACnCX;IAEA,MAAM,EAAEC,UAAU,EAAEH,eAAe,EAAE,GAAGE;IAExC,IAAI,CAACC,WAAWE,MAAM,EAAE;QACtB,OAAO,CAAC;IACV;IAEA,IAAIS,YAAYX,WAAWE,MAAM,GAAG;IACpC,MACES,YAAY,KACZf,eAAeI,UAAU,CAACW,UAAU,EAAEd,iBACtC;QACAc,aAAa;IACf;IAEA,IAAIf,eAAeI,UAAU,CAACW,UAAU,EAAEd,kBAAkB;QAC1D,OAAO,CAAC;IACV;IAEA,OAAOc;AACT,EAAE;AAYF;;;CAGC,GACD,OAAO,MAAMC,wBAAwB,CACnCb;IAEA,MAAM,EACJc,QAAQ,EACRC,SAAS,EACTd,UAAU,EACVH,eAAe,EACfkB,iBAAiB,EAClB,GAAGhB;IACJ,IAAI,CAACC,WAAWE,MAAM,EAAE;QACtB,OAAOa;IACT;IAEA,MAAMC,MAAMR,uBAAuB;QAAER;QAAYH;IAAgB;IACjE,MAAMU,MAAMG,sBAAsB;QAAEV;QAAYH;IAAgB;IAChE,IAAIoB,YAAYzB,KAAK;QACnBwB;QACAT;QACAW,OAAOH;QACPI,QAAQ,CAACN;QACTC;IACF;IACA,MACElB,eAAeI,UAAU,CAACiB,UAAU,EAAEpB,oBACrCgB,CAAAA,YAAYI,cAAeH,CAAAA,YAAYP,MAAMS,GAAE,CAAC,EACjD;QACAC,YAAYzB,KAAK;YACfwB;YACAT;YACAW,OAAOD;YACPE,QAAQ,CAACN;YACTC;QACF;IACF;IAEA,4EAA4E;IAC5E,mCAAmC;IACnC,OAAOG;AACT,EAAE;AAEF;;;CAGC,GACD,OAAO,SAASG,cACd1B,OAAoB,EACpB2B,UAAmB;IAEnB,IAAI,CAACA,YAAY;QACf,OAAO;IACT;IAEA,MAAMC,SAAS5B,QAAQ6B,SAAS,CAAC;IACjCD,OACGE,gBAAgB,CACf,0EAA0E;IAC1E,mEAEDC,OAAO,CAAC,CAAC/B;QACRA,QAAQgC,UAAU,EAAEC,YAAYjC;IAClC;IAEF,2EAA2E;IAC3E,6EAA6E;IAC7E,gBAAgB;IAChB,+FAA+F;IAC/F,OAAO,AAAC4B,CAAAA,OAAOM,WAAW,IAAI,EAAC,CAAE,CAAC,EAAE,CAACC,WAAW;AAClD;AAaA;;;;;;;CAOC,GACD,OAAO,SAASC,sBAAsB/B,OAA2B;IAC/D,MAAM,EAAEC,UAAU,EAAEH,eAAe,EAAEkC,gBAAgB,EAAE9B,kBAAkB,EAAE,GACzEF;IACF,IAAIgC,qBAAqB,WAAW;QAClC,OAAOjC,4BAA4B;YACjCE;YACAH;YACAI;QACF;IACF;IAEA,MAAM,EAAE+B,aAAa,EAAE,GAAGC;IAC1B,OAAOjC,WAAWI,SAAS,CAAC,CAACV,UAAYA,YAAYsC;AACvD;AAEA;;;;;;;;;;;;CAYC,GACD,OAAO,SAASE,kBAAkBC,KAAoB;IACpD,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGJ;IAE1C,OACEC,IAAIlC,MAAM,KAAK,KACf,8DAA8D;IAC9DkC,QAAQ,OACR,CAACC,UACD,CAACC,WACD,CAACC;AAEL;AAEA;;;CAGC,GACD,OAAO,SAASC,YAAYL,KAAoB;IAC9C,OACED,kBAAkBC,UAAU;QAAC;QAAa;QAAU;KAAI,CAACM,QAAQ,CAACN,MAAMC,GAAG;AAE/E"}
1
+ {"version":3,"sources":["../../src/movement/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from \"react\";\nimport { loop } from \"../utils/loop.js\";\nimport { type FocusableIndexOptions, type TabIndexBehavior } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const isElementDisabled = (element: HTMLElement): boolean =>\n element.getAttribute(\"disabled\") !== null ||\n element.getAttribute(\"aria-disabled\") === \"true\";\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const isNotFocusable = (\n element: HTMLElement | undefined,\n includeDisabled: boolean\n): boolean => {\n if (!element) {\n return true;\n }\n\n if (includeDisabled) {\n return false;\n }\n\n return isElementDisabled(element);\n};\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface VirtualFocusableIndexOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n activeDescendantId: string;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const getVirtualFocusDefaultIndex = (\n options: VirtualFocusableIndexOptions\n): number => {\n const { focusables, includeDisabled, activeDescendantId } = options;\n if (!focusables.length || (!activeDescendantId && includeDisabled)) {\n return 0;\n }\n\n const activeIndex = focusables.findIndex((element) => {\n if (activeDescendantId) {\n return element.id === activeDescendantId;\n }\n\n return !isElementDisabled(element);\n });\n return Math.max(0, activeIndex);\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getFirstFocusableIndex = (\n options: FocusableIndexOptions\n): number => {\n const { focusables, includeDisabled } = options;\n\n if (!focusables.length) {\n return -1;\n }\n\n let firstIndex = 0;\n while (\n firstIndex < focusables.length - 1 &&\n isNotFocusable(focusables[firstIndex], includeDisabled)\n ) {\n firstIndex += 1;\n }\n\n if (isNotFocusable(focusables[firstIndex], includeDisabled)) {\n return -1;\n }\n\n return firstIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getLastFocusableIndex = (\n options: FocusableIndexOptions\n): number => {\n const { focusables, includeDisabled } = options;\n\n if (!focusables.length) {\n return -1;\n }\n\n let lastIndex = focusables.length - 1;\n while (\n lastIndex > 0 &&\n isNotFocusable(focusables[lastIndex], includeDisabled)\n ) {\n lastIndex -= 1;\n }\n\n if (isNotFocusable(focusables[lastIndex], includeDisabled)) {\n return -1;\n }\n\n return lastIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\ninterface NextFocusableIndexOptions extends FocusableIndexOptions {\n loopable: boolean;\n increment: boolean;\n currentFocusIndex: number;\n}\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport const getNextFocusableIndex = (\n options: NextFocusableIndexOptions\n): number => {\n const {\n loopable,\n increment,\n focusables,\n includeDisabled,\n currentFocusIndex,\n } = options;\n if (!focusables.length) {\n return currentFocusIndex;\n }\n\n const min = getFirstFocusableIndex({ focusables, includeDisabled });\n const max = getLastFocusableIndex({ focusables, includeDisabled });\n let nextIndex = loop({\n min,\n max,\n value: currentFocusIndex,\n minmax: !loopable,\n increment,\n });\n while (\n isNotFocusable(focusables[nextIndex], includeDisabled) &&\n (loopable || nextIndex !== (increment ? max : min))\n ) {\n nextIndex = loop({\n min,\n max,\n value: nextIndex,\n minmax: !loopable,\n increment,\n });\n }\n\n // Since the `min` and `max` values are \"safely\" set, I don't need to verify\n // the nextIndex is still focusable\n return nextIndex;\n};\n\n/**\n * @since 5.0.0\n * @internal\n */\nexport function getSearchText(\n element: HTMLElement,\n searchable: boolean\n): string {\n if (!searchable) {\n return \"\";\n }\n\n const cloned = element.cloneNode(true) as HTMLElement;\n cloned\n .querySelectorAll(\n // Note: do not include DISPLAY_NONE_CLASS since it is presentational only\n \".rmd-icon--font,[aria-hidden=true],[hidden],[role=presentation]\"\n )\n .forEach((element) => {\n element.parentNode?.removeChild(element);\n });\n\n // Note: It would be good to use `cloned.innerText` (maybe?) at some point,\n // but it returns `undefined` in jsdom. It also does cause a reflow, so maybe\n // this is fine?\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#differences_from_innertext\n return (cloned.textContent || \"\")[0].toUpperCase();\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface RecalculateOptions {\n focusables: readonly HTMLElement[];\n includeDisabled: boolean;\n tabIndexBehavior: TabIndexBehavior | undefined;\n activeDescendantId: string;\n}\n\n/**\n * This was added to help with specific widgets that cause focus index to change\n * between renders (i.e. expanding all tree items on the same level with `*`).\n * There might be a better way to handle this in the future.\n *\n * @since 6.0.0\n * @internal\n */\nexport function recalculateFocusIndex(options: RecalculateOptions): number {\n const { focusables, includeDisabled, tabIndexBehavior, activeDescendantId } =\n options;\n if (tabIndexBehavior === \"virtual\") {\n return getVirtualFocusDefaultIndex({\n focusables,\n includeDisabled,\n activeDescendantId,\n });\n }\n\n const { activeElement } = document;\n return focusables.findIndex((element) => element === activeElement);\n}\n\n/**\n * Checks if a keyboard event can trigger a search through focusable elements\n * by:\n *\n * - checking if the key is a single letter that is not the space key\n * - checking that the alt, ctrl, and meta keys are not being held\n *\n * The shift key **is allowed** because holding shift means \"search from the\n * beginning\" instead of \"search from current location\".\n *\n * @since 6.0.0\n * @internal\n */\nexport function isSearchableEvent(event: KeyboardEvent): boolean {\n const { key, altKey, ctrlKey, metaKey } = event;\n\n return (\n key.length === 1 &&\n // can't search with space since it is generally a click event\n key !== \" \" &&\n !altKey &&\n !ctrlKey &&\n !metaKey\n );\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport function isTypeEvent(event: KeyboardEvent): boolean {\n return (\n isSearchableEvent(event) || [\"Backspace\", \"Delete\", \" \"].includes(event.key)\n );\n}\n"],"names":["loop","isElementDisabled","element","getAttribute","isNotFocusable","includeDisabled","getVirtualFocusDefaultIndex","options","focusables","activeDescendantId","length","activeIndex","findIndex","id","Math","max","getFirstFocusableIndex","firstIndex","getLastFocusableIndex","lastIndex","getNextFocusableIndex","loopable","increment","currentFocusIndex","min","nextIndex","value","minmax","getSearchText","searchable","cloned","cloneNode","querySelectorAll","forEach","parentNode","removeChild","textContent","toUpperCase","recalculateFocusIndex","tabIndexBehavior","activeElement","document","isSearchableEvent","event","key","altKey","ctrlKey","metaKey","isTypeEvent","includes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/navigation/CollapsibleNavGroup.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type LiHTMLAttributes, type ReactNode } from \"react\";\nimport { type ButtonProps } from \"../button/Button.js\";\nimport { useCollapseTransition } from \"../transition/useCollapseTransition.js\";\nimport { type PropsWithRef, type UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { NavGroup, type NavGroupProps } from \"./NavGroup.js\";\nimport { NavItem } from \"./NavItem.js\";\nimport {\n NavItemButton,\n type NavItemButtonRotatorProps,\n} from \"./NavItemButton.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport interface CollapsibleNavGroupProps\n extends NavGroupProps,\n NavItemButtonRotatorProps {\n liProps?: PropsWithRef<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n buttonProps?: PropsWithRef<ButtonProps, HTMLButtonElement>;\n\n /**\n * The children to render in the {@link NavItemButton} that toggles the\n * collapsed state\n */\n buttonChildren: ReactNode;\n\n /**\n * The content that should be rendered in the non-collapsed {@link NavGroup}.\n */\n children: ReactNode;\n\n /** @defaultValue `false` */\n defaultCollapsed?: UseStateInitializer<boolean>;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n */\nexport const CollapsibleNavGroup = forwardRef<\n HTMLUListElement,\n CollapsibleNavGroupProps\n>(function CollapsibleNavGroup(props, ref) {\n const {\n liProps,\n buttonProps,\n buttonChildren,\n icon,\n iconRotatorProps,\n disableIconRotator,\n className,\n children,\n defaultCollapsed,\n ...remaining\n } = props;\n\n const { toggled: collapsed, toggle } = useToggle(defaultCollapsed);\n const { rendered, elementProps } = useCollapseTransition({\n nodeRef: ref,\n className,\n transitionIn: !collapsed,\n });\n const onButtonClick = buttonProps?.onClick ?? noop;\n\n return (\n <NavItem {...liProps}>\n <NavItemButton\n {...buttonProps}\n onClick={(event) => {\n onButtonClick(event);\n toggle();\n }}\n collapsed={collapsed}\n icon={icon}\n iconRotatorProps={iconRotatorProps}\n disableIconRotator={disableIconRotator}\n >\n {buttonChildren}\n </NavItemButton>\n {rendered && (\n <NavGroup {...remaining} {...elementProps}>\n {children}\n </NavGroup>\n )}\n </NavItem>\n );\n});\n"],"names":["forwardRef","useCollapseTransition","useToggle","NavGroup","NavItem","NavItemButton","noop","CollapsibleNavGroup","props","ref","liProps","buttonProps","buttonChildren","icon","iconRotatorProps","disableIconRotator","className","children","defaultCollapsed","remaining","toggled","collapsed","toggle","rendered","elementProps","nodeRef","transitionIn","onButtonClick","onClick","event"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAA+C,QAAQ;AAE1E,SAASC,qBAAqB,QAAQ,yCAAyC;AAE/E,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,QAAQ,QAA4B,gBAAgB;AAC7D,SAASC,OAAO,QAAQ,eAAe;AACvC,SACEC,aAAa,QAER,qBAAqB;AAE5B,MAAMC,OAAO;AACX,aAAa;AACf;AA0BA;;;;CAIC,GACD,OAAO,MAAMC,oCAAsBP,WAGjC,SAASO,oBAAoBC,KAAK,EAAEC,GAAG;IACvC,MAAM,EACJC,OAAO,EACPC,WAAW,EACXC,cAAc,EACdC,IAAI,EACJC,gBAAgB,EAChBC,kBAAkB,EAClBC,SAAS,EACTC,QAAQ,EACRC,gBAAgB,EAChB,GAAGC,WACJ,GAAGX;IAEJ,MAAM,EAAEY,SAASC,SAAS,EAAEC,MAAM,EAAE,GAAGpB,UAAUgB;IACjD,MAAM,EAAEK,QAAQ,EAAEC,YAAY,EAAE,GAAGvB,sBAAsB;QACvDwB,SAAShB;QACTO;QACAU,cAAc,CAACL;IACjB;IACA,MAAMM,gBAAgBhB,aAAaiB,WAAWtB;IAE9C,qBACE,MAACF;QAAS,GAAGM,OAAO;;0BAClB,KAACL;gBACE,GAAGM,WAAW;gBACfiB,SAAS,CAACC;oBACRF,cAAcE;oBACdP;gBACF;gBACAD,WAAWA;gBACXR,MAAMA;gBACNC,kBAAkBA;gBAClBC,oBAAoBA;0BAEnBH;;YAEFW,0BACC,KAACpB;gBAAU,GAAGgB,SAAS;gBAAG,GAAGK,YAAY;0BACtCP;;;;AAKX,GAAG"}
1
+ {"version":3,"sources":["../../src/navigation/CollapsibleNavGroup.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type LiHTMLAttributes, type ReactNode } from \"react\";\nimport { type ButtonProps } from \"../button/Button.js\";\nimport { useCollapseTransition } from \"../transition/useCollapseTransition.js\";\nimport { type PropsWithRef, type UseStateInitializer } from \"../types.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { NavGroup, type NavGroupProps } from \"./NavGroup.js\";\nimport { NavItem } from \"./NavItem.js\";\nimport {\n NavItemButton,\n type NavItemButtonRotatorProps,\n} from \"./NavItemButton.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 6.0.0\n */\nexport interface CollapsibleNavGroupProps\n extends NavGroupProps,\n NavItemButtonRotatorProps {\n liProps?: PropsWithRef<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n buttonProps?: PropsWithRef<ButtonProps, HTMLButtonElement>;\n\n /**\n * The children to render in the {@link NavItemButton} that toggles the\n * collapsed state\n */\n buttonChildren: ReactNode;\n\n /**\n * The content that should be rendered in the non-collapsed {@link NavGroup}.\n */\n children: ReactNode;\n\n /** @defaultValue `false` */\n defaultCollapsed?: UseStateInitializer<boolean>;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n */\nexport const CollapsibleNavGroup = forwardRef<\n HTMLUListElement,\n CollapsibleNavGroupProps\n>(function CollapsibleNavGroup(props, ref) {\n const {\n liProps,\n buttonProps,\n buttonChildren,\n icon,\n iconRotatorProps,\n disableIconRotator,\n className,\n children,\n defaultCollapsed,\n ...remaining\n } = props;\n\n const { toggled: collapsed, toggle } = useToggle(defaultCollapsed);\n const { rendered, elementProps } = useCollapseTransition({\n nodeRef: ref,\n className,\n transitionIn: !collapsed,\n });\n const onButtonClick = buttonProps?.onClick ?? noop;\n\n return (\n <NavItem {...liProps}>\n <NavItemButton\n {...buttonProps}\n onClick={(event) => {\n onButtonClick(event);\n toggle();\n }}\n collapsed={collapsed}\n icon={icon}\n iconRotatorProps={iconRotatorProps}\n disableIconRotator={disableIconRotator}\n >\n {buttonChildren}\n </NavItemButton>\n {rendered && (\n <NavGroup {...remaining} {...elementProps}>\n {children}\n </NavGroup>\n )}\n </NavItem>\n );\n});\n"],"names":["forwardRef","useCollapseTransition","useToggle","NavGroup","NavItem","NavItemButton","noop","CollapsibleNavGroup","props","ref","liProps","buttonProps","buttonChildren","icon","iconRotatorProps","disableIconRotator","className","children","defaultCollapsed","remaining","toggled","collapsed","toggle","rendered","elementProps","nodeRef","transitionIn","onButtonClick","onClick","event"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA+C,QAAQ;AAE1E,SAASC,qBAAqB,QAAQ,yCAAyC;AAE/E,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,QAAQ,QAA4B,gBAAgB;AAC7D,SAASC,OAAO,QAAQ,eAAe;AACvC,SACEC,aAAa,QAER,qBAAqB;AAE5B,MAAMC,OAAO;AACX,aAAa;AACf;AA0BA;;;;CAIC,GACD,OAAO,MAAMC,oCAAsBP,WAGjC,SAASO,oBAAoBC,KAAK,EAAEC,GAAG;IACvC,MAAM,EACJC,OAAO,EACPC,WAAW,EACXC,cAAc,EACdC,IAAI,EACJC,gBAAgB,EAChBC,kBAAkB,EAClBC,SAAS,EACTC,QAAQ,EACRC,gBAAgB,EAChB,GAAGC,WACJ,GAAGX;IAEJ,MAAM,EAAEY,SAASC,SAAS,EAAEC,MAAM,EAAE,GAAGpB,UAAUgB;IACjD,MAAM,EAAEK,QAAQ,EAAEC,YAAY,EAAE,GAAGvB,sBAAsB;QACvDwB,SAAShB;QACTO;QACAU,cAAc,CAACL;IACjB;IACA,MAAMM,gBAAgBhB,aAAaiB,WAAWtB;IAE9C,qBACE,MAACF;QAAS,GAAGM,OAAO;;0BAClB,KAACL;gBACE,GAAGM,WAAW;gBACfiB,SAAS,CAACC;oBACRF,cAAcE;oBACdP;gBACF;gBACAD,WAAWA;gBACXR,MAAMA;gBACNC,kBAAkBA;gBAClBC,oBAAoBA;0BAEnBH;;YAEFW,0BACC,KAACpB;gBAAU,GAAGgB,SAAS;gBAAG,GAAGK,YAAY;0BACtCP;;;;AAKX,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/navigation/DefaultNavigationRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { Divider } from \"../divider/Divider.js\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.js\";\nimport { CollapsibleNavGroup } from \"./CollapsibleNavGroup.js\";\nimport { NavItemLink } from \"./NavItemLink.js\";\nimport { NavSubheader } from \"./NavSubheader.js\";\nimport { getHrefFromParents } from \"./getHrefFromParents.js\";\nimport { type NavigationItem, type NavigationRenderData } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface DefaultNavigationRendererProps<\n Item extends NavigationItem = NavigationItem,\n Data extends NavigationRenderData = NavigationRenderData,\n> extends RenderRecursiveItemsProps<Item, Data> {}\n\n/**\n * **Client Component**\n *\n * The default behavior is attempt to render in order:\n * - `const { type, items, ...props } = item`\n * - `type === \"divider\"` - `<Divider {...props} />`\n * - `type === \"subheader\"` - `<NavSubheader {...props} />`\n * - `type === \"group\"` - `<><NavSubheader {...props} />{children}</>`\n * - `!!items` - `<CollapsibleNavGroup />`\n * - `<NavItemLink {...item} as={linkComponent} active={pathname === href} />`\n *\n * @since 6.0.0\n */\nexport function DefaultNavigationRenderer<\n Item extends NavigationItem,\n Data extends NavigationRenderData,\n>(props: DefaultNavigationRendererProps<Item, Data>): ReactElement {\n const { item, data, children, parents } = props;\n switch (item.type) {\n case \"divider\": {\n const { type: _type, items: _items, ...divider } = item;\n return <Divider {...divider} />;\n }\n case \"subheader\": {\n const { type: _type, items: _items, ...subheader } = item;\n return <NavSubheader {...subheader} />;\n }\n }\n\n if (item.items) {\n const nextParents = [item, ...parents];\n return (\n <CollapsibleNavGroup\n depth={nextParents.length}\n defaultCollapsed={() =>\n !data?.pathname.includes(getHrefFromParents(nextParents))\n }\n buttonChildren={item.children}\n >\n {children}\n </CollapsibleNavGroup>\n );\n }\n\n const href = `${getHrefFromParents(parents)}${item.href}`;\n return (\n <NavItemLink\n {...item}\n as={data?.linkComponent}\n active={(\"active\" in item && !!item.active) || data?.pathname === href}\n href={href}\n />\n );\n}\n"],"names":["Divider","CollapsibleNavGroup","NavItemLink","NavSubheader","getHrefFromParents","DefaultNavigationRenderer","props","item","data","children","parents","type","_type","items","_items","divider","subheader","nextParents","depth","length","defaultCollapsed","pathname","includes","buttonChildren","href","as","linkComponent","active"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AACA,SAASA,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,kBAAkB,QAAQ,0BAA0B;AAW7D;;;;;;;;;;;;CAYC,GACD,OAAO,SAASC,0BAGdC,KAAiD;IACjD,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGJ;IAC1C,OAAQC,KAAKI,IAAI;QACf,KAAK;YAAW;gBACd,MAAM,EAAEA,MAAMC,KAAK,EAAEC,OAAOC,MAAM,EAAE,GAAGC,SAAS,GAAGR;gBACnD,qBAAO,KAACP;oBAAS,GAAGe,OAAO;;YAC7B;QACA,KAAK;YAAa;gBAChB,MAAM,EAAEJ,MAAMC,KAAK,EAAEC,OAAOC,MAAM,EAAE,GAAGE,WAAW,GAAGT;gBACrD,qBAAO,KAACJ;oBAAc,GAAGa,SAAS;;YACpC;IACF;IAEA,IAAIT,KAAKM,KAAK,EAAE;QACd,MAAMI,cAAc;YAACV;eAASG;SAAQ;QACtC,qBACE,KAACT;YACCiB,OAAOD,YAAYE,MAAM;YACzBC,kBAAkB,IAChB,CAACZ,MAAMa,SAASC,SAASlB,mBAAmBa;YAE9CM,gBAAgBhB,KAAKE,QAAQ;sBAE5BA;;IAGP;IAEA,MAAMe,OAAO,CAAC,EAAEpB,mBAAmBM,SAAS,EAAEH,KAAKiB,IAAI,CAAC,CAAC;IACzD,qBACE,KAACtB;QACE,GAAGK,IAAI;QACRkB,IAAIjB,MAAMkB;QACVC,QAAQ,AAAC,YAAYpB,QAAQ,CAAC,CAACA,KAAKoB,MAAM,IAAKnB,MAAMa,aAAaG;QAClEA,MAAMA;;AAGZ"}
1
+ {"version":3,"sources":["../../src/navigation/DefaultNavigationRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { Divider } from \"../divider/Divider.js\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.js\";\nimport { CollapsibleNavGroup } from \"./CollapsibleNavGroup.js\";\nimport { NavItemLink } from \"./NavItemLink.js\";\nimport { NavSubheader } from \"./NavSubheader.js\";\nimport { getHrefFromParents } from \"./getHrefFromParents.js\";\nimport { type NavigationItem, type NavigationRenderData } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface DefaultNavigationRendererProps<\n Item extends NavigationItem = NavigationItem,\n Data extends NavigationRenderData = NavigationRenderData,\n> extends RenderRecursiveItemsProps<Item, Data> {}\n\n/**\n * **Client Component**\n *\n * The default behavior is attempt to render in order:\n * - `const { type, items, ...props } = item`\n * - `type === \"divider\"` - `<Divider {...props} />`\n * - `type === \"subheader\"` - `<NavSubheader {...props} />`\n * - `type === \"group\"` - `<><NavSubheader {...props} />{children}</>`\n * - `!!items` - `<CollapsibleNavGroup />`\n * - `<NavItemLink {...item} as={linkComponent} active={pathname === href} />`\n *\n * @since 6.0.0\n */\nexport function DefaultNavigationRenderer<\n Item extends NavigationItem,\n Data extends NavigationRenderData,\n>(props: DefaultNavigationRendererProps<Item, Data>): ReactElement {\n const { item, data, children, parents } = props;\n switch (item.type) {\n case \"divider\": {\n const { type: _type, items: _items, ...divider } = item;\n return <Divider {...divider} />;\n }\n case \"subheader\": {\n const { type: _type, items: _items, ...subheader } = item;\n return <NavSubheader {...subheader} />;\n }\n }\n\n if (item.items) {\n const nextParents = [item, ...parents];\n return (\n <CollapsibleNavGroup\n depth={nextParents.length}\n defaultCollapsed={() =>\n !data?.pathname.includes(getHrefFromParents(nextParents))\n }\n buttonChildren={item.children}\n >\n {children}\n </CollapsibleNavGroup>\n );\n }\n\n const href = `${getHrefFromParents(parents)}${item.href}`;\n return (\n <NavItemLink\n {...item}\n as={data?.linkComponent}\n active={(\"active\" in item && !!item.active) || data?.pathname === href}\n href={href}\n />\n );\n}\n"],"names":["Divider","CollapsibleNavGroup","NavItemLink","NavSubheader","getHrefFromParents","DefaultNavigationRenderer","props","item","data","children","parents","type","_type","items","_items","divider","subheader","nextParents","depth","length","defaultCollapsed","pathname","includes","buttonChildren","href","as","linkComponent","active"],"mappings":";AACA,SAASA,OAAO,QAAQ,wBAAwB;AAEhD,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,kBAAkB,QAAQ,0BAA0B;AAW7D;;;;;;;;;;;;CAYC,GACD,OAAO,SAASC,0BAGdC,KAAiD;IACjD,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGJ;IAC1C,OAAQC,KAAKI,IAAI;QACf,KAAK;YAAW;gBACd,MAAM,EAAEA,MAAMC,KAAK,EAAEC,OAAOC,MAAM,EAAE,GAAGC,SAAS,GAAGR;gBACnD,qBAAO,KAACP;oBAAS,GAAGe,OAAO;;YAC7B;QACA,KAAK;YAAa;gBAChB,MAAM,EAAEJ,MAAMC,KAAK,EAAEC,OAAOC,MAAM,EAAE,GAAGE,WAAW,GAAGT;gBACrD,qBAAO,KAACJ;oBAAc,GAAGa,SAAS;;YACpC;IACF;IAEA,IAAIT,KAAKM,KAAK,EAAE;QACd,MAAMI,cAAc;YAACV;eAASG;SAAQ;QACtC,qBACE,KAACT;YACCiB,OAAOD,YAAYE,MAAM;YACzBC,kBAAkB,IAChB,CAACZ,MAAMa,SAASC,SAASlB,mBAAmBa;YAE9CM,gBAAgBhB,KAAKE,QAAQ;sBAE5BA;;IAGP;IAEA,MAAMe,OAAO,CAAC,EAAEpB,mBAAmBM,SAAS,EAAEH,KAAKiB,IAAI,CAAC,CAAC;IACzD,qBACE,KAACtB;QACE,GAAGK,IAAI;QACRkB,IAAIjB,MAAMkB;QACVC,QAAQ,AAAC,YAAYpB,QAAQ,CAAC,CAACA,KAAKoB,MAAM,IAAKnB,MAAMa,aAAaG;QAClEA,MAAMA;;AAGZ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/navigation/NavGroup.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { List, type ListProps } from \"../list/List.js\";\nimport { navGroup } from \"./navGroupStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavGroupProps extends ListProps {\n depth: number;\n children: ReactNode;\n}\n\n/**\n * **Server Component**\n *\n * A simple wrapper around the {@link Link} component that ads the\n * `--rmd-tree-depth: depth` custom property to allow for incremented padding.\n *\n * @since 6.0.0\n */\nexport const NavGroup = forwardRef<HTMLUListElement, NavGroupProps>(\n function NavGroup(props, ref) {\n const { style, depth, className, children, ...remaining } = props;\n\n return (\n <List\n {...remaining}\n ref={ref}\n style={{ ...style, \"--rmd-tree-depth\": depth }}\n className={navGroup({\n className,\n disablePadding: depth > 0,\n })}\n >\n {children}\n </List>\n );\n }\n);\n"],"names":["forwardRef","List","navGroup","NavGroup","props","ref","style","depth","className","children","remaining","disablePadding"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,UAAU,QAAwB,QAAQ;AACnD,SAASC,IAAI,QAAwB,kBAAkB;AACvD,SAASC,QAAQ,QAAQ,sBAAsB;AAU/C;;;;;;;CAOC,GACD,OAAO,MAAMC,yBAAWH,WACtB,SAASG,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,WAAW,GAAGN;IAE5D,qBACE,KAACH;QACE,GAAGS,SAAS;QACbL,KAAKA;QACLC,OAAO;YAAE,GAAGA,KAAK;YAAE,oBAAoBC;QAAM;QAC7CC,WAAWN,SAAS;YAClBM;YACAG,gBAAgBJ,QAAQ;QAC1B;kBAECE;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/navigation/NavGroup.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { List, type ListProps } from \"../list/List.js\";\nimport { navGroup } from \"./navGroupStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavGroupProps extends ListProps {\n depth: number;\n children: ReactNode;\n}\n\n/**\n * **Server Component**\n *\n * A simple wrapper around the {@link Link} component that ads the\n * `--rmd-tree-depth: depth` custom property to allow for incremented padding.\n *\n * @since 6.0.0\n */\nexport const NavGroup = forwardRef<HTMLUListElement, NavGroupProps>(\n function NavGroup(props, ref) {\n const { style, depth, className, children, ...remaining } = props;\n\n return (\n <List\n {...remaining}\n ref={ref}\n style={{ ...style, \"--rmd-tree-depth\": depth }}\n className={navGroup({\n className,\n disablePadding: depth > 0,\n })}\n >\n {children}\n </List>\n );\n }\n);\n"],"names":["forwardRef","List","navGroup","NavGroup","props","ref","style","depth","className","children","remaining","disablePadding"],"mappings":";AAAA,SAASA,UAAU,QAAwB,QAAQ;AACnD,SAASC,IAAI,QAAwB,kBAAkB;AACvD,SAASC,QAAQ,QAAQ,sBAAsB;AAU/C;;;;;;;CAOC,GACD,OAAO,MAAMC,yBAAWH,WACtB,SAASG,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,WAAW,GAAGN;IAE5D,qBACE,KAACH;QACE,GAAGS,SAAS;QACbL,KAAKA;QACLC,OAAO;YAAE,GAAGA,KAAK;YAAE,oBAAoBC;QAAM;QAC7CC,WAAWN,SAAS;YAClBM;YACAG,gBAAgBJ,QAAQ;QAC1B;kBAECE;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/navigation/NavItem.tsx"],"sourcesContent":["import { forwardRef, type LiHTMLAttributes, type ReactNode } from \"react\";\nimport { navItem } from \"./navItemStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemProps extends LiHTMLAttributes<HTMLLIElement> {\n children: ReactNode;\n}\n\n/**\n * **Server Component**\n *\n * This component is just used to add padding based on the depth of the nav item\n * and should not be used on its own. See the `CollapsibleNavGroup` and\n * `NavItemLink` instead.\n *\n * @since 6.0.0\n */\nexport const NavItem = forwardRef<HTMLLIElement, NavItemProps>(\n function NavItem(props, ref) {\n const { className, children, ...remaining } = props;\n return (\n <li {...remaining} ref={ref} className={navItem({ className })}>\n {children}\n </li>\n );\n }\n);\n"],"names":["forwardRef","navItem","NavItem","props","ref","className","children","remaining","li"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,UAAU,QAA+C,QAAQ;AAC1E,SAASC,OAAO,QAAQ,qBAAqB;AAS7C;;;;;;;;CAQC,GACD,OAAO,MAAMC,wBAAUF,WACrB,SAASE,QAAQC,KAAK,EAAEC,GAAG;IACzB,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,WAAW,GAAGJ;IAC9C,qBACE,KAACK;QAAI,GAAGD,SAAS;QAAEH,KAAKA;QAAKC,WAAWJ,QAAQ;YAAEI;QAAU;kBACzDC;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/navigation/NavItem.tsx"],"sourcesContent":["import { forwardRef, type LiHTMLAttributes, type ReactNode } from \"react\";\nimport { navItem } from \"./navItemStyles.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemProps extends LiHTMLAttributes<HTMLLIElement> {\n children: ReactNode;\n}\n\n/**\n * **Server Component**\n *\n * This component is just used to add padding based on the depth of the nav item\n * and should not be used on its own. See the `CollapsibleNavGroup` and\n * `NavItemLink` instead.\n *\n * @since 6.0.0\n */\nexport const NavItem = forwardRef<HTMLLIElement, NavItemProps>(\n function NavItem(props, ref) {\n const { className, children, ...remaining } = props;\n return (\n <li {...remaining} ref={ref} className={navItem({ className })}>\n {children}\n </li>\n );\n }\n);\n"],"names":["forwardRef","navItem","NavItem","props","ref","className","children","remaining","li"],"mappings":";AAAA,SAASA,UAAU,QAA+C,QAAQ;AAC1E,SAASC,OAAO,QAAQ,qBAAqB;AAS7C;;;;;;;;CAQC,GACD,OAAO,MAAMC,wBAAUF,WACrB,SAASE,QAAQC,KAAK,EAAEC,GAAG;IACzB,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,WAAW,GAAGJ;IAC9C,qBACE,KAACK;QAAI,GAAGD,SAAS;QAAEH,KAAKA;QAAKC,WAAWJ,QAAQ;YAAEI;QAAU;kBACzDC;;AAGP,GACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/navigation/NavItemButton.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type MouseEventHandler, type ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { IconRotator, type IconRotatorBaseProps } from \"../icon/IconRotator.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { Tooltip } from \"../tooltip/Tooltip.js\";\nimport { useTooltip } from \"../tooltip/useTooltip.js\";\nimport { navItemContent } from \"./navItemStyles.js\";\nimport { type NavItemContentProps } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemButtonRotatorProps {\n /** @defaultValue `getIcon(\"dropdown\")` */\n icon?: ReactNode;\n iconRotatorProps?: IconRotatorBaseProps;\n disableIconRotator?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemButtonProps\n extends Omit<ButtonProps, \"children\">,\n NavItemButtonRotatorProps,\n NavItemContentProps {\n onClick: MouseEventHandler<HTMLButtonElement>;\n collapsed: boolean;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n */\nexport const NavItemButton = forwardRef<HTMLButtonElement, NavItemButtonProps>(\n function NavItemButton(props, ref) {\n const {\n className,\n collapsed,\n icon,\n iconRotatorProps,\n disableIconRotator,\n children,\n beforeAddon,\n afterAddon,\n spanProps,\n onBlur,\n onContextMenu,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchEnd,\n onTouchStart,\n tooltipOptions,\n ...remaining\n } = props;\n\n const { elementProps, tooltipProps, overflowRef } = useTooltip({\n overflowOnly: true,\n defaultPosition: \"right\",\n ...tooltipOptions,\n onBlur,\n onContextMenu,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchEnd,\n onTouchStart,\n });\n\n return (\n <>\n <Button\n {...remaining}\n {...elementProps}\n ref={ref}\n className={navItemContent({ className })}\n >\n {beforeAddon}\n <span\n {...spanProps}\n ref={overflowRef}\n className={cssUtils({\n className: spanProps?.className,\n textOverflow: \"ellipsis\",\n })}\n >\n {children}\n </span>\n {afterAddon}\n {!disableIconRotator && (\n <IconRotator {...iconRotatorProps} rotated={!collapsed}>\n {getIcon(\"dropdown\", icon)}\n </IconRotator>\n )}\n </Button>\n <Tooltip {...tooltipProps}>{children}</Tooltip>\n </>\n );\n }\n);\n"],"names":["forwardRef","Button","cssUtils","IconRotator","getIcon","Tooltip","useTooltip","navItemContent","NavItemButton","props","ref","className","collapsed","icon","iconRotatorProps","disableIconRotator","children","beforeAddon","afterAddon","spanProps","onBlur","onContextMenu","onFocus","onMouseEnter","onMouseLeave","onTouchEnd","onTouchStart","tooltipOptions","remaining","elementProps","tooltipProps","overflowRef","overflowOnly","defaultPosition","span","textOverflow","rotated"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAgD,QAAQ;AAC3E,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,WAAW,QAAmC,yBAAyB;AAChF,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,cAAc,QAAQ,qBAAqB;AAwBpD;;;;CAIC,GACD,OAAO,MAAMC,8BAAgBR,WAC3B,SAASQ,cAAcC,KAAK,EAAEC,GAAG;IAC/B,MAAM,EACJC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,gBAAgB,EAChBC,kBAAkB,EAClBC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,aAAa,EACbC,OAAO,EACPC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,cAAc,EACd,GAAGC,WACJ,GAAGnB;IAEJ,MAAM,EAAEoB,YAAY,EAAEC,YAAY,EAAEC,WAAW,EAAE,GAAGzB,WAAW;QAC7D0B,cAAc;QACdC,iBAAiB;QACjB,GAAGN,cAAc;QACjBP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IAEA,qBACE;;0BACE,MAACzB;gBACE,GAAG2B,SAAS;gBACZ,GAAGC,YAAY;gBAChBnB,KAAKA;gBACLC,WAAWJ,eAAe;oBAAEI;gBAAU;;oBAErCM;kCACD,KAACiB;wBACE,GAAGf,SAAS;wBACbT,KAAKqB;wBACLpB,WAAWT,SAAS;4BAClBS,WAAWQ,WAAWR;4BACtBwB,cAAc;wBAChB;kCAECnB;;oBAEFE;oBACA,CAACH,oCACA,KAACZ;wBAAa,GAAGW,gBAAgB;wBAAEsB,SAAS,CAACxB;kCAC1CR,QAAQ,YAAYS;;;;0BAI3B,KAACR;gBAAS,GAAGyB,YAAY;0BAAGd;;;;AAGlC,GACA"}
1
+ {"version":3,"sources":["../../src/navigation/NavItemButton.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type MouseEventHandler, type ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { IconRotator, type IconRotatorBaseProps } from \"../icon/IconRotator.js\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { Tooltip } from \"../tooltip/Tooltip.js\";\nimport { useTooltip } from \"../tooltip/useTooltip.js\";\nimport { navItemContent } from \"./navItemStyles.js\";\nimport { type NavItemContentProps } from \"./types.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemButtonRotatorProps {\n /** @defaultValue `getIcon(\"dropdown\")` */\n icon?: ReactNode;\n iconRotatorProps?: IconRotatorBaseProps;\n disableIconRotator?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface NavItemButtonProps\n extends Omit<ButtonProps, \"children\">,\n NavItemButtonRotatorProps,\n NavItemContentProps {\n onClick: MouseEventHandler<HTMLButtonElement>;\n collapsed: boolean;\n}\n\n/**\n * **Client Component**\n *\n * @since 6.0.0\n */\nexport const NavItemButton = forwardRef<HTMLButtonElement, NavItemButtonProps>(\n function NavItemButton(props, ref) {\n const {\n className,\n collapsed,\n icon,\n iconRotatorProps,\n disableIconRotator,\n children,\n beforeAddon,\n afterAddon,\n spanProps,\n onBlur,\n onContextMenu,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchEnd,\n onTouchStart,\n tooltipOptions,\n ...remaining\n } = props;\n\n const { elementProps, tooltipProps, overflowRef } = useTooltip({\n overflowOnly: true,\n defaultPosition: \"right\",\n ...tooltipOptions,\n onBlur,\n onContextMenu,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchEnd,\n onTouchStart,\n });\n\n return (\n <>\n <Button\n {...remaining}\n {...elementProps}\n ref={ref}\n className={navItemContent({ className })}\n >\n {beforeAddon}\n <span\n {...spanProps}\n ref={overflowRef}\n className={cssUtils({\n className: spanProps?.className,\n textOverflow: \"ellipsis\",\n })}\n >\n {children}\n </span>\n {afterAddon}\n {!disableIconRotator && (\n <IconRotator {...iconRotatorProps} rotated={!collapsed}>\n {getIcon(\"dropdown\", icon)}\n </IconRotator>\n )}\n </Button>\n <Tooltip {...tooltipProps}>{children}</Tooltip>\n </>\n );\n }\n);\n"],"names":["forwardRef","Button","cssUtils","IconRotator","getIcon","Tooltip","useTooltip","navItemContent","NavItemButton","props","ref","className","collapsed","icon","iconRotatorProps","disableIconRotator","children","beforeAddon","afterAddon","spanProps","onBlur","onContextMenu","onFocus","onMouseEnter","onMouseLeave","onTouchEnd","onTouchStart","tooltipOptions","remaining","elementProps","tooltipProps","overflowRef","overflowOnly","defaultPosition","span","textOverflow","rotated"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAAgD,QAAQ;AAC3E,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,WAAW,QAAmC,yBAAyB;AAChF,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,cAAc,QAAQ,qBAAqB;AAwBpD;;;;CAIC,GACD,OAAO,MAAMC,8BAAgBR,WAC3B,SAASQ,cAAcC,KAAK,EAAEC,GAAG;IAC/B,MAAM,EACJC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,gBAAgB,EAChBC,kBAAkB,EAClBC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,aAAa,EACbC,OAAO,EACPC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,cAAc,EACd,GAAGC,WACJ,GAAGnB;IAEJ,MAAM,EAAEoB,YAAY,EAAEC,YAAY,EAAEC,WAAW,EAAE,GAAGzB,WAAW;QAC7D0B,cAAc;QACdC,iBAAiB;QACjB,GAAGN,cAAc;QACjBP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IAEA,qBACE;;0BACE,MAACzB;gBACE,GAAG2B,SAAS;gBACZ,GAAGC,YAAY;gBAChBnB,KAAKA;gBACLC,WAAWJ,eAAe;oBAAEI;gBAAU;;oBAErCM;kCACD,KAACiB;wBACE,GAAGf,SAAS;wBACbT,KAAKqB;wBACLpB,WAAWT,SAAS;4BAClBS,WAAWQ,WAAWR;4BACtBwB,cAAc;wBAChB;kCAECnB;;oBAEFE;oBACA,CAACH,oCACA,KAACZ;wBAAa,GAAGW,gBAAgB;wBAAEsB,SAAS,CAACxB;kCAC1CR,QAAQ,YAAYS;;;;0BAI3B,KAACR;gBAAS,GAAGyB,YAAY;0BAAGd;;;;AAGlC,GACA"}