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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/.stylelintrc.json +14 -0
  2. package/.turbo/turbo-build.log +5 -5
  3. package/.turbo/turbo-lint.log +13 -0
  4. package/CHANGELOG.md +9 -0
  5. package/README.md +39 -24
  6. package/coverage/clover.xml +1013 -404
  7. package/coverage/coverage-final.json +9 -2
  8. package/coverage/lcov-report/AutoComplete.tsx.html +283 -0
  9. package/coverage/lcov-report/RootHtml.tsx.html +370 -0
  10. package/coverage/lcov-report/Select.tsx.html +1411 -0
  11. package/coverage/lcov-report/autocomplete/AutoComplete.tsx.html +283 -0
  12. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +283 -0
  13. package/coverage/lcov-report/autocomplete/index.html +161 -0
  14. package/coverage/lcov-report/autocomplete/useAutoComplete.ts.html +775 -0
  15. package/coverage/lcov-report/autocomplete/useAutocomplete.ts.html +775 -0
  16. package/coverage/lcov-report/autocomplete/useInlineAutoComplete.ts.html +340 -0
  17. package/coverage/lcov-report/autocomplete/useInlineAutocomplete.ts.html +346 -0
  18. package/coverage/lcov-report/autocomplete/utils.ts.html +106 -0
  19. package/coverage/lcov-report/avatar/Avatar.tsx.html +162 -99
  20. package/coverage/lcov-report/avatar/index.html +19 -34
  21. package/coverage/lcov-report/avatar/styles.ts.html +1 -1
  22. package/coverage/lcov-report/button/Button.tsx.html +85 -85
  23. package/coverage/lcov-report/button/index.html +12 -12
  24. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +36 -36
  25. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +26 -26
  26. package/coverage/lcov-report/dialog/index.html +34 -19
  27. package/coverage/lcov-report/form/AutoComplete.tsx.html +283 -0
  28. package/coverage/lcov-report/form/Form.tsx.html +22 -22
  29. package/coverage/lcov-report/form/OptGroup.tsx.html +169 -166
  30. package/coverage/lcov-report/form/Option.tsx.html +727 -0
  31. package/coverage/lcov-report/form/Select.tsx.html +962 -1112
  32. package/coverage/lcov-report/form/SelectOriginal.tsx.html +1630 -0
  33. package/coverage/lcov-report/form/SelectV2.tsx.html +1024 -0
  34. package/coverage/lcov-report/form/SelectedOption.tsx.html +250 -0
  35. package/coverage/lcov-report/form/index.html +57 -12
  36. package/coverage/lcov-report/form/selectUtils.ts.html +188 -221
  37. package/coverage/lcov-report/form/useAutoComplete.ts.html +787 -0
  38. package/coverage/lcov-report/form/useCombobox.ts.html +454 -460
  39. package/coverage/lcov-report/form/useComboboxList.ts.html +108 -93
  40. package/coverage/lcov-report/form/useFormReset.ts.html +229 -0
  41. package/coverage/lcov-report/form/useInlineAutoComplete.ts.html +379 -0
  42. package/coverage/lcov-report/form/useSelectCombobox.ts.html +499 -0
  43. package/coverage/lcov-report/form/utils.ts.html +209 -170
  44. package/coverage/lcov-report/icon/FontIcon.tsx.html +28 -28
  45. package/coverage/lcov-report/icon/MaterialIcon.tsx.html +235 -0
  46. package/coverage/lcov-report/icon/index.html +1 -1
  47. package/coverage/lcov-report/index.html +36 -21
  48. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  49. package/coverage/lcov-report/media-queries/index.html +1 -1
  50. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +188 -188
  51. package/coverage/lcov-report/menu/Menu.tsx.html +271 -265
  52. package/coverage/lcov-report/menu/MenuItem.tsx.html +292 -0
  53. package/coverage/lcov-report/menu/MenuVisibilityProvider.tsx.html +48 -33
  54. package/coverage/lcov-report/menu/index.html +45 -15
  55. package/coverage/lcov-report/menu/useContextMenu.ts.html +490 -0
  56. package/coverage/lcov-report/movement/index.html +19 -19
  57. package/coverage/lcov-report/movement/useKeyboardMovementProvider.ts.html +422 -383
  58. package/coverage/lcov-report/positioning/constants.ts.html +463 -0
  59. package/coverage/lcov-report/positioning/index.html +30 -30
  60. package/coverage/lcov-report/positioning/useFixedPositioning.ts.html +1321 -0
  61. package/coverage/lcov-report/progress/CircularProgress.tsx.html +184 -184
  62. package/coverage/lcov-report/progress/index.html +19 -34
  63. package/coverage/lcov-report/searching/caseInsensitive.ts.html +685 -0
  64. package/coverage/lcov-report/searching/fuzzy.ts.html +610 -0
  65. package/coverage/lcov-report/searching/index.html +161 -0
  66. package/coverage/lcov-report/searching/toSearchQuery.ts.html +139 -0
  67. package/coverage/lcov-report/searching/utils.ts.html +247 -0
  68. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  69. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  70. package/coverage/lcov-report/src/RootHtml.tsx.html +370 -0
  71. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  72. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +1 -1
  73. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  74. package/coverage/lcov-report/src/app-bar/index.html +1 -1
  75. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +1 -1
  76. package/coverage/lcov-report/src/avatar/index.html +1 -1
  77. package/coverage/lcov-report/src/avatar/styles.ts.html +1 -1
  78. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  79. package/coverage/lcov-report/src/badge/index.html +1 -1
  80. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  81. package/coverage/lcov-report/src/box/index.html +1 -1
  82. package/coverage/lcov-report/src/box/styles.ts.html +1 -1
  83. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +1 -1
  84. package/coverage/lcov-report/src/button/Button.tsx.html +1 -1
  85. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  86. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +1 -1
  87. package/coverage/lcov-report/src/button/TooltippedButton.tsx.html +1 -1
  88. package/coverage/lcov-report/src/button/buttonStyles.ts.html +1 -1
  89. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  90. package/coverage/lcov-report/src/button/index.html +1 -1
  91. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  92. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  93. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  94. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  95. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  96. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  97. package/coverage/lcov-report/src/card/ClickableCard.tsx.html +1 -1
  98. package/coverage/lcov-report/src/card/index.html +1 -1
  99. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  100. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  101. package/coverage/lcov-report/src/chip/index.html +1 -1
  102. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  103. package/coverage/lcov-report/src/cssUtils.ts.html +53 -53
  104. package/coverage/lcov-report/src/delegateEvent.ts.html +1 -1
  105. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +1 -1
  106. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +1 -1
  107. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +1 -1
  108. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +1 -1
  109. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +1 -1
  110. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +1 -1
  111. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  112. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +1 -1
  113. package/coverage/lcov-report/src/dialog/index.html +1 -1
  114. package/coverage/lcov-report/src/dialog/styles.ts.html +1 -1
  115. package/coverage/lcov-report/src/divider/Divider.tsx.html +1 -1
  116. package/coverage/lcov-report/src/divider/index.html +1 -1
  117. package/coverage/lcov-report/src/divider/styles.ts.html +1 -1
  118. package/coverage/lcov-report/src/draggable/index.html +1 -1
  119. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +1 -1
  120. package/coverage/lcov-report/src/draggable/utils.ts.html +1 -1
  121. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  122. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  123. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +1 -1
  124. package/coverage/lcov-report/src/expansion-panel/index.html +1 -1
  125. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  126. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  127. package/coverage/lcov-report/src/focus/index.html +1 -1
  128. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +1 -1
  129. package/coverage/lcov-report/src/focus/utils.ts.html +1 -1
  130. package/coverage/lcov-report/src/form/AutoComplete.tsx.html +283 -0
  131. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  132. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  133. package/coverage/lcov-report/src/form/FileInput.tsx.html +1 -1
  134. package/coverage/lcov-report/src/form/Form.tsx.html +11 -8
  135. package/coverage/lcov-report/src/form/FormMessage.tsx.html +1 -1
  136. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +1 -1
  137. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  138. package/coverage/lcov-report/src/form/InputToggle.tsx.html +1 -1
  139. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +56 -56
  140. package/coverage/lcov-report/src/form/Label.tsx.html +1 -1
  141. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  142. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +3 -3
  143. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +1 -1
  144. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +178 -232
  145. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +3 -3
  146. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  147. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +1 -1
  148. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +1 -1
  149. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  150. package/coverage/lcov-report/src/form/Option.tsx.html +1 -1
  151. package/coverage/lcov-report/src/form/Password.tsx.html +1 -1
  152. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  153. package/coverage/lcov-report/src/form/Select.tsx.html +894 -1146
  154. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  155. package/coverage/lcov-report/src/form/Slider.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  157. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  158. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  159. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +1 -1
  160. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +1 -1
  162. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +1 -1
  163. package/coverage/lcov-report/src/form/Switch.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +1 -1
  165. package/coverage/lcov-report/src/form/TextArea.tsx.html +1 -1
  166. package/coverage/lcov-report/src/form/TextField.tsx.html +1 -1
  167. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +1 -1
  168. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +1 -1
  169. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +1 -1
  170. package/coverage/lcov-report/src/form/fileUtils.ts.html +1 -1
  171. package/coverage/lcov-report/src/form/formConfig.ts.html +1 -1
  172. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +1 -1
  173. package/coverage/lcov-report/src/form/index.html +30 -900
  174. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +30 -30
  175. package/coverage/lcov-report/src/form/menuItemInputToggleStyles.ts.html +319 -0
  176. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +1 -1
  177. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  178. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  179. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  180. package/coverage/lcov-report/src/form/selectUtils.ts.html +1 -1
  181. package/coverage/lcov-report/src/form/sliderUtils.ts.html +1 -1
  182. package/coverage/lcov-report/src/form/switchStyles.ts.html +1 -1
  183. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +1 -1
  184. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  185. package/coverage/lcov-report/src/form/useAutoComplete.ts.html +787 -0
  186. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +1 -1
  187. package/coverage/lcov-report/src/form/useCombobox.ts.html +943 -457
  188. package/coverage/lcov-report/src/form/useEditableCombobox.ts.html +502 -0
  189. package/coverage/lcov-report/src/form/useFileUpload.ts.html +1 -1
  190. package/coverage/lcov-report/src/form/useInlineAutoComplete.ts.html +109 -0
  191. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +1 -1
  192. package/coverage/lcov-report/src/form/useNumberField.ts.html +1 -1
  193. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +1 -1
  194. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +1 -1
  195. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +1 -1
  196. package/coverage/lcov-report/src/form/useSelectCombobox.ts.html +295 -0
  197. package/coverage/lcov-report/src/form/useSlider.ts.html +1 -1
  198. package/coverage/lcov-report/src/form/useTextField.ts.html +1 -1
  199. package/coverage/lcov-report/src/form/utils.ts.html +200 -170
  200. package/coverage/lcov-report/src/form/validation.ts.html +1 -1
  201. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  202. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +1 -1
  203. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +1 -1
  204. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +28 -28
  205. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  206. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +1 -1
  207. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +1 -1
  208. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  209. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +51 -51
  210. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +10 -10
  211. package/coverage/lcov-report/src/icon/index.html +1 -1
  212. package/coverage/lcov-report/src/icon/material.ts.html +1 -1
  213. package/coverage/lcov-report/src/icon/materialConfig.ts.html +1 -1
  214. package/coverage/lcov-report/src/icon/styles.ts.html +38 -38
  215. package/coverage/lcov-report/src/index.html +9 -354
  216. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +1 -1
  217. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +1 -1
  218. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +87 -87
  219. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  220. package/coverage/lcov-report/src/interaction/index.html +1 -1
  221. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +83 -83
  222. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +7 -7
  223. package/coverage/lcov-report/src/interaction/utils.ts.html +1 -1
  224. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  225. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +1 -1
  226. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  227. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  228. package/coverage/lcov-report/src/layout/index.html +1 -1
  229. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +1 -1
  230. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  231. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  232. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  233. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  234. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  235. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  236. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  237. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  238. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  239. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +1 -1
  240. package/coverage/lcov-report/src/link/Link.tsx.html +1 -1
  241. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  242. package/coverage/lcov-report/src/link/index.html +1 -1
  243. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  244. package/coverage/lcov-report/src/list/List.tsx.html +30 -30
  245. package/coverage/lcov-report/src/list/ListItem.tsx.html +124 -124
  246. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +35 -35
  247. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +79 -79
  248. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  249. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  250. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  251. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +44 -47
  252. package/coverage/lcov-report/src/list/index.html +5 -5
  253. package/coverage/lcov-report/src/list/listItemStyles.ts.html +65 -65
  254. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +49 -49
  255. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  256. package/coverage/lcov-report/src/media-queries/index.html +1 -1
  257. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  258. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +1 -1
  259. package/coverage/lcov-report/src/menu/Menu.tsx.html +3 -3
  260. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  261. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +1 -1
  262. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  263. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  264. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +1 -1
  265. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  266. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +1 -1
  267. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +1 -1
  268. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  269. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  270. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  271. package/coverage/lcov-report/src/menu/index.html +1 -1
  272. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  273. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  274. package/coverage/lcov-report/src/menu/utils.ts.html +1 -1
  275. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  276. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  277. package/coverage/lcov-report/src/movement/index.html +17 -62
  278. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +1 -1
  279. package/coverage/lcov-report/src/movement/utils.ts.html +143 -119
  280. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +1 -1
  281. package/coverage/lcov-report/src/overlay/index.html +1 -1
  282. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +1 -1
  283. package/coverage/lcov-report/src/portal/Portal.tsx.html +1 -1
  284. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +36 -36
  285. package/coverage/lcov-report/src/portal/index.html +1 -1
  286. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  287. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +1 -1
  288. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +1 -1
  289. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +1 -1
  290. package/coverage/lcov-report/src/positioning/index.html +1 -1
  291. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +1 -1
  292. package/coverage/lcov-report/src/positioning/utils.ts.html +1 -1
  293. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +81 -81
  294. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +1 -1
  295. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  296. package/coverage/lcov-report/src/progress/index.html +1 -1
  297. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  298. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  299. package/coverage/lcov-report/src/responsive-item/index.html +1 -1
  300. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  301. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  302. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +1 -1
  303. package/coverage/lcov-report/src/scroll/index.html +1 -1
  304. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +1 -1
  305. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +1 -1
  306. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +1 -1
  307. package/coverage/lcov-report/src/segmented-button/index.html +1 -1
  308. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +1 -1
  309. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  310. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  311. package/coverage/lcov-report/src/sheet/index.html +1 -1
  312. package/coverage/lcov-report/src/sheet/styles.ts.html +1 -1
  313. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +1 -1
  314. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +1 -1
  315. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +1 -1
  316. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  317. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +1 -1
  318. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +1 -1
  319. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1 -1
  320. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +1 -1
  321. package/coverage/lcov-report/src/snackbar/index.html +1 -1
  322. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +1 -1
  323. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +1 -1
  324. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  325. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  326. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +142 -142
  327. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +88 -88
  328. package/coverage/lcov-report/src/suspense/index.html +32 -32
  329. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  330. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  331. package/coverage/lcov-report/src/table/TableCell.tsx.html +1 -1
  332. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +1 -1
  333. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  334. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +1 -1
  335. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  336. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  337. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  338. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  339. package/coverage/lcov-report/src/table/TableRadio.tsx.html +1 -1
  340. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  341. package/coverage/lcov-report/src/table/index.html +1 -1
  342. package/coverage/lcov-report/src/table/tableCellStyles.ts.html +1 -1
  343. package/coverage/lcov-report/src/table/tableContainerStyles.ts.html +1 -1
  344. package/coverage/lcov-report/src/table/tableFooterStyles.ts.html +1 -1
  345. package/coverage/lcov-report/src/table/tableHeaderStyles.ts.html +1 -1
  346. package/coverage/lcov-report/src/table/tableRowStyles.ts.html +1 -1
  347. package/coverage/lcov-report/src/table/tableStyles.ts.html +1 -1
  348. package/coverage/lcov-report/src/tabs/Tab.tsx.html +1 -1
  349. package/coverage/lcov-report/src/tabs/TabList.tsx.html +1 -1
  350. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +1 -1
  351. package/coverage/lcov-report/src/tabs/index.html +1 -1
  352. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +1 -1
  353. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +1 -1
  354. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +1 -1
  355. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +1 -1
  356. package/coverage/lcov-report/src/tabs/useTabList.ts.html +1 -1
  357. package/coverage/lcov-report/src/tabs/useTabs.ts.html +1 -1
  358. package/coverage/lcov-report/src/tabs/utils.ts.html +1 -1
  359. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  360. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  361. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +18 -6
  362. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  363. package/coverage/lcov-report/src/test-utils/index.html +7 -7
  364. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +9 -9
  365. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  366. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  367. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  368. package/coverage/lcov-report/src/test-utils/polyfills/TextDecoder.ts.html +106 -0
  369. package/coverage/lcov-report/src/test-utils/polyfills/TextEncoder.ts.html +100 -0
  370. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  371. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  372. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  373. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  374. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  375. package/coverage/lcov-report/src/test-utils/root-html-environment.ts.html +85 -0
  376. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  377. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  378. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +1 -1
  379. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  380. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  381. package/coverage/lcov-report/src/theme/index.html +1 -1
  382. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  383. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  384. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  385. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  386. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  387. package/coverage/lcov-report/src/theme/utils.ts.html +1 -1
  388. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +1 -1
  389. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +1 -1
  390. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  391. package/coverage/lcov-report/src/tooltip/index.html +1 -1
  392. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +1 -1
  393. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +1 -1
  394. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +1 -1
  395. package/coverage/lcov-report/src/tooltip/utils.ts.html +1 -1
  396. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  397. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  398. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  399. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  400. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  401. package/coverage/lcov-report/src/transition/Slide.tsx.html +1 -1
  402. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  403. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  404. package/coverage/lcov-report/src/transition/config.ts.html +3 -3
  405. package/coverage/lcov-report/src/transition/index.html +7 -7
  406. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  407. package/coverage/lcov-report/src/transition/skeletonPlaceholderUtils.ts.html +1 -1
  408. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +1 -1
  409. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  410. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +96 -150
  411. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  412. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  413. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +1 -1
  414. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  415. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +1 -1
  416. package/coverage/lcov-report/src/transition/useTransition.ts.html +152 -152
  417. package/coverage/lcov-report/src/transition/utils.ts.html +14 -14
  418. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +1 -1
  419. package/coverage/lcov-report/src/tree/Tree.tsx.html +1 -1
  420. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  421. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +1 -1
  422. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +1 -1
  423. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +8 -8
  424. package/coverage/lcov-report/src/tree/index.html +1 -1
  425. package/coverage/lcov-report/src/tree/styles.ts.html +5 -5
  426. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  427. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  428. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +1 -1
  429. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  430. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  431. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  432. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +12 -12
  433. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  434. package/coverage/lcov-report/src/typography/Typography.tsx.html +94 -94
  435. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +1 -1
  436. package/coverage/lcov-report/src/typography/index.html +1 -1
  437. package/coverage/lcov-report/src/useAsyncAction.ts.html +1 -1
  438. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  439. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  440. package/coverage/lcov-report/src/useElementSize.ts.html +1 -1
  441. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  442. package/coverage/lcov-report/src/useEnsuredRef.ts.html +11 -11
  443. package/coverage/lcov-report/src/useEnsuredState.ts.html +16 -16
  444. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  445. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +1 -1
  446. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  447. package/coverage/lcov-report/src/useLocalStorage.ts.html +1 -1
  448. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  449. package/coverage/lcov-report/src/usePageInactive.ts.html +1 -1
  450. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  451. package/coverage/lcov-report/src/useResizeObserver.ts.html +23 -23
  452. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  453. package/coverage/lcov-report/src/useToggle.ts.html +1 -1
  454. package/coverage/lcov-report/src/useUnmounted.ts.html +1 -1
  455. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  456. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  457. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/applyRef.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  460. package/coverage/lcov-report/src/utils/filters.ts.html +357 -84
  461. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  462. package/coverage/lcov-report/src/utils/getMiddleOfRange.ts.html +1 -1
  463. package/coverage/lcov-report/src/utils/getPercentage.ts.html +1 -1
  464. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  465. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  466. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  467. package/coverage/lcov-report/src/utils/index.html +13 -268
  468. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +1 -1
  469. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  470. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  471. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +1 -1
  472. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  473. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  474. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  475. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  476. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  477. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  478. package/coverage/lcov-report/transition/config.ts.html +5 -5
  479. package/coverage/lcov-report/transition/index.html +1 -1
  480. package/coverage/lcov-report/transition/useScaleTransition.ts.html +535 -0
  481. package/coverage/lcov-report/useAutoComplete.ts.html +787 -0
  482. package/coverage/lcov-report/useCollapseTransition.ts.html +166 -211
  483. package/coverage/lcov-report/useCombobox.ts.html +1513 -0
  484. package/coverage/lcov-report/useInlineAutoComplete.ts.html +379 -0
  485. package/coverage/lcov-report/useSelectCombobox.ts.html +295 -0
  486. package/coverage/lcov-report/utils/alphaNumericSort.ts.html +11 -50
  487. package/coverage/lcov-report/utils/filters.ts.html +1056 -201
  488. package/coverage/lcov-report/utils/index.html +10 -10
  489. package/coverage/lcov-report/utils/searching.ts.html +85 -0
  490. package/coverage/lcov-report/utils.ts.html +109 -277
  491. package/coverage/lcov.info +928 -259
  492. package/dist/RootHtml.d.ts +62 -0
  493. package/dist/RootHtml.js +49 -0
  494. package/dist/RootHtml.js.map +1 -0
  495. package/dist/avatar/Avatar.d.ts +14 -0
  496. package/dist/avatar/Avatar.js +5 -2
  497. package/dist/avatar/Avatar.js.map +1 -1
  498. package/dist/dialog/FixedDialog.d.ts +5 -4
  499. package/dist/dialog/FixedDialog.js +5 -4
  500. package/dist/dialog/FixedDialog.js.map +1 -1
  501. package/dist/form/NativeSelect.d.ts +5 -2
  502. package/dist/form/NativeSelect.js.map +1 -1
  503. package/dist/form/Option.js +3 -2
  504. package/dist/form/Option.js.map +1 -1
  505. package/dist/form/Select.d.ts +105 -15
  506. package/dist/form/Select.js +160 -249
  507. package/dist/form/Select.js.map +1 -1
  508. package/dist/form/SelectedOption.d.ts +21 -0
  509. package/dist/form/SelectedOption.js +37 -0
  510. package/dist/form/SelectedOption.js.map +1 -0
  511. package/dist/form/TextField.d.ts +2 -2
  512. package/dist/form/TextField.js.map +1 -1
  513. package/dist/form/_form.scss +8 -13
  514. package/dist/form/selectUtils.d.ts +1 -3
  515. package/dist/form/selectUtils.js +2 -10
  516. package/dist/form/selectUtils.js.map +1 -1
  517. package/dist/form/types.d.ts +6 -6
  518. package/dist/form/types.js.map +1 -1
  519. package/dist/form/useCombobox.d.ts +157 -0
  520. package/dist/form/useCombobox.js +206 -0
  521. package/dist/form/useCombobox.js.map +1 -0
  522. package/dist/form/useEditableCombobox.d.ts +15 -0
  523. package/dist/form/useEditableCombobox.js +101 -0
  524. package/dist/form/useEditableCombobox.js.map +1 -0
  525. package/dist/form/useFormReset.d.ts +16 -0
  526. package/dist/form/useFormReset.js +32 -0
  527. package/dist/form/useFormReset.js.map +1 -0
  528. package/dist/form/useListboxProvider.d.ts +1 -0
  529. package/dist/form/useListboxProvider.js +1 -0
  530. package/dist/form/useListboxProvider.js.map +1 -1
  531. package/dist/form/useSelectCombobox.d.ts +17 -0
  532. package/dist/form/useSelectCombobox.js +36 -0
  533. package/dist/form/useSelectCombobox.js.map +1 -0
  534. package/dist/form/utils.d.ts +11 -1
  535. package/dist/form/utils.js +6 -0
  536. package/dist/form/utils.js.map +1 -1
  537. package/dist/index.d.ts +14 -1
  538. package/dist/index.js +14 -1
  539. package/dist/index.js.map +1 -1
  540. package/dist/menu/Menu.js +12 -1
  541. package/dist/menu/Menu.js.map +1 -1
  542. package/dist/menu/useContextMenu.d.ts +3 -3
  543. package/dist/menu/useContextMenu.js +3 -3
  544. package/dist/menu/useContextMenu.js.map +1 -1
  545. package/dist/movement/types.d.ts +40 -21
  546. package/dist/movement/types.js.map +1 -1
  547. package/dist/movement/useKeyboardMovementProvider.js +15 -4
  548. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  549. package/dist/movement/utils.d.ts +7 -2
  550. package/dist/movement/utils.js +10 -0
  551. package/dist/movement/utils.js.map +1 -1
  552. package/dist/positioning/useFixedPositioning.js +0 -8
  553. package/dist/positioning/useFixedPositioning.js.map +1 -1
  554. package/dist/searching/caseInsensitive.d.ts +150 -0
  555. package/dist/searching/caseInsensitive.js +30 -0
  556. package/dist/searching/caseInsensitive.js.map +1 -0
  557. package/dist/searching/fuzzy.d.ts +128 -0
  558. package/dist/searching/fuzzy.js +54 -0
  559. package/dist/searching/fuzzy.js.map +1 -0
  560. package/dist/searching/toSearchQuery.d.ts +5 -0
  561. package/dist/searching/toSearchQuery.js +13 -0
  562. package/dist/searching/toSearchQuery.js.map +1 -0
  563. package/dist/searching/types.d.ts +28 -0
  564. package/dist/searching/types.js +5 -0
  565. package/dist/searching/types.js.map +1 -0
  566. package/dist/searching/utils.d.ts +21 -0
  567. package/dist/searching/utils.js +28 -0
  568. package/dist/searching/utils.js.map +1 -0
  569. package/dist/test-utils/IntersectionObserver.d.ts +12 -0
  570. package/dist/test-utils/ResizeObserver.d.ts +172 -0
  571. package/dist/test-utils/data-testid.d.ts +7 -0
  572. package/dist/test-utils/data-testid.js +1 -0
  573. package/dist/test-utils/data-testid.js.map +1 -1
  574. package/dist/test-utils/drag.d.ts +26 -0
  575. package/dist/test-utils/index.d.ts +7 -0
  576. package/dist/test-utils/jest-setup.d.ts +1 -0
  577. package/dist/test-utils/matchMedia.d.ts +101 -0
  578. package/dist/test-utils/polyfills/IntersectionObserver.d.ts +1 -0
  579. package/dist/test-utils/polyfills/ResizeObserver.d.ts +1 -0
  580. package/dist/test-utils/polyfills/TextDecoder.d.ts +1 -0
  581. package/dist/test-utils/polyfills/TextDecoder.js +8 -0
  582. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -0
  583. package/dist/test-utils/polyfills/TextEncoder.d.ts +1 -0
  584. package/dist/test-utils/polyfills/TextEncoder.js +6 -0
  585. package/dist/test-utils/polyfills/TextEncoder.js.map +1 -0
  586. package/dist/test-utils/polyfills/index.d.ts +7 -0
  587. package/dist/test-utils/polyfills/index.js +2 -0
  588. package/dist/test-utils/polyfills/index.js.map +1 -1
  589. package/dist/test-utils/polyfills/matchMedia.d.ts +1 -0
  590. package/dist/test-utils/polyfills/offsetParent.d.ts +1 -0
  591. package/dist/test-utils/polyfills/scrollIntoView.d.ts +1 -0
  592. package/dist/test-utils/render.d.ts +13 -0
  593. package/dist/test-utils/timers.d.ts +39 -0
  594. package/dist/transition/useCollapseTransition.d.ts +3 -18
  595. package/dist/transition/useCollapseTransition.js +1 -10
  596. package/dist/transition/useCollapseTransition.js.map +1 -1
  597. package/dist/transition/utils.js +7 -2
  598. package/dist/transition/utils.js.map +1 -1
  599. package/dist/useEnsuredState.d.ts +1 -1
  600. package/dist/useEnsuredState.js.map +1 -1
  601. package/dist/utils/alphaNumericSort.d.ts +1 -1
  602. package/dist/utils/alphaNumericSort.js +2 -10
  603. package/dist/utils/alphaNumericSort.js.map +1 -1
  604. package/jest.config.ts +4 -0
  605. package/package.json +14 -13
  606. package/src/RootHtml.tsx +95 -0
  607. package/src/__tests__/RootHtml.node.tsx +46 -0
  608. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +19 -0
  609. package/src/avatar/Avatar.tsx +24 -3
  610. package/src/avatar/__tests__/Avatar.tsx +1 -1
  611. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +6 -6
  612. package/src/dialog/FixedDialog.tsx +5 -4
  613. package/src/form/NativeSelect.tsx +6 -3
  614. package/src/form/Option.tsx +8 -2
  615. package/src/form/Select.tsx +251 -335
  616. package/src/form/SelectedOption.tsx +55 -0
  617. package/src/form/TextField.tsx +2 -2
  618. package/src/form/__tests__/Select.tsx +439 -0
  619. package/src/form/__tests__/__snapshots__/Select.tsx.snap +492 -0
  620. package/src/form/__tests__/useFormReset.tsx +195 -0
  621. package/src/form/_form.scss +8 -13
  622. package/src/form/selectUtils.ts +3 -14
  623. package/src/form/types.ts +6 -6
  624. package/src/form/useCombobox.ts +523 -0
  625. package/src/form/useEditableCombobox.ts +139 -0
  626. package/src/form/useFormReset.ts +48 -0
  627. package/src/form/useListboxProvider.ts +2 -0
  628. package/src/form/useSelectCombobox.ts +70 -0
  629. package/src/form/utils.ts +17 -4
  630. package/src/index.ts +14 -1
  631. package/src/menu/Menu.tsx +9 -1
  632. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +54 -0
  633. package/src/menu/__tests__/useContextMenu.tsx +41 -0
  634. package/src/menu/useContextMenu.ts +3 -3
  635. package/src/movement/types.ts +50 -25
  636. package/src/movement/useKeyboardMovementProvider.ts +21 -8
  637. package/src/movement/utils.ts +12 -2
  638. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -32
  639. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -14
  640. package/src/positioning/useFixedPositioning.ts +0 -6
  641. package/src/searching/__tests__/caseInsensitive.ts +165 -0
  642. package/src/searching/__tests__/fuzzy.ts +169 -0
  643. package/src/searching/__tests__/toSearchQuery.ts +21 -0
  644. package/src/searching/caseInsensitive.ts +200 -0
  645. package/src/searching/fuzzy.ts +175 -0
  646. package/src/searching/toSearchQuery.ts +18 -0
  647. package/src/searching/types.ts +34 -0
  648. package/src/searching/utils.ts +54 -0
  649. package/src/test-utils/data-testid.ts +5 -1
  650. package/src/test-utils/polyfills/TextDecoder.ts +7 -0
  651. package/src/test-utils/polyfills/TextEncoder.ts +5 -0
  652. package/src/test-utils/polyfills/index.ts +2 -0
  653. package/src/transition/__tests__/utils.ts +25 -0
  654. package/src/transition/useCollapseTransition.ts +6 -24
  655. package/src/transition/utils.ts +10 -5
  656. package/src/useEnsuredState.ts +1 -1
  657. package/src/utils/alphaNumericSort.ts +3 -16
  658. package/tsconfig.json +2 -2
  659. package/tsconfig.types.json +1 -1
  660. package/dist/form/SelectValue.d.ts +0 -17
  661. package/dist/form/SelectValue.js +0 -32
  662. package/dist/form/SelectValue.js.map +0 -1
  663. package/dist/utils/filters.d.ts +0 -196
  664. package/dist/utils/filters.js +0 -67
  665. package/dist/utils/filters.js.map +0 -1
  666. package/src/form/SelectValue.tsx +0 -39
  667. package/src/utils/filters.ts +0 -320
