@react-md/core 1.0.0-next.16 → 1.0.0-next.17

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 (645) hide show
  1. package/dist/_box-shadows.scss +76 -0
  2. package/dist/_colors.scss +279 -277
  3. package/dist/_core.scss +107 -16
  4. package/dist/_object-fit.scss +86 -0
  5. package/dist/_utils.scss +246 -72
  6. package/dist/app-bar/AppBar.d.ts +1 -90
  7. package/dist/app-bar/AppBar.js +1 -40
  8. package/dist/app-bar/AppBar.js.map +1 -1
  9. package/dist/app-bar/AppBarTitle.d.ts +1 -27
  10. package/dist/app-bar/AppBarTitle.js +1 -15
  11. package/dist/app-bar/AppBarTitle.js.map +1 -1
  12. package/dist/app-bar/_app-bar.scss +156 -25
  13. package/dist/app-bar/styles.d.ts +117 -0
  14. package/dist/app-bar/styles.js +55 -0
  15. package/dist/app-bar/styles.js.map +1 -0
  16. package/dist/autocomplete/Autocomplete.d.ts +8 -79
  17. package/dist/autocomplete/Autocomplete.js +112 -83
  18. package/dist/autocomplete/Autocomplete.js.map +1 -1
  19. package/dist/autocomplete/AutocompleteChip.d.ts +8 -0
  20. package/dist/autocomplete/AutocompleteChip.js +34 -0
  21. package/dist/autocomplete/AutocompleteChip.js.map +1 -0
  22. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +5 -11
  23. package/dist/autocomplete/AutocompleteCircularProgress.js +4 -0
  24. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
  25. package/dist/autocomplete/AutocompleteClearButton.d.ts +9 -0
  26. package/dist/autocomplete/AutocompleteClearButton.js +29 -0
  27. package/dist/autocomplete/AutocompleteClearButton.js.map +1 -0
  28. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +4 -26
  29. package/dist/autocomplete/AutocompleteDropdownButton.js +5 -1
  30. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
  31. package/dist/autocomplete/AutocompleteListboxChildren.d.ts +22 -0
  32. package/dist/autocomplete/AutocompleteListboxChildren.js +37 -0
  33. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -0
  34. package/dist/autocomplete/_autocomplete.scss +362 -34
  35. package/dist/autocomplete/autocompleteStyles.d.ts +22 -0
  36. package/dist/autocomplete/autocompleteStyles.js +17 -8
  37. package/dist/autocomplete/autocompleteStyles.js.map +1 -1
  38. package/dist/autocomplete/defaults.d.ts +9 -9
  39. package/dist/autocomplete/defaults.js +13 -13
  40. package/dist/autocomplete/defaults.js.map +1 -1
  41. package/dist/autocomplete/types.d.ts +554 -56
  42. package/dist/autocomplete/types.js.map +1 -1
  43. package/dist/autocomplete/useAutocomplete.d.ts +22 -0
  44. package/dist/autocomplete/useAutocomplete.js +281 -0
  45. package/dist/autocomplete/useAutocomplete.js.map +1 -0
  46. package/dist/autocomplete/utils.d.ts +81 -0
  47. package/dist/autocomplete/utils.js +108 -0
  48. package/dist/autocomplete/utils.js.map +1 -0
  49. package/dist/avatar/_avatar.scss +93 -2
  50. package/dist/badge/Badge.d.ts +1 -20
  51. package/dist/badge/Badge.js +1 -14
  52. package/dist/badge/Badge.js.map +1 -1
  53. package/dist/badge/_badge.scss +90 -3
  54. package/dist/badge/styles.d.ts +26 -0
  55. package/dist/badge/styles.js +18 -0
  56. package/dist/badge/styles.js.map +1 -0
  57. package/dist/box/Box.js +2 -1
  58. package/dist/box/Box.js.map +1 -1
  59. package/dist/box/_box.scss +130 -17
  60. package/dist/box/styles.d.ts +6 -0
  61. package/dist/box/styles.js +2 -1
  62. package/dist/box/styles.js.map +1 -1
  63. package/dist/button/AsyncButton.d.ts +1 -1
  64. package/dist/button/AsyncButton.js.map +1 -1
  65. package/dist/button/Button.d.ts +2 -1
  66. package/dist/button/Button.js +2 -1
  67. package/dist/button/Button.js.map +1 -1
  68. package/dist/button/_button.scss +157 -25
  69. package/dist/card/Card.d.ts +16 -0
  70. package/dist/card/Card.js +11 -3
  71. package/dist/card/Card.js.map +1 -1
  72. package/dist/card/ClickableCard.d.ts +2 -1
  73. package/dist/card/ClickableCard.js +5 -2
  74. package/dist/card/ClickableCard.js.map +1 -1
  75. package/dist/card/_card.scss +90 -19
  76. package/dist/card/styles.d.ts +0 -7
  77. package/dist/card/styles.js +2 -3
  78. package/dist/card/styles.js.map +1 -1
  79. package/dist/chip/Chip.d.ts +2 -1
  80. package/dist/chip/Chip.js +2 -1
  81. package/dist/chip/Chip.js.map +1 -1
  82. package/dist/chip/_chip.scss +42 -20
  83. package/dist/chip/styles.d.ts +12 -10
  84. package/dist/chip/styles.js.map +1 -1
  85. package/dist/cssUtils.js.map +1 -1
  86. package/dist/delegateEvent.d.ts +2 -2
  87. package/dist/delegateEvent.js.map +1 -1
  88. package/dist/dialog/Dialog.d.ts +8 -21
  89. package/dist/dialog/Dialog.js +27 -27
  90. package/dist/dialog/Dialog.js.map +1 -1
  91. package/dist/dialog/FixedDialog.d.ts +1 -3
  92. package/dist/dialog/FixedDialog.js +0 -8
  93. package/dist/dialog/FixedDialog.js.map +1 -1
  94. package/dist/dialog/_dialog.scss +67 -13
  95. package/dist/dialog/styles.d.ts +56 -0
  96. package/dist/dialog/styles.js +29 -2
  97. package/dist/dialog/styles.js.map +1 -1
  98. package/dist/divider/Divider.d.ts +0 -11
  99. package/dist/divider/Divider.js.map +1 -1
  100. package/dist/divider/_divider.scss +7 -1
  101. package/dist/divider/styles.d.ts +11 -0
  102. package/dist/divider/styles.js.map +1 -1
  103. package/dist/draggable/useDraggable.d.ts +6 -6
  104. package/dist/draggable/useDraggable.js.map +1 -1
  105. package/dist/draggable/utils.d.ts +3 -3
  106. package/dist/draggable/utils.js.map +1 -1
  107. package/dist/expansion-panel/ExpansionPanel.d.ts +1 -1
  108. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  109. package/dist/expansion-panel/_expansion-panel.scss +5 -1
  110. package/dist/expansion-panel/useExpansionPanels.js +12 -24
  111. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  112. package/dist/{form → files}/FileInput.d.ts +3 -6
  113. package/dist/{form → files}/FileInput.js +3 -6
  114. package/dist/files/FileInput.js.map +1 -0
  115. package/dist/files/_files.scss +22 -0
  116. package/dist/files/styles.d.ts +5 -0
  117. package/dist/files/styles.js +7 -0
  118. package/dist/files/styles.js.map +1 -0
  119. package/dist/{form → files}/useFileUpload.d.ts +7 -9
  120. package/dist/{form → files}/useFileUpload.js +5 -7
  121. package/dist/files/useFileUpload.js.map +1 -0
  122. package/dist/files/utils.d.ts +169 -0
  123. package/dist/files/utils.js +114 -0
  124. package/dist/files/utils.js.map +1 -0
  125. package/dist/{form/fileUtils.d.ts → files/validation.d.ts} +9 -174
  126. package/dist/{form/fileUtils.js → files/validation.js} +9 -134
  127. package/dist/files/validation.js.map +1 -0
  128. package/dist/focus/useFocusContainer.d.ts +2 -2
  129. package/dist/focus/useFocusContainer.js.map +1 -1
  130. package/dist/focus/utils.js.map +1 -1
  131. package/dist/form/FormMessage.js.map +1 -1
  132. package/dist/form/FormMessageContainer.js +4 -2
  133. package/dist/form/FormMessageContainer.js.map +1 -1
  134. package/dist/form/InputToggle.d.ts +2 -1
  135. package/dist/form/InputToggle.js +2 -1
  136. package/dist/form/InputToggle.js.map +1 -1
  137. package/dist/form/InputToggleIcon.js.map +1 -1
  138. package/dist/form/Label.js +2 -2
  139. package/dist/form/Label.js.map +1 -1
  140. package/dist/form/Listbox.d.ts +24 -0
  141. package/dist/form/Listbox.js +46 -0
  142. package/dist/form/Listbox.js.map +1 -0
  143. package/dist/form/ListboxProvider.d.ts +21 -0
  144. package/dist/form/{useListboxProvider.js → ListboxProvider.js} +1 -1
  145. package/dist/form/ListboxProvider.js.map +1 -0
  146. package/dist/form/MenuItemTextField.js +1 -2
  147. package/dist/form/MenuItemTextField.js.map +1 -1
  148. package/dist/form/NativeSelect.js +7 -4
  149. package/dist/form/NativeSelect.js.map +1 -1
  150. package/dist/form/Option.d.ts +49 -10
  151. package/dist/form/Option.js +11 -9
  152. package/dist/form/Option.js.map +1 -1
  153. package/dist/form/Password.js.map +1 -1
  154. package/dist/form/Select.d.ts +2 -2
  155. package/dist/form/Select.js +81 -85
  156. package/dist/form/Select.js.map +1 -1
  157. package/dist/form/Slider.d.ts +4 -4
  158. package/dist/form/Slider.js +6 -2
  159. package/dist/form/Slider.js.map +1 -1
  160. package/dist/form/SliderThumb.d.ts +3 -3
  161. package/dist/form/SliderThumb.js.map +1 -1
  162. package/dist/form/SliderValueMarks.d.ts +2 -2
  163. package/dist/form/SliderValueMarks.js.map +1 -1
  164. package/dist/form/SliderValueTooltip.js.map +1 -1
  165. package/dist/form/TextArea.js +1 -2
  166. package/dist/form/TextArea.js.map +1 -1
  167. package/dist/form/TextField.js +1 -2
  168. package/dist/form/TextField.js.map +1 -1
  169. package/dist/form/TextFieldContainer.js +1 -2
  170. package/dist/form/TextFieldContainer.js.map +1 -1
  171. package/dist/form/_form.scss +186 -121
  172. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  173. package/dist/form/formMessageContainerStyles.js +11 -0
  174. package/dist/form/formMessageContainerStyles.js.map +1 -0
  175. package/dist/form/inputToggleStyles.js.map +1 -1
  176. package/dist/form/optionStyles.d.ts +1 -0
  177. package/dist/form/optionStyles.js +2 -2
  178. package/dist/form/optionStyles.js.map +1 -1
  179. package/dist/form/selectUtils.js.map +1 -1
  180. package/dist/form/sliderUtils.d.ts +1 -1
  181. package/dist/form/sliderUtils.js.map +1 -1
  182. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  183. package/dist/form/textFieldContainerStyles.js +1 -2
  184. package/dist/form/textFieldContainerStyles.js.map +1 -1
  185. package/dist/form/types.d.ts +3 -10
  186. package/dist/form/types.js.map +1 -1
  187. package/dist/form/useCheckboxGroup.d.ts +17 -17
  188. package/dist/form/useCheckboxGroup.js +9 -17
  189. package/dist/form/useCheckboxGroup.js.map +1 -1
  190. package/dist/form/useCombobox.d.ts +56 -21
  191. package/dist/form/useCombobox.js +19 -4
  192. package/dist/form/useCombobox.js.map +1 -1
  193. package/dist/form/useEditableCombobox.d.ts +24 -4
  194. package/dist/form/useEditableCombobox.js +5 -0
  195. package/dist/form/useEditableCombobox.js.map +1 -1
  196. package/dist/form/useNumberField.js.map +1 -1
  197. package/dist/form/useRadioGroup.d.ts +6 -6
  198. package/dist/form/useRadioGroup.js.map +1 -1
  199. package/dist/form/useResizingTextArea.js.map +1 -1
  200. package/dist/form/useSelectCombobox.d.ts +3 -4
  201. package/dist/form/useSelectCombobox.js.map +1 -1
  202. package/dist/form/useTextField.d.ts +1 -1
  203. package/dist/form/useTextField.js.map +1 -1
  204. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  205. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  206. package/dist/hoverMode/useHoverMode.js.map +1 -1
  207. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  208. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  209. package/dist/icon/_icon.scss +151 -2
  210. package/dist/icon/iconConfig.d.ts +10 -0
  211. package/dist/icon/iconConfig.js +7 -0
  212. package/dist/icon/iconConfig.js.map +1 -1
  213. package/dist/icon/materialConfig.js.map +1 -1
  214. package/dist/icon/styles.js.map +1 -1
  215. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  216. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  217. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  218. package/dist/interaction/types.d.ts +20 -2
  219. package/dist/interaction/types.js.map +1 -1
  220. package/dist/interaction/useElementInteraction.d.ts +7 -1
  221. package/dist/interaction/useElementInteraction.js +1 -2
  222. package/dist/interaction/useElementInteraction.js.map +1 -1
  223. package/dist/interaction/utils.d.ts +2 -2
  224. package/dist/interaction/utils.js +2 -2
  225. package/dist/interaction/utils.js.map +1 -1
  226. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  227. package/dist/layout/_layout.scss +23 -10
  228. package/dist/layout/useExpandableLayout.d.ts +3 -3
  229. package/dist/layout/useExpandableLayout.js.map +1 -1
  230. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  231. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  232. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  233. package/dist/layout/useTemporaryLayout.js.map +1 -1
  234. package/dist/link/SkipToMainContent.js.map +1 -1
  235. package/dist/list/ListItem.d.ts +2 -1
  236. package/dist/list/ListItem.js +2 -1
  237. package/dist/list/ListItem.js.map +1 -1
  238. package/dist/list/ListItemChildren.js.map +1 -1
  239. package/dist/list/ListItemLink.d.ts +2 -1
  240. package/dist/list/ListItemLink.js +2 -1
  241. package/dist/list/ListItemLink.js.map +1 -1
  242. package/dist/list/_list.scss +6 -5
  243. package/dist/media-queries/_media-queries.scss +12 -0
  244. package/dist/media-queries/appSize.js.map +1 -1
  245. package/dist/media-queries/useMediaQuery.js +3 -1
  246. package/dist/media-queries/useMediaQuery.js.map +1 -1
  247. package/dist/menu/DropdownMenu.js.map +1 -1
  248. package/dist/menu/Menu.d.ts +8 -3
  249. package/dist/menu/Menu.js +2 -1
  250. package/dist/menu/Menu.js.map +1 -1
  251. package/dist/menu/MenuItemButton.js +6 -2
  252. package/dist/menu/MenuItemButton.js.map +1 -1
  253. package/dist/menu/useContextMenu.d.ts +3 -3
  254. package/dist/menu/useContextMenu.js.map +1 -1
  255. package/dist/movement/types.d.ts +5 -5
  256. package/dist/movement/types.js.map +1 -1
  257. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  258. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  259. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  260. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  261. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  262. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  263. package/dist/navigation/NavItemButton.d.ts +1 -1
  264. package/dist/navigation/NavItemButton.js +1 -0
  265. package/dist/navigation/NavItemButton.js.map +1 -1
  266. package/dist/navigation/NavItemLink.d.ts +3 -2
  267. package/dist/navigation/NavItemLink.js +6 -2
  268. package/dist/navigation/NavItemLink.js.map +1 -1
  269. package/dist/navigation/NavSubheader.d.ts +2 -3
  270. package/dist/navigation/NavSubheader.js.map +1 -1
  271. package/dist/navigation/Navigation.d.ts +1 -1
  272. package/dist/navigation/Navigation.js.map +1 -1
  273. package/dist/navigation/_navigation.scss +6 -5
  274. package/dist/navigation/types.d.ts +54 -6
  275. package/dist/navigation/types.js.map +1 -1
  276. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  277. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  278. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  279. package/dist/navigation/useNavigationExpansion.js +77 -0
  280. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  281. package/dist/navigation/utils.d.ts +13 -0
  282. package/dist/navigation/utils.js +36 -0
  283. package/dist/navigation/utils.js.map +1 -0
  284. package/dist/objectFit.d.ts +69 -0
  285. package/dist/objectFit.js +52 -0
  286. package/dist/objectFit.js.map +1 -0
  287. package/dist/overlay/_overlay.scss +2 -1
  288. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  289. package/dist/positioning/useFixedPositioning.js +10 -5
  290. package/dist/positioning/useFixedPositioning.js.map +1 -1
  291. package/dist/positioning/utils.js.map +1 -1
  292. package/dist/progress/LinearProgress.js.map +1 -1
  293. package/dist/progress/_progress.scss +20 -14
  294. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  295. package/dist/responsive-item/ResponsiveItem.js +68 -0
  296. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  297. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
  298. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
  299. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  300. package/dist/responsive-item/_responsive-item.scss +110 -133
  301. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  302. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  303. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  304. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  305. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  306. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  307. package/dist/scroll/useScrollLock.d.ts +5 -0
  308. package/dist/scroll/useScrollLock.js.map +1 -1
  309. package/dist/searching/utils.d.ts +2 -2
  310. package/dist/searching/utils.js.map +1 -1
  311. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  312. package/dist/segmented-button/SegmentedButton.js +2 -1
  313. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  314. package/dist/segmented-button/_segmented-button.scss +6 -6
  315. package/dist/sheet/_sheet.scss +18 -6
  316. package/dist/snackbar/ToastManager.js +15 -5
  317. package/dist/snackbar/ToastManager.js.map +1 -1
  318. package/dist/snackbar/_snackbar.scss +30 -17
  319. package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
  320. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  321. package/dist/table/_table.scss +15 -3
  322. package/dist/table/tableCellStyles.d.ts +7 -3
  323. package/dist/table/tableCellStyles.js +2 -2
  324. package/dist/table/tableCellStyles.js.map +1 -1
  325. package/dist/tabs/Tab.d.ts +2 -1
  326. package/dist/tabs/Tab.js +2 -1
  327. package/dist/tabs/Tab.js.map +1 -1
  328. package/dist/tabs/TabList.d.ts +2 -2
  329. package/dist/tabs/TabList.js.map +1 -1
  330. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  331. package/dist/tabs/TabListScrollButton.js +1 -1
  332. package/dist/tabs/TabListScrollButton.js.map +1 -1
  333. package/dist/tabs/_tabs.scss +30 -9
  334. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  335. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  336. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  337. package/dist/tabs/tabStyles.d.ts +3 -0
  338. package/dist/tabs/tabStyles.js.map +1 -1
  339. package/dist/tabs/useTabList.d.ts +1 -8
  340. package/dist/tabs/useTabList.js +1 -0
  341. package/dist/tabs/useTabList.js.map +1 -1
  342. package/dist/tabs/useTabs.d.ts +6 -6
  343. package/dist/tabs/useTabs.js.map +1 -1
  344. package/dist/tabs/utils.d.ts +0 -18
  345. package/dist/tabs/utils.js +0 -15
  346. package/dist/tabs/utils.js.map +1 -1
  347. package/dist/test-utils/matchMedia.d.ts +1 -1
  348. package/dist/test-utils/matchMedia.js +4 -4
  349. package/dist/test-utils/matchMedia.js.map +1 -1
  350. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  351. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  352. package/dist/test-utils/timers.d.ts +9 -5
  353. package/dist/test-utils/timers.js +5 -5
  354. package/dist/test-utils/timers.js.map +1 -1
  355. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  356. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  357. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  358. package/dist/theme/ThemeProvider.js +3 -1
  359. package/dist/theme/ThemeProvider.js.map +1 -1
  360. package/dist/theme/_a11y.scss +77 -13
  361. package/dist/theme/_colors.scss +279 -277
  362. package/dist/theme/_theme.scss +308 -37
  363. package/dist/theme/isColorScheme.d.ts +16 -0
  364. package/dist/theme/isColorScheme.js +19 -0
  365. package/dist/theme/isColorScheme.js.map +1 -0
  366. package/dist/theme/types.d.ts +53 -1
  367. package/dist/theme/types.js +1 -23
  368. package/dist/theme/types.js.map +1 -1
  369. package/dist/theme/useCSSVariables.d.ts +2 -19
  370. package/dist/theme/useCSSVariables.js.map +1 -1
  371. package/dist/theme/useColorScheme.d.ts +1 -35
  372. package/dist/theme/useColorScheme.js.map +1 -1
  373. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  374. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  375. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  376. package/dist/theme/useColorSchemeProvider.js +1 -1
  377. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  378. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  379. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  380. package/dist/theme/utils.js.map +1 -1
  381. package/dist/tooltip/useTooltip.d.ts +14 -9
  382. package/dist/tooltip/useTooltip.js +2 -1
  383. package/dist/tooltip/useTooltip.js.map +1 -1
  384. package/dist/transition/_transition.scss +16 -9
  385. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  386. package/dist/transition/types.d.ts +1 -1
  387. package/dist/transition/types.js.map +1 -1
  388. package/dist/transition/useCarousel.d.ts +3 -3
  389. package/dist/transition/useCarousel.js.map +1 -1
  390. package/dist/transition/useCollapseTransition.js.map +1 -1
  391. package/dist/transition/useTransition.js +1 -0
  392. package/dist/transition/useTransition.js.map +1 -1
  393. package/dist/transition/utils.js.map +1 -1
  394. package/dist/tree/TreeItem.d.ts +2 -1
  395. package/dist/tree/TreeItem.js +4 -3
  396. package/dist/tree/TreeItem.js.map +1 -1
  397. package/dist/tree/TreeItemExpander.js.map +1 -1
  398. package/dist/tree/_tree.scss +8 -6
  399. package/dist/tree/useTreeExpansion.d.ts +1 -1
  400. package/dist/tree/useTreeExpansion.js +6 -18
  401. package/dist/tree/useTreeExpansion.js.map +1 -1
  402. package/dist/tree/useTreeSelection.d.ts +1 -1
  403. package/dist/tree/useTreeSelection.js +7 -25
  404. package/dist/tree/useTreeSelection.js.map +1 -1
  405. package/dist/tree/utils.d.ts +1 -1
  406. package/dist/tree/utils.js.map +1 -1
  407. package/dist/types.d.ts +12 -4
  408. package/dist/types.js.map +1 -1
  409. package/dist/typography/WritingDirectionProvider.d.ts +1 -1
  410. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  411. package/dist/typography/_typography.scss +94 -37
  412. package/dist/typography/typographyStyles.js.map +1 -1
  413. package/dist/useDebouncedFunction.d.ts +1 -5
  414. package/dist/useDebouncedFunction.js +3 -1
  415. package/dist/useDebouncedFunction.js.map +1 -1
  416. package/dist/useDropzone.d.ts +4 -4
  417. package/dist/useDropzone.js.map +1 -1
  418. package/dist/useEnsuredId.js.map +1 -1
  419. package/dist/useIntersectionObserver.d.ts +5 -5
  420. package/dist/useIntersectionObserver.js.map +1 -1
  421. package/dist/useLocalStorage.d.ts +3 -3
  422. package/dist/useLocalStorage.js +1 -1
  423. package/dist/useLocalStorage.js.map +1 -1
  424. package/dist/useMutationObserver.d.ts +1 -1
  425. package/dist/useMutationObserver.js.map +1 -1
  426. package/dist/useOrientation.js +3 -1
  427. package/dist/useOrientation.js.map +1 -1
  428. package/dist/usePageInactive.d.ts +2 -2
  429. package/dist/usePageInactive.js.map +1 -1
  430. package/dist/useReadonlySet.d.ts +76 -0
  431. package/dist/useReadonlySet.js +72 -0
  432. package/dist/useReadonlySet.js.map +1 -0
  433. package/dist/useResizeListener.d.ts +1 -1
  434. package/dist/useResizeListener.js.map +1 -1
  435. package/dist/useThrottledFunction.d.ts +1 -5
  436. package/dist/useThrottledFunction.js +3 -1
  437. package/dist/useThrottledFunction.js.map +1 -1
  438. package/dist/useToggle.d.ts +3 -3
  439. package/dist/useToggle.js.map +1 -1
  440. package/dist/utils/RenderRecursively.d.ts +1 -1
  441. package/dist/utils/RenderRecursively.js.map +1 -1
  442. package/dist/utils/alphaNumericSort.d.ts +1 -1
  443. package/dist/utils/alphaNumericSort.js.map +1 -1
  444. package/dist/utils/bem.js.map +1 -1
  445. package/dist/utils/debounce.d.ts +5 -0
  446. package/dist/utils/debounce.js +17 -0
  447. package/dist/utils/debounce.js.map +1 -0
  448. package/dist/utils/nearest.js.map +1 -1
  449. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  450. package/dist/utils/throttle.d.ts +5 -0
  451. package/dist/utils/throttle.js +30 -0
  452. package/dist/utils/throttle.js.map +1 -0
  453. package/dist/utils/wait.js +3 -1
  454. package/dist/utils/wait.js.map +1 -1
  455. package/dist/window-splitter/WindowSplitter.d.ts +37 -15
  456. package/dist/window-splitter/WindowSplitter.js +38 -17
  457. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  458. package/dist/window-splitter/_window-splitter.scss +32 -14
  459. package/dist/window-splitter/styles.d.ts +14 -0
  460. package/dist/window-splitter/styles.js +18 -0
  461. package/dist/window-splitter/styles.js.map +1 -0
  462. package/package.json +24 -23
  463. package/src/app-bar/AppBar.tsx +1 -170
  464. package/src/app-bar/AppBarTitle.tsx +1 -44
  465. package/src/app-bar/styles.ts +206 -0
  466. package/src/autocomplete/Autocomplete.tsx +194 -211
  467. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  468. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  469. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  470. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  471. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  472. package/src/autocomplete/autocompleteStyles.ts +48 -9
  473. package/src/autocomplete/defaults.ts +26 -17
  474. package/src/autocomplete/types.ts +744 -61
  475. package/src/autocomplete/useAutocomplete.ts +428 -0
  476. package/src/autocomplete/utils.ts +211 -0
  477. package/src/badge/Badge.tsx +1 -39
  478. package/src/badge/styles.ts +45 -0
  479. package/src/box/Box.tsx +11 -9
  480. package/src/box/styles.ts +14 -5
  481. package/src/button/AsyncButton.tsx +1 -1
  482. package/src/button/Button.tsx +5 -1
  483. package/src/card/Card.tsx +35 -4
  484. package/src/card/ClickableCard.tsx +9 -2
  485. package/src/card/styles.ts +1 -10
  486. package/src/chip/Chip.tsx +6 -1
  487. package/src/chip/styles.ts +12 -10
  488. package/src/delegateEvent.ts +5 -5
  489. package/src/dialog/Dialog.tsx +48 -61
  490. package/src/dialog/FixedDialog.tsx +1 -11
  491. package/src/dialog/styles.ts +97 -0
  492. package/src/divider/Divider.tsx +0 -12
  493. package/src/divider/styles.ts +12 -0
  494. package/src/draggable/useDraggable.ts +17 -10
  495. package/src/draggable/utils.ts +3 -3
  496. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  497. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  498. package/src/{form → files}/FileInput.tsx +7 -15
  499. package/src/files/styles.ts +10 -0
  500. package/src/{form → files}/useFileUpload.ts +30 -34
  501. package/src/files/utils.ts +234 -0
  502. package/src/{form/fileUtils.ts → files/validation.ts} +13 -242
  503. package/src/focus/useFocusContainer.ts +16 -8
  504. package/src/form/FormMessageContainer.tsx +2 -2
  505. package/src/form/InputToggle.tsx +5 -1
  506. package/src/form/Label.tsx +18 -18
  507. package/src/form/Listbox.tsx +87 -0
  508. package/src/form/ListboxProvider.ts +37 -0
  509. package/src/form/MenuItemTextField.tsx +1 -2
  510. package/src/form/NativeSelect.tsx +14 -10
  511. package/src/form/Option.tsx +74 -22
  512. package/src/form/Select.tsx +89 -85
  513. package/src/form/Slider.tsx +14 -11
  514. package/src/form/SliderThumb.tsx +4 -4
  515. package/src/form/SliderValueMarks.tsx +4 -4
  516. package/src/form/TextArea.tsx +6 -8
  517. package/src/form/TextField.tsx +0 -2
  518. package/src/form/TextFieldContainer.tsx +9 -11
  519. package/src/form/formMessageContainerStyles.ts +22 -0
  520. package/src/form/optionStyles.ts +7 -2
  521. package/src/form/sliderUtils.ts +1 -1
  522. package/src/form/textFieldContainerStyles.ts +9 -14
  523. package/src/form/types.ts +3 -11
  524. package/src/form/useCheckboxGroup.ts +28 -36
  525. package/src/form/useCombobox.ts +86 -38
  526. package/src/form/useEditableCombobox.ts +43 -8
  527. package/src/form/useRadioGroup.ts +6 -6
  528. package/src/form/useSelectCombobox.ts +4 -4
  529. package/src/form/useTextField.ts +1 -1
  530. package/src/hoverMode/useHoverMode.ts +3 -3
  531. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  532. package/src/icon/iconConfig.tsx +12 -0
  533. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  534. package/src/interaction/types.ts +21 -2
  535. package/src/interaction/useElementInteraction.tsx +9 -2
  536. package/src/interaction/utils.ts +7 -7
  537. package/src/layout/useExpandableLayout.ts +3 -3
  538. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  539. package/src/layout/useTemporaryLayout.ts +2 -2
  540. package/src/list/ListItem.tsx +5 -1
  541. package/src/list/ListItemLink.tsx +5 -1
  542. package/src/media-queries/useMediaQuery.ts +2 -1
  543. package/src/menu/Menu.tsx +11 -3
  544. package/src/menu/MenuItemButton.tsx +7 -1
  545. package/src/menu/useContextMenu.ts +3 -3
  546. package/src/movement/types.ts +5 -5
  547. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  548. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  549. package/src/navigation/NavItemButton.tsx +2 -1
  550. package/src/navigation/NavItemLink.tsx +11 -3
  551. package/src/navigation/NavSubheader.tsx +1 -1
  552. package/src/navigation/Navigation.tsx +1 -1
  553. package/src/navigation/types.ts +60 -10
  554. package/src/navigation/useActiveHeadingId.ts +1 -1
  555. package/src/navigation/useNavigationExpansion.ts +170 -0
  556. package/src/navigation/utils.ts +47 -0
  557. package/src/objectFit.ts +88 -0
  558. package/src/positioning/useFixedPositioning.ts +34 -11
  559. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  560. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
  561. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  562. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  563. package/src/scroll/useScrollLock.ts +6 -0
  564. package/src/searching/utils.ts +3 -3
  565. package/src/segmented-button/SegmentedButton.tsx +5 -1
  566. package/src/snackbar/ToastManager.tsx +16 -5
  567. package/src/snackbar/useCurrentToastActions.ts +5 -5
  568. package/src/table/tableCellStyles.ts +10 -6
  569. package/src/tabs/Tab.tsx +4 -1
  570. package/src/tabs/TabList.tsx +2 -2
  571. package/src/tabs/TabListScrollButton.tsx +4 -4
  572. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  573. package/src/tabs/tabStyles.ts +4 -0
  574. package/src/tabs/useTabList.ts +2 -9
  575. package/src/tabs/useTabs.ts +6 -6
  576. package/src/tabs/utils.ts +0 -38
  577. package/src/test-utils/matchMedia.ts +5 -5
  578. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  579. package/src/test-utils/timers.ts +10 -7
  580. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  581. package/src/theme/ThemeProvider.tsx +3 -3
  582. package/src/theme/isColorScheme.ts +22 -0
  583. package/src/theme/types.ts +67 -1
  584. package/src/theme/useCSSVariables.ts +7 -30
  585. package/src/theme/useColorScheme.ts +1 -40
  586. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  587. package/src/theme/useColorSchemeProvider.ts +2 -2
  588. package/src/tooltip/useTooltip.ts +17 -9
  589. package/src/transition/types.ts +1 -1
  590. package/src/transition/useCarousel.ts +3 -3
  591. package/src/transition/useTransition.ts +1 -0
  592. package/src/tree/TreeItem.tsx +7 -1
  593. package/src/tree/TreeItemExpander.tsx +1 -1
  594. package/src/tree/useTreeExpansion.ts +7 -25
  595. package/src/tree/useTreeSelection.ts +8 -32
  596. package/src/tree/utils.ts +6 -2
  597. package/src/types.ts +20 -4
  598. package/src/typography/WritingDirectionProvider.tsx +1 -1
  599. package/src/useDebouncedFunction.ts +4 -9
  600. package/src/useDropzone.ts +4 -4
  601. package/src/useIntersectionObserver.ts +5 -5
  602. package/src/useLocalStorage.ts +6 -6
  603. package/src/useMutationObserver.ts +1 -1
  604. package/src/useOrientation.ts +3 -1
  605. package/src/usePageInactive.ts +2 -2
  606. package/src/useReadonlySet.ts +122 -0
  607. package/src/useResizeListener.ts +1 -1
  608. package/src/useThrottledFunction.ts +6 -9
  609. package/src/useToggle.ts +3 -3
  610. package/src/utils/RenderRecursively.tsx +1 -1
  611. package/src/utils/alphaNumericSort.ts +1 -1
  612. package/src/utils/debounce.ts +22 -0
  613. package/src/utils/throttle.ts +38 -0
  614. package/src/utils/wait.ts +5 -1
  615. package/src/window-splitter/WindowSplitter.tsx +38 -43
  616. package/src/window-splitter/styles.ts +42 -0
  617. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  618. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  619. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  620. package/dist/dialog/DialogContainer.d.ts +0 -14
  621. package/dist/dialog/DialogContainer.js +0 -20
  622. package/dist/dialog/DialogContainer.js.map +0 -1
  623. package/dist/form/FileInput.js.map +0 -1
  624. package/dist/form/fileUtils.js.map +0 -1
  625. package/dist/form/useFileUpload.js.map +0 -1
  626. package/dist/form/useListboxProvider.d.ts +0 -31
  627. package/dist/form/useListboxProvider.js.map +0 -1
  628. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  629. package/dist/navigation/getHrefFromParents.js +0 -13
  630. package/dist/navigation/getHrefFromParents.js.map +0 -1
  631. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
  632. package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
  633. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  634. package/dist/responsive-item/styles.d.ts +0 -34
  635. package/dist/responsive-item/styles.js +0 -17
  636. package/dist/responsive-item/styles.js.map +0 -1
  637. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  638. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  639. package/src/dialog/DialogContainer.tsx +0 -28
  640. package/src/form/useListboxProvider.ts +0 -45
  641. package/src/navigation/getHrefFromParents.ts +0 -15
  642. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
  643. package/src/responsive-item/styles.ts +0 -58
  644. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  645. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -1,122 +1,805 @@
