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

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 (665) 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 +45 -22
  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} +11 -176
  126. package/dist/{form/fileUtils.js → files/validation.js} +10 -135
  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/SelectedOption.js +2 -1
  158. package/dist/form/SelectedOption.js.map +1 -1
  159. package/dist/form/Slider.d.ts +4 -4
  160. package/dist/form/Slider.js +6 -2
  161. package/dist/form/Slider.js.map +1 -1
  162. package/dist/form/SliderThumb.d.ts +3 -3
  163. package/dist/form/SliderThumb.js.map +1 -1
  164. package/dist/form/SliderValueMarks.d.ts +2 -2
  165. package/dist/form/SliderValueMarks.js.map +1 -1
  166. package/dist/form/SliderValueTooltip.js.map +1 -1
  167. package/dist/form/TextArea.js +1 -2
  168. package/dist/form/TextArea.js.map +1 -1
  169. package/dist/form/TextField.js +1 -2
  170. package/dist/form/TextField.js.map +1 -1
  171. package/dist/form/TextFieldContainer.js +1 -2
  172. package/dist/form/TextFieldContainer.js.map +1 -1
  173. package/dist/form/_form.scss +193 -124
  174. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  175. package/dist/form/formMessageContainerStyles.js +11 -0
  176. package/dist/form/formMessageContainerStyles.js.map +1 -0
  177. package/dist/form/inputToggleStyles.js.map +1 -1
  178. package/dist/form/optionStyles.d.ts +1 -0
  179. package/dist/form/optionStyles.js +2 -2
  180. package/dist/form/optionStyles.js.map +1 -1
  181. package/dist/form/selectUtils.js.map +1 -1
  182. package/dist/form/sliderUtils.d.ts +1 -1
  183. package/dist/form/sliderUtils.js.map +1 -1
  184. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  185. package/dist/form/textFieldContainerStyles.js +1 -2
  186. package/dist/form/textFieldContainerStyles.js.map +1 -1
  187. package/dist/form/types.d.ts +3 -10
  188. package/dist/form/types.js.map +1 -1
  189. package/dist/form/useCheckboxGroup.d.ts +17 -17
  190. package/dist/form/useCheckboxGroup.js +9 -17
  191. package/dist/form/useCheckboxGroup.js.map +1 -1
  192. package/dist/form/useCombobox.d.ts +56 -21
  193. package/dist/form/useCombobox.js +19 -4
  194. package/dist/form/useCombobox.js.map +1 -1
  195. package/dist/form/useEditableCombobox.d.ts +24 -4
  196. package/dist/form/useEditableCombobox.js +5 -0
  197. package/dist/form/useEditableCombobox.js.map +1 -1
  198. package/dist/form/useNumberField.js.map +1 -1
  199. package/dist/form/useRadioGroup.d.ts +6 -6
  200. package/dist/form/useRadioGroup.js.map +1 -1
  201. package/dist/form/useResizingTextArea.js.map +1 -1
  202. package/dist/form/useSelectCombobox.d.ts +3 -4
  203. package/dist/form/useSelectCombobox.js.map +1 -1
  204. package/dist/form/useTextField.d.ts +1 -1
  205. package/dist/form/useTextField.js.map +1 -1
  206. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  207. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  208. package/dist/hoverMode/useHoverMode.js.map +1 -1
  209. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  210. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  211. package/dist/icon/FontIcon.d.ts +4 -2
  212. package/dist/icon/FontIcon.js.map +1 -1
  213. package/dist/icon/TextIconSpacing.d.ts +3 -1
  214. package/dist/icon/TextIconSpacing.js.map +1 -1
  215. package/dist/icon/_icon.scss +151 -2
  216. package/dist/icon/iconConfig.d.ts +10 -0
  217. package/dist/icon/iconConfig.js +7 -0
  218. package/dist/icon/iconConfig.js.map +1 -1
  219. package/dist/icon/materialConfig.js.map +1 -1
  220. package/dist/icon/styles.js.map +1 -1
  221. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  222. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  223. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  224. package/dist/interaction/types.d.ts +20 -2
  225. package/dist/interaction/types.js.map +1 -1
  226. package/dist/interaction/useElementInteraction.d.ts +7 -1
  227. package/dist/interaction/useElementInteraction.js +1 -2
  228. package/dist/interaction/useElementInteraction.js.map +1 -1
  229. package/dist/interaction/utils.d.ts +2 -2
  230. package/dist/interaction/utils.js +2 -2
  231. package/dist/interaction/utils.js.map +1 -1
  232. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  233. package/dist/layout/_layout.scss +23 -10
  234. package/dist/layout/useExpandableLayout.d.ts +3 -3
  235. package/dist/layout/useExpandableLayout.js.map +1 -1
  236. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  237. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  238. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  239. package/dist/layout/useTemporaryLayout.js.map +1 -1
  240. package/dist/link/SkipToMainContent.js.map +1 -1
  241. package/dist/list/ListItem.d.ts +2 -1
  242. package/dist/list/ListItem.js +2 -1
  243. package/dist/list/ListItem.js.map +1 -1
  244. package/dist/list/ListItemChildren.js.map +1 -1
  245. package/dist/list/ListItemLink.d.ts +2 -1
  246. package/dist/list/ListItemLink.js +2 -1
  247. package/dist/list/ListItemLink.js.map +1 -1
  248. package/dist/list/_list.scss +6 -5
  249. package/dist/media-queries/_media-queries.scss +12 -0
  250. package/dist/media-queries/appSize.js.map +1 -1
  251. package/dist/media-queries/useMediaQuery.js +3 -1
  252. package/dist/media-queries/useMediaQuery.js.map +1 -1
  253. package/dist/menu/DropdownMenu.js.map +1 -1
  254. package/dist/menu/Menu.d.ts +8 -3
  255. package/dist/menu/Menu.js +2 -1
  256. package/dist/menu/Menu.js.map +1 -1
  257. package/dist/menu/MenuItemButton.js +6 -2
  258. package/dist/menu/MenuItemButton.js.map +1 -1
  259. package/dist/menu/useContextMenu.d.ts +3 -3
  260. package/dist/menu/useContextMenu.js.map +1 -1
  261. package/dist/movement/types.d.ts +5 -5
  262. package/dist/movement/types.js.map +1 -1
  263. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  264. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  265. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  266. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  267. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  268. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  269. package/dist/navigation/NavItemButton.d.ts +1 -1
  270. package/dist/navigation/NavItemButton.js +1 -0
  271. package/dist/navigation/NavItemButton.js.map +1 -1
  272. package/dist/navigation/NavItemLink.d.ts +3 -2
  273. package/dist/navigation/NavItemLink.js +6 -2
  274. package/dist/navigation/NavItemLink.js.map +1 -1
  275. package/dist/navigation/NavSubheader.d.ts +2 -3
  276. package/dist/navigation/NavSubheader.js.map +1 -1
  277. package/dist/navigation/Navigation.d.ts +1 -1
  278. package/dist/navigation/Navigation.js.map +1 -1
  279. package/dist/navigation/_navigation.scss +6 -5
  280. package/dist/navigation/types.d.ts +54 -6
  281. package/dist/navigation/types.js.map +1 -1
  282. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  283. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  284. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  285. package/dist/navigation/useNavigationExpansion.js +77 -0
  286. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  287. package/dist/navigation/utils.d.ts +13 -0
  288. package/dist/navigation/utils.js +36 -0
  289. package/dist/navigation/utils.js.map +1 -0
  290. package/dist/objectFit.d.ts +69 -0
  291. package/dist/objectFit.js +52 -0
  292. package/dist/objectFit.js.map +1 -0
  293. package/dist/overlay/_overlay.scss +2 -1
  294. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  295. package/dist/positioning/useFixedPositioning.js +10 -5
  296. package/dist/positioning/useFixedPositioning.js.map +1 -1
  297. package/dist/positioning/utils.js.map +1 -1
  298. package/dist/progress/LinearProgress.js.map +1 -1
  299. package/dist/progress/_progress.scss +20 -14
  300. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  301. package/dist/responsive-item/ResponsiveItem.js +68 -0
  302. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  303. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
  304. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
  305. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  306. package/dist/responsive-item/_responsive-item.scss +110 -133
  307. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  308. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  309. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  310. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  311. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  312. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  313. package/dist/scroll/useScrollLock.d.ts +5 -0
  314. package/dist/scroll/useScrollLock.js.map +1 -1
  315. package/dist/searching/utils.d.ts +2 -2
  316. package/dist/searching/utils.js.map +1 -1
  317. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  318. package/dist/segmented-button/SegmentedButton.js +2 -1
  319. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  320. package/dist/segmented-button/_segmented-button.scss +6 -6
  321. package/dist/sheet/_sheet.scss +18 -6
  322. package/dist/snackbar/ToastManager.js +15 -5
  323. package/dist/snackbar/ToastManager.js.map +1 -1
  324. package/dist/snackbar/_snackbar.scss +30 -17
  325. package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
  326. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  327. package/dist/table/_table.scss +15 -3
  328. package/dist/table/tableCellStyles.d.ts +7 -3
  329. package/dist/table/tableCellStyles.js +2 -2
  330. package/dist/table/tableCellStyles.js.map +1 -1
  331. package/dist/tabs/Tab.d.ts +2 -1
  332. package/dist/tabs/Tab.js +2 -1
  333. package/dist/tabs/Tab.js.map +1 -1
  334. package/dist/tabs/TabList.d.ts +2 -2
  335. package/dist/tabs/TabList.js.map +1 -1
  336. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  337. package/dist/tabs/TabListScrollButton.js +1 -1
  338. package/dist/tabs/TabListScrollButton.js.map +1 -1
  339. package/dist/tabs/_tabs.scss +30 -9
  340. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  341. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  342. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  343. package/dist/tabs/tabStyles.d.ts +3 -0
  344. package/dist/tabs/tabStyles.js.map +1 -1
  345. package/dist/tabs/useTabList.d.ts +1 -8
  346. package/dist/tabs/useTabList.js +1 -0
  347. package/dist/tabs/useTabList.js.map +1 -1
  348. package/dist/tabs/useTabs.d.ts +6 -6
  349. package/dist/tabs/useTabs.js.map +1 -1
  350. package/dist/tabs/utils.d.ts +0 -18
  351. package/dist/tabs/utils.js +0 -15
  352. package/dist/tabs/utils.js.map +1 -1
  353. package/dist/test-utils/ResizeObserver.d.ts +11 -12
  354. package/dist/test-utils/ResizeObserver.js +11 -12
  355. package/dist/test-utils/ResizeObserver.js.map +1 -1
  356. package/dist/test-utils/matchMedia.d.ts +3 -3
  357. package/dist/test-utils/matchMedia.js +6 -6
  358. package/dist/test-utils/matchMedia.js.map +1 -1
  359. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  360. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  361. package/dist/test-utils/timers.d.ts +9 -5
  362. package/dist/test-utils/timers.js +5 -5
  363. package/dist/test-utils/timers.js.map +1 -1
  364. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  365. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  366. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  367. package/dist/theme/ThemeProvider.js +3 -1
  368. package/dist/theme/ThemeProvider.js.map +1 -1
  369. package/dist/theme/_a11y.scss +86 -13
  370. package/dist/theme/_colors.scss +279 -277
  371. package/dist/theme/_theme.scss +308 -37
  372. package/dist/theme/isColorScheme.d.ts +16 -0
  373. package/dist/theme/isColorScheme.js +19 -0
  374. package/dist/theme/isColorScheme.js.map +1 -0
  375. package/dist/theme/types.d.ts +53 -1
  376. package/dist/theme/types.js +1 -23
  377. package/dist/theme/types.js.map +1 -1
  378. package/dist/theme/useCSSVariables.d.ts +2 -19
  379. package/dist/theme/useCSSVariables.js.map +1 -1
  380. package/dist/theme/useColorScheme.d.ts +1 -35
  381. package/dist/theme/useColorScheme.js.map +1 -1
  382. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  383. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  384. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  385. package/dist/theme/useColorSchemeProvider.js +1 -1
  386. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  387. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  388. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  389. package/dist/theme/utils.js.map +1 -1
  390. package/dist/tooltip/useTooltip.d.ts +14 -9
  391. package/dist/tooltip/useTooltip.js +2 -1
  392. package/dist/tooltip/useTooltip.js.map +1 -1
  393. package/dist/transition/_transition.scss +16 -9
  394. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  395. package/dist/transition/types.d.ts +1 -1
  396. package/dist/transition/types.js.map +1 -1
  397. package/dist/transition/useCarousel.d.ts +3 -3
  398. package/dist/transition/useCarousel.js.map +1 -1
  399. package/dist/transition/useCollapseTransition.js.map +1 -1
  400. package/dist/transition/useTransition.js +1 -0
  401. package/dist/transition/useTransition.js.map +1 -1
  402. package/dist/transition/utils.js.map +1 -1
  403. package/dist/tree/TreeItem.d.ts +2 -1
  404. package/dist/tree/TreeItem.js +4 -3
  405. package/dist/tree/TreeItem.js.map +1 -1
  406. package/dist/tree/TreeItemExpander.js.map +1 -1
  407. package/dist/tree/_tree.scss +8 -6
  408. package/dist/tree/useTreeExpansion.d.ts +1 -1
  409. package/dist/tree/useTreeExpansion.js +6 -18
  410. package/dist/tree/useTreeExpansion.js.map +1 -1
  411. package/dist/tree/useTreeSelection.d.ts +1 -1
  412. package/dist/tree/useTreeSelection.js +7 -25
  413. package/dist/tree/useTreeSelection.js.map +1 -1
  414. package/dist/tree/utils.d.ts +1 -1
  415. package/dist/tree/utils.js.map +1 -1
  416. package/dist/types.d.ts +12 -4
  417. package/dist/types.js.map +1 -1
  418. package/dist/typography/WritingDirectionProvider.d.ts +1 -1
  419. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  420. package/dist/typography/_typography.scss +94 -37
  421. package/dist/typography/typographyStyles.js.map +1 -1
  422. package/dist/useDebouncedFunction.d.ts +1 -5
  423. package/dist/useDebouncedFunction.js +3 -1
  424. package/dist/useDebouncedFunction.js.map +1 -1
  425. package/dist/useDropzone.d.ts +4 -4
  426. package/dist/useDropzone.js.map +1 -1
  427. package/dist/useEnsuredId.js.map +1 -1
  428. package/dist/useIntersectionObserver.d.ts +5 -5
  429. package/dist/useIntersectionObserver.js.map +1 -1
  430. package/dist/useLocalStorage.d.ts +3 -3
  431. package/dist/useLocalStorage.js +1 -1
  432. package/dist/useLocalStorage.js.map +1 -1
  433. package/dist/useMutationObserver.d.ts +1 -1
  434. package/dist/useMutationObserver.js.map +1 -1
  435. package/dist/useOrientation.js +3 -1
  436. package/dist/useOrientation.js.map +1 -1
  437. package/dist/usePageInactive.d.ts +2 -2
  438. package/dist/usePageInactive.js.map +1 -1
  439. package/dist/useReadonlySet.d.ts +76 -0
  440. package/dist/useReadonlySet.js +72 -0
  441. package/dist/useReadonlySet.js.map +1 -0
  442. package/dist/useResizeListener.d.ts +1 -1
  443. package/dist/useResizeListener.js.map +1 -1
  444. package/dist/useResizeObserver.d.ts +19 -0
  445. package/dist/useResizeObserver.js +19 -0
  446. package/dist/useResizeObserver.js.map +1 -1
  447. package/dist/useThrottledFunction.d.ts +1 -5
  448. package/dist/useThrottledFunction.js +3 -1
  449. package/dist/useThrottledFunction.js.map +1 -1
  450. package/dist/useToggle.d.ts +3 -3
  451. package/dist/useToggle.js.map +1 -1
  452. package/dist/utils/RenderRecursively.d.ts +2 -2
  453. package/dist/utils/RenderRecursively.js.map +1 -1
  454. package/dist/utils/alphaNumericSort.d.ts +5 -5
  455. package/dist/utils/alphaNumericSort.js.map +1 -1
  456. package/dist/utils/bem.d.ts +1 -1
  457. package/dist/utils/bem.js +1 -1
  458. package/dist/utils/bem.js.map +1 -1
  459. package/dist/utils/debounce.d.ts +5 -0
  460. package/dist/utils/debounce.js +17 -0
  461. package/dist/utils/debounce.js.map +1 -0
  462. package/dist/utils/nearest.js.map +1 -1
  463. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  464. package/dist/utils/throttle.d.ts +5 -0
  465. package/dist/utils/throttle.js +30 -0
  466. package/dist/utils/throttle.js.map +1 -0
  467. package/dist/utils/wait.js +3 -1
  468. package/dist/utils/wait.js.map +1 -1
  469. package/dist/window-splitter/WindowSplitter.d.ts +37 -15
  470. package/dist/window-splitter/WindowSplitter.js +38 -17
  471. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  472. package/dist/window-splitter/_window-splitter.scss +32 -14
  473. package/dist/window-splitter/styles.d.ts +14 -0
  474. package/dist/window-splitter/styles.js +18 -0
  475. package/dist/window-splitter/styles.js.map +1 -0
  476. package/package.json +25 -24
  477. package/src/app-bar/AppBar.tsx +1 -170
  478. package/src/app-bar/AppBarTitle.tsx +1 -44
  479. package/src/app-bar/styles.ts +206 -0
  480. package/src/autocomplete/Autocomplete.tsx +194 -211
  481. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  482. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  483. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  484. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  485. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  486. package/src/autocomplete/autocompleteStyles.ts +48 -9
  487. package/src/autocomplete/defaults.ts +26 -17
  488. package/src/autocomplete/types.ts +744 -61
  489. package/src/autocomplete/useAutocomplete.ts +428 -0
  490. package/src/autocomplete/utils.ts +211 -0
  491. package/src/badge/Badge.tsx +1 -39
  492. package/src/badge/styles.ts +45 -0
  493. package/src/box/Box.tsx +11 -9
  494. package/src/box/styles.ts +14 -5
  495. package/src/button/AsyncButton.tsx +1 -1
  496. package/src/button/Button.tsx +5 -1
  497. package/src/card/Card.tsx +35 -4
  498. package/src/card/ClickableCard.tsx +9 -2
  499. package/src/card/styles.ts +1 -10
  500. package/src/chip/Chip.tsx +6 -1
  501. package/src/chip/styles.ts +12 -10
  502. package/src/delegateEvent.ts +5 -5
  503. package/src/dialog/Dialog.tsx +48 -61
  504. package/src/dialog/FixedDialog.tsx +1 -11
  505. package/src/dialog/styles.ts +97 -0
  506. package/src/divider/Divider.tsx +0 -12
  507. package/src/divider/styles.ts +12 -0
  508. package/src/draggable/useDraggable.ts +17 -10
  509. package/src/draggable/utils.ts +3 -3
  510. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  511. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  512. package/src/{form → files}/FileInput.tsx +7 -15
  513. package/src/files/styles.ts +10 -0
  514. package/src/{form → files}/useFileUpload.ts +30 -34
  515. package/src/files/utils.ts +234 -0
  516. package/src/{form/fileUtils.ts → files/validation.ts} +15 -244
  517. package/src/focus/useFocusContainer.ts +16 -8
  518. package/src/form/FormMessageContainer.tsx +2 -2
  519. package/src/form/InputToggle.tsx +5 -1
  520. package/src/form/Label.tsx +18 -18
  521. package/src/form/Listbox.tsx +87 -0
  522. package/src/form/ListboxProvider.ts +37 -0
  523. package/src/form/MenuItemTextField.tsx +1 -2
  524. package/src/form/NativeSelect.tsx +14 -10
  525. package/src/form/Option.tsx +74 -22
  526. package/src/form/Select.tsx +89 -85
  527. package/src/form/SelectedOption.tsx +2 -0
  528. package/src/form/Slider.tsx +14 -11
  529. package/src/form/SliderThumb.tsx +4 -4
  530. package/src/form/SliderValueMarks.tsx +4 -4
  531. package/src/form/TextArea.tsx +6 -8
  532. package/src/form/TextField.tsx +0 -2
  533. package/src/form/TextFieldContainer.tsx +9 -11
  534. package/src/form/formMessageContainerStyles.ts +22 -0
  535. package/src/form/optionStyles.ts +7 -2
  536. package/src/form/sliderUtils.ts +1 -1
  537. package/src/form/textFieldContainerStyles.ts +9 -14
  538. package/src/form/types.ts +3 -11
  539. package/src/form/useCheckboxGroup.ts +28 -36
  540. package/src/form/useCombobox.ts +86 -38
  541. package/src/form/useEditableCombobox.ts +43 -8
  542. package/src/form/useRadioGroup.ts +6 -6
  543. package/src/form/useSelectCombobox.ts +4 -4
  544. package/src/form/useTextField.ts +1 -1
  545. package/src/hoverMode/useHoverMode.ts +3 -3
  546. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  547. package/src/icon/FontIcon.tsx +4 -2
  548. package/src/icon/TextIconSpacing.tsx +1 -1
  549. package/src/icon/iconConfig.tsx +12 -0
  550. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  551. package/src/interaction/types.ts +21 -2
  552. package/src/interaction/useElementInteraction.tsx +9 -2
  553. package/src/interaction/utils.ts +7 -7
  554. package/src/layout/useExpandableLayout.ts +3 -3
  555. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  556. package/src/layout/useTemporaryLayout.ts +2 -2
  557. package/src/list/ListItem.tsx +5 -1
  558. package/src/list/ListItemLink.tsx +5 -1
  559. package/src/media-queries/useMediaQuery.ts +2 -1
  560. package/src/menu/Menu.tsx +11 -3
  561. package/src/menu/MenuItemButton.tsx +7 -1
  562. package/src/menu/useContextMenu.ts +3 -3
  563. package/src/movement/types.ts +5 -5
  564. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  565. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  566. package/src/navigation/NavItemButton.tsx +2 -1
  567. package/src/navigation/NavItemLink.tsx +11 -3
  568. package/src/navigation/NavSubheader.tsx +1 -1
  569. package/src/navigation/Navigation.tsx +1 -1
  570. package/src/navigation/types.ts +60 -10
  571. package/src/navigation/useActiveHeadingId.ts +1 -1
  572. package/src/navigation/useNavigationExpansion.ts +170 -0
  573. package/src/navigation/utils.ts +47 -0
  574. package/src/objectFit.ts +88 -0
  575. package/src/positioning/useFixedPositioning.ts +34 -11
  576. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  577. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
  578. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  579. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  580. package/src/scroll/useScrollLock.ts +6 -0
  581. package/src/searching/utils.ts +3 -3
  582. package/src/segmented-button/SegmentedButton.tsx +5 -1
  583. package/src/snackbar/ToastManager.tsx +16 -5
  584. package/src/snackbar/useCurrentToastActions.ts +5 -5
  585. package/src/table/tableCellStyles.ts +10 -6
  586. package/src/tabs/Tab.tsx +4 -1
  587. package/src/tabs/TabList.tsx +2 -2
  588. package/src/tabs/TabListScrollButton.tsx +4 -4
  589. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  590. package/src/tabs/tabStyles.ts +4 -0
  591. package/src/tabs/useTabList.ts +2 -9
  592. package/src/tabs/useTabs.ts +6 -6
  593. package/src/tabs/utils.ts +0 -38
  594. package/src/test-utils/ResizeObserver.ts +11 -12
  595. package/src/test-utils/matchMedia.ts +7 -7
  596. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  597. package/src/test-utils/timers.ts +10 -7
  598. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  599. package/src/theme/ThemeProvider.tsx +3 -3
  600. package/src/theme/isColorScheme.ts +22 -0
  601. package/src/theme/types.ts +67 -1
  602. package/src/theme/useCSSVariables.ts +7 -30
  603. package/src/theme/useColorScheme.ts +1 -40
  604. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  605. package/src/theme/useColorSchemeProvider.ts +2 -2
  606. package/src/tooltip/useTooltip.ts +17 -9
  607. package/src/transition/types.ts +1 -1
  608. package/src/transition/useCarousel.ts +3 -3
  609. package/src/transition/useTransition.ts +1 -0
  610. package/src/tree/TreeItem.tsx +7 -1
  611. package/src/tree/TreeItemExpander.tsx +1 -1
  612. package/src/tree/useTreeExpansion.ts +7 -25
  613. package/src/tree/useTreeSelection.ts +8 -32
  614. package/src/tree/utils.ts +6 -2
  615. package/src/types.ts +20 -4
  616. package/src/typography/WritingDirectionProvider.tsx +1 -1
  617. package/src/useDebouncedFunction.ts +4 -9
  618. package/src/useDropzone.ts +4 -4
  619. package/src/useIntersectionObserver.ts +5 -5
  620. package/src/useLocalStorage.ts +6 -6
  621. package/src/useMutationObserver.ts +1 -1
  622. package/src/useOrientation.ts +3 -1
  623. package/src/usePageInactive.ts +2 -2
  624. package/src/useReadonlySet.ts +122 -0
  625. package/src/useResizeListener.ts +1 -1
  626. package/src/useResizeObserver.ts +19 -0
  627. package/src/useThrottledFunction.ts +6 -9
  628. package/src/useToggle.ts +3 -3
  629. package/src/utils/RenderRecursively.tsx +2 -2
  630. package/src/utils/alphaNumericSort.ts +5 -5
  631. package/src/utils/bem.ts +1 -1
  632. package/src/utils/debounce.ts +22 -0
  633. package/src/utils/throttle.ts +38 -0
  634. package/src/utils/wait.ts +5 -1
  635. package/src/window-splitter/WindowSplitter.tsx +38 -43
  636. package/src/window-splitter/styles.ts +42 -0
  637. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  638. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  639. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  640. package/dist/dialog/DialogContainer.d.ts +0 -14
  641. package/dist/dialog/DialogContainer.js +0 -20
  642. package/dist/dialog/DialogContainer.js.map +0 -1
  643. package/dist/form/FileInput.js.map +0 -1
  644. package/dist/form/fileUtils.js.map +0 -1
  645. package/dist/form/useFileUpload.js.map +0 -1
  646. package/dist/form/useListboxProvider.d.ts +0 -31
  647. package/dist/form/useListboxProvider.js.map +0 -1
  648. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  649. package/dist/navigation/getHrefFromParents.js +0 -13
  650. package/dist/navigation/getHrefFromParents.js.map +0 -1
  651. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
  652. package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
  653. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  654. package/dist/responsive-item/styles.d.ts +0 -34
  655. package/dist/responsive-item/styles.js +0 -17
  656. package/dist/responsive-item/styles.js.map +0 -1
  657. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  658. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  659. package/src/dialog/DialogContainer.tsx +0 -28
  660. package/src/form/useListboxProvider.ts +0 -45
  661. package/src/navigation/getHrefFromParents.ts +0 -15
  662. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
  663. package/src/responsive-item/styles.ts +0 -58
  664. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  665. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -1,73 +1,401 @@
