@multicomma/arkcn 0.1.2 → 0.1.3

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 (148) hide show
  1. package/package.json +1 -1
  2. package/registry/index.json +1 -1
  3. package/registry/items/accordion.json +302 -0
  4. package/registry/items/activity-feed.json +408 -0
  5. package/registry/items/alert-dialog.json +676 -0
  6. package/registry/items/alert.json +113 -0
  7. package/registry/items/angle-slider.json +378 -0
  8. package/registry/items/app-shell.json +2654 -1
  9. package/registry/items/aspect-ratio.json +36 -0
  10. package/registry/items/attachment.json +299 -1
  11. package/registry/items/avatar.json +213 -0
  12. package/registry/items/badge.json +44 -0
  13. package/registry/items/breadcrumb.json +191 -0
  14. package/registry/items/bubble.json +146 -0
  15. package/registry/items/button-group.json +110 -0
  16. package/registry/items/button.json +52 -0
  17. package/registry/items/calendar.json +499 -1
  18. package/registry/items/canvas.json +446 -1
  19. package/registry/items/card.json +192 -0
  20. package/registry/items/carousel.json +208 -1
  21. package/registry/items/cascader.json +797 -1
  22. package/registry/items/chart.json +1764 -1
  23. package/registry/items/chat.json +993 -0
  24. package/registry/items/checkbox.json +503 -0
  25. package/registry/items/clipboard.json +308 -0
  26. package/registry/items/collapsible.json +226 -0
  27. package/registry/items/color-picker.json +1261 -0
  28. package/registry/items/combobox.json +1123 -1
  29. package/registry/items/command.json +837 -1
  30. package/registry/items/comment-thread.json +952 -1
  31. package/registry/items/context-menu.json +1344 -1
  32. package/registry/items/data-grid.json +449 -1
  33. package/registry/items/data-table.json +1310 -1
  34. package/registry/items/date-input.json +476 -0
  35. package/registry/items/dialog.json +592 -0
  36. package/registry/items/direction.json +29 -1
  37. package/registry/items/drawer.json +797 -0
  38. package/registry/items/dropdown-menu.json +1311 -1
  39. package/registry/items/editable.json +503 -0
  40. package/registry/items/empty.json +166 -0
  41. package/registry/items/field.json +286 -1
  42. package/registry/items/file-upload.json +638 -0
  43. package/registry/items/floating-panel.json +720 -0
  44. package/registry/items/floating-toolbar.json +43 -0
  45. package/registry/items/format.json +109 -0
  46. package/registry/items/gantt.json +773 -1
  47. package/registry/items/hooks/use-mobile.json +1 -0
  48. package/registry/items/hotkeys.json +99 -1
  49. package/registry/items/hover-card.json +357 -0
  50. package/registry/items/image-cropper.json +431 -0
  51. package/registry/items/input-group.json +189 -0
  52. package/registry/items/input-otp.json +181 -0
  53. package/registry/items/input.json +28 -0
  54. package/registry/items/item.json +308 -0
  55. package/registry/items/json-tree-view.json +336 -0
  56. package/registry/items/kanban.json +624 -1
  57. package/registry/items/kbd.json +54 -0
  58. package/registry/items/label.json +28 -0
  59. package/registry/items/lib/controllable.json +1 -0
  60. package/registry/items/lib/data-table-adapter.json +1 -0
  61. package/registry/items/lib/drag-preview.json +1 -0
  62. package/registry/items/lib/form.json +1 -0
  63. package/registry/items/lib/history.json +1 -0
  64. package/registry/items/lib/row-layout.json +1 -0
  65. package/registry/items/lib/table.json +1 -0
  66. package/registry/items/lib/time.json +1 -0
  67. package/registry/items/lib/utils.json +1 -0
  68. package/registry/items/live-region.json +43 -0
  69. package/registry/items/marker.json +96 -0
  70. package/registry/items/marquee.json +300 -0
  71. package/registry/items/menubar.json +1282 -1
  72. package/registry/items/message.json +166 -0
  73. package/registry/items/navigation-menu.json +561 -1
  74. package/registry/items/node-graph.json +1037 -1
  75. package/registry/items/number-input.json +519 -0
  76. package/registry/items/pagination.json +244 -1
  77. package/registry/items/password-input.json +311 -0
  78. package/registry/items/popconfirm.json +566 -0
  79. package/registry/items/popover.json +615 -0
  80. package/registry/items/progress.json +516 -0
  81. package/registry/items/qr-code.json +249 -0
  82. package/registry/items/query-builder.json +1368 -1
  83. package/registry/items/radio-group.json +362 -0
  84. package/registry/items/rating-group.json +304 -0
  85. package/registry/items/resizable.json +242 -1
  86. package/registry/items/rich-text-editor.json +934 -1
  87. package/registry/items/scheduler.json +1013 -1
  88. package/registry/items/scroll-area.json +227 -0
  89. package/registry/items/segment-group.json +363 -0
  90. package/registry/items/select.json +956 -0
  91. package/registry/items/separator.json +45 -1
  92. package/registry/items/sheet.json +592 -0
  93. package/registry/items/sidebar.json +785 -1
  94. package/registry/items/signature-pad.json +330 -0
  95. package/registry/items/skeleton.json +28 -0
  96. package/registry/items/slider.json +799 -0
  97. package/registry/items/sonner.json +135 -0
  98. package/registry/items/spinner.json +28 -0
  99. package/registry/items/steps.json +483 -0
  100. package/registry/items/swap.json +107 -0
  101. package/registry/items/switch.json +362 -0
  102. package/registry/items/table.json +210 -0
  103. package/registry/items/tabs.json +326 -0
  104. package/registry/items/tags-input.json +640 -0
  105. package/registry/items/textarea.json +28 -0
  106. package/registry/items/timer.json +289 -0
  107. package/registry/items/toc.json +372 -0
  108. package/registry/items/toggle-group.json +214 -1
  109. package/registry/items/toggle.json +124 -0
  110. package/registry/items/tooltip.json +417 -0
  111. package/registry/items/tour.json +498 -0
  112. package/registry/items/transfer-list.json +609 -1
  113. package/registry/items/tree-select.json +742 -1
  114. package/registry/items/tree-view.json +794 -0
  115. package/registry/items/virtual-list.json +214 -1
  116. package/src/components/ui/app-shell.tsx +11 -0
  117. package/src/components/ui/attachment.tsx +1 -0
  118. package/src/components/ui/calendar.tsx +1 -0
  119. package/src/components/ui/canvas.tsx +8 -0
  120. package/src/components/ui/carousel.tsx +3 -0
  121. package/src/components/ui/cascader.tsx +1 -0
  122. package/src/components/ui/chart.tsx +10 -0
  123. package/src/components/ui/combobox.tsx +3 -0
  124. package/src/components/ui/command.tsx +1 -0
  125. package/src/components/ui/comment-thread.tsx +11 -0
  126. package/src/components/ui/context-menu.tsx +6 -0
  127. package/src/components/ui/data-grid.tsx +8 -0
  128. package/src/components/ui/data-table.tsx +6 -0
  129. package/src/components/ui/direction.tsx +2 -0
  130. package/src/components/ui/dropdown-menu.tsx +6 -0
  131. package/src/components/ui/field.tsx +1 -0
  132. package/src/components/ui/gantt.tsx +15 -0
  133. package/src/components/ui/hotkeys.tsx +3 -0
  134. package/src/components/ui/kanban.tsx +3 -0
  135. package/src/components/ui/menubar.tsx +6 -0
  136. package/src/components/ui/navigation-menu.tsx +1 -0
  137. package/src/components/ui/node-graph.tsx +23 -0
  138. package/src/components/ui/pagination.tsx +1 -0
  139. package/src/components/ui/query-builder.tsx +7 -0
  140. package/src/components/ui/resizable.tsx +1 -0
  141. package/src/components/ui/rich-text-editor.tsx +54 -0
  142. package/src/components/ui/scheduler.tsx +26 -0
  143. package/src/components/ui/separator.tsx +1 -0
  144. package/src/components/ui/sidebar.tsx +5 -0
  145. package/src/components/ui/toggle-group.tsx +3 -0
  146. package/src/components/ui/transfer-list.tsx +11 -0
  147. package/src/components/ui/tree-select.tsx +5 -0
  148. package/src/components/ui/virtual-list.tsx +7 -0
