@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,139 @@
1
+ "use client";
2
+ import { useRef } from "react";
3
+ import { isTypeEvent } from "../movement/utils.js";
4
+ import {
5
+ useCombobox,
6
+ type BaseComboboxOptions,
7
+ type ComboboxImplementation,
8
+ } from "./useCombobox.js";
9
+ import { isChangeableHTMLElement, triggerManualChangeEvent } from "./utils.js";
10
+
11
+ /**
12
+ * @remarks \@since 6.0.0
13
+ */
14
+ export interface EditableComboboxOptions<
15
+ ComboboxEl extends HTMLElement = HTMLInputElement,
16
+ PopupEl extends HTMLElement = HTMLElement,
17
+ > extends BaseComboboxOptions<ComboboxEl, PopupEl> {}
18
+
19
+ /**
20
+ * @remarks \@since 6.0.0
21
+ */
22
+ export interface EditableComboboxImplementation<
23
+ ComboboxEl extends HTMLElement = HTMLInputElement,
24
+ PopupEl extends HTMLElement = HTMLElement,
25
+ > extends ComboboxImplementation<ComboboxEl, PopupEl> {}
26
+
27
+ /**
28
+ * @remarks \@since 6.0.0
29
+ */
30
+ export function useEditableCombobox<
31
+ ComboboxEl extends HTMLElement = HTMLInputElement,
32
+ PopupEl extends HTMLElement = HTMLElement,
33
+ >(
34
+ options: EditableComboboxOptions<ComboboxEl, PopupEl> = {}
35
+ ): EditableComboboxImplementation<ComboboxEl, PopupEl> {
36
+ const focusFirst = useRef(false);
37
+ const { getMenuProps, ...combobox } = useCombobox({
38
+ ...options,
39
+ loopable: true,
40
+ searchable: false,
41
+ isNegativeOneAllowed: true,
42
+ getEnterDefaultFocusedIndex(options) {
43
+ const { focusLast, focusables, currentFocusIndex } = options;
44
+ if (focusFirst.current) {
45
+ focusFirst.current = false;
46
+ return 0;
47
+ }
48
+
49
+ if (focusLast) {
50
+ return focusables.length - 1;
51
+ }
52
+
53
+ return currentFocusIndex;
54
+ },
55
+ extendKeyDown(movementData) {
56
+ const {
57
+ event,
58
+ show,
59
+ hide,
60
+ visible,
61
+ currentFocusIndex,
62
+ setActiveDescendantId,
63
+ } = movementData;
64
+
65
+ const resetFocus = (): void => {
66
+ currentFocusIndex.current = -1;
67
+ setActiveDescendantId("");
68
+ };
69
+
70
+ switch (event.key) {
71
+ case "Escape":
72
+ if (!visible && isChangeableHTMLElement(event.currentTarget)) {
73
+ event.preventDefault();
74
+ event.stopPropagation();
75
+ triggerManualChangeEvent(event.currentTarget, "");
76
+ }
77
+ break;
78
+ case "Home":
79
+ case "End":
80
+ // do not attempt to jump to the start or end of the listbox so
81
+ // natural text editing occurs
82
+ event.stopPropagation();
83
+ if (visible) {
84
+ resetFocus();
85
+ }
86
+ break;
87
+ case "ArrowLeft":
88
+ case "ArrowRight":
89
+ if (visible) {
90
+ resetFocus();
91
+ }
92
+ break;
93
+ case "ArrowUp":
94
+ // Note: The non-altKey version is handled in the `useCombobox` hook
95
+ //
96
+ // if the popup is available and the altKey was pressed, return focus
97
+ // to the combobox without closing. If the focus was already on the
98
+ // combobox, hide the popup
99
+ if (visible && event.altKey) {
100
+ event.preventDefault();
101
+ event.stopPropagation();
102
+
103
+ if (currentFocusIndex.current !== -1) {
104
+ resetFocus();
105
+ } else {
106
+ hide();
107
+ }
108
+ }
109
+ break;
110
+ case "ArrowDown":
111
+ // if the popup is available, display the popup keep the focus on the
112
+ // combobox if the altKey was pressed. Otherwise, move focus into the
113
+ // listbox
114
+ if (!visible) {
115
+ event.preventDefault();
116
+ event.stopPropagation();
117
+ focusFirst.current = !event.altKey;
118
+ show();
119
+ }
120
+ break;
121
+ default:
122
+ if (isTypeEvent(event)) {
123
+ show();
124
+ resetFocus();
125
+ }
126
+ }
127
+ },
128
+ });
129
+
130
+ return {
131
+ ...combobox,
132
+ getMenuProps(props) {
133
+ return {
134
+ preventOverlap: true,
135
+ ...getMenuProps(props),
136
+ };
137
+ },
138
+ };
139
+ }
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { useEffect, type RefObject } from "react";
3
+ import {
4
+ triggerManualChangeEvent,
5
+ type ChangeableHTMLElement,
6
+ } from "./utils.js";
7
+
8
+ /**
9
+ * @remarks \@since 6.0.0
10
+ * @internal
11
+ */
12
+ export interface FormResetOptions {
13
+ form?: string;
14
+ elementRef: RefObject<ChangeableHTMLElement>;
15
+ defaultValue: string;
16
+ }
17
+
18
+ /**
19
+ * @remarks \@since 6.0.0
20
+ * @internal
21
+ */
22
+ export function useFormReset(options: FormResetOptions): void {
23
+ const { form, elementRef, defaultValue } = options;
24
+
25
+ useEffect(() => {
26
+ const element = elementRef.current;
27
+ if (!element) {
28
+ return;
29
+ }
30
+
31
+ const formElement =
32
+ (form && document.getElementById(form)) ||
33
+ element.closest<HTMLFormElement>("form") ||
34
+ null;
35
+ if (!formElement) {
36
+ return;
37
+ }
38
+
39
+ const handleReset = (): void => {
40
+ triggerManualChangeEvent(element, defaultValue);
41
+ };
42
+
43
+ formElement.addEventListener("reset", handleReset);
44
+ return () => {
45
+ formElement.removeEventListener("reset", handleReset);
46
+ };
47
+ }, [defaultValue, elementRef, form]);
48
+ }
@@ -17,12 +17,14 @@ export interface ListboxContext {
17
17
  */
18
18
  currentValue: string | number | null;
19
19
 
20
+ selectedIconAfter: boolean;
20
21
  disableSelectedIcon: boolean;
21
22
  }