@@ -0,0 +1,200 @@
1
+ import { type TextExtractor } from "../types.js";
2
+ import { type BaseSearchOptions } from "./types.js";
3
+ import { defaultExtractor, search } from "./utils.js";
4
+
5
+ /**
6
+ * @remarks \@since 6.0.0
7
+ */
8
+ export interface CaseInsensitiveStartsWithOptions {
9
+ /**
10
+ * Set this to `true` if the item in the list must start with the query
11
+ * instead of only including it.
12
+ *
13
+ * @example
14
+ * Search Example
15
+ * ```ts
16
+ * const fruits = ["Banana", "Grape", "Apple", "Orange"];
17
+ *
18
+ * caseInsensitiveSearch({
19
+ * list: fruits,
20
+ * query: "ap",
21
+ * type: "search",
22
+ * });
23
+ * // "Grape"
24
+ *
25
+ * caseInsensitiveSearch({
26
+ * list: fruits,
27
+ * query: "ap",
28
+ * type: "search",
29
+ * startsWith: true,
30
+ * });
31
+ * // "Apple"
32
+ * ```
33
+ *
34
+ * @example
35
+ * Filter Example
36
+ * ```ts
37
+ * const fruits = ["Apple", "Banana", "Grape", "Orange"];
38
+ *
39
+ * caseInsensitiveSearch({
40
+ * list: fruits,
41
+ * query: "ap",
42
+ * });
43
+ * // ["Apple", "Grape"]
44
+ *
45
+ * caseInsensitiveSearch({
46
+ * list: fruits,
47
+ * query: "ap",
48
+ * startsWith: true,
49
+ * });
50
+ * // ["Apple"]
51
+ * ```
52
+ *
53
+ * @defaultValue `false`
54
+ */
55
+ startsWith?: boolean;
56
+ }
57
+
58
+ /**
59
+ * @remarks \@since 6.0.0
60
+ */
61
+ export interface IsCaseInsensitiveMatchOptions
62
+ extends CaseInsensitiveStartsWithOptions {
63
+ /**
64
+ * The current search query.
65
+ */
66
+ query: string;
67
+
68
+ /**
69
+ * The current value to compare against.
70
+ */
71
+ value: string;
72
+ }
73
+
74
+ /**
75
+ * @remarks \@since 6.0.0
76
+ */
77
+ export function isCaseInsensitiveMatch(
78
+ options: IsCaseInsensitiveMatchOptions
79
+ ): boolean {
80
+ const { query, value, startsWith } = options;
81
+ const matchIndex = value.indexOf(query);
82
+ if (startsWith) {
83
+ return matchIndex === 0;
84
+ }
85
+
86
+ return matchIndex !== -1;
87
+ }
88
+
89
+ /**
90
+ * @remarks \@since 6.0.0
91
+ */
92
+ export interface CaseInsensitiveOptions<T>
93
+ extends BaseSearchOptions<T>,
94
+ CaseInsensitiveStartsWithOptions {}
95
+
96
+ /**
97
+ * @example
98
+ * String list
99
+ * ```ts
100
+ * const fruits = ["Apple", "Banana", "Grape", "Orange"];
101
+ *
102
+ * caseInsensitiveSearch({
103
+ * list: fruits,
104
+ * query: "ap",
105
+ * });
106
+ * // ["Apple", "Grape"]
107
+ *
108
+ * caseInsensitiveSearch({
109
+ * list: fruits,
110
+ * query: "ap",
111
+ * startsWith: true,
112
+ * });
113
+ * // ["Apple"]
114
+ *
115
+ * caseInsensitiveSearch({
116
+ * list: fruits,
117
+ * query: " a p",
118
+ * });
119
+ * // []
120
+ *
121
+ * caseInsensitiveSearch({
122
+ * list: fruits,
123
+ * query: " a p",
124
+ * whitespace: "ignore",
125
+ * });
126
+ * // ["Apple", "Grape"]
127
+ *
128
+ * caseInsensitiveSearch({
129
+ * list: fruits,
130
+ * query: " ap ",
131
+ * whitespace: "trim",
132
+ * });
133
+ * // ["Apple", "Grape"]
134
+ * ```
135
+ *
136
+ * @example
137
+ * Objects
138
+ * ```ts
139
+ * const fruits = [
140
+ * { name: "Apple", value: 0 },
141
+ * { name: "Banana", value: 1 },
142
+ * { name: "Grape", value: 2 },
143
+ * { name: "Orange", value: 3 },
144
+ * ];
145
+ *
146
+ * caseInsensitiveSearch({
147
+ * list: fruits,
148
+ * query: "ap",
149
+ * extractor: (item) => item.name,
150
+ * });
151
+ * // [{ name: "Apple", value: 0 }, { name: "Grape", value: 2 }]
152
+ * ```
153
+ *
154
+ * @remarks \@since 6.0.0
155
+ */
156
+ export function caseInsensitiveSearch<T extends string>(
157
+ options: Omit<CaseInsensitiveOptions<T>, "extractor"> & { type?: "filter" }
158
+ ): readonly T[];
159
+ export function caseInsensitiveSearch<T extends string>(
160
+ options: Omit<CaseInsensitiveOptions<T>, "extractor"> & { type: "search" }
161
+ ): T | undefined;
162
+ export function caseInsensitiveSearch<T>(
163
+ options: CaseInsensitiveOptions<T> & {
164
+ extractor: TextExtractor<T>;
165
+ type?: "filter";
166
+ }
167
+ ): readonly T[];
168
+ export function caseInsensitiveSearch<T>(
169
+ options: CaseInsensitiveOptions<T> & {
170
+ extractor: TextExtractor<T>;
171
+ type: "search";
172
+ }
173
+ ): T | undefined;
174
+ export function caseInsensitiveSearch<T>(
175
+ options: CaseInsensitiveOptions<T>
176
+ ): readonly T[] | T | undefined {
177
+ const {
178
+ list,
179
+ type = "filter",
180
+ query,
181
+ extractor = defaultExtractor("caseInsensitiveSearch"),
182
+ startsWith,
183
+ whitespace,
184
+ } = options;
185
+
186
+ return search({
187
+ type,
188
+ list,
189
+ query,
190
+ extractor,
191
+ whitespace,
192
+ filter(q, value) {
193
+ return isCaseInsensitiveMatch({
194
+ query: q,
195
+ value,
196
+ startsWith,
197
+ });
198
+ },
199
+ });
200
+ }
@@ -0,0 +1,175 @@
1
+ import { type TextExtractor } from "../types.js";
2
+ import { type BaseSearchOptions } from "./types.js";
3
+ import { defaultExtractor, search } from "./utils.js";
4
+
5
+ /**
6
+ * @example
7
+ * ```tsx
8
+ * import { createFuzzyRegExp, toSearchQuery } from "@react-md/core":
9
+ * import { useDeferredValue, useMemo, useState, type ReactElement } from "react";
10
+ *
11
+ * function Example(): ReactElement {
12
+ * const [value, setValue] = useState("");
13
+ * const deferredValue = useDeferredValue(value)
14
+ *
15
+ * const match = useMemo(() => {
16
+ * const query = toSearchQuery(deferredValue);
17
+ * if (!query) {
18
+ * return;
19
+ * }
20
+ *
21
+ * const fuzzyRegExp = createFuzzyRegExp(query);
22
+ * return options.find(option => fuzzyRegExp.test(option.label)):
23
+ * }, [options])
24
+ *
25
+ * if (match) {
26
+ * // do something
27
+ * }
28
+ * }
29
+ *
30
+ * ```
31
+ *
32
+ * @remarks \@since 6.0.0
33
+ * @see {@link fuzzySearch}
34
+ */
35
+ export function createFuzzyRegExp(query: string): RegExp {
36
+ return new RegExp(
37
+ query
38
+ .split("")
39
+ .join("\\w*")
40
+ .replace(/(\(|\||\)|\\(?!w\*)|\[|\|-|\.|\^|\+|\$|\?|^(?!w)\*)/g, "\\$1")
41
+ // Couldn't get the matching of two '*' working, so replace them here..
42
+ .replace(/\*\*/g, "*\\*"),
43
+ "i"
44
+ );
45
+ }
46
+
47
+ /**
48
+ * @remarks \@since 6.0.0
49
+ */
50
+ export type FuzzySearchOptions<T> = BaseSearchOptions<T>;
51
+
52
+ /**
53
+ * Filters a list by making sure that all the letters appear in order ignoring
54
+ * case, punctuation, whitespace, and special characters. This is kind of the
55
+ * same filtering that appears in text editors.
56
+ *
57
+ * @example
58
+ * Simple Example
59
+ * ```ts
60
+ * const list = [
61
+ * "at",
62
+ * "charAt",
63
+ * "charCodeAt",
64
+ * "codePointAt",
65
+ * "concat",
66
+ * "constructor",
67
+ * "endsWith",
68
+ * "includes",
69
+ * "indexOf",
70
+ * "lastIndexOf",
71
+ * "length",
72
+ * "localeCompare",
73
+ * "match",
74
+ * "matchAll",
75
+ * "normalize",
76
+ * "padEnd",
77
+ * "padStart",
78
+ * "repeat",
79
+ * "replace",
80
+ * "replaceAll",
81
+ * "search",
82
+ * "slice",
83
+ * "split",
84
+ * "startsWith",
85
+ * "substring",
86
+ * "toLocaleLowerCase",
87
+ * "toLocaleUpperCase",
88
+ * "toLowerCase",
89
+ * "toString",
90
+ * "toUpperCase",
91
+ * "trim",
92
+ * "trimEnd",
93
+ * "trimStart",
94
+ * "valueOf",
95
+ * ];
96
+ *
97
+ * fuzzySearch({
98
+ * list,
99
+ * query: "la",
100
+ * });
101
+ * // [
102
+ * // "lastIndexOf",
103
+ * // ^^
104
+ * // "localeCompare",
105
+ * // ^ ^
106
+ * // "replace",
107
+ * // ^^
108
+ * // "replaceAll",
109
+ * // ^^
110
+ * // "toLocaleLowerCase",
111
+ * // ^ ^
112
+ * // "toLocaleUpperCase",
113
+ * // ^ ^
114
+ * // "toLowerCase",
115
+ * // ^ ^
116
+ * // ]
117
+ *
118
+ * fuzzySearch({
119
+ * list,
120
+ * query: "ad",
121
+ * type: "search",
122
+ * });
123
+ * // "charCodeAt"
124
+ * // ^ ^
125
+ * ```
126
+ *
127
+ * @remarks \@since 6.0.0
128
+ */
129
+ export function fuzzySearch<T extends string>(
130
+ options: Omit<FuzzySearchOptions<T>, "extractor"> & { type?: "filter" }
131
+ ): readonly T[];
132
+ export function fuzzySearch<T extends string>(
133
+ options: Omit<FuzzySearchOptions<T>, "extractor"> & { type?: "search" }
134
+ ): T | undefined;
135
+ export function fuzzySearch<T>(
136
+ option: FuzzySearchOptions<T> & {
137
+ extractor: TextExtractor<T>;
138
+ type?: "filter";
139
+ }
140
+ ): readonly T[];
141
+ export function fuzzySearch<T>(
142
+ option: FuzzySearchOptions<T> & {
143
+ extractor: TextExtractor<T>;
144
+ type?: "search";
145
+ }
146
+ ): T | undefined;
147
+ export function fuzzySearch<T>(
148
+ options: FuzzySearchOptions<T>
149
+ ): readonly T[] | T | undefined {
150
+ const {
151
+ list,
152
+ type = "filter",
153
+ query,
154
+ extractor = defaultExtractor("fuzzySearch"),
155
+ whitespace,
156
+ } = options;
157
+
158
+ // lazy initialize the RegExp since the base `filter` function will modify the
159
+ // query and never call the filter function if:
160
+ // - there is no query
161
+ // - the list is empty
162
+ let regexp: RegExp;
163
+ return search({
164
+ type,
165
+ list,
166
+ query,
167
+ extractor,
168
+ whitespace,
169
+ filter(query, value) {
170
+ return (
171
+ value.length > 0 && (regexp ??= createFuzzyRegExp(query)).test(value)
172
+ );
173
+ },
174
+ });
175
+ }
@@ -0,0 +1,18 @@
1
+ import { type WhitespaceFilter } from "./types.js";
2
+
3
+ /**
4
+ * @remarks \@since 6.0.0
5
+ */
6
+ export function toSearchQuery(
7
+ s: string,
8
+ whitespace: WhitespaceFilter = "keep"
9
+ ): string {
10
+ let q = s.toLowerCase();
11
+ if (whitespace === "ignore") {
12
+ q = q.replace(/\s/g, "");
13
+ } else if (whitespace === "trim") {
14
+ q = q.trim();
15
+ }
16
+
17
+ return q;
18
+ }
@@ -0,0 +1,34 @@
1
+ import { type TextExtractor } from "../types.js";
2
+
3
+ /**
4
+ * @remarks \@since 6.0.0
5
+ */
6
+ export type WhitespaceFilter = "ignore" | "trim" | "keep";
7
+
8
+ /**
9
+ * @remarks \@since 6.0.0
10
+ */
11
+ export interface BaseSearchOptions<T> {
12
+ list: readonly T[];
13
+
14
+ /**
15
+ * @defaultValue `"filter"`
16
+ */
17
+ type?: "search" | "filter";
18
+
19
+ /**
20
+ * The current query string. i.e. `"SeArch"`
21
+ */
22
+ query: string;
23
+
24
+ /**
25
+ * This is required if the list includes anything other than strings.
26
+ * @see {@link TextExtractor}
27
+ */
28
+ extractor?: TextExtractor<T>;
29
+
30
+ /**
31
+ * @defaultValue `"keep"`
32
+ */
33
+ whitespace?: WhitespaceFilter;
34
+ }
@@ -0,0 +1,54 @@
1
+ import { type TextExtractor } from "../types.js";
2
+ import { toSearchQuery } from "./toSearchQuery.js";
3
+ import { type BaseSearchOptions } from "./types.js";
4
+
5
+ /**
6
+ * @remarks \@since 6.0.0
7
+ * @internal
8
+ */
9
+ export const defaultExtractor =
10
+ <T>(name: string) =>
11
+ (item: T): string => {
12
+ if (typeof item === "string") {
13
+ return item;
14
+ }
15
+
16
+ throw new Error(
17
+ `A \`TextExtractor\` must be provided to \`${name}\` for lists that do not contain strings`
18
+ );
19
+ };
20
+
21
+ /**
22
+ * @internal
23
+ * @remarks \@since 6.0.0
24
+ */
25
+ export interface SearchOptions<T> extends BaseSearchOptions<T> {
26
+ type: "search" | "filter";
27
+ filter(query: string, value: string): boolean;
28
+ extractor: TextExtractor<T>;
29
+ }
30
+
31
+ /**
32
+ * @internal
33
+ * @remarks \@since 6.0.0
34
+ */
35
+ export function search<T>(
36
+ options: SearchOptions<T>
37
+ ): readonly T[] | T | undefined {
38
+ const { list, type, query, filter, extractor, whitespace = "keep" } = options;
39
+ const fallback = type === "search" ? undefined : list;
40
+ if (!list.length) {
41
+ return fallback;
42
+ }
43
+
44
+ const q = toSearchQuery(query, whitespace);
45
+ if (!q) {
46
+ return fallback;
47
+ }
48
+
49
+ const fn = type === "search" ? "find" : "filter";
50
+
51
+ return list[fn]((item) =>
52
+ filter(q, toSearchQuery(extractor(item), whitespace))
53
+ );
54
+ }
@@ -1,5 +1,9 @@
1
+ /// <reference types="react" />
2
+
1
3
  declare module "react" {
2
- interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
4
+ interface HTMLAttributes<T>
5
+ extends React.AriaAttributes,
6
+ React.DOMAttributes<T> {
3
7
  "data-testid"?: string | number;
4
8
  }
5
9
  }
@@ -0,0 +1,7 @@
1
+ import { TextDecoder } from "node:util";
2
+
3
+ if (typeof global.TextDecoder === "undefined") {
4
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
+ // @ts-expect-error browser TextDecoder does not support `null` while `node:util` does
6
+ global.TextDecoder = TextDecoder;
7
+ }
@@ -0,0 +1,5 @@
1
+ import { TextEncoder } from "node:util";
2
+
3
+ if (typeof global.TextEncoder === "undefined") {
4
+ global.TextEncoder = TextEncoder;
5
+ }
@@ -1,5 +1,7 @@
1
1
  import "./IntersectionObserver.js";
2
2
  import "./ResizeObserver.js";
3
+ import "./TextDecoder.js";
4
+ import "./TextEncoder.js";
3
5
  import "./matchMedia.js";
4
6
  import "./offsetParent.js";
5
7
  import "./scrollIntoView.js";
@@ -175,6 +175,31 @@ describe("getElementSizing", () => {
175
175
  expect(getComputedStyle).toHaveBeenCalledWith(clone);
176
176
  expect(removeChild).toHaveBeenCalledWith(clone);
177
177
  });
178
+
179
+ it("should add the paddingTop and paddingBottom to the maxHeight when `box-sizing: content-box` has been set", () => {
180
+ const scrollHeight = 1000;
181
+ const paddingTop = 20;
182
+ const paddingBottom = 16;
183
+ const container = document.createElement("div");
184
+ const element = document.createElement("div");
185
+ const clone = document.createElement("div");
186
+ container.appendChild(element);
187
+
188
+ jest.spyOn(clone, "scrollHeight", "get").mockReturnValue(scrollHeight);
189
+ jest.spyOn(element, "cloneNode").mockReturnValue(clone);
190
+ jest.spyOn(window, "getComputedStyle").mockReturnValue({
191
+ ...document.body.style,
192
+ paddingTop: "20px",
193
+ paddingBottom: "16px",
194
+ boxSizing: "content-box",
195
+ });
196
+
197
+ expect(getElementSizing(element)).toEqual({
198
+ maxHeight: scrollHeight + paddingTop + paddingBottom,
199
+ paddingTop,
200
+ paddingBottom,
201
+ });
202
+ });
178
203
  });
