@multicomma/arkcn 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 (237) hide show
  1. package/README.md +78 -0
  2. package/bin/arkcn.mjs +78 -0
  3. package/cli/commands.mjs +251 -0
  4. package/cli/project.mjs +168 -0
  5. package/cli/registry.mjs +50 -0
  6. package/cli/ui.mjs +46 -0
  7. package/mcp/server.mjs +149 -0
  8. package/package.json +201 -0
  9. package/registry/base.css +680 -0
  10. package/registry/index.json +1833 -0
  11. package/registry/items/accordion.json +18 -0
  12. package/registry/items/activity-feed.json +18 -0
  13. package/registry/items/alert-dialog.json +18 -0
  14. package/registry/items/alert.json +17 -0
  15. package/registry/items/angle-slider.json +17 -0
  16. package/registry/items/app-shell.json +28 -0
  17. package/registry/items/aspect-ratio.json +13 -0
  18. package/registry/items/attachment.json +19 -0
  19. package/registry/items/avatar.json +17 -0
  20. package/registry/items/badge.json +18 -0
  21. package/registry/items/breadcrumb.json +18 -0
  22. package/registry/items/bubble.json +18 -0
  23. package/registry/items/button-group.json +19 -0
  24. package/registry/items/button.json +18 -0
  25. package/registry/items/calendar.json +19 -0
  26. package/registry/items/canvas.json +24 -0
  27. package/registry/items/card.json +15 -0
  28. package/registry/items/carousel.json +19 -0
  29. package/registry/items/cascader.json +23 -0
  30. package/registry/items/chart.json +17 -0
  31. package/registry/items/chat.json +23 -0
  32. package/registry/items/checkbox.json +18 -0
  33. package/registry/items/clipboard.json +19 -0
  34. package/registry/items/collapsible.json +15 -0
  35. package/registry/items/color-picker.json +19 -0
  36. package/registry/items/combobox.json +20 -0
  37. package/registry/items/command.json +21 -0
  38. package/registry/items/comment-thread.json +25 -0
  39. package/registry/items/context-menu.json +18 -0
  40. package/registry/items/controllable.json +14 -0
  41. package/registry/items/data-grid.json +24 -0
  42. package/registry/items/data-table-adapter.json +14 -0
  43. package/registry/items/data-table.json +32 -0
  44. package/registry/items/date-input.json +17 -0
  45. package/registry/items/dialog.json +19 -0
  46. package/registry/items/direction.json +13 -0
  47. package/registry/items/drag-preview.json +16 -0
  48. package/registry/items/drawer.json +18 -0
  49. package/registry/items/dropdown-menu.json +18 -0
  50. package/registry/items/editable.json +17 -0
  51. package/registry/items/empty.json +17 -0
  52. package/registry/items/field.json +19 -0
  53. package/registry/items/file-upload.json +19 -0
  54. package/registry/items/floating-panel.json +19 -0
  55. package/registry/items/floating-toolbar.json +16 -0
  56. package/registry/items/form.json +14 -0
  57. package/registry/items/format.json +15 -0
  58. package/registry/items/gantt.json +22 -0
  59. package/registry/items/history.json +14 -0
  60. package/registry/items/hotkeys.json +18 -0
  61. package/registry/items/hover-card.json +17 -0
  62. package/registry/items/image-cropper.json +17 -0
  63. package/registry/items/input-group.json +20 -0
  64. package/registry/items/input-otp.json +18 -0
  65. package/registry/items/input.json +15 -0
  66. package/registry/items/item.json +19 -0
  67. package/registry/items/json-tree-view.json +17 -0
  68. package/registry/items/kanban.json +26 -0
  69. package/registry/items/kbd.json +15 -0
  70. package/registry/items/label.json +15 -0
  71. package/registry/items/live-region.json +16 -0
  72. package/registry/items/marker.json +18 -0
  73. package/registry/items/marquee.json +17 -0
  74. package/registry/items/menubar.json +19 -0
  75. package/registry/items/message.json +15 -0
  76. package/registry/items/navigation-menu.json +19 -0
  77. package/registry/items/node-graph.json +22 -0
  78. package/registry/items/number-input.json +18 -0
  79. package/registry/items/pagination.json +18 -0
  80. package/registry/items/password-input.json +18 -0
  81. package/registry/items/popconfirm.json +20 -0
  82. package/registry/items/popover.json +18 -0
  83. package/registry/items/progress.json +17 -0
  84. package/registry/items/qr-code.json +17 -0
  85. package/registry/items/query-builder.json +23 -0
  86. package/registry/items/radio-group.json +17 -0
  87. package/registry/items/rating-group.json +18 -0
  88. package/registry/items/resizable.json +17 -0
  89. package/registry/items/rich-text-editor.json +37 -0
  90. package/registry/items/row-layout.json +15 -0
  91. package/registry/items/scheduler.json +23 -0
  92. package/registry/items/scroll-area.json +17 -0
  93. package/registry/items/segment-group.json +17 -0
  94. package/registry/items/select.json +19 -0
  95. package/registry/items/separator.json +15 -0
  96. package/registry/items/sheet.json +19 -0
  97. package/registry/items/sidebar.json +27 -0
  98. package/registry/items/signature-pad.json +19 -0
  99. package/registry/items/skeleton.json +15 -0
  100. package/registry/items/slider.json +17 -0
  101. package/registry/items/sonner.json +17 -0
  102. package/registry/items/spinner.json +17 -0
  103. package/registry/items/steps.json +19 -0
  104. package/registry/items/swap.json +17 -0
  105. package/registry/items/switch.json +17 -0
  106. package/registry/items/table.json +16 -0
  107. package/registry/items/tabs.json +18 -0
  108. package/registry/items/tags-input.json +18 -0
  109. package/registry/items/textarea.json +15 -0
  110. package/registry/items/time.json +14 -0
  111. package/registry/items/timer.json +18 -0
  112. package/registry/items/toc.json +17 -0
  113. package/registry/items/toggle-group.json +19 -0
  114. package/registry/items/toggle.json +18 -0
  115. package/registry/items/tooltip.json +17 -0
  116. package/registry/items/tour.json +19 -0
  117. package/registry/items/transfer-list.json +24 -0
  118. package/registry/items/tree-select.json +24 -0
  119. package/registry/items/tree-view.json +18 -0
  120. package/registry/items/use-mobile.json +13 -0
  121. package/registry/items/utils.json +17 -0
  122. package/registry/items/virtual-list.json +16 -0
  123. package/src/components/ui/accordion.tsx +111 -0
  124. package/src/components/ui/activity-feed.tsx +228 -0
  125. package/src/components/ui/alert-dialog.tsx +204 -0
  126. package/src/components/ui/alert.tsx +55 -0
  127. package/src/components/ui/angle-slider.tsx +117 -0
  128. package/src/components/ui/app-shell.tsx +985 -0
  129. package/src/components/ui/aspect-ratio.tsx +35 -0
  130. package/src/components/ui/attachment.tsx +193 -0
  131. package/src/components/ui/avatar.tsx +94 -0
  132. package/src/components/ui/badge.tsx +45 -0
  133. package/src/components/ui/breadcrumb.tsx +93 -0
  134. package/src/components/ui/bubble.tsx +119 -0
  135. package/src/components/ui/button-group.tsx +79 -0
  136. package/src/components/ui/button.tsx +65 -0
  137. package/src/components/ui/calendar.tsx +172 -0
  138. package/src/components/ui/canvas.tsx +723 -0
  139. package/src/components/ui/card.tsx +69 -0
  140. package/src/components/ui/carousel.tsx +228 -0
  141. package/src/components/ui/cascader.tsx +754 -0
  142. package/src/components/ui/chart.tsx +303 -0
  143. package/src/components/ui/chat.tsx +544 -0
  144. package/src/components/ui/checkbox.tsx +94 -0
  145. package/src/components/ui/clipboard.tsx +94 -0
  146. package/src/components/ui/collapsible.tsx +32 -0
  147. package/src/components/ui/color-picker.tsx +441 -0
  148. package/src/components/ui/combobox.tsx +400 -0
  149. package/src/components/ui/command.tsx +292 -0
  150. package/src/components/ui/comment-thread.tsx +923 -0
  151. package/src/components/ui/context-menu.tsx +331 -0
  152. package/src/components/ui/data-grid.tsx +1227 -0
  153. package/src/components/ui/data-table.tsx +993 -0
  154. package/src/components/ui/date-input.tsx +103 -0
  155. package/src/components/ui/dialog.tsx +159 -0
  156. package/src/components/ui/direction.tsx +32 -0
  157. package/src/components/ui/drawer.tsx +200 -0
  158. package/src/components/ui/dropdown-menu.tsx +329 -0
  159. package/src/components/ui/editable.tsx +90 -0
  160. package/src/components/ui/empty.tsx +86 -0
  161. package/src/components/ui/field.tsx +218 -0
  162. package/src/components/ui/file-upload.tsx +204 -0
  163. package/src/components/ui/floating-panel.tsx +199 -0
  164. package/src/components/ui/floating-toolbar.tsx +79 -0
  165. package/src/components/ui/format.tsx +22 -0
  166. package/src/components/ui/gantt.tsx +950 -0
  167. package/src/components/ui/hotkeys.tsx +340 -0
  168. package/src/components/ui/hover-card.tsx +83 -0
  169. package/src/components/ui/image-cropper.tsx +100 -0
  170. package/src/components/ui/input-group.tsx +133 -0
  171. package/src/components/ui/input-otp.tsx +82 -0
  172. package/src/components/ui/input.tsx +18 -0
  173. package/src/components/ui/item.tsx +174 -0
  174. package/src/components/ui/json-tree-view.tsx +37 -0
  175. package/src/components/ui/kanban.tsx +884 -0
  176. package/src/components/ui/kbd.tsx +20 -0
  177. package/src/components/ui/label.tsx +30 -0
  178. package/src/components/ui/live-region.tsx +54 -0
  179. package/src/components/ui/marker.tsx +66 -0
  180. package/src/components/ui/marquee.tsx +61 -0
  181. package/src/components/ui/menubar.tsx +456 -0
  182. package/src/components/ui/message.tsx +74 -0
  183. package/src/components/ui/navigation-menu.tsx +202 -0
  184. package/src/components/ui/node-graph.tsx +1723 -0
  185. package/src/components/ui/number-input.tsx +148 -0
  186. package/src/components/ui/pagination.tsx +88 -0
  187. package/src/components/ui/password-input.tsx +104 -0
  188. package/src/components/ui/popconfirm.tsx +149 -0
  189. package/src/components/ui/popover.tsx +126 -0
  190. package/src/components/ui/progress.tsx +114 -0
  191. package/src/components/ui/qr-code.tsx +51 -0
  192. package/src/components/ui/query-builder.tsx +938 -0
  193. package/src/components/ui/radio-group.tsx +108 -0
  194. package/src/components/ui/rating-group.tsx +91 -0
  195. package/src/components/ui/resizable.tsx +41 -0
  196. package/src/components/ui/rich-text-editor.tsx +845 -0
  197. package/src/components/ui/scheduler.tsx +1164 -0
  198. package/src/components/ui/scroll-area.tsx +82 -0
  199. package/src/components/ui/segment-group.tsx +95 -0
  200. package/src/components/ui/select.tsx +354 -0
  201. package/src/components/ui/separator.tsx +32 -0
  202. package/src/components/ui/sheet.tsx +130 -0
  203. package/src/components/ui/sidebar.tsx +665 -0
  204. package/src/components/ui/signature-pad.tsx +112 -0
  205. package/src/components/ui/skeleton.tsx +7 -0
  206. package/src/components/ui/slider.tsx +183 -0
  207. package/src/components/ui/sonner.tsx +37 -0
  208. package/src/components/ui/spinner.tsx +16 -0
  209. package/src/components/ui/steps.tsx +152 -0
  210. package/src/components/ui/swap.tsx +33 -0
  211. package/src/components/ui/switch.tsx +83 -0
  212. package/src/components/ui/table.tsx +72 -0
  213. package/src/components/ui/tabs.tsx +100 -0
  214. package/src/components/ui/tags-input.tsx +153 -0
  215. package/src/components/ui/textarea.tsx +17 -0
  216. package/src/components/ui/timer.tsx +67 -0
  217. package/src/components/ui/toc.tsx +64 -0
  218. package/src/components/ui/toggle-group.tsx +89 -0
  219. package/src/components/ui/toggle.tsx +46 -0
  220. package/src/components/ui/tooltip.tsx +113 -0
  221. package/src/components/ui/tour.tsx +168 -0
  222. package/src/components/ui/transfer-list.tsx +700 -0
  223. package/src/components/ui/tree-select.tsx +638 -0
  224. package/src/components/ui/tree-view.tsx +217 -0
  225. package/src/components/ui/virtual-list.tsx +343 -0
  226. package/src/hooks/use-mobile.ts +19 -0
  227. package/src/lib/controllable.ts +31 -0
  228. package/src/lib/data-table-adapter.ts +67 -0
  229. package/src/lib/drag-preview.ts +39 -0
  230. package/src/lib/form.ts +39 -0
  231. package/src/lib/history.ts +55 -0
  232. package/src/lib/row-layout.ts +81 -0
  233. package/src/lib/table.ts +483 -0
  234. package/src/lib/time.ts +37 -0
  235. package/src/lib/utils.ts +6 -0
  236. package/src/styles/arkcn.css +764 -0
  237. package/src/styles/index.css +3 -0
