@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/form/useRadioGroup.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n useState,\n type ChangeEventHandler,\n type FormEventHandler,\n} from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @since 6.0.0 */\nexport interface RadioGroupOptions<T extends string | number> {\n /**\n * A `name` to apply to all the radios within the group. This is required if\n * unless {@link menu} is set to `true`.\n */\n name?: string;\n\n /**\n * Set this to `true` if using the `MenuItemRadio` component instead of the\n * `Radio` so the correct props can be provided.\n *\n * @defaultValue `false`\n */\n menu?: boolean;\n\n /**\n * The value of a radio that should be checked by default. If you want to\n * force the user to select one of the radios, keep this as the empty string\n * or set it to a string or number that does not represent a valid radio\n * value.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: UseStateInitializer<T>;\n\n /**\n * Set this to `true` if one of the radios within the group must be checked before\n * a form can be submitted.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `false`\n */\n required?: boolean;\n\n /**\n * If you need to prevent the default behavior in a radio group for some\n * reason, you can provide a custom `onChange` event handler and call\n * `event.stopPropagation()`. This will be called whenever a new radio button\n * is checked.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `() => {}`\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n\n /**\n * If the radio group has {@link required} set to `true`, the radios will gain\n * the `error` state if a form is submitted without a checked radio. If you\n * want to prevent that behavior for some reason, you can provide this\n * function and call `event.stopPropagation()`.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `() => {}`\n */\n onInvalid?: FormEventHandler<HTMLInputElement>;\n}\n\n/** @since 6.0.0 */\nexport interface ProvidedRadioGroupProps<V extends string | number> {\n name: string;\n value: V;\n checked: boolean;\n onChange: ChangeEventHandler<HTMLInputElement>;\n error: boolean;\n required: boolean;\n onInvalid: FormEventHandler<HTMLInputElement>;\n}\n\n/** @since 6.0.0 */\nexport type GetRadioGroupProps<V extends string | number> = (\n value: V\n) => Readonly<ProvidedRadioGroupProps<V>>;\n\n/** @since 6.0.0 */\nexport interface RadioGroupImplementation<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps: GetRadioGroupProps<V>;\n}\n\nexport type GetMenuItemRadioGroupProps<V extends string | number> = (\n value: V\n) => Readonly<{ checked: boolean; onCheckedChange(): void }>;\n\n/** @since 6.0.0 */\nexport interface MenuItemRadioGroupImplementation<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps: GetMenuItemRadioGroupProps<V>;\n}\n\n/** @since 6.0.0 */\nexport interface CombinedRadioGroupReturnValue<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps?(value: V): {\n name?: string;\n value?: V;\n checked: boolean;\n error?: boolean;\n required?: boolean;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onCheckedChange?(): void;\n onInvalid?: FormEventHandler<HTMLInputElement>;\n };\n}\n\n// Note: These overrides are set up so that the value will default to any\n// string.\n\n/**\n * @example Generic Number Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup<number>({\n * name: \"group\",\n * defaultValue: -1\n * });\n *\n *\n * return (\n * <>\n * <Radio {...getRadioProps(0)} label=\"First\" />\n * <Radio {...getRadioProps(1)} label=\"Second\" />\n * <Radio {...getRadioProps(2)} label=\"Third\" />\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends number>(\n options: RadioGroupOptions<V> & {\n menu?: false;\n name: string;\n defaultValue: UseStateInitializer<V>;\n }\n): RadioGroupImplementation<V>;\nexport function useRadioGroup<V extends number>(\n options: RadioGroupOptions<V> & {\n menu: true;\n name?: never;\n required?: never;\n onChange?: never;\n onInvalid?: never;\n defaultValue: UseStateInitializer<V>;\n }\n): MenuItemRadioGroupImplementation<V>;\n/**\n * @example Generic String Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n *\n * @example String Union Example\n * ```tsx\n * const values = [\n * { label: \"First\", value: \"a\" },\n * { label: \"Second\", value: \"b\" },\n * { label: \"Third\", value: \"c\" },\n * ] as const;\n *\n * type Values = typeof values[number][\"value\"];\n * // ^ \"a\" | \"b\" | \"c\"\n *\n * const { value, getRadioProps } = useRadioGroup<Values | \"\">({\n * name: \"group\",\n * defaultValue: \"\",\n * });\n *\n *\n * return (\n * <>\n * {values.map(({ label, value }) => (\n * <Radio {...getRadioProps(value)} key={value} label={label} />\n * ))}\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends string>(\n options: RadioGroupOptions<V> & {\n menu?: false;\n name: string;\n defaultValue?: UseStateInitializer<V>;\n }\n): RadioGroupImplementation<V>;\nexport function useRadioGroup<V extends string>(\n options: RadioGroupOptions<V> & {\n menu: true;\n name?: never;\n required?: never;\n onChange?: never;\n onInvalid?: never;\n defaultValue?: UseStateInitializer<V>;\n }\n): MenuItemRadioGroupImplementation<V>;\n/**\n * @example Strict Union Example\n * ```tsx\n * type ValidValues = 1 | 2 | 3 | 4 | \"\" | \"a\" | \"b\";\n *\n * const { value, getRadioProps } = useRadioGroup<ValidValues>({\n * name: \"group\",\n * defaultValue: \"\"\n * });\n *\n *\n * return (\n * <>\n * <Radio {...getRadioProps(1)} label=\"First\" />\n * <Radio {...getRadioProps(2)} label=\"Second\" />\n * <Radio {...getRadioProps(3)} label=\"Third\" />\n * <Radio {...getRadioProps(4)} label=\"Forth\" />\n * <Radio {...getRadioProps(\"a\")} label=\"Fifth\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Sixth\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Seventh\" />\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends string | number>(\n options: RadioGroupOptions<V>\n): CombinedRadioGroupReturnValue<V> {\n const {\n name,\n defaultValue,\n menu = false,\n required,\n onChange = noop,\n onInvalid = noop,\n } = options;\n const [value, setValue] = useState<V>(() => {\n if (typeof defaultValue === \"function\") {\n return defaultValue();\n }\n\n return defaultValue ?? (\"\" as V);\n });\n const initial = useRef(value);\n const [error, setError] = useState(false);\n\n return {\n reset: useCallback(() => {\n setError(false);\n setValue(initial.current);\n }, []),\n value,\n setValue,\n getRadioProps(radioValue) {\n const checked = value === radioValue;\n if (menu) {\n return {\n checked,\n onCheckedChange() {\n setValue(radioValue);\n },\n };\n }\n\n return {\n name,\n value: radioValue,\n error,\n checked,\n required,\n onChange(event) {\n onChange(event);\n setError(false);\n setValue(radioValue);\n },\n onInvalid(event) {\n onInvalid(event);\n setError(true);\n },\n };\n },\n };\n}\n"],"names":["useCallback","useRef","useState","noop","useRadioGroup","options","name","defaultValue","menu","required","onChange","onInvalid","value","setValue","initial","error","setError","reset","current","getRadioProps","radioValue","checked","onCheckedChange","event"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SACEA,WAAW,EACXC,MAAM,EACNC,QAAQ,QAGH,QAAQ;AAGf,MAAMC,OAAO;AACX,aAAa;AACf;AAqNA;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASC,cACdC,OAA6B;IAE7B,MAAM,EACJC,IAAI,EACJC,YAAY,EACZC,OAAO,KAAK,EACZC,QAAQ,EACRC,WAAWP,IAAI,EACfQ,YAAYR,IAAI,EACjB,GAAGE;IACJ,MAAM,CAACO,OAAOC,SAAS,GAAGX,SAAY;QACpC,IAAI,OAAOK,iBAAiB,YAAY;YACtC,OAAOA;QACT;QAEA,OAAOA,gBAAiB;IAC1B;IACA,MAAMO,UAAUb,OAAOW;IACvB,MAAM,CAACG,OAAOC,SAAS,GAAGd,SAAS;IAEnC,OAAO;QACLe,OAAOjB,YAAY;YACjBgB,SAAS;YACTH,SAASC,QAAQI,OAAO;QAC1B,GAAG,EAAE;QACLN;QACAC;QACAM,eAAcC,UAAU;YACtB,MAAMC,UAAUT,UAAUQ;YAC1B,IAAIZ,MAAM;gBACR,OAAO;oBACLa;oBACAC;wBACET,SAASO;oBACX;gBACF;YACF;YAEA,OAAO;gBACLd;gBACAM,OAAOQ;gBACPL;gBACAM;gBACAZ;gBACAC,UAASa,KAAK;oBACZb,SAASa;oBACTP,SAAS;oBACTH,SAASO;gBACX;gBACAT,WAAUY,KAAK;oBACbZ,UAAUY;oBACVP,SAAS;gBACX;YACF;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/form/useRadioGroup.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n useState,\n type ChangeEventHandler,\n type FormEventHandler,\n} from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @since 6.0.0 */\nexport interface RadioGroupOptions<T extends string | number> {\n /**\n * A `name` to apply to all the radios within the group. This is required if\n * unless {@link menu} is set to `true`.\n */\n name?: string;\n\n /**\n * Set this to `true` if using the `MenuItemRadio` component instead of the\n * `Radio` so the correct props can be provided.\n *\n * @defaultValue `false`\n */\n menu?: boolean;\n\n /**\n * The value of a radio that should be checked by default. If you want to\n * force the user to select one of the radios, keep this as the empty string\n * or set it to a string or number that does not represent a valid radio\n * value.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: UseStateInitializer<T>;\n\n /**\n * Set this to `true` if one of the radios within the group must be checked before\n * a form can be submitted.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `false`\n */\n required?: boolean;\n\n /**\n * If you need to prevent the default behavior in a radio group for some\n * reason, you can provide a custom `onChange` event handler and call\n * `event.stopPropagation()`. This will be called whenever a new radio button\n * is checked.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `() => {}`\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n\n /**\n * If the radio group has {@link required} set to `true`, the radios will gain\n * the `error` state if a form is submitted without a checked radio. If you\n * want to prevent that behavior for some reason, you can provide this\n * function and call `event.stopPropagation()`.\n *\n * This option is invalid and will be ignored if {@link menu} is `true`.\n *\n * @defaultValue `() => {}`\n */\n onInvalid?: FormEventHandler<HTMLInputElement>;\n}\n\n/** @since 6.0.0 */\nexport interface ProvidedRadioGroupProps<V extends string | number> {\n name: string;\n value: V;\n checked: boolean;\n onChange: ChangeEventHandler<HTMLInputElement>;\n error: boolean;\n required: boolean;\n onInvalid: FormEventHandler<HTMLInputElement>;\n}\n\n/** @since 6.0.0 */\nexport type GetRadioGroupProps<V extends string | number> = (\n value: V\n) => Readonly<ProvidedRadioGroupProps<V>>;\n\n/** @since 6.0.0 */\nexport interface RadioGroupImplementation<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps: GetRadioGroupProps<V>;\n}\n\nexport type GetMenuItemRadioGroupProps<V extends string | number> = (\n value: V\n) => Readonly<{ checked: boolean; onCheckedChange(): void }>;\n\n/** @since 6.0.0 */\nexport interface MenuItemRadioGroupImplementation<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps: GetMenuItemRadioGroupProps<V>;\n}\n\n/** @since 6.0.0 */\nexport interface CombinedRadioGroupReturnValue<V extends string | number> {\n reset(): void;\n value: V;\n setValue: UseStateSetter<V>;\n getRadioProps?(value: V): {\n name?: string;\n value?: V;\n checked: boolean;\n error?: boolean;\n required?: boolean;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onCheckedChange?(): void;\n onInvalid?: FormEventHandler<HTMLInputElement>;\n };\n}\n\n// Note: These overrides are set up so that the value will default to any\n// string.\n\n/**\n * @example Generic Number Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup<number>({\n * name: \"group\",\n * defaultValue: -1\n * });\n *\n *\n * return (\n * <>\n * <Radio {...getRadioProps(0)} label=\"First\" />\n * <Radio {...getRadioProps(1)} label=\"Second\" />\n * <Radio {...getRadioProps(2)} label=\"Third\" />\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends number>(\n options: RadioGroupOptions<V> & {\n menu?: false;\n name: string;\n defaultValue: UseStateInitializer<V>;\n }\n): RadioGroupImplementation<V>;\nexport function useRadioGroup<V extends number>(\n options: RadioGroupOptions<V> & {\n menu: true;\n name?: never;\n required?: never;\n onChange?: never;\n onInvalid?: never;\n defaultValue: UseStateInitializer<V>;\n }\n): MenuItemRadioGroupImplementation<V>;\n/**\n * @example Generic String Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n *\n * @example String Union Example\n * ```tsx\n * const values = [\n * { label: \"First\", value: \"a\" },\n * { label: \"Second\", value: \"b\" },\n * { label: \"Third\", value: \"c\" },\n * ] as const;\n *\n * type Values = typeof values[number][\"value\"];\n * // ^ \"a\" | \"b\" | \"c\"\n *\n * const { value, getRadioProps } = useRadioGroup<Values | \"\">({\n * name: \"group\",\n * defaultValue: \"\",\n * });\n *\n *\n * return (\n * <>\n * {values.map(({ label, value }) => (\n * <Radio {...getRadioProps(value)} key={value} label={label} />\n * ))}\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends string>(\n options: RadioGroupOptions<V> & {\n menu?: false;\n name: string;\n defaultValue?: UseStateInitializer<V>;\n }\n): RadioGroupImplementation<V>;\nexport function useRadioGroup<V extends string>(\n options: RadioGroupOptions<V> & {\n menu: true;\n name?: never;\n required?: never;\n onChange?: never;\n onInvalid?: never;\n defaultValue?: UseStateInitializer<V>;\n }\n): MenuItemRadioGroupImplementation<V>;\n/**\n * @example Strict Union Example\n * ```tsx\n * type ValidValues = 1 | 2 | 3 | 4 | \"\" | \"a\" | \"b\";\n *\n * const { value, getRadioProps } = useRadioGroup<ValidValues>({\n * name: \"group\",\n * defaultValue: \"\"\n * });\n *\n *\n * return (\n * <>\n * <Radio {...getRadioProps(1)} label=\"First\" />\n * <Radio {...getRadioProps(2)} label=\"Second\" />\n * <Radio {...getRadioProps(3)} label=\"Third\" />\n * <Radio {...getRadioProps(4)} label=\"Forth\" />\n * <Radio {...getRadioProps(\"a\")} label=\"Fifth\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Sixth\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Seventh\" />\n * </>\n * );\n * ```\n * @since 6.0.0\n */\nexport function useRadioGroup<V extends string | number>(\n options: RadioGroupOptions<V>\n): CombinedRadioGroupReturnValue<V> {\n const {\n name,\n defaultValue,\n menu = false,\n required,\n onChange = noop,\n onInvalid = noop,\n } = options;\n const [value, setValue] = useState<V>(() => {\n if (typeof defaultValue === \"function\") {\n return defaultValue();\n }\n\n return defaultValue ?? (\"\" as V);\n });\n const initial = useRef(value);\n const [error, setError] = useState(false);\n\n return {\n reset: useCallback(() => {\n setError(false);\n setValue(initial.current);\n }, []),\n value,\n setValue,\n getRadioProps(radioValue) {\n const checked = value === radioValue;\n if (menu) {\n return {\n checked,\n onCheckedChange() {\n setValue(radioValue);\n },\n };\n }\n\n return {\n name,\n value: radioValue,\n error,\n checked,\n required,\n onChange(event) {\n onChange(event);\n setError(false);\n setValue(radioValue);\n },\n onInvalid(event) {\n onInvalid(event);\n setError(true);\n },\n };\n },\n };\n}\n"],"names":["useCallback","useRef","useState","noop","useRadioGroup","options","name","defaultValue","menu","required","onChange","onInvalid","value","setValue","initial","error","setError","reset","current","getRadioProps","radioValue","checked","onCheckedChange","event"],"mappings":"AAAA;AACA,SACEA,WAAW,EACXC,MAAM,EACNC,QAAQ,QAGH,QAAQ;AAGf,MAAMC,OAAO;AACX,aAAa;AACf;AAqNA;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASC,cACdC,OAA6B;IAE7B,MAAM,EACJC,IAAI,EACJC,YAAY,EACZC,OAAO,KAAK,EACZC,QAAQ,EACRC,WAAWP,IAAI,EACfQ,YAAYR,IAAI,EACjB,GAAGE;IACJ,MAAM,CAACO,OAAOC,SAAS,GAAGX,SAAY;QACpC,IAAI,OAAOK,iBAAiB,YAAY;YACtC,OAAOA;QACT;QAEA,OAAOA,gBAAiB;IAC1B;IACA,MAAMO,UAAUb,OAAOW;IACvB,MAAM,CAACG,OAAOC,SAAS,GAAGd,SAAS;IAEnC,OAAO;QACLe,OAAOjB,YAAY;YACjBgB,SAAS;YACTH,SAASC,QAAQI,OAAO;QAC1B,GAAG,EAAE;QACLN;QACAC;QACAM,eAAcC,UAAU;YACtB,MAAMC,UAAUT,UAAUQ;YAC1B,IAAIZ,MAAM;gBACR,OAAO;oBACLa;oBACAC;wBACET,SAASO;oBACX;gBACF;YACF;YAEA,OAAO;gBACLd;gBACAM,OAAOQ;gBACPL;gBACAM;gBACAZ;gBACAC,UAASa,KAAK;oBACZb,SAASa;oBACTP,SAAS;oBACTH,SAASO;gBACX;gBACAT,WAAUY,KAAK;oBACbZ,UAAUY;oBACVP,SAAS;gBACX;YACF;QACF;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/useRangeSlider.ts"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { type SliderValueOptions } from \"./useSlider.js\";\n\n/**\n * @since 2.5.0\n * @since 6.0.0 Updated to use labeled tuple.\n */\nexport type RangeSliderValue = readonly [minValue: number, maxValue: number];\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderState {\n rangeValue: RangeSliderValue;\n setRangeValue: UseStateSetter<RangeSliderValue>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderOptions extends SliderValueOptions {\n defaultValue?: UseStateInitializer<RangeSliderValue>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderImplementation\n extends Required<SliderValueOptions>,\n RangeSliderState {}\n\n/**\n * @example Range Slider Example\n * ```tsx\n * import { Fieldset, Form, Legend, Slider, useRangeSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useId } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useRangeSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: [0, 100],\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { rangeValue, setRangeValue } = slider;\n * const [minPrice, maxPrice] = rangeValue;\n *\n * return (\n * <Form>\n * <Fieldset>\n * <Legend>Price Range</Legend>\n * <Slider {...slider} />\n * </Fieldset>\n * </Form>\n * );\n * }\n * ```\n *\n * @see The `Slider` component for additional examples.\n * @since 2.5.0\n * @since 6.0.0 Now returns an object instead of an ordered tuple and only\n * return the `rangeValue` and `setRangeValue` instead of all the slider\n * functionality. In addition, the hook only accepts a single object argument.\n */\nexport function useRangeSlider(\n options: RangeSliderOptions = {}\n): RangeSliderImplementation {\n const { min = 0, max = 100, step = 1, defaultValue } = options;\n const [rangeValue, setRangeValue] = useState<RangeSliderValue>(\n defaultValue ?? [min, max]\n );\n\n return {\n min,\n max,\n step,\n rangeValue,\n setRangeValue,\n };\n}\n"],"names":["useState","useRangeSlider","options","min","max","step","defaultValue","rangeValue","setRangeValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,QAAQ;AAgCjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCC,GACD,OAAO,SAASC,eACdC,UAA8B,CAAC,CAAC;IAEhC,MAAM,EAAEC,MAAM,CAAC,EAAEC,MAAM,GAAG,EAAEC,OAAO,CAAC,EAAEC,YAAY,EAAE,GAAGJ;IACvD,MAAM,CAACK,YAAYC,cAAc,GAAGR,SAClCM,gBAAgB;QAACH;QAAKC;KAAI;IAG5B,OAAO;QACLD;QACAC;QACAC;QACAE;QACAC;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/form/useRangeSlider.ts"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { type SliderValueOptions } from \"./useSlider.js\";\n\n/**\n * @since 2.5.0\n * @since 6.0.0 Updated to use labeled tuple.\n */\nexport type RangeSliderValue = readonly [minValue: number, maxValue: number];\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderState {\n rangeValue: RangeSliderValue;\n setRangeValue: UseStateSetter<RangeSliderValue>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderOptions extends SliderValueOptions {\n defaultValue?: UseStateInitializer<RangeSliderValue>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface RangeSliderImplementation\n extends Required<SliderValueOptions>,\n RangeSliderState {}\n\n/**\n * @example Range Slider Example\n * ```tsx\n * import { Fieldset, Form, Legend, Slider, useRangeSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useId } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useRangeSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: [0, 100],\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { rangeValue, setRangeValue } = slider;\n * const [minPrice, maxPrice] = rangeValue;\n *\n * return (\n * <Form>\n * <Fieldset>\n * <Legend>Price Range</Legend>\n * <Slider {...slider} />\n * </Fieldset>\n * </Form>\n * );\n * }\n * ```\n *\n * @see The `Slider` component for additional examples.\n * @since 2.5.0\n * @since 6.0.0 Now returns an object instead of an ordered tuple and only\n * return the `rangeValue` and `setRangeValue` instead of all the slider\n * functionality. In addition, the hook only accepts a single object argument.\n */\nexport function useRangeSlider(\n options: RangeSliderOptions = {}\n): RangeSliderImplementation {\n const { min = 0, max = 100, step = 1, defaultValue } = options;\n const [rangeValue, setRangeValue] = useState<RangeSliderValue>(\n defaultValue ?? [min, max]\n );\n\n return {\n min,\n max,\n step,\n rangeValue,\n setRangeValue,\n };\n}\n"],"names":["useState","useRangeSlider","options","min","max","step","defaultValue","rangeValue","setRangeValue"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,QAAQ;AAgCjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCC,GACD,OAAO,SAASC,eACdC,UAA8B,CAAC,CAAC;IAEhC,MAAM,EAAEC,MAAM,CAAC,EAAEC,MAAM,GAAG,EAAEC,OAAO,CAAC,EAAEC,YAAY,EAAE,GAAGJ;IACvD,MAAM,CAACK,YAAYC,cAAc,GAAGR,SAClCM,gBAAgB;QAACH;QAAKC;KAAI;IAG5B,OAAO;QACLD;QACAC;QACAC;QACAE;QACAC;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/useResizingTextArea.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type ChangeEventHandler,\n type Ref,\n type RefCallback,\n} from \"react\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useResizeObserver } from \"../useResizeObserver.js\";\n\n// this is the default of 1.5rem line-height in the styles\nconst DEFAULT_LINE_HEIGHT = 24;\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * A textarea is normally resizable in browsers by default by dragging the\n * bottom right corner to the desired size which will set inline styles for\n * `height` and `width`. Since this makes creating layouts a bit more difficult,\n * this is disabled by default but can be configured using one of these values:\n *\n * - `\"auto\"` - The textarea will automatically grow in in height as the user\n * types until a max number of rows have been added. If there is additional\n * text, a scrollbar will appear in the textarea. The browser's native resize\n * behavior is disabled.\n * - `\"none\"` - The textarea's height and width will remain static\n * - `\"horizontal\"` - The textarea's width can be resized by the browser's\n * native resize behavior.\n * - `\"vertical\"` - The textarea's height can be resized by the browser's native\n * resize behavior.\n * - `\"both\"` - The browser's native resize behavior will be allowed.\n */\nexport type TextAreaResize =\n | \"none\"\n | \"auto\"\n | \"horizontal\"\n | \"vertical\"\n | \"both\";\n\n/** @internal */\nexport interface ResizingTextAreaOptions {\n resize: TextAreaResize;\n maxRows: number;\n onChange: ChangeEventHandler<HTMLTextAreaElement> | undefined;\n containerRef?: Ref<HTMLDivElement>;\n disableTransition: boolean | undefined;\n}\n\n/** @internal */\nexport interface ResizingTextAreaReturnValue {\n height: string | undefined;\n maskRef: RefCallback<HTMLTextAreaElement>;\n containerRef: RefCallback<HTMLDivElement>;\n onChange: ChangeEventHandler<HTMLTextAreaElement>;\n scrollable: boolean;\n disableTransition: boolean;\n}\n\n/** @internal */\nexport function useResizingTextArea(\n options: ResizingTextAreaOptions\n): ResizingTextAreaReturnValue {\n const {\n maxRows,\n resize,\n onChange = noop,\n containerRef: propContainerRef,\n disableTransition,\n } = options;\n\n const maskRef = useRef<HTMLTextAreaElement>(null);\n const [containerRef, containerRefCallback] = useEnsuredRef(propContainerRef);\n const [height, setHeight] = useState<number>();\n useEffect(() => {\n if (resize !== \"auto\") {\n setHeight(undefined);\n }\n }, [resize]);\n\n // Since access to the DOM is required to calculate the current height of the\n // textarea, do not enable the height transition until it has been calculated\n // once.\n const isHeightSet = useRef(true);\n useEffect(() => {\n isHeightSet.current = !height;\n }, [height]);\n\n // Do not enable the scrollbar until the max height has been reached since\n // it'll flash as the user types on OS that display scrollbars.\n //\n // Note: This does cause an infinite loop issue on browsers that display OS\n // when rendered in a flex/grid container and a \"fluid\" width since:\n // - the width changes when the overflow changes to `auto`\n // - the resize observer triggers since there was a width change\n // - the number of rows imght change because of this width change\n // - it might no longer be at the max height, so remove the scrollbar\n // - restart\n const [isMaxHeightReached, setMaxHeightReached] = useState(false);\n const updateHeight = useCallback(() => {\n const mask = maskRef.current;\n const container = containerRef.current;\n /* c8 ignore start */\n if (!mask || !container) {\n return;\n }\n /* c8 ignore stop */\n\n const containerStyles = window.getComputedStyle(container);\n const isBorderBox = containerStyles.boxSizing === \"border-box\";\n let borderHeight = 0;\n if (isBorderBox) {\n borderHeight =\n parseFloat(containerStyles.borderTopWidth) +\n parseFloat(containerStyles.borderBottomWidth);\n }\n\n let nextHeight = mask.scrollHeight + borderHeight;\n if (maxRows > 0) {\n nextHeight -= borderHeight;\n const maskStyles = window.getComputedStyle(mask);\n // in tests, this is `\"normal\"` by default instead of a number\n let lineHeight = parseFloat(maskStyles.lineHeight);\n if (Number.isNaN(lineHeight)) {\n lineHeight = DEFAULT_LINE_HEIGHT;\n }\n\n const maxHeight = maxRows * lineHeight;\n nextHeight = Math.min(maxHeight, nextHeight);\n setMaxHeightReached(nextHeight === maxHeight);\n nextHeight += borderHeight;\n }\n\n // This just makes snapshots look nicer since `nextHeight` will be 0 in\n // tests unless the user mocks out all the DOM properties\n if (nextHeight) {\n setHeight(nextHeight);\n }\n }, [containerRef, maxRows]);\n\n const maskRefCallback = useResizeObserver({\n ref: maskRef,\n onUpdate: updateHeight,\n disableHeight: true,\n });\n\n return {\n height: typeof height === \"number\" ? `${height}px` : undefined,\n maskRef: maskRefCallback,\n containerRef: containerRefCallback,\n scrollable: maxRows > 0 && isMaxHeightReached,\n disableTransition: disableTransition || isHeightSet.current,\n onChange(event) {\n onChange(event);\n\n const mask = maskRef.current;\n if (!mask || resize !== \"auto\") {\n return;\n }\n\n // to get the height transition to work, you have to set the height on:\n // - the main container element (including padding) that has the height\n // transition enabled\n // - a child div wrapper (without padding) that has the height transition\n // enabled\n // - the textarea element (without padding) and without a height transition\n //\n // if it isn't done this way, the height transition will look weird since\n // the text will be fixed to the bottom of the area and more text at the top\n // will become visible as the height transition completes. applying the\n // transition on the two parent elements work because:\n // - the height is set immediately on the text field so it expands to show all\n // the text\n // - the height is correctly applied to both parent elements, but their height\n // haven't fully been adjusted due to the animation\n // - the parent divs have overflow visible by default, so the textarea's text\n // will expand past the boundaries of the divs and not cause the upwards\n // animation weirdness.\n mask.value = event.currentTarget.value;\n updateHeight();\n },\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useEnsuredRef","useResizeObserver","DEFAULT_LINE_HEIGHT","noop","useResizingTextArea","options","maxRows","resize","onChange","containerRef","propContainerRef","disableTransition","maskRef","containerRefCallback","height","setHeight","undefined","isHeightSet","current","isMaxHeightReached","setMaxHeightReached","updateHeight","mask","container","containerStyles","window","getComputedStyle","isBorderBox","boxSizing","borderHeight","parseFloat","borderTopWidth","borderBottomWidth","nextHeight","scrollHeight","maskStyles","lineHeight","Number","isNaN","maxHeight","Math","min","maskRefCallback","ref","onUpdate","disableHeight","scrollable","event","value","currentTarget"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/useResizingTextArea.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type ChangeEventHandler,\n type Ref,\n type RefCallback,\n} from \"react\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useResizeObserver } from \"../useResizeObserver.js\";\n\n// this is the default of 1.5rem line-height in the styles\nconst DEFAULT_LINE_HEIGHT = 24;\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * A textarea is normally resizable in browsers by default by dragging the\n * bottom right corner to the desired size which will set inline styles for\n * `height` and `width`. Since this makes creating layouts a bit more difficult,\n * this is disabled by default but can be configured using one of these values:\n *\n * - `\"auto\"` - The textarea will automatically grow in in height as the user\n * types until a max number of rows have been added. If there is additional\n * text, a scrollbar will appear in the textarea. The browser's native resize\n * behavior is disabled.\n * - `\"none\"` - The textarea's height and width will remain static\n * - `\"horizontal\"` - The textarea's width can be resized by the browser's\n * native resize behavior.\n * - `\"vertical\"` - The textarea's height can be resized by the browser's native\n * resize behavior.\n * - `\"both\"` - The browser's native resize behavior will be allowed.\n */\nexport type TextAreaResize =\n | \"none\"\n | \"auto\"\n | \"horizontal\"\n | \"vertical\"\n | \"both\";\n\n/** @internal */\nexport interface ResizingTextAreaOptions {\n resize: TextAreaResize;\n maxRows: number;\n onChange: ChangeEventHandler<HTMLTextAreaElement> | undefined;\n containerRef?: Ref<HTMLDivElement>;\n disableTransition: boolean | undefined;\n}\n\n/** @internal */\nexport interface ResizingTextAreaReturnValue {\n height: string | undefined;\n maskRef: RefCallback<HTMLTextAreaElement>;\n containerRef: RefCallback<HTMLDivElement>;\n onChange: ChangeEventHandler<HTMLTextAreaElement>;\n scrollable: boolean;\n disableTransition: boolean;\n}\n\n/** @internal */\nexport function useResizingTextArea(\n options: ResizingTextAreaOptions\n): ResizingTextAreaReturnValue {\n const {\n maxRows,\n resize,\n onChange = noop,\n containerRef: propContainerRef,\n disableTransition,\n } = options;\n\n const maskRef = useRef<HTMLTextAreaElement>(null);\n const [containerRef, containerRefCallback] = useEnsuredRef(propContainerRef);\n const [height, setHeight] = useState<number>();\n useEffect(() => {\n if (resize !== \"auto\") {\n setHeight(undefined);\n }\n }, [resize]);\n\n // Since access to the DOM is required to calculate the current height of the\n // textarea, do not enable the height transition until it has been calculated\n // once.\n const isHeightSet = useRef(true);\n useEffect(() => {\n isHeightSet.current = !height;\n }, [height]);\n\n // Do not enable the scrollbar until the max height has been reached since\n // it'll flash as the user types on OS that display scrollbars.\n //\n // Note: This does cause an infinite loop issue on browsers that display OS\n // when rendered in a flex/grid container and a \"fluid\" width since:\n // - the width changes when the overflow changes to `auto`\n // - the resize observer triggers since there was a width change\n // - the number of rows imght change because of this width change\n // - it might no longer be at the max height, so remove the scrollbar\n // - restart\n const [isMaxHeightReached, setMaxHeightReached] = useState(false);\n const updateHeight = useCallback(() => {\n const mask = maskRef.current;\n const container = containerRef.current;\n /* c8 ignore start */\n if (!mask || !container) {\n return;\n }\n /* c8 ignore stop */\n\n const containerStyles = window.getComputedStyle(container);\n const isBorderBox = containerStyles.boxSizing === \"border-box\";\n let borderHeight = 0;\n if (isBorderBox) {\n borderHeight =\n parseFloat(containerStyles.borderTopWidth) +\n parseFloat(containerStyles.borderBottomWidth);\n }\n\n let nextHeight = mask.scrollHeight + borderHeight;\n if (maxRows > 0) {\n nextHeight -= borderHeight;\n const maskStyles = window.getComputedStyle(mask);\n // in tests, this is `\"normal\"` by default instead of a number\n let lineHeight = parseFloat(maskStyles.lineHeight);\n if (Number.isNaN(lineHeight)) {\n lineHeight = DEFAULT_LINE_HEIGHT;\n }\n\n const maxHeight = maxRows * lineHeight;\n nextHeight = Math.min(maxHeight, nextHeight);\n setMaxHeightReached(nextHeight === maxHeight);\n nextHeight += borderHeight;\n }\n\n // This just makes snapshots look nicer since `nextHeight` will be 0 in\n // tests unless the user mocks out all the DOM properties\n if (nextHeight) {\n setHeight(nextHeight);\n }\n }, [containerRef, maxRows]);\n\n const maskRefCallback = useResizeObserver({\n ref: maskRef,\n onUpdate: updateHeight,\n disableHeight: true,\n });\n\n return {\n height: typeof height === \"number\" ? `${height}px` : undefined,\n maskRef: maskRefCallback,\n containerRef: containerRefCallback,\n scrollable: maxRows > 0 && isMaxHeightReached,\n disableTransition: disableTransition || isHeightSet.current,\n onChange(event) {\n onChange(event);\n\n const mask = maskRef.current;\n if (!mask || resize !== \"auto\") {\n return;\n }\n\n // to get the height transition to work, you have to set the height on:\n // - the main container element (including padding) that has the height\n // transition enabled\n // - a child div wrapper (without padding) that has the height transition\n // enabled\n // - the textarea element (without padding) and without a height transition\n //\n // if it isn't done this way, the height transition will look weird since\n // the text will be fixed to the bottom of the area and more text at the top\n // will become visible as the height transition completes. applying the\n // transition on the two parent elements work because:\n // - the height is set immediately on the text field so it expands to show all\n // the text\n // - the height is correctly applied to both parent elements, but their height\n // haven't fully been adjusted due to the animation\n // - the parent divs have overflow visible by default, so the textarea's text\n // will expand past the boundaries of the divs and not cause the upwards\n // animation weirdness.\n mask.value = event.currentTarget.value;\n updateHeight();\n },\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useEnsuredRef","useResizeObserver","DEFAULT_LINE_HEIGHT","noop","useResizingTextArea","options","maxRows","resize","onChange","containerRef","propContainerRef","disableTransition","maskRef","containerRefCallback","height","setHeight","undefined","isHeightSet","current","isMaxHeightReached","setMaxHeightReached","updateHeight","mask","container","containerStyles","window","getComputedStyle","isBorderBox","boxSizing","borderHeight","parseFloat","borderTopWidth","borderBottomWidth","nextHeight","scrollHeight","maskStyles","lineHeight","Number","isNaN","maxHeight","Math","min","maskRefCallback","ref","onUpdate","disableHeight","scrollable","event","value","currentTarget"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/useSelectCombobox.ts"],"sourcesContent":["\"use client\";\nimport {\n useCombobox,\n type BaseComboboxOptions,\n type ComboboxImplementation,\n} from \"./useCombobox.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface SelectComboboxOptions<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n> extends BaseComboboxOptions<ComboboxEl, PopupEl> {\n value: string;\n values: readonly string[];\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SelectComboboxImplementation<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n> extends ComboboxImplementation<ComboboxEl, PopupEl> {}\n\n/**\n * @since 6.0.0\n */\nexport function useSelectCombobox<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n>(\n options: SelectComboboxOptions<ComboboxEl, PopupEl>\n): SelectComboboxImplementation<ComboboxEl, PopupEl> {\n const { value, values, ...comboboxOptions } = options;\n\n return useCombobox({\n ...comboboxOptions,\n searchable: true,\n extendKeyDown(movementData) {\n const { event, show, focusLast, visible } = movementData;\n if (visible) {\n return;\n }\n\n switch (event.key) {\n case \" \":\n case \"Home\":\n case \"End\":\n event.preventDefault();\n event.stopPropagation();\n focusLast.current = event.key === \"End\";\n show();\n break;\n }\n },\n getEnterDefaultFocusedIndex(options) {\n const { focusLast } = options;\n if (focusLast && !value) {\n return values.length - 1;\n }\n\n return Math.max(\n 0,\n values.findIndex((option) => option === value)\n );\n },\n });\n}\n"],"names":["useCombobox","useSelectCombobox","options","value","values","comboboxOptions","searchable","extendKeyDown","movementData","event","show","focusLast","visible","key","preventDefault","stopPropagation","current","getEnterDefaultFocusedIndex","length","Math","max","findIndex","option"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SACEA,WAAW,QAGN,mBAAmB;AAqB1B;;CAEC,GACD,OAAO,SAASC,kBAIdC,OAAmD;IAEnD,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,iBAAiB,GAAGH;IAE9C,OAAOF,YAAY;QACjB,GAAGK,eAAe;QAClBC,YAAY;QACZC,eAAcC,YAAY;YACxB,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGJ;YAC5C,IAAII,SAAS;gBACX;YACF;YAEA,OAAQH,MAAMI,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;oBACHJ,MAAMK,cAAc;oBACpBL,MAAMM,eAAe;oBACrBJ,UAAUK,OAAO,GAAGP,MAAMI,GAAG,KAAK;oBAClCH;oBACA;YACJ;QACF;QACAO,6BAA4Bf,OAAO;YACjC,MAAM,EAAES,SAAS,EAAE,GAAGT;YACtB,IAAIS,aAAa,CAACR,OAAO;gBACvB,OAAOC,OAAOc,MAAM,GAAG;YACzB;YAEA,OAAOC,KAAKC,GAAG,CACb,GACAhB,OAAOiB,SAAS,CAAC,CAACC,SAAWA,WAAWnB;QAE5C;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/form/useSelectCombobox.ts"],"sourcesContent":["\"use client\";\nimport {\n useCombobox,\n type BaseComboboxOptions,\n type ComboboxImplementation,\n} from \"./useCombobox.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface SelectComboboxOptions<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n> extends BaseComboboxOptions<ComboboxEl, PopupEl> {\n value: string;\n values: readonly string[];\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SelectComboboxImplementation<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n> extends ComboboxImplementation<ComboboxEl, PopupEl> {}\n\n/**\n * @since 6.0.0\n */\nexport function useSelectCombobox<\n ComboboxEl extends HTMLElement = HTMLInputElement,\n PopupEl extends HTMLElement = HTMLElement,\n>(\n options: SelectComboboxOptions<ComboboxEl, PopupEl>\n): SelectComboboxImplementation<ComboboxEl, PopupEl> {\n const { value, values, ...comboboxOptions } = options;\n\n return useCombobox({\n ...comboboxOptions,\n searchable: true,\n extendKeyDown(movementData) {\n const { event, show, focusLast, visible } = movementData;\n if (visible) {\n return;\n }\n\n switch (event.key) {\n case \" \":\n case \"Home\":\n case \"End\":\n event.preventDefault();\n event.stopPropagation();\n focusLast.current = event.key === \"End\";\n show();\n break;\n }\n },\n getEnterDefaultFocusedIndex(options) {\n const { focusLast } = options;\n if (focusLast && !value) {\n return values.length - 1;\n }\n\n return Math.max(\n 0,\n values.findIndex((option) => option === value)\n );\n },\n });\n}\n"],"names":["useCombobox","useSelectCombobox","options","value","values","comboboxOptions","searchable","extendKeyDown","movementData","event","show","focusLast","visible","key","preventDefault","stopPropagation","current","getEnterDefaultFocusedIndex","length","Math","max","findIndex","option"],"mappings":"AAAA;AACA,SACEA,WAAW,QAGN,mBAAmB;AAqB1B;;CAEC,GACD,OAAO,SAASC,kBAIdC,OAAmD;IAEnD,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,iBAAiB,GAAGH;IAE9C,OAAOF,YAAY;QACjB,GAAGK,eAAe;QAClBC,YAAY;QACZC,eAAcC,YAAY;YACxB,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGJ;YAC5C,IAAII,SAAS;gBACX;YACF;YAEA,OAAQH,MAAMI,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;oBACHJ,MAAMK,cAAc;oBACpBL,MAAMM,eAAe;oBACrBJ,UAAUK,OAAO,GAAGP,MAAMI,GAAG,KAAK;oBAClCH;oBACA;YACJ;QACF;QACAO,6BAA4Bf,OAAO;YACjC,MAAM,EAAES,SAAS,EAAE,GAAGT;YACtB,IAAIS,aAAa,CAACR,OAAO;gBACvB,OAAOC,OAAOc,MAAM,GAAG;YACzB;YAEA,OAAOC,KAAKC,GAAG,CACb,GACAhB,OAAOiB,SAAS,CAAC,CAACC,SAAWA,WAAWnB;QAE5C;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/useSlider.ts"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { getRangeDefaultValue } from \"../utils/getRangeDefaultValue.js\";\n\n/**\n * @since 2.5.0\n */\nexport interface SliderValueOptions {\n /**\n * The min value for the slider.\n *\n * @defaultValue `0`\n */\n min?: number;\n\n /**\n * The max value for the slider.\n *\n * @defaultValue `100`\n */\n max?: number;\n\n /**\n * A positive number representing the value to \"jump\" while incrementing or\n * decrementing the slider's value. This should normally stay as the default\n * value of `1`, but can also be decimal values if needed.\n *\n * @defaultValue `1`\n */\n step?: number;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderState {\n value: number;\n setValue: UseStateSetter<number>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderImplementation\n extends Required<SliderValueOptions>,\n SliderState {}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderOptions extends SliderValueOptions {\n /**\n * @defaultValue `(max - min ) / 2`\n */\n defaultValue?: UseStateInitializer<number>;\n}\n\n/**\n * @example Simple Example\n * ```tsx\n * import { Form, Slider, useSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: 50,\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { value, setValue } = slider;\n *\n * return (\n * <Form>\n * <Slider {...slider} aria-label=\"Volume\" />\n * </Form>\n * );\n * }\n * ```\n *\n * @see The `Slider` component for additional examples.\n * @since 2.5.0\n * @since 6.0.0 Now returns an object instead of an ordered tuple and only\n * return the `value` and `setValue` instead of all the slider functionality. In\n * addition, the hook only accepts a single object argument.\n */\nexport function useSlider(options: SliderOptions = {}): SliderImplementation {\n const { min = 0, max = 100, step = 1, defaultValue } = options;\n const [value, setValue] = useState(\n getRangeDefaultValue({\n min,\n max,\n step,\n defaultValue,\n })\n );\n\n return {\n min,\n max,\n step,\n value,\n setValue,\n };\n}\n"],"names":["useState","getRangeDefaultValue","useSlider","options","min","max","step","defaultValue","value","setValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,QAAQ;AAEjC,SAASC,oBAAoB,QAAQ,mCAAmC;AAuDxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,SAASC,UAAUC,UAAyB,CAAC,CAAC;IACnD,MAAM,EAAEC,MAAM,CAAC,EAAEC,MAAM,GAAG,EAAEC,OAAO,CAAC,EAAEC,YAAY,EAAE,GAAGJ;IACvD,MAAM,CAACK,OAAOC,SAAS,GAAGT,SACxBC,qBAAqB;QACnBG;QACAC;QACAC;QACAC;IACF;IAGF,OAAO;QACLH;QACAC;QACAC;QACAE;QACAC;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/form/useSlider.ts"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { getRangeDefaultValue } from \"../utils/getRangeDefaultValue.js\";\n\n/**\n * @since 2.5.0\n */\nexport interface SliderValueOptions {\n /**\n * The min value for the slider.\n *\n * @defaultValue `0`\n */\n min?: number;\n\n /**\n * The max value for the slider.\n *\n * @defaultValue `100`\n */\n max?: number;\n\n /**\n * A positive number representing the value to \"jump\" while incrementing or\n * decrementing the slider's value. This should normally stay as the default\n * value of `1`, but can also be decimal values if needed.\n *\n * @defaultValue `1`\n */\n step?: number;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderState {\n value: number;\n setValue: UseStateSetter<number>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderImplementation\n extends Required<SliderValueOptions>,\n SliderState {}\n\n/**\n * @since 6.0.0\n */\nexport interface SliderOptions extends SliderValueOptions {\n /**\n * @defaultValue `(max - min ) / 2`\n */\n defaultValue?: UseStateInitializer<number>;\n}\n\n/**\n * @example Simple Example\n * ```tsx\n * import { Form, Slider, useSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: 50,\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { value, setValue } = slider;\n *\n * return (\n * <Form>\n * <Slider {...slider} aria-label=\"Volume\" />\n * </Form>\n * );\n * }\n * ```\n *\n * @see The `Slider` component for additional examples.\n * @since 2.5.0\n * @since 6.0.0 Now returns an object instead of an ordered tuple and only\n * return the `value` and `setValue` instead of all the slider functionality. In\n * addition, the hook only accepts a single object argument.\n */\nexport function useSlider(options: SliderOptions = {}): SliderImplementation {\n const { min = 0, max = 100, step = 1, defaultValue } = options;\n const [value, setValue] = useState(\n getRangeDefaultValue({\n min,\n max,\n step,\n defaultValue,\n })\n );\n\n return {\n min,\n max,\n step,\n value,\n setValue,\n };\n}\n"],"names":["useState","getRangeDefaultValue","useSlider","options","min","max","step","defaultValue","value","setValue"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,QAAQ;AAEjC,SAASC,oBAAoB,QAAQ,mCAAmC;AAuDxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCC,GACD,OAAO,SAASC,UAAUC,UAAyB,CAAC,CAAC;IACnD,MAAM,EAAEC,MAAM,CAAC,EAAEC,MAAM,GAAG,EAAEC,OAAO,CAAC,EAAEC,YAAY,EAAE,GAAGJ;IACvD,MAAM,CAACK,OAAOC,SAAS,GAAGT,SACxBC,qBAAqB;QACnBG;QACAC;QACAC;QACAC;IACF;IAGF,OAAO;QACLH;QACAC;QACAC;QACAE;QACAC;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/useTextField.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n type RefCallback,\n type RefObject,\n} from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { type TextFieldProps } from \"./TextField.js\";\nimport {\n type FormMessageInputLengthCounterProps,\n type FormMessageProps,\n} from \"./types.js\";\nimport {\n defaultGetErrorIcon,\n defaultGetErrorMessage,\n defaultIsErrored,\n type ErrorMessageOptions,\n type GetErrorIcon,\n type GetErrorMessage,\n type IsErrored,\n type TextFieldValidationOptions,\n type TextFieldValidationType,\n} from \"./validation.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 2.5.0\n * @since 6.0.0 Added the `onInvalid` handler\n */\nexport type TextFieldChangeHandlers<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> = Pick<HTMLAttributes<E>, \"onBlur\" | \"onChange\" | \"onInvalid\">;\n\n/** @since 6.0.0 */\nexport interface ErrorChangeHandlerOptions<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> {\n /**\n * A ref containing the `TextField` or `TextArea` if you need access to that\n * DOM node for error reporting.\n */\n ref: RefObject<E>;\n\n /**\n * The current name for the `TextField` or `TextArea`.\n */\n name: string;\n\n /**\n * This will be `true` when the `TextField`/`TextArea` has an error.\n */\n error: boolean;\n\n /**\n * The error message returned by {@link GetErrorMessage}/the browser's\n * validation message. This is normally an empty string when the {@link error}\n * state is `false`.\n */\n errorMessage: string;\n}\n\n/**\n * A function that reports the error state changing. A good use-case for this is\n * to keep track of all the errors within your form and keep a submit button\n * disabled until they have been resolved.\n *\n * Example:\n *\n * ```ts\n * const [errors, setErrors] = useState<Record<string, boolean | undefined>>({});\n * const onErrorChange: ErrorChangeHandler = ({ name, error }) =>\n * setErrors((prevErrors) => ({ ...prevErrors, [name]: error }));\n *\n * const invalid = Object.values(errors).some(Boolean);\n *\n * // form implementation is left as an exercise for the reader\n * <Button type=\"submit\" disabled={invalid} onClick={submitForm}>Submit</Button>\n * ```\n *\n * @since 2.5.0\n * @since 6.0.0 Changed to object argument.\n */\nexport type ErrorChangeHandler<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> = (options: ErrorChangeHandlerOptions<E>) => void;\n\n/** @since 2.5.6 */\nexport interface TextFieldHookState {\n /**\n * The current value for the `TextField` or `TextArea`.\n */\n value: string;\n\n /**\n * This will be `true` when the `TextField`/`TextArea` has an error.\n */\n error: boolean;\n\n /**\n * The error message returned by {@link GetErrorMessage}/the browser's\n * validation message. This is normally an empty string when the {@link error}\n * state is `false`.\n */\n errorMessage: string;\n}\n\n/**\n * All the props that will be generated and return from the `useTextField` hook\n * that should be passed to a `FormMessage` component.\n *\n * @since 2.5.0\n */\nexport interface ProvidedFormMessageProps\n extends Pick<FormMessageProps, \"id\" | \"theme\" | \"children\">,\n Required<Pick<TextFieldProps, \"error\">>,\n Partial<Pick<FormMessageInputLengthCounterProps, \"length\" | \"maxLength\">> {}\n\n/**\n * All the props that will be generated and returned by the `useTextField` hook\n * that should be passed to a `TextField` component.\n *\n * @since 2.5.0\n */\nexport interface ProvidedTextFieldProps<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldValidationOptions,\n TextFieldChangeHandlers<E>,\n Required<Pick<TextFieldProps, \"id\" | \"name\" | \"value\" | \"error\">>,\n Pick<TextFieldProps, \"aria-describedby\" | \"rightAddon\"> {\n /**\n * A ref that must be passed to the `TextField`/`TextArea` so that the custom\n * validity behavior can work.\n *\n * @since 6.0.0\n */\n ref: RefCallback<E>;\n}\n\n/**\n * @since 2.5.0\n */\nexport interface ProvidedTextFieldMessageProps<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends ProvidedTextFieldProps<E> {\n /**\n * These props will be defined as long as the `disableMessage` prop is not\n * `true` from the `useTextField` hook.\n */\n messageProps: ProvidedFormMessageProps;\n}\n\n/** @since 2.5.6 */\nexport interface TextFieldHookOptions<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldValidationOptions,\n TextFieldChangeHandlers<E> {\n /**\n * An optional id to use for the `TextField` or `TextArea` that is also used\n * to create an id for the inline help/error messages.\n *\n * @defaultValue `\"text-field-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional ref that should be merged with the ref returned by this hook.\n * This should really only be used if you are making a custom component using\n * this hook and forwarding refs. If you need a ref to access the `<input>` or\n * `<textarea>` DOM node, you can use the `fieldRef` returned by this hook\n * instead.\n *\n * @example Accessing TextField DOM Node\n * ```tsx\n * import { TextField, useTextField } from \"@react-md/core\";\n * import { useEffect } from \"react\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const { fieldRef, fieldProps } = useTextField({ name: \"example\" });\n *\n * useEffect(() => {\n * fieldRef.current;\n * // ^ HTMLInputElement | null\n * }, [fieldRef]);\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n */\n ref?: Ref<E>;\n\n /**\n * A unique name to attach to the `TextField`, `TextArea` or `Password`\n * component.\n */\n name: string;\n\n /**\n * Boolean if the `FormMessage` should also display a counter for the\n * remaining letters allowed based on the `maxLength`.\n *\n * This will still be considered false if the `maxLength` value is not\n * provided.\n *\n * @defaultValue `false`\n */\n counter?: boolean;\n\n /**\n * This is used internally for the `useNumberField` hook and probably\n * shouldn't be used otherwise. This is just passed into the\n * {@link getErrorMessage} options and is used for additional validation.\n *\n * @defaultValue `false`\n */\n isNumber?: boolean;\n\n /**\n * The default value to use for the `TextField` or `TextArea` one initial\n * render. If you want to manually change the value to something else after\n * the initial render, either change the `key` for the component containing\n * this hook, or use the `setState` function returned from this hook.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: UseStateInitializer<string>;\n\n /**\n * An optional help text to display in the `FormMessage` component when there\n * is not an error.\n */\n helpText?: ReactNode;\n\n /**\n * A function used to determine if the `TextField` or `TextArea` is an in\n * errored state.\n *\n * @see {@link defaultIsErrored}\n * @defaultValue `defaultIsErrored`\n */\n isErrored?: IsErrored;\n\n /**\n * An optional error icon used in the {@link getErrorIcon} option.\n *\n * @defaultValue `getIcon(\"error\")`\n */\n errorIcon?: ReactNode;\n\n /**\n * A function used to get the error icon to display at the right of the\n * `TextField` or `TextArea`. The default behavior will only show an icon when\n * the `error` state is `true` and an `errorIcon` option has been provided.\n *\n * @see {@link defaultGetErrorIcon}\n * @defaultValue `defaultGetErrorIcon`\n */\n getErrorIcon?: GetErrorIcon;\n\n /**\n * A function to get and display an error message based on the `TextField` or\n * `TextArea` validity.\n *\n * @see {@link defaultGetErrorMessage}\n * @defaultValue `defaultGetErrorMessage`\n */\n getErrorMessage?: GetErrorMessage;\n\n /**\n * An optional function that will be called whenever the `error` state is\n * changed. This can be used for more complex forms to `disable` the Submit\n * button or anything else if any field has an error.\n *\n * @defaultValue `() => {}`\n */\n onErrorChange?: ErrorChangeHandler<E>;\n\n /**\n * Boolean if the `TextField` or `TextArea` will **not** be rendered along\n * with a `FormMessage` component. This will prevent the `aria-describedby`\n * prop from being returned when set to `true`.\n *\n * @defaultValue `false`\n */\n disableMessage?: boolean;\n\n /**\n * Boolean if the `maxLength` prop should not be passed to the `TextField`\n * component since it will prevent any additional characters from being\n * entered in the text field which might feel like weird behavior to some\n * users. This should really only be used when the `counter` option is also\n * enabled and rendering along with a `FormMessage` component.\n *\n * @defaultValue `false`\n */\n disableMaxLength?: boolean;\n\n /**\n * @defaultValue `\"recommended\"`\n */\n validationType?: TextFieldValidationType;\n}\n\n/** @since 6.0.0 */\nexport interface TextFieldImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldHookState {\n fieldRef: RefObject<E>;\n reset(): void;\n setState: UseStateSetter<Readonly<TextFieldHookState>>;\n fieldProps: ProvidedTextFieldProps<E>;\n}\n\n/** @since 6.0.0 */\nexport interface TextFieldWithMessageImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldImplementation<E> {\n fieldProps: ProvidedTextFieldMessageProps<E>;\n}\n\n/** @since 6.0.0 */\nexport interface ValidatedTextFieldImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldImplementation<E> {\n fieldProps: ProvidedTextFieldProps<E> | ProvidedTextFieldMessageProps<E>;\n}\n\n/**\n * If you do not want to display the error messages below the `TextField` and\n * handle error messages separately, set the `disableMessage` option to `true`.\n *\n * @example No Inline Error Messages\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * disableMessage: true,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * Look at the other {@link useTextField} override for additional examples.\n */\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E> & { disableMessage: true }\n): TextFieldImplementation<E>;\n\n/**\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Inline Counter\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * counter: true,\n * required: true,\n * maxLength: 20,\n * disableMaxLength: true,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Adding Constraints\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * required: true,\n * pattern: \"^[A-z]+$\",\n * minLength: 4,\n * maxLength: 20,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Custom Validation\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * required: true,\n * getErrorMessage(options) {\n * const {\n * value,\n * pattern,\n * required,\n * minLength,\n * maxLength,\n * validity,\n * validationMessage,\n * isNumber,\n * isBlurEvent,\n * validationType,\n * } = options;\n *\n * if (validity.tooLong) {\n * return `No more than ${maxLength} characters.`;\n * }\n *\n * if (validity.tooShort) {\n * return `No more than ${minLength} characters.`;\n * }\n *\n * if (validity.valueMissing) {\n * return \"This value is required!\";\n * }\n *\n * if (value === \"bad value\") {\n * return \"Value cannot be bad value\";\n * }\n *\n * return defaultGetErrorMessage(options);\n * }\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation\n * @since 2.5.6\n * @since 6.0.0 This hook returns an object instead of an ordered list.\n */\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E>\n): TextFieldWithMessageImplementation<E>;\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E>\n): ValidatedTextFieldImplementation<E> {\n const {\n id: propId,\n ref: propRef,\n name,\n defaultValue = \"\",\n isNumber = false,\n required,\n pattern,\n minLength,\n maxLength,\n onBlur = noop,\n onChange = noop,\n onInvalid = noop,\n counter = false,\n helpText,\n validationType = \"recommended\",\n disableMessage = false,\n disableMaxLength = false,\n errorIcon: propErrorIcon,\n isErrored = defaultIsErrored,\n onErrorChange = noop,\n getErrorIcon = defaultGetErrorIcon,\n getErrorMessage = defaultGetErrorMessage,\n } = options;\n\n const id = useEnsuredId(propId, \"text-field\");\n const messageId = `${id}-message`;\n const [fieldRef, ref] = useEnsuredRef(propRef);\n const [state, setState] = useState<TextFieldHookState>(() => {\n const value =\n typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n\n return {\n value,\n error: false,\n errorMessage: \"\",\n };\n });\n const { value, error, errorMessage } = state;\n\n // using a `ref` instead of a `useCallback` makes it so the `defaultValue`\n // will always be used once reset.\n const reset = useRef(() => {\n fieldRef.current?.setCustomValidity(\"\");\n setState({ value, error: false, errorMessage: \"\" });\n }).current;\n\n const errored = useRef(error);\n const checkValidity = useCallback(\n (isBlurEvent: boolean) => {\n const field = fieldRef.current;\n if (!field) {\n throw new Error(\"Unable to check validity due to missing ref\");\n }\n\n // need to temporarily set the `maxLength` back so it can be \"verified\"\n // through the validity api\n /* istanbul ignore next */\n if (isBlurEvent && disableMaxLength && typeof maxLength === \"number\") {\n field.maxLength = maxLength;\n }\n\n const { value } = field;\n field.setCustomValidity(\"\");\n field.checkValidity();\n\n // remove the temporarily set `maxLength` attribute after checking the\n // validity\n /* istanbul ignore next */\n if (disableMaxLength && typeof maxLength === \"number\") {\n field.removeAttribute(\"maxLength\");\n }\n\n const options: ErrorMessageOptions = {\n value,\n pattern,\n required,\n minLength,\n maxLength,\n isBlurEvent,\n isNumber,\n validationType,\n validity: field.validity,\n validationMessage: field.validationMessage,\n };\n const errorMessage = getErrorMessage(options);\n const error = isErrored({ ...options, errorMessage });\n\n if (errored.current !== error) {\n errored.current = error;\n onErrorChange({\n ref: fieldRef,\n name,\n error,\n errorMessage,\n });\n }\n\n /* istanbul ignore next */\n if (errorMessage !== field.validationMessage) {\n field.setCustomValidity(errorMessage);\n }\n\n setState((prevState) => {\n if (\n prevState.value === value &&\n prevState.error === error &&\n prevState.errorMessage === errorMessage\n ) {\n return prevState;\n }\n\n return {\n value,\n error,\n errorMessage,\n };\n });\n },\n [\n disableMaxLength,\n fieldRef,\n getErrorMessage,\n isErrored,\n isNumber,\n maxLength,\n minLength,\n name,\n onErrorChange,\n pattern,\n required,\n validationType,\n ]\n );\n\n const errorIcon = getIcon(\"error\", propErrorIcon);\n const fieldProps: ProvidedTextFieldProps<E> & {\n messageProps?: ProvidedFormMessageProps;\n } = {\n id,\n ref,\n name,\n value,\n error,\n required,\n pattern,\n minLength,\n maxLength: disableMaxLength ? undefined : maxLength,\n rightAddon: getErrorIcon({\n error,\n errorIcon,\n errorMessage,\n }),\n onBlur(event) {\n onBlur(event);\n if (event.isPropagationStopped()) {\n return;\n }\n checkValidity(true);\n },\n onChange(event) {\n onChange(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n if (validationType === \"blur\") {\n setState((prevState) => ({\n ...prevState,\n value: event.currentTarget.value,\n }));\n return;\n }\n\n checkValidity(false);\n },\n onInvalid(event) {\n onInvalid(event);\n if (\n event.isPropagationStopped() ||\n event.currentTarget === document.activeElement\n ) {\n return;\n }\n\n // this makes it so that if a submit button is clicked in a form, all\n // textfields will gain the error state immediately\n // also need to extract the validationMessage immediately because of the\n // SyntheticEvent behavior in React. By the time the `setState` is called,\n // the event might've been deleted\n const { validationMessage } = event.currentTarget;\n\n setState((prevState) => {\n if (prevState.error) {\n return prevState;\n }\n\n return {\n ...prevState,\n error: true,\n errorMessage: validationMessage,\n };\n });\n },\n };\n\n if (!disableMessage) {\n fieldProps[\"aria-describedby\"] = messageId;\n fieldProps.messageProps = {\n id: messageId,\n error,\n length: counter ? value.length : undefined,\n maxLength:\n counter && typeof maxLength === \"number\" ? maxLength : undefined,\n children: errorMessage || helpText,\n };\n }\n\n return {\n ...state,\n reset,\n setState,\n fieldRef,\n fieldProps,\n };\n}\n"],"names":["useCallback","useRef","useState","getIcon","useEnsuredId","useEnsuredRef","defaultGetErrorIcon","defaultGetErrorMessage","defaultIsErrored","noop","useTextField","options","id","propId","ref","propRef","name","defaultValue","isNumber","required","pattern","minLength","maxLength","onBlur","onChange","onInvalid","counter","helpText","validationType","disableMessage","disableMaxLength","errorIcon","propErrorIcon","isErrored","onErrorChange","getErrorIcon","getErrorMessage","messageId","fieldRef","state","setState","value","error","errorMessage","reset","current","setCustomValidity","errored","checkValidity","isBlurEvent","field","Error","removeAttribute","validity","validationMessage","prevState","fieldProps","undefined","rightAddon","event","isPropagationStopped","currentTarget","document","activeElement","messageProps","length","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/useTextField.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n type RefCallback,\n type RefObject,\n} from \"react\";\nimport { getIcon } from \"../icon/iconConfig.js\";\nimport { type UseStateInitializer, type UseStateSetter } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { type TextFieldProps } from \"./TextField.js\";\nimport {\n type FormMessageInputLengthCounterProps,\n type FormMessageProps,\n} from \"./types.js\";\nimport {\n defaultGetErrorIcon,\n defaultGetErrorMessage,\n defaultIsErrored,\n type ErrorMessageOptions,\n type GetErrorIcon,\n type GetErrorMessage,\n type IsErrored,\n type TextFieldValidationOptions,\n type TextFieldValidationType,\n} from \"./validation.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @since 2.5.0\n * @since 6.0.0 Added the `onInvalid` handler\n */\nexport type TextFieldChangeHandlers<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> = Pick<HTMLAttributes<E>, \"onBlur\" | \"onChange\" | \"onInvalid\">;\n\n/** @since 6.0.0 */\nexport interface ErrorChangeHandlerOptions<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> {\n /**\n * A ref containing the `TextField` or `TextArea` if you need access to that\n * DOM node for error reporting.\n */\n ref: RefObject<E>;\n\n /**\n * The current name for the `TextField` or `TextArea`.\n */\n name: string;\n\n /**\n * This will be `true` when the `TextField`/`TextArea` has an error.\n */\n error: boolean;\n\n /**\n * The error message returned by {@link GetErrorMessage}/the browser's\n * validation message. This is normally an empty string when the {@link error}\n * state is `false`.\n */\n errorMessage: string;\n}\n\n/**\n * A function that reports the error state changing. A good use-case for this is\n * to keep track of all the errors within your form and keep a submit button\n * disabled until they have been resolved.\n *\n * Example:\n *\n * ```ts\n * const [errors, setErrors] = useState<Record<string, boolean | undefined>>({});\n * const onErrorChange: ErrorChangeHandler = ({ name, error }) =>\n * setErrors((prevErrors) => ({ ...prevErrors, [name]: error }));\n *\n * const invalid = Object.values(errors).some(Boolean);\n *\n * // form implementation is left as an exercise for the reader\n * <Button type=\"submit\" disabled={invalid} onClick={submitForm}>Submit</Button>\n * ```\n *\n * @since 2.5.0\n * @since 6.0.0 Changed to object argument.\n */\nexport type ErrorChangeHandler<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> = (options: ErrorChangeHandlerOptions<E>) => void;\n\n/** @since 2.5.6 */\nexport interface TextFieldHookState {\n /**\n * The current value for the `TextField` or `TextArea`.\n */\n value: string;\n\n /**\n * This will be `true` when the `TextField`/`TextArea` has an error.\n */\n error: boolean;\n\n /**\n * The error message returned by {@link GetErrorMessage}/the browser's\n * validation message. This is normally an empty string when the {@link error}\n * state is `false`.\n */\n errorMessage: string;\n}\n\n/**\n * All the props that will be generated and return from the `useTextField` hook\n * that should be passed to a `FormMessage` component.\n *\n * @since 2.5.0\n */\nexport interface ProvidedFormMessageProps\n extends Pick<FormMessageProps, \"id\" | \"theme\" | \"children\">,\n Required<Pick<TextFieldProps, \"error\">>,\n Partial<Pick<FormMessageInputLengthCounterProps, \"length\" | \"maxLength\">> {}\n\n/**\n * All the props that will be generated and returned by the `useTextField` hook\n * that should be passed to a `TextField` component.\n *\n * @since 2.5.0\n */\nexport interface ProvidedTextFieldProps<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldValidationOptions,\n TextFieldChangeHandlers<E>,\n Required<Pick<TextFieldProps, \"id\" | \"name\" | \"value\" | \"error\">>,\n Pick<TextFieldProps, \"aria-describedby\" | \"rightAddon\"> {\n /**\n * A ref that must be passed to the `TextField`/`TextArea` so that the custom\n * validity behavior can work.\n *\n * @since 6.0.0\n */\n ref: RefCallback<E>;\n}\n\n/**\n * @since 2.5.0\n */\nexport interface ProvidedTextFieldMessageProps<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends ProvidedTextFieldProps<E> {\n /**\n * These props will be defined as long as the `disableMessage` prop is not\n * `true` from the `useTextField` hook.\n */\n messageProps: ProvidedFormMessageProps;\n}\n\n/** @since 2.5.6 */\nexport interface TextFieldHookOptions<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldValidationOptions,\n TextFieldChangeHandlers<E> {\n /**\n * An optional id to use for the `TextField` or `TextArea` that is also used\n * to create an id for the inline help/error messages.\n *\n * @defaultValue `\"text-field-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional ref that should be merged with the ref returned by this hook.\n * This should really only be used if you are making a custom component using\n * this hook and forwarding refs. If you need a ref to access the `<input>` or\n * `<textarea>` DOM node, you can use the `fieldRef` returned by this hook\n * instead.\n *\n * @example Accessing TextField DOM Node\n * ```tsx\n * import { TextField, useTextField } from \"@react-md/core\";\n * import { useEffect } from \"react\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const { fieldRef, fieldProps } = useTextField({ name: \"example\" });\n *\n * useEffect(() => {\n * fieldRef.current;\n * // ^ HTMLInputElement | null\n * }, [fieldRef]);\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n */\n ref?: Ref<E>;\n\n /**\n * A unique name to attach to the `TextField`, `TextArea` or `Password`\n * component.\n */\n name: string;\n\n /**\n * Boolean if the `FormMessage` should also display a counter for the\n * remaining letters allowed based on the `maxLength`.\n *\n * This will still be considered false if the `maxLength` value is not\n * provided.\n *\n * @defaultValue `false`\n */\n counter?: boolean;\n\n /**\n * This is used internally for the `useNumberField` hook and probably\n * shouldn't be used otherwise. This is just passed into the\n * {@link getErrorMessage} options and is used for additional validation.\n *\n * @defaultValue `false`\n */\n isNumber?: boolean;\n\n /**\n * The default value to use for the `TextField` or `TextArea` one initial\n * render. If you want to manually change the value to something else after\n * the initial render, either change the `key` for the component containing\n * this hook, or use the `setState` function returned from this hook.\n *\n * @defaultValue `\"\"`\n */\n defaultValue?: UseStateInitializer<string>;\n\n /**\n * An optional help text to display in the `FormMessage` component when there\n * is not an error.\n */\n helpText?: ReactNode;\n\n /**\n * A function used to determine if the `TextField` or `TextArea` is an in\n * errored state.\n *\n * @see {@link defaultIsErrored}\n * @defaultValue `defaultIsErrored`\n */\n isErrored?: IsErrored;\n\n /**\n * An optional error icon used in the {@link getErrorIcon} option.\n *\n * @defaultValue `getIcon(\"error\")`\n */\n errorIcon?: ReactNode;\n\n /**\n * A function used to get the error icon to display at the right of the\n * `TextField` or `TextArea`. The default behavior will only show an icon when\n * the `error` state is `true` and an `errorIcon` option has been provided.\n *\n * @see {@link defaultGetErrorIcon}\n * @defaultValue `defaultGetErrorIcon`\n */\n getErrorIcon?: GetErrorIcon;\n\n /**\n * A function to get and display an error message based on the `TextField` or\n * `TextArea` validity.\n *\n * @see {@link defaultGetErrorMessage}\n * @defaultValue `defaultGetErrorMessage`\n */\n getErrorMessage?: GetErrorMessage;\n\n /**\n * An optional function that will be called whenever the `error` state is\n * changed. This can be used for more complex forms to `disable` the Submit\n * button or anything else if any field has an error.\n *\n * @defaultValue `() => {}`\n */\n onErrorChange?: ErrorChangeHandler<E>;\n\n /**\n * Boolean if the `TextField` or `TextArea` will **not** be rendered along\n * with a `FormMessage` component. This will prevent the `aria-describedby`\n * prop from being returned when set to `true`.\n *\n * @defaultValue `false`\n */\n disableMessage?: boolean;\n\n /**\n * Boolean if the `maxLength` prop should not be passed to the `TextField`\n * component since it will prevent any additional characters from being\n * entered in the text field which might feel like weird behavior to some\n * users. This should really only be used when the `counter` option is also\n * enabled and rendering along with a `FormMessage` component.\n *\n * @defaultValue `false`\n */\n disableMaxLength?: boolean;\n\n /**\n * @defaultValue `\"recommended\"`\n */\n validationType?: TextFieldValidationType;\n}\n\n/** @since 6.0.0 */\nexport interface TextFieldImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldHookState {\n fieldRef: RefObject<E>;\n reset(): void;\n setState: UseStateSetter<Readonly<TextFieldHookState>>;\n fieldProps: ProvidedTextFieldProps<E>;\n}\n\n/** @since 6.0.0 */\nexport interface TextFieldWithMessageImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldImplementation<E> {\n fieldProps: ProvidedTextFieldMessageProps<E>;\n}\n\n/** @since 6.0.0 */\nexport interface ValidatedTextFieldImplementation<\n E extends HTMLInputElement | HTMLTextAreaElement,\n> extends TextFieldImplementation<E> {\n fieldProps: ProvidedTextFieldProps<E> | ProvidedTextFieldMessageProps<E>;\n}\n\n/**\n * If you do not want to display the error messages below the `TextField` and\n * handle error messages separately, set the `disableMessage` option to `true`.\n *\n * @example No Inline Error Messages\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * disableMessage: true,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * Look at the other {@link useTextField} override for additional examples.\n */\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E> & { disableMessage: true }\n): TextFieldImplementation<E>;\n\n/**\n * @example Simple Example\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Inline Counter\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * counter: true,\n * required: true,\n * maxLength: 20,\n * disableMaxLength: true,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Adding Constraints\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * required: true,\n * pattern: \"^[A-z]+$\",\n * minLength: 4,\n * maxLength: 20,\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @example Custom Validation\n * ```tsx\n * import type { ReactElement } from \"react\";\n * import { TextField, useTextField } from \"@react-md/core\";\n *\n * function Example(): ReactElement {\n * const { fieldProps } = useTextField({\n * name: \"example\",\n * required: true,\n * getErrorMessage(options) {\n * const {\n * value,\n * pattern,\n * required,\n * minLength,\n * maxLength,\n * validity,\n * validationMessage,\n * isNumber,\n * isBlurEvent,\n * validationType,\n * } = options;\n *\n * if (validity.tooLong) {\n * return `No more than ${maxLength} characters.`;\n * }\n *\n * if (validity.tooShort) {\n * return `No more than ${minLength} characters.`;\n * }\n *\n * if (validity.valueMissing) {\n * return \"This value is required!\";\n * }\n *\n * if (value === \"bad value\") {\n * return \"Value cannot be bad value\";\n * }\n *\n * return defaultGetErrorMessage(options);\n * }\n * });\n *\n * return <TextField {...fieldProps} label=\"Example\" />;\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation\n * @since 2.5.6\n * @since 6.0.0 This hook returns an object instead of an ordered list.\n */\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E>\n): TextFieldWithMessageImplementation<E>;\nexport function useTextField<E extends HTMLInputElement | HTMLTextAreaElement>(\n options: TextFieldHookOptions<E>\n): ValidatedTextFieldImplementation<E> {\n const {\n id: propId,\n ref: propRef,\n name,\n defaultValue = \"\",\n isNumber = false,\n required,\n pattern,\n minLength,\n maxLength,\n onBlur = noop,\n onChange = noop,\n onInvalid = noop,\n counter = false,\n helpText,\n validationType = \"recommended\",\n disableMessage = false,\n disableMaxLength = false,\n errorIcon: propErrorIcon,\n isErrored = defaultIsErrored,\n onErrorChange = noop,\n getErrorIcon = defaultGetErrorIcon,\n getErrorMessage = defaultGetErrorMessage,\n } = options;\n\n const id = useEnsuredId(propId, \"text-field\");\n const messageId = `${id}-message`;\n const [fieldRef, ref] = useEnsuredRef(propRef);\n const [state, setState] = useState<TextFieldHookState>(() => {\n const value =\n typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n\n return {\n value,\n error: false,\n errorMessage: \"\",\n };\n });\n const { value, error, errorMessage } = state;\n\n // using a `ref` instead of a `useCallback` makes it so the `defaultValue`\n // will always be used once reset.\n const reset = useRef(() => {\n fieldRef.current?.setCustomValidity(\"\");\n setState({ value, error: false, errorMessage: \"\" });\n }).current;\n\n const errored = useRef(error);\n const checkValidity = useCallback(\n (isBlurEvent: boolean) => {\n const field = fieldRef.current;\n if (!field) {\n throw new Error(\"Unable to check validity due to missing ref\");\n }\n\n // need to temporarily set the `maxLength` back so it can be \"verified\"\n // through the validity api\n /* istanbul ignore next */\n if (isBlurEvent && disableMaxLength && typeof maxLength === \"number\") {\n field.maxLength = maxLength;\n }\n\n const { value } = field;\n field.setCustomValidity(\"\");\n field.checkValidity();\n\n // remove the temporarily set `maxLength` attribute after checking the\n // validity\n /* istanbul ignore next */\n if (disableMaxLength && typeof maxLength === \"number\") {\n field.removeAttribute(\"maxLength\");\n }\n\n const options: ErrorMessageOptions = {\n value,\n pattern,\n required,\n minLength,\n maxLength,\n isBlurEvent,\n isNumber,\n validationType,\n validity: field.validity,\n validationMessage: field.validationMessage,\n };\n const errorMessage = getErrorMessage(options);\n const error = isErrored({ ...options, errorMessage });\n\n if (errored.current !== error) {\n errored.current = error;\n onErrorChange({\n ref: fieldRef,\n name,\n error,\n errorMessage,\n });\n }\n\n /* istanbul ignore next */\n if (errorMessage !== field.validationMessage) {\n field.setCustomValidity(errorMessage);\n }\n\n setState((prevState) => {\n if (\n prevState.value === value &&\n prevState.error === error &&\n prevState.errorMessage === errorMessage\n ) {\n return prevState;\n }\n\n return {\n value,\n error,\n errorMessage,\n };\n });\n },\n [\n disableMaxLength,\n fieldRef,\n getErrorMessage,\n isErrored,\n isNumber,\n maxLength,\n minLength,\n name,\n onErrorChange,\n pattern,\n required,\n validationType,\n ]\n );\n\n const errorIcon = getIcon(\"error\", propErrorIcon);\n const fieldProps: ProvidedTextFieldProps<E> & {\n messageProps?: ProvidedFormMessageProps;\n } = {\n id,\n ref,\n name,\n value,\n error,\n required,\n pattern,\n minLength,\n maxLength: disableMaxLength ? undefined : maxLength,\n rightAddon: getErrorIcon({\n error,\n errorIcon,\n errorMessage,\n }),\n onBlur(event) {\n onBlur(event);\n if (event.isPropagationStopped()) {\n return;\n }\n checkValidity(true);\n },\n onChange(event) {\n onChange(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n if (validationType === \"blur\") {\n setState((prevState) => ({\n ...prevState,\n value: event.currentTarget.value,\n }));\n return;\n }\n\n checkValidity(false);\n },\n onInvalid(event) {\n onInvalid(event);\n if (\n event.isPropagationStopped() ||\n event.currentTarget === document.activeElement\n ) {\n return;\n }\n\n // this makes it so that if a submit button is clicked in a form, all\n // textfields will gain the error state immediately\n // also need to extract the validationMessage immediately because of the\n // SyntheticEvent behavior in React. By the time the `setState` is called,\n // the event might've been deleted\n const { validationMessage } = event.currentTarget;\n\n setState((prevState) => {\n if (prevState.error) {\n return prevState;\n }\n\n return {\n ...prevState,\n error: true,\n errorMessage: validationMessage,\n };\n });\n },\n };\n\n if (!disableMessage) {\n fieldProps[\"aria-describedby\"] = messageId;\n fieldProps.messageProps = {\n id: messageId,\n error,\n length: counter ? value.length : undefined,\n maxLength:\n counter && typeof maxLength === \"number\" ? maxLength : undefined,\n children: errorMessage || helpText,\n };\n }\n\n return {\n ...state,\n reset,\n setState,\n fieldRef,\n fieldProps,\n };\n}\n"],"names":["useCallback","useRef","useState","getIcon","useEnsuredId","useEnsuredRef","defaultGetErrorIcon","defaultGetErrorMessage","defaultIsErrored","noop","useTextField","options","id","propId","ref","propRef","name","defaultValue","isNumber","required","pattern","minLength","maxLength","onBlur","onChange","onInvalid","counter","helpText","validationType","disableMessage","disableMaxLength","errorIcon","propErrorIcon","isErrored","onErrorChange","getErrorIcon","getErrorMessage","messageId","fieldRef","state","setState","value","error","errorMessage","reset","current","setCustomValidity","errored","checkValidity","isBlurEvent","field","Error","removeAttribute","validity","validationMessage","prevState","fieldProps","undefined","rightAddon","event","isPropagationStopped","currentTarget","document","activeElement","messageProps","length","children"],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { type CSSProperties, type Ref, type RefCallback } from "react";
2
+ import { type FormTheme } from "./types.js";
3
+ /**
4
+ * @since 6.0.0
5
+ */
6
+ export interface TextFieldContainerAddonsOptions {
7
+ /**
8
+ * This style will automatically be merged with the returned `style`.
9
+ */
10
+ style?: CSSProperties;
11
+ /** @defaultValue `getFormConfig("theme")` */
12
+ theme?: FormTheme;
13
+ /**
14
+ * Set this to `true` if the `leftAddon` should be watched for size changes.
15
+ */
16
+ leftAddon: boolean;
17
+ /**
18
+ * An optional ref that will be merged with the returned
19
+ * {@link TextFieldContainerAddonsImplementation.leftAddonRef}.
20
+ */
21
+ leftAddonRef?: Ref<HTMLSpanElement>;
22
+ /**
23
+ * This can be used to update the CSS `calc()` expression to change the
24
+ * padding.
25
+ *
26
+ * @example Add an additional 0.25rem padding
27
+ * ```
28
+ * leftAddonExtraCalc="+ 0.25rem"
29
+ * ```
30
+ *
31
+ * @defaultValue `""`
32
+ */
33
+ leftAddonExtraCalc?: string;
34
+ /**
35
+ * Set this to `true` if the `rightAddon` should be watched for size changes.
36
+ */
37
+ rightAddon: boolean;
38
+ /**
39
+ * An optional ref that will be merged with the returned
40
+ * {@link TextFieldContainerAddonsImplementation.rightAddonRef}.
41
+ */
42
+ rightAddonRef?: Ref<HTMLSpanElement>;
43
+ /**
44
+ * This can be used to update the CSS `calc()` expression to change the
45
+ * padding.
46
+ *
47
+ * @example Add an additional 0.25rem padding
48
+ * ```
49
+ * leftAddonExtraCalc="+ 0.25rem"
50
+ * ```
51
+ *
52
+ * @defaultValue `""`
53
+ */
54
+ rightAddonExtraCalc?: string;
55
+ }
56
+ /**
57
+ * @since 6.0.0
58
+ */
59
+ export interface TextFieldContainerAddonsImplementation {
60
+ style?: CSSProperties;
61
+ leftAddonRef: RefCallback<HTMLSpanElement>;
62
+ rightAddonRef: RefCallback<HTMLSpanElement>;
63
+ }
64
+ /**
65
+ * This hook can be used to automatically update the padding on the
66
+ * `TextFieldContainer` based on the size of the `leftAddon` and `rightAddon`.
67
+ *
68
+ * @example Simple Example
69
+ * ```tsx
70
+ * const { style, leftAddonRef, rightAddonRef } = useTextFieldContainerAddons({
71
+ * leftAddon: true,
72
+ * rightAddon: true,
73
+ * });
74
+ *
75
+ * return (
76
+ * <TextField
77
+ * style={style}
78
+ * leftAddon={<SomeDynamicAddon />}
79
+ * leftAddonProps={{ ref: leftAddonRef }}
80
+ * rightAddon={<SomeDynamicAddon />}
81
+ * rightAddonProps={{ ref: rightAddonRef }}
82
+ * />
83
+ * );
84
+ * ```
85
+ *
86
+ * @since 6.0.0
87
+ */
88
+ export declare function useTextFieldContainerAddons(options: TextFieldContainerAddonsOptions): TextFieldContainerAddonsImplementation;
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { useCallback, useState } from "react";
3
+ import { useResizeObserver } from "../useResizeObserver.js";
4
+ import { getFormConfig } from "./formConfig.js";
5
+ /**
6
+ * @since 6.0.0
7
+ * @internal
8
+ */ function useAddonPadding(options) {
9
+ const { ref, addon, theme, extra } = options;
10
+ const [padding, setPadding] = useState();
11
+ const addonRef = useResizeObserver({
12
+ ref,
13
+ onUpdate: useCallback((entry)=>{
14
+ const inlineSize = entry.borderBoxSize[0]?.inlineSize;
15
+ if (typeof inlineSize !== "number") {
16
+ return;
17
+ }
18
+ // the leading space for the extra calc is required
19
+ setPadding(`calc(var(--rmd-text-field-${theme}d-padding) + ${inlineSize}px${extra ? ` ${extra}` : ""})`);
20
+ }, [
21
+ extra,
22
+ theme
23
+ ]),
24
+ disabled: !addon,
25
+ disableHeight: true
26
+ });
27
+ return [
28
+ padding,
29
+ addonRef
30
+ ];
31
+ }
32
+ /**
33
+ * This hook can be used to automatically update the padding on the
34
+ * `TextFieldContainer` based on the size of the `leftAddon` and `rightAddon`.
35
+ *
36
+ * @example Simple Example
37
+ * ```tsx
38
+ * const { style, leftAddonRef, rightAddonRef } = useTextFieldContainerAddons({
39
+ * leftAddon: true,
40
+ * rightAddon: true,
41
+ * });
42
+ *
43
+ * return (
44
+ * <TextField
45
+ * style={style}
46
+ * leftAddon={<SomeDynamicAddon />}
47
+ * leftAddonProps={{ ref: leftAddonRef }}
48
+ * rightAddon={<SomeDynamicAddon />}
49
+ * rightAddonProps={{ ref: rightAddonRef }}
50
+ * />
51
+ * );
52
+ * ```
53
+ *
54
+ * @since 6.0.0
55
+ */ export function useTextFieldContainerAddons(options) {
56
+ const { style: propStyle, theme: propTheme, leftAddon, rightAddon, leftAddonRef: propLeftAddonRef, rightAddonRef: propRightAddonRef, leftAddonExtraCalc = "", rightAddonExtraCalc = "" } = options;
57
+ const theme = getFormConfig("theme", propTheme);
58
+ const [paddingLeft, leftAddonRef] = useAddonPadding({
59
+ ref: propLeftAddonRef,
60
+ theme,
61
+ addon: leftAddon,
62
+ extra: `+ var(--rmd-addon-spacing)${leftAddonExtraCalc ? ` ${leftAddonExtraCalc}` : ""}`
63
+ });
64
+ const [paddingRight, rightAddonRef] = useAddonPadding({
65
+ ref: propRightAddonRef,
66
+ theme,
67
+ addon: rightAddon,
68
+ extra: rightAddonExtraCalc
69
+ });
70
+ let style = propStyle;
71
+ if (typeof paddingLeft === "string" || typeof paddingRight === "string") {
72
+ style = {
73
+ ...propStyle,
74
+ "--rmd-text-field-padding-left": paddingLeft ?? propStyle?.["--rmd-text-field-padding-left"],
75
+ "--rmd-text-field-padding-right": paddingRight ?? propStyle?.["--rmd-text-field-padding-right"]
76
+ };
77
+ }
78
+ return {
79
+ style,
80
+ leftAddonRef,
81
+ rightAddonRef
82
+ };
83
+ }
84
+
85
+ //# sourceMappingURL=useTextFieldContainerAddons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/form/useTextFieldContainerAddons.ts"],"sourcesContent":["\"use client\";\nimport {\n useCallback,\n useState,\n type CSSProperties,\n type Ref,\n type RefCallback,\n} from \"react\";\nimport { useResizeObserver } from \"../useResizeObserver.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { type FormTheme } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\ninterface AddonPaddingOptions {\n ref?: Ref<HTMLSpanElement>;\n addon: boolean;\n theme: FormTheme;\n extra: string;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nfunction useAddonPadding(\n options: AddonPaddingOptions\n): [padding: string | undefined, addonRef: RefCallback<HTMLSpanElement>] {\n const { ref, addon, theme, extra } = options;\n const [padding, setPadding] = useState<string | undefined>();\n const addonRef = useResizeObserver({\n ref,\n onUpdate: useCallback(\n (entry) => {\n const inlineSize = entry.borderBoxSize[0]?.inlineSize;\n if (typeof inlineSize !== \"number\") {\n return;\n }\n\n // the leading space for the extra calc is required\n setPadding(\n `calc(var(--rmd-text-field-${theme}d-padding) + ${inlineSize}px${extra ? ` ${extra}` : \"\"})`\n );\n },\n [extra, theme]\n ),\n disabled: !addon,\n disableHeight: true,\n });\n\n return [padding, addonRef];\n}\n\n/**\n * @since 6.0.0\n */\nexport interface TextFieldContainerAddonsOptions {\n /**\n * This style will automatically be merged with the returned `style`.\n */\n style?: CSSProperties;\n\n /** @defaultValue `getFormConfig(\"theme\")` */\n theme?: FormTheme;\n\n /**\n * Set this to `true` if the `leftAddon` should be watched for size changes.\n */\n leftAddon: boolean;\n\n /**\n * An optional ref that will be merged with the returned\n * {@link TextFieldContainerAddonsImplementation.leftAddonRef}.\n */\n leftAddonRef?: Ref<HTMLSpanElement>;\n\n /**\n * This can be used to update the CSS `calc()` expression to change the\n * padding.\n *\n * @example Add an additional 0.25rem padding\n * ```\n * leftAddonExtraCalc=\"+ 0.25rem\"\n * ```\n *\n * @defaultValue `\"\"`\n */\n leftAddonExtraCalc?: string;\n\n /**\n * Set this to `true` if the `rightAddon` should be watched for size changes.\n */\n rightAddon: boolean;\n\n /**\n * An optional ref that will be merged with the returned\n * {@link TextFieldContainerAddonsImplementation.rightAddonRef}.\n */\n rightAddonRef?: Ref<HTMLSpanElement>;\n\n /**\n * This can be used to update the CSS `calc()` expression to change the\n * padding.\n *\n * @example Add an additional 0.25rem padding\n * ```\n * leftAddonExtraCalc=\"+ 0.25rem\"\n * ```\n *\n * @defaultValue `\"\"`\n */\n rightAddonExtraCalc?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface TextFieldContainerAddonsImplementation {\n style?: CSSProperties;\n leftAddonRef: RefCallback<HTMLSpanElement>;\n rightAddonRef: RefCallback<HTMLSpanElement>;\n}\n\n/**\n * This hook can be used to automatically update the padding on the\n * `TextFieldContainer` based on the size of the `leftAddon` and `rightAddon`.\n *\n * @example Simple Example\n * ```tsx\n * const { style, leftAddonRef, rightAddonRef } = useTextFieldContainerAddons({\n * leftAddon: true,\n * rightAddon: true,\n * });\n *\n * return (\n * <TextField\n * style={style}\n * leftAddon={<SomeDynamicAddon />}\n * leftAddonProps={{ ref: leftAddonRef }}\n * rightAddon={<SomeDynamicAddon />}\n * rightAddonProps={{ ref: rightAddonRef }}\n * />\n * );\n * ```\n *\n * @since 6.0.0\n */\nexport function useTextFieldContainerAddons(\n options: TextFieldContainerAddonsOptions\n): TextFieldContainerAddonsImplementation {\n const {\n style: propStyle,\n theme: propTheme,\n leftAddon,\n rightAddon,\n leftAddonRef: propLeftAddonRef,\n rightAddonRef: propRightAddonRef,\n leftAddonExtraCalc = \"\",\n rightAddonExtraCalc = \"\",\n } = options;\n const theme = getFormConfig(\"theme\", propTheme);\n\n const [paddingLeft, leftAddonRef] = useAddonPadding({\n ref: propLeftAddonRef,\n theme,\n addon: leftAddon,\n extra: `+ var(--rmd-addon-spacing)${leftAddonExtraCalc ? ` ${leftAddonExtraCalc}` : \"\"}`,\n });\n\n const [paddingRight, rightAddonRef] = useAddonPadding({\n ref: propRightAddonRef,\n theme,\n addon: rightAddon,\n extra: rightAddonExtraCalc,\n });\n\n let style = propStyle;\n if (typeof paddingLeft === \"string\" || typeof paddingRight === \"string\") {\n style = {\n ...propStyle,\n \"--rmd-text-field-padding-left\":\n paddingLeft ?? propStyle?.[\"--rmd-text-field-padding-left\"],\n \"--rmd-text-field-padding-right\":\n paddingRight ?? propStyle?.[\"--rmd-text-field-padding-right\"],\n };\n }\n\n return {\n style,\n leftAddonRef,\n rightAddonRef,\n };\n}\n"],"names":["useCallback","useState","useResizeObserver","getFormConfig","useAddonPadding","options","ref","addon","theme","extra","padding","setPadding","addonRef","onUpdate","entry","inlineSize","borderBoxSize","disabled","disableHeight","useTextFieldContainerAddons","style","propStyle","propTheme","leftAddon","rightAddon","leftAddonRef","propLeftAddonRef","rightAddonRef","propRightAddonRef","leftAddonExtraCalc","rightAddonExtraCalc","paddingLeft","paddingRight"],"mappings":"AAAA;AACA,SACEA,WAAW,EACXC,QAAQ,QAIH,QAAQ;AACf,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,aAAa,QAAQ,kBAAkB;AAchD;;;CAGC,GACD,SAASC,gBACPC,OAA4B;IAE5B,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGJ;IACrC,MAAM,CAACK,SAASC,WAAW,GAAGV;IAC9B,MAAMW,WAAWV,kBAAkB;QACjCI;QACAO,UAAUb,YACR,CAACc;YACC,MAAMC,aAAaD,MAAME,aAAa,CAAC,EAAE,EAAED;YAC3C,IAAI,OAAOA,eAAe,UAAU;gBAClC;YACF;YAEA,mDAAmD;YACnDJ,WACE,CAAC,0BAA0B,EAAEH,MAAM,aAAa,EAAEO,WAAW,EAAE,EAAEN,QAAQ,CAAC,CAAC,EAAEA,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QAEhG,GACA;YAACA;YAAOD;SAAM;QAEhBS,UAAU,CAACV;QACXW,eAAe;IACjB;IAEA,OAAO;QAACR;QAASE;KAAS;AAC5B;AAwEA;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GACD,OAAO,SAASO,4BACdd,OAAwC;IAExC,MAAM,EACJe,OAAOC,SAAS,EAChBb,OAAOc,SAAS,EAChBC,SAAS,EACTC,UAAU,EACVC,cAAcC,gBAAgB,EAC9BC,eAAeC,iBAAiB,EAChCC,qBAAqB,EAAE,EACvBC,sBAAsB,EAAE,EACzB,GAAGzB;IACJ,MAAMG,QAAQL,cAAc,SAASmB;IAErC,MAAM,CAACS,aAAaN,aAAa,GAAGrB,gBAAgB;QAClDE,KAAKoB;QACLlB;QACAD,OAAOgB;QACPd,OAAO,CAAC,0BAA0B,EAAEoB,qBAAqB,CAAC,CAAC,EAAEA,mBAAmB,CAAC,GAAG,GAAG,CAAC;IAC1F;IAEA,MAAM,CAACG,cAAcL,cAAc,GAAGvB,gBAAgB;QACpDE,KAAKsB;QACLpB;QACAD,OAAOiB;QACPf,OAAOqB;IACT;IAEA,IAAIV,QAAQC;IACZ,IAAI,OAAOU,gBAAgB,YAAY,OAAOC,iBAAiB,UAAU;QACvEZ,QAAQ;YACN,GAAGC,SAAS;YACZ,iCACEU,eAAeV,WAAW,CAAC,gCAAgC;YAC7D,kCACEW,gBAAgBX,WAAW,CAAC,iCAAiC;QACjE;IACF;IAEA,OAAO;QACLD;QACAK;QACAE;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from \"react\";\n\n/**\n * This util should be used to implement the native \"Enter\" keypress behavior\n * for \"fake\" form components to submit the form if exists.\n *\n * The way this will work will be:\n * - attempt to find a form by querying for a parent form element. if no parent\n * form element can be found, try to use the `formId` in a\n * `document.getElementById`\n * - if a form element is found, find the submit button within the form. If\n * there are no submit buttons within the form, try to find a submit button in\n * the document that is linked to this form by `form={formId}`\n * - if the submit button was found, click it to trigger the form submit\n * behavior\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit\n * @internal\n * @since 2.7.0\n * @since 6.0.0 No longer returns a boolean, added the `formId` parameter, and\n * moved into the form package.\n * @since 6.0.0 Uses `form.requestSubmit` instead of clicking the submit button\n */\nexport function tryToSubmitRelatedForm<E extends HTMLElement>(\n event: KeyboardEvent<E>,\n formId: string | undefined\n): void {\n const { currentTarget } = event;\n let form: HTMLElement | null = null;\n if (formId) {\n form = document.getElementById(formId);\n } else {\n form = currentTarget.closest(\"form\");\n }\n\n if (!form || !(form instanceof HTMLFormElement)) {\n return;\n }\n\n formId = formId || form.id;\n let submit = form.querySelector<HTMLButtonElement>('[type=\"submit\"]');\n if (!submit && formId) {\n submit = document.querySelector<HTMLButtonElement>(\n `[type=\"submit\"][form=\"${formId}\"]`\n );\n }\n\n form.requestSubmit(submit);\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport type EditableHTMLElement = HTMLInputElement | HTMLTextAreaElement;\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport type ChangeableHTMLElement = EditableHTMLElement | HTMLSelectElement;\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport function isChangeableHTMLElement(\n element: Element | null\n): element is ChangeableHTMLElement {\n return !!element && \"value\" in element;\n}\n\n/**\n * This is used to trigger a change event for a form element.\n *\n * @internal\n * @see https://stackoverflow.com/a/46012210\n * @since 6.0.0\n */\nexport function triggerManualChangeEvent(\n element: ChangeableHTMLElement | null,\n value: string | number\n): void {\n if (!element) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(element);\n const setter = Object.getOwnPropertyDescriptor(prototype, \"value\")?.set;\n if (!setter) {\n return;\n }\n\n setter.call(element, value);\n const event = new Event(\"input\", { bubbles: true });\n element.dispatchEvent(event);\n}\n"],"names":["tryToSubmitRelatedForm","event","formId","currentTarget","form","document","getElementById","closest","HTMLFormElement","id","submit","querySelector","requestSubmit","isChangeableHTMLElement","element","triggerManualChangeEvent","value","prototype","Object","getPrototypeOf","setter","getOwnPropertyDescriptor","set","call","Event","bubbles","dispatchEvent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASA,uBACdC,KAAuB,EACvBC,MAA0B;IAE1B,MAAM,EAAEC,aAAa,EAAE,GAAGF;IAC1B,IAAIG,OAA2B;IAC/B,IAAIF,QAAQ;QACVE,OAAOC,SAASC,cAAc,CAACJ;IACjC,OAAO;QACLE,OAAOD,cAAcI,OAAO,CAAC;IAC/B;IAEA,IAAI,CAACH,QAAQ,CAAEA,CAAAA,gBAAgBI,eAAc,GAAI;QAC/C;IACF;IAEAN,SAASA,UAAUE,KAAKK,EAAE;IAC1B,IAAIC,SAASN,KAAKO,aAAa,CAAoB;IACnD,IAAI,CAACD,UAAUR,QAAQ;QACrBQ,SAASL,SAASM,aAAa,CAC7B,CAAC,sBAAsB,EAAET,OAAO,EAAE,CAAC;IAEvC;IAEAE,KAAKQ,aAAa,CAACF;AACrB;AAcA;;;CAGC,GACD,OAAO,SAASG,wBACdC,OAAuB;IAEvB,OAAO,CAAC,CAACA,WAAW,WAAWA;AACjC;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,yBACdD,OAAqC,EACrCE,KAAsB;IAEtB,IAAI,CAACF,SAAS;QACZ;IACF;IAEA,MAAMG,YAAYC,OAAOC,cAAc,CAACL;IACxC,MAAMM,SAASF,OAAOG,wBAAwB,CAACJ,WAAW,UAAUK;IACpE,IAAI,CAACF,QAAQ;QACX;IACF;IAEAA,OAAOG,IAAI,CAACT,SAASE;IACrB,MAAMf,QAAQ,IAAIuB,MAAM,SAAS;QAAEC,SAAS;IAAK;IACjDX,QAAQY,aAAa,CAACzB;AACxB"}
1
+ {"version":3,"sources":["../../src/form/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from \"react\";\n\n/**\n * This util should be used to implement the native \"Enter\" keypress behavior\n * for \"fake\" form components to submit the form if exists.\n *\n * The way this will work will be:\n * - attempt to find a form by querying for a parent form element. if no parent\n * form element can be found, try to use the `formId` in a\n * `document.getElementById`\n * - if a form element is found, find the submit button within the form. If\n * there are no submit buttons within the form, try to find a submit button in\n * the document that is linked to this form by `form={formId}`\n * - if the submit button was found, click it to trigger the form submit\n * behavior\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit\n * @internal\n * @since 2.7.0\n * @since 6.0.0 No longer returns a boolean, added the `formId` parameter, and\n * moved into the form package.\n * @since 6.0.0 Uses `form.requestSubmit` instead of clicking the submit button\n */\nexport function tryToSubmitRelatedForm<E extends HTMLElement>(\n event: KeyboardEvent<E>,\n formId: string | undefined\n): void {\n const { currentTarget } = event;\n let form: HTMLElement | null = null;\n if (formId) {\n form = document.getElementById(formId);\n } else {\n form = currentTarget.closest(\"form\");\n }\n\n if (!form || !(form instanceof HTMLFormElement)) {\n return;\n }\n\n formId = formId || form.id;\n let submit = form.querySelector<HTMLButtonElement>('[type=\"submit\"]');\n if (!submit && formId) {\n submit = document.querySelector<HTMLButtonElement>(\n `[type=\"submit\"][form=\"${formId}\"]`\n );\n }\n\n form.requestSubmit(submit);\n}\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport type EditableHTMLElement = HTMLInputElement | HTMLTextAreaElement;\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport type ChangeableHTMLElement = EditableHTMLElement | HTMLSelectElement;\n\n/**\n * @internal\n * @since 6.0.0\n */\nexport function isChangeableHTMLElement(\n element: Element | null\n): element is ChangeableHTMLElement {\n return !!element && \"value\" in element;\n}\n\n/**\n * This is used to trigger a change event for a form element.\n *\n * @internal\n * @see https://stackoverflow.com/a/46012210\n * @since 6.0.0\n */\nexport function triggerManualChangeEvent(\n element: ChangeableHTMLElement | null,\n value: string | number\n): void {\n if (!element) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(element);\n const setter = Object.getOwnPropertyDescriptor(prototype, \"value\")?.set;\n if (!setter) {\n return;\n }\n\n setter.call(element, value);\n const event = new Event(\"input\", { bubbles: true });\n element.dispatchEvent(event);\n}\n"],"names":["tryToSubmitRelatedForm","event","formId","currentTarget","form","document","getElementById","closest","HTMLFormElement","id","submit","querySelector","requestSubmit","isChangeableHTMLElement","element","triggerManualChangeEvent","value","prototype","Object","getPrototypeOf","setter","getOwnPropertyDescriptor","set","call","Event","bubbles","dispatchEvent"],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASA,uBACdC,KAAuB,EACvBC,MAA0B;IAE1B,MAAM,EAAEC,aAAa,EAAE,GAAGF;IAC1B,IAAIG,OAA2B;IAC/B,IAAIF,QAAQ;QACVE,OAAOC,SAASC,cAAc,CAACJ;IACjC,OAAO;QACLE,OAAOD,cAAcI,OAAO,CAAC;IAC/B;IAEA,IAAI,CAACH,QAAQ,CAAEA,CAAAA,gBAAgBI,eAAc,GAAI;QAC/C;IACF;IAEAN,SAASA,UAAUE,KAAKK,EAAE;IAC1B,IAAIC,SAASN,KAAKO,aAAa,CAAoB;IACnD,IAAI,CAACD,UAAUR,QAAQ;QACrBQ,SAASL,SAASM,aAAa,CAC7B,CAAC,sBAAsB,EAAET,OAAO,EAAE,CAAC;IAEvC;IAEAE,KAAKQ,aAAa,CAACF;AACrB;AAcA;;;CAGC,GACD,OAAO,SAASG,wBACdC,OAAuB;IAEvB,OAAO,CAAC,CAACA,WAAW,WAAWA;AACjC;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,yBACdD,OAAqC,EACrCE,KAAsB;IAEtB,IAAI,CAACF,SAAS;QACZ;IACF;IAEA,MAAMG,YAAYC,OAAOC,cAAc,CAACL;IACxC,MAAMM,SAASF,OAAOG,wBAAwB,CAACJ,WAAW,UAAUK;IACpE,IAAI,CAACF,QAAQ;QACX;IACF;IAEAA,OAAOG,IAAI,CAACT,SAASE;IACrB,MAAMf,QAAQ,IAAIuB,MAAM,SAAS;QAAEC,SAAS;IAAK;IACjDX,QAAQY,aAAa,CAACzB;AACxB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/validation.ts"],"sourcesContent":["import { type InputHTMLAttributes, type ReactNode } from \"react\";\n\n/**\n * @since 2.5.6\n * @since 6.0.0 Renamed from `TextConstraints` to\n * `TextFieldValidationOptions`\n */\nexport type TextFieldValidationOptions = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n \"minLength\" | \"maxLength\" | \"required\" | \"pattern\"\n>;\n\n/**\n * Since the default validation messages can be verbose, this type is used to\n * configure when/how to display the native browser messages when the validation\n * state changes during the `change` event phase. The validation message will\n * always be shown on blur.\n *\n * When this is:\n *\n * - `true` -&gt; always show the browser message when it exists\n * - `false` -&gt; never show the browser message\n * - `\"recommended\"` -&gt; only shows the browser message if it is one of the\n * `RECOMMENDED_STATE_KEYS`/`RECOMMENDED_NUMBER_STATE_KEYS` validation errors\n * - `keyof ValidityState` -&gt; only shows the browser message if it is not the\n * specific validation error\n * - `(keyof ValidityState)[]` -&gt; only shows the browser message if it is not\n * the specific validation errors\n *\n * @see {@link RECOMMENDED_STATE_KEYS}\n * @see {@link RECOMMENDED_NUMBER_STATE_KEYS}\n * @since 2.5.6\n * @since 6.0.0 Renamed from `ChangeValidationBehavior` to\n * `TextFieldValidationType`\n */\nexport type TextFieldValidationType =\n | \"blur\"\n | \"change\"\n | \"recommended\"\n | keyof ValidityState\n | readonly (keyof ValidityState)[];\n\n/**\n * @since 2.5.0\n */\nexport interface ErrorMessageOptions extends TextFieldValidationOptions {\n /**\n * The current input or textarea's validity state.\n */\n validity: ValidityState;\n\n /**\n * The browser defined validation message based on the validity state. This\n * will be the empty string when there are no errors.\n */\n validationMessage: string;\n\n /**\n * The current `TextField` or `TextArea` value.\n */\n value: string;\n\n /**\n * This will only be `true` if called by the `useNumberField` hook.\n */\n isNumber: boolean;\n\n /**\n * Boolean if this is triggered from a blur event instead of a change event.\n */\n isBlurEvent: boolean;\n\n /**\n * The validation type defined by the `useTextField` hook.\n */\n validationType: TextFieldValidationType;\n}\n\n/**\n * A function to get a custom error message for specific errors. This is really\n * useful when using the `pattern` attribute to give additional information or\n * changing the native \"language translated\" error message.\n *\n * @param options - An object containing metadata that can be used to create an\n * error message for your `TextField` or `TextArea`.\n * @returns An error message to display or an empty string.\n * @since 2.5.0\n */\nexport type GetErrorMessage = (options: ErrorMessageOptions) => string;\n\n/**\n * @internal\n * @since 2.5.0\n */\nconst VALIDITY_STATE_KEYS: readonly (keyof ValidityState)[] = [\n \"badInput\",\n \"customError\",\n \"patternMismatch\",\n \"rangeOverflow\",\n \"rangeUnderflow\",\n \"stepMismatch\",\n \"tooLong\",\n \"tooShort\",\n \"typeMismatch\",\n \"valueMissing\",\n];\n\n/**\n * @internal\n * @since 2.5.0\n */\nexport const RECOMMENDED_STATE_KEYS: readonly (keyof ValidityState)[] = [\n \"badInput\",\n \"tooLong\",\n \"valueMissing\",\n];\n\n/**\n * @internal\n * @since 2.5.0\n */\nexport const RECOMMENDED_NUMBER_STATE_KEYS: readonly (keyof ValidityState)[] = [\n ...RECOMMENDED_STATE_KEYS,\n \"rangeOverflow\",\n \"rangeUnderflow\",\n \"tooShort\",\n \"typeMismatch\",\n];\n\n/**\n * The validation message is actually kind of weird since it's possible for a\n * form element to have multiple errors at once. The validation message will be\n * the first error that appears, so need to make sure that the first error is\n * one of the recommended state keys so the message appears for only those types\n * of errors.\n *\n * @internal\n * @since 2.5.0\n */\nconst isRecommended = (validity: ValidityState, isNumber: boolean): boolean => {\n const errorable = isNumber\n ? RECOMMENDED_NUMBER_STATE_KEYS\n : RECOMMENDED_STATE_KEYS;\n\n return VALIDITY_STATE_KEYS.every((key) => {\n const errored = validity[key];\n return !errored || errorable.includes(key);\n });\n};\n\n/**\n * The default implementation for getting an error message for the `TextField`\n * or `TextArea` components that relies on the behavior of the\n * {@link ChangeValidationBehavior}\n *\n * @since 2.5.0\n */\nexport const defaultGetErrorMessage: GetErrorMessage = (options) => {\n const {\n isNumber,\n isBlurEvent,\n validity,\n validationMessage,\n validationType: validate,\n } = options;\n\n if (isBlurEvent || !validationMessage || validate === \"change\") {\n return validationMessage;\n }\n\n if (validate === \"blur\") {\n return \"\";\n }\n\n if (validate === \"recommended\") {\n return isRecommended(validity, isNumber) ? validationMessage : \"\";\n }\n\n const keys = typeof validate === \"string\" ? [validate] : validate;\n\n return keys.length &&\n VALIDITY_STATE_KEYS.some((key) => validity[key] && keys.includes(key))\n ? validationMessage\n : \"\";\n};\n\n/**\n * @since 2.5.0\n */\nexport interface IsErroredOptions extends ErrorMessageOptions {\n /**\n * The current error message or an empty string.\n */\n errorMessage: string;\n}\n\n/**\n * A function that is used to determine if a `TextField` or `TextArea` is in an\n * errored state.\n *\n * @param options - All the current options that can be used to determine the\n * error state.\n * @returns True if the component is considered to be in an errored state.\n * @since 2.5.0\n */\nexport type IsErrored = (options: IsErroredOptions) => boolean;\n\n/**\n * The default implementation for checking if a `TextField` or `TextArea` is\n * errored by returning `true` if the `errorMessage` string is truthy or the\n * value is not within the `minLength` and `maxLength` constraints when they\n * exist.\n *\n * @since 2.5.0\n */\nexport const defaultIsErrored: IsErrored = (options) => {\n const { value, errorMessage, minLength, maxLength, isBlurEvent } = options;\n\n return (\n !!errorMessage ||\n (typeof maxLength === \"number\" && value.length > maxLength) ||\n (isBlurEvent && typeof minLength === \"number\" && value.length < minLength)\n );\n};\n\n/**\n * @since 6.0.0\n */\nexport interface GetErrorIconOptions {\n /**\n * This will be `true` if the `TextField` or `TextArea` is in an errored state.\n */\n error: boolean;\n\n /**\n * The current error icon that was provided.\n */\n errorIcon: ReactNode;\n\n /**\n * The current error message or an empty string.\n */\n errorMessage: string;\n}\n\n/**\n * A function that can be used to dynamically get an error icon based on the\n * current visible error.\n *\n * @param options - The {@link GetErrorIconOptions}\n * @returns An icon to render or falsey to render nothing.\n * @since 2.5.0\n * @since 6.0.0 Updated to accept a single object argument\n */\nexport type GetErrorIcon = (options: GetErrorIconOptions) => ReactNode;\n\n/**\n * The default implementation for showing an error icon in `TextField` and\n * `TextArea` components that will only display when the error flag is enabled.\n *\n * @since 2.5.0\n */\nexport const defaultGetErrorIcon: GetErrorIcon = (options) => {\n const { error, errorIcon } = options;\n\n return error && errorIcon;\n};\n"],"names":["VALIDITY_STATE_KEYS","RECOMMENDED_STATE_KEYS","RECOMMENDED_NUMBER_STATE_KEYS","isRecommended","validity","isNumber","errorable","every","key","errored","includes","defaultGetErrorMessage","options","isBlurEvent","validationMessage","validationType","validate","keys","length","some","defaultIsErrored","value","errorMessage","minLength","maxLength","defaultGetErrorIcon","error","errorIcon"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AA0FA;;;CAGC,GACD,MAAMA,sBAAwD;IAC5D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED;;;CAGC,GACD,OAAO,MAAMC,yBAA2D;IACtE;IACA;IACA;CACD,CAAC;AAEF;;;CAGC,GACD,OAAO,MAAMC,gCAAkE;OAC1ED;IACH;IACA;IACA;IACA;CACD,CAAC;AAEF;;;;;;;;;CASC,GACD,MAAME,gBAAgB,CAACC,UAAyBC;IAC9C,MAAMC,YAAYD,WACdH,gCACAD;IAEJ,OAAOD,oBAAoBO,KAAK,CAAC,CAACC;QAChC,MAAMC,UAAUL,QAAQ,CAACI,IAAI;QAC7B,OAAO,CAACC,WAAWH,UAAUI,QAAQ,CAACF;IACxC;AACF;AAEA;;;;;;CAMC,GACD,OAAO,MAAMG,yBAA0C,CAACC;IACtD,MAAM,EACJP,QAAQ,EACRQ,WAAW,EACXT,QAAQ,EACRU,iBAAiB,EACjBC,gBAAgBC,QAAQ,EACzB,GAAGJ;IAEJ,IAAIC,eAAe,CAACC,qBAAqBE,aAAa,UAAU;QAC9D,OAAOF;IACT;IAEA,IAAIE,aAAa,QAAQ;QACvB,OAAO;IACT;IAEA,IAAIA,aAAa,eAAe;QAC9B,OAAOb,cAAcC,UAAUC,YAAYS,oBAAoB;IACjE;IAEA,MAAMG,OAAO,OAAOD,aAAa,WAAW;QAACA;KAAS,GAAGA;IAEzD,OAAOC,KAAKC,MAAM,IAChBlB,oBAAoBmB,IAAI,CAAC,CAACX,MAAQJ,QAAQ,CAACI,IAAI,IAAIS,KAAKP,QAAQ,CAACF,QAC/DM,oBACA;AACN,EAAE;AAuBF;;;;;;;CAOC,GACD,OAAO,MAAMM,mBAA8B,CAACR;IAC1C,MAAM,EAAES,KAAK,EAAEC,YAAY,EAAEC,SAAS,EAAEC,SAAS,EAAEX,WAAW,EAAE,GAAGD;IAEnE,OACE,CAAC,CAACU,gBACD,OAAOE,cAAc,YAAYH,MAAMH,MAAM,GAAGM,aAChDX,eAAe,OAAOU,cAAc,YAAYF,MAAMH,MAAM,GAAGK;AAEpE,EAAE;AAiCF;;;;;CAKC,GACD,OAAO,MAAME,sBAAoC,CAACb;IAChD,MAAM,EAAEc,KAAK,EAAEC,SAAS,EAAE,GAAGf;IAE7B,OAAOc,SAASC;AAClB,EAAE"}
1
+ {"version":3,"sources":["../../src/form/validation.ts"],"sourcesContent":["import { type InputHTMLAttributes, type ReactNode } from \"react\";\n\n/**\n * @since 2.5.6\n * @since 6.0.0 Renamed from `TextConstraints` to\n * `TextFieldValidationOptions`\n */\nexport type TextFieldValidationOptions = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n \"minLength\" | \"maxLength\" | \"required\" | \"pattern\"\n>;\n\n/**\n * Since the default validation messages can be verbose, this type is used to\n * configure when/how to display the native browser messages when the validation\n * state changes during the `change` event phase. The validation message will\n * always be shown on blur.\n *\n * When this is:\n *\n * - `true` -&gt; always show the browser message when it exists\n * - `false` -&gt; never show the browser message\n * - `\"recommended\"` -&gt; only shows the browser message if it is one of the\n * `RECOMMENDED_STATE_KEYS`/`RECOMMENDED_NUMBER_STATE_KEYS` validation errors\n * - `keyof ValidityState` -&gt; only shows the browser message if it is not the\n * specific validation error\n * - `(keyof ValidityState)[]` -&gt; only shows the browser message if it is not\n * the specific validation errors\n *\n * @see {@link RECOMMENDED_STATE_KEYS}\n * @see {@link RECOMMENDED_NUMBER_STATE_KEYS}\n * @since 2.5.6\n * @since 6.0.0 Renamed from `ChangeValidationBehavior` to\n * `TextFieldValidationType`\n */\nexport type TextFieldValidationType =\n | \"blur\"\n | \"change\"\n | \"recommended\"\n | keyof ValidityState\n | readonly (keyof ValidityState)[];\n\n/**\n * @since 2.5.0\n */\nexport interface ErrorMessageOptions extends TextFieldValidationOptions {\n /**\n * The current input or textarea's validity state.\n */\n validity: ValidityState;\n\n /**\n * The browser defined validation message based on the validity state. This\n * will be the empty string when there are no errors.\n */\n validationMessage: string;\n\n /**\n * The current `TextField` or `TextArea` value.\n */\n value: string;\n\n /**\n * This will only be `true` if called by the `useNumberField` hook.\n */\n isNumber: boolean;\n\n /**\n * Boolean if this is triggered from a blur event instead of a change event.\n */\n isBlurEvent: boolean;\n\n /**\n * The validation type defined by the `useTextField` hook.\n */\n validationType: TextFieldValidationType;\n}\n\n/**\n * A function to get a custom error message for specific errors. This is really\n * useful when using the `pattern` attribute to give additional information or\n * changing the native \"language translated\" error message.\n *\n * @param options - An object containing metadata that can be used to create an\n * error message for your `TextField` or `TextArea`.\n * @returns An error message to display or an empty string.\n * @since 2.5.0\n */\nexport type GetErrorMessage = (options: ErrorMessageOptions) => string;\n\n/**\n * @internal\n * @since 2.5.0\n */\nconst VALIDITY_STATE_KEYS: readonly (keyof ValidityState)[] = [\n \"badInput\",\n \"customError\",\n \"patternMismatch\",\n \"rangeOverflow\",\n \"rangeUnderflow\",\n \"stepMismatch\",\n \"tooLong\",\n \"tooShort\",\n \"typeMismatch\",\n \"valueMissing\",\n];\n\n/**\n * @internal\n * @since 2.5.0\n */\nexport const RECOMMENDED_STATE_KEYS: readonly (keyof ValidityState)[] = [\n \"badInput\",\n \"tooLong\",\n \"valueMissing\",\n];\n\n/**\n * @internal\n * @since 2.5.0\n */\nexport const RECOMMENDED_NUMBER_STATE_KEYS: readonly (keyof ValidityState)[] = [\n ...RECOMMENDED_STATE_KEYS,\n \"rangeOverflow\",\n \"rangeUnderflow\",\n \"tooShort\",\n \"typeMismatch\",\n];\n\n/**\n * The validation message is actually kind of weird since it's possible for a\n * form element to have multiple errors at once. The validation message will be\n * the first error that appears, so need to make sure that the first error is\n * one of the recommended state keys so the message appears for only those types\n * of errors.\n *\n * @internal\n * @since 2.5.0\n */\nconst isRecommended = (validity: ValidityState, isNumber: boolean): boolean => {\n const errorable = isNumber\n ? RECOMMENDED_NUMBER_STATE_KEYS\n : RECOMMENDED_STATE_KEYS;\n\n return VALIDITY_STATE_KEYS.every((key) => {\n const errored = validity[key];\n return !errored || errorable.includes(key);\n });\n};\n\n/**\n * The default implementation for getting an error message for the `TextField`\n * or `TextArea` components that relies on the behavior of the\n * {@link ChangeValidationBehavior}\n *\n * @since 2.5.0\n */\nexport const defaultGetErrorMessage: GetErrorMessage = (options) => {\n const {\n isNumber,\n isBlurEvent,\n validity,\n validationMessage,\n validationType: validate,\n } = options;\n\n if (isBlurEvent || !validationMessage || validate === \"change\") {\n return validationMessage;\n }\n\n if (validate === \"blur\") {\n return \"\";\n }\n\n if (validate === \"recommended\") {\n return isRecommended(validity, isNumber) ? validationMessage : \"\";\n }\n\n const keys = typeof validate === \"string\" ? [validate] : validate;\n\n return keys.length &&\n VALIDITY_STATE_KEYS.some((key) => validity[key] && keys.includes(key))\n ? validationMessage\n : \"\";\n};\n\n/**\n * @since 2.5.0\n */\nexport interface IsErroredOptions extends ErrorMessageOptions {\n /**\n * The current error message or an empty string.\n */\n errorMessage: string;\n}\n\n/**\n * A function that is used to determine if a `TextField` or `TextArea` is in an\n * errored state.\n *\n * @param options - All the current options that can be used to determine the\n * error state.\n * @returns True if the component is considered to be in an errored state.\n * @since 2.5.0\n */\nexport type IsErrored = (options: IsErroredOptions) => boolean;\n\n/**\n * The default implementation for checking if a `TextField` or `TextArea` is\n * errored by returning `true` if the `errorMessage` string is truthy or the\n * value is not within the `minLength` and `maxLength` constraints when they\n * exist.\n *\n * @since 2.5.0\n */\nexport const defaultIsErrored: IsErrored = (options) => {\n const { value, errorMessage, minLength, maxLength, isBlurEvent } = options;\n\n return (\n !!errorMessage ||\n (typeof maxLength === \"number\" && value.length > maxLength) ||\n (isBlurEvent && typeof minLength === \"number\" && value.length < minLength)\n );\n};\n\n/**\n * @since 6.0.0\n */\nexport interface GetErrorIconOptions {\n /**\n * This will be `true` if the `TextField` or `TextArea` is in an errored state.\n */\n error: boolean;\n\n /**\n * The current error icon that was provided.\n */\n errorIcon: ReactNode;\n\n /**\n * The current error message or an empty string.\n */\n errorMessage: string;\n}\n\n/**\n * A function that can be used to dynamically get an error icon based on the\n * current visible error.\n *\n * @param options - The {@link GetErrorIconOptions}\n * @returns An icon to render or falsey to render nothing.\n * @since 2.5.0\n * @since 6.0.0 Updated to accept a single object argument\n */\nexport type GetErrorIcon = (options: GetErrorIconOptions) => ReactNode;\n\n/**\n * The default implementation for showing an error icon in `TextField` and\n * `TextArea` components that will only display when the error flag is enabled.\n *\n * @since 2.5.0\n */\nexport const defaultGetErrorIcon: GetErrorIcon = (options) => {\n const { error, errorIcon } = options;\n\n return error && errorIcon;\n};\n"],"names":["VALIDITY_STATE_KEYS","RECOMMENDED_STATE_KEYS","RECOMMENDED_NUMBER_STATE_KEYS","isRecommended","validity","isNumber","errorable","every","key","errored","includes","defaultGetErrorMessage","options","isBlurEvent","validationMessage","validationType","validate","keys","length","some","defaultIsErrored","value","errorMessage","minLength","maxLength","defaultGetErrorIcon","error","errorIcon"],"mappings":"AA0FA;;;CAGC,GACD,MAAMA,sBAAwD;IAC5D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED;;;CAGC,GACD,OAAO,MAAMC,yBAA2D;IACtE;IACA;IACA;CACD,CAAC;AAEF;;;CAGC,GACD,OAAO,MAAMC,gCAAkE;OAC1ED;IACH;IACA;IACA;IACA;CACD,CAAC;AAEF;;;;;;;;;CASC,GACD,MAAME,gBAAgB,CAACC,UAAyBC;IAC9C,MAAMC,YAAYD,WACdH,gCACAD;IAEJ,OAAOD,oBAAoBO,KAAK,CAAC,CAACC;QAChC,MAAMC,UAAUL,QAAQ,CAACI,IAAI;QAC7B,OAAO,CAACC,WAAWH,UAAUI,QAAQ,CAACF;IACxC;AACF;AAEA;;;;;;CAMC,GACD,OAAO,MAAMG,yBAA0C,CAACC;IACtD,MAAM,EACJP,QAAQ,EACRQ,WAAW,EACXT,QAAQ,EACRU,iBAAiB,EACjBC,gBAAgBC,QAAQ,EACzB,GAAGJ;IAEJ,IAAIC,eAAe,CAACC,qBAAqBE,aAAa,UAAU;QAC9D,OAAOF;IACT;IAEA,IAAIE,aAAa,QAAQ;QACvB,OAAO;IACT;IAEA,IAAIA,aAAa,eAAe;QAC9B,OAAOb,cAAcC,UAAUC,YAAYS,oBAAoB;IACjE;IAEA,MAAMG,OAAO,OAAOD,aAAa,WAAW;QAACA;KAAS,GAAGA;IAEzD,OAAOC,KAAKC,MAAM,IAChBlB,oBAAoBmB,IAAI,CAAC,CAACX,MAAQJ,QAAQ,CAACI,IAAI,IAAIS,KAAKP,QAAQ,CAACF,QAC/DM,oBACA;AACN,EAAE;AAuBF;;;;;;;CAOC,GACD,OAAO,MAAMM,mBAA8B,CAACR;IAC1C,MAAM,EAAES,KAAK,EAAEC,YAAY,EAAEC,SAAS,EAAEC,SAAS,EAAEX,WAAW,EAAE,GAAGD;IAEnE,OACE,CAAC,CAACU,gBACD,OAAOE,cAAc,YAAYH,MAAMH,MAAM,GAAGM,aAChDX,eAAe,OAAOU,cAAc,YAAYF,MAAMH,MAAM,GAAGK;AAEpE,EAAE;AAiCF;;;;;CAKC,GACD,OAAO,MAAME,sBAAoC,CAACb;IAChD,MAAM,EAAEc,KAAK,EAAEC,SAAS,EAAE,GAAGf;IAE7B,OAAOc,SAASC;AAClB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hoverMode/useHoverMode.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { UseStateInitializer, UseStateSetter } from \"../types.js\";\nimport type { SimpleHoverModeContext } from \"./useHoverModeProvider.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface HoverModeConfigurationOptions extends SimpleHoverModeContext {\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * This can be used to override the `HoverModeContext`'s hover time.\n */\n hoverTimeout?: number;\n\n /**\n * This can be used to override the `HoverModeContext`'s leave time.\n */\n leaveTimeout?: number;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ControlledHoverModeOptions\n extends HoverModeConfigurationOptions {\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ControlledHoverModeImplementation {\n startShowFlow(id?: string | MouseEvent): void;\n startHideFlow(): void;\n clearVisibilityTimeout(): void;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface UncontrolledHoverModeOptions\n extends HoverModeConfigurationOptions {\n defaultVisible?: UseStateInitializer<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface UncontrolledHoverModeImplementation\n extends ControlledHoverModeImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface HoverModeImplementation\n extends ControlledHoverModeImplementation {\n visible?: boolean;\n setVisible?: UseStateSetter<boolean>;\n}\n\n/**\n * @since 2.8.0\n * @since 5.0.0 This hook no longer returns `handlers` or\n * `stickyHandlers` and does not hide when an element on the page is clicked.\n * @since 6.0.0 Requires passing the custom hover mode context to\n * work.\n */\nexport function useHoverMode(\n options: ControlledHoverModeOptions\n): ControlledHoverModeImplementation;\nexport function useHoverMode(\n options: UncontrolledHoverModeOptions\n): UncontrolledHoverModeImplementation;\nexport function useHoverMode(\n options: ControlledHoverModeOptions | UncontrolledHoverModeOptions\n): HoverModeImplementation {\n const {\n disabled,\n hoverTimeout: hoverTime,\n hoverTimeoutRef,\n leaveTimeout: leaveTime,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n setVisible: propSetVisible,\n defaultVisible = false,\n } = options as ControlledHoverModeOptions & UncontrolledHoverModeOptions;\n\n const state = useState(defaultVisible);\n let visible: boolean | undefined;\n let setVisible: UseStateSetter<boolean>;\n if (typeof propSetVisible !== \"undefined\") {\n setVisible = propSetVisible;\n } else {\n [visible, setVisible] = state;\n }\n\n const visibilityTimeout = useRef<number | undefined>();\n const clearVisibilityTimeout = useCallback(() => {\n window.clearTimeout(visibilityTimeout.current);\n }, []);\n\n // if the element is near the viewport edge, the mouseleave event might not\n // trigger correctly. for these cases, just clear any timeouts to be safe.\n // do not hide the visibility so that you can still inspect things in the\n // devtools\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n const handler = (): void => {\n window.clearTimeout(visibilityTimeout.current);\n\n // might need to play with this more or make it configurable. if the mouse\n // leaves the window, you're _normally_ not interacting with the app\n // anymore and state should reset.\n disableHoverMode();\n };\n\n document.addEventListener(\"mouseleave\", handler);\n return () => {\n document.removeEventListener(\"mouseleave\", handler);\n };\n }, [disableHoverMode, disabled]);\n\n useEffect(() => {\n return () => {\n window.clearTimeout(visibilityTimeout.current);\n };\n }, []);\n\n return {\n visible,\n setVisible: setVisible === propSetVisible ? undefined : setVisible,\n startShowFlow: useCallback(\n (eventOrId) => {\n const hoverTimeout = hoverTime ?? hoverTimeoutRef.current;\n if (disabled || typeof hoverTimeout === \"undefined\") {\n return;\n }\n\n let id: string;\n if (typeof eventOrId === \"string\" || typeof eventOrId === \"undefined\") {\n id = eventOrId || \"\";\n } else {\n id = eventOrId.currentTarget.id;\n }\n\n clearDisableTimer();\n clearVisibilityTimeout();\n visibilityTimeout.current = window.setTimeout(() => {\n enableHoverMode(id);\n setVisible(true);\n }, hoverTimeout);\n },\n [\n clearDisableTimer,\n clearVisibilityTimeout,\n disabled,\n enableHoverMode,\n hoverTime,\n hoverTimeoutRef,\n setVisible,\n ]\n ),\n startHideFlow: useCallback(() => {\n if (disabled) {\n return;\n }\n\n startDisableTimer();\n clearVisibilityTimeout();\n visibilityTimeout.current = window.setTimeout(() => {\n setVisible(false);\n }, leaveTime ?? leaveTimeoutRef.current);\n }, [\n clearVisibilityTimeout,\n disabled,\n leaveTime,\n leaveTimeoutRef,\n setVisible,\n startDisableTimer,\n ]),\n clearVisibilityTimeout,\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useHoverMode","options","disabled","hoverTimeout","hoverTime","hoverTimeoutRef","leaveTimeout","leaveTime","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","setVisible","propSetVisible","defaultVisible","state","visible","visibilityTimeout","clearVisibilityTimeout","window","clearTimeout","current","handler","document","addEventListener","removeEventListener","undefined","startShowFlow","eventOrId","id","currentTarget","setTimeout","startHideFlow"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AA8EjE,OAAO,SAASC,aACdC,OAAkE;IAElE,MAAM,EACJC,QAAQ,EACRC,cAAcC,SAAS,EACvBC,eAAe,EACfC,cAAcC,SAAS,EACvBC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAYC,cAAc,EAC1BC,iBAAiB,KAAK,EACvB,GAAGd;IAEJ,MAAMe,QAAQjB,SAASgB;IACvB,IAAIE;IACJ,IAAIJ;IACJ,IAAI,OAAOC,mBAAmB,aAAa;QACzCD,aAAaC;IACf,OAAO;QACL,CAACG,SAASJ,WAAW,GAAGG;IAC1B;IAEA,MAAME,oBAAoBpB;IAC1B,MAAMqB,yBAAyBvB,YAAY;QACzCwB,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;IAC/C,GAAG,EAAE;IAEL,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,WAAW;IACXzB,UAAU;QACR,IAAIK,UAAU;YACZ;QACF;QAEA,MAAMqB,UAAU;YACdH,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;YAE7C,0EAA0E;YAC1E,oEAAoE;YACpE,kCAAkC;YAClCZ;QACF;QAEAc,SAASC,gBAAgB,CAAC,cAAcF;QACxC,OAAO;YACLC,SAASE,mBAAmB,CAAC,cAAcH;QAC7C;IACF,GAAG;QAACb;QAAkBR;KAAS;IAE/BL,UAAU;QACR,OAAO;YACLuB,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;QAC/C;IACF,GAAG,EAAE;IAEL,OAAO;QACLL;QACAJ,YAAYA,eAAeC,iBAAiBa,YAAYd;QACxDe,eAAehC,YACb,CAACiC;YACC,MAAM1B,eAAeC,aAAaC,gBAAgBiB,OAAO;YACzD,IAAIpB,YAAY,OAAOC,iBAAiB,aAAa;gBACnD;YACF;YAEA,IAAI2B;YACJ,IAAI,OAAOD,cAAc,YAAY,OAAOA,cAAc,aAAa;gBACrEC,KAAKD,aAAa;YACpB,OAAO;gBACLC,KAAKD,UAAUE,aAAa,CAACD,EAAE;YACjC;YAEAlB;YACAO;YACAD,kBAAkBI,OAAO,GAAGF,OAAOY,UAAU,CAAC;gBAC5CvB,gBAAgBqB;gBAChBjB,WAAW;YACb,GAAGV;QACL,GACA;YACES;YACAO;YACAjB;YACAO;YACAL;YACAC;YACAQ;SACD;QAEHoB,eAAerC,YAAY;YACzB,IAAIM,UAAU;gBACZ;YACF;YAEAS;YACAQ;YACAD,kBAAkBI,OAAO,GAAGF,OAAOY,UAAU,CAAC;gBAC5CnB,WAAW;YACb,GAAGN,aAAaC,gBAAgBc,OAAO;QACzC,GAAG;YACDH;YACAjB;YACAK;YACAC;YACAK;YACAF;SACD;QACDQ;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/hoverMode/useHoverMode.ts"],"sourcesContent":["\"use client\";\nimport type { MouseEvent } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { UseStateInitializer, UseStateSetter } from \"../types.js\";\nimport type { SimpleHoverModeContext } from \"./useHoverModeProvider.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface HoverModeConfigurationOptions extends SimpleHoverModeContext {\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * This can be used to override the `HoverModeContext`'s hover time.\n */\n hoverTimeout?: number;\n\n /**\n * This can be used to override the `HoverModeContext`'s leave time.\n */\n leaveTimeout?: number;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ControlledHoverModeOptions\n extends HoverModeConfigurationOptions {\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface ControlledHoverModeImplementation {\n startShowFlow(id?: string | MouseEvent): void;\n startHideFlow(): void;\n clearVisibilityTimeout(): void;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface UncontrolledHoverModeOptions\n extends HoverModeConfigurationOptions {\n defaultVisible?: UseStateInitializer<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface UncontrolledHoverModeImplementation\n extends ControlledHoverModeImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface HoverModeImplementation\n extends ControlledHoverModeImplementation {\n visible?: boolean;\n setVisible?: UseStateSetter<boolean>;\n}\n\n/**\n * @since 2.8.0\n * @since 5.0.0 This hook no longer returns `handlers` or\n * `stickyHandlers` and does not hide when an element on the page is clicked.\n * @since 6.0.0 Requires passing the custom hover mode context to\n * work.\n */\nexport function useHoverMode(\n options: ControlledHoverModeOptions\n): ControlledHoverModeImplementation;\nexport function useHoverMode(\n options: UncontrolledHoverModeOptions\n): UncontrolledHoverModeImplementation;\nexport function useHoverMode(\n options: ControlledHoverModeOptions | UncontrolledHoverModeOptions\n): HoverModeImplementation {\n const {\n disabled,\n hoverTimeout: hoverTime,\n hoverTimeoutRef,\n leaveTimeout: leaveTime,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n setVisible: propSetVisible,\n defaultVisible = false,\n } = options as ControlledHoverModeOptions & UncontrolledHoverModeOptions;\n\n const state = useState(defaultVisible);\n let visible: boolean | undefined;\n let setVisible: UseStateSetter<boolean>;\n if (typeof propSetVisible !== \"undefined\") {\n setVisible = propSetVisible;\n } else {\n [visible, setVisible] = state;\n }\n\n const visibilityTimeout = useRef<number | undefined>();\n const clearVisibilityTimeout = useCallback(() => {\n window.clearTimeout(visibilityTimeout.current);\n }, []);\n\n // if the element is near the viewport edge, the mouseleave event might not\n // trigger correctly. for these cases, just clear any timeouts to be safe.\n // do not hide the visibility so that you can still inspect things in the\n // devtools\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n const handler = (): void => {\n window.clearTimeout(visibilityTimeout.current);\n\n // might need to play with this more or make it configurable. if the mouse\n // leaves the window, you're _normally_ not interacting with the app\n // anymore and state should reset.\n disableHoverMode();\n };\n\n document.addEventListener(\"mouseleave\", handler);\n return () => {\n document.removeEventListener(\"mouseleave\", handler);\n };\n }, [disableHoverMode, disabled]);\n\n useEffect(() => {\n return () => {\n window.clearTimeout(visibilityTimeout.current);\n };\n }, []);\n\n return {\n visible,\n setVisible: setVisible === propSetVisible ? undefined : setVisible,\n startShowFlow: useCallback(\n (eventOrId) => {\n const hoverTimeout = hoverTime ?? hoverTimeoutRef.current;\n if (disabled || typeof hoverTimeout === \"undefined\") {\n return;\n }\n\n let id: string;\n if (typeof eventOrId === \"string\" || typeof eventOrId === \"undefined\") {\n id = eventOrId || \"\";\n } else {\n id = eventOrId.currentTarget.id;\n }\n\n clearDisableTimer();\n clearVisibilityTimeout();\n visibilityTimeout.current = window.setTimeout(() => {\n enableHoverMode(id);\n setVisible(true);\n }, hoverTimeout);\n },\n [\n clearDisableTimer,\n clearVisibilityTimeout,\n disabled,\n enableHoverMode,\n hoverTime,\n hoverTimeoutRef,\n setVisible,\n ]\n ),\n startHideFlow: useCallback(() => {\n if (disabled) {\n return;\n }\n\n startDisableTimer();\n clearVisibilityTimeout();\n visibilityTimeout.current = window.setTimeout(() => {\n setVisible(false);\n }, leaveTime ?? leaveTimeoutRef.current);\n }, [\n clearVisibilityTimeout,\n disabled,\n leaveTime,\n leaveTimeoutRef,\n setVisible,\n startDisableTimer,\n ]),\n clearVisibilityTimeout,\n };\n}\n"],"names":["useCallback","useEffect","useRef","useState","useHoverMode","options","disabled","hoverTimeout","hoverTime","hoverTimeoutRef","leaveTimeout","leaveTime","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","setVisible","propSetVisible","defaultVisible","state","visible","visibilityTimeout","clearVisibilityTimeout","window","clearTimeout","current","handler","document","addEventListener","removeEventListener","undefined","startShowFlow","eventOrId","id","currentTarget","setTimeout","startHideFlow"],"mappings":"AAAA;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AA8EjE,OAAO,SAASC,aACdC,OAAkE;IAElE,MAAM,EACJC,QAAQ,EACRC,cAAcC,SAAS,EACvBC,eAAe,EACfC,cAAcC,SAAS,EACvBC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAYC,cAAc,EAC1BC,iBAAiB,KAAK,EACvB,GAAGd;IAEJ,MAAMe,QAAQjB,SAASgB;IACvB,IAAIE;IACJ,IAAIJ;IACJ,IAAI,OAAOC,mBAAmB,aAAa;QACzCD,aAAaC;IACf,OAAO;QACL,CAACG,SAASJ,WAAW,GAAGG;IAC1B;IAEA,MAAME,oBAAoBpB;IAC1B,MAAMqB,yBAAyBvB,YAAY;QACzCwB,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;IAC/C,GAAG,EAAE;IAEL,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,WAAW;IACXzB,UAAU;QACR,IAAIK,UAAU;YACZ;QACF;QAEA,MAAMqB,UAAU;YACdH,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;YAE7C,0EAA0E;YAC1E,oEAAoE;YACpE,kCAAkC;YAClCZ;QACF;QAEAc,SAASC,gBAAgB,CAAC,cAAcF;QACxC,OAAO;YACLC,SAASE,mBAAmB,CAAC,cAAcH;QAC7C;IACF,GAAG;QAACb;QAAkBR;KAAS;IAE/BL,UAAU;QACR,OAAO;YACLuB,OAAOC,YAAY,CAACH,kBAAkBI,OAAO;QAC/C;IACF,GAAG,EAAE;IAEL,OAAO;QACLL;QACAJ,YAAYA,eAAeC,iBAAiBa,YAAYd;QACxDe,eAAehC,YACb,CAACiC;YACC,MAAM1B,eAAeC,aAAaC,gBAAgBiB,OAAO;YACzD,IAAIpB,YAAY,OAAOC,iBAAiB,aAAa;gBACnD;YACF;YAEA,IAAI2B;YACJ,IAAI,OAAOD,cAAc,YAAY,OAAOA,cAAc,aAAa;gBACrEC,KAAKD,aAAa;YACpB,OAAO;gBACLC,KAAKD,UAAUE,aAAa,CAACD,EAAE;YACjC;YAEAlB;YACAO;YACAD,kBAAkBI,OAAO,GAAGF,OAAOY,UAAU,CAAC;gBAC5CvB,gBAAgBqB;gBAChBjB,WAAW;YACb,GAAGV;QACL,GACA;YACES;YACAO;YACAjB;YACAO;YACAL;YACAC;YACAQ;SACD;QAEHoB,eAAerC,YAAY;YACzB,IAAIM,UAAU;gBACZ;YACF;YAEAS;YACAQ;YACAD,kBAAkBI,OAAO,GAAGF,OAAOY,UAAU,CAAC;gBAC5CnB,WAAW;YACb,GAAGN,aAAaC,gBAAgBc,OAAO;QACzC,GAAG;YACDH;YACAjB;YACAK;YACAC;YACAK;YACAF;SACD;QACDQ;IACF;AACF"}