@central-ui/react 0.0.0-stage → 0.1.0

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 (292) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -2
  3. package/dist/components/accordion/index.d.ts +73 -0
  4. package/dist/components/accordion/index.d.ts.map +1 -0
  5. package/dist/components/accordion/index.js +92 -0
  6. package/dist/components/accordion/index.js.map +1 -0
  7. package/dist/components/autocomplete/index.d.ts +365 -0
  8. package/dist/components/autocomplete/index.d.ts.map +1 -0
  9. package/dist/components/autocomplete/index.js +369 -0
  10. package/dist/components/autocomplete/index.js.map +1 -0
  11. package/dist/components/avatar/index.d.ts +48 -0
  12. package/dist/components/avatar/index.d.ts.map +1 -0
  13. package/dist/components/avatar/index.js +60 -0
  14. package/dist/components/avatar/index.js.map +1 -0
  15. package/dist/components/badge/index.d.ts +29 -0
  16. package/dist/components/badge/index.d.ts.map +1 -0
  17. package/dist/components/badge/index.js +36 -0
  18. package/dist/components/badge/index.js.map +1 -0
  19. package/dist/components/banner/index.d.ts +71 -0
  20. package/dist/components/banner/index.d.ts.map +1 -0
  21. package/dist/components/banner/index.js +119 -0
  22. package/dist/components/banner/index.js.map +1 -0
  23. package/dist/components/breadcrumb/index.d.ts +31 -0
  24. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  25. package/dist/components/breadcrumb/index.js +42 -0
  26. package/dist/components/breadcrumb/index.js.map +1 -0
  27. package/dist/components/button/index.d.ts +48 -0
  28. package/dist/components/button/index.d.ts.map +1 -0
  29. package/dist/components/button/index.js +60 -0
  30. package/dist/components/button/index.js.map +1 -0
  31. package/dist/components/card/index.d.ts +34 -0
  32. package/dist/components/card/index.d.ts.map +1 -0
  33. package/dist/components/card/index.js +45 -0
  34. package/dist/components/card/index.js.map +1 -0
  35. package/dist/components/checkbox/index.d.ts +66 -0
  36. package/dist/components/checkbox/index.d.ts.map +1 -0
  37. package/dist/components/checkbox/index.js +146 -0
  38. package/dist/components/checkbox/index.js.map +1 -0
  39. package/dist/components/chip/index.d.ts +26 -0
  40. package/dist/components/chip/index.d.ts.map +1 -0
  41. package/dist/components/chip/index.js +40 -0
  42. package/dist/components/chip/index.js.map +1 -0
  43. package/dist/components/combobox/index.d.ts +427 -0
  44. package/dist/components/combobox/index.d.ts.map +1 -0
  45. package/dist/components/combobox/index.js +416 -0
  46. package/dist/components/combobox/index.js.map +1 -0
  47. package/dist/components/datepicker/index.d.ts +297 -0
  48. package/dist/components/datepicker/index.d.ts.map +1 -0
  49. package/dist/components/datepicker/index.js +507 -0
  50. package/dist/components/datepicker/index.js.map +1 -0
  51. package/dist/components/dialog/index.d.ts +88 -0
  52. package/dist/components/dialog/index.d.ts.map +1 -0
  53. package/dist/components/dialog/index.js +102 -0
  54. package/dist/components/dialog/index.js.map +1 -0
  55. package/dist/components/divider/index.d.ts +21 -0
  56. package/dist/components/divider/index.d.ts.map +1 -0
  57. package/dist/components/divider/index.js +24 -0
  58. package/dist/components/divider/index.js.map +1 -0
  59. package/dist/components/drawer/index.d.ts +99 -0
  60. package/dist/components/drawer/index.d.ts.map +1 -0
  61. package/dist/components/drawer/index.js +137 -0
  62. package/dist/components/drawer/index.js.map +1 -0
  63. package/dist/components/empty/index.d.ts +40 -0
  64. package/dist/components/empty/index.d.ts.map +1 -0
  65. package/dist/components/empty/index.js +61 -0
  66. package/dist/components/empty/index.js.map +1 -0
  67. package/dist/components/fileupload/index.d.ts +107 -0
  68. package/dist/components/fileupload/index.d.ts.map +1 -0
  69. package/dist/components/fileupload/index.js +185 -0
  70. package/dist/components/fileupload/index.js.map +1 -0
  71. package/dist/components/form/index.d.ts +34 -0
  72. package/dist/components/form/index.d.ts.map +1 -0
  73. package/dist/components/form/index.js +35 -0
  74. package/dist/components/form/index.js.map +1 -0
  75. package/dist/components/input/index.d.ts +85 -0
  76. package/dist/components/input/index.d.ts.map +1 -0
  77. package/dist/components/input/index.js +249 -0
  78. package/dist/components/input/index.js.map +1 -0
  79. package/dist/components/menu/index.d.ts +115 -0
  80. package/dist/components/menu/index.d.ts.map +1 -0
  81. package/dist/components/menu/index.js +188 -0
  82. package/dist/components/menu/index.js.map +1 -0
  83. package/dist/components/metric/index.d.ts +24 -0
  84. package/dist/components/metric/index.d.ts.map +1 -0
  85. package/dist/components/metric/index.js +26 -0
  86. package/dist/components/metric/index.js.map +1 -0
  87. package/dist/components/numberinput/index.d.ts +105 -0
  88. package/dist/components/numberinput/index.d.ts.map +1 -0
  89. package/dist/components/numberinput/index.js +240 -0
  90. package/dist/components/numberinput/index.js.map +1 -0
  91. package/dist/components/otpinput/index.d.ts +63 -0
  92. package/dist/components/otpinput/index.d.ts.map +1 -0
  93. package/dist/components/otpinput/index.js +133 -0
  94. package/dist/components/otpinput/index.js.map +1 -0
  95. package/dist/components/page/index.d.ts +54 -0
  96. package/dist/components/page/index.d.ts.map +1 -0
  97. package/dist/components/page/index.js +100 -0
  98. package/dist/components/page/index.js.map +1 -0
  99. package/dist/components/passwordinput/index.d.ts +88 -0
  100. package/dist/components/passwordinput/index.d.ts.map +1 -0
  101. package/dist/components/passwordinput/index.js +251 -0
  102. package/dist/components/passwordinput/index.js.map +1 -0
  103. package/dist/components/popover/index.d.ts +67 -0
  104. package/dist/components/popover/index.d.ts.map +1 -0
  105. package/dist/components/popover/index.js +76 -0
  106. package/dist/components/popover/index.js.map +1 -0
  107. package/dist/components/radio/index.d.ts +90 -0
  108. package/dist/components/radio/index.d.ts.map +1 -0
  109. package/dist/components/radio/index.js +232 -0
  110. package/dist/components/radio/index.js.map +1 -0
  111. package/dist/components/ratinginput/index.d.ts +59 -0
  112. package/dist/components/ratinginput/index.d.ts.map +1 -0
  113. package/dist/components/ratinginput/index.js +88 -0
  114. package/dist/components/ratinginput/index.js.map +1 -0
  115. package/dist/components/select/index.d.ts +205 -0
  116. package/dist/components/select/index.d.ts.map +1 -0
  117. package/dist/components/select/index.js +234 -0
  118. package/dist/components/select/index.js.map +1 -0
  119. package/dist/components/skeleton/index.d.ts +19 -0
  120. package/dist/components/skeleton/index.d.ts.map +1 -0
  121. package/dist/components/skeleton/index.js +20 -0
  122. package/dist/components/skeleton/index.js.map +1 -0
  123. package/dist/components/slider/index.d.ts +72 -0
  124. package/dist/components/slider/index.d.ts.map +1 -0
  125. package/dist/components/slider/index.js +159 -0
  126. package/dist/components/slider/index.js.map +1 -0
  127. package/dist/components/spinner/index.d.ts +14 -0
  128. package/dist/components/spinner/index.d.ts.map +1 -0
  129. package/dist/components/spinner/index.js +15 -0
  130. package/dist/components/spinner/index.js.map +1 -0
  131. package/dist/components/splitter/index.d.ts +49 -0
  132. package/dist/components/splitter/index.d.ts.map +1 -0
  133. package/dist/components/splitter/index.js +67 -0
  134. package/dist/components/splitter/index.js.map +1 -0
  135. package/dist/components/stepper/index.d.ts +82 -0
  136. package/dist/components/stepper/index.d.ts.map +1 -0
  137. package/dist/components/stepper/index.js +100 -0
  138. package/dist/components/stepper/index.js.map +1 -0
  139. package/dist/components/switch/index.d.ts +57 -0
  140. package/dist/components/switch/index.d.ts.map +1 -0
  141. package/dist/components/switch/index.js +101 -0
  142. package/dist/components/switch/index.js.map +1 -0
  143. package/dist/components/table/index.d.ts +110 -0
  144. package/dist/components/table/index.d.ts.map +1 -0
  145. package/dist/components/table/index.js +211 -0
  146. package/dist/components/table/index.js.map +1 -0
  147. package/dist/components/tabs/index.d.ts +67 -0
  148. package/dist/components/tabs/index.d.ts.map +1 -0
  149. package/dist/components/tabs/index.js +78 -0
  150. package/dist/components/tabs/index.js.map +1 -0
  151. package/dist/components/textarea/index.d.ts +72 -0
  152. package/dist/components/textarea/index.d.ts.map +1 -0
  153. package/dist/components/textarea/index.js +205 -0
  154. package/dist/components/textarea/index.js.map +1 -0
  155. package/dist/components/textlink/index.d.ts +39 -0
  156. package/dist/components/textlink/index.d.ts.map +1 -0
  157. package/dist/components/textlink/index.js +42 -0
  158. package/dist/components/textlink/index.js.map +1 -0
  159. package/dist/components/toast/index.d.ts +111 -0
  160. package/dist/components/toast/index.d.ts.map +1 -0
  161. package/dist/components/toast/index.js +205 -0
  162. package/dist/components/toast/index.js.map +1 -0
  163. package/dist/components/toggle/index.d.ts +41 -0
  164. package/dist/components/toggle/index.d.ts.map +1 -0
  165. package/dist/components/toggle/index.js +78 -0
  166. package/dist/components/toggle/index.js.map +1 -0
  167. package/dist/components/tooltip/index.d.ts +44 -0
  168. package/dist/components/tooltip/index.d.ts.map +1 -0
  169. package/dist/components/tooltip/index.js +51 -0
  170. package/dist/components/tooltip/index.js.map +1 -0
  171. package/dist/index.d.ts +50 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +46 -0
  174. package/dist/index.js.map +1 -0
  175. package/dist/types/Style.d.ts +14 -0
  176. package/dist/types/Style.d.ts.map +1 -0
  177. package/dist/types/Style.js +2 -0
  178. package/dist/types/Style.js.map +1 -0
  179. package/dist/types/Tone.d.ts +4 -0
  180. package/dist/types/Tone.d.ts.map +1 -0
  181. package/dist/types/Tone.js +2 -0
  182. package/dist/types/Tone.js.map +1 -0
  183. package/dist/utils/ArkStateToDataAttributes.d.ts +4 -0
  184. package/dist/utils/ArkStateToDataAttributes.d.ts.map +1 -0
  185. package/dist/utils/ArkStateToDataAttributes.js +9 -0
  186. package/dist/utils/ArkStateToDataAttributes.js.map +1 -0
  187. package/dist/utils/Tone.d.ts +3 -0
  188. package/dist/utils/Tone.d.ts.map +1 -0
  189. package/dist/utils/Tone.js +7 -0
  190. package/dist/utils/Tone.js.map +1 -0
  191. package/dist/utils/useForwardClickToInput.d.ts +4 -0
  192. package/dist/utils/useForwardClickToInput.d.ts.map +1 -0
  193. package/dist/utils/useForwardClickToInput.js +27 -0
  194. package/dist/utils/useForwardClickToInput.js.map +1 -0
  195. package/dist/utils/virtualization/useVirtualizedAutocomplete.d.ts +198 -0
  196. package/dist/utils/virtualization/useVirtualizedAutocomplete.d.ts.map +1 -0
  197. package/dist/utils/virtualization/useVirtualizedAutocomplete.js +180 -0
  198. package/dist/utils/virtualization/useVirtualizedAutocomplete.js.map +1 -0
  199. package/dist/utils/virtualization/useVirtualizedCombobox.d.ts +200 -0
  200. package/dist/utils/virtualization/useVirtualizedCombobox.d.ts.map +1 -0
  201. package/dist/utils/virtualization/useVirtualizedCombobox.js +174 -0
  202. package/dist/utils/virtualization/useVirtualizedCombobox.js.map +1 -0
  203. package/dist/utils/virtualization/useVirtualizedTable.d.ts +169 -0
  204. package/dist/utils/virtualization/useVirtualizedTable.d.ts.map +1 -0
  205. package/dist/utils/virtualization/useVirtualizedTable.js +127 -0
  206. package/dist/utils/virtualization/useVirtualizedTable.js.map +1 -0
  207. package/package.json +64 -4
  208. package/src/presets/shopify-polaris/shopify-polaris-accordion.css +28 -0
  209. package/src/presets/shopify-polaris/shopify-polaris-autocomplete.css +155 -0
  210. package/src/presets/shopify-polaris/shopify-polaris-avatar.css +47 -0
  211. package/src/presets/shopify-polaris/shopify-polaris-badge.css +27 -0
  212. package/src/presets/shopify-polaris/shopify-polaris-banner.css +111 -0
  213. package/src/presets/shopify-polaris/shopify-polaris-breadcrumb.css +16 -0
  214. package/src/presets/shopify-polaris/shopify-polaris-button.css +79 -0
  215. package/src/presets/shopify-polaris/shopify-polaris-card.css +28 -0
  216. package/src/presets/shopify-polaris/shopify-polaris-checkbox.css +52 -0
  217. package/src/presets/shopify-polaris/shopify-polaris-chip.css +16 -0
  218. package/src/presets/shopify-polaris/shopify-polaris-combobox.css +179 -0
  219. package/src/presets/shopify-polaris/shopify-polaris-datepicker.css +183 -0
  220. package/src/presets/shopify-polaris/shopify-polaris-dialog.css +40 -0
  221. package/src/presets/shopify-polaris/shopify-polaris-divider.css +12 -0
  222. package/src/presets/shopify-polaris/shopify-polaris-drawer.css +40 -0
  223. package/src/presets/shopify-polaris/shopify-polaris-empty.css +32 -0
  224. package/src/presets/shopify-polaris/shopify-polaris-fileupload.css +78 -0
  225. package/src/presets/shopify-polaris/shopify-polaris-form.css +8 -0
  226. package/src/presets/shopify-polaris/shopify-polaris-input.css +72 -0
  227. package/src/presets/shopify-polaris/shopify-polaris-menu.css +112 -0
  228. package/src/presets/shopify-polaris/shopify-polaris-metric.css +16 -0
  229. package/src/presets/shopify-polaris/shopify-polaris-numberinput.css +88 -0
  230. package/src/presets/shopify-polaris/shopify-polaris-otpinput.css +42 -0
  231. package/src/presets/shopify-polaris/shopify-polaris-page.css +69 -0
  232. package/src/presets/shopify-polaris/shopify-polaris-passwordinput.css +76 -0
  233. package/src/presets/shopify-polaris/shopify-polaris-popover.css +47 -0
  234. package/src/presets/shopify-polaris/shopify-polaris-radio.css +54 -0
  235. package/src/presets/shopify-polaris/shopify-polaris-ratinginput.css +42 -0
  236. package/src/presets/shopify-polaris/shopify-polaris-select.css +119 -0
  237. package/src/presets/shopify-polaris/shopify-polaris-skeleton.css +8 -0
  238. package/src/presets/shopify-polaris/shopify-polaris-slider.css +86 -0
  239. package/src/presets/shopify-polaris/shopify-polaris-spinner.css +16 -0
  240. package/src/presets/shopify-polaris/shopify-polaris-splitter.css +34 -0
  241. package/src/presets/shopify-polaris/shopify-polaris-stepper.css +55 -0
  242. package/src/presets/shopify-polaris/shopify-polaris-switch.css +38 -0
  243. package/src/presets/shopify-polaris/shopify-polaris-table.css +72 -0
  244. package/src/presets/shopify-polaris/shopify-polaris-tabs.css +33 -0
  245. package/src/presets/shopify-polaris/shopify-polaris-textarea.css +61 -0
  246. package/src/presets/shopify-polaris/shopify-polaris-textlink.css +8 -0
  247. package/src/presets/shopify-polaris/shopify-polaris-toggle.css +52 -0
  248. package/src/presets/shopify-polaris/shopify-polaris-tooltip.css +31 -0
  249. package/src/presets/shopify-polaris/shopify-polaris.css +380 -0
  250. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-accordion.css +28 -0
  251. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-autocomplete.css +155 -0
  252. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-avatar.css +47 -0
  253. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-badge.css +27 -0
  254. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-banner.css +96 -0
  255. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-breadcrumb.css +16 -0
  256. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-button.css +68 -0
  257. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-card.css +28 -0
  258. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-checkbox.css +52 -0
  259. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-chip.css +16 -0
  260. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-combobox.css +184 -0
  261. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-datepicker.css +187 -0
  262. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-dialog.css +40 -0
  263. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-divider.css +12 -0
  264. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-drawer.css +40 -0
  265. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-empty.css +32 -0
  266. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-fileupload.css +72 -0
  267. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-form.css +8 -0
  268. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-input.css +72 -0
  269. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-menu.css +112 -0
  270. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-metric.css +16 -0
  271. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-numberinput.css +88 -0
  272. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-otpinput.css +42 -0
  273. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-page.css +69 -0
  274. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-passwordinput.css +76 -0
  275. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-popover.css +47 -0
  276. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-radio.css +54 -0
  277. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-ratinginput.css +42 -0
  278. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-select.css +118 -0
  279. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-skeleton.css +8 -0
  280. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-slider.css +86 -0
  281. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-spinner.css +16 -0
  282. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-splitter.css +34 -0
  283. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-stepper.css +55 -0
  284. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-switch.css +38 -0
  285. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-table.css +72 -0
  286. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-tabs.css +33 -0
  287. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-textarea.css +61 -0
  288. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-textlink.css +8 -0
  289. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-toast.css +43 -0
  290. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-toggle.css +52 -0
  291. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-tooltip.css +31 -0
  292. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy.css +381 -0