@@ -0,0 +1,1833 @@
1
+ {
2
+ "name": "@multicomma/arkcn",
3
+ "version": "0.1.0",
4
+ "baseDependencies": {
5
+ "react": "^19.2.8",
6
+ "react-dom": "^19.2.8",
7
+ "@ark-ui/react": "^5.39.1",
8
+ "tailwindcss": "^4.3.3",
9
+ "lucide-react": "^1.41.0",
10
+ "clsx": "^2.1.1",
11
+ "tailwind-merge": "^3.6.0",
12
+ "class-variance-authority": "^0.7.1",
13
+ "tw-animate-css": "^1.4.0",
14
+ "@tailwindcss/typography": "^0.5.20"
15
+ },
16
+ "items": [
17
+ {
18
+ "name": "accordion",
19
+ "type": "ui",
20
+ "description": "",
21
+ "dependencies": [
22
+ "@ark-ui/react",
23
+ "lucide-react"
24
+ ],
25
+ "registryDependencies": [
26
+ "utils"
27
+ ],
28
+ "files": [
29
+ "components/ui/accordion.tsx"
30
+ ],
31
+ "css": false
32
+ },
33
+ {
34
+ "name": "activity-feed",
35
+ "type": "ui",
36
+ "description": "ActivityFeed — a compositional, data-agnostic timeline of events. The consumer maps its events to items; the feed adds the connector line, the marker column, relative times and the WAI-ARIA feed pattern (articles are focusable; PageUp/PageD",
37
+ "dependencies": [],
38
+ "registryDependencies": [
39
+ "button",
40
+ "time",
41
+ "utils"
42
+ ],
43
+ "files": [
44
+ "components/ui/activity-feed.tsx"
45
+ ],
46
+ "css": false
47
+ },
48
+ {
49
+ "name": "alert-dialog",
50
+ "type": "ui",
51
+ "description": "",
52
+ "dependencies": [
53
+ "@ark-ui/react"
54
+ ],
55
+ "registryDependencies": [
56
+ "button",
57
+ "utils"
58
+ ],
59
+ "files": [
60
+ "components/ui/alert-dialog.tsx"
61
+ ],
62
+ "css": false
63
+ },
64
+ {
65
+ "name": "alert",
66
+ "type": "ui",
67
+ "description": "",
68
+ "dependencies": [
69
+ "class-variance-authority"
70
+ ],
71
+ "registryDependencies": [
72
+ "utils"
73
+ ],
74
+ "files": [
75
+ "components/ui/alert.tsx"
76
+ ],
77
+ "css": false
78
+ },
79
+ {
80
+ "name": "angle-slider",
81
+ "type": "ui",
82
+ "description": "",
83
+ "dependencies": [
84
+ "@ark-ui/react"
85
+ ],
86
+ "registryDependencies": [
87
+ "utils"
88
+ ],
89
+ "files": [
90
+ "components/ui/angle-slider.tsx"
91
+ ],
92
+ "css": false
93
+ },
94
+ {
95
+ "name": "app-shell",
96
+ "type": "ui",
97
+ "description": "`src/components/ui/app-shell.tsx` is a compositional, router-agnostic shell built on `sidebar.tsx` (shadcn-admin layout): `AppShell` (context: sidebar variant/collapsible, search open state, `searchShortcut` for cmd/ctrl+K), `AppShellSideba",
98
+ "dependencies": [
99
+ "lucide-react"
100
+ ],
101
+ "registryDependencies": [
102
+ "avatar",
103
+ "badge",
104
+ "button",
105
+ "collapsible",
106
+ "command",
107
+ "dropdown-menu",
108
+ "kbd",
109
+ "popover",
110
+ "separator",
111
+ "sidebar",
112
+ "utils"
113
+ ],
114
+ "files": [
115
+ "components/ui/app-shell.tsx"
116
+ ],
117
+ "css": false
118
+ },
119
+ {
120
+ "name": "aspect-ratio",
121
+ "type": "ui",
122
+ "description": "Ark UI has no AspectRatio primitive. This mirrors Radix's: a wrapper with a percentage padding-bottom, and an absolutely positioned content box.",
123
+ "dependencies": [],
124
+ "registryDependencies": [],
125
+ "files": [
126
+ "components/ui/aspect-ratio.tsx"
127
+ ],
128
+ "css": false
129
+ },
130
+ {
131
+ "name": "attachment",
132
+ "type": "ui",
133
+ "description": "",
134
+ "dependencies": [
135
+ "@ark-ui/react",
136
+ "class-variance-authority"
137
+ ],
138
+ "registryDependencies": [
139
+ "button",
140
+ "utils"
141
+ ],
142
+ "files": [
143
+ "components/ui/attachment.tsx"
144
+ ],
145
+ "css": false
146
+ },
147
+ {
148
+ "name": "avatar",
149
+ "type": "ui",
150
+ "description": "",
151
+ "dependencies": [
152
+ "@ark-ui/react"
153
+ ],
154
+ "registryDependencies": [
155
+ "utils"
156
+ ],
157
+ "files": [
158
+ "components/ui/avatar.tsx"
159
+ ],
160
+ "css": false
161
+ },
162
+ {
163
+ "name": "badge",
164
+ "type": "ui",
165
+ "description": "",
166
+ "dependencies": [
167
+ "@ark-ui/react",
168
+ "class-variance-authority"
169
+ ],
170
+ "registryDependencies": [
171
+ "utils"
172
+ ],
173
+ "files": [
174
+ "components/ui/badge.tsx"
175
+ ],
176
+ "css": false
177
+ },
178
+ {
179
+ "name": "breadcrumb",
180
+ "type": "ui",
181
+ "description": "",
182
+ "dependencies": [
183
+ "@ark-ui/react",
184
+ "lucide-react"
185
+ ],
186
+ "registryDependencies": [
187
+ "utils"
188
+ ],
189
+ "files": [
190
+ "components/ui/breadcrumb.tsx"
191
+ ],
192
+ "css": false
193
+ },
194
+ {
195
+ "name": "bubble",
196
+ "type": "ui",
197
+ "description": "",
198
+ "dependencies": [
199
+ "@ark-ui/react",
200
+ "class-variance-authority"
201
+ ],
202
+ "registryDependencies": [
203
+ "utils"
204
+ ],
205
+ "files": [
206
+ "components/ui/bubble.tsx"
207
+ ],
208
+ "css": false
209
+ },
210
+ {
211
+ "name": "button-group",
212
+ "type": "ui",
213
+ "description": "",
214
+ "dependencies": [
215
+ "@ark-ui/react",
216
+ "class-variance-authority"
217
+ ],
218
+ "registryDependencies": [
219
+ "separator",
220
+ "utils"
221
+ ],
222
+ "files": [
223
+ "components/ui/button-group.tsx"
224
+ ],
225
+ "css": false
226
+ },
227
+ {
228
+ "name": "button",
229
+ "type": "ui",
230
+ "description": "",
231
+ "dependencies": [
232
+ "@ark-ui/react",
233
+ "class-variance-authority"
234
+ ],
235
+ "registryDependencies": [
236
+ "utils"
237
+ ],
238
+ "files": [
239
+ "components/ui/button.tsx"
240
+ ],
241
+ "css": false
242
+ },
243
+ {
244
+ "name": "calendar",
245
+ "type": "ui",
246
+ "description": "",
247
+ "dependencies": [
248
+ "lucide-react",
249
+ "react-day-picker"
250
+ ],
251
+ "registryDependencies": [
252
+ "button",
253
+ "utils"
254
+ ],
255
+ "files": [
256
+ "components/ui/calendar.tsx"
257
+ ],
258
+ "css": false
259
+ },
260
+ {
261
+ "name": "canvas",
262
+ "type": "ui",
263
+ "description": "Canvas — a compositional, data-agnostic drag-and-drop layout surface on Pragmatic drag and drop. Items come from a palette (`CanvasPaletteItem`, carrying arbitrary `data`) or are existing nodes (`CanvasNode`). Nodes are drop targets on all ",
264
+ "dependencies": [
265
+ "@ark-ui/react",
266
+ "@atlaskit/pragmatic-drag-and-drop",
267
+ "@atlaskit/pragmatic-drag-and-drop-auto-scroll",
268
+ "@atlaskit/pragmatic-drag-and-drop-hitbox",
269
+ "lucide-react"
270
+ ],
271
+ "registryDependencies": [
272
+ "drag-preview",
273
+ "live-region",
274
+ "utils"
275
+ ],
276
+ "files": [
277
+ "components/ui/canvas.tsx"
278
+ ],
279
+ "css": false
280
+ },
281
+ {
282
+ "name": "card",
283
+ "type": "ui",
284
+ "description": "",
285
+ "dependencies": [],
286
+ "registryDependencies": [
287
+ "utils"
288
+ ],
289
+ "files": [
290
+ "components/ui/card.tsx"
291
+ ],
292
+ "css": false
293
+ },
294
+ {
295
+ "name": "carousel",
296
+ "type": "ui",
297
+ "description": "",
298
+ "dependencies": [
299
+ "embla-carousel-react",
300
+ "lucide-react"
301
+ ],
302
+ "registryDependencies": [
303
+ "button",
304
+ "utils"
305
+ ],
306
+ "files": [
307
+ "components/ui/carousel.tsx"
308
+ ],
309
+ "css": false
310
+ },
311
+ {
312
+ "name": "cascader",
313
+ "type": "ui",
314
+ "description": "-------------------------------- helpers --------------------------------",
315
+ "dependencies": [
316
+ "@ark-ui/react",
317
+ "lucide-react"
318
+ ],
319
+ "registryDependencies": [
320
+ "button",
321
+ "controllable",
322
+ "input-group",
323
+ "popover",
324
+ "utils"
325
+ ],
326
+ "files": [
327
+ "components/ui/cascader.tsx"
328
+ ],
329
+ "css": false
330
+ },
331
+ {
332
+ "name": "chart",
333
+ "type": "ui",
334
+ "description": "",
335
+ "dependencies": [
336
+ "recharts"
337
+ ],
338
+ "registryDependencies": [
339
+ "utils"
340
+ ],
341
+ "files": [
342
+ "components/ui/chart.tsx"
343
+ ],
344
+ "css": false
345
+ },
346
+ {
347
+ "name": "chat",
348
+ "type": "ui",
349
+ "description": "`src/components/ui/chat.tsx` is a compositional, data-agnostic chat layout primitive (sidebar with search and conversation list, panel with header/messages/composer, empty state).",
350
+ "dependencies": [
351
+ "@ark-ui/react",
352
+ "class-variance-authority",
353
+ "lucide-react"
354
+ ],
355
+ "registryDependencies": [
356
+ "button",
357
+ "controllable",
358
+ "scroll-area",
359
+ "utils"
360
+ ],
361
+ "files": [
362
+ "components/ui/chat.tsx"
363
+ ],
364
+ "css": false
365
+ },
366
+ {
367
+ "name": "checkbox",
368
+ "type": "ui",
369
+ "description": "",
370
+ "dependencies": [
371
+ "@ark-ui/react",
372
+ "lucide-react"
373
+ ],
374
+ "registryDependencies": [
375
+ "utils"
376
+ ],
377
+ "files": [
378
+ "components/ui/checkbox.tsx"
379
+ ],
380
+ "css": false
381
+ },
382
+ {
383
+ "name": "clipboard",
384
+ "type": "ui",
385
+ "description": "",
386
+ "dependencies": [
387
+ "@ark-ui/react",
388
+ "lucide-react"
389
+ ],
390
+ "registryDependencies": [
391
+ "button",
392
+ "utils"
393
+ ],
394
+ "files": [
395
+ "components/ui/clipboard.tsx"
396
+ ],
397
+ "css": false
398
+ },
399
+ {
400
+ "name": "collapsible",
401
+ "type": "ui",
402
+ "description": "",
403
+ "dependencies": [
404
+ "@ark-ui/react"
405
+ ],
406
+ "registryDependencies": [],
407
+ "files": [
408
+ "components/ui/collapsible.tsx"
409
+ ],
410
+ "css": false
411
+ },
412
+ {
413
+ "name": "color-picker",
414
+ "type": "ui",
415
+ "description": "",
416
+ "dependencies": [
417
+ "@ark-ui/react",
418
+ "lucide-react"
419
+ ],
420
+ "registryDependencies": [
421
+ "button",
422
+ "utils"
423
+ ],
424
+ "files": [
425
+ "components/ui/color-picker.tsx"
426
+ ],
427
+ "css": false
428
+ },
429
+ {
430
+ "name": "combobox",
431
+ "type": "ui",
432
+ "description": "",
433
+ "dependencies": [
434
+ "@ark-ui/react",
435
+ "lucide-react"
436
+ ],
437
+ "registryDependencies": [
438
+ "button",
439
+ "input-group",
440
+ "utils"
441
+ ],
442
+ "files": [
443
+ "components/ui/combobox.tsx"
444
+ ],
445
+ "css": false
446
+ },
447
+ {
448
+ "name": "command",
449
+ "type": "ui",
450
+ "description": "- **Feature parity** with the shadcn original: same exported names, same props surface where Ark supports it, same visual result, same variants. - **Ark's tree wins** where the structure differs (e.g.",
451
+ "dependencies": [
452
+ "@ark-ui/react",
453
+ "lucide-react"
454
+ ],
455
+ "registryDependencies": [
456
+ "dialog",
457
+ "input-group",
458
+ "utils"
459
+ ],
460
+ "files": [
461
+ "components/ui/command.tsx"
462
+ ],
463
+ "css": false
464
+ },
465
+ {
466
+ "name": "comment-thread",
467
+ "type": "ui",
468
+ "description": "CommentThread — compositional, data-agnostic comments with replies, reactions and a mentions composer. The consumer owns the comments and the people list; the thread owns only which comment is being replied to or edited. Mentions are plain ",
469
+ "dependencies": [
470
+ "@ark-ui/react",
471
+ "lucide-react"
472
+ ],
473
+ "registryDependencies": [
474
+ "avatar",
475
+ "button",
476
+ "controllable",
477
+ "kbd",
478
+ "popover",
479
+ "time",
480
+ "utils"
481
+ ],
482
+ "files": [
483
+ "components/ui/comment-thread.tsx"
484
+ ],
485
+ "css": false
486
+ },
487
+ {
488
+ "name": "context-menu",
489
+ "type": "ui",
490
+ "description": "",
491
+ "dependencies": [
492
+ "@ark-ui/react",
493
+ "lucide-react"
494
+ ],
495
+ "registryDependencies": [
496
+ "utils"
497
+ ],
498
+ "files": [
499
+ "components/ui/context-menu.tsx"
500
+ ],
501
+ "css": false
502
+ },
503
+ {
504
+ "name": "data-grid",
505
+ "type": "ui",
506
+ "description": "`src/components/ui/data-grid.tsx` is an editable, keyboard-driven grid on the same source-agnostic `DataTableInstance` contract as the data table (`useDataTable` with a huge `pageSize` feeds it every row; `DataTable` toolbar parts can wrap ",
507
+ "dependencies": [
508
+ "@ark-ui/react",
509
+ "lucide-react"
510
+ ],
511
+ "registryDependencies": [
512
+ "checkbox",
513
+ "controllable",
514
+ "data-table-adapter",
515
+ "live-region",
516
+ "select",
517
+ "utils"
518
+ ],
519
+ "files": [
520
+ "components/ui/data-grid.tsx"
521
+ ],
522
+ "css": false
523
+ },
524
+ {
525
+ "name": "data-table",
526
+ "type": "ui",
527
+ "description": "`src/lib/table.ts` is a dependency-free headless table engine (columns, sorting, global + column filters with faceted counts, pagination, row selection, visibility).",
528
+ "dependencies": [
529
+ "lucide-react"
530
+ ],
531
+ "registryDependencies": [
532
+ "badge",
533
+ "button",
534
+ "checkbox",
535
+ "command",
536
+ "data-table-adapter",
537
+ "dropdown-menu",
538
+ "floating-toolbar",
539
+ "input",
540
+ "live-region",
541
+ "popover",
542
+ "select",
543
+ "separator",
544
+ "table",
545
+ "tooltip",
546
+ "utils"
547
+ ],
548
+ "files": [
549
+ "components/ui/data-table.tsx"
550
+ ],
551
+ "css": false
552
+ },
553
+ {
554
+ "name": "date-input",
555
+ "type": "ui",
556
+ "description": "",
557
+ "dependencies": [
558
+ "@ark-ui/react"
559
+ ],
560
+ "registryDependencies": [
561
+ "utils"
562
+ ],
563
+ "files": [
564
+ "components/ui/date-input.tsx"
565
+ ],
566
+ "css": false
567
+ },
568
+ {
569
+ "name": "dialog",
570
+ "type": "ui",
571
+ "description": "",
572
+ "dependencies": [
573
+ "@ark-ui/react",
574
+ "lucide-react"
575
+ ],
576
+ "registryDependencies": [
577
+ "button",
578
+ "utils"
579
+ ],
580
+ "files": [
581
+ "components/ui/dialog.tsx"
582
+ ],
583
+ "css": false
584
+ },
585
+ {
586
+ "name": "direction",
587
+ "type": "ui",
588
+ "description": "",
589
+ "dependencies": [],
590
+ "registryDependencies": [],
591
+ "files": [
592
+ "components/ui/direction.tsx"
593
+ ],
594
+ "css": false
595
+ },
596
+ {
597
+ "name": "drawer",
598
+ "type": "ui",
599
+ "description": "- **Feature parity** with the shadcn original: same exported names, same props surface where Ark supports it, same visual result, same variants. - **Ark's tree wins** where the structure differs (e.g.",
600
+ "dependencies": [
601
+ "@ark-ui/react"
602
+ ],
603
+ "registryDependencies": [
604
+ "utils"
605
+ ],
606
+ "files": [
607
+ "components/ui/drawer.tsx"
608
+ ],
609
+ "css": false
610
+ },
611
+ {
612
+ "name": "dropdown-menu",
613
+ "type": "ui",
614
+ "description": "",
615
+ "dependencies": [
616
+ "@ark-ui/react",
617
+ "lucide-react"
618
+ ],
619
+ "registryDependencies": [
620
+ "utils"
621
+ ],
622
+ "files": [
623
+ "components/ui/dropdown-menu.tsx"
624
+ ],
625
+ "css": false
626
+ },
627
+ {
628
+ "name": "editable",
629
+ "type": "ui",
630
+ "description": "",
631
+ "dependencies": [
632
+ "@ark-ui/react"
633
+ ],
634
+ "registryDependencies": [
635
+ "utils"
636
+ ],
637
+ "files": [
638
+ "components/ui/editable.tsx"
639
+ ],
640
+ "css": false
641
+ },
642
+ {
643
+ "name": "empty",
644
+ "type": "ui",
645
+ "description": "",
646
+ "dependencies": [
647
+ "class-variance-authority"
648
+ ],
649
+ "registryDependencies": [
650
+ "utils"
651
+ ],
652
+ "files": [
653
+ "components/ui/empty.tsx"
654
+ ],
655
+ "css": false
656
+ },
657
+ {
658
+ "name": "field",
659
+ "type": "ui",
660
+ "description": "",
661
+ "dependencies": [
662
+ "class-variance-authority"
663
+ ],
664
+ "registryDependencies": [
665
+ "label",
666
+ "separator",
667
+ "utils"
668
+ ],
669
+ "files": [
670
+ "components/ui/field.tsx"
671
+ ],
672
+ "css": false
673
+ },
674
+ {
675
+ "name": "file-upload",
676
+ "type": "ui",
677
+ "description": "",
678
+ "dependencies": [
679
+ "@ark-ui/react",
680
+ "lucide-react"
681
+ ],
682
+ "registryDependencies": [
683
+ "button",
684
+ "utils"
685
+ ],
686
+ "files": [
687
+ "components/ui/file-upload.tsx"
688
+ ],
689
+ "css": false
690
+ },
691
+ {
692
+ "name": "floating-panel",
693
+ "type": "ui",
694
+ "description": "",
695
+ "dependencies": [
696
+ "@ark-ui/react",
697
+ "lucide-react"
698
+ ],
699
+ "registryDependencies": [
700
+ "button",
701
+ "utils"
702
+ ],
703
+ "files": [
704
+ "components/ui/floating-panel.tsx"
705
+ ],
706
+ "css": false
707
+ },
708
+ {
709
+ "name": "floating-toolbar",
710
+ "type": "ui",
711
+ "description": "FloatingToolbar — the snackbar-style action bar that floats over a page (bulk actions on tables, pending edits on grids). Arrow keys move between its buttons, Home/End jump, and Escape calls `onEscape` unless focus is in a nested menu. Rend",
712
+ "dependencies": [],
713
+ "registryDependencies": [
714
+ "utils"
715
+ ],
716
+ "files": [
717
+ "components/ui/floating-toolbar.tsx"
718
+ ],
719
+ "css": false
720
+ },
721
+ {
722
+ "name": "format",
723
+ "type": "ui",
724
+ "description": "Locale-aware formatting helpers from Ark, wrapping `Intl`.",
725
+ "dependencies": [
726
+ "@ark-ui/react"
727
+ ],
728
+ "registryDependencies": [],
729
+ "files": [
730
+ "components/ui/format.tsx"
731
+ ],
732
+ "css": false
733
+ },
734
+ {
735
+ "name": "gantt",
736
+ "type": "ui",
737
+ "description": "`src/components/ui/gantt.tsx` is a compositional, data-agnostic timeline.",
738
+ "dependencies": [
739
+ "date-fns",
740
+ "lucide-react"
741
+ ],
742
+ "registryDependencies": [
743
+ "button",
744
+ "controllable",
745
+ "live-region",
746
+ "utils"
747
+ ],
748
+ "files": [
749
+ "components/ui/gantt.tsx"
750
+ ],
751
+ "css": false
752
+ },
753
+ {
754
+ "name": "hotkeys",
755
+ "type": "ui",
756
+ "description": "-------------------------------- parsing --------------------------------",
757
+ "dependencies": [],
758
+ "registryDependencies": [
759
+ "dialog",
760
+ "kbd",
761
+ "utils"
762
+ ],
763
+ "files": [
764
+ "components/ui/hotkeys.tsx"
765
+ ],
766
+ "css": false
767
+ },
768
+ {
769
+ "name": "hover-card",
770
+ "type": "ui",
771
+ "description": "",
772
+ "dependencies": [
773
+ "@ark-ui/react"
774
+ ],
775
+ "registryDependencies": [
776
+ "utils"
777
+ ],
778
+ "files": [
779
+ "components/ui/hover-card.tsx"
780
+ ],
781
+ "css": false
782
+ },
783
+ {
784
+ "name": "image-cropper",
785
+ "type": "ui",
786
+ "description": "",
787
+ "dependencies": [
788
+ "@ark-ui/react"
789
+ ],
790
+ "registryDependencies": [
791
+ "utils"
792
+ ],
793
+ "files": [
794
+ "components/ui/image-cropper.tsx"
795
+ ],
796
+ "css": false
797
+ },
798
+ {
799
+ "name": "input-group",
800
+ "type": "ui",
801
+ "description": "",
802
+ "dependencies": [
803
+ "class-variance-authority"
804
+ ],
805
+ "registryDependencies": [
806
+ "button",
807
+ "input",
808
+ "textarea",
809
+ "utils"
810
+ ],
811
+ "files": [
812
+ "components/ui/input-group.tsx"
813
+ ],
814
+ "css": false
815
+ },
816
+ {
817
+ "name": "input-otp",
818
+ "type": "ui",
819
+ "description": "",
820
+ "dependencies": [
821
+ "input-otp",
822
+ "lucide-react"
823
+ ],
824
+ "registryDependencies": [
825
+ "utils"
826
+ ],
827
+ "files": [
828
+ "components/ui/input-otp.tsx"
829
+ ],
830
+ "css": false
831
+ },
832
+ {
833
+ "name": "input",
834
+ "type": "ui",
835
+ "description": "",
836
+ "dependencies": [],
837
+ "registryDependencies": [
838
+ "utils"
839
+ ],
840
+ "files": [
841
+ "components/ui/input.tsx"
842
+ ],
843
+ "css": false
844
+ },
845
+ {
846
+ "name": "item",
847
+ "type": "ui",
848
+ "description": "",
849
+ "dependencies": [
850
+ "@ark-ui/react",
851
+ "class-variance-authority"
852
+ ],
853
+ "registryDependencies": [
854
+ "separator",
855
+ "utils"
856
+ ],
857
+ "files": [
858
+ "components/ui/item.tsx"
859
+ ],
860
+ "css": false
861
+ },
862
+ {
863
+ "name": "json-tree-view",
864
+ "type": "ui",
865
+ "description": "",
866
+ "dependencies": [
867
+ "@ark-ui/react"
868
+ ],
869
+ "registryDependencies": [
870
+ "utils"
871
+ ],
872
+ "files": [
873
+ "components/ui/json-tree-view.tsx"
874
+ ],
875
+ "css": false
876
+ },
877
+ {
878
+ "name": "kanban",
879
+ "type": "ui",
880
+ "description": "Kanban — a compositional, data-agnostic board on Pragmatic drag and drop. The consumer owns columns and cards and re-renders them from its own state; the primitive wires dragging and reports intents through `onCardMove` and `onColumnMove`. ",
881
+ "dependencies": [
882
+ "@ark-ui/react",
883
+ "@atlaskit/pragmatic-drag-and-drop",
884
+ "@atlaskit/pragmatic-drag-and-drop-auto-scroll",
885
+ "@atlaskit/pragmatic-drag-and-drop-hitbox",
886
+ "lucide-react"
887
+ ],
888
+ "registryDependencies": [
889
+ "badge",
890
+ "button",
891
+ "drag-preview",
892
+ "live-region",
893
+ "utils"
894
+ ],
895
+ "files": [
896
+ "components/ui/kanban.tsx"
897
+ ],
898
+ "css": false
899
+ },
900
+ {
901
+ "name": "kbd",
902
+ "type": "ui",
903
+ "description": "",
904
+ "dependencies": [],
905
+ "registryDependencies": [
906
+ "utils"
907
+ ],
908
+ "files": [
909
+ "components/ui/kbd.tsx"
910
+ ],
911
+ "css": false
912
+ },
913
+ {
914
+ "name": "label",
915
+ "type": "ui",
916
+ "description": "Ark UI has no standalone Label primitive (its labels live inside each component's anatomy). This mirrors Radix's: a native `label` that ignores double-click text selection.",
917
+ "dependencies": [],
918
+ "registryDependencies": [
919
+ "utils"
920
+ ],
921
+ "files": [
922
+ "components/ui/label.tsx"
923
+ ],
924
+ "css": false
925
+ },
926
+ {
927
+ "name": "live-region",
928
+ "type": "ui",
929
+ "description": "Shared screen-reader announcer. `announce` re-fires even when the same text is announced twice, and `clearAfter` (ms) empties the region so stale text is not re-read when a user lands on it.",
930
+ "dependencies": [],
931
+ "registryDependencies": [
932
+ "utils"
933
+ ],
934
+ "files": [
935
+ "components/ui/live-region.tsx"
936
+ ],
937
+ "css": false
938
+ },
939
+ {
940
+ "name": "marker",
941
+ "type": "ui",
942
+ "description": "",
943
+ "dependencies": [
944
+ "@ark-ui/react",
945
+ "class-variance-authority"
946
+ ],
947
+ "registryDependencies": [
948
+ "utils"
949
+ ],
950
+ "files": [
951
+ "components/ui/marker.tsx"
952
+ ],
953
+ "css": false
954
+ },
955
+ {
956
+ "name": "marquee",
957
+ "type": "ui",
958
+ "description": "",
959
+ "dependencies": [
960
+ "@ark-ui/react"
961
+ ],
962
+ "registryDependencies": [
963
+ "utils"
964
+ ],
965
+ "files": [
966
+ "components/ui/marquee.tsx"
967
+ ],
968
+ "css": false
969
+ },
970
+ {
971
+ "name": "menubar",
972
+ "type": "ui",
973
+ "description": "Ark UI has no Menubar primitive. `Menubar` composes Ark `Menu` roots and adds the menubar behaviours Radix provides: one open menu at a time, hover switching between triggers once a menu is open, roving tabindex across triggers, and ArrowLe",
974
+ "dependencies": [
975
+ "@ark-ui/react",
976
+ "lucide-react"
977
+ ],
978
+ "registryDependencies": [
979
+ "controllable",
980
+ "utils"
981
+ ],
982
+ "files": [
983
+ "components/ui/menubar.tsx"
984
+ ],
985
+ "css": false
986
+ },
987
+ {
988
+ "name": "message",
989
+ "type": "ui",
990
+ "description": "",
991
+ "dependencies": [],
992
+ "registryDependencies": [
993
+ "utils"
994
+ ],
995
+ "files": [
996
+ "components/ui/message.tsx"
997
+ ],
998
+ "css": false
999
+ },
1000
+ {
1001
+ "name": "navigation-menu",
1002
+ "type": "ui",
1003
+ "description": "",
1004
+ "dependencies": [
1005
+ "@ark-ui/react",
1006
+ "class-variance-authority",
1007
+ "lucide-react"
1008
+ ],
1009
+ "registryDependencies": [
1010
+ "utils"
1011
+ ],
1012
+ "files": [
1013
+ "components/ui/navigation-menu.tsx"
1014
+ ],
1015
+ "css": false
1016
+ },
1017
+ {
1018
+ "name": "node-graph",
1019
+ "type": "ui",
1020
+ "description": "NodeGraph — a compositional, data-agnostic node editor in the spirit of visual scripting graphs. The consumer owns nodes and edges; the graph owns only the viewport (pan/zoom), the selection, and in-flight interactions (dragging nodes, draw",
1021
+ "dependencies": [
1022
+ "@ark-ui/react",
1023
+ "class-variance-authority",
1024
+ "lucide-react"
1025
+ ],
1026
+ "registryDependencies": [
1027
+ "button",
1028
+ "live-region",
1029
+ "utils"
1030
+ ],
1031
+ "files": [
1032
+ "components/ui/node-graph.tsx"
1033
+ ],
1034
+ "css": false
1035
+ },
1036
+ {
1037
+ "name": "number-input",
1038
+ "type": "ui",
1039
+ "description": "",
1040
+ "dependencies": [
1041
+ "@ark-ui/react",
1042
+ "lucide-react"
1043
+ ],
1044
+ "registryDependencies": [
1045
+ "utils"
1046
+ ],
1047
+ "files": [
1048
+ "components/ui/number-input.tsx"
1049
+ ],
1050
+ "css": false
1051
+ },
1052
+ {
1053
+ "name": "pagination",
1054
+ "type": "ui",
1055
+ "description": "",
1056
+ "dependencies": [
1057
+ "lucide-react"
1058
+ ],
1059
+ "registryDependencies": [
1060
+ "button",
1061
+ "utils"
1062
+ ],
1063
+ "files": [
1064
+ "components/ui/pagination.tsx"
1065
+ ],
1066
+ "css": false
1067
+ },
1068
+ {
1069
+ "name": "password-input",
1070
+ "type": "ui",
1071
+ "description": "",
1072
+ "dependencies": [
1073
+ "@ark-ui/react",
1074
+ "lucide-react"
1075
+ ],
1076
+ "registryDependencies": [
1077
+ "utils"
1078
+ ],
1079
+ "files": [
1080
+ "components/ui/password-input.tsx"
1081
+ ],
1082
+ "css": false
1083
+ },
1084
+ {
1085
+ "name": "popconfirm",
1086
+ "type": "ui",
1087
+ "description": "Popconfirm — a lightweight inline confirmation on Ark's Popover, for actions that need a \"are you sure?\" without a modal dialog. Compose it: `Popconfirm` > `PopconfirmTrigger` + `PopconfirmContent` > (`PopconfirmHeader` > `PopconfirmIcon` +",
1088
+ "dependencies": [
1089
+ "lucide-react"
1090
+ ],
1091
+ "registryDependencies": [
1092
+ "button",
1093
+ "popover",
1094
+ "utils"
1095
+ ],
1096
+ "files": [
1097
+ "components/ui/popconfirm.tsx"
1098
+ ],
1099
+ "css": false
1100
+ },
1101
+ {
1102
+ "name": "popover",
1103
+ "type": "ui",
1104
+ "description": "",
1105
+ "dependencies": [
1106
+ "@ark-ui/react",
1107
+ "lucide-react"
1108
+ ],
1109
+ "registryDependencies": [
1110
+ "utils"
1111
+ ],
1112
+ "files": [
1113
+ "components/ui/popover.tsx"
1114
+ ],
1115
+ "css": false
1116
+ },
1117
+ {
1118
+ "name": "progress",
1119
+ "type": "ui",
1120
+ "description": "",
1121
+ "dependencies": [
1122
+ "@ark-ui/react"
1123
+ ],
1124
+ "registryDependencies": [
1125
+ "utils"
1126
+ ],
1127
+ "files": [
1128
+ "components/ui/progress.tsx"
1129
+ ],
1130
+ "css": false
1131
+ },
1132
+ {
1133
+ "name": "qr-code",
1134
+ "type": "ui",
1135
+ "description": "",
1136
+ "dependencies": [
1137
+ "@ark-ui/react"
1138
+ ],
1139
+ "registryDependencies": [
1140
+ "utils"
1141
+ ],
1142
+ "files": [
1143
+ "components/ui/qr-code.tsx"
1144
+ ],
1145
+ "css": false
1146
+ },
1147
+ {
1148
+ "name": "query-builder",
1149
+ "type": "ui",
1150
+ "description": "`src/components/ui/query-builder.tsx` is a compositional filter builder designed for low cognitive load: it reads like a sentence instead of the usual AND/OR toggles per row.",
1151
+ "dependencies": [
1152
+ "@ark-ui/react",
1153
+ "lucide-react"
1154
+ ],
1155
+ "registryDependencies": [
1156
+ "button",
1157
+ "controllable",
1158
+ "input",
1159
+ "select",
1160
+ "utils"
1161
+ ],
1162
+ "files": [
1163
+ "components/ui/query-builder.tsx"
1164
+ ],
1165
+ "css": false
1166
+ },
1167
+ {
1168
+ "name": "radio-group",
1169
+ "type": "ui",
1170
+ "description": "",
1171
+ "dependencies": [
1172
+ "@ark-ui/react"
1173
+ ],
1174
+ "registryDependencies": [
1175
+ "utils"
1176
+ ],
1177
+ "files": [
1178
+ "components/ui/radio-group.tsx"
1179
+ ],
1180
+ "css": false
1181
+ },
1182
+ {
1183
+ "name": "rating-group",
1184
+ "type": "ui",
1185
+ "description": "",
1186
+ "dependencies": [
1187
+ "@ark-ui/react",
1188
+ "lucide-react"
1189
+ ],
1190
+ "registryDependencies": [
1191
+ "utils"
1192
+ ],
1193
+ "files": [
1194
+ "components/ui/rating-group.tsx"
1195
+ ],
1196
+ "css": false
1197
+ },
1198
+ {
1199
+ "name": "resizable",
1200
+ "type": "ui",
1201
+ "description": "",
1202
+ "dependencies": [
1203
+ "react-resizable-panels"
1204
+ ],
1205
+ "registryDependencies": [
1206
+ "utils"
1207
+ ],
1208
+ "files": [
1209
+ "components/ui/resizable.tsx"
1210
+ ],
1211
+ "css": false
1212
+ },
1213
+ {
1214
+ "name": "rich-text-editor",
1215
+ "type": "ui",
1216
+ "description": "`src/components/ui/rich-text-editor.tsx` is a compositional editor on **tiptap** (`@tiptap/react`, StarterKit with link/underline, `@tiptap/extensions` Placeholder + CharacterCount, task list, highlight, text align, image, TableKit; `extens",
1217
+ "dependencies": [
1218
+ "@ark-ui/react",
1219
+ "@tiptap/extension-highlight",
1220
+ "@tiptap/extension-image",
1221
+ "@tiptap/extension-table",
1222
+ "@tiptap/extension-task-item",
1223
+ "@tiptap/extension-task-list",
1224
+ "@tiptap/extension-text-align",
1225
+ "@tiptap/extensions",
1226
+ "@tiptap/react",
1227
+ "@tiptap/starter-kit",
1228
+ "lucide-react"
1229
+ ],
1230
+ "registryDependencies": [
1231
+ "button",
1232
+ "input",
1233
+ "kbd",
1234
+ "popover",
1235
+ "select",
1236
+ "separator",
1237
+ "toggle",
1238
+ "tooltip",
1239
+ "utils"
1240
+ ],
1241
+ "files": [
1242
+ "components/ui/rich-text-editor.tsx"
1243
+ ],
1244
+ "css": true
1245
+ },
1246
+ {
1247
+ "name": "scheduler",
1248
+ "type": "ui",
1249
+ "description": "`src/components/ui/scheduler.tsx` is a compositional, data-agnostic calendar.",
1250
+ "dependencies": [
1251
+ "date-fns",
1252
+ "lucide-react"
1253
+ ],
1254
+ "registryDependencies": [
1255
+ "button",
1256
+ "controllable",
1257
+ "live-region",
1258
+ "segment-group",
1259
+ "utils"
1260
+ ],
1261
+ "files": [
1262
+ "components/ui/scheduler.tsx"
1263
+ ],
1264
+ "css": false
1265
+ },
1266
+ {
1267
+ "name": "scroll-area",
1268
+ "type": "ui",
1269
+ "description": "",
1270
+ "dependencies": [
1271
+ "@ark-ui/react"
1272
+ ],
1273
+ "registryDependencies": [
1274
+ "utils"
1275
+ ],
1276
+ "files": [
1277
+ "components/ui/scroll-area.tsx"
1278
+ ],
1279
+ "css": false
1280
+ },
1281
+ {
1282
+ "name": "segment-group",
1283
+ "type": "ui",
1284
+ "description": "",
1285
+ "dependencies": [
1286
+ "@ark-ui/react"
1287
+ ],
1288
+ "registryDependencies": [
1289
+ "utils"
1290
+ ],
1291
+ "files": [
1292
+ "components/ui/segment-group.tsx"
1293
+ ],
1294
+ "css": false
1295
+ },
1296
+ {
1297
+ "name": "select",
1298
+ "type": "ui",
1299
+ "description": "`src/lib/history.ts` exports `useHistory(initial, limit)` → `{ present, set(next, { commit }), checkpoint, undo, redo, reset, canUndo, canRedo }`; the node graph and form builder use it. Never add a local copy.",
1300
+ "dependencies": [
1301
+ "@ark-ui/react",
1302
+ "lucide-react"
1303
+ ],
1304
+ "registryDependencies": [
1305
+ "utils"
1306
+ ],
1307
+ "files": [
1308
+ "components/ui/select.tsx"
1309
+ ],
1310
+ "css": false
1311
+ },
1312
+ {
1313
+ "name": "separator",
1314
+ "type": "ui",
1315
+ "description": "Ark UI has no Separator primitive. This mirrors Radix's: a `div` with `role=\"separator\"` (or `role=\"none\"` when decorative) and `data-orientation`.",
1316
+ "dependencies": [],
1317
+ "registryDependencies": [
1318
+ "utils"
1319
+ ],
1320
+ "files": [
1321
+ "components/ui/separator.tsx"
1322
+ ],
1323
+ "css": false
1324
+ },
1325
+ {
1326
+ "name": "sheet",
1327
+ "type": "ui",
1328
+ "description": "",
1329
+ "dependencies": [
1330
+ "@ark-ui/react",
1331
+ "lucide-react"
1332
+ ],
1333
+ "registryDependencies": [
1334
+ "button",
1335
+ "utils"
1336
+ ],
1337
+ "files": [
1338
+ "components/ui/sheet.tsx"
1339
+ ],
1340
+ "css": false
1341
+ },
1342
+ {
1343
+ "name": "sidebar",
1344
+ "type": "ui",
1345
+ "description": "`src/components/ui/app-shell.tsx` is a compositional, router-agnostic shell built on `sidebar.tsx` (shadcn-admin layout): `AppShell` (context: sidebar variant/collapsible, search open state, `searchShortcut` for cmd/ctrl+K), `AppShellSideba",
1346
+ "dependencies": [
1347
+ "@ark-ui/react",
1348
+ "class-variance-authority",
1349
+ "lucide-react"
1350
+ ],
1351
+ "registryDependencies": [
1352
+ "button",
1353
+ "input",
1354
+ "separator",
1355
+ "sheet",
1356
+ "skeleton",
1357
+ "tooltip",
1358
+ "use-mobile",
1359
+ "utils"
1360
+ ],
1361
+ "files": [
1362
+ "components/ui/sidebar.tsx"
1363
+ ],
1364
+ "css": false
1365
+ },
1366
+ {
1367
+ "name": "signature-pad",
1368
+ "type": "ui",
1369
+ "description": "",
1370
+ "dependencies": [
1371
+ "@ark-ui/react",
1372
+ "lucide-react"
1373
+ ],
1374
+ "registryDependencies": [
1375
+ "button",
1376
+ "utils"
1377
+ ],
1378
+ "files": [
1379
+ "components/ui/signature-pad.tsx"
1380
+ ],
1381
+ "css": false
1382
+ },
1383
+ {
1384
+ "name": "skeleton",
1385
+ "type": "ui",
1386
+ "description": "",
1387
+ "dependencies": [],
1388
+ "registryDependencies": [
1389
+ "utils"
1390
+ ],
1391
+ "files": [
1392
+ "components/ui/skeleton.tsx"
1393
+ ],
1394
+ "css": false
1395
+ },
1396
+ {
1397
+ "name": "slider",
1398
+ "type": "ui",
1399
+ "description": "",
1400
+ "dependencies": [
1401
+ "@ark-ui/react"
1402
+ ],
1403
+ "registryDependencies": [
1404
+ "utils"
1405
+ ],
1406
+ "files": [
1407
+ "components/ui/slider.tsx"
1408
+ ],
1409
+ "css": false
1410
+ },
1411
+ {
1412
+ "name": "sonner",
1413
+ "type": "ui",
1414
+ "description": "",
1415
+ "dependencies": [
1416
+ "lucide-react",
1417
+ "next-themes",
1418
+ "sonner"
1419
+ ],
1420
+ "registryDependencies": [],
1421
+ "files": [
1422
+ "components/ui/sonner.tsx"
1423
+ ],
1424
+ "css": false
1425
+ },
1426
+ {
1427
+ "name": "spinner",
1428
+ "type": "ui",
1429
+ "description": "",
1430
+ "dependencies": [
1431
+ "lucide-react"
1432
+ ],
1433
+ "registryDependencies": [
1434
+ "utils"
1435
+ ],
1436
+ "files": [
1437
+ "components/ui/spinner.tsx"
1438
+ ],
1439
+ "css": false
1440
+ },
1441
+ {
1442
+ "name": "steps",
1443
+ "type": "ui",
1444
+ "description": "",
1445
+ "dependencies": [
1446
+ "@ark-ui/react",
1447
+ "lucide-react"
1448
+ ],
1449
+ "registryDependencies": [
1450
+ "button",
1451
+ "utils"
1452
+ ],
1453
+ "files": [
1454
+ "components/ui/steps.tsx"
1455
+ ],
1456
+ "css": false
1457
+ },
1458
+ {
1459
+ "name": "swap",
1460
+ "type": "ui",
1461
+ "description": "",
1462
+ "dependencies": [
1463
+ "@ark-ui/react"
1464
+ ],
1465
+ "registryDependencies": [
1466
+ "utils"
1467
+ ],
1468
+ "files": [
1469
+ "components/ui/swap.tsx"
1470
+ ],
1471
+ "css": false
1472
+ },
1473
+ {
1474
+ "name": "switch",
1475
+ "type": "ui",
1476
+ "description": "`id` is omitted: set part ids through the root `ids` prop so Ark's internal lookups keep working.",
1477
+ "dependencies": [
1478
+ "@ark-ui/react"
1479
+ ],
1480
+ "registryDependencies": [
1481
+ "utils"
1482
+ ],
1483
+ "files": [
1484
+ "components/ui/switch.tsx"
1485
+ ],
1486
+ "css": false
1487
+ },
1488
+ {
1489
+ "name": "table",
1490
+ "type": "ui",
1491
+ "description": "`src/lib/table.ts` is a dependency-free headless table engine (columns, sorting, global + column filters with faceted counts, pagination, row selection, visibility).",
1492
+ "dependencies": [],
1493
+ "registryDependencies": [
1494
+ "utils"
1495
+ ],
1496
+ "files": [
1497
+ "components/ui/table.tsx"
1498
+ ],
1499
+ "css": false
1500
+ },
1501
+ {
1502
+ "name": "tabs",
1503
+ "type": "ui",
1504
+ "description": "",
1505
+ "dependencies": [
1506
+ "@ark-ui/react",
1507
+ "class-variance-authority"
1508
+ ],
1509
+ "registryDependencies": [
1510
+ "utils"
1511
+ ],
1512
+ "files": [
1513
+ "components/ui/tabs.tsx"
1514
+ ],
1515
+ "css": false
1516
+ },
1517
+ {
1518
+ "name": "tags-input",
1519
+ "type": "ui",
1520
+ "description": "",
1521
+ "dependencies": [
1522
+ "@ark-ui/react",
1523
+ "lucide-react"
1524
+ ],
1525
+ "registryDependencies": [
1526
+ "utils"
1527
+ ],
1528
+ "files": [
1529
+ "components/ui/tags-input.tsx"
1530
+ ],
1531
+ "css": false
1532
+ },
1533
+ {
1534
+ "name": "textarea",
1535
+ "type": "ui",
1536
+ "description": "",
1537
+ "dependencies": [],
1538
+ "registryDependencies": [
1539
+ "utils"
1540
+ ],
1541
+ "files": [
1542
+ "components/ui/textarea.tsx"
1543
+ ],
1544
+ "css": false
1545
+ },
1546
+ {
1547
+ "name": "timer",
1548
+ "type": "ui",
1549
+ "description": "",
1550
+ "dependencies": [
1551
+ "@ark-ui/react"
1552
+ ],
1553
+ "registryDependencies": [
1554
+ "button",
1555
+ "utils"
1556
+ ],
1557
+ "files": [
1558
+ "components/ui/timer.tsx"
1559
+ ],
1560
+ "css": false
1561
+ },
1562
+ {
1563
+ "name": "toc",
1564
+ "type": "ui",
1565
+ "description": "",
1566
+ "dependencies": [
1567
+ "@ark-ui/react"
1568
+ ],
1569
+ "registryDependencies": [
1570
+ "utils"
1571
+ ],
1572
+ "files": [
1573
+ "components/ui/toc.tsx"
1574
+ ],
1575
+ "css": false
1576
+ },
1577
+ {
1578
+ "name": "toggle-group",
1579
+ "type": "ui",
1580
+ "description": "",
1581
+ "dependencies": [
1582
+ "@ark-ui/react",
1583
+ "class-variance-authority"
1584
+ ],
1585
+ "registryDependencies": [
1586
+ "toggle",
1587
+ "utils"
1588
+ ],
1589
+ "files": [
1590
+ "components/ui/toggle-group.tsx"
1591
+ ],
1592
+ "css": false
1593
+ },
1594
+ {
1595
+ "name": "toggle",
1596
+ "type": "ui",
1597
+ "description": "",
1598
+ "dependencies": [
1599
+ "@ark-ui/react",
1600
+ "class-variance-authority"
1601
+ ],
1602
+ "registryDependencies": [
1603
+ "utils"
1604
+ ],
1605
+ "files": [
1606
+ "components/ui/toggle.tsx"
1607
+ ],
1608
+ "css": false
1609
+ },
1610
+ {
1611
+ "name": "tooltip",
1612
+ "type": "ui",
1613
+ "description": "",
1614
+ "dependencies": [
1615
+ "@ark-ui/react"
1616
+ ],
1617
+ "registryDependencies": [
1618
+ "utils"
1619
+ ],
1620
+ "files": [
1621
+ "components/ui/tooltip.tsx"
1622
+ ],
1623
+ "css": false
1624
+ },
1625
+ {
1626
+ "name": "tour",
1627
+ "type": "ui",
1628
+ "description": "",
1629
+ "dependencies": [
1630
+ "@ark-ui/react",
1631
+ "lucide-react"
1632
+ ],
1633
+ "registryDependencies": [
1634
+ "button",
1635
+ "utils"
1636
+ ],
1637
+ "files": [
1638
+ "components/ui/tour.tsx"
1639
+ ],
1640
+ "css": false
1641
+ },
1642
+ {
1643
+ "name": "transfer-list",
1644
+ "type": "ui",
1645
+ "description": "`src/components/ui/transfer-list.tsx` moves items between two lists.",
1646
+ "dependencies": [
1647
+ "@ark-ui/react",
1648
+ "lucide-react"
1649
+ ],
1650
+ "registryDependencies": [
1651
+ "button",
1652
+ "checkbox",
1653
+ "controllable",
1654
+ "input-group",
1655
+ "live-region",
1656
+ "utils"
1657
+ ],
1658
+ "files": [
1659
+ "components/ui/transfer-list.tsx"
1660
+ ],
1661
+ "css": false
1662
+ },
1663
+ {
1664
+ "name": "tree-select",
1665
+ "type": "ui",
1666
+ "description": "Both live on Ark's `TreeCollection` (`createTreeCollection`, re-exported) and a Popover, and own only the open state, the search query, and the value (`value`/`defaultValue`/`onValueChange`, always a `string[]`); the trigger is a focusable ",
1667
+ "dependencies": [
1668
+ "@ark-ui/react",
1669
+ "lucide-react"
1670
+ ],
1671
+ "registryDependencies": [
1672
+ "button",
1673
+ "controllable",
1674
+ "input-group",
1675
+ "popover",
1676
+ "tree-view",
1677
+ "utils"
1678
+ ],
1679
+ "files": [
1680
+ "components/ui/tree-select.tsx"
1681
+ ],
1682
+ "css": false
1683
+ },
1684
+ {
1685
+ "name": "tree-view",
1686
+ "type": "ui",
1687
+ "description": "",
1688
+ "dependencies": [
1689
+ "@ark-ui/react",
1690
+ "lucide-react"
1691
+ ],
1692
+ "registryDependencies": [
1693
+ "utils"
1694
+ ],
1695
+ "files": [
1696
+ "components/ui/tree-view.tsx"
1697
+ ],
1698
+ "css": false
1699
+ },
1700
+ {
1701
+ "name": "virtual-list",
1702
+ "type": "ui",
1703
+ "description": "-------------------------------- context --------------------------------",
1704
+ "dependencies": [],
1705
+ "registryDependencies": [
1706
+ "utils"
1707
+ ],
1708
+ "files": [
1709
+ "components/ui/virtual-list.tsx"
1710
+ ],
1711
+ "css": false
1712
+ },
1713
+ {
1714
+ "name": "controllable",
1715
+ "type": "lib",
1716
+ "description": "Both live on Ark's `TreeCollection` (`createTreeCollection`, re-exported) and a Popover, and own only the open state, the search query, and the value (`value`/`defaultValue`/`onValueChange`, always a `string[]`); the trigger is a focusable ",
1717
+ "dependencies": [],
1718
+ "registryDependencies": [],
1719
+ "files": [
1720
+ "lib/controllable.ts"
1721
+ ],
1722
+ "css": false
1723
+ },
1724
+ {
1725
+ "name": "data-table-adapter",
1726
+ "type": "lib",
1727
+ "description": "The contract the data table parts render against. `<DataTable>` accepts any object that satisfies it, so the parts are independent of where the rows, sorting, filtering, and paging come from. The built-in engine in `@/lib/table` satisfies i",
1728
+ "dependencies": [],
1729
+ "registryDependencies": [],
1730
+ "files": [
1731
+ "lib/data-table-adapter.ts"
1732
+ ],
1733
+ "css": false
1734
+ },
1735
+ {
1736
+ "name": "drag-preview",
1737
+ "type": "lib",
1738
+ "description": "`src/components/ui/kanban.tsx` is a compositional, data-agnostic board on `@atlaskit/pragmatic-drag-and-drop` (+ `-hitbox` closest-edge/reorder index, `-auto-scroll`).",
1739
+ "dependencies": [
1740
+ "@atlaskit/pragmatic-drag-and-drop"
1741
+ ],
1742
+ "registryDependencies": [],
1743
+ "files": [
1744
+ "lib/drag-preview.ts"
1745
+ ],
1746
+ "css": false
1747
+ },
1748
+ {
1749
+ "name": "form",
1750
+ "type": "lib",
1751
+ "description": "`src/lib/form.ts` exports `useForm(defaultValues, validate, onSubmit, { mode })`: a small, dependency-free hook (values, per-field errors, validating submit) that pairs with the `Field*` parts.",
1752
+ "dependencies": [],
1753
+ "registryDependencies": [],
1754
+ "files": [
1755
+ "lib/form.ts"
1756
+ ],
1757
+ "css": false
1758
+ },
1759
+ {
1760
+ "name": "history",
1761
+ "type": "lib",
1762
+ "description": "Undo/redo state for any immutable value. `set` records a history entry unless `{ commit: false }` is passed (live drags, typing); `checkpoint` snapshots the present before such a sequence so one undo restores it.",
1763
+ "dependencies": [],
1764
+ "registryDependencies": [],
1765
+ "files": [
1766
+ "lib/history.ts"
1767
+ ],
1768
+ "css": false
1769
+ },
1770
+ {
1771
+ "name": "row-layout",
1772
+ "type": "lib",
1773
+ "description": "Rows-and-columns layout helpers for the Canvas primitive. A layout is `Row[]`, each row a list of items with a `width` (flex-grow weight). Drops above/below an item create a row, beside it a column; the resize handle shifts width between ne",
1774
+ "dependencies": [],
1775
+ "registryDependencies": [
1776
+ "canvas"
1777
+ ],
1778
+ "files": [
1779
+ "lib/row-layout.ts"
1780
+ ],
1781
+ "css": false
1782
+ },
1783
+ {
1784
+ "name": "table",
1785
+ "type": "lib",
1786
+ "description": "A small headless table engine: column definitions, sorting, global and per-column filtering with faceted counts, pagination, row selection, and column visibility. No external dependencies.",
1787
+ "dependencies": [],
1788
+ "registryDependencies": [
1789
+ "controllable"
1790
+ ],
1791
+ "files": [
1792
+ "lib/table.ts"
1793
+ ],
1794
+ "css": false
1795
+ },
1796
+ {
1797
+ "name": "time",
1798
+ "type": "lib",
1799
+ "description": "`src/components/ui/activity-feed.tsx` is a compositional timeline of events on the WAI-ARIA feed pattern (`role=\"feed\"`, focusable articles, PageUp/PageDown move, Ctrl+Home/End jump): `ActivityFeed` > `ActivityFeedGroup` > `ActivityFeedGrou",
1800
+ "dependencies": [],
1801
+ "registryDependencies": [],
1802
+ "files": [
1803
+ "lib/time.ts"
1804
+ ],
1805
+ "css": false
1806
+ },
1807
+ {
1808
+ "name": "utils",
1809
+ "type": "lib",
1810
+ "description": "- **Feature parity** with the shadcn original: same exported names, same props surface where Ark supports it, same visual result, same variants. - **Ark's tree wins** where the structure differs (e.g.",
1811
+ "dependencies": [
1812
+ "clsx",
1813
+ "tailwind-merge"
1814
+ ],
1815
+ "registryDependencies": [],
1816
+ "files": [
1817
+ "lib/utils.ts"
1818
+ ],
1819
+ "css": false
1820
+ },
1821
+ {
1822
+ "name": "use-mobile",
1823
+ "type": "hook",
1824
+ "description": "",
1825
+ "dependencies": [],
1826
+ "registryDependencies": [],
1827
+ "files": [
1828
+ "hooks/use-mobile.ts"
1829
+ ],
1830
+ "css": false
1831
+ }
1832
+ ]
1833
+ }