@react-md/core 1.0.0-next.8 → 1.0.0-next.9

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 (667) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +5 -5
  3. package/.turbo/turbo-lint.log +13 -0
  4. package/CHANGELOG.md +9 -0
  5. package/README.md +39 -24
  6. package/coverage/clover.xml +1013 -404
  7. package/coverage/coverage-final.json +9 -2
  8. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  9. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  10. package/coverage/lcov-report/Select.tsx.html +1411 -0
  11. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  12. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +283 -0
  13. package/coverage/lcov-report/autocomplete/index.html +161 -0
  14. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  15. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +775 -0
  16. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  17. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +346 -0
  18. package/coverage/lcov-report/autocomplete/utils.ts.html +106 -0
  19. package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
  20. package/coverage/lcov-report/avatar/index.html +19 -34
  21. package/coverage/lcov-report/avatar/styles.ts.html +1 -1
  22. package/coverage/lcov-report/button/Button.tsx.html +85 -85
  23. package/coverage/lcov-report/button/index.html +12 -12
  24. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
  25. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
  26. package/coverage/lcov-report/dialog/index.html +34 -19
  27. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  28. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  29. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  30. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  31. package/coverage/lcov-report/form/Select.tsx.html +962 -1112
  32. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  33. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  34. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  35. package/coverage/lcov-report/form/index.html +57 -12
  36. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  37. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  38. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  39. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  40. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  41. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  42. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  43. package/coverage/lcov-report/form/utils.ts.html +209 -170
  44. package/coverage/lcov-report/icon/FontIcon.tsx.html +28 -28
  45. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  46. package/coverage/lcov-report/icon/index.html +1 -1
  47. package/coverage/lcov-report/index.html +36 -21
  48. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  49. package/coverage/lcov-report/media-queries/index.html +1 -1
  50. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
  51. package/coverage/lcov-report/menu/Menu.tsx.html +271 -265
  52. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  53. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  54. package/coverage/lcov-report/menu/index.html +45 -15
  55. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  56. package/coverage/lcov-report/movement/index.html +19 -19
  57. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  58. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  59. package/coverage/lcov-report/positioning/index.html +30 -30
  60. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  61. package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
  62. package/coverage/lcov-report/progress/index.html +19 -34
  63. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  64. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  65. package/coverage/lcov-report/searching/index.html +161 -0
  66. package/coverage/lcov-report/searching/toSearchQuery.ts.html +139 -0
  67. package/coverage/lcov-report/searching/utils.ts.html +247 -0
  68. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  69. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  70. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  71. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  72. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +1 -1
  73. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  74. package/coverage/lcov-report/src/app-bar/index.html +1 -1
  75. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +1 -1
  76. package/coverage/lcov-report/src/avatar/index.html +1 -1
  77. package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
  78. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  79. package/coverage/lcov-report/src/badge/index.html +1 -1
  80. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  81. package/coverage/lcov-report/src/box/index.html +1 -1
  82. package/coverage/lcov-report/src/box/styles.ts.html +1 -1
  83. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
  84. package/coverage/lcov-report/src/button/Button.tsx.html +1 -1
  85. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  86. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +1 -1
  87. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +1 -1
  88. package/coverage/lcov-report/src/button/buttonStyles.ts.html +1 -1
  89. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  90. package/coverage/lcov-report/src/button/index.html +1 -1
  91. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  92. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  93. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  94. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  95. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  96. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  97. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +1 -1
  98. package/coverage/lcov-report/src/card/index.html +1 -1
  99. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  100. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  101. package/coverage/lcov-report/src/chip/index.html +1 -1
  102. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  103. package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
  104. package/coverage/lcov-report/src/delegateEvent.ts.html +1 -1
  105. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
  106. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
  107. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
  108. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
  109. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
  110. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
  111. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  112. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
  113. package/coverage/lcov-report/src/dialog/index.html +1 -1
  114. package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
  115. package/coverage/lcov-report/src/divider/Divider.tsx.html +1 -1
  116. package/coverage/lcov-report/src/divider/index.html +1 -1
  117. package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
  118. package/coverage/lcov-report/src/draggable/index.html +1 -1
  119. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +1 -1
  120. package/coverage/lcov-report/src/draggable/utils.ts.html +1 -1
  121. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  122. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  123. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
  124. package/coverage/lcov-report/src/expansion-panel/index.html +1 -1
  125. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  126. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  127. package/coverage/lcov-report/src/focus/index.html +1 -1
  128. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
  129. package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
  130. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  131. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  132. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  133. package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
  134. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  135. package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
  136. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +1 -1
  137. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  138. package/coverage/lcov-report/src/form/InputToggle.tsx.html +1 -1
  139. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +56 -56
  140. package/coverage/lcov-report/src/form/Label.tsx.html +1 -1
  141. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  142. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
  143. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
  144. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
  145. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
  146. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  147. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
  148. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
  149. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  150. package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
  151. package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
  152. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  153. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1146
  154. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  155. package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  157. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  158. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  159. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
  160. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
  162. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
  163. package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
  165. package/coverage/lcov-report/src/form/TextArea.tsx.html +1 -1
  166. package/coverage/lcov-report/src/form/TextField.tsx.html +1 -1
  167. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
  168. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
  169. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +1 -1
  170. package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
  171. package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
  172. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
  173. package/coverage/lcov-report/src/form/index.html +30 -900
  174. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  175. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  176. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
  177. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  178. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  179. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  180. package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
  181. package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
  182. package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
  183. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +1 -1
  184. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  185. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  186. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
  187. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  188. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  189. package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
  190. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  191. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
  192. package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
  193. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +1 -1
  194. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
  195. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +1 -1
  196. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  197. package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
  198. package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
  199. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  200. package/coverage/lcov-report/src/form/validation.ts.html +1 -1
  201. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  202. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +1 -1
  203. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +1 -1
  204. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
  205. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  206. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
  207. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
  208. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  209. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  210. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
  211. package/coverage/lcov-report/src/icon/index.html +1 -1
  212. package/coverage/lcov-report/src/icon/material.ts.html +1 -1
  213. package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
  214. package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
  215. package/coverage/lcov-report/src/index.html +9 -354
  216. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
  217. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
  218. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
  219. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  220. package/coverage/lcov-report/src/interaction/index.html +1 -1
  221. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +83 -83
  222. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +7 -7
  223. package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
  224. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  225. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +1 -1
  226. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  227. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  228. package/coverage/lcov-report/src/layout/index.html +1 -1
  229. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +1 -1
  230. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  231. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  232. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  233. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  234. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  235. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  236. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  237. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  238. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  239. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
  240. package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
  241. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  242. package/coverage/lcov-report/src/link/index.html +1 -1
  243. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  244. package/coverage/lcov-report/src/list/List.tsx.html +30 -30
  245. package/coverage/lcov-report/src/list/ListItem.tsx.html +124 -124
  246. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +35 -35
  247. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +79 -79
  248. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  249. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  250. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  251. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
  252. package/coverage/lcov-report/src/list/index.html +5 -5
  253. package/coverage/lcov-report/src/list/listItemStyles.ts.html +65 -65
  254. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +49 -49
  255. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  256. package/coverage/lcov-report/src/media-queries/index.html +1 -1
  257. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  258. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
  259. package/coverage/lcov-report/src/menu/Menu.tsx.html +3 -3
  260. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  261. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
  262. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  263. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  264. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
  265. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  266. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
  267. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
  268. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  269. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  270. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  271. package/coverage/lcov-report/src/menu/index.html +1 -1
  272. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  273. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  274. package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
  275. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  276. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  277. package/coverage/lcov-report/src/movement/index.html +17 -62
  278. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +1 -1
  279. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  280. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
  281. package/coverage/lcov-report/src/overlay/index.html +1 -1
  282. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
  283. package/coverage/lcov-report/src/portal/Portal.tsx.html +1 -1
  284. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +36 -36
  285. package/coverage/lcov-report/src/portal/index.html +1 -1
  286. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  287. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +1 -1
  288. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +1 -1
  289. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +1 -1
  290. package/coverage/lcov-report/src/positioning/index.html +1 -1
  291. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +1 -1
  292. package/coverage/lcov-report/src/positioning/utils.ts.html +1 -1
  293. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +81 -81
  294. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +1 -1
  295. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  296. package/coverage/lcov-report/src/progress/index.html +1 -1
  297. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  298. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  299. package/coverage/lcov-report/src/responsive-item/index.html +1 -1
  300. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  301. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  302. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
  303. package/coverage/lcov-report/src/scroll/index.html +1 -1
  304. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
  305. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
  306. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
  307. package/coverage/lcov-report/src/segmented-button/index.html +1 -1
  308. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
  309. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  310. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  311. package/coverage/lcov-report/src/sheet/index.html +1 -1
  312. package/coverage/lcov-report/src/sheet/styles.ts.html +1 -1
  313. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +1 -1
  314. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +1 -1
  315. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +1 -1
  316. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  317. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
  318. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +1 -1
  319. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1 -1
  320. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +1 -1
  321. package/coverage/lcov-report/src/snackbar/index.html +1 -1
  322. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +1 -1
  323. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +1 -1
  324. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  325. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  326. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
  327. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  328. package/coverage/lcov-report/src/suspense/index.html +32 -32
  329. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  330. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  331. package/coverage/lcov-report/src/table/TableCell.tsx.html +1 -1
  332. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +1 -1
  333. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  334. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +1 -1
  335. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  336. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  337. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  338. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  339. package/coverage/lcov-report/src/table/TableRadio.tsx.html +1 -1
  340. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  341. package/coverage/lcov-report/src/table/index.html +1 -1
  342. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +1 -1
  343. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +1 -1
  344. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +1 -1
  345. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +1 -1
  346. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +1 -1
  347. package/coverage/lcov-report/src/table/tableStyles.ts.html +1 -1
  348. package/coverage/lcov-report/src/tabs/Tab.tsx.html +1 -1
  349. package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
  350. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
  351. package/coverage/lcov-report/src/tabs/index.html +1 -1
  352. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +1 -1
  353. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
  354. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +1 -1
  355. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +1 -1
  356. package/coverage/lcov-report/src/tabs/useTabList.ts.html +1 -1
  357. package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
  358. package/coverage/lcov-report/src/tabs/utils.ts.html +1 -1
  359. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  360. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  361. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
  362. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  363. package/coverage/lcov-report/src/test-utils/index.html +7 -7
  364. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
  365. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  366. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  367. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  368. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  369. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  370. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  371. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  372. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  373. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  374. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  375. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  376. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  377. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  378. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
  379. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  380. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  381. package/coverage/lcov-report/src/theme/index.html +1 -1
  382. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  383. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  384. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  385. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  386. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  387. package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
  388. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +1 -1
  389. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +1 -1
  390. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  391. package/coverage/lcov-report/src/tooltip/index.html +1 -1
  392. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +1 -1
  393. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +1 -1
  394. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +1 -1
  395. package/coverage/lcov-report/src/tooltip/utils.ts.html +1 -1
  396. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  397. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  398. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  399. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  400. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  401. package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
  402. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  403. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  404. package/coverage/lcov-report/src/transition/config.ts.html +3 -3
  405. package/coverage/lcov-report/src/transition/index.html +7 -7
  406. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  407. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +1 -1
  408. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +1 -1
  409. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  410. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +96 -150
  411. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  412. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  413. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +1 -1
  414. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  415. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
  416. package/coverage/lcov-report/src/transition/useTransition.ts.html +152 -152
  417. package/coverage/lcov-report/src/transition/utils.ts.html +14 -14
  418. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +1 -1
  419. package/coverage/lcov-report/src/tree/Tree.tsx.html +1 -1
  420. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  421. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +1 -1
  422. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
  423. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +8 -8
  424. package/coverage/lcov-report/src/tree/index.html +1 -1
  425. package/coverage/lcov-report/src/tree/styles.ts.html +5 -5
  426. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  427. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  428. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
  429. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  430. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  431. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  432. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
  433. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  434. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  435. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
  436. package/coverage/lcov-report/src/typography/index.html +1 -1
  437. package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
  438. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  439. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  440. package/coverage/lcov-report/src/useElementSize.ts.html +1 -1
  441. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  442. package/coverage/lcov-report/src/useEnsuredRef.ts.html +11 -11
  443. package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
  444. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  445. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
  446. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  447. package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
  448. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  449. package/coverage/lcov-report/src/usePageInactive.ts.html +1 -1
  450. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  451. package/coverage/lcov-report/src/useResizeObserver.ts.html +23 -23
  452. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  453. package/coverage/lcov-report/src/useToggle.ts.html +1 -1
  454. package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
  455. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  456. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  457. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/applyRef.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  460. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  461. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  462. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +1 -1
  463. package/coverage/lcov-report/src/utils/getPercentage.ts.html +1 -1
  464. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  465. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  466. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  467. package/coverage/lcov-report/src/utils/index.html +13 -268
  468. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
  469. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  470. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  471. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +1 -1
  472. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  473. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  474. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  475. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  476. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  477. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  478. package/coverage/lcov-report/transition/config.ts.html +5 -5
  479. package/coverage/lcov-report/transition/index.html +1 -1
  480. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  481. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  482. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  483. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  484. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  485. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  486. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  487. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  488. package/coverage/lcov-report/utils/index.html +10 -10
  489. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  490. package/coverage/lcov-report/utils.ts.html +109 -277
  491. package/coverage/lcov.info +928 -259
  492. package/dist/RootHtml.d.ts +62 -0
  493. package/dist/RootHtml.js +49 -0
  494. package/dist/RootHtml.js.map +1 -0
  495. package/dist/avatar/Avatar.d.ts +14 -0
  496. package/dist/avatar/Avatar.js +5 -2
  497. package/dist/avatar/Avatar.js.map +1 -1
  498. package/dist/dialog/FixedDialog.d.ts +5 -4
  499. package/dist/dialog/FixedDialog.js +5 -4
  500. package/dist/dialog/FixedDialog.js.map +1 -1
  501. package/dist/form/NativeSelect.d.ts +5 -2
  502. package/dist/form/NativeSelect.js.map +1 -1
  503. package/dist/form/Option.js +3 -2
  504. package/dist/form/Option.js.map +1 -1
  505. package/dist/form/Select.d.ts +105 -15
  506. package/dist/form/Select.js +160 -249
  507. package/dist/form/Select.js.map +1 -1
  508. package/dist/form/SelectedOption.d.ts +21 -0
  509. package/dist/form/SelectedOption.js +37 -0
  510. package/dist/form/SelectedOption.js.map +1 -0
  511. package/dist/form/TextField.d.ts +2 -2
  512. package/dist/form/TextField.js.map +1 -1
  513. package/dist/form/_form.scss +8 -13
  514. package/dist/form/selectUtils.d.ts +1 -3
  515. package/dist/form/selectUtils.js +2 -10
  516. package/dist/form/selectUtils.js.map +1 -1
  517. package/dist/form/types.d.ts +6 -6
  518. package/dist/form/types.js.map +1 -1
  519. package/dist/form/useCombobox.d.ts +157 -0
  520. package/dist/form/useCombobox.js +206 -0
  521. package/dist/form/useCombobox.js.map +1 -0
  522. package/dist/form/useEditableCombobox.d.ts +15 -0
  523. package/dist/form/useEditableCombobox.js +101 -0
  524. package/dist/form/useEditableCombobox.js.map +1 -0
  525. package/dist/form/useFormReset.d.ts +16 -0
  526. package/dist/form/useFormReset.js +32 -0
  527. package/dist/form/useFormReset.js.map +1 -0
  528. package/dist/form/useListboxProvider.d.ts +1 -0
  529. package/dist/form/useListboxProvider.js +1 -0
  530. package/dist/form/useListboxProvider.js.map +1 -1
  531. package/dist/form/useSelectCombobox.d.ts +17 -0
  532. package/dist/form/useSelectCombobox.js +36 -0
  533. package/dist/form/useSelectCombobox.js.map +1 -0
  534. package/dist/form/utils.d.ts +11 -1
  535. package/dist/form/utils.js +6 -0
  536. package/dist/form/utils.js.map +1 -1
  537. package/dist/index.d.ts +14 -1
  538. package/dist/index.js +14 -1
  539. package/dist/index.js.map +1 -1
  540. package/dist/menu/Menu.js +12 -1
  541. package/dist/menu/Menu.js.map +1 -1
  542. package/dist/menu/useContextMenu.d.ts +3 -3
  543. package/dist/menu/useContextMenu.js +3 -3
  544. package/dist/menu/useContextMenu.js.map +1 -1
  545. package/dist/movement/types.d.ts +40 -21
  546. package/dist/movement/types.js.map +1 -1
  547. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  548. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  549. package/dist/movement/utils.d.ts +7 -2
  550. package/dist/movement/utils.js +10 -0
  551. package/dist/movement/utils.js.map +1 -1
  552. package/dist/positioning/useFixedPositioning.js +0 -8
  553. package/dist/positioning/useFixedPositioning.js.map +1 -1
  554. package/dist/searching/caseInsensitive.d.ts +150 -0
  555. package/dist/searching/caseInsensitive.js +30 -0
  556. package/dist/searching/caseInsensitive.js.map +1 -0
  557. package/dist/searching/fuzzy.d.ts +128 -0
  558. package/dist/searching/fuzzy.js +54 -0
  559. package/dist/searching/fuzzy.js.map +1 -0
  560. package/dist/searching/toSearchQuery.d.ts +5 -0
  561. package/dist/searching/toSearchQuery.js +13 -0
  562. package/dist/searching/toSearchQuery.js.map +1 -0
  563. package/dist/searching/types.d.ts +28 -0
  564. package/dist/searching/types.js +5 -0
  565. package/dist/searching/types.js.map +1 -0
  566. package/dist/searching/utils.d.ts +21 -0
  567. package/dist/searching/utils.js +28 -0
  568. package/dist/searching/utils.js.map +1 -0
  569. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  570. package/dist/test-utils/ResizeObserver.d.ts +172 -0
  571. package/dist/test-utils/data-testid.d.ts +7 -0
  572. package/dist/test-utils/data-testid.js +1 -0
  573. package/dist/test-utils/data-testid.js.map +1 -1
  574. package/dist/test-utils/drag.d.ts +26 -0
  575. package/dist/test-utils/index.d.ts +7 -0
  576. package/dist/test-utils/jest-setup.d.ts +1 -0
  577. package/dist/test-utils/matchMedia.d.ts +101 -0
  578. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  579. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  580. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  581. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  582. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  583. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  584. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  585. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  586. package/dist/test-utils/polyfills/index.d.ts +7 -0
  587. package/dist/test-utils/polyfills/index.js +2 -0
  588. package/dist/test-utils/polyfills/index.js.map +1 -1
  589. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  590. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  591. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  592. package/dist/test-utils/render.d.ts +13 -0
  593. package/dist/test-utils/timers.d.ts +39 -0
  594. package/dist/transition/useCollapseTransition.d.ts +3 -18
  595. package/dist/transition/useCollapseTransition.js +1 -10
  596. package/dist/transition/useCollapseTransition.js.map +1 -1
  597. package/dist/transition/utils.js +7 -2
  598. package/dist/transition/utils.js.map +1 -1
  599. package/dist/useEnsuredState.d.ts +1 -1
  600. package/dist/useEnsuredState.js.map +1 -1
  601. package/dist/utils/alphaNumericSort.d.ts +1 -1
  602. package/dist/utils/alphaNumericSort.js +2 -10
  603. package/dist/utils/alphaNumericSort.js.map +1 -1
  604. package/jest.config.ts +4 -0
  605. package/package.json +14 -13
  606. package/src/RootHtml.tsx +95 -0
  607. package/src/__tests__/RootHtml.node.tsx +46 -0
  608. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  609. package/src/avatar/Avatar.tsx +24 -3
  610. package/src/avatar/__tests__/Avatar.tsx +1 -1
  611. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  612. package/src/dialog/FixedDialog.tsx +5 -4
  613. package/src/form/NativeSelect.tsx +6 -3
  614. package/src/form/Option.tsx +8 -2
  615. package/src/form/Select.tsx +251 -335
  616. package/src/form/SelectedOption.tsx +55 -0
  617. package/src/form/TextField.tsx +2 -2
  618. package/src/form/__tests__/Select.tsx +439 -0
  619. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  620. package/src/form/__tests__/useFormReset.tsx +195 -0
  621. package/src/form/_form.scss +8 -13
  622. package/src/form/selectUtils.ts +3 -14
  623. package/src/form/types.ts +6 -6
  624. package/src/form/useCombobox.ts +523 -0
  625. package/src/form/useEditableCombobox.ts +139 -0
  626. package/src/form/useFormReset.ts +48 -0
  627. package/src/form/useListboxProvider.ts +2 -0
  628. package/src/form/useSelectCombobox.ts +70 -0
  629. package/src/form/utils.ts +17 -4
  630. package/src/index.ts +14 -1
  631. package/src/menu/Menu.tsx +9 -1
  632. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  633. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  634. package/src/menu/useContextMenu.ts +3 -3
  635. package/src/movement/types.ts +50 -25
  636. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  637. package/src/movement/utils.ts +12 -2
  638. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  639. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
  640. package/src/positioning/useFixedPositioning.ts +0 -6
  641. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  642. package/src/searching/__tests__/fuzzy.ts +169 -0
  643. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  644. package/src/searching/caseInsensitive.ts +200 -0
  645. package/src/searching/fuzzy.ts +175 -0
  646. package/src/searching/toSearchQuery.ts +18 -0
  647. package/src/searching/types.ts +34 -0
  648. package/src/searching/utils.ts +54 -0
  649. package/src/test-utils/data-testid.ts +5 -1
  650. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  651. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  652. package/src/test-utils/polyfills/index.ts +2 -0
  653. package/src/transition/__tests__/utils.ts +25 -0
  654. package/src/transition/useCollapseTransition.ts +6 -24
  655. package/src/transition/utils.ts +10 -5
  656. package/src/useEnsuredState.ts +1 -1
  657. package/src/utils/alphaNumericSort.ts +3 -16
  658. package/tsconfig.json +2 -2
  659. package/tsconfig.types.json +1 -1
  660. package/dist/form/SelectValue.d.ts +0 -17
  661. package/dist/form/SelectValue.js +0 -32
  662. package/dist/form/SelectValue.js.map +0 -1
  663. package/dist/utils/filters.d.ts +0 -196
  664. package/dist/utils/filters.js +0 -67
  665. package/dist/utils/filters.js.map +0 -1
  666. package/src/form/SelectValue.tsx +0 -39
  667. package/src/utils/filters.ts +0 -320