179
204
 
180
205
  describe("getTransitionClassNames", () => {
@@ -19,21 +19,6 @@ const noop = (): void => {
19
19
  // do nothing
20
20
  };
21
21
 
22
- /**
23
- * @remarks \@since 2.0.0
24
- */
25
- export const DEFAULT_COLLAPSE_MIN_HEIGHT = 0;
26
-
27
- /**
28
- * @remarks \@since 2.0.0
29
- */
30
- export const DEFAULT_COLLAPSE_MIN_PADDING_TOP = 0;
31
-
32
- /**
33
- * @remarks \@since 2.0.0
34
- */
35
- export const DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM = 0;
36
-
37
22
  /**
38
23
  * @remarks \@since 2.0.0
39
24
  */
@@ -58,8 +43,7 @@ export interface CollapseConfigurationStyle {
58
43
  * are all set to `0` (default), the child will be removed from the DOM while
59
44
  * collapsed.
60
45
  *
61
- * @see {@link DEFAULT_COLLAPSE_MIN_HEIGHT}
62
- * @defaultValue `DEFAULT_COLLAPSE_MIN_HEIGHT`
46
+ * @defaultValue `0`
63
47
  */
64
48
  minHeight?: number | string;
65
49
 
@@ -72,8 +56,7 @@ export interface CollapseConfigurationStyle {
72
56
  * are all set to `0` (default), the child will be removed from the DOM while
73
57
  * collapsed.
74
58
  *
75
- * @see {@link DEFAULT_COLLAPSE_MIN_PADDING_TOP}
76
- * @defaultValue `DEFAULT_COLLAPSE_MIN_PADDING_TOP`
59
+ * @defaultValue `0`
77
60
  */
78
61
  minPaddingTop?: number | string;
79
62
 
@@ -86,8 +69,7 @@ export interface CollapseConfigurationStyle {
86
69
  * are all set to `0` (default), the child will be removed from the DOM while
87
70
  * collapsed.
88
71
  *
89
- * @see {@link DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM}
90
- * @defaultValue `DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM`
72
+ * @defaultValue `0`
91
73
  */
92
74
  minPaddingBottom?: number | string;
93
75
  }
@@ -307,9 +289,9 @@ export function useCollapseTransition<E extends HTMLElement>(
307
289
  className,
308
290
  transitionIn,
309
291
  timeout = DEFAULT_COLLAPSE_TIMEOUT,
310
- minHeight = DEFAULT_COLLAPSE_MIN_HEIGHT,
311
- minPaddingTop = DEFAULT_COLLAPSE_MIN_PADDING_TOP,
312
- minPaddingBottom = DEFAULT_COLLAPSE_MIN_PADDING_BOTTOM,
292
+ minHeight = 0,
293
+ minPaddingTop = 0,
294
+ minPaddingBottom = 0,
313
295
  temporary = minHeight === 0 &&
314
296
  minPaddingTop === 0 &&
315
297
  minPaddingBottom === 0,
@@ -57,9 +57,9 @@ export interface CollapseSizing {
57
57
  * @internal
58
58
  */
59
59
  export function getElementSizing(element: HTMLElement | null): CollapseSizing {
60
- let maxHeight;
61
- let paddingTop;
62
- let paddingBottom;
60
+ let maxHeight: number | undefined;
61
+ let paddingTop: number | undefined;
62
+ let paddingBottom: number | undefined;
63
63
  if (element) {
64
64
  // clone the element so that the total height and padding can be calculated
65
65
  // without being affected by the collapse transition inline styles
@@ -74,14 +74,19 @@ export function getElementSizing(element: HTMLElement | null): CollapseSizing {
74
74
  container.appendChild(cloned);
75
75
  maxHeight = cloned.scrollHeight;
76
76
  const style = window.getComputedStyle(cloned);
77
+ const isContentBox = style.boxSizing === "content-box";
77
78
  if (style.paddingTop) {
78
79
  paddingTop = parseFloat(style.paddingTop);
79
- maxHeight + paddingTop;
80
+ if (isContentBox) {
81
+ maxHeight += paddingTop;
82
+ }
80
83
  }
81
84
 
82
85
  if (style.paddingBottom) {
83
86
  paddingBottom = parseFloat(style.paddingBottom);
84
- maxHeight + paddingBottom;
87
+ if (isContentBox) {
88
+ maxHeight += paddingBottom;
89
+ }
85
90
  }
86
91
  container.removeChild(cloned);
87
92
  }
@@ -9,7 +9,7 @@ import type { UseStateInitializer, UseStateSetter } from "./types.js";
9
9
  */
10
10
  export interface EnsuredStateOptions<
11
11
  V,
12
- Setter extends Dispatch<V> | UseStateSetter<V>,
12
+ Setter extends Dispatch<V> | UseStateSetter<V> = UseStateSetter<V>,
13
13
  > {
14
14
  value?: V;
15
15
  setValue?: Setter;
@@ -1,18 +1,5 @@
1
- import type { TextExtractor } from "../types.js";
2
-
3
- const identity = <T>(item: T): string => {
4
- if (typeof item === "string") {
5
- return item;
6
- }
7
-
8
- if (process.env.NODE_ENV !== "production") {
9
- throw new Error(
10
- "A `TextExtractor` must be provided to `alphaNumericSort` for lists that do not contain strings"
11
- );
12
- }
13
-
14
- return "";
15
- };
1
+ import { defaultExtractor } from "../searching/utils.js";
2
+ import { type TextExtractor } from "../types.js";
16
3
 
17
4
  /**
18
5
  * The default `Intl.Collator` that should be used for sorting large lists.
@@ -131,7 +118,7 @@ export function alphaNumericSort<T>(
131
118
  ): readonly T[] {
132
119
  const {
133
120
  compare = DEFAULT_COLLATOR.compare,
134
- extractor = identity,
121
+ extractor = defaultExtractor("alphaNumericSort"),
135
122
  descending = false,
136
123
  } = options;
137
124
 
package/tsconfig.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "allowSyntheticDefaultImports": true,
14
14
  "forceConsistentCasingInFileNames": true,
15
15
  "jsx": "preserve",
16
- "lib": ["dom", "dom.iterable", "esnext"],
16
+ "lib": ["dom", "dom.iterable", "esnext"]
17
17
  },
18
- "exclude": ["node_modules", "dist"],
18
+ "exclude": ["node_modules", "dist"]
19
19
  }