22
23
 
23
24
  const context = createContext<ListboxContext>({
24
25
  inputRef: { current: null },
25
26
  currentValue: null,
27
+ selectedIconAfter: false,
26
28
  disableSelectedIcon: false,
27
29
  });
28
30
 
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import {
3
+ useCombobox,
4
+ type BaseComboboxOptions,
5
+ type ComboboxImplementation,
6
+ } from "./useCombobox.js";
7
+
8
+ /**
9
+ * @remarks \@since 6.0.0
10
+ */
11
+ export interface SelectComboboxOptions<
12
+ ComboboxEl extends HTMLElement = HTMLInputElement,
13
+ PopupEl extends HTMLElement = HTMLElement,
14
+ > extends BaseComboboxOptions<ComboboxEl, PopupEl> {
15
+ value: string;
16
+ values: readonly string[];
17
+ }
18
+
19
+ /**
20
+ * @remarks \@since 6.0.0
21
+ */
22
+ export interface SelectComboboxImplementation<
23
+ ComboboxEl extends HTMLElement = HTMLInputElement,
24
+ PopupEl extends HTMLElement = HTMLElement,
25
+ > extends ComboboxImplementation<ComboboxEl, PopupEl> {}
26
+
27
+ /**
28
+ * @remarks \@since 6.0.0
29
+ */
30
+ export function useSelectCombobox<
31
+ ComboboxEl extends HTMLElement = HTMLInputElement,
32
+ PopupEl extends HTMLElement = HTMLElement,
33
+ >(
34
+ options: SelectComboboxOptions<ComboboxEl, PopupEl>
35
+ ): SelectComboboxImplementation<ComboboxEl, PopupEl> {
36
+ const { value, values, ...comboboxOptions } = options;
37
+
38
+ return useCombobox({
39
+ ...comboboxOptions,
40
+ searchable: true,
41
+ extendKeyDown(movementData) {
42
+ const { event, show, focusLast, visible } = movementData;
43
+ if (visible) {
44
+ return;
45
+ }
46
+
47
+ switch (event.key) {
48
+ case " ":
49
+ case "Home":
50
+ case "End":
51
+ event.preventDefault();
52
+ event.stopPropagation();
53
+ focusLast.current = event.key === "End";
54
+ show();
55
+ break;
56
+ }
57
+ },
58
+ getEnterDefaultFocusedIndex(options) {
59
+ const { focusLast } = options;
60
+ if (focusLast && !value) {
61
+ return values.length - 1;
62
+ }
63
+
64
+ return Math.max(
65
+ 0,
66
+ values.findIndex((option) => option === value)
67
+ );
68
+ },
69
+ });
70
+ }
package/src/form/utils.ts CHANGED
@@ -54,10 +54,23 @@ export function tryToSubmitRelatedForm<E extends HTMLElement>(
54
54
  * @internal
55
55
  * @remarks \@since 6.0.0
56
56
  */
57
- export type ChangeableHTMLElement =
58
- | HTMLInputElement
59
- | HTMLTextAreaElement
60
- | HTMLSelectElement;
57
+ export type EditableHTMLElement = HTMLInputElement | HTMLTextAreaElement;
58
+
59
+ /**
60
+ * @internal
61
+ * @remarks \@since 6.0.0
62
+ */
63
+ export type ChangeableHTMLElement = EditableHTMLElement | HTMLSelectElement;
64
+
65
+ /**
66
+ * @internal
67
+ * @remarks \@since 6.0.0
68
+ */
69
+ export function isChangeableHTMLElement(
70
+ element: Element | null
71
+ ): element is ChangeableHTMLElement {
72
+ return !!element && "value" in element;
73
+ }
61
74
 
62
75
  /**
63
76
  * This is used to trigger a change event for a form element.
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { nanoid } from "nanoid";
2
2
  export * from "./CoreProviders.js";
3
3
  export * from "./NoSsr.js";
4
+ export * from "./RootHtml.js";
4
5
  export * from "./SsrProvider.js";
5
6
  export * from "./app-bar/AppBar.js";
6
7
  export * from "./app-bar/AppBarTitle.js";
@@ -69,6 +70,7 @@ export * from "./form/Option.js";
69
70
  export * from "./form/Password.js";
70
71
  export * from "./form/Radio.js";
71
72
  export * from "./form/Select.js";
73
+ export * from "./form/SelectedOption.js";
72
74
  export * from "./form/Slider.js";
73
75
  export * from "./form/SliderContainer.js";
74
76
  export * from "./form/SliderMark.js";
@@ -95,12 +97,18 @@ export * from "./form/switchStyles.js";
95
97
  export * from "./form/textFieldStyles.js";
96
98
  export * from "./form/types.js";
97
99
  export * from "./form/useCheckboxGroup.js";
100
+ export * from "./form/useCombobox.js";
101
+ export * from "./form/useEditableCombobox.js";
98
102
  export * from "./form/useFileUpload.js";
103
+ export * from "./form/useFormReset.js";
104
+ export * from "./form/useListboxProvider.js";
99
105
  export * from "./form/useNumberField.js";
100
106
  export * from "./form/useRadioGroup.js";
101
107
  export * from "./form/useRangeSlider.js";
108
+ export * from "./form/useSelectCombobox.js";
102
109
  export * from "./form/useSlider.js";
103
110
  export * from "./form/useTextField.js";
111
+ export * from "./form/utils.js";
104
112
  export * from "./form/validation.js";
105
113
  export * from "./hoverMode/useHoverMode.js";
106
114
  export * from "./hoverMode/useHoverModeProvider.js";
@@ -188,6 +196,11 @@ export * from "./responsive-item/styles.js";
188
196
  export * from "./scroll/ScrollLock.js";
189
197
  export * from "./scroll/getScrollbarWidth.js";
190
198
  export * from "./scroll/useScrollLock.js";
199
+ export * from "./searching/caseInsensitive.js";
200
+ export * from "./searching/fuzzy.js";
201
+ export * from "./searching/toSearchQuery.js";
202
+ export * from "./searching/types.js";
203
+ export * from "./searching/utils.js";
191
204
  export * from "./segmented-button/SegmentedButton.js";
192
205
  export * from "./segmented-button/SegmentedButtonContainer.js";
193
206
  export * from "./segmented-button/segmentedButtonContainerStyles.js";
@@ -253,6 +266,7 @@ export * from "./theme/utils.js";
253
266
  export * from "./tooltip/Tooltip.js";
254
267
  export * from "./tooltip/TooltipHoverModeProvider.js";
255
268
  export * from "./tooltip/constants.js";
269
+ export * from "./tooltip/tooltipStyles.js";
256
270
  export * from "./tooltip/useTooltip.js";
257
271
  export * from "./transition/CSSTransition.js";
258
272
  export * from "./transition/Collapse.js";
@@ -314,7 +328,6 @@ export * from "./utils/RenderRecursively.js";
314
328
  export * from "./utils/alphaNumericSort.js";
315
329
  export * from "./utils/applyRef.js";
316
330
  export * from "./utils/bem.js";
317
- export * from "./utils/filters.js";
318
331
  export * from "./utils/getClientPosition.js";
319
332
  export * from "./utils/getMiddleOfRange.js";
320
333
  export * from "./utils/getPercentage.js";
package/src/menu/Menu.tsx CHANGED
@@ -26,6 +26,7 @@ import {
26
26
  } from "../transition/useScaleTransition.js";
27
27
  import { type LabelRequiredForA11y, type PropsWithRef } from "../types.js";
28
28
  import { useEnsuredId } from "../useEnsuredId.js";
29
+ import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
29
30
  import {
30
31
  MenuConfigurationProvider,
31
32
  useMenuConfiguration,
@@ -449,7 +450,7 @@ export const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(
449
450
  },
450
451
  });
451
452
 
452
- const { ref, style, callbacks } = useFixedPositioning({
453
+ const { ref, style, callbacks, updateStyle } = useFixedPositioning({
453
454
  ...transitionOptions,
454
455
  onEnter,
455
456
  style: isSheet ? propStyle : menuStyle,
@@ -539,6 +540,13 @@ export const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(
539
540
  window.removeEventListener("click", callback);
540
541
  };
541
542
  }, [disableHoverMode, role, visible]);
543
+ useIsomorphicLayoutEffect(() => {
544
+ if (!visible) {
545
+ return;
546
+ }
547
+
548
+ updateStyle();
549
+ }, [updateStyle, children, visible]);
542
550
 
543
551
  return (
544
552
  <MenuConfigurationProvider
@@ -0,0 +1,54 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`useContextMenu should work as expected 1`] = `
4
+ <div
5
+ aria-label="Context Menu"
6
+ class="rmd-menu rmd-menu--elevated"
7
+ id="menu-:r0:"
8
+ role="menu"
9
+ style="left: 300px; top: 600px; position: fixed; transform-origin: 0 0;"
10
+ tabindex="-1"
11
+ >
12
+ <ul
13
+ class="rmd-list"
14
+ role="none"
15
+ >
16
+ <li
17
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item"
18
+ id="menuitem-:r1:"
19
+ role="menuitem"
20
+ tabindex="-1"
21
+ >
22
+ <span
23
+ class="rmd-list-item__text"
24
+ >
25
+ Cut
26
+ </span>
27
+ </li>
28
+ <li
29
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item"
30
+ id="menuitem-:r2:"
31
+ role="menuitem"
32
+ tabindex="-1"
33
+ >
34
+ <span
35
+ class="rmd-list-item__text"
36
+ >
37
+ Copy
38
+ </span>
39
+ </li>
40
+ <li
41
+ class="rmd-list-item rmd-list-item--normal rmd-interaction-surface rmd-menu-item"
42
+ id="menuitem-:r3:"
43
+ role="menuitem"
44
+ tabindex="-1"
45
+ >
46
+ <span
47
+ class="rmd-list-item__text"
48
+ >
49
+ Paste
50
+ </span>
51
+ </li>
52
+ </ul>
53
+ </div>
54
+ `;
@@ -0,0 +1,41 @@
1
+ import { describe, expect, it } from "@jest/globals";
2
+ import { type ReactElement } from "react";
3
+ import { fireEvent, rmdRender, screen } from "../../test-utils/index.js";
4
+ import { Menu } from "../Menu.js";
5
+ import { MenuItem } from "../MenuItem.js";
6
+ import { useContextMenu } from "../useContextMenu.js";
7
+
8
+ function Test(): ReactElement {
9
+ const { menuProps, onContextMenu } = useContextMenu();
10
+ return (
11
+ <>
12
+ <label>
13
+ Example
14
+ <textarea onContextMenu={onContextMenu} />
15
+ </label>
16
+ <Menu {...menuProps}>
17
+ <MenuItem>Cut</MenuItem>
18
+ <MenuItem>Copy</MenuItem>
19
+ <MenuItem>Paste</MenuItem>
20
+ </Menu>
21
+ </>
22
+ );
23
+ }
24
+
25
+ describe("useContextMenu", () => {
26
+ // I should add some real tests later...
27
+ it("should work as expected", async () => {
28
+ rmdRender(<Test />);
29
+ const textarea = screen.getByRole("textbox", { name: "Example" });
30
+
31
+ fireEvent.contextMenu(textarea, {
32
+ clientX: 300,
33
+ clientY: 600,
34
+ });
35
+
36
+ const menu = await screen.findByRole("menu", { name: "Context Menu" });
37
+ // mostly verifying that the useFixedPositioning allows for the initialX and
38
+ // initialY set by clientX and clientY
39
+ expect(menu).toMatchSnapshot();
40
+ });
41
+ });
@@ -71,15 +71,15 @@ const noop = (): void => {
71
71
  * const { menuProps, onContextMenu } = useContextMenu();
72
72
  *
73
73
  * return (
74
- * <div onContextMenu={onContextMenu}>
75
- * <textarea />
74
+ * <>
75
+ * <textarea onContextMenu={onContextMenu} />
76
76
  * <Menu {...menuProps}>
77
77
  * <MenuItem>Cut</MenuItem>
78
78
  * <MenuItem>Copy</MenuItem>
79
79
  * <MenuItem>Paste</MenuItem>
80
80
  * <MenuItem>Undo</MenuItem>
81
81
  * </Menu>
82
- * </div>
82
+ * </>
83
83
  * );
84
84
  * }
85
85
  * ```
@@ -30,6 +30,27 @@ import type {
30
30
  */
31
31
  export type TabIndexBehavior = "roving" | "virtual";
32
32
 
33
+ /**
34
+ * This should be used for specific widgets that should not include all
35
+ * focusable elements and instead only specific elements.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const getExpansionPanelsOnly: GetFocusableElements = (container) =>
40
+ * [...container.querySelectorAll(".rmd-expansion-panel__button")];
41
+ *
42
+ * const getTreeItemsOnly: GetFocusableElements = (container) =>
43
+ * [...container.querySelectorAll("[role='treeitem']")];
44
+ * ```
45
+ *
46
+ * @defaultValue `getFocusableElements`
47
+ * @see the default `getFocusableElements` function.
48
+ */
49
+ export type GetFocusableElements = (
50
+ container: HTMLElement,
51
+ programmatic: boolean
52
+ ) => readonly HTMLElement[];
53
+
33
54
  /**
34
55
  * @remarks \@since 5.0.0
35
56
  */
@@ -154,7 +175,15 @@ export type GetDefaultFocusedIndex = (options: FocusableIndexOptions) => number;
154
175
  * @remarks \@since 6.0.0
155
176
  * @internal
156
177
  */
157
- export interface FocusChangeEvent {
178
+ export type ExtendKeyDown<E extends HTMLElement> = (
179
+ movementData: KeyboardMovementExtensionData<E>
180
+ ) => void;
181
+
182
+ /**
183
+ * @remarks \@since 6.0.0
184
+ * @internal
185
+ */
186
+ export interface KeyboardMovementFocusChangeEvent {
158
187
  index: number;
159
188
  element: HTMLElement;
160
189
  }
@@ -163,8 +192,8 @@ export interface FocusChangeEvent {
163
192
  * @remarks \@since 6.0.0
164
193
  * @internal
165
194
  */
166
- export type KeyboardMovementFocusChangeEvent = (
167
- event: FocusChangeEvent
195
+ export type KeyboardMovementFocusChangeEventHandler = (
196
+ event: KeyboardMovementFocusChangeEvent
168
197
  ) => void;
169
198
 
170
199
  /**
@@ -193,15 +222,18 @@ export interface KeyboardMovementProviderOptions<E extends HTMLElement>
193
222
  onFocus?(event: FocusEvent<E>): void;
194
223
  onKeyDown?(event: KeyboardEvent<E>): void;
195
224
 
225
+ /** @defaultValue `false` */
226
+ disabled?: boolean;
227
+
196
228
  /**
197
229
  * This is used to implement custom keyboard movement for the `keydown` event.
198
230
  */
199
- extendKeyDown?(movementData: KeyboardMovementExtensionData<E>): void;
231
+ extendKeyDown?: ExtendKeyDown<E>;
200
232
 
201
233
  /**
202
234
  * Triggered whenever the focus changes.
203
235
  */
204
- onFocusChange?: KeyboardMovementFocusChangeEvent;
236
+ onFocusChange?: KeyboardMovementFocusChangeEventHandler;
205
237
 
206
238
  /**
207
239
  * From what I've understood so far, programmatically focusable elements
@@ -212,32 +244,24 @@ export interface KeyboardMovementProviderOptions<E extends HTMLElement>
212
244
  */
213
245
  programmatic?: boolean;
214
246
 
215
- /**
216
- * This should be used for specific widgets that should not include all
217
- * focusable elements and instead only specific elements.
218
- *
219
- * @example
220
- * ```ts
221
- * const getExpansionPanelsOnly = (container: HTMLElement): readonly HTMLElement[] =>
222
- * container.querySelectorAll(".rmd-expansion-panel__button");
223
- *
224
- * const getTreeItemsOnly = (container: HTMLElement): readonly HTMLElement[] =>
225
- * container.querySelectorAll("[role='treeitem']");
226
- * ```
227
- *
228
- * @defaultValue `getFocusableElements`
229
- * @see the default `getFocusableElements` function.
230
- */
231
- getFocusableElements?(
232
- container: HTMLElement,
233
- programmatic: boolean
234
- ): readonly HTMLElement[];
247
+ /** @see {@link GetFocusableElements} */
248
+ getFocusableElements?: GetFocusableElements;
235
249
 
236
250
  /**
237
251
  * This can be used to set the initial focus index whenever the container
238
252
  * element is first focused or the focus index is `-1` on other focus events.
239
253
  */
240
254
  getDefaultFocusedIndex?: GetDefaultFocusedIndex;
255
+
256
+ /**
257
+ * This was added to support editable combobox behavior. As the user types or
258
+ * uses native input keyboard behavior, the focus index should be reset to
259
+ * `-1` so that the next "ArrowDown" event focuses the first option again
260
+ * instead of the last selected one.
261
+ *
262
+ * @defaultValue `false`
263
+ */
264
+ isNegativeOneAllowed?: boolean;
241
265
  }
242
266
 
243
267
  /**
@@ -274,5 +298,6 @@ export interface KeyboardMovementProviderImplementation<E extends HTMLElement> {
274
298
  movementProps: Readonly<KeyboardMovementProps<E>>;
275
299
  movementContext: Readonly<KeyboardMovementContext>;
276
300
  currentFocusIndex: NonNullMutableRef<number>;
301
+ activeDescendantId: string;
277
302
  setActiveDescendantId: UseStateSetter<string>;
278
303
  }