1
- import { type ReactNode } from "react";
2
- import { type MenuItemProps } from "../menu/MenuItem.jsx";
3
1
  import {
4
- type BaseSearchOptions,
5
- type WhitespaceFilter,
6
- } from "../searching/types.js";
7
- import { type RequireAtLeastOne, type TextExtractor } from "../types.js";
2
+ type AriaAttributes,
3
+ type ChangeEventHandler,
4
+ type Dispatch,
5
+ type FocusEventHandler,
6
+ type MouseEventHandler,
7
+ type ReactNode,
8
+ type Ref,
9
+ } from "react";
10
+ import { type ButtonProps } from "../button/Button.js";
11
+ import { type ChipProps } from "../chip/Chip.js";
12
+ import {
13
+ type OptionProps,
14
+ type OptionSelectedIconProps,
15
+ } from "../form/Option.js";
16
+ import { type TextFieldProps } from "../form/TextField.js";
17
+ import {
18
+ type ComboboxMenuProps,
19
+ type ComboboxVisibilityOptions,
20
+ type ConfigurableComboboxMenuProps,
21
+ } from "../form/useCombobox.js";
22
+ import {
23
+ type EditableComboboxImplementation,
24
+ type EditableComboboxOptions,
25
+ type EditableComboboxWidgetProps,
26
+ } from "../form/useEditableCombobox.js";
27
+ import { type EditableHTMLElement } from "../form/utils.js";
28
+ import { type IconRotatorProps } from "../icon/IconRotator.js";
29
+ import { type CircularProgressProps } from "../progress/CircularProgress.js";
30
+ import { type ProgressTheme } from "../progress/types.js";
31
+ import { type BaseSearchOptions } from "../searching/types.js";
32
+ import {
33
+ type PropsWithRef,
34
+ type TextExtractor,
35
+ type UseStateInitializer,
36
+ } from "../types.js";
8
37
 