@@ -32,6 +32,1128 @@
32
32
  "useListCollection",
33
33
  "ComboboxItemContext"
34
34
  ],
35
+ "parts": [
36
+ {
37
+ "name": "Combobox",
38
+ "props": [
39
+ {
40
+ "name": "anchor",
41
+ "type": "RefObject<HTMLElement | null>",
42
+ "required": false,
43
+ "description": "Anchor the popup to another element, e.g. a `ComboboxChips` container.",
44
+ "from": "arkcn"
45
+ },
46
+ {
47
+ "name": "collection",
48
+ "type": "ListCollection<T>",
49
+ "required": true,
50
+ "description": "The collection of items",
51
+ "from": "@ark-ui/react"
52
+ },
53
+ {
54
+ "name": "allowCustomValue",
55
+ "type": "boolean",
56
+ "required": false,
57
+ "description": "Whether to allow typing custom values in the input",
58
+ "from": "@zag-js/combobox"
59
+ },
60
+ {
61
+ "name": "alwaysSubmitOnEnter",
62
+ "type": "boolean",
63
+ "required": false,
64
+ "default": "false",
65
+ "description": "Whether to always submit on Enter key press, even if popup is open.\nUseful for single-field autocomplete forms where Enter should submit the form.",
66
+ "from": "@zag-js/combobox"
67
+ },
68
+ {
69
+ "name": "asChild",
70
+ "type": "boolean",
71
+ "required": false,
72
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
73
+ "from": "@ark-ui/react"
74
+ },
75
+ {
76
+ "name": "autoFocus",
77
+ "type": "boolean",
78
+ "required": false,
79
+ "description": "Whether to autofocus the input on mount",
80
+ "from": "@zag-js/combobox"
81
+ },
82
+ {
83
+ "name": "children",
84
+ "type": "ReactNode",
85
+ "required": false,
86
+ "description": "Content rendered inside the part.",
87
+ "from": "@types/react"
88
+ },
89
+ {
90
+ "name": "className",
91
+ "type": "string",
92
+ "required": false,
93
+ "description": "Extra classes merged into the part's own classes with `cn`.",
94
+ "from": "@types/react"
95
+ },
96
+ {
97
+ "name": "closeOnSelect",
98
+ "type": "boolean",
99
+ "required": false,
100
+ "description": "Whether to close the combobox when an item is selected.",
101
+ "from": "@zag-js/combobox"
102
+ },
103
+ {
104
+ "name": "composite",
105
+ "type": "boolean",
106
+ "required": false,
107
+ "default": "true",
108
+ "description": "Whether the combobox is a composed with other composite widgets like tabs",
109
+ "from": "@zag-js/combobox"
110
+ },
111
+ {
112
+ "name": "defaultHighlightedValue",
113
+ "type": "string | null",
114
+ "required": false,
115
+ "description": "The initial highlighted value of the combobox when rendered.\nUse when you don't need to control the highlighted value of the combobox.",
116
+ "from": "@zag-js/combobox"
117
+ },
118
+ {
119
+ "name": "defaultInputValue",
120
+ "type": "string",
121
+ "required": false,
122
+ "default": "\"\"",
123
+ "description": "The initial value of the combobox's input when rendered.\nUse when you don't need to control the value of the combobox's input.",
124
+ "from": "@zag-js/combobox"
125
+ },
126
+ {
127
+ "name": "defaultOpen",
128
+ "type": "boolean",
129
+ "required": false,
130
+ "description": "The initial open state of the combobox when rendered.\nUse when you don't need to control the open state of the combobox.",
131
+ "from": "@zag-js/combobox"
132
+ },
133
+ {
134
+ "name": "defaultValue",
135
+ "type": "string[]",
136
+ "required": false,
137
+ "default": "[]",
138
+ "description": "The initial value of the combobox's selected items when rendered.\nUse when you don't need to control the value of the combobox's selected items.",
139
+ "from": "@zag-js/combobox"
140
+ },
141
+ {
142
+ "name": "disabled",
143
+ "type": "boolean",
144
+ "required": false,
145
+ "description": "Whether the combobox is disabled",
146
+ "from": "@zag-js/combobox"
147
+ },
148
+ {
149
+ "name": "disableLayer",
150
+ "type": "boolean",
151
+ "required": false,
152
+ "description": "Whether to disable registering this a dismissable layer",
153
+ "from": "@zag-js/combobox"
154
+ },
155
+ {
156
+ "name": "form",
157
+ "type": "string",
158
+ "required": false,
159
+ "description": "The associate form of the combobox.",
160
+ "from": "@zag-js/combobox"
161
+ },
162
+ {
163
+ "name": "hideMode",
164
+ "type": "HideMode",
165
+ "required": false,
166
+ "default": "'display-none'",
167
+ "description": "How to hide content when mounted but not present.\n- `'display-none'`: HTML `hidden` attribute. Effects stay alive.\n- `'activity'`: React 19 `<Activity mode=\"hidden\">`. Effects pause. Requires React 19+.",
168
+ "from": "@ark-ui/react"
169
+ },
170
+ {
171
+ "name": "highlightedValue",
172
+ "type": "string | null",
173
+ "required": false,
174
+ "description": "The controlled highlighted value of the combobox",
175
+ "from": "@zag-js/combobox"
176
+ },
177
+ {
178
+ "name": "id",
179
+ "type": "string",
180
+ "required": false,
181
+ "description": "The unique identifier of the machine.",
182
+ "from": "@zag-js/types"
183
+ },
184
+ {
185
+ "name": "ids",
186
+ "type": "ElementIds",
187
+ "required": false,
188
+ "description": "The ids of the elements in the combobox. Useful for composition.",
189
+ "from": "@zag-js/combobox"
190
+ },
191
+ {
192
+ "name": "immediate",
193
+ "type": "boolean",
194
+ "required": false,
195
+ "description": "Whether to synchronize the present change immediately or defer it to the next frame",
196
+ "from": "@zag-js/presence"
197
+ },
198
+ {
199
+ "name": "inputBehavior",
200
+ "type": "\"none\" | \"autohighlight\" | \"autocomplete\"",
201
+ "required": false,
202
+ "default": "\"none\"",
203
+ "description": "Defines the auto-completion behavior of the combobox.\n\n- `autohighlight`: The first focused item is highlighted as the user types\n- `autocomplete`: Navigating the listbox with the arrow keys selects the item and the input is updated",
204
+ "from": "@zag-js/combobox"
205
+ },
206
+ {
207
+ "name": "inputValue",
208
+ "type": "string",
209
+ "required": false,
210
+ "description": "The controlled value of the combobox's input",
211
+ "from": "@zag-js/combobox"
212
+ },
213
+ {
214
+ "name": "invalid",
215
+ "type": "boolean",
216
+ "required": false,
217
+ "description": "Whether the combobox is invalid",
218
+ "from": "@zag-js/combobox"
219
+ },
220
+ {
221
+ "name": "lazyMount",
222
+ "type": "boolean",
223
+ "required": false,
224
+ "default": "true",
225
+ "description": "Whether to enable lazy mounting",
226
+ "from": "@ark-ui/react"
227
+ },
228
+ {
229
+ "name": "loopFocus",
230
+ "type": "boolean",
231
+ "required": false,
232
+ "default": "true",
233
+ "description": "Whether to loop the keyboard navigation through the items",
234
+ "from": "@zag-js/combobox"
235
+ },
236
+ {
237
+ "name": "multiple",
238
+ "type": "boolean",
239
+ "required": false,
240
+ "description": "Whether to allow multiple selection.\n\n**Good to know:** When `multiple` is `true`, the `selectionBehavior` is automatically set to `clear`.\nIt is recommended to render the selected items in a separate container.",
241
+ "from": "@zag-js/combobox"
242
+ },
243
+ {
244
+ "name": "name",
245
+ "type": "string",
246
+ "required": false,
247
+ "description": "The `name` attribute of the combobox's input. Useful for form submission",
248
+ "from": "@zag-js/combobox"
249
+ },
250
+ {
251
+ "name": "navigate",
252
+ "type": "((details: NavigateDetails) => void) | null",
253
+ "required": false,
254
+ "description": "Function to navigate to the selected item",
255
+ "from": "@zag-js/combobox"
256
+ },
257
+ {
258
+ "name": "onEnterComplete",
259
+ "type": "VoidFunction",
260
+ "required": false,
261
+ "description": "Function called when the animation ends in the open state",
262
+ "from": "@zag-js/presence"
263
+ },
264
+ {
265
+ "name": "onExitComplete",
266
+ "type": "VoidFunction",
267
+ "required": false,
268
+ "description": "Function called when the animation ends in the closed state",
269
+ "from": "@zag-js/presence"
270
+ },
271
+ {
272
+ "name": "onFocusOutside",
273
+ "type": "((event: FocusOutsideEvent) => void)",
274
+ "required": false,
275
+ "description": "Function called when the focus is moved outside the component",
276
+ "from": "@zag-js/interact-outside"
277
+ },
278
+ {
279
+ "name": "onHighlightChange",
280
+ "type": "((details: HighlightChangeDetails<T>) => void)",
281
+ "required": false,
282
+ "description": "Function called when an item is highlighted using the pointer\nor keyboard navigation.",
283
+ "from": "@zag-js/combobox"
284
+ },
285
+ {
286
+ "name": "onInputValueChange",
287
+ "type": "((details: InputValueChangeDetails) => void)",
288
+ "required": false,
289
+ "description": "Function called when the input's value changes",
290
+ "from": "@zag-js/combobox"
291
+ },
292
+ {
293
+ "name": "onInteractOutside",
294
+ "type": "((event: InteractOutsideEvent) => void)",
295
+ "required": false,
296
+ "description": "Function called when an interaction happens outside the component",
297
+ "from": "@zag-js/interact-outside"
298
+ },
299
+ {
300
+ "name": "onOpenChange",
301
+ "type": "((details: OpenChangeDetails) => void)",
302
+ "required": false,
303
+ "description": "Function called when the popup is opened",
304
+ "from": "@zag-js/combobox"
305
+ },
306
+ {
307
+ "name": "onPointerDownOutside",
308
+ "type": "((event: PointerDownOutsideEvent) => void)",
309
+ "required": false,
310
+ "description": "Function called when the pointer is pressed down outside the component",
311
+ "from": "@zag-js/interact-outside"
312
+ },
313
+ {
314
+ "name": "onSelect",
315
+ "type": "((details: SelectionDetails) => void)",
316
+ "required": false,
317
+ "description": "Function called when an item is selected",
318
+ "from": "@zag-js/combobox"
319
+ },
320
+ {
321
+ "name": "onValueChange",
322
+ "type": "((details: ValueChangeDetails<T>) => void)",
323
+ "required": false,
324
+ "description": "Function called when a new item is selected",
325
+ "from": "@zag-js/combobox"
326
+ },
327
+ {
328
+ "name": "open",
329
+ "type": "boolean",
330
+ "required": false,
331
+ "description": "The controlled open state of the combobox",
332
+ "from": "@zag-js/combobox"
333
+ },
334
+ {
335
+ "name": "openOnChange",
336
+ "type": "boolean | ((details: InputValueChangeDetails) => boolean)",
337
+ "required": false,
338
+ "default": "true",
339
+ "description": "Whether to show the combobox when the input value changes",
340
+ "from": "@zag-js/combobox"
341
+ },
342
+ {
343
+ "name": "openOnClick",
344
+ "type": "boolean",
345
+ "required": false,
346
+ "default": "false",
347
+ "description": "Whether to open the combobox popup on initial click on the input",
348
+ "from": "@zag-js/combobox"
349
+ },
350
+ {
351
+ "name": "openOnKeyPress",
352
+ "type": "boolean",
353
+ "required": false,
354
+ "default": "true",
355
+ "description": "Whether to open the combobox on arrow key press",
356
+ "from": "@zag-js/combobox"
357
+ },
358
+ {
359
+ "name": "placeholder",
360
+ "type": "string",
361
+ "required": false,
362
+ "description": "The placeholder text of the combobox's input",
363
+ "from": "@zag-js/combobox"
364
+ },
365
+ {
366
+ "name": "positioning",
367
+ "type": "PositioningOptions",
368
+ "required": false,
369
+ "default": "{ placement: \"bottom-start\" }",
370
+ "description": "The positioning options to dynamically position the menu",
371
+ "from": "@zag-js/combobox"
372
+ },
373
+ {
374
+ "name": "present",
375
+ "type": "boolean",
376
+ "required": false,
377
+ "description": "Whether the node is present (controlled by the user)",
378
+ "from": "@zag-js/presence"
379
+ },
380
+ {
381
+ "name": "readOnly",
382
+ "type": "boolean",
383
+ "required": false,
384
+ "description": "Whether the combobox is readonly. This puts the combobox in a \"non-editable\" mode\nbut the user can still interact with it",
385
+ "from": "@zag-js/combobox"
386
+ },
387
+ {
388
+ "name": "required",
389
+ "type": "boolean",
390
+ "required": false,
391
+ "description": "Whether the combobox is required",
392
+ "from": "@zag-js/combobox"
393
+ },
394
+ {
395
+ "name": "scrollToIndexFn",
396
+ "type": "((details: ScrollToIndexDetails) => void)",
397
+ "required": false,
398
+ "description": "Function to scroll to a specific index",
399
+ "from": "@zag-js/combobox"
400
+ },
401
+ {
402
+ "name": "selectionBehavior",
403
+ "type": "\"clear\" | \"replace\" | \"preserve\"",
404
+ "required": false,
405
+ "default": "\"replace\"",
406
+ "description": "The behavior of the combobox input when an item is selected\n\n- `replace`: The selected item string is set as the input value\n- `clear`: The input value is cleared\n- `preserve`: The input value is preserved",
407
+ "from": "@zag-js/combobox"
408
+ },
409
+ {
410
+ "name": "skipAnimationOnMount",
411
+ "type": "boolean",
412
+ "required": false,
413
+ "default": "false",
414
+ "description": "Whether to allow the initial presence animation.",
415
+ "from": "@ark-ui/react"
416
+ },
417
+ {
418
+ "name": "style",
419
+ "type": "CSSProperties",
420
+ "required": false,
421
+ "description": "Inline styles applied to the rendered element.",
422
+ "from": "@types/react"
423
+ },
424
+ {
425
+ "name": "translations",
426
+ "type": "IntlTranslations",
427
+ "required": false,
428
+ "description": "Specifies the localized strings that identifies the accessibility elements and their states",
429
+ "from": "@zag-js/combobox"
430
+ },
431
+ {
432
+ "name": "unmountOnExit",
433
+ "type": "boolean",
434
+ "required": false,
435
+ "default": "true",
436
+ "description": "Whether to unmount on exit.",
437
+ "from": "@ark-ui/react"
438
+ },
439
+ {
440
+ "name": "value",
441
+ "type": "string[]",
442
+ "required": false,
443
+ "description": "The controlled value of the combobox's selected items",
444
+ "from": "@zag-js/combobox"
445
+ }
446
+ ]
447
+ },
448
+ {
449
+ "name": "ComboboxChip",
450
+ "props": [
451
+ {
452
+ "name": "value",
453
+ "type": "string",
454
+ "required": true,
455
+ "description": "The selected value this chip represents.",
456
+ "from": "arkcn"
457
+ },
458
+ {
459
+ "name": "showRemove",
460
+ "type": "boolean",
461
+ "required": false,
462
+ "default": "true",
463
+ "description": "Render the remove button on the chip.",
464
+ "from": "arkcn"
465
+ },
466
+ {
467
+ "name": "children",
468
+ "type": "ReactNode",
469
+ "required": false,
470
+ "description": "Content rendered inside the part.",
471
+ "from": "@types/react"
472
+ },
473
+ {
474
+ "name": "className",
475
+ "type": "string",
476
+ "required": false,
477
+ "description": "Extra classes merged into the part's own classes with `cn`.",
478
+ "from": "@types/react"
479
+ },
480
+ {
481
+ "name": "style",
482
+ "type": "CSSProperties",
483
+ "required": false,
484
+ "description": "Inline styles applied to the rendered element.",
485
+ "from": "@types/react"
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "name": "ComboboxChips",
491
+ "props": [
492
+ {
493
+ "name": "asChild",
494
+ "type": "boolean",
495
+ "required": false,
496
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
497
+ "from": "@ark-ui/react"
498
+ },
499
+ {
500
+ "name": "children",
501
+ "type": "ReactNode",
502
+ "required": false,
503
+ "description": "Content rendered inside the part.",
504
+ "from": "@types/react"
505
+ },
506
+ {
507
+ "name": "className",
508
+ "type": "string",
509
+ "required": false,
510
+ "description": "Extra classes merged into the part's own classes with `cn`.",
511
+ "from": "@types/react"
512
+ },
513
+ {
514
+ "name": "style",
515
+ "type": "CSSProperties",
516
+ "required": false,
517
+ "description": "Inline styles applied to the rendered element.",
518
+ "from": "@types/react"
519
+ }
520
+ ]
521
+ },
522
+ {
523
+ "name": "ComboboxChipsInput",
524
+ "props": [
525
+ {
526
+ "name": "asChild",
527
+ "type": "boolean",
528
+ "required": false,
529
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
530
+ "from": "@ark-ui/react"
531
+ },
532
+ {
533
+ "name": "children",
534
+ "type": "ReactNode",
535
+ "required": false,
536
+ "description": "Content rendered inside the part.",
537
+ "from": "@types/react"
538
+ },
539
+ {
540
+ "name": "className",
541
+ "type": "string",
542
+ "required": false,
543
+ "description": "Extra classes merged into the part's own classes with `cn`.",
544
+ "from": "@types/react"
545
+ },
546
+ {
547
+ "name": "style",
548
+ "type": "CSSProperties",
549
+ "required": false,
550
+ "description": "Inline styles applied to the rendered element.",
551
+ "from": "@types/react"
552
+ }
553
+ ]
554
+ },
555
+ {
556
+ "name": "ComboboxClear",
557
+ "props": [
558
+ {
559
+ "name": "asChild",
560
+ "type": "boolean",
561
+ "required": false,
562
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
563
+ "from": "@ark-ui/react"
564
+ },
565
+ {
566
+ "name": "children",
567
+ "type": "ReactNode",
568
+ "required": false,
569
+ "description": "Content rendered inside the part.",
570
+ "from": "@types/react"
571
+ },
572
+ {
573
+ "name": "className",
574
+ "type": "string",
575
+ "required": false,
576
+ "description": "Extra classes merged into the part's own classes with `cn`.",
577
+ "from": "@types/react"
578
+ },
579
+ {
580
+ "name": "style",
581
+ "type": "CSSProperties",
582
+ "required": false,
583
+ "description": "Inline styles applied to the rendered element.",
584
+ "from": "@types/react"
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "name": "ComboboxCollection",
590
+ "props": [
591
+ {
592
+ "name": "children",
593
+ "type": "(item: T, index: number) => ReactNode",
594
+ "required": true,
595
+ "description": "Content rendered inside the part.",
596
+ "from": "arkcn"
597
+ }
598
+ ]
599
+ },
600
+ {
601
+ "name": "ComboboxContent",
602
+ "props": [
603
+ {
604
+ "name": "asChild",
605
+ "type": "boolean",
606
+ "required": false,
607
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
608
+ "from": "@ark-ui/react"
609
+ },
610
+ {
611
+ "name": "children",
612
+ "type": "ReactNode",
613
+ "required": false,
614
+ "description": "Content rendered inside the part.",
615
+ "from": "@types/react"
616
+ },
617
+ {
618
+ "name": "className",
619
+ "type": "string",
620
+ "required": false,
621
+ "description": "Extra classes merged into the part's own classes with `cn`.",
622
+ "from": "@types/react"
623
+ },
624
+ {
625
+ "name": "style",
626
+ "type": "CSSProperties",
627
+ "required": false,
628
+ "description": "Inline styles applied to the rendered element.",
629
+ "from": "@types/react"
630
+ }
631
+ ]
632
+ },
633
+ {
634
+ "name": "ComboboxContext",
635
+ "props": [
636
+ {
637
+ "name": "children",
638
+ "type": "(context: UseComboboxContext<unknown>) => ReactNode",
639
+ "required": true,
640
+ "description": "Content rendered inside the part.",
641
+ "from": "@ark-ui/react"
642
+ }
643
+ ]
644
+ },
645
+ {
646
+ "name": "ComboboxControl",
647
+ "props": [
648
+ {
649
+ "name": "asChild",
650
+ "type": "boolean",
651
+ "required": false,
652
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
653
+ "from": "@ark-ui/react"
654
+ },
655
+ {
656
+ "name": "children",
657
+ "type": "ReactNode",
658
+ "required": false,
659
+ "description": "Content rendered inside the part.",
660
+ "from": "@types/react"
661
+ },
662
+ {
663
+ "name": "className",
664
+ "type": "string",
665
+ "required": false,
666
+ "description": "Extra classes merged into the part's own classes with `cn`.",
667
+ "from": "@types/react"
668
+ },
669
+ {
670
+ "name": "style",
671
+ "type": "CSSProperties",
672
+ "required": false,
673
+ "description": "Inline styles applied to the rendered element.",
674
+ "from": "@types/react"
675
+ }
676
+ ]
677
+ },
678
+ {
679
+ "name": "ComboboxEmpty",
680
+ "props": [
681
+ {
682
+ "name": "asChild",
683
+ "type": "boolean",
684
+ "required": false,
685
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
686
+ "from": "@ark-ui/react"
687
+ },
688
+ {
689
+ "name": "children",
690
+ "type": "ReactNode",
691
+ "required": false,
692
+ "description": "Content rendered inside the part.",
693
+ "from": "@types/react"
694
+ },
695
+ {
696
+ "name": "className",
697
+ "type": "string",
698
+ "required": false,
699
+ "description": "Extra classes merged into the part's own classes with `cn`.",
700
+ "from": "@types/react"
701
+ },
702
+ {
703
+ "name": "style",
704
+ "type": "CSSProperties",
705
+ "required": false,
706
+ "description": "Inline styles applied to the rendered element.",
707
+ "from": "@types/react"
708
+ }
709
+ ]
710
+ },
711
+ {
712
+ "name": "ComboboxGroup",
713
+ "props": [
714
+ {
715
+ "name": "asChild",
716
+ "type": "boolean",
717
+ "required": false,
718
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
719
+ "from": "@ark-ui/react"
720
+ },
721
+ {
722
+ "name": "children",
723
+ "type": "ReactNode",
724
+ "required": false,
725
+ "description": "Content rendered inside the part.",
726
+ "from": "@types/react"
727
+ },
728
+ {
729
+ "name": "className",
730
+ "type": "string",
731
+ "required": false,
732
+ "description": "Extra classes merged into the part's own classes with `cn`.",
733
+ "from": "@types/react"
734
+ },
735
+ {
736
+ "name": "style",
737
+ "type": "CSSProperties",
738
+ "required": false,
739
+ "description": "Inline styles applied to the rendered element.",
740
+ "from": "@types/react"
741
+ }
742
+ ]
743
+ },
744
+ {
745
+ "name": "ComboboxInput",
746
+ "props": [
747
+ {
748
+ "name": "showClear",
749
+ "type": "boolean",
750
+ "required": false,
751
+ "default": "false",
752
+ "description": "Render the clear button in the control.",
753
+ "from": "arkcn"
754
+ },
755
+ {
756
+ "name": "showTrigger",
757
+ "type": "boolean",
758
+ "required": false,
759
+ "default": "true",
760
+ "description": "Render the open/close trigger in the control.",
761
+ "from": "arkcn"
762
+ },
763
+ {
764
+ "name": "asChild",
765
+ "type": "boolean",
766
+ "required": false,
767
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
768
+ "from": "@ark-ui/react"
769
+ },
770
+ {
771
+ "name": "children",
772
+ "type": "ReactNode",
773
+ "required": false,
774
+ "description": "Content rendered inside the part.",
775
+ "from": "@types/react"
776
+ },
777
+ {
778
+ "name": "className",
779
+ "type": "string",
780
+ "required": false,
781
+ "description": "Extra classes merged into the part's own classes with `cn`.",
782
+ "from": "@types/react"
783
+ },
784
+ {
785
+ "name": "style",
786
+ "type": "CSSProperties",
787
+ "required": false,
788
+ "description": "Inline styles applied to the rendered element.",
789
+ "from": "@types/react"
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "name": "ComboboxItem",
795
+ "props": [
796
+ {
797
+ "name": "item",
798
+ "type": "any",
799
+ "required": false,
800
+ "description": "The collection item. Falls back to `value` for string collections.",
801
+ "from": "arkcn"
802
+ },
803
+ {
804
+ "name": "value",
805
+ "type": "string",
806
+ "required": false,
807
+ "description": "The controlled value.",
808
+ "from": "arkcn"
809
+ },
810
+ {
811
+ "name": "asChild",
812
+ "type": "boolean",
813
+ "required": false,
814
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
815
+ "from": "@ark-ui/react"
816
+ },
817
+ {
818
+ "name": "children",
819
+ "type": "ReactNode",
820
+ "required": false,
821
+ "description": "Content rendered inside the part.",
822
+ "from": "@types/react"
823
+ },
824
+ {
825
+ "name": "className",
826
+ "type": "string",
827
+ "required": false,
828
+ "description": "Extra classes merged into the part's own classes with `cn`.",
829
+ "from": "@types/react"
830
+ },
831
+ {
832
+ "name": "persistFocus",
833
+ "type": "boolean",
834
+ "required": false,
835
+ "description": "Whether hovering outside should clear the highlighted state",
836
+ "from": "@zag-js/combobox"
837
+ },
838
+ {
839
+ "name": "style",
840
+ "type": "CSSProperties",
841
+ "required": false,
842
+ "description": "Inline styles applied to the rendered element.",
843
+ "from": "@types/react"
844
+ }
845
+ ]
846
+ },
847
+ {
848
+ "name": "ComboboxItemIndicator",
849
+ "props": [
850
+ {
851
+ "name": "asChild",
852
+ "type": "boolean",
853
+ "required": false,
854
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
855
+ "from": "@ark-ui/react"
856
+ },
857
+ {
858
+ "name": "children",
859
+ "type": "ReactNode",
860
+ "required": false,
861
+ "description": "Content rendered inside the part.",
862
+ "from": "@types/react"
863
+ },
864
+ {
865
+ "name": "className",
866
+ "type": "string",
867
+ "required": false,
868
+ "description": "Extra classes merged into the part's own classes with `cn`.",
869
+ "from": "@types/react"
870
+ },
871
+ {
872
+ "name": "style",
873
+ "type": "CSSProperties",
874
+ "required": false,
875
+ "description": "Inline styles applied to the rendered element.",
876
+ "from": "@types/react"
877
+ }
878
+ ]
879
+ },
880
+ {
881
+ "name": "ComboboxItemText",
882
+ "props": [
883
+ {
884
+ "name": "asChild",
885
+ "type": "boolean",
886
+ "required": false,
887
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
888
+ "from": "@ark-ui/react"
889
+ },
890
+ {
891
+ "name": "children",
892
+ "type": "ReactNode",
893
+ "required": false,
894
+ "description": "Content rendered inside the part.",
895
+ "from": "@types/react"
896
+ },
897
+ {
898
+ "name": "className",
899
+ "type": "string",
900
+ "required": false,
901
+ "description": "Extra classes merged into the part's own classes with `cn`.",
902
+ "from": "@types/react"
903
+ },
904
+ {
905
+ "name": "style",
906
+ "type": "CSSProperties",
907
+ "required": false,
908
+ "description": "Inline styles applied to the rendered element.",
909
+ "from": "@types/react"
910
+ }
911
+ ]
912
+ },
913
+ {
914
+ "name": "ComboboxLabel",
915
+ "props": [
916
+ {
917
+ "name": "asChild",
918
+ "type": "boolean",
919
+ "required": false,
920
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
921
+ "from": "@ark-ui/react"
922
+ },
923
+ {
924
+ "name": "children",
925
+ "type": "ReactNode",
926
+ "required": false,
927
+ "description": "Content rendered inside the part.",
928
+ "from": "@types/react"
929
+ },
930
+ {
931
+ "name": "className",
932
+ "type": "string",
933
+ "required": false,
934
+ "description": "Extra classes merged into the part's own classes with `cn`.",
935
+ "from": "@types/react"
936
+ },
937
+ {
938
+ "name": "style",
939
+ "type": "CSSProperties",
940
+ "required": false,
941
+ "description": "Inline styles applied to the rendered element.",
942
+ "from": "@types/react"
943
+ }
944
+ ]
945
+ },
946
+ {
947
+ "name": "ComboboxList",
948
+ "props": [
949
+ {
950
+ "name": "asChild",
951
+ "type": "boolean",
952
+ "required": false,
953
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
954
+ "from": "@ark-ui/react"
955
+ },
956
+ {
957
+ "name": "children",
958
+ "type": "ReactNode",
959
+ "required": false,
960
+ "description": "Content rendered inside the part.",
961
+ "from": "@types/react"
962
+ },
963
+ {
964
+ "name": "className",
965
+ "type": "string",
966
+ "required": false,
967
+ "description": "Extra classes merged into the part's own classes with `cn`.",
968
+ "from": "@types/react"
969
+ },
970
+ {
971
+ "name": "style",
972
+ "type": "CSSProperties",
973
+ "required": false,
974
+ "description": "Inline styles applied to the rendered element.",
975
+ "from": "@types/react"
976
+ }
977
+ ]
978
+ },
979
+ {
980
+ "name": "ComboboxPositioner",
981
+ "props": [
982
+ {
983
+ "name": "asChild",
984
+ "type": "boolean",
985
+ "required": false,
986
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
987
+ "from": "@ark-ui/react"
988
+ },
989
+ {
990
+ "name": "children",
991
+ "type": "ReactNode",
992
+ "required": false,
993
+ "description": "Content rendered inside the part.",
994
+ "from": "@types/react"
995
+ },
996
+ {
997
+ "name": "className",
998
+ "type": "string",
999
+ "required": false,
1000
+ "description": "Extra classes merged into the part's own classes with `cn`.",
1001
+ "from": "@types/react"
1002
+ },
1003
+ {
1004
+ "name": "style",
1005
+ "type": "CSSProperties",
1006
+ "required": false,
1007
+ "description": "Inline styles applied to the rendered element.",
1008
+ "from": "@types/react"
1009
+ }
1010
+ ]
1011
+ },
1012
+ {
1013
+ "name": "ComboboxRootLabel",
1014
+ "props": [
1015
+ {
1016
+ "name": "asChild",
1017
+ "type": "boolean",
1018
+ "required": false,
1019
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
1020
+ "from": "@ark-ui/react"
1021
+ },
1022
+ {
1023
+ "name": "children",
1024
+ "type": "ReactNode",
1025
+ "required": false,
1026
+ "description": "Content rendered inside the part.",
1027
+ "from": "@types/react"
1028
+ },
1029
+ {
1030
+ "name": "className",
1031
+ "type": "string",
1032
+ "required": false,
1033
+ "description": "Extra classes merged into the part's own classes with `cn`.",
1034
+ "from": "@types/react"
1035
+ },
1036
+ {
1037
+ "name": "style",
1038
+ "type": "CSSProperties",
1039
+ "required": false,
1040
+ "description": "Inline styles applied to the rendered element.",
1041
+ "from": "@types/react"
1042
+ }
1043
+ ]
1044
+ },
1045
+ {
1046
+ "name": "ComboboxSeparator",
1047
+ "props": [
1048
+ {
1049
+ "name": "children",
1050
+ "type": "ReactNode",
1051
+ "required": false,
1052
+ "description": "Content rendered inside the part.",
1053
+ "from": "@types/react"
1054
+ },
1055
+ {
1056
+ "name": "className",
1057
+ "type": "string",
1058
+ "required": false,
1059
+ "description": "Extra classes merged into the part's own classes with `cn`.",
1060
+ "from": "@types/react"
1061
+ },
1062
+ {
1063
+ "name": "style",
1064
+ "type": "CSSProperties",
1065
+ "required": false,
1066
+ "description": "Inline styles applied to the rendered element.",
1067
+ "from": "@types/react"
1068
+ }
1069
+ ]
1070
+ },
1071
+ {
1072
+ "name": "ComboboxTrigger",
1073
+ "props": [
1074
+ {
1075
+ "name": "asChild",
1076
+ "type": "boolean",
1077
+ "required": false,
1078
+ "description": "Use the provided child element as the default rendered element, combining their props and behavior.",
1079
+ "from": "@ark-ui/react"
1080
+ },
1081
+ {
1082
+ "name": "children",
1083
+ "type": "ReactNode",
1084
+ "required": false,
1085
+ "description": "Content rendered inside the part.",
1086
+ "from": "@types/react"
1087
+ },
1088
+ {
1089
+ "name": "className",
1090
+ "type": "string",
1091
+ "required": false,
1092
+ "description": "Extra classes merged into the part's own classes with `cn`.",
1093
+ "from": "@types/react"
1094
+ },
1095
+ {
1096
+ "name": "focusable",
1097
+ "type": "boolean",
1098
+ "required": false,
1099
+ "description": "Whether the trigger is focusable",
1100
+ "from": "@zag-js/combobox"
1101
+ },
1102
+ {
1103
+ "name": "style",
1104
+ "type": "CSSProperties",
1105
+ "required": false,
1106
+ "description": "Inline styles applied to the rendered element.",
1107
+ "from": "@types/react"
1108
+ }
1109
+ ]
1110
+ },
1111
+ {
1112
+ "name": "ComboboxValue",
1113
+ "props": [
1114
+ {
1115
+ "name": "placeholder",
1116
+ "type": "ReactNode",
1117
+ "required": false,
1118
+ "description": "Text shown while there is no value.",
1119
+ "from": "arkcn"
1120
+ },
1121
+ {
1122
+ "name": "children",
1123
+ "type": "ReactNode",
1124
+ "required": false,
1125
+ "description": "Content rendered inside the part.",
1126
+ "from": "@types/react"
1127
+ },
1128
+ {
1129
+ "name": "className",
1130
+ "type": "string",
1131
+ "required": false,
1132
+ "description": "Extra classes merged into the part's own classes with `cn`.",
1133
+ "from": "@types/react"
1134
+ },
1135
+ {
1136
+ "name": "style",
1137
+ "type": "CSSProperties",
1138
+ "required": false,
1139
+ "description": "Inline styles applied to the rendered element.",
1140
+ "from": "@types/react"
1141
+ }
1142
+ ]
1143
+ },
1144
+ {
1145
+ "name": "ComboboxItemContext",
1146
+ "props": [
1147
+ {
1148
+ "name": "children",
1149
+ "type": "(context: UseComboboxItemContext) => ReactNode",
1150
+ "required": true,
1151
+ "description": "Content rendered inside the part.",
1152
+ "from": "@ark-ui/react"
1153
+ }
1154
+ ]
1155
+ }
1156
+ ],
35
1157
  "dependencies": {
36
1158
  "@ark-ui/react": "^5.39.1",
37
1159
  "lucide-react": "^1.41.0"
@@ -44,7 +1166,7 @@
44
1166
  "files": [
45
1167
  {
46
1168
  "path": "components/ui/combobox.tsx",
47
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Combobox as ComboboxPrimitive,\n Portal as PortalPrimitive,\n createListCollection,\n useComboboxContext,\n useFilter,\n useListCollection,\n type CollectionItem,\n type ListCollection,\n} from \"@ark-ui/react\"\nimport { cn } from \"@/lib/utils\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { InputGroup, InputGroupAddon, InputGroupTrigger, InputGroupInput } from \"@/components/ui/input-group\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\n\nfunction Combobox<T extends CollectionItem>({\n positioning,\n anchor,\n lazyMount = true,\n unmountOnExit = true,\n ...props\n}: React.ComponentProps<typeof ComboboxPrimitive.Root<T>> & {\n /** Anchor the popup to another element, e.g. a `ComboboxChips` container. */\n anchor?: React.RefObject<HTMLElement | null>\n}) {\n return (\n <ComboboxPrimitive.Root\n data-slot=\"combobox\"\n positioning={{\n placement: \"bottom-start\",\n gutter: 6,\n sameWidth: true,\n ...(anchor ? { getAnchorElement: () => anchor.current } : {}),\n ...positioning,\n }}\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n {...props}\n />\n )\n}\n\nfunction ComboboxContext({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.Context>) {\n return <ComboboxPrimitive.Context {...props} />\n}\n\nfunction ComboboxRootLabel({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Label>) {\n return (\n <ComboboxPrimitive.Label\n data-slot=\"combobox-root-label\"\n className={cn(\"text-sm font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxControl({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.Control>) {\n return <ComboboxPrimitive.Control data-slot=\"combobox-control\" {...props} />\n}\n\n/**\n * Ark has no value-text part for Combobox. Renders the selected items as\n * text, or `placeholder` when nothing is selected.\n */\nfunction ComboboxValue({\n placeholder,\n children,\n ...props\n}: React.ComponentProps<\"span\"> & { placeholder?: React.ReactNode }) {\n const combobox = useComboboxContext()\n return (\n <span data-slot=\"combobox-value\" data-placeholder-shown={combobox.hasSelectedItems ? undefined : \"\"} {...props}>\n {children ?? (combobox.hasSelectedItems ? combobox.valueAsString : placeholder)}\n </span>\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Trigger>, \"id\">) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ClearTrigger>) {\n const combobox = useComboboxContext()\n // Match Base UI: unmount when there is nothing to clear, so the trigger\n // button (hidden via `has-data-[slot=combobox-clear]`) shows again.\n if (!combobox.hasSelectedItems && !combobox.inputValue) return null\n return (\n <ComboboxPrimitive.ClearTrigger data-slot=\"combobox-clear\" className={cn(className)} asChild {...props}>\n <InputGroupTrigger variant=\"ghost\" size=\"icon-xs\">\n <XIcon className=\"pointer-events-none\" />\n </InputGroupTrigger>\n </ComboboxPrimitive.ClearTrigger>\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Input>, \"id\"> & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <ComboboxPrimitive.Control asChild>\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input asChild disabled={disabled} {...props}>\n <InputGroupInput />\n </ComboboxPrimitive.Input>\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupTrigger\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-trigger\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupTrigger>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n </ComboboxPrimitive.Control>\n )\n}\n\nfunction ComboboxPositioner({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Positioner>) {\n return (\n <ComboboxPrimitive.Positioner\n data-slot=\"combobox-positioner\"\n className={cn(\"isolate [--z-index:50]\", className)}\n {...props}\n />\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxContent({ className, ...props }: Omit<React.ComponentProps<typeof ComboboxPrimitive.Content>, \"id\">) {\n return (\n <PortalPrimitive>\n <ComboboxPositioner>\n <ComboboxPrimitive.Content\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content relative z-50 max-h-(--available-height) w-(--reference-width) max-w-(--available-width) origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </ComboboxPositioner>\n </PortalPrimitive>\n )\n}\n\nfunction ComboboxList({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.List>) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n item,\n value,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Item>, \"item\"> & {\n /** The collection item. Falls back to `value` for string collections. */\n item?: CollectionItem\n value?: string\n}) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n item={item ?? value}\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxItemText({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemText>) {\n return <ComboboxPrimitive.ItemText data-slot=\"combobox-item-text\" {...props} />\n}\n\nfunction ComboboxItemIndicator({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemIndicator>) {\n return (\n <ComboboxPrimitive.ItemIndicator\n data-slot=\"combobox-item-indicator\"\n className={cn(\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemGroup>) {\n return <ComboboxPrimitive.ItemGroup data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemGroupLabel>) {\n return (\n <ComboboxPrimitive.ItemGroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/**\n * Renders every item in the root's collection through a render function.\n * Ark has no Collection part; this reads the collection from context.\n */\nfunction ComboboxCollection<T extends CollectionItem = CollectionItem>({\n children,\n}: {\n children: (item: T, index: number) => React.ReactNode\n}) {\n const combobox = useComboboxContext()\n const items = combobox.collection.items as T[]\n return (\n <React.Fragment>\n {items.map((item, index) => (\n <React.Fragment key={combobox.collection.getItemValue(item) ?? index}>{children(item, index)}</React.Fragment>\n ))}\n </React.Fragment>\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Empty>) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/**\n * Chips for `multiple` comboboxes. Ark has no chip parts; these read the\n * selected values from context and remove them via `clearValue`.\n */\nfunction ComboboxChips({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Control>) {\n return (\n <ComboboxPrimitive.Control\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors has-focus-visible:border-ring has-focus-visible:ring-3 has-focus-visible:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n value,\n showRemove = true,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** The selected value this chip represents. */\n value: string\n showRemove?: boolean\n}) {\n const combobox = useComboboxContext()\n return (\n <div\n data-slot=\"combobox-chip\"\n data-value={value}\n className={cn(\n \"flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n data-slot=\"combobox-chip-remove\"\n aria-label={`Remove ${value}`}\n disabled={combobox.disabled}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n onClick={() => combobox.clearValue(value)}\n >\n <XIcon className=\"pointer-events-none\" />\n </Button>\n )}\n </div>\n )\n}\n\nfunction ComboboxChipsInput({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Input>) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\n/** Render-prop access to one item's state (`{ selected, highlighted, disabled, ... }`). */\nfunction ComboboxItemContext({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemContext>) {\n return <ComboboxPrimitive.ItemContext {...props} />\n}\n\nexport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxClear,\n ComboboxCollection,\n ComboboxContent,\n ComboboxContext,\n ComboboxControl,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemIndicator,\n ComboboxItemText,\n ComboboxLabel,\n ComboboxList,\n ComboboxPositioner,\n ComboboxRootLabel,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n createListCollection,\n useComboboxAnchor,\n useFilter,\n useListCollection,\n type CollectionItem,\n type ListCollection,\n ComboboxItemContext,\n}\n"
1169
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Combobox as ComboboxPrimitive,\n Portal as PortalPrimitive,\n createListCollection,\n useComboboxContext,\n useFilter,\n useListCollection,\n type CollectionItem,\n type ListCollection,\n} from \"@ark-ui/react\"\nimport { cn } from \"@/lib/utils\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { InputGroup, InputGroupAddon, InputGroupTrigger, InputGroupInput } from \"@/components/ui/input-group\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\n\nfunction Combobox<T extends CollectionItem>({\n positioning,\n anchor,\n lazyMount = true,\n unmountOnExit = true,\n ...props\n}: React.ComponentProps<typeof ComboboxPrimitive.Root<T>> & {\n /** Anchor the popup to another element, e.g. a `ComboboxChips` container. */\n anchor?: React.RefObject<HTMLElement | null>\n}) {\n return (\n <ComboboxPrimitive.Root\n data-slot=\"combobox\"\n positioning={{\n placement: \"bottom-start\",\n gutter: 6,\n sameWidth: true,\n ...(anchor ? { getAnchorElement: () => anchor.current } : {}),\n ...positioning,\n }}\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n {...props}\n />\n )\n}\n\nfunction ComboboxContext({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.Context>) {\n return <ComboboxPrimitive.Context {...props} />\n}\n\nfunction ComboboxRootLabel({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Label>) {\n return (\n <ComboboxPrimitive.Label\n data-slot=\"combobox-root-label\"\n className={cn(\"text-sm font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxControl({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.Control>) {\n return <ComboboxPrimitive.Control data-slot=\"combobox-control\" {...props} />\n}\n\n/**\n * Ark has no value-text part for Combobox. Renders the selected items as\n * text, or `placeholder` when nothing is selected.\n */\nfunction ComboboxValue({\n placeholder,\n children,\n ...props\n}: React.ComponentProps<\"span\"> & { placeholder?: React.ReactNode }) {\n const combobox = useComboboxContext()\n return (\n <span data-slot=\"combobox-value\" data-placeholder-shown={combobox.hasSelectedItems ? undefined : \"\"} {...props}>\n {children ?? (combobox.hasSelectedItems ? combobox.valueAsString : placeholder)}\n </span>\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Trigger>, \"id\">) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ClearTrigger>) {\n const combobox = useComboboxContext()\n // Match Base UI: unmount when there is nothing to clear, so the trigger\n // button (hidden via `has-data-[slot=combobox-clear]`) shows again.\n if (!combobox.hasSelectedItems && !combobox.inputValue) return null\n return (\n <ComboboxPrimitive.ClearTrigger data-slot=\"combobox-clear\" className={cn(className)} asChild {...props}>\n <InputGroupTrigger variant=\"ghost\" size=\"icon-xs\">\n <XIcon className=\"pointer-events-none\" />\n </InputGroupTrigger>\n </ComboboxPrimitive.ClearTrigger>\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Input>, \"id\"> & {\n /** Render the open/close trigger in the control. */\n showTrigger?: boolean\n /** Render the clear button in the control. */\n showClear?: boolean\n}) {\n return (\n <ComboboxPrimitive.Control asChild>\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input asChild disabled={disabled} {...props}>\n <InputGroupInput />\n </ComboboxPrimitive.Input>\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupTrigger\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-trigger\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupTrigger>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n </ComboboxPrimitive.Control>\n )\n}\n\nfunction ComboboxPositioner({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Positioner>) {\n return (\n <ComboboxPrimitive.Positioner\n data-slot=\"combobox-positioner\"\n className={cn(\"isolate [--z-index:50]\", className)}\n {...props}\n />\n )\n}\n\n/** `id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working. */\nfunction ComboboxContent({ className, ...props }: Omit<React.ComponentProps<typeof ComboboxPrimitive.Content>, \"id\">) {\n return (\n <PortalPrimitive>\n <ComboboxPositioner>\n <ComboboxPrimitive.Content\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content relative z-50 max-h-(--available-height) w-(--reference-width) max-w-(--available-width) origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </ComboboxPositioner>\n </PortalPrimitive>\n )\n}\n\nfunction ComboboxList({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.List>) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n item,\n value,\n ...props\n}: Omit<React.ComponentProps<typeof ComboboxPrimitive.Item>, \"item\"> & {\n /** The collection item. Falls back to `value` for string collections. */\n item?: CollectionItem\n value?: string\n}) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n item={item ?? value}\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxItemText({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemText>) {\n return <ComboboxPrimitive.ItemText data-slot=\"combobox-item-text\" {...props} />\n}\n\nfunction ComboboxItemIndicator({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemIndicator>) {\n return (\n <ComboboxPrimitive.ItemIndicator\n data-slot=\"combobox-item-indicator\"\n className={cn(\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemGroup>) {\n return <ComboboxPrimitive.ItemGroup data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemGroupLabel>) {\n return (\n <ComboboxPrimitive.ItemGroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/**\n * Renders every item in the root's collection through a render function.\n * Ark has no Collection part; this reads the collection from context.\n */\nfunction ComboboxCollection<T extends CollectionItem = CollectionItem>({\n children,\n}: {\n children: (item: T, index: number) => React.ReactNode\n}) {\n const combobox = useComboboxContext()\n const items = combobox.collection.items as T[]\n return (\n <React.Fragment>\n {items.map((item, index) => (\n <React.Fragment key={combobox.collection.getItemValue(item) ?? index}>{children(item, index)}</React.Fragment>\n ))}\n </React.Fragment>\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Empty>) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/**\n * Chips for `multiple` comboboxes. Ark has no chip parts; these read the\n * selected values from context and remove them via `clearValue`.\n */\nfunction ComboboxChips({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Control>) {\n return (\n <ComboboxPrimitive.Control\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors has-focus-visible:border-ring has-focus-visible:ring-3 has-focus-visible:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n value,\n showRemove = true,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** The selected value this chip represents. */\n value: string\n /** Render the remove button on the chip. */\n showRemove?: boolean\n}) {\n const combobox = useComboboxContext()\n return (\n <div\n data-slot=\"combobox-chip\"\n data-value={value}\n className={cn(\n \"flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n data-slot=\"combobox-chip-remove\"\n aria-label={`Remove ${value}`}\n disabled={combobox.disabled}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n onClick={() => combobox.clearValue(value)}\n >\n <XIcon className=\"pointer-events-none\" />\n </Button>\n )}\n </div>\n )\n}\n\nfunction ComboboxChipsInput({ className, ...props }: React.ComponentProps<typeof ComboboxPrimitive.Input>) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\n/** Render-prop access to one item's state (`{ selected, highlighted, disabled, ... }`). */\nfunction ComboboxItemContext({ ...props }: React.ComponentProps<typeof ComboboxPrimitive.ItemContext>) {\n return <ComboboxPrimitive.ItemContext {...props} />\n}\n\nexport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxClear,\n ComboboxCollection,\n ComboboxContent,\n ComboboxContext,\n ComboboxControl,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemIndicator,\n ComboboxItemText,\n ComboboxLabel,\n ComboboxList,\n ComboboxPositioner,\n ComboboxRootLabel,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n createListCollection,\n useComboboxAnchor,\n useFilter,\n useListCollection,\n type CollectionItem,\n type ListCollection,\n ComboboxItemContext,\n}\n"
48
1170
  }
49
1171
  ]
50
1172
  }