1
1
  @use "sass:list";
2
2
  @use "sass:map";
3
+ @use "sass:math";
4
+ @use "sass:string";
3
5
  @use "../utils";
6
+ @use "../box/box";
4
7
  @use "../button/button";
8
+ @use "../chip/chip";
9
+ @use "../icon/icon";
5
10
  @use "../form/form";
6
11
  @use "../progress/progress";
7
12
 
13
+ // Set to `true` to disable all the styles
14
+ // @type boolean
8
15
  $disable-everything: false !default;
16
+
17
+ // Set to `true` to disable the clear button styles
18
+ // @type boolean
19
+ $disable-clear-button: false !default;
20
+
21
+ // Set to `true` to disable the dropdown button styles
22
+ // @type boolean
9
23
  $disable-dropdown-button: false !default;
24
+
25
+ // Set to `true` to disable the circular progress styles
26
+ // @type boolean
10
27
  $disable-circular-progress: false !default;
11
28
 
12
- $button-size: button.$icon-small-size !default;
13
- $circular-progress-size: progress.$circular-dense-size !default;
29
+ // Set to `true` to disable setting `text-overflow: ellipsis` on the input
30
+ // @type boolean
31
+ $disable-text-overflow-ellipsis: false !default;
14
32
 
15
- $dropdown-button-calc: calc(button.get-var(icon-font-size) * 2) !default;
16
- $dropdown-button-only-calc: calc(
17
- form.get-var(addon-spacing) + $dropdown-button-calc
18
- ) !default;
19
- $circular-progress-only-calc: calc(
20
- form.get-var(addon-spacing) + progress.get-var(circular-size)
21
- ) !default;
22
- $circular-progress-and-dropdown-button-calc: calc(
23
- calc(form.get-var(addon-spacing) * 2) + progress.get-var(circular-size) +
24
- $dropdown-button-calc
33
+ // Set to `true` to disable the inline chip styles
34
+ // @type boolean
35
+ $disable-inline-chips: chip.$disable-everything !default;
36
+
37
+ // This is the min width for the input when there are inline chips. This causes
38
+ // the input to wrap to the next line.
39
+ // @type number
40
+ $inline-min-width: 5rem !default;
41
+
42
+ // The amount of spacing between each inline chip
43
+ // @type number
44
+ $inline-chips-gap: icon.get-var(spacing) !default;
45
+
46
+ // The vertical padding to apply to the text field when using inline chips and
47
+ // the outline theme. This is used so that the chips and floating label look
48
+ // nice.
49
+ // @type number
50
+ $inline-outlined-vertical-padding: calc(
51
+ (form.get-var(text-field-height) - chip.get-var(height)) / 2 -
52
+ form.$text-field-border-width
25
53
  ) !default;
26
54
 
55
+ // The amount of padding to apply to the text field when there is at least one
56
+ // chip visible. The default behavior makes it so the text in the input matches
57
+ // with a chip if they were stacked.
58
+ //
59
+ // @type number
60
+ $inline-input-leading-padding: chip.get-var(horizontal-padding) !default;
61
+
62
+ // Updates all the icon button sizes that appear within the autocomplete to use
63
+ // this new size
64
+ // @type number
65
+ $button-size: button.$icon-small-size !default;
66
+
67
+ // Updates the circular progress size in the autocomplete to this size.
68
+ // @type number
69
+ $circular-progress-size: button.$icon-small-size !default;
70
+
71
+ // The amount of gap between the circular progress, clear button, and dropdown
72
+ // button (when they exist).
73
+ //
74
+ // @type number
75
+ $addon-gap: form.$text-field-addon-gap !default;
76
+
77
+ // The spacing between the input and the circular progress/clear button/dropdown
78
+ // button addons.
79
+ //
80
+ // @type number
81
+ $addon-spacing: form.get-var(addon-spacing) !default;
82
+
83
+ // The size of the clear button and used to generate the correct padding for all
84
+ // the inline addons
85
+ // @type number
86
+ $clear-button-size: calc(button.get-var(icon-font-size) * 2) !default;
87
+
88
+ // The size of the dropdown button and used to generate the correct padding for all
89
+ // the inline addons
90
+ // @type number
91
+ $dropdown-button-size: calc(button.get-var(icon-font-size) * 2) !default;
92
+
93
+ // The size of the circular progress and used to generate the correct padding
94
+ // for all the inline addons
95
+ // @type number
96
+ $circular-progress-size: progress.get-var(circular-size) !default;
97
+
98
+ $_chip-selector: ".rmd-autocomplete__chip";
99
+ $_clear-button-selector: ".rmd-autocomplete__clear-button";
100
+ $_dropdown-button-selector: ".rmd-autocomplete__dropdown-button";
101
+ $_outline-selector: ".rmd-text-field-container--outline";
102
+ $_underline-selector: ".rmd-text-field-container--underline";
103
+
104
+ // The available configurable css variables and mostly used internally for the
105
+ // `get-var`, `set-var`, and `use-var` utils.
106
+ // @type List
107
+ $variables: (
108
+ clear-button-size,
109
+ dropdown-button-size,
110
+ circular-progress-size,
111
+ inline-gap,
112
+ inline-min-width,
113
+ addon-gap,
114
+ gap-count,
115
+ addon-spacing
116
+ );
117
+
118
+ // @param {string} name - The supported variable name
119
+ // @param {any} fallback - An optional fallback value
120
+ // @returns {string} a `var()` statement
121
+ @function get-var($name, $fallback: null) {
122
+ $var: utils.get-var-name($variables, $name, "autocomplete");
123
+ @if $fallback {
124
+ @return var(#{$var}, #{$fallback});
125
+ }
126
+
127
+ @return var(#{$var});
128
+ }
129
+
130
+ // @param {string} name - The supported variable name
131
+ // @param {any} value - The value to set the variable to. Supports `null` which
132
+ // will just be a no-op.
133
+ @mixin set-var($name, $value) {
134
+ @if $value {
135
+ #{utils.get-var-name($variables, $name, "autocomplete")}: #{$value};
136
+ }
137
+ }
138
+
139
+ // @param {string} property - The css property to apply the variable to
140
+ // @param {string} name - The supported variable name
141
+ // @param {any} fallback - An optional fallback value if the variable has not
142
+ // been set
143
+ @mixin use-var($property, $name: $property, $fallback: null) {
144
+ #{$property}: get-var($name, $fallback);
145
+ }
146
+
147
+ // Conditionally applies the css variables based on feature flags
148
+ @mixin variables {
149
+ @if not $disable-everything {
150
+ @include set-var(addon-gap, $addon-gap);
151
+ @include set-var(addon-spacing, $addon-spacing);
152
+ @if not $disable-inline-chips {
153
+ @include set-var(inline-gap, $inline-chips-gap);
154
+ @include set-var(inline-min-width, $inline-min-width);
155
+ }
156
+ }
157
+ }
158
+
159
+ // @internal
160
+ @function _right-addon-calc() {
161
+ $calc-spacing: get-var(addon-spacing);
162
+ $calc-total-gap: calc(get-var(gap-count, 0) * get-var(addon-gap));
163
+ $calc-clear-button: if(
164
+ $disable-clear-button,
165
+ "",
166
+ " + " + get-var(clear-button-size, 0px)
167
+ );
168
+ $calc-dropdown-button: if(
169
+ $disable-dropdown-button,
170
+ "",
171
+ " + " + get-var(dropdown-button-size, 0px)
172
+ );
173
+ $calc-circular-progress: if(
174
+ $disable-circular-progress,
175
+ "",
176
+ " + " + get-var(circular-progress-size, 0px)
177
+ );
178
+ $calc-addon-size: $calc-clear-button + $calc-dropdown-button +
179
+ $calc-circular-progress;
180
+
181
+ @return calc($calc-spacing + #{$calc-total-gap + $calc-addon-size});
182
+ }
183
+
184
+ // @internal
185
+ @function _add-has-selector($appending-selector, $addon-selector) {
186
+ $prefix: if(string.length($appending-selector), "", "&");
187
+
188
+ @return $appending-selector + $prefix + ":has(" + $addon-selector + ")";
189
+ }
190
+
191
+ // Generates all the styles for the `Autocomplete` components based on feature
192
+ // flags.
193
+ //
194
+ // @param {boolean} disable-layer - Set this to `true` to disable the
195
+ // layer behavior
27
196
  @mixin styles($disable-layer: false) {
197
+ // disclaimer: this is the first component where I'm trying to utilize more of
198
+ // the `:has`, `:where`, `:is`, etc selectors to require less javascript and
199
+ // move more behavior into CSS
200
+
28
201
  @if not $disable-everything {
29
202
  @include utils.optional-layer(autocomplete, $disable-layer) {
30
203
  .rmd-autocomplete {
31
- @if not $disable-dropdown-button {
204
+ @if not $disable-clear-button and not $disable-dropdown-button {
32
205
  @include button.set-var(icon-font-size, $button-size);
33
206
  }
34
207
  @if not $disable-circular-progress {
35
208
  @include progress.set-var(circular-size, $circular-progress-size);
36
209
  }
37
210
 
211
+ @if not
212
+ $disable-clear-button or not
213
+ $disable-dropdown-button or not
214
+ $disable-circular-progress
215
+ {
216
+ // the way the padding right works is to create a calc string that
217
+ // sums all the available addons widths (including gap) that have
218
+ // been rendered in the autocomplete. to calculate the gap, the
219
+ // `&--db` and `&--cp` selectors will increase the `gap-count`
220
+ // variable based on how many other addons exist with it.
221
+ //
222
+ // So:
223
+ // - only clear button - count == 0
224
+ // - only dropdown button - count == 0
225
+ // - only circular progress - count == 0
226
+ // - clear button and dropdown button - count == 1
227
+ // - clear button and circular progress - count == 1
228
+ // - dropdown button and circular progress - count == 1
229
+ // - circular progress, clear button, and dropdown button - count == 2
230
+ //
231
+ // When the addon isn't included, its size will be set to `0px`. When
232
+ // the addon is included, the size is set to the correct value
233
+ @include form.set-var(text-field-padding-right, _right-addon-calc());
234
+ }
235
+
236
+ @if not $disable-text-overflow-ellipsis {
237
+ &:where(:not(:hover):not(:focus-within)) :where(.rmd-text-field) {
238
+ text-overflow: ellipsis;
239
+ }
240
+ }
241
+
242
+ @if not $disable-clear-button {
243
+ &--cb {
244
+ @include set-var(clear-button-size, $clear-button-size);
245
+ }
246
+ }
247
+
38
248
  @if not $disable-dropdown-button {
39
- // right-addon-1: dropdown button
40
- &--ra1 {
41
- @include form.set-var(
42
- text-field-padding-right,
43
- $dropdown-button-only-calc
44
- );
249
+ &--db {
250
+ @include set-var(dropdown-button-size, $dropdown-button-size);
251
+
252
+ @if not $disable-clear-button {
253
+ &:has(#{$_clear-button-selector}) {
254
+ @include set-var(gap-count, 1);
255
+ }
256
+ }
45
257
  }
258
+ }
46
259
 
47
- @if not $disable-circular-progress {
48
- // right-addon-2: circular progress and dropdown button
49
- &--ra2 {
50
- @include form.set-var(
51
- text-field-padding-right,
52
- $circular-progress-and-dropdown-button-calc
260
+ @if not $disable-circular-progress {
261
+ &--cp {
262
+ @include set-var(circular-progress-size, $circular-progress-size);
263
+
264
+ $two-addon-selector: "";
265
+ $single-selector-list: ();
266
+ @if not $disable-clear-button {
267
+ $single-selector-list: list.append(
268
+ $single-selector-list,
269
+ $_clear-button-selector,
270
+ $separator: comma
271
+ );
272
+ $two-addon-selector: _add-has-selector(
273
+ $two-addon-selector,
274
+ $_clear-button-selector
275
+ );
276
+ }
277
+
278
+ @if not $disable-dropdown-button {
279
+ $single-selector-list: list.append(
280
+ $single-selector-list,
281
+ $_dropdown-button-selector,
282
+ $separator: comma
53
283
  );
284
+ $two-addon-selector: _add-has-selector(
285
+ $two-addon-selector,
286
+ $_dropdown-button-selector
287
+ );
288
+ }
289
+
290
+ @if list.length($single-selector-list) {
291
+ &:has(#{$single-selector-list}) {
292
+ @include set-var(gap-count, 1);
293
+ }
294
+ }
295
+ @if string.length($two-addon-selector) {
296
+ #{$two-addon-selector} {
297
+ @include set-var(gap-count, 2);
298
+ }
54
299
  }
55
300
  }
56
301
  }
57
302
 
58
- @if not $disable-circular-progress {
59
- // right-addon-3: circular progress
60
- &--ra3 {
61
- @include form.set-var(
62
- text-field-padding-right,
63
- $circular-progress-only-calc
64
- );
303
+ @include utils.mouse-hover($wrap-in-hover: false) {
304
+ &:where(:not(:hover):not(:focus-within))
305
+ :where(#{$_clear-button-selector}) {
306
+ opacity: 0;
307
+ }
308
+ }
309
+
310
+ @if not $disable-inline-chips {
311
+ // the basic idea for the inline chips are:
312
+ // - move any padding from the input to the container element
313
+ // - update the styles to display a text cursor when hovering the
314
+ // container element instead of only the input (since clicking
315
+ // anywhere in the container focuses the input)
316
+ // - keep other styles the same until at least one chip exists
317
+ // - when a chip exists, update the vertical padding to align
318
+ // everything nicely
319
+ // - the input will also be updated to align with the text of a chip
320
+ // so it looks nicely when stacked and starting at the beginning of
321
+ // a line
322
+ // - I am NOT updating the underline behavior to match the input width
323
+ // since those are still "boxed" elements and it helps show current
324
+ // focus
325
+ &--inline-chips {
326
+ @include form.use-var(min-height, text-field-height);
327
+ @include form.use-var(padding-right, text-field-padding-right);
328
+ @include use-var(gap, inline-gap);
329
+
330
+ flex-wrap: wrap;
331
+ height: auto;
332
+
333
+ &:where(:not(:has(.rmd-text-field:disabled))) {
334
+ cursor: text;
335
+ }
336
+
337
+ @if not
338
+ form.$disable-text-field-filled-theme or not
339
+ form.$disable-text-field-underlined-theme
340
+ {
341
+ &:where(#{$_underline-selector}):has(#{$_chip-selector}) {
342
+ @include form.use-var(padding-top, text-field-padding-top);
343
+ @include use-var(padding-bottom, inline-gap);
344
+
345
+ :where(.rmd-text-field) {
346
+ padding-top: 0;
347
+ }
348
+ }
349
+ }
350
+
351
+ @if not form.$disable-text-field-outlined-theme {
352
+ &:where(#{$_outline-selector}):has(#{$_chip-selector}) {
353
+ padding-bottom: $inline-outlined-vertical-padding;
354
+ padding-top: $inline-outlined-vertical-padding;
355
+ }
356
+ }
357
+
358
+ &:has(#{$_chip-selector}) {
359
+ // when at least one chip exists, ensure the text field has some
360
+ // leading padding and always display the placeholder (if exists)
361
+ // since the label will also be forced to floating
362
+ :where(.rmd-text-field) {
363
+ @include use-var(min-width, inline-min-width);
364
+ @include chip.use-var(height);
365
+
366
+ padding-left: $inline-input-leading-padding;
367
+ padding-right: 0;
368
+ width: 0;
369
+
370
+ &::placeholder {
371
+ opacity: 1;
372
+ }
373
+
374
+ @include utils.rtl {
375
+ padding-left: 0;
376
+ padding-right: $inline-input-leading-padding;
377
+ }
378
+ }
379
+ }
380
+
381
+ @include utils.rtl {
382
+ @include form.use-var(padding-left, text-field-padding-right);
383
+
384
+ padding-right: 0;
385
+ }
65
386
  }
66
387
  }
67
388
 
68
389
  &__right-addon {
69
- @include utils.auto-rtl(right, 0);
70
- @include utils.auto-rtl(padding-left, form.get-var(addon-spacing), 0);
390
+ padding-left: get-var(addon-spacing);
391
+ right: 0;
392
+
393
+ @include utils.rtl {
394
+ left: 0;
395
+ padding-left: 0;
396
+ padding-right: get-var(addon-spacing);
397
+ right: auto;
398
+ }
71
399
  }
72
400
  }
73
401
  }
@@ -4,6 +4,8 @@
4
4
  export interface AutocompleteClassNameOptions {
5
5
  className?: string;
6
6
  loading?: boolean;
7
+ inlineChips?: boolean;
8
+ disableClearButton?: boolean;
7
9
  disableDropdownButton?: boolean;
8
10
  }
9
11
  /**
@@ -20,6 +22,16 @@ export interface AutocompleteRightAddonClassNameOptions {
20
22
  * @since 6.0.0
21
23
  */
22
24
  export declare function autocompleteRightAddon(options?: AutocompleteRightAddonClassNameOptions): string;
25
+ /**
26
+ * @since 6.0.0
27
+ */
28
+ export interface AutocompleteDropdownButtonClassNameOptions {
29
+ className?: string;
30
+ }
31
+ /**
32
+ * @since 6.0.0
33
+ */
34
+ export declare function autocompleteDropdownButton(options?: AutocompleteDropdownButtonClassNameOptions): string;
23
35
  /**
24
36
  * @since 6.0.0
25
37
  */
@@ -30,3 +42,13 @@ export interface AutocompleteClearButtonClassNameOptions {
30
42
  * @since 6.0.0
31
43
  */
32
44
  export declare function autocompleteClearButton(options?: AutocompleteClearButtonClassNameOptions): string;
45
+ /**
46
+ * @since 6.0.0
47
+ */
48
+ export interface AutocompleteChipClassNameOptions {
49
+ className?: string;
50
+ }
51
+ /**
52
+ * @since 6.0.0
53
+ */
54
+ export declare function autocompleteChip(options?: AutocompleteChipClassNameOptions): string;
@@ -5,15 +5,12 @@ const styles = bem("rmd-autocomplete");
5
5
  /**
6
6
  * @since 6.0.0
7
7
  */ export function autocomplete(options = {}) {
8
- const { className, loading, disableDropdownButton } = options;
8
+ const { className, loading, inlineChips, disableClearButton, disableDropdownButton } = options;
9
9
  return cnb(styles({
10
- // all other configurations must be set manually
11
- // right-addon-1: dropdown button only
12
- ra1: !loading && !disableDropdownButton,
13
- // right-addon-2: circular progress and dropdown button
14
- ra2: loading && !disableDropdownButton,
15
- // right-addon-3: circular progress only
16
- ra3: loading && disableDropdownButton
10
+ cb: !disableClearButton,
11
+ db: !disableDropdownButton,
12
+ cp: loading,
13
+ "inline-chips": inlineChips
17
14
  }), className);
18
15
  }
19
16
  /**
@@ -24,11 +21,23 @@ const styles = bem("rmd-autocomplete");
24
21
  backgroundColor: "current-color"
25
22
  }), className);
26
23
  }
24
+ /**
25
+ * @since 6.0.0
26
+ */ export function autocompleteDropdownButton(options = {}) {
27
+ const { className } = options;
28
+ return cnb(styles("dropdown-button"), className);
29
+ }
27
30
  /**
28
31
  * @since 6.0.0
29
32
  */ export function autocompleteClearButton(options = {}) {
30
33
  const { className } = options;
31
34
  return cnb(styles("clear-button"), className);
32
35
  }
36
+ /**
37
+ * @since 6.0.0
38
+ */ export function autocompleteChip(options = {}) {
39
+ const { className } = options;
40
+ return cnb(styles("chip"), className);
41
+ }
33
42
 
34
43
  //# sourceMappingURL=autocompleteStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/autocomplete/autocompleteStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-autocomplete\");\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteClassNameOptions {\n className?: string;\n\n loading?: boolean;\n disableDropdownButton?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocomplete(\n options: AutocompleteClassNameOptions = {}\n): string {\n const { className, loading, disableDropdownButton } = options;\n\n return cnb(\n styles({\n // all other configurations must be set manually\n\n // right-addon-1: dropdown button only\n ra1: !loading && !disableDropdownButton,\n // right-addon-2: circular progress and dropdown button\n ra2: loading && !disableDropdownButton,\n // right-addon-3: circular progress only\n ra3: loading && disableDropdownButton,\n }),\n className\n );\n}\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteRightAddonClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteRightAddon(\n options: AutocompleteRightAddonClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(\n styles(\"right-addon\"),\n cssUtils({ backgroundColor: \"current-color\" }),\n className\n );\n}\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteClearButtonClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteClearButton(\n options: AutocompleteClearButtonClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"clear-button\"), className);\n}\n"],"names":["cnb","cssUtils","bem","styles","autocomplete","options","className","loading","disableDropdownButton","ra1","ra2","ra3","autocompleteRightAddon","backgroundColor","autocompleteClearButton"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAYnB;;CAEC,GACD,OAAO,SAASE,aACdC,UAAwC,CAAC,CAAC;IAE1C,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,qBAAqB,EAAE,GAAGH;IAEtD,OAAOL,IACLG,OAAO;QACL,gDAAgD;QAEhD,sCAAsC;QACtCM,KAAK,CAACF,WAAW,CAACC;QAClB,uDAAuD;QACvDE,KAAKH,WAAW,CAACC;QACjB,wCAAwC;QACxCG,KAAKJ,WAAWC;IAClB,IACAF;AAEJ;AASA;;CAEC,GACD,OAAO,SAASM,uBACdP,UAAkD,CAAC,CAAC;IAEpD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IACLG,OAAO,gBACPF,SAAS;QAAEY,iBAAiB;IAAgB,IAC5CP;AAEJ;AASA;;CAEC,GACD,OAAO,SAASQ,wBACdT,UAAmD,CAAC,CAAC;IAErD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IAAIG,OAAO,iBAAiBG;AACrC"}
1
+ {"version":3,"sources":["../../src/autocomplete/autocompleteStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-autocomplete\");\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteClassNameOptions {\n className?: string;\n\n loading?: boolean;\n inlineChips?: boolean;\n disableClearButton?: boolean;\n disableDropdownButton?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocomplete(\n options: AutocompleteClassNameOptions = {}\n): string {\n const {\n className,\n loading,\n inlineChips,\n disableClearButton,\n disableDropdownButton,\n } = options;\n\n return cnb(\n styles({\n cb: !disableClearButton,\n db: !disableDropdownButton,\n cp: loading,\n \"inline-chips\": inlineChips,\n }),\n className\n );\n}\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteRightAddonClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteRightAddon(\n options: AutocompleteRightAddonClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(\n styles(\"right-addon\"),\n cssUtils({ backgroundColor: \"current-color\" }),\n className\n );\n}\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteDropdownButtonClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteDropdownButton(\n options: AutocompleteDropdownButtonClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"dropdown-button\"), className);\n}\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteClearButtonClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteClearButton(\n options: AutocompleteClearButtonClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"clear-button\"), className);\n}\n\n/**\n * @since 6.0.0\n */\nexport interface AutocompleteChipClassNameOptions {\n className?: string;\n}\n\n/**\n * @since 6.0.0\n */\nexport function autocompleteChip(\n options: AutocompleteChipClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"chip\"), className);\n}\n"],"names":["cnb","cssUtils","bem","styles","autocomplete","options","className","loading","inlineChips","disableClearButton","disableDropdownButton","cb","db","cp","autocompleteRightAddon","backgroundColor","autocompleteDropdownButton","autocompleteClearButton","autocompleteChip"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAcnB;;CAEC,GACD,OAAO,SAASE,aACdC,UAAwC,CAAC,CAAC;IAE1C,MAAM,EACJC,SAAS,EACTC,OAAO,EACPC,WAAW,EACXC,kBAAkB,EAClBC,qBAAqB,EACtB,GAAGL;IAEJ,OAAOL,IACLG,OAAO;QACLQ,IAAI,CAACF;QACLG,IAAI,CAACF;QACLG,IAAIN;QACJ,gBAAgBC;IAClB,IACAF;AAEJ;AASA;;CAEC,GACD,OAAO,SAASQ,uBACdT,UAAkD,CAAC,CAAC;IAEpD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IACLG,OAAO,gBACPF,SAAS;QAAEc,iBAAiB;IAAgB,IAC5CT;AAEJ;AAQA;;CAEC,GACD,OAAO,SAASU,2BACdX,UAAsD,CAAC,CAAC;IAExD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IAAIG,OAAO,oBAAoBG;AACxC;AASA;;CAEC,GACD,OAAO,SAASW,wBACdZ,UAAmD,CAAC,CAAC;IAErD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IAAIG,OAAO,iBAAiBG;AACrC;AASA;;CAEC,GACD,OAAO,SAASY,iBACdb,UAA4C,CAAC,CAAC;IAE9C,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOL,IAAIG,OAAO,SAASG;AAC7B"}
@@ -1,21 +1,21 @@
1
1
  import { type MenuItemProps } from "../menu/MenuItem.js";
2
- import { type AutocompleteFilterOptions } from "./types.js";
2
+ import { type AutocompleteFilterOptions, type AutocompleteGetOptionPropsOptions, type AutocompleteOption } from "./types.js";
3
3
  /**
4
4
  * @since 6.0.0
5
5
  * @internal
6
6
  */
7
- export declare const defaultAutocompleteExtractor: <T>(item: T) => string;
7
+ export declare const defaultAutocompleteExtractor: (item: unknown) => string;
8
8
  /**
9
9
  * @since 6.0.0
10
10
  * @internal
11
11
  */
12
- export declare const defaultAutocompleteOptionProps: <T>(options: {
13
- option: T;
14
- }) => Partial<MenuItemProps> | undefined;
12
+ export declare const defaultAutocompleteFilter: <Option extends AutocompleteOption>(options: AutocompleteFilterOptions<Option>) => readonly Option[];
15
13
  /**
16
- * This is just the {@link caseInsensitiveSearch} but requires
17
- * the options to start with the current query.
18
- *
19
14
  * @since 6.0.0
20
15
  */
21
- export declare function defaultAutocompleteFilter<T>(options: AutocompleteFilterOptions<T>): readonly T[];
16
+ export declare const noopAutocompleteFilter: <Option extends AutocompleteOption>(options: AutocompleteFilterOptions<Option>) => readonly Option[];
17
+ /**
18
+ * @since 6.0.0
19
+ * @internal
20
+ */
21
+ export declare const defaultAutocompleteGetOptionProps: <T extends AutocompleteOption>(options: AutocompleteGetOptionPropsOptions<T>) => Partial<MenuItemProps> | undefined;
@@ -9,6 +9,16 @@ import { defaultExtractor } from "../searching/utils.js";
9
9
  }
10
10
  return defaultExtractor("Autocomplete")(item);
11
11
  };
12
+ /**
13
+ * @since 6.0.0
14
+ * @internal
15
+ */ export const defaultAutocompleteFilter = (options)=>caseInsensitiveSearch({
16
+ ...options,
17
+ startsWith: true
18
+ });
19
+ /**
20
+ * @since 6.0.0
21
+ */ export const noopAutocompleteFilter = (options)=>options.list;
12
22
  /**
13
23
  * @since 6.0.0
14
24
  * @internal
@@ -16,11 +26,12 @@ import { defaultExtractor } from "../searching/utils.js";
16
26
  /**
17
27
  * @since 6.0.0
18
28
  * @internal
19
- */ export const defaultAutocompleteOptionProps = (options)=>{
29
+ */ export const defaultAutocompleteGetOptionProps = (options)=>{
20
30
  const { option } = options;
21
31
  if (isProbablyMenuItemProps(option)) {
22
- const { leftAddon, rightAddon, className, disabled, height, textProps, textClassName, primaryText, secondaryText, secondaryTextClassName, multiline, disableTextChildren } = option;
32
+ const { leftAddon, rightAddon, className, children, disabled, height, textProps, textClassName, primaryText, secondaryText, secondaryTextClassName, multiline, disableTextChildren } = option;
23
33
  return {
34
+ children,
24
35
  leftAddon,
25
36
  rightAddon,
26
37
  className,
@@ -37,16 +48,5 @@ import { defaultExtractor } from "../searching/utils.js";
37
48
  }
38
49
  return;
39
50
  };
40
- /**
41
- * This is just the {@link caseInsensitiveSearch} but requires
42
- * the options to start with the current query.
43
- *
44
- * @since 6.0.0
45
- */ export function defaultAutocompleteFilter(options) {
46
- return caseInsensitiveSearch({
47
- ...options,
48
- startsWith: true
49
- });
50
- }
51
51
 
52
52
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/autocomplete/defaults.ts"],"sourcesContent":["import { type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { caseInsensitiveSearch } from \"../searching/caseInsensitive.js\";\nimport { defaultExtractor } from \"../searching/utils.js\";\nimport { type AutocompleteFilterOptions } from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const defaultAutocompleteExtractor = <T>(item: T): string => {\n if (\n item &&\n typeof item === \"object\" &&\n \"label\" in item &&\n typeof item.label === \"string\"\n ) {\n return item.label;\n }\n\n return defaultExtractor(\"Autocomplete\")(item);\n};\n\n/**\n * @since 6.0.0\n * @internal\n */\nconst isProbablyMenuItemProps = (\n item: unknown\n): item is Partial<MenuItemProps> => !!item && typeof item === \"object\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const defaultAutocompleteOptionProps = <T>(options: {\n option: T;\n}): Partial<MenuItemProps> | undefined => {\n const { option } = options;\n if (isProbablyMenuItemProps(option)) {\n const {\n leftAddon,\n rightAddon,\n className,\n disabled,\n height,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextClassName,\n multiline,\n disableTextChildren,\n } = option;\n\n return {\n leftAddon,\n rightAddon,\n className,\n disabled,\n height,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextClassName,\n multiline,\n disableTextChildren,\n };\n }\n return;\n};\n\n/**\n * This is just the {@link caseInsensitiveSearch} but requires\n * the options to start with the current query.\n *\n * @since 6.0.0\n */\nexport function defaultAutocompleteFilter<T>(\n options: AutocompleteFilterOptions<T>\n): readonly T[] {\n return caseInsensitiveSearch({ ...options, startsWith: true });\n}\n"],"names":["caseInsensitiveSearch","defaultExtractor","defaultAutocompleteExtractor","item","label","isProbablyMenuItemProps","defaultAutocompleteOptionProps","options","option","leftAddon","rightAddon","className","disabled","height","textProps","textClassName","primaryText","secondaryText","secondaryTextClassName","multiline","disableTextChildren","defaultAutocompleteFilter","startsWith"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,gBAAgB,QAAQ,wBAAwB;AAGzD;;;CAGC,GACD,OAAO,MAAMC,+BAA+B,CAAIC;IAC9C,IACEA,QACA,OAAOA,SAAS,YAChB,WAAWA,QACX,OAAOA,KAAKC,KAAK,KAAK,UACtB;QACA,OAAOD,KAAKC,KAAK;IACnB;IAEA,OAAOH,iBAAiB,gBAAgBE;AAC1C,EAAE;AAEF;;;CAGC,GACD,MAAME,0BAA0B,CAC9BF,OACmC,CAAC,CAACA,QAAQ,OAAOA,SAAS;AAE/D;;;CAGC,GACD,OAAO,MAAMG,iCAAiC,CAAIC;IAGhD,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,IAAIF,wBAAwBG,SAAS;QACnC,MAAM,EACJC,SAAS,EACTC,UAAU,EACVC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,sBAAsB,EACtBC,SAAS,EACTC,mBAAmB,EACpB,GAAGZ;QAEJ,OAAO;YACLC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;IACF;IACA;AACF,EAAE;AAEF;;;;;CAKC,GACD,OAAO,SAASC,0BACdd,OAAqC;IAErC,OAAOP,sBAAsB;QAAE,GAAGO,OAAO;QAAEe,YAAY;IAAK;AAC9D"}
1
+ {"version":3,"sources":["../../src/autocomplete/defaults.ts"],"sourcesContent":["import { type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { caseInsensitiveSearch } from \"../searching/caseInsensitive.js\";\nimport { defaultExtractor } from \"../searching/utils.js\";\nimport {\n type AutocompleteFilterOptions,\n type AutocompleteGetOptionPropsOptions,\n type AutocompleteOption,\n} from \"./types.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const defaultAutocompleteExtractor = (item: unknown): string => {\n if (\n item &&\n typeof item === \"object\" &&\n \"label\" in item &&\n typeof item.label === \"string\"\n ) {\n return item.label;\n }\n\n return defaultExtractor(\"Autocomplete\")(item);\n};\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const defaultAutocompleteFilter = <Option extends AutocompleteOption>(\n options: AutocompleteFilterOptions<Option>\n): readonly Option[] => caseInsensitiveSearch({ ...options, startsWith: true });\n\n/**\n * @since 6.0.0\n */\nexport const noopAutocompleteFilter = <Option extends AutocompleteOption>(\n options: AutocompleteFilterOptions<Option>\n): readonly Option[] => options.list;\n\n/**\n * @since 6.0.0\n * @internal\n */\nconst isProbablyMenuItemProps = (\n item: unknown\n): item is Partial<MenuItemProps> => !!item && typeof item === \"object\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const defaultAutocompleteGetOptionProps = <T extends AutocompleteOption>(\n options: AutocompleteGetOptionPropsOptions<T>\n): Partial<MenuItemProps> | undefined => {\n const { option } = options;\n if (isProbablyMenuItemProps(option)) {\n const {\n leftAddon,\n rightAddon,\n className,\n children,\n disabled,\n height,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextClassName,\n multiline,\n disableTextChildren,\n } = option;\n\n return {\n children,\n leftAddon,\n rightAddon,\n className,\n disabled,\n height,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextClassName,\n multiline,\n disableTextChildren,\n };\n }\n return;\n};\n"],"names":["caseInsensitiveSearch","defaultExtractor","defaultAutocompleteExtractor","item","label","defaultAutocompleteFilter","options","startsWith","noopAutocompleteFilter","list","isProbablyMenuItemProps","defaultAutocompleteGetOptionProps","option","leftAddon","rightAddon","className","children","disabled","height","textProps","textClassName","primaryText","secondaryText","secondaryTextClassName","multiline","disableTextChildren"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,gBAAgB,QAAQ,wBAAwB;AAOzD;;;CAGC,GACD,OAAO,MAAMC,+BAA+B,CAACC;IAC3C,IACEA,QACA,OAAOA,SAAS,YAChB,WAAWA,QACX,OAAOA,KAAKC,KAAK,KAAK,UACtB;QACA,OAAOD,KAAKC,KAAK;IACnB;IAEA,OAAOH,iBAAiB,gBAAgBE;AAC1C,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAME,4BAA4B,CACvCC,UACsBN,sBAAsB;QAAE,GAAGM,OAAO;QAAEC,YAAY;IAAK,GAAG;AAEhF;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CACpCF,UACsBA,QAAQG,IAAI,CAAC;AAErC;;;CAGC,GACD,MAAMC,0BAA0B,CAC9BP,OACmC,CAAC,CAACA,QAAQ,OAAOA,SAAS;AAE/D;;;CAGC,GACD,OAAO,MAAMQ,oCAAoC,CAC/CL;IAEA,MAAM,EAAEM,MAAM,EAAE,GAAGN;IACnB,IAAII,wBAAwBE,SAAS;QACnC,MAAM,EACJC,SAAS,EACTC,UAAU,EACVC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,sBAAsB,EACtBC,SAAS,EACTC,mBAAmB,EACpB,GAAGb;QAEJ,OAAO;YACLI;YACAH;YACAC;YACAC;YACAE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;IACF;IACA;AACF,EAAE"}