9
38
  /**
39
+ * If a autocomplete value is one of these types, no additional code is required
40
+ * to display a label in the input/chip for the autocomplete once the value has
41
+ * been selected.
42
+ *
43
+ * - `"some value"` -> `"some value"`
44
+ * - `{ label: "Hello, world", value: 300 }` -> `"Hello, world!"`
45
+ *
10
46
  * @since 6.0.0
11
47
  */
12
- export type AutocompleteMenuLabel<
13
- T extends { menuLabel?: string; menuLabelledBy?: string },
14
- > = RequireAtLeastOne<T, "menuLabel" | "menuLabelledBy">;
48
+ export type AutocompleteLabeledOption = string | { label: string };
15
49
 
16
50
  /**
17
51
  * @since 6.0.0
18
52
  */
19
- export type AutocompleteFilterOptions<T> = Pick<
20
- Required<BaseSearchOptions<T>>,
21
- "list" | "query" | "extractor" | "whitespace"
53
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
54
+ export type AutocompleteOption = AutocompleteLabeledOption | {};
55
+
56
+ /**
57
+ * @since 6.0.0
58
+ */
59
+ export type AutocompleteFilterOptions<Option extends AutocompleteOption> = Pick<
60
+ Required<BaseSearchOptions<Option>>,
61
+ "list" | "query" | "extractor"
22
62
  >;