@@ -0,0 +1,427 @@
1
+ import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
2
+ import type { LucideProps } from 'lucide-react';
3
+ import type { ComponentProps, ComponentPropsWithRef, ReactElement, ReactNode } from 'react';
4
+ type StyleProps = {
5
+ /**
6
+ * Disables preset styling for this element.
7
+ * Rarely needed: prefer className for normal overrides. Use only when explicitly
8
+ * choosing to redesign this part, or when extensive overrides justify starting
9
+ * from an unstyled baseline instead of overriding the preset.
10
+ * Your className and core inline styles still apply.
11
+ * Does not disable other Combobox parts or the preset's global styles.
12
+ *
13
+ * @default false
14
+ */
15
+ disableStyle?: boolean;
16
+ };
17
+ /** Keep extra application data on items; callbacks preserve those fields. */
18
+ export type ItemShape = {
19
+ /** Label used automatically for input display and built-in text filtering. */
20
+ label: string;
21
+ /** Unique identifier used for equality checks and form submission. */
22
+ value: string;
23
+ };
24
+ /** The items data defines grouping; the component does not group by a field. */
25
+ export type GroupShape = {
26
+ /** Group heading. Use an empty string for an unlabeled group and omit GroupLabel. */
27
+ label: string;
28
+ /** Items belonging to this group. Keep this group wrapper even for a flat list. */
29
+ items: readonly ItemShape[];
30
+ };
31
+ /** Manually type a GroupsList callback argument with GroupType<typeof rootItems>, using the exact items variable passed to Root. Preserves custom fields. */
32
+ export type GroupType<T extends readonly GroupShape[]> = T[number];
33
+ /** Manually type an ItemsList callback argument with ItemType<typeof rootItems>, using the exact items variable passed to Root. Preserves custom fields. */
34
+ export type ItemType<T extends readonly GroupShape[]> = GroupType<T>['items'][number];
35
+ /** Manually type a ChipsList callback argument with ChipsType<typeof rootItems>, using the exact items variable passed to Root. Also useful for multiple-selection state. */
36
+ export type ChipsType<T extends readonly GroupShape[]> = ItemType<T>[];
37
+ export type RootProps<T extends readonly GroupShape[], Multiple extends boolean | undefined = false> = Omit<BaseCombobox.Root.Props<ItemType<T>, Multiple>, 'items' | 'filteredItems' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue' | 'id'> & {
38
+ /** Input id, also used automatically by Label. Omit to generate a stable id. */
39
+ id?: BaseCombobox.Root.Props<ItemType<T>, Multiple>['id'];
40
+ /**
41
+ * Required source of truth for grouping. Prepare any grouping in your data before passing items.
42
+ * For a flat list, supply one group with label: '' and omit GroupLabel.
43
+ * Always keep Group around its ItemsList, regardless of whether it has a heading.
44
+ * Labels, text filtering, form values, and equality by item.value are built in.
45
+ */
46
+ items: T;
47
+ /**
48
+ * Optional externally filtered groups, with the same shape as items.
49
+ * Omit this to use built-in filtering. Supply it only when your application
50
+ * performs filtering itself, such as filtering results on a server.
51
+ */
52
+ filteredItems?: readonly GroupType<T>[];
53
+ /** Visual validation tone only; does not validate or change selection. @default 'neutral' */
54
+ tone?: 'neutral' | 'valid' | 'invalid';
55
+ };
56
+ /**
57
+ * Searchable selection using Base UI's built-in filtering and keyboard handling.
58
+ * Does not render an element. Keep all parts inside Root.
59
+ * Supply grouped items even for a visually flat list: one unlabeled Group is flat.
60
+ * IMPORTANT: children callbacks do not infer your data shape from the surrounding Root.
61
+ * Manually annotate their data arguments with Combobox.GroupType, Combobox.ItemType,
62
+ * or Combobox.ChipsType. Pass typeof the SAME items variable supplied to Root;
63
+ * do not use typeof a single group's items or an unrelated data array.
64
+ * Use Input directly inside InputGroup for the usual input composition.
65
+ * To display multiple selections as chips, replace that Input with ChipsList
66
+ * containing chips followed by one Input; do not keep a second Input beside ChipsList.
67
+ * Container is optional when you supply your own layout. The popup nesting stays the same.
68
+ * Examples below reuse the cities and groups from the first example.
69
+ *
70
+ * To virtualize, import useVirtualizedCombobox from '@central-ui/react'.
71
+ * See the hook's types and documentation for configuration and integration examples.
72
+ *
73
+ * @example Complete grouped composition
74
+ * import { Combobox } from '@central-ui/react'
75
+ *
76
+ * const cities = [
77
+ * { value: 'city_1', label: 'Casablanca', country: 'Morocco', population: 3359818 },
78
+ * { value: 'city_2', label: 'Rabat', country: 'Morocco', population: 580000 },
79
+ * { value: 'city_3', label: 'Paris', country: 'France', population: 2102650 },
80
+ * ]
81
+ * // Prepare groups in your data; there is no groupBy prop.
82
+ * const groups = [
83
+ * { label: 'Morocco', items: cities.filter((city) => city.country === 'Morocco') },
84
+ * { label: 'France', items: cities.filter((city) => city.country === 'France') },
85
+ * ]
86
+ * // Callback annotations below use typeof groups because Root receives items={groups}.
87
+ *
88
+ * function CityCombobox() {
89
+ * return (
90
+ * <Combobox.Root items={groups}>
91
+ * <Combobox.Container>
92
+ * <Combobox.Label>City</Combobox.Label>
93
+ * <Combobox.InputGroup>
94
+ * <Combobox.Input placeholder="Search cities" />
95
+ * <Combobox.Addon>
96
+ * <Combobox.AddonOpenButton aria-label="Show cities">
97
+ * <Combobox.AddonOpenButtonIcon />
98
+ * </Combobox.AddonOpenButton>
99
+ * <Combobox.AddonClearButton aria-label="Clear city">
100
+ * <Combobox.AddonClearButtonIcon />
101
+ * </Combobox.AddonClearButton>
102
+ * </Combobox.Addon>
103
+ * </Combobox.InputGroup>
104
+ * <Combobox.Popup>
105
+ * <Combobox.Empty // Required: keep mounted; contents show only for no matches.
106
+ * >
107
+ * <Combobox.EmptyText>No cities found.</Combobox.EmptyText>
108
+ * </Combobox.Empty>
109
+ * <Combobox.ScrollArea // Required: provides listbox semantics and keyboard handling.
110
+ * >
111
+ * <Combobox.GroupsList // Required: renders the filtered groups automatically.
112
+ * >
113
+ * {(group: Combobox.GroupType<typeof groups>, groupIndex) => (
114
+ * <Combobox.Group
115
+ * key={groupIndex}
116
+ * items={group.items} // Required even without a heading.
117
+ * >
118
+ * <Combobox.GroupLabel // Optional: display the group label; omit for a flat list.
119
+ * >
120
+ * {group.label}
121
+ * </Combobox.GroupLabel>
122
+ * <Combobox.ItemsList // Required: renders this group's filtered items.
123
+ * >
124
+ * {(city: Combobox.ItemType<typeof groups>) => (
125
+ * <Combobox.Item
126
+ * key={city.value}
127
+ * value={city} // Required: pass the complete item object.
128
+ * >
129
+ * <Combobox.ItemText>{city.label}</Combobox.ItemText>
130
+ * <Combobox.ItemIndicator // Built-in checkmark; no children needed.
131
+ * />
132
+ * </Combobox.Item>
133
+ * )}
134
+ * </Combobox.ItemsList>
135
+ * </Combobox.Group>
136
+ * )}
137
+ * </Combobox.GroupsList>
138
+ * </Combobox.ScrollArea>
139
+ * </Combobox.Popup>
140
+ * </Combobox.Container>
141
+ * </Combobox.Root>
142
+ * )
143
+ * }
144
+ *
145
+ * @example Flat data uses the same composition
146
+ * // Keep Group and ItemsList; omit only GroupLabel in the composition above.
147
+ * ;<Combobox.Root items={[{ label: '', items: cities }]}>
148
+ * {
149
+ * // Rest of components here
150
+ * }
151
+ * </Combobox.Root>
152
+ *
153
+ * @example Controlled single selection
154
+ * import { useState } from 'react'
155
+ * function ControlledCityCombobox() {
156
+ * const [city, setCity] = useState<Combobox.ItemType<typeof groups> | null>(null)
157
+ * return (
158
+ * <Combobox.Root items={groups} value={city} onValueChange={setCity}>
159
+ * {
160
+ * // Rest of components here
161
+ * }
162
+ * </Combobox.Root>
163
+ * )
164
+ * }
165
+ *
166
+ * @example Controlled multiple selection
167
+ * function MultipleCityCombobox() {
168
+ * const [selectedCities, setSelectedCities] = useState<Combobox.ChipsType<typeof groups>>(
169
+ * [],
170
+ * )
171
+ * return (
172
+ * <Combobox.Root
173
+ * items={groups}
174
+ * multiple
175
+ * value={selectedCities}
176
+ * onValueChange={setSelectedCities}
177
+ * >
178
+ * {
179
+ * // Rest of components here
180
+ * }
181
+ * </Combobox.Root>
182
+ * )
183
+ * }
184
+ *
185
+ * @example Optional loading message for asynchronous items
186
+ * // Inside Popup, below Empty and above ScrollArea. isLoading comes from your request state.
187
+ * // Unlike Empty, Loading does not detect requests: you control its contents.
188
+ * // Keep Loading mounted so screen readers can announce changes.
189
+ * // Omit Loading entirely when items are not fetched asynchronously.
190
+ * ;<Combobox.Loading>
191
+ * {isLoading && (
192
+ * <>
193
+ * <Combobox.LoadingIcon />
194
+ * <Combobox.LoadingText>Loading cities…</Combobox.LoadingText>
195
+ * </>
196
+ * )}
197
+ * </Combobox.Loading>
198
+ *
199
+ * @example Style only one part yourself
200
+ * // Other parts keep the imported preset. Core inline styles are preserved.
201
+ * ;<Combobox.AddonOpenButton
202
+ * disableStyle
203
+ * className="rounded-full bg-blue-600 p-2"
204
+ * aria-label="Show cities"
205
+ * >
206
+ * <Combobox.AddonOpenButtonIcon />
207
+ * </Combobox.AddonOpenButton>
208
+ */
209
+ export declare function Root<T extends readonly GroupShape[], Multiple extends boolean | undefined = false>({ children, id, tone, open, defaultOpen, onOpenChange, onItemHighlighted, ...props }: RootProps<T, Multiple>): import("react").JSX.Element;
210
+ /** Use for the standard stacked layout, or omit when supplying your own layout. */
211
+ export declare const Container: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
212
+ /** Labels the input automatically using Root's id. Supply the visible label as children; no htmlFor needed. */
213
+ export declare const Label: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "htmlFor"> & StyleProps, "ref"> & import("react").RefAttributes<HTMLLabelElement>>;
214
+ /** Search input with built-in filtering and selected-label display. Its id is managed by Root. Inside ChipsList, the preset automatically uses the compact chip-input sizing. */
215
+ export declare const Input: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteInputProps, "className" | "id"> & {
216
+ className?: string;
217
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
218
+ export type ChipsListProps<Item extends ItemShape = ItemShape> = Omit<ComponentPropsWithRef<typeof BaseCombobox.Chips>, 'children' | 'className'> & {
219
+ className?: string;
220
+ /**
221
+ * Keep Input after the chips so keyboard navigation can move between them.
222
+ * IMPORTANT: manually annotate selected as Combobox.ChipsType<typeof rootItems>,
223
+ * where rootItems is the exact items variable passed to Root; the surrounding
224
+ * Root does not infer this callback's data shape.
225
+ */
226
+ children: ReactNode | ((selected: Item[]) => ReactNode);
227
+ } & StyleProps;
228
+ /**
229
+ * Selected-item chips inside InputGroup for multiple selection.
230
+ * Its children callback supplies selected item objects automatically.
231
+ * Manually annotate selected with Combobox.ChipsType<typeof groups> when Root
232
+ * receives items={groups}; the data shape is not inferred from the surrounding Root.
233
+ * Keep Input inside ChipsList, after the chips, for keyboard chip navigation.
234
+ *
235
+ * @example Chips composition inside a multiple Root
236
+ * ;<Combobox.InputGroup>
237
+ * <Combobox.ChipsList>
238
+ * {(selected: Combobox.ChipsType<typeof groups>) => (
239
+ * <>
240
+ * {selected.map((city) => (
241
+ * <Combobox.Chip key={city.value} aria-label={city.label}>
242
+ * {city.label}
243
+ * <Combobox.ChipRemoveButton aria-label={'Remove ' + city.label}>
244
+ * <Combobox.ChipRemoveButtonIcon />
245
+ * </Combobox.ChipRemoveButton>
246
+ * </Combobox.Chip>
247
+ * ))}
248
+ * <Combobox.Input placeholder="Choose cities" />
249
+ * </>
250
+ * )}
251
+ * </Combobox.ChipsList>
252
+ * </Combobox.InputGroup>
253
+ */
254
+ export declare const ChipsList: <Item extends ItemShape = ItemShape>(props: ChipsListProps<Item>) => ReactElement;
255
+ /** Reads Base UI selection without rendering its own element. Use its children callback only when you need a custom selection display; Input already displays the selected label automatically. */
256
+ export declare const Value: typeof BaseCombobox.Value;
257
+ export type ScrollAreaProps = Omit<ComponentPropsWithRef<typeof BaseCombobox.List>, 'children' | 'className'> & {
258
+ className?: string;
259
+ /** Required groups composition. Use GroupsList rather than another listbox primitive. */
260
+ children?: ReactNode;
261
+ } & StyleProps;
262
+ /** Required listbox and scroll viewport inside Popup. Place GroupsList inside it. Owns keyboard/listbox semantics; do not nest another listbox primitive. */
263
+ export declare const ScrollArea: import("react").ForwardRefExoticComponent<Omit<ScrollAreaProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
264
+ export type GroupsListProps<Group extends GroupShape = GroupShape> = Omit<ComponentPropsWithRef<'div'>, 'children'> & {
265
+ /**
266
+ * Return Group with its ItemsList; the collection already performs filtering.
267
+ * IMPORTANT: manually annotate group as Combobox.GroupType<typeof rootItems>,
268
+ * where rootItems is the exact items variable passed to Root; the surrounding
269
+ * Root does not infer this callback's data shape.
270
+ */
271
+ children: ReactNode | ((group: Group, index: number) => ReactNode);
272
+ } & StyleProps;
273
+ /** Required groups container inside ScrollArea. A children callback receives each automatically filtered group; do not filter or map the original groups again. Manually annotate group with Combobox.GroupType<typeof rootItems>, using the exact items variable passed to Root. */
274
+ export declare function GroupsList<Group extends GroupShape = GroupShape>({ disableStyle, children, className, style, ...props }: GroupsListProps<Group>): import("react").JSX.Element;
275
+ export type ItemsListProps<Item extends ItemShape = ItemShape> = Omit<ComponentPropsWithRef<'div'>, 'children' | 'className'> & {
276
+ className?: string;
277
+ /**
278
+ * Return Item with ItemText and ItemIndicator; do not filter the collection a second time.
279
+ * IMPORTANT: manually annotate item as Combobox.ItemType<typeof rootItems>,
280
+ * where rootItems is the exact items variable passed to Root; the surrounding
281
+ * Root does not infer this callback's data shape.
282
+ */
283
+ children?: ReactNode | ((item: Item, index: number) => ReactNode);
284
+ } & StyleProps;
285
+ /** Required items container inside Group. A children callback receives the filtered items belonging to that Group; do not repeat filtering yourself. Manually annotate item with Combobox.ItemType<typeof rootItems>, using the exact items variable passed to Root. */
286
+ export declare function ItemsList<Item extends ItemShape = ItemShape>({ disableStyle, children, className, style, ...props }: ItemsListProps<Item>): import("react").JSX.Element;
287
+ export type GroupProps<Item extends ItemShape = ItemShape> = Omit<ComponentPropsWithRef<typeof BaseCombobox.Group>, 'items' | 'className'> & {
288
+ className?: string;
289
+ /** Items for this group; pass group.items from GroupsList. Required even for a flat list. */
290
+ items: readonly Item[];
291
+ } & StyleProps;
292
+ /** Required wrapper around ItemsList, even for a visually flat list. Pass group.items. A GroupLabel is optional; omit it when the group has an empty label. */
293
+ export declare function Group<Item extends ItemShape = ItemShape>({ disableStyle, className, style, ...props }: GroupProps<Item>): import("react").JSX.Element;
294
+ export type ItemProps<Item extends ItemShape = ItemShape> = Omit<ComponentPropsWithRef<typeof BaseCombobox.Item>, 'value' | 'className'> & {
295
+ className?: string;
296
+ /** Pass the item supplied by ItemsList so selection can match it by item.value. */
297
+ value: Item;
298
+ } & StyleProps;
299
+ /** Required selectable row inside ItemsList. Pass the complete item object as value, with ItemText and ItemIndicator inside. Selection, highlighting, and keyboard behavior are built in. */
300
+ export declare function Item<Item extends ItemShape = ItemShape>({ disableStyle, className, style, ...props }: ItemProps<Item>): import("react").JSX.Element;
301
+ export type PopupProps = Omit<ComponentPropsWithRef<typeof BaseCombobox.Popup>, 'className'> & {
302
+ className?: string;
303
+ } & Pick<BaseCombobox.Portal.Props, 'container' | 'keepMounted'> & Pick<BaseCombobox.Positioner.Props, 'anchor' | 'positionMethod' | 'alignOffset' | 'collisionBoundary' | 'collisionPadding' | 'sticky' | 'arrowPadding' | 'disableAnchorTracking' | 'collisionAvoidance'> & {
304
+ /** Preferred popup side; collision handling may choose another side. @default 'bottom' */
305
+ side?: BaseCombobox.Positioner.Props['side'];
306
+ /** Gap between the anchor and popup in pixels. @default 5 */
307
+ sideOffset?: BaseCombobox.Positioner.Props['sideOffset'];
308
+ /** Popup alignment relative to its anchor. @default 'start' */
309
+ align?: BaseCombobox.Positioner.Props['align'];
310
+ } & StyleProps;
311
+ /** Popup containing Empty, an optional Loading message, and ScrollArea, in that order. Already includes the portal and positioner: do not add either yourself. Defaults to bottom/start with a 5px gap. Core available-space and anchor-width inline styles stay active when preset styling is disabled. */
312
+ export declare function Popup({ disableStyle, container, keepMounted, anchor, positionMethod, side, sideOffset, align, alignOffset, collisionBoundary, collisionPadding, sticky, arrowPadding, disableAnchorTracking, collisionAvoidance, className, style, ...props }: PopupProps): import("react").JSX.Element;
313
+ /** Optional decorative popup arrow. Place inside Popup; the SVG and direction handling are supplied. No children needed. */
314
+ export declare const Arrow: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").SVGProps<SVGSVGElement>, "children" | "dangerouslySetInnerHTML"> & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
315
+ /** Behavior only: turns its single child element into the popup trigger. Adds no preset styling and has no disableStyle prop. Use an accessible button child; pass className to the child for its appearance. */
316
+ export declare const PopupOpenHandler: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxTriggerProps, "children" | "className" | "render"> & {
317
+ /** Additional classes forwarded to the trigger element. This handler has no preset styles. */
318
+ className?: string;
319
+ /** Single element to receive the behavior. Use a button with an accessible name. */
320
+ children: ReactElement;
321
+ }, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
322
+ /** Behavior only: turns its single child element into a removal control for the surrounding Chip. Adds no preset styling and has no disableStyle prop. Use an accessible button child. */
323
+ export declare const ChipRemoveHandler: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxChipRemoveProps, "children" | "className" | "render"> & {
324
+ /** Additional classes forwarded to the removal element. This handler has no preset styles. */
325
+ className?: string;
326
+ /** Single element to receive the behavior. Use a button with an accessible name. */
327
+ children: ReactElement;
328
+ }, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
329
+ /** Optional input adornment container inside InputGroup. Wraps icons, text, or buttons without adding trigger behavior. */
330
+ export declare const Addon: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
331
+ /** Preset adornment appearance. Does not add button behavior. @default 'normal' */
332
+ variant?: "normal" | "emphasized";
333
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
334
+ /** Clones one supplied icon element, forwarding its ref and preserving its classes. Decorative only; does not open the popup or perform an action. */
335
+ export declare const AddonIcon: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "strokeWidth"> & {
336
+ /** @default 1.5 */
337
+ strokeWidth?: LucideProps["strokeWidth"];
338
+ } & {
339
+ /** One icon element to clone. Its own className is preserved. */
340
+ children: ReactElement<LucideProps>;
341
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
342
+ /** Optional general-purpose button inside Addon. Supply its action yourself. Automatically disabled when Root is disabled or readOnly; defaults to type="button". */
343
+ export declare const AddonButton: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "type" | "disabled"> & {
344
+ /** Button type. @default 'button' */
345
+ type?: ComponentProps<"button">["type"];
346
+ /** Disables this button. Root disabled or readOnly also disables it automatically. */
347
+ disabled?: ComponentProps<"button">["disabled"];
348
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
349
+ /** Input control wrapper. Place Input (or ChipsList containing Input) and optional Addon controls inside. Root tone controls its preset validation border. */
350
+ export declare const InputGroup: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxInputGroupProps, "className"> & {
351
+ className?: string;
352
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
353
+ /** Displays one selected item inside ChipsList. Keep chips in selected-item order so Base UI can remove the matching item. Supply the item label and an optional removal control. */
354
+ export declare const Chip: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxChipProps, "className"> & {
355
+ className?: string;
356
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
357
+ /** Removes the surrounding Chip from selection automatically; no onClick handler needed. Supply its content, normally ChipRemoveButtonIcon, and an accessible label. */
358
+ export declare const ChipRemoveButton: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxChipRemoveProps, "className"> & {
359
+ className?: string;
360
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
361
+ /** Opens and closes the popup automatically; no click handler needed. Supply its content, normally AddonOpenButtonIcon, and an accessible label. */
362
+ export declare const AddonOpenButton: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxTriggerProps, "className"> & {
363
+ className?: string;
364
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
365
+ /** Clears the selection automatically; no click handler needed. Supply its content, normally AddonClearButtonIcon, and an accessible label. */
366
+ export declare const AddonClearButton: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteClearProps, "className"> & {
367
+ className?: string;
368
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
369
+ /** Optional heading inside Group. Supply group.label as children. Omit this part for an empty label; always keep Group and ItemsList. */
370
+ export declare const GroupLabel: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteGroupLabelProps, "className"> & {
371
+ className?: string;
372
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
373
+ /** Required empty-results message inside Popup, before optional Loading and ScrollArea. Keep mounted statically: Base UI renders its children only when no items match. Do not manually toggle, hide, or conditionally mount it. */
374
+ export declare const Empty: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteEmptyProps, "className"> & {
375
+ className?: string;
376
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
377
+ /** Optional visual separator inside the popup. Does not replace Group or any required list containers. */
378
+ export declare const Separator: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxSeparatorProps, "className"> & {
379
+ className?: string;
380
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
381
+ /** Required label content inside Item. Supply item.label as children; does not derive text from the item automatically. */
382
+ export declare const ItemText: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLSpanElement> & import("react").HTMLAttributes<HTMLSpanElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
383
+ /** Optional decorative text inside Addon. Supply the text as children. */
384
+ export declare const AddonText: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLSpanElement> & import("react").HTMLAttributes<HTMLSpanElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
385
+ /** Text content inside Empty. Supply your empty-result message; Empty handles its visibility automatically. */
386
+ export declare const EmptyText: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
387
+ /** Optional supporting text. Supply its content; it does not connect itself to the input with aria-describedby. Use matching id and Input aria-describedby when needed. */
388
+ export declare const Description: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
389
+ /** Optional alert message. You control when it is rendered and its contents; tone does not validate or show this message automatically. */
390
+ export declare const Error: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
391
+ /** Optional success status. You control when it is rendered and its contents; tone does not show this message automatically. */
392
+ export declare const Success: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
393
+ /** Built-in decorative open-button icon. Place inside AddonOpenButton; no children needed. Defaults to strokeWidth 1.5. */
394
+ export declare const AddonOpenButtonIcon: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "strokeWidth"> & {
395
+ /** @default 1.5 */
396
+ strokeWidth?: LucideProps["strokeWidth"];
397
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
398
+ /** Built-in decorative clear icon. Place inside AddonClearButton; no children needed. Defaults to strokeWidth 1.5. */
399
+ export declare const AddonClearButtonIcon: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "strokeWidth"> & {
400
+ /** @default 1.5 */
401
+ strokeWidth?: LucideProps["strokeWidth"];
402
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
403
+ /** Built-in decorative removal icon. Place inside ChipRemoveButton; no children needed. Defaults to strokeWidth 1.5. */
404
+ export declare const ChipRemoveButtonIcon: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "strokeWidth"> & {
405
+ /** @default 1.5 */
406
+ strokeWidth?: LucideProps["strokeWidth"];
407
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
408
+ /** Optional spinner inside Addon. Does not detect requests: you decide when to render it. Defaults to strokeWidth 1.5. */
409
+ export declare const AddonLoadingIcon: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "strokeWidth"> & {
410
+ /** @default 1.5 */
411
+ strokeWidth?: LucideProps["strokeWidth"];
412
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
413
+ /** Required selection indicator inside Item. Visibility is automatic and a checkmark is supplied: no children or selection condition needed. Pass children only to replace the built-in checkmark. */
414
+ export declare const ItemIndicator: import("react").ForwardRefExoticComponent<Omit<Omit<LucideProps, "children"> & Pick<import("@base-ui/react").ComboboxItemIndicatorProps, "keepMounted"> & {
415
+ /** Optional replacement SVG icon. It receives this indicator's props and ref. */
416
+ children?: ReactElement<LucideProps>;
417
+ } & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
418
+ /** Optional async status inside Popup, below Empty and above ScrollArea. Omit entirely for synchronous items. For async items, keep Loading mounted and conditionally render only LoadingIcon and LoadingText from your request state. Does not detect requests or manage visibility. */
419
+ export declare const Loading: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteStatusProps, "className"> & {
420
+ className?: string;
421
+ } & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
422
+ /** Text inside Loading. Supply the message only while your request is loading; this part does not detect request state. */
423
+ export declare const LoadingText: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & StyleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
424
+ /** Built-in decorative spinner for Loading. No children needed; you control when it is rendered. */
425
+ export declare const LoadingIcon: import("react").ForwardRefExoticComponent<Omit<LucideProps & StyleProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
426
+ export {};
427
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/index.tsx"],"names":[],"mappings":"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"}