@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
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">39.93% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>129/323</span>
28
+ <span class='fraction'>485/485</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">91.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>33/36</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/2</span>
42
+ <span class='fraction'>10/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">39.93% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>129/323</span>
49
+ <span class='fraction'>485/485</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -386,7 +386,270 @@
386
386
  <a name='L321'></a><a href='#L321'>321</a>
387
387
  <a name='L322'></a><a href='#L322'>322</a>
388
388
  <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
552
+ <span class="cline-any cline-yes">1x</span>
553
+ <span class="cline-any cline-yes">1x</span>
554
+ <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">1x</span>
556
+ <span class="cline-any cline-yes">1x</span>
557
+ <span class="cline-any cline-yes">1x</span>
558
+ <span class="cline-any cline-yes">1x</span>
559
+ <span class="cline-any cline-yes">1x</span>
560
+ <span class="cline-any cline-yes">1x</span>
561
+ <span class="cline-any cline-yes">1x</span>
562
+ <span class="cline-any cline-yes">1x</span>
563
+ <span class="cline-any cline-yes">1x</span>
564
+ <span class="cline-any cline-yes">1x</span>
565
+ <span class="cline-any cline-yes">1x</span>
566
+ <span class="cline-any cline-yes">1x</span>
567
+ <span class="cline-any cline-yes">1x</span>
568
+ <span class="cline-any cline-yes">1x</span>
569
+ <span class="cline-any cline-yes">1x</span>
570
+ <span class="cline-any cline-yes">1x</span>
571
+ <span class="cline-any cline-yes">1x</span>
572
+ <span class="cline-any cline-yes">1x</span>
573
+ <span class="cline-any cline-yes">1x</span>
574
+ <span class="cline-any cline-yes">1x</span>
575
+ <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-yes">1x</span>
577
+ <span class="cline-any cline-yes">1x</span>
578
+ <span class="cline-any cline-yes">1x</span>
579
+ <span class="cline-any cline-yes">1x</span>
580
+ <span class="cline-any cline-yes">1x</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">1x</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
586
+ <span class="cline-any cline-yes">1x</span>
587
+ <span class="cline-any cline-yes">1x</span>
588
+ <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">1x</span>
590
+ <span class="cline-any cline-yes">1x</span>
591
+ <span class="cline-any cline-yes">1x</span>
592
+ <span class="cline-any cline-yes">1x</span>
593
+ <span class="cline-any cline-yes">62x</span>
594
+ <span class="cline-any cline-yes">62x</span>
595
+ <span class="cline-any cline-yes">1x</span>
596
+ <span class="cline-any cline-yes">1x</span>
597
+ <span class="cline-any cline-yes">1x</span>
598
+ <span class="cline-any cline-yes">1x</span>
599
+ <span class="cline-any cline-yes">1x</span>
600
+ <span class="cline-any cline-yes">28x</span>
601
+ <span class="cline-any cline-yes">28x</span>
602
+ <span class="cline-any cline-yes">28x</span>
603
+ <span class="cline-any cline-yes">28x</span>
604
+ <span class="cline-any cline-yes">28x</span>
605
+ <span class="cline-any cline-yes">28x</span>
606
+ <span class="cline-any cline-yes">1x</span>
607
+ <span class="cline-any cline-yes">1x</span>
608
+ <span class="cline-any cline-yes">1x</span>
609
+ <span class="cline-any cline-yes">1x</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-yes">1x</span>
612
+ <span class="cline-any cline-yes">1x</span>
613
+ <span class="cline-any cline-yes">1x</span>
614
+ <span class="cline-any cline-yes">1x</span>
615
+ <span class="cline-any cline-yes">1x</span>
616
+ <span class="cline-any cline-yes">1x</span>
617
+ <span class="cline-any cline-yes">1x</span>
618
+ <span class="cline-any cline-yes">1x</span>
619
+ <span class="cline-any cline-yes">1x</span>
620
+ <span class="cline-any cline-yes">1x</span>
621
+ <span class="cline-any cline-yes">1x</span>
622
+ <span class="cline-any cline-yes">1x</span>
623
+ <span class="cline-any cline-yes">1x</span>
624
+ <span class="cline-any cline-yes">1x</span>
625
+ <span class="cline-any cline-yes">1x</span>
626
+ <span class="cline-any cline-yes">1x</span>
627
+ <span class="cline-any cline-yes">1x</span>
628
+ <span class="cline-any cline-yes">1x</span>
629
+ <span class="cline-any cline-yes">1x</span>
630
+ <span class="cline-any cline-yes">1x</span>
631
+ <span class="cline-any cline-yes">1x</span>
632
+ <span class="cline-any cline-yes">1x</span>
633
+ <span class="cline-any cline-yes">1x</span>
634
+ <span class="cline-any cline-yes">1x</span>
635
+ <span class="cline-any cline-yes">1x</span>
636
+ <span class="cline-any cline-yes">1x</span>
637
+ <span class="cline-any cline-yes">1x</span>
638
+ <span class="cline-any cline-yes">1x</span>
639
+ <span class="cline-any cline-yes">1x</span>
640
+ <span class="cline-any cline-yes">1x</span>
641
+ <span class="cline-any cline-yes">1x</span>
642
+ <span class="cline-any cline-yes">1x</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
+ <span class="cline-any cline-yes">1x</span>
645
+ <span class="cline-any cline-yes">1x</span>
646
+ <span class="cline-any cline-yes">1x</span>
647
+ <span class="cline-any cline-yes">1x</span>
648
+ <span class="cline-any cline-yes">1x</span>
649
+ <span class="cline-any cline-yes">1x</span>
650
+ <span class="cline-any cline-yes">1x</span>
651
+ <span class="cline-any cline-yes">1x</span>
652
+ <span class="cline-any cline-yes">1x</span>
390
653
  <span class="cline-any cline-yes">1x</span>
391
654
  <span class="cline-any cline-yes">1x</span>
392
655
  <span class="cline-any cline-yes">1x</span>
@@ -408,8 +671,6 @@
408
671
  <span class="cline-any cline-yes">1x</span>
409
672
  <span class="cline-any cline-yes">1x</span>
410
673
  <span class="cline-any cline-yes">1x</span>
411
- <span class="cline-any cline-no">&nbsp;</span>
412
- <span class="cline-any cline-no">&nbsp;</span>
413
674
  <span class="cline-any cline-yes">1x</span>
414
675
  <span class="cline-any cline-yes">1x</span>
415
676
  <span class="cline-any cline-yes">1x</span>
@@ -517,229 +778,365 @@
517
778
  <span class="cline-any cline-yes">1x</span>
518
779
  <span class="cline-any cline-yes">1x</span>
519
780
  <span class="cline-any cline-yes">1x</span>