@@ -0,0 +1,492 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Select should allow for the OptGroup to be used 1`] = `
4
+ <div
5
+ aria-labelledby="select-label-:r1q:"
6
+ class="rmd-menu rmd-menu--elevated"
7
+ id="combobox-popup-:r1r:"
8
+ role="listbox"
9
+ style="position: fixed; transform-origin: 50% 0; left: 16px; top: 0px; min-width: 0;"
10
+ tabindex="-1"
11
+ >
12
+ <ul
13
+ class="rmd-list"
14
+ role="none"
15
+ >
16
+ <ul
17
+ aria-labelledby="optgroup-:r1u:"
18
+ class="rmd-list rmd-menu-item-group"
19
+ role="group"
20
+ >
21
+ <li
22
+ class="rmd-list-subheader"
23
+ id="optgroup-:r1u:"
24
+ role="presentation"
25
+ >
26
+ <span
27
+ class="rmd-list-item__text"
28
+ >
29
+ A
30
+ </span>
31
+ </li>
32
+ <li
33
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-menu-item--focused rmd-option rmd-option--icon"
34
+ id="option-:r1v:"
35
+ role="option"
36
+ tabindex="-1"
37
+ >
38
+ <span
39
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
40
+ />
41
+ <span
42
+ class="rmd-list-item__text"
43
+ >
44
+ Apple
45
+ </span>
46
+ </li>
47
+ <li
48
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
49
+ id="option-:r21:"
50
+ role="option"
51
+ tabindex="-1"
52
+ >
53
+ <span
54
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
55
+ />
56
+ <span
57
+ class="rmd-list-item__text"
58
+ >
59
+ Apricot
60
+ </span>
61
+ </li>
62
+ <li
63
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
64
+ id="option-:r23:"
65
+ role="option"
66
+ tabindex="-1"
67
+ >
68
+ <span
69
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
70
+ />
71
+ <span
72
+ class="rmd-list-item__text"
73
+ >
74
+ Avocado
75
+ </span>
76
+ </li>
77
+ </ul>
78
+ <ul
79
+ aria-labelledby="optgroup-:r25:"
80
+ class="rmd-list rmd-menu-item-group"
81
+ role="group"
82
+ >
83
+ <li
84
+ class="rmd-list-subheader"
85
+ id="optgroup-:r25:"
86
+ role="presentation"
87
+ >
88
+ <span
89
+ class="rmd-list-item__text"
90
+ >
91
+ B
92
+ </span>
93
+ </li>
94
+ <li
95
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
96
+ id="option-:r26:"
97
+ role="option"
98
+ tabindex="-1"
99
+ >
100
+ <span
101
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
102
+ />
103
+ <span
104
+ class="rmd-list-item__text"
105
+ >
106
+ Blueberry
107
+ </span>
108
+ </li>
109
+ </ul>
110
+ <ul
111
+ aria-labelledby="optgroup-:r28:"
112
+ class="rmd-list rmd-menu-item-group"
113
+ role="group"
114
+ >
115
+ <li
116
+ class="rmd-list-subheader"
117
+ id="optgroup-:r28:"
118
+ role="presentation"
119
+ >
120
+ <span
121
+ class="rmd-list-item__text"
122
+ >
123
+ <span>
124
+ C
125
+ </span>
126
+ </span>
127
+ </li>
128
+ <li
129
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
130
+ id="option-:r29:"
131
+ role="option"
132
+ tabindex="-1"
133
+ >
134
+ <span
135
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
136
+ />
137
+ <span
138
+ class="rmd-list-item__text"
139
+ >
140
+ Cranberry
141
+ </span>
142
+ </li>
143
+ <li
144
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
145
+ id="option-:r2b:"
146
+ role="option"
147
+ tabindex="-1"
148
+ >
149
+ <span
150
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
151
+ />
152
+ <span
153
+ class="rmd-list-item__text"
154
+ >
155
+ Currant
156
+ </span>
157
+ </li>
158
+ </ul>
159
+ </ul>
160
+ </div>
161
+ `;
162
+
163
+ exports[`Select should allow the selected icon to appear after the option instead of before 1`] = `
164
+ <li
165
+ aria-selected="true"
166
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-menu-item--focused rmd-option rmd-option--icon rmd-option--selected"
167
+ id="option-:r31:"
168
+ role="option"
169
+ tabindex="-1"
170
+ >
171
+ <span
172
+ aria-hidden="true"
173
+ class="rmd-icon rmd-icon--font material-icons rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon"
174
+ >
175
+ check
176
+ </span>
177
+ <span
178
+ class="rmd-list-item__text"
179
+ >
180
+ Option 1
181
+ </span>
182
+ </li>
183
+ `;
184
+
185
+ exports[`Select should allow the selected icon to appear after the option instead of before 2`] = `
186
+ <li
187
+ aria-selected="true"
188
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-menu-item--focused rmd-option rmd-option--icon rmd-option--selected"
189
+ id="option-:r31:"
190
+ role="option"
191
+ tabindex="-1"
192
+ >
193
+ <span
194
+ class="rmd-list-item__text"
195
+ >
196
+ Option 1
197
+ </span>
198
+ <span
199
+ aria-hidden="true"
200
+ class="rmd-icon rmd-icon--font material-icons rmd-icon--after rmd-list-item__addon rmd-option__icon"
201
+ >
202
+ check
203
+ </span>
204
+ </li>
205
+ `;
206
+
207
+ exports[`Select should apply the correct styling, HTMLAttributes, and allow a ref 1`] = `
208
+ <div
209
+ aria-activedescendant=""
210
+ aria-controls="combobox-popup-:r3:"
211
+ aria-expanded="false"
212
+ aria-haspopup="listbox"
213
+ aria-labelledby="select-label-:r2:"
214
+ class="rmd-text-field-container rmd-text-field-container--outline rmd-text-field-container--hoverable rmd-text-field-container--label rmd-text-field-container--outline-right rmd-select-container"
215
+ id="select-:r0:"
216
+ role="combobox"
217
+ tabindex="0"
218
+ >
219
+ <div
220
+ class="rmd-box rmd-box--wrap rmd-selected-option rmd-text-field"
221
+ data-testid="selected"
222
+ />
223
+ <input
224
+ aria-hidden="true"
225
+ class="rmd-select rmd-select--outline rmd-text-field"
226
+ id="select-value-:r1:"
227
+ placeholder=" "
228
+ tabindex="-1"
229
+ type="text"
230
+ value=""
231
+ />
232
+ <span
233
+ class="rmd-label rmd-label--floating"
234
+ id="select-label-:r2:"
235
+ >
236
+ Select
237
+ </span>
238
+ <span
239
+ class="rmd-text-field-addon rmd-text-field-addon--after rmd-text-field-addon--presentational"
240
+ >
241
+ <span
242
+ aria-hidden="true"
243
+ class="rmd-icon rmd-icon--font material-icons rmd-icon-rotator rmd-icon-rotator--animate"
244
+ >
245
+ arrow_drop_down
246
+ </span>
247
+ </span>
248
+ </div>
249
+ `;
250
+
251
+ exports[`Select should apply the correct styling, HTMLAttributes, and allow a ref 2`] = `
252
+ <div
253
+ aria-activedescendant=""
254
+ aria-controls="combobox-popup-:r3:"
255
+ aria-expanded="false"
256
+ aria-haspopup="listbox"
257
+ aria-labelledby="select-label-:r2:"
258
+ class="rmd-text-field-container rmd-text-field-container--outline rmd-text-field-container--hoverable rmd-text-field-container--label rmd-text-field-container--outline-right rmd-select-container custom-class-name"
259
+ id="select-:r0:"
260
+ role="combobox"
261
+ style="color: white;"
262
+ tabindex="0"
263
+ >
264
+ <div
265
+ class="rmd-box rmd-box--wrap rmd-selected-option rmd-text-field"
266
+ data-testid="selected"
267
+ />
268
+ <input
269
+ aria-hidden="true"
270
+ class="rmd-select rmd-select--outline rmd-text-field"
271
+ id="select-value-:r1:"
272
+ placeholder=" "
273
+ tabindex="-1"
274
+ type="text"
275
+ value=""
276
+ />
277
+ <span
278
+ class="rmd-label rmd-label--floating"
279
+ id="select-label-:r2:"
280
+ >
281
+ Select
282
+ </span>
283
+ <span
284
+ class="rmd-text-field-addon rmd-text-field-addon--after rmd-text-field-addon--presentational"
285
+ >
286
+ <span
287
+ aria-hidden="true"
288
+ class="rmd-icon rmd-icon--font material-icons rmd-icon-rotator rmd-icon-rotator--animate"
289
+ >
290
+ arrow_drop_down
291
+ </span>
292
+ </span>
293
+ </div>
294
+ `;
295
+
296
+ exports[`Select should automatically pull options from the children and update when selected 1`] = `
297
+ <div
298
+ aria-labelledby="select-label-:r8:"
299
+ class="rmd-menu rmd-menu--elevated"
300
+ id="combobox-popup-:r9:"
301
+ role="listbox"
302
+ style="position: fixed; transform-origin: 50% 0; left: 16px; top: 0px; min-width: 0;"
303
+ tabindex="-1"
304
+ >
305
+ <ul
306
+ class="rmd-list"
307
+ role="none"
308
+ >
309
+ <li
310
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-menu-item--focused rmd-option rmd-option--icon"
311
+ id="option-:rc:"
312
+ role="option"
313
+ tabindex="-1"
314
+ >
315
+ <span
316
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
317
+ />
318
+ <span
319
+ class="rmd-list-item__text"
320
+ >
321
+ Option 1
322
+ </span>
323
+ </li>
324
+ <li
325
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
326
+ id="option-:re:"
327
+ role="option"
328
+ tabindex="-1"
329
+ >
330
+ <span
331
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
332
+ />
333
+ <span
334
+ class="rmd-list-item__text"
335
+ >
336
+ Option 2
337
+ </span>
338
+ </li>
339
+ <li
340
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
341
+ id="option-:rg:"
342
+ role="option"
343
+ tabindex="-1"
344
+ >
345
+ <span
346
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
347
+ />
348
+ <span
349
+ class="rmd-list-item__text"
350
+ >
351
+ Option 3
352
+ </span>
353
+ </li>
354
+ <li
355
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
356
+ id="option-:ri:"
357
+ role="option"
358
+ tabindex="-1"
359
+ >
360
+ <span
361
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
362
+ />
363
+ <span
364
+ class="rmd-list-item__text"
365
+ >
366
+ Option 4
367
+ </span>
368
+ </li>
369
+ </ul>
370
+ </div>
371
+ `;
372
+
373
+ exports[`Select should automatically pull options from the children and update when selected 2`] = `
374
+ <div
375
+ aria-labelledby="select-label-:r8:"
376
+ class="rmd-menu rmd-menu--elevated"
377
+ id="combobox-popup-:r9:"
378
+ role="listbox"
379
+ style="position: fixed; transform-origin: 50% 0; left: 16px; top: 0px; min-width: 0;"
380
+ tabindex="-1"
381
+ >
382
+ <ul
383
+ class="rmd-list"
384
+ role="none"
385
+ >
386
+ <li
387
+ aria-selected="true"
388
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-menu-item--focused rmd-option rmd-option--icon rmd-option--selected"
389
+ id="option-:rk:"
390
+ role="option"
391
+ tabindex="-1"
392
+ >
393
+ <span
394
+ aria-hidden="true"
395
+ class="rmd-icon rmd-icon--font material-icons rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon"
396
+ >
397
+ check
398
+ </span>
399
+ <span
400
+ class="rmd-list-item__text"
401
+ >
402
+ Option 1
403
+ </span>
404
+ </li>
405
+ <li
406
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
407
+ id="option-:rm:"
408
+ role="option"
409
+ tabindex="-1"
410
+ >
411
+ <span
412
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
413
+ />
414
+ <span
415
+ class="rmd-list-item__text"
416
+ >
417
+ Option 2
418
+ </span>
419
+ </li>
420
+ <li
421
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
422
+ id="option-:ro:"
423
+ role="option"
424
+ tabindex="-1"
425
+ >
426
+ <span
427
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
428
+ />
429
+ <span
430
+ class="rmd-list-item__text"
431
+ >
432
+ Option 3
433
+ </span>
434
+ </li>
435
+ <li
436
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item rmd-option rmd-option--icon"
437
+ id="option-:rq:"
438
+ role="option"
439
+ tabindex="-1"
440
+ >
441
+ <span
442
+ class="rmd-icon--before rmd-list-item__addon rmd-list-item__addon--before rmd-option__icon rmd-icon rmd-icon--svg"
443
+ />
444
+ <span
445
+ class="rmd-list-item__text"
446
+ >
447
+ Option 4
448
+ </span>
449
+ </li>
450
+ </ul>
451
+ </div>
452
+ `;
453
+
454
+ exports[`Select should include the leftAddon of the selected option unless disableOptionAddon is true 1`] = `
455
+ <div
456
+ class="rmd-box rmd-box--wrap rmd-selected-option rmd-text-field"
457
+ data-testid="selected"
458
+ >
459
+ <span
460
+ aria-hidden="true"
461
+ class="rmd-avatar rmd-avatar--icon"
462
+ data-testid="avatar"
463
+ >
464
+ A
465
+ </span>
466
+ <span
467
+ class="rmd-nowrap rmd-ellipsis"
468
+ >
469
+ Avatar
470
+ </span>
471
+ </div>
472
+ `;
473
+
474
+ exports[`Select should include the leftAddon of the selected option unless disableOptionAddon is true 2`] = `
475
+ <div
476
+ class="rmd-box rmd-box--wrap rmd-selected-option rmd-text-field"
477
+ data-testid="selected"
478
+ >
479
+ <span
480
+ aria-hidden="true"
481
+ class="rmd-icon rmd-icon--font material-icons"
482
+ data-testid="icon"
483
+ >
484
+ favorite
485
+ </span>
486
+ <span
487
+ class="rmd-nowrap rmd-ellipsis"
488
+ >
489
+ Icon
490
+ </span>
491
+ </div>
492
+ `;
@@ -0,0 +1,195 @@
1
+ import { describe, expect, it, jest } from "@jest/globals";
2
+ import { useRef, useState, type ReactElement } from "react";
3
+ import { act } from "react-dom/test-utils";
4
+ import { Button } from "../../button/Button.js";
5
+ import { rmdRender, screen, userEvent } from "../../test-utils/index.js";
6
+ import { useFormReset } from "../useFormReset.js";
7
+
8
+ interface TestImplementationProps {
9
+ form?: string;
10
+ defaultValue?: string;
11
+ }
12
+
13
+ function TestImplementation({
14
+ form,
15
+ defaultValue = "Default Value",
16
+ }: TestImplementationProps): ReactElement {
17
+ const elementRef = useRef<HTMLInputElement>(null);
18
+ const [value, setValue] = useState(defaultValue);
19
+ useFormReset({
20
+ form,
21
+ elementRef,
22
+ defaultValue,
23
+ });
24
+
25
+ return (
26
+ <label>
27
+ Input
28
+ <input
29
+ ref={elementRef}
30
+ form={form}
31
+ type="text"
32
+ value={value}
33
+ onChange={(event) => setValue(event.currentTarget.value)}
34
+ />
35
+ </label>
36
+ );
37
+ }
38
+
39
+ describe("useFormReset", () => {
40
+ it("should reset the value when a form is reset", async () => {
41
+ const user = userEvent.setup();
42
+ const onReset = jest.fn();
43
+ function Test(): ReactElement {
44
+ return (
45
+ <form name="form" onReset={onReset}>
46
+ <TestImplementation />
47
+ <Button type="reset">Reset</Button>
48
+ </form>
49
+ );
50
+ }
51
+
52
+ rmdRender(<Test />);
53
+
54
+ const form = screen.getByRole<HTMLFormElement>("form");
55
+ const reset = screen.getByRole("button", { name: "Reset" });
56
+ const input = screen.getByRole("textbox", { name: "Input" });
57
+
58
+ expect(input).toHaveValue("Default Value");
59
+ await user.click(reset);
60
+ expect(onReset).toHaveBeenCalledTimes(1);
61
+
62
+ await user.clear(input);
63
+ await user.type(input, "New Value");
64
+ expect(input).toHaveValue("New Value");
65
+ await user.click(reset);
66
+ expect(onReset).toHaveBeenCalledTimes(2);
67
+ expect(input).toHaveValue("Default Value");
68
+
69
+ await user.clear(input);
70
+ await user.type(input, "New Value");
71
+ expect(input).toHaveValue("New Value");
72
+ act(() => {
73
+ form.reset();
74
+ });
75
+ expect(onReset).toHaveBeenCalledTimes(3);
76
+ expect(input).toHaveValue("Default Value");
77
+ });
78
+
79
+ it("should be able to find a form by using the form prop", async () => {
80
+ const user = userEvent.setup();
81
+ function Test(): ReactElement {
82
+ return (
83
+ <>
84
+ <TestImplementation form="main-form" />
85
+ <form id="main-form" name="form">
86
+ <Button type="reset">Reset</Button>
87
+ </form>
88
+ </>
89
+ );
90
+ }
91
+
92
+ rmdRender(<Test />);
93
+
94
+ const reset = screen.getByRole("button", { name: "Reset" });
95
+ const input = screen.getByRole("textbox", { name: "Input" });
96
+ await user.clear(input);
97
+ await user.type(input, "New Value");
98
+ expect(input).toHaveValue("New Value");
99
+ await user.click(reset);
100
+ expect(input).toHaveValue("Default Value");
101
+ });
102
+
103
+ it("should do nothing if an elementRef was not set", async () => {
104
+ const user = userEvent.setup();
105
+ const onReset = jest.fn();
106
+
107
+ function Broken(): ReactElement {
108
+ const elementRef = useRef<HTMLInputElement>(null);
109
+ const [value, setValue] = useState("Default Value");
110
+ useFormReset({
111
+ elementRef,
112
+ defaultValue: "Default Value",
113
+ });
114
+
115
+ return (
116
+ <label>
117
+ Input
118
+ <input
119
+ type="text"
120
+ value={value}
121
+ onChange={(event) => setValue(event.currentTarget.value)}
122
+ />
123
+ </label>
124
+ );
125
+ }
126
+
127
+ function Test(): ReactElement {
128
+ return (
129
+ <form name="form" onReset={onReset}>
130
+ <Broken />
131
+ <Button type="reset">Reset</Button>
132
+ </form>
133
+ );
134
+ }
135
+
136
+ rmdRender(<Test />);
137
+ const reset = screen.getByRole("button", { name: "Reset" });
138
+ const input = screen.getByRole("textbox", { name: "Input" });
139
+
140
+ await user.clear(input);
141
+ await user.type(input, "New Value");
142
+ expect(input).toHaveValue("New Value");
143
+
144
+ await user.click(reset);
145
+ expect(input).toHaveValue("New Value");
146
+ });
147
+
148
+ it("should do nothing if a form cannot be found", async () => {
149
+ const user = userEvent.setup();
150
+ const onReset = jest.fn();
151
+
152
+ function Broken(): ReactElement {
153
+ const elementRef = useRef<HTMLInputElement>(null);
154
+ const [value, setValue] = useState("Default Value");
155
+ useFormReset({
156
+ elementRef,
157
+ defaultValue: "Default Value",
158
+ });
159
+
160
+ return (
161
+ <label>
162
+ Input
163
+ <input
164
+ ref={elementRef}
165
+ type="text"
166
+ value={value}
167
+ onChange={(event) => setValue(event.currentTarget.value)}
168
+ />
169
+ </label>
170
+ );
171
+ }
172
+
173
+ function Test(): ReactElement {
174
+ return (
175
+ <>
176
+ <Broken />
177
+ <form name="form" onReset={onReset}>
178
+ <Button type="reset">Reset</Button>
179
+ </form>
180
+ </>
181
+ );
182
+ }
183
+
184
+ rmdRender(<Test />);
185
+ const reset = screen.getByRole("button", { name: "Reset" });
186
+ const input = screen.getByRole("textbox", { name: "Input" });
187
+
188
+ await user.clear(input);
189
+ await user.type(input, "New Value");
190
+ expect(input).toHaveValue("New Value");
191
+
192
+ await user.click(reset);
193
+ expect(input).toHaveValue("New Value");
194
+ });
195
+ });