23
63
 
24
64
  /**
25
65
  * @since 6.0.0
26
66
  */
27
- export interface AutocompleteGetOptionPropsOptions<T> {
67
+ export type AutocompleteFilterFunction<Option extends AutocompleteOption> = (
68
+ options: AutocompleteFilterOptions<Option>
69
+ ) => readonly Option[];
70
+
71
+ /**
72
+ * @since 6.0.0
73
+ */
74
+ export interface AutocompleteGetOptionPropsOptions<
75
+ Option extends AutocompleteOption,
76
+ > {
28
77
  index: number;
29
- option: T;
78
+ query: string;
79
+ option: Option;
80
+ selected: boolean;
81
+ extractor: TextExtractor<Option>;
82
+ }
83
+
84
+ /**
85
+ * This can be used to add additional props to each option.
86
+ *
87
+ * @example Simple Example
88
+ * ```tsx
89
+ * getOptionProps={({ option }) => {
90
+ * return {
91
+ * disabled: option === "",
92
+ * className: cnb(option === "a" && styles.blue),
93
+ * leftAddon: option === value && <CheckIcon />,
94
+ * };
95
+ * }}
96
+ * ```
97
+ * @since 6.0.0
98
+ */
99
+ export type AutocompleteGetOptionProps<Option extends AutocompleteOption> = (
100
+ options: AutocompleteGetOptionPropsOptions<Option>
101
+ ) => ConfigurableAutocompleteOptionProps | undefined;
102
+
103
+ /**
104
+ * This can be used to add additional props to each inline chip for multiselect
105
+ * autocompletes.
106
+ *
107
+ * @example Simple Example
108
+ * ```tsx
109
+ * getChipProps={({ option, index }) => {
110
+ * return {
111
+ * disabled: index < 3,
112
+ * className: cnb(option === "a" && styles.blue)<
113
+ * };
114
+ * }}
115
+ * ```
116
+ * @since 6.0.0
117
+ */
118
+ export type AutocompleteGetChipProps<Option extends AutocompleteOption> = (
119
+ options: Omit<AutocompleteGetOptionPropsOptions<Option>, "selected">
120
+ ) => Partial<AutocompleteChipProps> | undefined;
121
+
122
+ /**
123
+ * If the list of options contain an object that doesn't have a
124
+ * `label: string`, this prop must be provided to extract a string to display
125
+ * in the text field once selected.
126
+ *
127
+ * @example No Getter Required
128
+ * ```tsx
129
+ * const options1 = ['a', 'b', 'c', 'd'];
130
+ * const options2 = [{ label: 'a' }, { label: 'b' }, { label: 'c' }, { label: 'd' }];
131
+ *
132
+ * <Autocomplete options={options1} />
133
+ * <Autocomplete options={options2} />
134
+ * ```
135
+ *
136
+ * @example Getter Required
137
+ * ```tsx
138
+ * const options = [
139
+ * {
140
+ * name: "Alaska",
141
+ * abbr: "AK",
142
+ * },
143
+ * {
144
+ * name: "Arizona",
145
+ * abbr: "AZ",
146
+ * }
147
+ * ];
148
+ *
149
+ * <Autocomplete options={options} getOptionLabel={(state) => state.name} />
150
+ * ```
151
+ *
152
+ * @defaultValue `defaultAutocompleteExtractor`
153
+ * @since 6.0.0
154
+ */
155
+ export type AutocompleteGetOptionLabel<Option extends AutocompleteOption> = (
156
+ option: Option
157
+ ) => string;
158
+
159
+ /**
160
+ * @since 6.0.0
161
+ */
162
+ export type ConfigurableAutocompleteOptionProps = Partial<
163
+ Omit<OptionProps, "role" | "value">
164
+ >;
165
+
166
+ /**
167
+ * @since 6.0.0
168
+ */
169
+ export interface AutocompleteControlledValue<T> {
170
+ value: T;
171
+ setValue: Dispatch<T>;
172
+ defaultValue?: never;
173
+ onValueChange?: never;
30
174
  }
31
175
 
32
176
  /**
33
177
  * @since 6.0.0
34
178
  */
35
- export interface AutocompleteOptionsProps<T> {
179
+ export interface AutocompleteUncontrolledValue<T> {
180
+ value?: never;
181
+ setValue?: never;
182
+ defaultValue?: UseStateInitializer<T>;
183
+
36
184
  /**
37
- * This list of options to display and will be filtered based on the current
38
- * value in the text box unless {@link disableFilter} is `true`.
185
+ * This prop should be used when some action should occur whenever the value
186
+ * changes, but is not required to be stored in state. For all other cases, it
187
+ * is recommended to control the `value` instead of using this prop.
39
188
  *
40
- * When this is not a list of strings or a list of objects with a
41
- * `{ label: string }`, the {@link extractor} is required to pull a searchable
42
- * string from each option.
189
+ * @defaultValue `() => {}`
190
+ */
191
+ onValueChange?: (value: T) => void;
192
+ }
193
+
194
+ /**
195
+ * @since 6.0.0
196
+ */
197
+ export type AutocompleteValue<T> =
198
+ | AutocompleteControlledValue<T>
199
+ | AutocompleteUncontrolledValue<T>;
200
+
201
+ /**
202
+ * @since 6.0.0
203
+ */
204
+ export interface AutocompleteControlledQuery {
205
+ query: string;
206
+ setQuery: Dispatch<string>;
207
+ defaultQuery?: never;
208
+ }
209
+
210
+ /**
211
+ * @since 6.0.0
212
+ */
213
+ export interface AutocompleteUncontrolledQuery {
214
+ query?: never;
215
+ setQuery?: never;
216
+ defaultQuery?: UseStateInitializer<string>;
217
+ }
218
+
219
+ /**
220
+ * @since 6.0.0
221
+ */
222
+ export type AutocompleteQuery =
223
+ | AutocompleteControlledQuery
224
+ | AutocompleteUncontrolledQuery;
225
+
226
+ /**
227
+ * This allows the `query` to be updated whenever a new value has been selected.
228
+ *
229
+ * - `"clear"` - clears the `query`
230
+ * - `"selected"` - sets the query to the selected value's label
231
+ * - `"as-is"` - doesn't change the `query`
232
+ *
233
+ * @defaultValue `(multiselect || Array.isArray(value ?? defaultValue)) ? "clear" : "as-is"`
234
+ * @since 6.0.0
235
+ */
236
+ export type AutocompleteUpdateQueryOnSelect = "clear" | "selected" | "as-is";
237
+
238
+ /**
239
+ * @since 6.0.0
240
+ */
241
+ export interface AutocompleteUnknownQueryAndValueOptions<
242
+ Option extends AutocompleteOption,
243
+ > {
244
+ query?: string;
245
+ setQuery?: Dispatch<string>;
246
+ defaultQuery?: UseStateInitializer<string>;
247
+ value?: Option | null | readonly Option[];
248
+ setValue?: Dispatch<Option | null | readonly Option[]>;
249
+ defaultValue?: UseStateInitializer<Option | null | readonly Option[]>;
250
+ onValueChange?: (value: Option | null | readonly Option[]) => void;
251
+ }
252
+
253
+ /**
254
+ * A utility type that makes the `getOptionLabel` required when an option is not
255
+ * a {@link AutocompleteLabeledOption}.
256
+ *
257
+ * @since 6.0.0
258
+ */
259
+ export type AutocompleteOptionLabelExtractor<
260
+ Option extends AutocompleteOption,
261
+ > = Option extends AutocompleteLabeledOption
262
+ ? { getOptionLabel?: AutocompleteGetOptionLabel<Option> }
263
+ : { getOptionLabel: AutocompleteGetOptionLabel<Option> };
264
+
265
+ /**
266
+ * @since 6.0.0
267
+ */
268
+ export interface AutocompleteFilteringOptions<
269
+ Option extends AutocompleteOption,
270
+ > {
271
+ /**
272
+ * The list of options that can be shown within the autocomplete and filtered
273
+ * based on the current query.
43
274
  */
44
- options: readonly T[];
275
+ options: readonly Option[];
276
+
277
+ /** @see {@link AutocompleteGetOptionLabel} */
278
+ getOptionLabel?: AutocompleteGetOptionLabel<Option>;
45
279
 
46
280
  /**
47
- * This controls how the {@link options} are filtered based on the current
48
- * value in the text box.
281
+ * The function that filters the {@link options} based on the current query
282
+ * and defaults to a case insensitive search that starts with the query.
49
283
  *
50
- * @example Fuzzy Search
284
+ * @example Case Insensitive Anywhere
285
+ * ```tsx
286
+ * import { caseInsensitiveSearch } from "@react-md/core/searching/caseInsensitive";
287
+ *
288
+ * <Autocomplete {...props} filter={caseInsensitiveSearch} />
289
+ * ```
290
+ *
291
+ * @example Fuzzy Filtering
51
292
  * ```tsx
52
293
  * import { fuzzySearch } from "@react-md/core/searching/fuzzy";
53
294
  *
54
- * <Autocomplete
55
- * {...props}
56
- * filter={fuzzySearch}
57
- * />
295
+ * <Autocomplete {...props} filter={fuzzySearch} />
296
+ * ```
297
+ *
298
+ * @example Async Searching
299
+ * ```tsx
300
+ * import { useDebouncedFunction } from "@react-md/core/useDebouncedFunction";
301
+ * import { useState } from "react";
302
+ *
303
+ * interface State {
304
+ * loading: boolean;
305
+ * options: readonly string[];
306
+ * }
307
+ *
308
+ * function Example() {
309
+ * const [state, setState] = useState<State>({
310
+ * loading: false,
311
+ * options: [],
312
+ * });
313
+ *
314
+ * const search = useDebouncedFunction(async (query: string) => {
315
+ * setState(prev => ({ ...prev, loading: true }));
316
+ *
317
+ * const options = await someAsyncTask(query);
318
+ * setState({ loading: false, options })
319
+ * });
320
+ *
321
+ * return (
322
+ * <Autocomplete
323
+ * {...props}
324
+ * // Setting `type="search"` automatically updates the `filter` prop to
325
+ * // be `noopAutocompleteFilter`
326
+ * type="search"
327
+ * options={options}
328
+ * onChange={(event) => search(event.currentTarget.value)}
329
+ * />
330
+ * );
331
+ * }
58
332
  * ```
59
333
  *
60
- * @defaultValue `caseInsensitiveSearch`
334
+ * @defaultValue `defaultAutocompleteFilter`
61
335
  */
62
- filter?(options: AutocompleteFilterOptions<T>): readonly T[];
336
+ filter?: AutocompleteFilterFunction<Option>;
63
337
 
64
338
  /**
65
- * @example
66
- * ```tsx
67
- * <Autocomplete
68
- * options={[{ children: "Apple" }, { children = "Banana" }]}
69
- * extractor={(option) => option.children}
70
- * {...props}
71
- * />
72
- * ```
339
+ * Set this to `true` to update the filtering behavior to also remove the
340
+ * selected value from the available options. This is mostly for the
341
+ * multiselect behavior.
342
+ *
343
+ * @defaultValue `false`
73
344
  */
74
- extractor?: TextExtractor<T>;
345
+ filterSelected?: boolean;
75
346
 
76
347
  /**
77
- * This can be used to add additional props to each option.
348
+ * Set this to `true` to allow any value to be typed into the autocomplete
349
+ * instead of enforcing an empty string or one of the option labels.
350
+ *
351
+ * @defaultValue `filter === noopAutocompleteFilter`
352
+ */
353
+ allowAnyValue?: boolean;
354
+ }
355
+
356
+ /**
357
+ * @since 6.0.0
358
+ */
359
+ export interface AutocompleteFilterAndListboxOptions<
360
+ Option extends AutocompleteOption,
361
+ > extends AutocompleteFilteringOptions<Option>,
362
+ OptionSelectedIconProps {
363
+ /**
364
+ * Set this to `true` when using a multiselect autocomplete to update each
365
+ * option to use checkboxes to show the selection state.
366
+ *
367
+ * @defaultValue `false`
368
+ */
369
+ checkboxes?: boolean;
370
+
371
+ /**
372
+ * @see {@link OptionSelectedIconProps.disableSelectedIcon}
373
+ * @defaultValue `!checkboxes`
374
+ */
375
+ disableSelectedIcon?: boolean;
376
+
377
+ /**
378
+ * @see {@link AutocompleteUpdateQueryOnSelect}
379
+ * @defaultValue `multiselect ? "clear" : "as-is"`
380
+ */
381
+ updateQueryOnSelect?: AutocompleteUpdateQueryOnSelect;
382
+
383
+ /**
384
+ * Set this to `true` to prevent the listbox from closing when an option is
385
+ * selected.
386
+ *
387
+ * @defaultValue `checkboxes`
388
+ */
389
+ disableCloseOnSelect?: boolean;
390
+
391
+ /** @see {@link AutocompleteGetOptionProps} */
392
+ getOptionProps?: AutocompleteGetOptionProps<Option>;
393
+ }
394
+
395
+ /**
396
+ * @since 6.0.0
397
+ */
398
+ export interface AutocompleteEditableComboboxOptions<
399
+ Option extends AutocompleteOption,
400
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
401
+ PopupEl extends HTMLElement = HTMLElement,
402
+ > extends EditableComboboxOptions<ComboboxEl, PopupEl>,
403
+ AutocompleteFilterAndListboxOptions<Option> {
404
+ onBlur?: FocusEventHandler<ComboboxEl>;
405
+ onChange?: ChangeEventHandler<ComboboxEl>;
406
+
407
+ /**
408
+ * This is a convenience prop for the `onEntering`/`onEntered` transition
409
+ * callbacks that will ensure it is only called once even if the transitions
410
+ * are disabled. A great use-case for this function is to fetch data once the
411
+ * menu is opened.
412
+ */
413
+ onOpen?: () => void;
414
+ }
415
+
416
+ /**
417
+ * @since 6.0.0
418
+ */
419
+ export type AutocompleteQueryAndExtractorOptions<
420
+ Option extends AutocompleteOption,
421
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
422
+ PopupEl extends HTMLElement = HTMLElement,
423
+ > = AutocompleteEditableComboboxOptions<Option, ComboboxEl, PopupEl> &
424
+ AutocompleteOptionLabelExtractor<Option> &
425
+ AutocompleteQuery;
426
+
427
+ /**
428
+ * @since 6.0.0
429
+ */
430
+ export type AutocompleteSingleSelectOptions<
431
+ Option extends AutocompleteOption,
432
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
433
+ PopupEl extends HTMLElement = HTMLElement,
434
+ > = AutocompleteQueryAndExtractorOptions<Option, ComboboxEl, PopupEl> &
435
+ AutocompleteValue<Option | null>;
436
+
437
+ /**
438
+ * @since 6.0.0
439
+ */
440
+ export type AutocompleteMultiSelectOptions<
441
+ Option extends AutocompleteOption,
442
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
443
+ PopupEl extends HTMLElement = HTMLElement,
444
+ > = AutocompleteQueryAndExtractorOptions<Option, ComboboxEl, PopupEl> &
445
+ AutocompleteValue<readonly Option[]>;
446
+
447
+ /**
448
+ * @since 6.0.0
449
+ */
450
+ export interface AutocompleteOptions<
451
+ Option extends AutocompleteOption,
452
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
453
+ PopupEl extends HTMLElement = HTMLElement,
454
+ > extends AutocompleteEditableComboboxOptions<Option, ComboboxEl, PopupEl>,
455
+ AutocompleteUnknownQueryAndValueOptions<Option> {}
456
+
457
+ /**
458
+ * @since 6.0.0
459
+ */
460
+ export interface AutocompleteComboboxProps<
461
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
462
+ > extends EditableComboboxWidgetProps<ComboboxEl> {
463
+ "aria-autocomplete": NonNullable<AriaAttributes["aria-autocomplete"]>;
464
+ value: string;
465
+ onBlur: FocusEventHandler<ComboboxEl>;
466
+ onChange: ChangeEventHandler<ComboboxEl>;
467
+ }
468
+
469
+ /**
470
+ * @since 6.0.0
471
+ */
472
+ export interface AutocompleteListboxProps<
473
+ T extends AutocompleteOption = AutocompleteOption,
474
+ PopupEl extends HTMLElement = HTMLElement,
475
+ > extends Omit<ComboboxMenuProps<PopupEl>, "ref">,
476
+ OptionSelectedIconProps {
477
+ value: T | null | readonly T[];
478
+ setValue: Dispatch<T>;
479
+ onEnter: (appearing: boolean) => void;
480
+ }
481
+
482
+ /**
483
+ * @since 6.0.0
484
+ */
485
+ export interface ConfigurableAutocompleteListboxProps
486
+ extends ConfigurableComboboxMenuProps,
487
+ OptionSelectedIconProps {
488
+ id?: string;
489
+ }
490
+
491
+ /**
492
+ * @since 6.0.0
493
+ */
494
+ export interface ConfigurableAutocompleteClearButtonProps extends ButtonProps {
495
+ /** @defaultValue `"Clear"` */
496
+ "aria-label"?: string;
497
+
498
+ /** @defaultValue `"autocomplete-clear-" + useId()` */
499
+ id?: string;
500
+ }
501
+
502
+ /**
503
+ * @internal
504
+ * @since 6.0.0
505
+ */
506
+ export interface AutocompleteClearButtonProps
507
+ extends ConfigurableAutocompleteClearButtonProps {
508
+ onClick: MouseEventHandler<HTMLButtonElement>;
509
+ }
510
+
511
+ /**
512
+ * @since 6.0.0
513
+ */
514
+ export interface ConfigurableAutocompleteDropdownButtonProps
515
+ extends ButtonProps {
516
+ /** @defaultValue `AutocompleteProps.listboxLabel` */
517
+ "aria-label"?: string;
518
+ /** @defaultValue `AutocompleteProps.listboxLabelledby` */
519
+ "aria-labelledby"?: string;
520
+
521
+ /** @defaultValue `"autocomplete-dropdown-" + useId()` */
522
+ id?: string;
523
+
524
+ /** @defaultValue `getIcon("dropdown")` */
525
+ icon?: ReactNode;
526
+ iconRotatorProps?: Omit<IconRotatorProps, "rotated">;
527
+ }
528
+
529
+ /**
530
+ * @since 6.0.0
531
+ */
532
+ export interface AutocompleteDropdownButtonProps
533
+ extends ConfigurableAutocompleteDropdownButtonProps {
534
+ "aria-controls": string;
535
+ onClick: MouseEventHandler<HTMLButtonElement>;
536
+ visible: boolean;
537
+ }
538
+
539
+ /**
540
+ * @since 6.0.0
541
+ */
542
+ export interface AutocompleteCircularProgressProps
543
+ extends CircularProgressProps {
544
+ /** @defaultValue `"Loading"` */
545
+ "aria-label"?: string;
546
+
547
+ /** @defaultValue `"current-color"` */
548
+ theme?: ProgressTheme;
549
+ }
550
+
551
+ /**
552
+ * @since 6.0.0
553
+ */
554
+ export interface AutocompleteChipProps extends ChipProps {
555
+ /**
556
+ * @defaultValue `typeof children === "string" && \`Remove "${children}"\`
557
+ */
558
+ "aria-description"?: string;
559
+
560
+ /** @defaultValue `getIcon("remove")` */
561
+ removeIcon?: ReactNode;
562
+ children: ReactNode;
563
+ }
564
+
565
+ /**
566
+ * @since 6.0.0
567
+ */
568
+ export interface AutocompleteWithQueryImplementation<
569
+ Option extends AutocompleteOption,
570
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
571
+ PopupEl extends HTMLElement = HTMLElement,
572
+ > extends EditableComboboxImplementation<ComboboxEl, PopupEl> {
573
+ query: string;
574
+ setQuery: Dispatch<string>;
575
+ comboboxProps: AutocompleteComboboxProps<ComboboxEl>;
576
+
577
+ /**
578
+ * This is a convenience prop to determine if the autocomplete supports
579
+ * multiselect.
580
+ */
581
+ multiselect: boolean;
582
+
583
+ /**
584
+ * This is the current list of options that will be filtered based on the
585
+ * current `query`. This should normally be rendered in the
586
+ * `AutocompleteListboxChildren` component
587
+ */
588
+ availableOptions: readonly Option[];
589
+
590
+ /**
591
+ * Generates the props required for the `Listbox` component and should
592
+ * normally be provided any menu props that might override the default display
593
+ * settings.
594
+ */
595
+ getListboxProps: (
596
+ overrides?: ConfigurableAutocompleteListboxProps
597
+ ) => AutocompleteListboxProps<Option, PopupEl>;
598
+
599
+ /**
600
+ * Generates the props required for the `AutocompleteClearButton`.
601
+ */
602
+ getClearButtonProps: (
603
+ overrides?: ConfigurableAutocompleteClearButtonProps
604
+ ) => AutocompleteClearButtonProps;
605
+
606
+ /**
607
+ * Generates the props required for the `AutocompleteDropdownButton`.
608
+ */
609
+ getDropdownButtonProps: (
610
+ overrides?: ConfigurableAutocompleteDropdownButtonProps
611
+ ) => AutocompleteDropdownButtonProps;
612
+
613
+ /** @see {@link AutocompleteGetOptionLabel} */
614
+ getOptionLabel: AutocompleteGetOptionLabel<Option>;
615
+ /** @see {@link AutocompleteGetOptionProps} */
616
+ getOptionProps: AutocompleteGetOptionProps<Option>;
617
+ }
618
+
619
+ /**
620
+ * @since 6.0.0
621
+ */
622
+ export interface AutocompleteSingleSelectImplementation<
623
+ Option extends AutocompleteOption,
624
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
625
+ PopupEl extends HTMLElement = HTMLElement,
626
+ > extends AutocompleteWithQueryImplementation<Option, ComboboxEl, PopupEl> {
627
+ value: Option | null;
628
+ setValue: Dispatch<Option | null>;
629
+ }
630
+
631
+ /**
632
+ * @since 6.0.0
633
+ */
634
+ export interface AutocompleteMultiSelectImplementation<
635
+ Option extends AutocompleteOption,
636
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
637
+ PopupEl extends HTMLElement = HTMLElement,
638
+ > extends AutocompleteWithQueryImplementation<Option, ComboboxEl, PopupEl> {
639
+ value: readonly Option[];
640
+ setValue: Dispatch<readonly Option[]>;
641
+ }
642
+
643
+ /**
644
+ * @since 6.0.0
645
+ */
646
+ export interface AutocompleteImplementation<
647
+ Option extends AutocompleteOption,
648
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
649
+ PopupEl extends HTMLElement = HTMLElement,
650
+ > extends AutocompleteWithQueryImplementation<Option, ComboboxEl, PopupEl> {
651
+ value: Option | null | readonly Option[];
652
+ setValue: Dispatch<Option | null | readonly Option[]>;
653
+ }
654
+
655
+ /**
656
+ * @since 6.0.0
657
+ */
658
+ export interface AutocompleteBaseProps<Option extends AutocompleteOption>
659
+ extends Omit<TextFieldProps, "value" | "defaultValue">,
660
+ AutocompleteFilterAndListboxOptions<Option>,
661
+ ComboboxVisibilityOptions {
662
+ inputRef?: Ref<HTMLInputElement>;
663
+
664
+ /**
665
+ * An `aria-label` to pass to the `Listbox` component that describes the list
666
+ * of {@link options}. Either this or the {@link listboxLabelledBy} are
667
+ * required for accessibility.
668
+ */
669
+ listboxLabel?: string;
670
+
671
+ /**
672
+ * An `aria-labelledby` to pass to the `Listbox` component that describes the
673
+ * list of {@link options}. Either this or the {@link listboxLabel} are
674
+ * required for accessibility.
675
+ */
676
+ listboxLabelledBy?: string;
677
+
678
+ /**
679
+ * Any additional props that should be passed to the `Listbox` component.
680
+ */
681
+ listboxProps?: PropsWithRef<
682
+ ConfigurableAutocompleteListboxProps,
683
+ HTMLDivElement
684
+ >;
685
+
686
+ /** @see {@link AutocompleteGetOptionProps} */
687
+ getOptionProps?: AutocompleteGetOptionProps<Option>;
688
+
689
+ /**
690
+ * This can be used to add any custom styling, change the icon, change the
691
+ * label, etc for the dropdown button.
78
692
  *
79
693
  * @example Simple Example
80
694
  * ```tsx
81
- * getOptionProps={({ option }) => {
82
- * return {
83
- * disabled: option === "",
84
- * className: cnb(option === "a" && styles.blue),
85
- * leftAddon: option === value && <CheckIcon />,
86
- * };
695
+ * dropdownButtonProps={{
696
+ * "aria-label": "Open",
697
+ * className: styles.dropdownButton,
698
+ * icon: <MyCustomDropdownIcon />,
87
699
  * }}
88
700
  * ```
89
701
  */
90
- getOptionProps?(
91
- options: AutocompleteGetOptionPropsOptions<T>
92
- ): Partial<MenuItemProps> | undefined;
702
+ dropdownButtonProps?: ConfigurableAutocompleteDropdownButtonProps;
93
703
 
94
704
  /**
95
- * The children to display when there are no {@link options} due to the
96
- * current text box value.
705
+ * Set this to `true` to remove the {@link DropdownButton} from being rendered
706
+ * after the input element.
97
707
  *
98
- * @defaultValue `<ListSubheader>No options</ListSubheader`
708
+ * @defaultValue `false`
99
709
  */
100
- noOptionsChildren?: ReactNode;
710
+ disableDropdownButton?: boolean;
711
+
712
+ /**
713
+ * Set this to `true` to disable a `<CircularProgress />` after the input and
714
+ * before the `<DropdownButton />`.
715
+ *
716
+ * @defaultValue `false`
717
+ */
718
+ loading?: boolean;
101
719
 
102
720
  /**
103
- * This will be called whenever one of the options are selected or reset.
721
+ * @defaultValue `{ "aria-label": "Loading", ...loadingProps }`
104
722
  */
105
- onAutocomplete?(option: T | null): void;
723
+ loadingProps?: AutocompleteCircularProgressProps;
724
+
725
+ clearButtonProps?: PropsWithRef<
726
+ ConfigurableAutocompleteClearButtonProps,
727
+ HTMLButtonElement
728
+ >;
106
729
 
107
730
  /**
108
731
  * @defaultValue `false`
109
732
  */
110
- clearOnAutocomplete?: boolean;
733
+ disableClearButton?: boolean;
734
+
735
+ /**
736
+ * This is a convenience prop for the `onEntering`/`onEntered` transition
737
+ * callbacks that will ensure it is only called once even if the transitions
738
+ * are disabled. A great use-case for this function is to fetch data once the
739
+ * menu is opened.
740
+ */
741
+ onOpen?: () => void;
742
+
743
+ /**
744
+ * The children to display when there are no {@link options} due to the
745
+ * current text box value.
746
+ *
747
+ * @defaultValue `<ListSubheader>No options</ListSubheader`
748
+ */
749
+ noOptionsChildren?: ReactNode;
111
750
 
112
751
  /**
113
- * Set this to `true` to disable the built-in filtering of the
114
- * {@link options}. This will always be `true` if `aria-autocomplete="none"`.
752
+ * Set this to `true` when using a multiselect autocomplete to prevent the
753
+ * selected values from being rendered inline with the input. This is useful
754
+ * when the selected values should be shown in a different part of the UI
755
+ * instead.
115
756
  *
116
757
  * @defaultValue `false`
117
758
  */
118
- disableFilter?: boolean;
759
+ disableInlineChips?: boolean;
119
760
 
120
- /** @defaultValue `"keep"` */
121
- whitespace?: WhitespaceFilter;
761
+ /** @see {@link AutocompleteGetChipProps} */
762
+ getChipProps?: AutocompleteGetChipProps<Option>;
122
763
  }
764
+
765
+ /**
766
+ * @since 6.0.0
767
+ */
768
+ export type AutocompleteListboxLabelProps =
769
+ | { listboxLabel: string }
770
+ | { listboxLabelledBy: string };
771
+
772
+ /**
773
+ * @since 6.0.0
774
+ */
775
+ export type AutocompleteQueryAndExtractorProps<
776
+ Option extends AutocompleteOption,
777
+ > = AutocompleteBaseProps<Option> &
778
+ AutocompleteOptionLabelExtractor<Option> &
779
+ AutocompleteQuery &
780
+ AutocompleteListboxLabelProps;
781
+
782
+ /**
783
+ * @since 6.0.0
784
+ */
785
+ export type AutocompleteSingleSelectProps<Option extends AutocompleteOption> =
786
+ AutocompleteQueryAndExtractorProps<Option> &
787
+ AutocompleteValue<Option | null> & {
788
+ checkboxes?: never;
789
+ getChipProps?: never;
790
+ disableInlineChips?: never;
791
+ };
792
+
793
+ /**
794
+ * @since 6.0.0
795
+ */
796
+ export type AutocompleteMultiSelectProps<Option extends AutocompleteOption> =
797
+ AutocompleteQueryAndExtractorProps<Option> &
798
+ AutocompleteValue<readonly Option[]>;
799
+
800
+ /**
801
+ * @since 6.0.0
802
+ */
803
+ export type AutocompleteProps<Option extends AutocompleteOption> =
804
+ AutocompleteBaseProps<Option> &
805
+ AutocompleteUnknownQueryAndValueOptions<Option>;