520
- <span class="cline-any cline-no">&nbsp;</span>
521
- <span class="cline-any cline-no">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-no">&nbsp;</span>
526
- <span class="cline-any cline-no">&nbsp;</span>
527
- <span class="cline-any cline-no">&nbsp;</span>
528
- <span class="cline-any cline-no">&nbsp;</span>
529
- <span class="cline-any cline-no">&nbsp;</span>
530
- <span class="cline-any cline-no">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-no">&nbsp;</span>
534
- <span class="cline-any cline-no">&nbsp;</span>
535
- <span class="cline-any cline-no">&nbsp;</span>
536
- <span class="cline-any cline-no">&nbsp;</span>
537
- <span class="cline-any cline-no">&nbsp;</span>
538
- <span class="cline-any cline-no">&nbsp;</span>
539
- <span class="cline-any cline-no">&nbsp;</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
- <span class="cline-any cline-no">&nbsp;</span>
542
- <span class="cline-any cline-no">&nbsp;</span>
543
- <span class="cline-any cline-no">&nbsp;</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
545
- <span class="cline-any cline-no">&nbsp;</span>
546
- <span class="cline-any cline-no">&nbsp;</span>
547
- <span class="cline-any cline-no">&nbsp;</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-no">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-no">&nbsp;</span>
554
- <span class="cline-any cline-no">&nbsp;</span>
555
- <span class="cline-any cline-no">&nbsp;</span>
556
- <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-no">&nbsp;</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
559
- <span class="cline-any cline-no">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-no">&nbsp;</span>
563
- <span class="cline-any cline-no">&nbsp;</span>
564
- <span class="cline-any cline-no">&nbsp;</span>
565
- <span class="cline-any cline-no">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-no">&nbsp;</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-no">&nbsp;</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-no">&nbsp;</span>
575
- <span class="cline-any cline-no">&nbsp;</span>
576
- <span class="cline-any cline-no">&nbsp;</span>
577
- <span class="cline-any cline-no">&nbsp;</span>
578
- <span class="cline-any cline-no">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
589
- <span class="cline-any cline-no">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
593
- <span class="cline-any cline-no">&nbsp;</span>
594
- <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-no">&nbsp;</span>
600
- <span class="cline-any cline-no">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-no">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
607
- <span class="cline-any cline-no">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-no">&nbsp;</span>
611
- <span class="cline-any cline-no">&nbsp;</span>
612
- <span class="cline-any cline-no">&nbsp;</span>
613
- <span class="cline-any cline-no">&nbsp;</span>
614
- <span class="cline-any cline-no">&nbsp;</span>
615
- <span class="cline-any cline-no">&nbsp;</span>
616
- <span class="cline-any cline-no">&nbsp;</span>
617
- <span class="cline-any cline-no">&nbsp;</span>
618
- <span class="cline-any cline-no">&nbsp;</span>
619
- <span class="cline-any cline-no">&nbsp;</span>
620
- <span class="cline-any cline-no">&nbsp;</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-no">&nbsp;</span>
630
- <span class="cline-any cline-no">&nbsp;</span>
631
- <span class="cline-any cline-no">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-no">&nbsp;</span>
635
- <span class="cline-any cline-no">&nbsp;</span>
636
- <span class="cline-any cline-no">&nbsp;</span>
637
- <span class="cline-any cline-no">&nbsp;</span>
638
- <span class="cline-any cline-no">&nbsp;</span>
639
- <span class="cline-any cline-no">&nbsp;</span>
640
- <span class="cline-any cline-no">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-no">&nbsp;</span>
644
- <span class="cline-any cline-no">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
- <span class="cline-any cline-no">&nbsp;</span>
651
- <span class="cline-any cline-no">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-no">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
656
- <span class="cline-any cline-no">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-no">&nbsp;</span>
659
- <span class="cline-any cline-no">&nbsp;</span>
660
- <span class="cline-any cline-no">&nbsp;</span>
661
- <span class="cline-any cline-no">&nbsp;</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-no">&nbsp;</span>
665
- <span class="cline-any cline-no">&nbsp;</span>
666
- <span class="cline-any cline-no">&nbsp;</span>
667
- <span class="cline-any cline-no">&nbsp;</span>
668
- <span class="cline-any cline-no">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-no">&nbsp;</span>
671
- <span class="cline-any cline-no">&nbsp;</span>
672
- <span class="cline-any cline-no">&nbsp;</span>
673
- <span class="cline-any cline-no">&nbsp;</span>
674
- <span class="cline-any cline-no">&nbsp;</span>
675
- <span class="cline-any cline-no">&nbsp;</span>
676
- <span class="cline-any cline-no">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-no">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
682
- <span class="cline-any cline-no">&nbsp;</span>
683
- <span class="cline-any cline-no">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
- <span class="cline-any cline-no">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-no">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-no">&nbsp;</span>
693
- <span class="cline-any cline-no">&nbsp;</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-no">&nbsp;</span>
697
- <span class="cline-any cline-no">&nbsp;</span>
698
- <span class="cline-any cline-no">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-no">&nbsp;</span>
702
- <span class="cline-any cline-no">&nbsp;</span>
703
- <span class="cline-any cline-no">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-no">&nbsp;</span>
706
- <span class="cline-any cline-no">&nbsp;</span>
707
- <span class="cline-any cline-no">&nbsp;</span>
708
- <span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-no">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-no">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type {
713
- AriaAttributes,
714
- FocusEventHandler,
715
- InputHTMLAttributes,
716
- KeyboardEventHandler,
717
- MouseEventHandler,
718
- Ref,
719
- RefCallback,
720
- RefObject,
781
+ <span class="cline-any cline-yes">1x</span>
782
+ <span class="cline-any cline-yes">1x</span>
783
+ <span class="cline-any cline-yes">1x</span>
784
+ <span class="cline-any cline-yes">1x</span>
785
+ <span class="cline-any cline-yes">1x</span>
786
+ <span class="cline-any cline-yes">1x</span>
787
+ <span class="cline-any cline-yes">1x</span>
788
+ <span class="cline-any cline-yes">1x</span>
789
+ <span class="cline-any cline-yes">1x</span>
790
+ <span class="cline-any cline-yes">1x</span>
791
+ <span class="cline-any cline-yes">1x</span>
792
+ <span class="cline-any cline-yes">1x</span>
793
+ <span class="cline-any cline-yes">1x</span>
794
+ <span class="cline-any cline-yes">1x</span>
795
+ <span class="cline-any cline-yes">1x</span>
796
+ <span class="cline-any cline-yes">1x</span>
797
+ <span class="cline-any cline-yes">1x</span>
798
+ <span class="cline-any cline-yes">1x</span>
799
+ <span class="cline-any cline-yes">1x</span>
800
+ <span class="cline-any cline-yes">1x</span>
801
+ <span class="cline-any cline-yes">1x</span>
802
+ <span class="cline-any cline-yes">1x</span>
803
+ <span class="cline-any cline-yes">1x</span>
804
+ <span class="cline-any cline-yes">1x</span>
805
+ <span class="cline-any cline-yes">1x</span>
806
+ <span class="cline-any cline-yes">1x</span>
807
+ <span class="cline-any cline-yes">87x</span>
808
+ <span class="cline-any cline-yes">87x</span>
809
+ <span class="cline-any cline-yes">87x</span>
810
+ <span class="cline-any cline-yes">87x</span>
811
+ <span class="cline-any cline-yes">87x</span>
812
+ <span class="cline-any cline-yes">87x</span>
813
+ <span class="cline-any cline-yes">87x</span>
814
+ <span class="cline-any cline-yes">87x</span>
815
+ <span class="cline-any cline-yes">87x</span>
816
+ <span class="cline-any cline-yes">87x</span>
817
+ <span class="cline-any cline-yes">87x</span>
818
+ <span class="cline-any cline-yes">87x</span>
819
+ <span class="cline-any cline-yes">87x</span>
820
+ <span class="cline-any cline-yes">87x</span>
821
+ <span class="cline-any cline-yes">87x</span>
822
+ <span class="cline-any cline-yes">87x</span>
823
+ <span class="cline-any cline-yes">87x</span>
824
+ <span class="cline-any cline-yes">87x</span>
825
+ <span class="cline-any cline-yes">87x</span>
826
+ <span class="cline-any cline-yes">87x</span>
827
+ <span class="cline-any cline-yes">87x</span>
828
+ <span class="cline-any cline-yes">87x</span>
829
+ <span class="cline-any cline-yes">87x</span>
830
+ <span class="cline-any cline-yes">87x</span>
831
+ <span class="cline-any cline-yes">87x</span>
832
+ <span class="cline-any cline-yes">87x</span>
833
+ <span class="cline-any cline-yes">87x</span>
834
+ <span class="cline-any cline-yes">87x</span>
835
+ <span class="cline-any cline-yes">87x</span>
836
+ <span class="cline-any cline-yes">87x</span>
837
+ <span class="cline-any cline-yes">87x</span>
838
+ <span class="cline-any cline-yes">87x</span>
839
+ <span class="cline-any cline-yes">87x</span>
840
+ <span class="cline-any cline-yes">87x</span>
841
+ <span class="cline-any cline-yes">87x</span>
842
+ <span class="cline-any cline-yes">87x</span>
843
+ <span class="cline-any cline-yes">87x</span>
844
+ <span class="cline-any cline-yes">87x</span>
845
+ <span class="cline-any cline-yes">87x</span>
846
+ <span class="cline-any cline-yes">87x</span>
847
+ <span class="cline-any cline-yes">87x</span>
848
+ <span class="cline-any cline-yes">87x</span>
849
+ <span class="cline-any cline-yes">87x</span>
850
+ <span class="cline-any cline-yes">87x</span>
851
+ <span class="cline-any cline-yes">87x</span>
852
+ <span class="cline-any cline-yes">87x</span>
853
+ <span class="cline-any cline-yes">87x</span>
854
+ <span class="cline-any cline-yes">13x</span>
855
+ <span class="cline-any cline-yes">13x</span>
856
+ <span class="cline-any cline-yes">1x</span>
857
+ <span class="cline-any cline-yes">1x</span>
858
+ <span class="cline-any cline-yes">12x</span>
859
+ <span class="cline-any cline-yes">12x</span>
860
+ <span class="cline-any cline-yes">12x</span>
861
+ <span class="cline-any cline-yes">87x</span>
862
+ <span class="cline-any cline-yes">19x</span>
863
+ <span class="cline-any cline-yes">19x</span>
864
+ <span class="cline-any cline-yes">19x</span>
865
+ <span class="cline-any cline-yes">19x</span>
866
+ <span class="cline-any cline-yes">19x</span>
867
+ <span class="cline-any cline-yes">19x</span>
868
+ <span class="cline-any cline-yes">19x</span>
869
+ <span class="cline-any cline-yes">19x</span>
870
+ <span class="cline-any cline-yes">19x</span>
871
+ <span class="cline-any cline-yes">3x</span>
872
+ <span class="cline-any cline-yes">3x</span>
873
+ <span class="cline-any cline-yes">16x</span>
874
+ <span class="cline-any cline-yes">19x</span>
875
+ <span class="cline-any cline-yes">13x</span>
876
+ <span class="cline-any cline-yes">13x</span>
877
+ <span class="cline-any cline-yes">13x</span>
878
+ <span class="cline-any cline-yes">2x</span>
879
+ <span class="cline-any cline-yes">2x</span>
880
+ <span class="cline-any cline-yes">2x</span>
881
+ <span class="cline-any cline-yes">13x</span>
882
+ <span class="cline-any cline-yes">3x</span>
883
+ <span class="cline-any cline-yes">3x</span>
884
+ <span class="cline-any cline-yes">13x</span>
885
+ <span class="cline-any cline-yes">13x</span>
886
+ <span class="cline-any cline-yes">13x</span>
887
+ <span class="cline-any cline-yes">13x</span>
888
+ <span class="cline-any cline-yes">13x</span>
889
+ <span class="cline-any cline-yes">3x</span>
890
+ <span class="cline-any cline-yes">3x</span>
891
+ <span class="cline-any cline-yes">19x</span>
892
+ <span class="cline-any cline-yes">19x</span>
893
+ <span class="cline-any cline-yes">2x</span>
894
+ <span class="cline-any cline-yes">2x</span>
895
+ <span class="cline-any cline-yes">2x</span>
896
+ <span class="cline-any cline-yes">2x</span>
897
+ <span class="cline-any cline-yes">2x</span>
898
+ <span class="cline-any cline-yes">19x</span>
899
+ <span class="cline-any cline-yes">1x</span>
900
+ <span class="cline-any cline-yes">1x</span>
901
+ <span class="cline-any cline-yes">19x</span>
902
+ <span class="cline-any cline-yes">19x</span>
903
+ <span class="cline-any cline-yes">87x</span>
904
+ <span class="cline-any cline-yes">87x</span>
905
+ <span class="cline-any cline-yes">87x</span>
906
+ <span class="cline-any cline-yes">87x</span>
907
+ <span class="cline-any cline-yes">87x</span>
908
+ <span class="cline-any cline-yes">87x</span>
909
+ <span class="cline-any cline-yes">87x</span>
910
+ <span class="cline-any cline-yes">87x</span>
911
+ <span class="cline-any cline-yes">28x</span>
912
+ <span class="cline-any cline-yes">28x</span>
913
+ <span class="cline-any cline-yes">17x</span>
914
+ <span class="cline-any cline-yes">17x</span>
915
+ <span class="cline-any cline-yes">11x</span>
916
+ <span class="cline-any cline-yes">28x</span>
917
+ <span class="cline-any cline-yes">28x</span>
918
+ <span class="cline-any cline-yes">87x</span>
919
+ <span class="cline-any cline-yes">87x</span>
920
+ <span class="cline-any cline-yes">87x</span>
921
+ <span class="cline-any cline-yes">87x</span>
922
+ <span class="cline-any cline-yes">174x</span>
923
+ <span class="cline-any cline-yes">174x</span>
924
+ <span class="cline-any cline-yes">174x</span>
925
+ <span class="cline-any cline-yes">174x</span>
926
+ <span class="cline-any cline-yes">174x</span>
927
+ <span class="cline-any cline-yes">174x</span>
928
+ <span class="cline-any cline-yes">174x</span>
929
+ <span class="cline-any cline-yes">348x</span>
930
+ <span class="cline-any cline-yes">18x</span>
931
+ <span class="cline-any cline-yes">18x</span>
932
+ <span class="cline-any cline-yes">18x</span>
933
+ <span class="cline-any cline-yes">18x</span>
934
+ <span class="cline-any cline-yes">1x</span>
935
+ <span class="cline-any cline-yes">1x</span>
936
+ <span class="cline-any cline-yes">17x</span>
937
+ <span class="cline-any cline-yes">17x</span>
938
+ <span class="cline-any cline-yes">17x</span>
939
+ <span class="cline-any cline-yes">17x</span>
940
+ <span class="cline-any cline-yes">17x</span>
941
+ <span class="cline-any cline-yes">17x</span>
942
+ <span class="cline-any cline-yes">17x</span>
943
+ <span class="cline-any cline-yes">17x</span>
944
+ <span class="cline-any cline-yes">17x</span>
945
+ <span class="cline-any cline-yes">17x</span>
946
+ <span class="cline-any cline-yes">17x</span>
947
+ <span class="cline-any cline-yes">18x</span>
948
+ <span class="cline-any cline-yes">1x</span>
949
+ <span class="cline-any cline-yes">1x</span>
950
+ <span class="cline-any cline-yes">16x</span>
951
+ <span class="cline-any cline-yes">16x</span>
952
+ <span class="cline-any cline-yes">16x</span>
953
+ <span class="cline-any cline-yes">16x</span>
954
+ <span class="cline-any cline-yes">16x</span>
955
+ <span class="cline-any cline-yes">16x</span>
956
+ <span class="cline-any cline-yes">18x</span>
957
+ <span class="cline-any cline-yes">18x</span>
958
+ <span class="cline-any cline-yes">174x</span>
959
+ <span class="cline-any cline-yes">174x</span>
960
+ <span class="cline-any cline-yes">348x</span>
961
+ <span class="cline-any cline-yes">12x</span>
962
+ <span class="cline-any cline-yes">12x</span>
963
+ <span class="cline-any cline-yes">12x</span>
964
+ <span class="cline-any cline-yes">11x</span>
965
+ <span class="cline-any cline-yes">11x</span>
966
+ <span class="cline-any cline-yes">11x</span>
967
+ <span class="cline-any cline-yes">11x</span>
968
+ <span class="cline-any cline-yes">11x</span>
969
+ <span class="cline-any cline-yes">11x</span>
970
+ <span class="cline-any cline-yes">12x</span>
971
+ <span class="cline-any cline-yes">174x</span>
972
+ <span class="cline-any cline-yes">174x</span>
973
+ <span class="cline-any cline-yes">174x</span>
974
+ <span class="cline-any cline-yes">174x</span>
975
+ <span class="cline-any cline-yes">174x</span>
976
+ <span class="cline-any cline-yes">174x</span>
977
+ <span class="cline-any cline-yes">174x</span>
978
+ <span class="cline-any cline-yes">174x</span>
979
+ <span class="cline-any cline-yes">174x</span>
980
+ <span class="cline-any cline-yes">174x</span>
981
+ <span class="cline-any cline-yes">174x</span>
982
+ <span class="cline-any cline-yes">87x</span>
983
+ <span class="cline-any cline-yes">87x</span>
984
+ <span class="cline-any cline-yes">87x</span>
985
+ <span class="cline-any cline-yes">87x</span>
986
+ <span class="cline-any cline-yes">87x</span>
987
+ <span class="cline-any cline-yes">87x</span>
988
+ <span class="cline-any cline-yes">87x</span>
989
+ <span class="cline-any cline-yes">87x</span>
990
+ <span class="cline-any cline-yes">87x</span>
991
+ <span class="cline-any cline-yes">87x</span>
992
+ <span class="cline-any cline-yes">87x</span>
993
+ <span class="cline-any cline-yes">87x</span>
994
+ <span class="cline-any cline-yes">87x</span>
995
+ <span class="cline-any cline-yes">87x</span>
996
+ <span class="cline-any cline-yes">87x</span>
997
+ <span class="cline-any cline-yes">87x</span>
998
+ <span class="cline-any cline-yes">87x</span>
999
+ <span class="cline-any cline-yes">87x</span>
1000
+ <span class="cline-any cline-yes">87x</span>
1001
+ <span class="cline-any cline-yes">87x</span>
1002
+ <span class="cline-any cline-yes">87x</span>
1003
+ <span class="cline-any cline-yes">87x</span>
1004
+ <span class="cline-any cline-yes">87x</span>
1005
+ <span class="cline-any cline-yes">87x</span>
1006
+ <span class="cline-any cline-yes">87x</span>
1007
+ <span class="cline-any cline-yes">87x</span>
1008
+ <span class="cline-any cline-yes">87x</span>
1009
+ <span class="cline-any cline-yes">87x</span>
1010
+ <span class="cline-any cline-yes">87x</span>
1011
+ <span class="cline-any cline-yes">87x</span>
1012
+ <span class="cline-any cline-yes">87x</span>
1013
+ <span class="cline-any cline-yes">87x</span>
1014
+ <span class="cline-any cline-yes">87x</span>
1015
+ <span class="cline-any cline-yes">87x</span>
1016
+ <span class="cline-any cline-yes">87x</span>
1017
+ <span class="cline-any cline-yes">87x</span>
1018
+ <span class="cline-any cline-yes">87x</span>
1019
+ <span class="cline-any cline-yes">87x</span>
1020
+ <span class="cline-any cline-yes">87x</span>
1021
+ <span class="cline-any cline-yes">87x</span>
1022
+ <span class="cline-any cline-yes">87x</span>
1023
+ <span class="cline-any cline-yes">87x</span>
1024
+ <span class="cline-any cline-yes">87x</span>
1025
+ <span class="cline-any cline-yes">87x</span>
1026
+ <span class="cline-any cline-yes">87x</span>
1027
+ <span class="cline-any cline-yes">87x</span>
1028
+ <span class="cline-any cline-yes">87x</span>
1029
+ <span class="cline-any cline-yes">87x</span>
1030
+ <span class="cline-any cline-yes">87x</span>
1031
+ <span class="cline-any cline-yes">87x</span>
1032
+ <span class="cline-any cline-yes">87x</span>
1033
+ <span class="cline-any cline-yes">87x</span>
1034
+ <span class="cline-any cline-yes">87x</span>
1035
+ <span class="cline-any cline-yes">87x</span>
1036
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">"use client";
1037
+ import {
1038
+ useRef,
1039
+ type FocusEventHandler,
1040
+ type KeyboardEventHandler,
1041
+ type MouseEventHandler,
1042
+ type Ref,
1043
+ type RefCallback,
1044
+ type RefObject,
721
1045
  } from "react";
1046
+ import { type MenuProps } from "../menu/Menu.js";
1047
+ import { type MenuSheetConfigurableProps } from "../menu/MenuSheet.js";
1048
+ import {
1049
+ type GetDefaultFocusedIndex,
1050
+ type GetFocusableElements,
1051
+ type KeyboardMovementExtensionData,
1052
+ type KeyboardMovementProviderImplementation,
1053
+ type KeyboardMovementProviderOptions,
1054
+ } from "../movement/types.js";
1055
+ import { useKeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
1056
+ import { BELOW_CENTER_ANCHOR } from "../positioning/constants.js";
722
1057
  import {
723
- isSearchableEvent,
724
- KeyboardMovementProviderImplementation,
725
- useKeyboardMovementProvider,
726
- } from "../movement";
727
- import type { UseStateInitializer, UseStateSetter } from "../types";
728
- import { useEnsuredId } from "../useEnsuredId";
729
- import { useEnsuredRef } from "../useEnsuredRef";
730
- import { useToggle } from "../useToggle";
731
- import { tryToSubmitRelatedForm } from "./utils";
1058
+ type PositionAnchor,
1059
+ type PositionWidth,
1060
+ } from "../positioning/types.js";
1061
+ import { TRANSITION_CONFIG } from "../transition/config.js";
1062
+ import {
1063
+ type TransitionCallbacks,
1064
+ type TransitionEnterHandler,
1065
+ type TransitionExitHandler,
1066
+ } from "../transition/types.js";
1067
+ import {
1068
+ type NonNullMutableRef,
1069
+ type UseStateInitializer,
1070
+ type UseStateSetter,
1071
+ } from "../types.js";
1072
+ import { useEnsuredId } from "../useEnsuredId.js";
1073
+ import { useEnsuredRef } from "../useEnsuredRef.js";
1074
+ import { useToggle } from "../useToggle.js";
1075
+ import { tryToSubmitRelatedForm } from "./utils.js";
1076
+ &nbsp;
1077
+ const noop = (): void =&gt; {
1078
+ // do nothing
1079
+ };
732
1080
  &nbsp;
733
- const noop = <span class="fstat-no" title="function not covered" >(): void =&gt; {</span>
734
- <span class="cstat-no" title="statement not covered" > // do nothing</span>
735
- <span class="cstat-no" title="statement not covered" >};</span>
1081
+ /**
1082
+ * @remarks \@since 6.0.0
1083
+ */
1084
+ export const getNonDisabledOptions = (
1085
+ container: HTMLElement
1086
+ ): readonly HTMLElement[] =&gt; [
1087
+ ...container.querySelectorAll&lt;HTMLLIElement&gt;(
1088
+ '[role="option"]:not([aria-disabled])'
1089
+ ),
1090
+ ];
736
1091
  &nbsp;
1092
+ /**
1093
+ * @remarks \@since 6.0.0
1094
+ */
737
1095
  export type SupportedComboboxPopup = "listbox" | "grid" | "dialog";
738
1096
  &nbsp;
739
- export interface ComboboxOptions&lt;
1097
+ /**
1098
+ * @remarks \@since 6.0.0
1099
+ */
1100
+ export interface ComboboxKeyboardMovementData&lt;
1101
+ E extends HTMLElement = HTMLInputElement,
1102
+ &gt; extends KeyboardMovementExtensionData&lt;E&gt; {
1103
+ show(): void;
1104
+ hide(): void;
1105
+ visible: boolean;
1106
+ focusLast: NonNullMutableRef&lt;boolean&gt;;
1107
+ }
1108
+ &nbsp;
1109
+ /**
1110
+ * @remarks \@since 6.0.0
1111
+ */
1112
+ export type ExtendComboboxKeyDown&lt;E extends HTMLElement = HTMLInputElement&gt; = (
1113
+ movementData: ComboboxKeyboardMovementData&lt;E&gt;
1114
+ ) =&gt; void;
1115
+ &nbsp;
1116
+ /**
1117
+ * @remarks \@since 6.0.0
1118
+ */
1119
+ export type ComboboxKeyboardMovementOptions&lt;
740
1120
  ComboboxEl extends HTMLElement = HTMLInputElement,
741
- PopupEl extends HTMLElement = HTMLElement
742
- &gt; {
1121
+ &gt; = Pick&lt;
1122
+ KeyboardMovementProviderOptions&lt;ComboboxEl&gt;,
1123
+ | "onClick"
1124
+ | "onFocus"
1125
+ | "onKeyDown"
1126
+ | "disabled"
1127
+ | "loopable"
1128
+ | "searchable"
1129
+ | "onFocusChange"
1130
+ | "isNegativeOneAllowed"
1131
+ &gt;;
1132
+ &nbsp;
1133
+ /**
1134
+ * @remarks \@since 6.0.0
1135
+ */
1136
+ export interface BaseComboboxOptions&lt;
1137
+ ComboboxEl extends HTMLElement = HTMLInputElement,
1138
+ PopupEl extends HTMLElement = HTMLElement,
1139
+ &gt; extends ComboboxKeyboardMovementOptions&lt;ComboboxEl&gt; {
743
1140
  /**
744
1141
  * This is the {@link InputHTMLAttributes.form} attribute and is used to
745
1142
  * attempt submitting a form when the enter key is pressed.
@@ -756,7 +1153,6 @@ export interface ComboboxOptions&lt;
756
1153
  * @defaultValue `"combobox-" + useId()`
757
1154
  */
758
1155
  comboboxId?: string;
759
- &nbsp;
760
1156
  comboboxRef?: Ref&lt;ComboboxEl&gt;;
761
1157
  &nbsp;
762
1158
  /**
@@ -765,49 +1161,44 @@ export interface ComboboxOptions&lt;
765
1161
  popup?: "listbox" | "grid" | "dialog";
766
1162
  &nbsp;
767
1163
  /**
768
- * Used to determine the keyboard completion behavior with the {@link popup}
769
- * type:
770
- *
771
- * - `"none"` - applies `aria-autocomplete="none"` and focusing options does
772
- * not update the value automatically. the user must select an option with
773
- * enter
774
- * - `"list"` - applies `aria-autocomplete="list"` and focusing options
775
- * immediately updates the value
776
- * - `"both"` - applies `aria-autocomplete="both"`, focusing options
777
- * immediately updates the value, and typing will attempt to autocomplete
778
- * the rest of the match inline using selection ranges
779
- * - `"select"` - acts as a `&lt;select&gt;` element and is **not editable**.
780
- *
781
- * @defaultValue `"list"`
1164
+ * @defaultValue `false`
782
1165
  */
783
- autocomplete?: "none" | "list" | "both" | "select";
1166
+ defaultVisible?: UseStateInitializer&lt;boolean&gt;;
784
1167
  &nbsp;
785
- onClick?: MouseEventHandler&lt;ComboboxEl&gt;;
786
- onFocus?: FocusEventHandler&lt;ComboboxEl&gt;;
787
- onKeyDown?: KeyboardEventHandler&lt;ComboboxEl&gt;;
1168
+ extendKeyDown?: ExtendComboboxKeyDown&lt;ComboboxEl&gt;;
788
1169
  &nbsp;
789
1170
  /**
790
- * @defaultValue `false`
1171
+ * @defaultValue {@link getNonDisabledOptions}
791
1172
  */
792
- disabled?: boolean;
1173
+ getFocusableElements?: GetFocusableElements;
793
1174
  &nbsp;
794
- /**
795
- * @defaultValue `false`
796
- */
797
- disableShowOnFocus?: boolean;
1175
+ getDefaultFocusedIndex?: GetDefaultFocusedIndex;
1176
+ }
798
1177
  &nbsp;
799
- /**
800
- * @defaultValue `false`
801
- */
802
- defaultVisible?: UseStateInitializer&lt;boolean&gt;;
1178
+ /**
1179
+ * @remarks \@since 6.0.0
1180
+ */
1181
+ export interface ComboboxOptions&lt;
1182
+ ComboboxEl extends HTMLElement = HTMLInputElement,
1183
+ PopupEl extends HTMLElement = HTMLElement,
1184
+ &gt; extends BaseComboboxOptions&lt;ComboboxEl, PopupEl&gt; {
1185
+ getEnterDefaultFocusedIndex(options: {
1186
+ focusLast: boolean;
1187
+ focusables: readonly HTMLElement[];
1188
+ currentFocusIndex: number;
1189
+ }): number;
803
1190
  }
804
1191
  &nbsp;
1192
+ /**
1193
+ * @remarks \@since 6.0.0
1194
+ */
805
1195
  export interface ComboboxWidgetProps&lt;
806
- ComboboxEl extends HTMLElement = HTMLInputElement
1196
+ ComboboxEl extends HTMLElement = HTMLInputElement,
807
1197
  &gt; {
808
- "aria-haspopup": SupportedComboboxPopup;
1198
+ "aria-controls": string;
1199
+ "aria-disabled": true | undefined;
809
1200
  "aria-expanded": boolean;
810
- "aria-autocomplete"?: AriaAttributes["aria-autocomplete"];
1201
+ "aria-haspopup": SupportedComboboxPopup;
811
1202
  id: string;
812
1203
  ref: RefCallback&lt;ComboboxEl&gt;;
813
1204
  role: "combobox";
@@ -816,222 +1207,317 @@ export interface ComboboxWidgetProps&lt;
816
1207
  onKeyDown: KeyboardEventHandler&lt;ComboboxEl&gt;;
817
1208
  }
818
1209
  &nbsp;
1210
+ /**
1211
+ * @remarks \@since 6.0.0
1212
+ */
819
1213
  export interface ComboboxWidgetPopupProps&lt;
820
- PopupEl extends HTMLElement = HTMLElement
1214
+ PopupEl extends HTMLElement = HTMLElement,
821
1215
  &gt; {
822
- "aria-labelledby": string;
823
1216
  id: string;
824
1217
  ref: RefCallback&lt;PopupEl&gt;;
825
1218
  role: "listbox" | "dialog" | "grid";
826
1219
  }
827
1220
  &nbsp;
1221
+ /**
1222
+ * @remarks \@since 6.0.0
1223
+ */
1224
+ export type ComboboxTransitionCallbacks = Pick&lt;
1225
+ TransitionCallbacks,
1226
+ "onEntering" | "onEntered" | "onExiting" | "onExited"
1227
+ &gt;;
1228
+ &nbsp;
1229
+ /**
1230
+ * @remarks \@since 6.0.0
1231
+ */
1232
+ export interface ComboboxTransitionOptions extends ComboboxTransitionCallbacks {
1233
+ disableTransition?: boolean;
1234
+ }
1235
+ &nbsp;
1236
+ /**
1237
+ * @remarks \@since 6.0.0
1238
+ */
1239
+ export interface ComboboxMenuProps&lt;
1240
+ ComboboxEl extends HTMLElement = HTMLInputElement,
1241
+ &gt; extends Required&lt;ComboboxTransitionCallbacks&gt;,
1242
+ ComboboxWidgetPopupProps {
1243
+ visible: boolean;
1244
+ onRequestClose(): void;
1245
+ &nbsp;
1246
+ /** @defaultValue `"min"` */
1247
+ width: PositionWidth;
1248
+ &nbsp;
1249
+ /** @defaultValue `BELOW_CENTER_ANCHOR` */
1250
+ anchor: PositionAnchor;
1251
+ &nbsp;
1252
+ fixedTo: RefObject&lt;ComboboxEl&gt;;
1253
+ &nbsp;
1254
+ sheetProps: MenuSheetConfigurableProps &amp;
1255
+ Required&lt;ComboboxTransitionCallbacks&gt;;
1256
+ }
1257
+ &nbsp;
1258
+ /**
1259
+ * @remarks \@since 6.0.0
1260
+ */
828
1261
  export interface ComboboxImplementation&lt;
829
1262
  ComboboxEl extends HTMLElement = HTMLInputElement,
830
- PopupEl extends HTMLElement = HTMLElement
1263
+ PopupEl extends HTMLElement = HTMLElement,
831
1264
  &gt; extends KeyboardMovementProviderImplementation&lt;ComboboxEl&gt; {
832
1265
  show(): void;
833
1266
  hide(): void;
834
1267
  visible: boolean;
835
1268
  setVisible: UseStateSetter&lt;boolean&gt;;
1269
+ focusLast: NonNullMutableRef&lt;boolean&gt;;
836
1270
  popupRef: RefObject&lt;PopupEl&gt;;
837
1271
  popupProps: ComboboxWidgetPopupProps&lt;PopupEl&gt;;
838
1272
  comboboxRef: RefObject&lt;ComboboxEl&gt;;
839
1273
  comboboxProps: ComboboxWidgetProps&lt;ComboboxEl&gt;;
1274
+ &nbsp;
1275
+ /**
1276
+ * Since the combobox usually uses the `Menu` as a popup element, this is a
1277
+ * helper util to create the required props and merge any additional props
1278
+ * with reasonable defaults.
1279
+ */
1280
+ getMenuProps(
1281
+ props?: Partial&lt;Omit&lt;MenuProps, "fixedTo" | "visible" | "onRequestClose"&gt;&gt;
1282
+ ): Partial&lt;MenuProps&gt; &amp; ComboboxMenuProps&lt;ComboboxEl&gt;;
1283
+ getTransitionCallbacks(
1284
+ options: ComboboxTransitionOptions
1285
+ ): Required&lt;ComboboxTransitionCallbacks&gt;;
840
1286
  }
841
1287
  &nbsp;
842
- export <span class="fstat-no" title="function not covered" >function useCombobox&lt;</span>
843
- <span class="cstat-no" title="statement not covered" > ComboboxEl extends HTMLElement = HTMLInputElement,</span>
844
- <span class="cstat-no" title="statement not covered" > PopupEl extends HTMLElement = HTMLElement</span>
845
- <span class="cstat-no" title="statement not covered" >&gt;(</span>
846
- <span class="cstat-no" title="statement not covered" > options: ComboboxOptions&lt;ComboboxEl, PopupEl&gt; = {}</span>
847
- <span class="cstat-no" title="statement not covered" >): ComboboxImplementation&lt;ComboboxEl, PopupEl&gt; {</span>
848
- <span class="cstat-no" title="statement not covered" > const {</span>
849
- <span class="cstat-no" title="statement not covered" > form,</span>
850
- <span class="cstat-no" title="statement not covered" > autocomplete = "list",</span>
851
- <span class="cstat-no" title="statement not covered" > popup = "listbox",</span>
852
- <span class="cstat-no" title="statement not covered" > onClick = noop,</span>
853
- <span class="cstat-no" title="statement not covered" > onFocus = noop,</span>
854
- <span class="cstat-no" title="statement not covered" > onKeyDown = noop,</span>
855
- <span class="cstat-no" title="statement not covered" > disabled = false,</span>
856
- <span class="cstat-no" title="statement not covered" > comboboxId: propComboboxId,</span>
857
- <span class="cstat-no" title="statement not covered" > comboboxRef: propComboboxRef,</span>
858
- <span class="cstat-no" title="statement not covered" > popupId: propPopupId,</span>
859
- <span class="cstat-no" title="statement not covered" > popupRef: propPopupRef,</span>
860
- <span class="cstat-no" title="statement not covered" > defaultVisible = false,</span>
861
- <span class="cstat-no" title="statement not covered" > disableShowOnFocus = false,</span>
862
- <span class="cstat-no" title="statement not covered" > } = options;</span>
863
- <span class="cstat-no" title="statement not covered" > const isSelect = autocomplete === "select";</span>
864
- <span class="cstat-no" title="statement not covered" ></span>
865
- <span class="cstat-no" title="statement not covered" > const {</span>
866
- <span class="cstat-no" title="statement not covered" > toggled: visible,</span>
867
- <span class="cstat-no" title="statement not covered" > enable: show,</span>
868
- <span class="cstat-no" title="statement not covered" > disable: hide,</span>
869
- <span class="cstat-no" title="statement not covered" > setToggled: setVisible,</span>
870
- <span class="cstat-no" title="statement not covered" > } = useToggle(defaultVisible);</span>
871
- <span class="cstat-no" title="statement not covered" > const popupId = useEnsuredId(propPopupId, "combobox-popup");</span>
872
- <span class="cstat-no" title="statement not covered" > const comboboxId = useEnsuredId(propComboboxId, "combobox");</span>
873
- <span class="cstat-no" title="statement not covered" > const [comboboxRef, comboboxRefCallback] = useEnsuredRef(propComboboxRef);</span>
874
- <span class="cstat-no" title="statement not covered" > const [popupRef, popupRefCallback] = useEnsuredRef(propPopupRef);</span>
875
- <span class="cstat-no" title="statement not covered" > const {</span>
876
- <span class="cstat-no" title="statement not covered" > movementProps,</span>
877
- <span class="cstat-no" title="statement not covered" > movementContext,</span>
878
- <span class="cstat-no" title="statement not covered" > currentFocusIndex,</span>
879
- <span class="cstat-no" title="statement not covered" > setActiveDescendantId,</span>
880
- <span class="cstat-no" title="statement not covered" > } = useKeyboardMovementProvider&lt;ComboboxEl&gt;({</span>
881
- <span class="cstat-no" title="statement not covered" > onFocus(event) {</span>
882
- <span class="cstat-no" title="statement not covered" > onFocus(event);</span>
883
- <span class="cstat-no" title="statement not covered" > if (disableShowOnFocus) {</span>
884
- <span class="cstat-no" title="statement not covered" > return;</span>
885
- <span class="cstat-no" title="statement not covered" > }</span>
886
- <span class="cstat-no" title="statement not covered" ></span>
887
- <span class="cstat-no" title="statement not covered" > show();</span>
888
- <span class="cstat-no" title="statement not covered" > },</span>
889
- <span class="cstat-no" title="statement not covered" > onClick(event) {</span>
890
- <span class="cstat-no" title="statement not covered" > onClick(event);</span>
891
- <span class="cstat-no" title="statement not covered" > // if (disabled || !isSelect) {</span>
892
- <span class="cstat-no" title="statement not covered" > if (disabled) {</span>
893
- <span class="cstat-no" title="statement not covered" > return;</span>
894
- <span class="cstat-no" title="statement not covered" > }</span>
895
- <span class="cstat-no" title="statement not covered" ></span>
896
- <span class="cstat-no" title="statement not covered" > // this was called so that the menu doesn't automatically close</span>
897
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
898
- <span class="cstat-no" title="statement not covered" > show();</span>
899
- <span class="cstat-no" title="statement not covered" > },</span>
900
- <span class="cstat-no" title="statement not covered" > onKeyDown(event) {</span>
901
- <span class="cstat-no" title="statement not covered" > onKeyDown(event);</span>
902
- <span class="cstat-no" title="statement not covered" > if (disabled) {</span>
903
- <span class="cstat-no" title="statement not covered" > return;</span>
904
- <span class="cstat-no" title="statement not covered" > }</span>
905
- <span class="cstat-no" title="statement not covered" ></span>
906
- <span class="cstat-no" title="statement not covered" > if (visible) {</span>
907
- <span class="cstat-no" title="statement not covered" > if (event.key === "Escape" || event.key === "Tab") {</span>
908
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
909
- <span class="cstat-no" title="statement not covered" > hide();</span>
910
- <span class="cstat-no" title="statement not covered" > }</span>
911
- <span class="cstat-no" title="statement not covered" ></span>
912
- <span class="cstat-no" title="statement not covered" > return;</span>
913
- <span class="cstat-no" title="statement not covered" > }</span>
914
- <span class="cstat-no" title="statement not covered" ></span>
915
- <span class="cstat-no" title="statement not covered" > if (isSearchableEvent(event)) {</span>
916
- <span class="cstat-no" title="statement not covered" > // event.stopPropagation();</span>
917
- <span class="cstat-no" title="statement not covered" ></span>
918
- <span class="cstat-no" title="statement not covered" > // const nextIndex = findMatchIndex({</span>
919
- <span class="cstat-no" title="statement not covered" > // value: event.key,</span>
920
- <span class="cstat-no" title="statement not covered" > // values: searchValues,</span>
921
- <span class="cstat-no" title="statement not covered" > // startIndex: event.shiftKey ? -1 : currentIndex,</span>
922
- <span class="cstat-no" title="statement not covered" > // });</span>
923
- <span class="cstat-no" title="statement not covered" ></span>
924
- <span class="cstat-no" title="statement not covered" > // if (nextIndex !== -1) {</span>
925
- <span class="cstat-no" title="statement not covered" > // triggerManualChangeEvent(inputRef.current, options[nextIndex].value);</span>
926
- <span class="cstat-no" title="statement not covered" > // }</span>
927
- <span class="cstat-no" title="statement not covered" > return;</span>
928
- <span class="cstat-no" title="statement not covered" > }</span>
929
- <span class="cstat-no" title="statement not covered" ></span>
930
- <span class="cstat-no" title="statement not covered" > switch (event.key) {</span>
931
- <span class="cstat-no" title="statement not covered" > case " ":</span>
932
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
933
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
934
- <span class="cstat-no" title="statement not covered" > show();</span>
935
- <span class="cstat-no" title="statement not covered" > break;</span>
936
- <span class="cstat-no" title="statement not covered" > case "Enter":</span>
937
- <span class="cstat-no" title="statement not covered" > tryToSubmitRelatedForm(event, form);</span>
938
- <span class="cstat-no" title="statement not covered" > break;</span>
939
- <span class="cstat-no" title="statement not covered" > case "Home":</span>
940
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
941
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
942
- <span class="cstat-no" title="statement not covered" > // if (currentIndex !== 0) {</span>
943
- <span class="cstat-no" title="statement not covered" > // triggerManualChangeEvent(inputRef.current, options[0].value);</span>
944
- <span class="cstat-no" title="statement not covered" > // }</span>
945
- <span class="cstat-no" title="statement not covered" > break;</span>
946
- <span class="cstat-no" title="statement not covered" > case "End":</span>
947
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
948
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
949
- <span class="cstat-no" title="statement not covered" > // if (currentIndex !== totalOptions) {</span>
950
- <span class="cstat-no" title="statement not covered" > // triggerManualChangeEvent(</span>
951
- <span class="cstat-no" title="statement not covered" > // inputRef.current,</span>
952
- <span class="cstat-no" title="statement not covered" > // options[totalOptions].value</span>
953
- <span class="cstat-no" title="statement not covered" > // );</span>
954
- <span class="cstat-no" title="statement not covered" > // }</span>
955
- <span class="cstat-no" title="statement not covered" > break;</span>
956
- <span class="cstat-no" title="statement not covered" > case "ArrowDown":</span>
957
- <span class="cstat-no" title="statement not covered" > case "ArrowUp": {</span>
958
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
959
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
960
- <span class="cstat-no" title="statement not covered" ></span>
961
- <span class="cstat-no" title="statement not covered" > // const increment = event.key === "ArrowDown";</span>
962
- <span class="cstat-no" title="statement not covered" > // if (currentIndex === -1 &amp;&amp; !increment) {</span>
963
- <span class="cstat-no" title="statement not covered" > // // this matches the native select behavior where it will do</span>
964
- <span class="cstat-no" title="statement not covered" > // // nothing if there is no current value</span>
965
- <span class="cstat-no" title="statement not covered" > // return;</span>
966
- <span class="cstat-no" title="statement not covered" > // }</span>
967
- <span class="cstat-no" title="statement not covered" ></span>
968
- <span class="cstat-no" title="statement not covered" > // const nextIndex = loop({</span>
969
- <span class="cstat-no" title="statement not covered" > // max: totalOptions,</span>
970
- <span class="cstat-no" title="statement not covered" > // value: currentIndex,</span>
971
- <span class="cstat-no" title="statement not covered" > // minmax: true,</span>
972
- <span class="cstat-no" title="statement not covered" > // increment,</span>
973
- <span class="cstat-no" title="statement not covered" > // });</span>
974
- <span class="cstat-no" title="statement not covered" ></span>
975
- <span class="cstat-no" title="statement not covered" > // triggerManualChangeEvent(inputRef.current, options[nextIndex].value);</span>
976
- <span class="cstat-no" title="statement not covered" > break;</span>
977
- <span class="cstat-no" title="statement not covered" > }</span>
978
- <span class="cstat-no" title="statement not covered" > }</span>
979
- <span class="cstat-no" title="statement not covered" > },</span>
980
- <span class="cstat-no" title="statement not covered" > loopable: false,</span>
981
- <span class="cstat-no" title="statement not covered" > searchable: isSelect,</span>
982
- <span class="cstat-no" title="statement not covered" > programmatic: true,</span>
983
- <span class="cstat-no" title="statement not covered" > includeDisabled: false,</span>
984
- <span class="cstat-no" title="statement not covered" > tabIndexBehavior: "virtual",</span>
985
- <span class="cstat-no" title="statement not covered" > // getDefaultFocusedIndex(focusOptions) {</span>
986
- <span class="cstat-no" title="statement not covered" > // if (typeof menuProps.getDefaultFocusedIndex === "function") {</span>
987
- <span class="cstat-no" title="statement not covered" > // return menuProps.getDefaultFocusedIndex(focusOptions);</span>
988
- <span class="cstat-no" title="statement not covered" > // }</span>
989
- <span class="cstat-no" title="statement not covered" ></span>
990
- <span class="cstat-no" title="statement not covered" > // const val = typeof value === "undefined" ? currentValue : value;</span>
991
- <span class="cstat-no" title="statement not covered" > // return options.findIndex((option) =&gt; option.value === val);</span>
992
- <span class="cstat-no" title="statement not covered" > // },</span>
993
- <span class="cstat-no" title="statement not covered" > // getFocusableElements() {</span>
994
- <span class="cstat-no" title="statement not covered" > // const menu = menuRef.current;</span>
995
- <span class="cstat-no" title="statement not covered" > // if (!menu) {</span>
996
- <span class="cstat-no" title="statement not covered" > // return [];</span>
997
- <span class="cstat-no" title="statement not covered" > // }</span>
998
- <span class="cstat-no" title="statement not covered" ></span>
999
- <span class="cstat-no" title="statement not covered" > // return [</span>
1000
- <span class="cstat-no" title="statement not covered" > // ...menu.querySelectorAll&lt;HTMLLIElement&gt;(</span>
1001
- <span class="cstat-no" title="statement not covered" > // '[role="option"]:not([aria-disabled])'</span>
1002
- <span class="cstat-no" title="statement not covered" > // ),</span>
1003
- <span class="cstat-no" title="statement not covered" > // ];</span>
1004
- <span class="cstat-no" title="statement not covered" > // },</span>
1005
- <span class="cstat-no" title="statement not covered" > });</span>
1006
- <span class="cstat-no" title="statement not covered" ></span>
1007
- <span class="cstat-no" title="statement not covered" > return {</span>
1008
- <span class="cstat-no" title="statement not covered" > show,</span>
1009
- <span class="cstat-no" title="statement not covered" > hide,</span>
1010
- <span class="cstat-no" title="statement not covered" > visible,</span>
1011
- <span class="cstat-no" title="statement not covered" > setVisible,</span>
1012
- <span class="cstat-no" title="statement not covered" > popupRef,</span>
1013
- <span class="cstat-no" title="statement not covered" > popupProps: {</span>
1014
- <span class="cstat-no" title="statement not covered" > "aria-labelledby": comboboxId,</span>
1015
- <span class="cstat-no" title="statement not covered" > id: popupId,</span>
1016
- <span class="cstat-no" title="statement not covered" > ref: popupRefCallback,</span>
1017
- <span class="cstat-no" title="statement not covered" > role: popup,</span>
1018
- <span class="cstat-no" title="statement not covered" > },</span>
1019
- <span class="cstat-no" title="statement not covered" > comboboxRef,</span>
1020
- <span class="cstat-no" title="statement not covered" > comboboxProps: {</span>
1021
- <span class="cstat-no" title="statement not covered" > ...movementProps,</span>
1022
- <span class="cstat-no" title="statement not covered" > "aria-haspopup": popup,</span>
1023
- <span class="cstat-no" title="statement not covered" > "aria-expanded": visible,</span>
1024
- <span class="cstat-no" title="statement not covered" > "aria-autocomplete": autocomplete === "select" ? undefined : autocomplete,</span>
1025
- <span class="cstat-no" title="statement not covered" > id: comboboxId,</span>
1026
- <span class="cstat-no" title="statement not covered" > ref: comboboxRefCallback,</span>
1027
- <span class="cstat-no" title="statement not covered" > role: "combobox",</span>
1028
- <span class="cstat-no" title="statement not covered" > },</span>
1029
- <span class="cstat-no" title="statement not covered" > movementProps,</span>
1030
- <span class="cstat-no" title="statement not covered" > movementContext,</span>
1031
- <span class="cstat-no" title="statement not covered" > currentFocusIndex,</span>
1032
- <span class="cstat-no" title="statement not covered" > setActiveDescendantId,</span>
1033
- <span class="cstat-no" title="statement not covered" > };</span>
1034
- <span class="cstat-no" title="statement not covered" >}</span>
1288
+ /**
1289
+ * @remarks \@since 6.0.0
1290
+ */
1291
+ export function useCombobox&lt;
1292
+ ComboboxEl extends HTMLElement = HTMLInputElement,
1293
+ PopupEl extends HTMLElement = HTMLElement,
1294
+ &gt;(
1295
+ options: ComboboxOptions&lt;ComboboxEl, PopupEl&gt;
1296
+ ): ComboboxImplementation&lt;ComboboxEl, PopupEl&gt; {
1297
+ const {
1298
+ form,
1299
+ popup = "listbox",
1300
+ onClick = noop,
1301
+ onFocus,
1302
+ onKeyDown,
1303
+ searchable,
1304
+ isNegativeOneAllowed,
1305
+ loopable,
1306
+ disabled,
1307
+ comboboxId: propComboboxId,
1308
+ comboboxRef: propComboboxRef,
1309
+ popupId: propPopupId,
1310
+ popupRef: propPopupRef,
1311
+ defaultVisible = false,
1312
+ onFocusChange = noop,
1313
+ extendKeyDown = noop,
1314
+ getFocusableElements = getNonDisabledOptions,
1315
+ getEnterDefaultFocusedIndex,
1316
+ getDefaultFocusedIndex,
1317
+ } = options;
1318
+ &nbsp;
1319
+ const {
1320
+ toggled: visible,
1321
+ enable: show,
1322
+ disable: hide,
1323
+ setToggled: setVisible,
1324
+ } = useToggle(defaultVisible);
1325
+ const popupId = useEnsuredId(propPopupId, "combobox-popup");
1326
+ const comboboxId = useEnsuredId(propComboboxId, "combobox");
1327
+ const [comboboxRef, comboboxRefCallback] = useEnsuredRef(propComboboxRef);
1328
+ const [popupRef, popupRefCallback] = useEnsuredRef(propPopupRef);
1329
+ const focusLast = useRef(false);
1330
+ const {
1331
+ movementProps,
1332
+ movementContext,
1333
+ currentFocusIndex,
1334
+ setActiveDescendantId,
1335
+ } = useKeyboardMovementProvider&lt;ComboboxEl&gt;({
1336
+ onFocus,
1337
+ onKeyDown,
1338
+ onClick(event) {
1339
+ onClick(event);
1340
+ if (disabled) {
1341
+ return;
1342
+ }
1343
+ &nbsp;
1344
+ show();
1345
+ },
1346
+ extendKeyDown(movementData) {
1347
+ extendKeyDown({
1348
+ ...movementData,
1349
+ show,
1350
+ hide,
1351
+ visible,
1352
+ focusLast,
1353
+ });
1354
+ const { event } = movementData;
1355
+ if (event.isPropagationStopped()) {
1356
+ return;
1357
+ }
1358
+ &nbsp;
1359
+ if (visible) {
1360
+ switch (event.key) {
1361
+ case "Tab":
1362
+ case "Escape":
1363
+ event.stopPropagation();
1364
+ hide();
1365
+ break;
1366
+ case "Enter":
1367
+ event.preventDefault();
1368
+ break;
1369
+ }
1370
+ &nbsp;
1371
+ // while visible, always use the default keyboard movement behavior
1372
+ return;
1373
+ }
1374
+ &nbsp;
1375
+ switch (event.key) {
1376
+ case "ArrowUp":
1377
+ case "ArrowDown":
1378
+ event.preventDefault();
1379
+ event.stopPropagation();
1380
+ focusLast.current = event.key === "ArrowUp";
1381
+ show();
1382
+ break;
1383
+ case "Enter":
1384
+ tryToSubmitRelatedForm(event, form);
1385
+ break;
1386
+ }
1387
+ },
1388
+ disabled,
1389
+ loopable,
1390
+ searchable,
1391
+ onFocusChange,
1392
+ programmatic: true,
1393
+ includeDisabled: false,
1394
+ tabIndexBehavior: "virtual",
1395
+ getFocusableElements(container, programmatic) {
1396
+ const popup = popupRef.current;
1397
+ if (!popup) {
1398
+ return [];
1399
+ }
1400
+ &nbsp;
1401
+ return getFocusableElements(<span class="branch-0 cbranch-no" title="branch not covered" >popup || container, p</span>rogrammatic);
1402
+ },
1403
+ isNegativeOneAllowed,
1404
+ getDefaultFocusedIndex,
1405
+ });
1406
+ const getTransitionCallbacks = (
1407
+ options: ComboboxTransitionOptions = {}
1408
+ ): Required&lt;ComboboxTransitionCallbacks&gt; =&gt; {
1409
+ const { onEntered, onEntering, onExiting, onExited, disableTransition } =
1410
+ options;
1411
+ &nbsp;
1412
+ const handleEntering =
1413
+ (callback: TransitionEnterHandler = noop, skipped: boolean) =&gt;
1414
+ (appearing: boolean) =&gt; {
1415
+ callback(appearing);
1416
+ &nbsp;
1417
+ const popup = popupRef.current;
1418
+ if (!popup || skipped) {
1419
+ return;
1420
+ }
1421
+ &nbsp;
1422
+ const focusables = getFocusableElements(popup, true);
1423
+ const index = getEnterDefaultFocusedIndex({
1424
+ focusLast: focusLast.current,
1425
+ focusables,
1426
+ currentFocusIndex: currentFocusIndex.current,
1427
+ });
1428
+ focusLast.current = false;
1429
+ currentFocusIndex.current = index;
1430
+ &nbsp;
1431
+ const option = focusables[index];
1432
+ if (!option) {
1433
+ return;
1434
+ }
1435
+ &nbsp;
1436
+ onFocusChange({
1437
+ index,
1438
+ element: option,
1439
+ });
1440
+ option.scrollIntoView({ block: "nearest" });
1441
+ setActiveDescendantId(option.id<span class="branch-0 cbranch-no" title="branch not covered" > || "");</span>
1442
+ };
1443
+ const handleExiting =
1444
+ (callback: TransitionExitHandler = noop, skipped: boolean) =&gt;
1445
+ (): void =&gt; {
1446
+ callback();
1447
+ &nbsp;
1448
+ if (!skipped) {
1449
+ // since the menu is unmounted or set to hidden while not visible, need
1450
+ // to clear the aria-activedescendant and current focus index when
1451
+ // hiding
1452
+ currentFocusIndex.current = -1;
1453
+ setActiveDescendantId("");
1454
+ }
1455
+ };
1456
+ &nbsp;
1457
+ const isTransitionCompleteSkipped =
1458
+ !disableTransition &amp;&amp; !TRANSITION_CONFIG.disabled;
1459
+ &nbsp;
1460
+ return {
1461
+ onEntering: handleEntering(onEntering, false),
1462
+ onEntered: handleEntering(onEntered, isTransitionCompleteSkipped),
1463
+ onExiting: handleExiting(onExiting, false),
1464
+ onExited: handleExiting(onExited, isTransitionCompleteSkipped),
1465
+ };
1466
+ };
1467
+ &nbsp;
1468
+ const popupProps: ComboboxWidgetPopupProps&lt;PopupEl&gt; = {
1469
+ id: popupId,
1470
+ ref: popupRefCallback,
1471
+ role: popup,
1472
+ };
1473
+ &nbsp;
1474
+ return {
1475
+ show,
1476
+ hide,
1477
+ visible,
1478
+ setVisible,
1479
+ focusLast,
1480
+ popupRef,
1481
+ popupProps,
1482
+ comboboxRef,
1483
+ comboboxProps: {
1484
+ ...movementProps,
1485
+ "aria-controls": popupId,
1486
+ "aria-disabled": disabled || undefined,
1487
+ "aria-expanded": visible,
1488
+ "aria-haspopup": popup,
1489
+ id: comboboxId,
1490
+ ref: comboboxRefCallback,
1491
+ role: "combobox",
1492
+ },
1493
+ movementProps,
1494
+ movementContext,
1495
+ currentFocusIndex,
1496
+ setActiveDescendantId,
1497
+ getTransitionCallbacks,
1498
+ getMenuProps(props = {}) {
1499
+ const { sheetProps, disableTransition } = props;
1500
+ return {
1501
+ anchor: BELOW_CENTER_ANCHOR,
1502
+ width: "min",
1503
+ ...props,
1504
+ ...popupProps,
1505
+ fixedTo: comboboxRef,
1506
+ visible,
1507
+ onRequestClose: hide,
1508
+ ...getTransitionCallbacks(props),
1509
+ sheetProps: {
1510
+ ...sheetProps,
1511
+ ...getTransitionCallbacks({
1512
+ ...sheetProps,
1513
+ disableTransition:
1514
+ <span class="branch-0 cbranch-no" title="branch not covered" > sheetProps?.disableTransition ?? d</span>isableTransition,
1515
+ }),
1516
+ },
1517
+ };
1518
+ },
1519
+ };
1520
+ }
1035
1521
  &nbsp;</pre></td></tr></table></pre>
1036
1522
 
1037
1523
  <div class='push'></div><!-- for sticky footer -->
@@ -1039,7 +1525,7 @@ export <span class="fstat-no" title="function not covered" >function useCombobox
1039
1525
  <div class='footer quiet pad2 space-top1 center small'>
1040
1526
  Code coverage generated by
1041
1527
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1042
- at 2023-05-17T02:41:05.012Z
1528
+ at 2024-03-03T14:43:04.971Z
1043
1529
  </div>
1044
1530
  <script src="../../prettify.js"></script>
1045
1531
  <script>