@dalexto/lexsys-registry 0.0.2

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 (206) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/dist/index.d.ts +25 -0
  4. package/dist/index.js +2164 -0
  5. package/dist/install-layer.d.ts +4 -0
  6. package/dist/items/accordion.d.ts +7 -0
  7. package/dist/items/alert-dialog.d.ts +7 -0
  8. package/dist/items/alert.d.ts +7 -0
  9. package/dist/items/auth-form.d.ts +7 -0
  10. package/dist/items/autocomplete.d.ts +7 -0
  11. package/dist/items/avatar.d.ts +7 -0
  12. package/dist/items/badge.d.ts +7 -0
  13. package/dist/items/button.d.ts +7 -0
  14. package/dist/items/card.d.ts +7 -0
  15. package/dist/items/checkbox-group.d.ts +7 -0
  16. package/dist/items/checkbox.d.ts +7 -0
  17. package/dist/items/collapsible.d.ts +7 -0
  18. package/dist/items/combobox.d.ts +7 -0
  19. package/dist/items/command-palette.d.ts +7 -0
  20. package/dist/items/context-menu.d.ts +7 -0
  21. package/dist/items/dashboard-shell.d.ts +7 -0
  22. package/dist/items/dialog.d.ts +7 -0
  23. package/dist/items/drawer.d.ts +7 -0
  24. package/dist/items/field.d.ts +7 -0
  25. package/dist/items/fieldset.d.ts +7 -0
  26. package/dist/items/form-field.d.ts +7 -0
  27. package/dist/items/form.d.ts +7 -0
  28. package/dist/items/index.d.ts +49 -0
  29. package/dist/items/input.d.ts +7 -0
  30. package/dist/items/menu.d.ts +7 -0
  31. package/dist/items/menubar.d.ts +7 -0
  32. package/dist/items/meter.d.ts +7 -0
  33. package/dist/items/navigation-menu.d.ts +7 -0
  34. package/dist/items/number-field.d.ts +7 -0
  35. package/dist/items/otp-field.d.ts +7 -0
  36. package/dist/items/popover.d.ts +7 -0
  37. package/dist/items/preview-card.d.ts +7 -0
  38. package/dist/items/progress.d.ts +7 -0
  39. package/dist/items/radio-group.d.ts +7 -0
  40. package/dist/items/scroll-area.d.ts +7 -0
  41. package/dist/items/select.d.ts +7 -0
  42. package/dist/items/separator.d.ts +7 -0
  43. package/dist/items/settings-panel.d.ts +7 -0
  44. package/dist/items/sidebar.d.ts +7 -0
  45. package/dist/items/slider.d.ts +7 -0
  46. package/dist/items/switch.d.ts +7 -0
  47. package/dist/items/tabs.d.ts +7 -0
  48. package/dist/items/textarea.d.ts +7 -0
  49. package/dist/items/toast.d.ts +7 -0
  50. package/dist/items/toggle-group.d.ts +7 -0
  51. package/dist/items/toggle.d.ts +7 -0
  52. package/dist/items/toolbar.d.ts +7 -0
  53. package/dist/items/tooltip.d.ts +7 -0
  54. package/dist/registry.types.d.ts +40 -0
  55. package/dist/styles/theme.d.ts +2 -0
  56. package/dist/utilities/cn.d.ts +2 -0
  57. package/dist/validate-registry-composition.d.ts +2 -0
  58. package/dist/validate-registry-item.d.ts +2 -0
  59. package/dist/validate-registry-template-imports.d.ts +4 -0
  60. package/dist/validate-registry.d.ts +9 -0
  61. package/package.json +52 -0
  62. package/templates/blocks/AuthForm/AuthForm.tsx +109 -0
  63. package/templates/blocks/AuthForm/AuthForm.types.ts +34 -0
  64. package/templates/blocks/AuthForm/AuthForm.variants.ts +11 -0
  65. package/templates/blocks/CommandPalette/CommandPalette.tsx +245 -0
  66. package/templates/blocks/CommandPalette/CommandPalette.types.ts +73 -0
  67. package/templates/blocks/CommandPalette/CommandPalette.variants.ts +26 -0
  68. package/templates/blocks/FormField/FormField.tsx +83 -0
  69. package/templates/blocks/FormField/FormField.types.ts +26 -0
  70. package/templates/blocks/FormField/FormField.variants.ts +9 -0
  71. package/templates/blocks/SettingsPanel/SettingsPanel.tsx +104 -0
  72. package/templates/blocks/SettingsPanel/SettingsPanel.types.ts +31 -0
  73. package/templates/blocks/SettingsPanel/SettingsPanel.variants.ts +9 -0
  74. package/templates/blocks/Sidebar/Sidebar.tsx +414 -0
  75. package/templates/blocks/Sidebar/Sidebar.types.ts +99 -0
  76. package/templates/blocks/Sidebar/Sidebar.variants.ts +84 -0
  77. package/templates/primitives/Accordion/Accordion.tsx +102 -0
  78. package/templates/primitives/Accordion/Accordion.types.ts +20 -0
  79. package/templates/primitives/Accordion/Accordion.variants.ts +32 -0
  80. package/templates/primitives/Alert/Alert.tsx +62 -0
  81. package/templates/primitives/Alert/Alert.types.ts +35 -0
  82. package/templates/primitives/Alert/Alert.variants.ts +41 -0
  83. package/templates/primitives/AlertDialog/AlertDialog.tsx +168 -0
  84. package/templates/primitives/AlertDialog/AlertDialog.types.ts +30 -0
  85. package/templates/primitives/AlertDialog/AlertDialog.variants.ts +57 -0
  86. package/templates/primitives/Autocomplete/Autocomplete.tsx +394 -0
  87. package/templates/primitives/Autocomplete/Autocomplete.types.ts +82 -0
  88. package/templates/primitives/Autocomplete/Autocomplete.variants.ts +154 -0
  89. package/templates/primitives/Avatar/Avatar.tsx +56 -0
  90. package/templates/primitives/Avatar/Avatar.types.ts +31 -0
  91. package/templates/primitives/Avatar/Avatar.variants.ts +40 -0
  92. package/templates/primitives/Badge/Badge.tsx +30 -0
  93. package/templates/primitives/Badge/Badge.types.ts +30 -0
  94. package/templates/primitives/Badge/Badge.variants.ts +81 -0
  95. package/templates/primitives/Button/Button.tsx +53 -0
  96. package/templates/primitives/Button/Button.types.ts +25 -0
  97. package/templates/primitives/Button/Button.variants.ts +69 -0
  98. package/templates/primitives/Card/Card.tsx +85 -0
  99. package/templates/primitives/Card/Card.types.ts +54 -0
  100. package/templates/primitives/Card/Card.variants.ts +46 -0
  101. package/templates/primitives/Checkbox/Checkbox.tsx +72 -0
  102. package/templates/primitives/Checkbox/Checkbox.types.ts +28 -0
  103. package/templates/primitives/Checkbox/Checkbox.variants.ts +39 -0
  104. package/templates/primitives/CheckboxGroup/CheckboxGroup.tsx +32 -0
  105. package/templates/primitives/CheckboxGroup/CheckboxGroup.types.ts +17 -0
  106. package/templates/primitives/CheckboxGroup/CheckboxGroup.variants.ts +25 -0
  107. package/templates/primitives/Collapsible/Collapsible.tsx +74 -0
  108. package/templates/primitives/Collapsible/Collapsible.types.ts +28 -0
  109. package/templates/primitives/Collapsible/Collapsible.variants.ts +44 -0
  110. package/templates/primitives/Combobox/Combobox.tsx +450 -0
  111. package/templates/primitives/Combobox/Combobox.types.ts +99 -0
  112. package/templates/primitives/Combobox/Combobox.variants.ts +180 -0
  113. package/templates/primitives/ContextMenu/ContextMenu.tsx +375 -0
  114. package/templates/primitives/ContextMenu/ContextMenu.types.ts +57 -0
  115. package/templates/primitives/ContextMenu/ContextMenu.variants.ts +39 -0
  116. package/templates/primitives/Dialog/Dialog.tsx +148 -0
  117. package/templates/primitives/Dialog/Dialog.types.ts +29 -0
  118. package/templates/primitives/Dialog/Dialog.variants.ts +56 -0
  119. package/templates/primitives/Drawer/Drawer.tsx +266 -0
  120. package/templates/primitives/Drawer/Drawer.types.ts +77 -0
  121. package/templates/primitives/Drawer/Drawer.variants.ts +175 -0
  122. package/templates/primitives/Field/Field.tsx +132 -0
  123. package/templates/primitives/Field/Field.types.ts +43 -0
  124. package/templates/primitives/Field/Field.variants.ts +77 -0
  125. package/templates/primitives/Fieldset/Fieldset.tsx +36 -0
  126. package/templates/primitives/Fieldset/Fieldset.types.ts +26 -0
  127. package/templates/primitives/Fieldset/Fieldset.variants.ts +37 -0
  128. package/templates/primitives/Form/Form.tsx +24 -0
  129. package/templates/primitives/Form/Form.types.ts +13 -0
  130. package/templates/primitives/Form/Form.variants.ts +11 -0
  131. package/templates/primitives/Input/Input.tsx +36 -0
  132. package/templates/primitives/Input/Input.types.ts +27 -0
  133. package/templates/primitives/Input/Input.variants.ts +41 -0
  134. package/templates/primitives/Menu/Menu.tsx +352 -0
  135. package/templates/primitives/Menu/Menu.types.ts +56 -0
  136. package/templates/primitives/Menu/Menu.variants.ts +73 -0
  137. package/templates/primitives/Menubar/Menubar.tsx +25 -0
  138. package/templates/primitives/Menubar/Menubar.types.ts +12 -0
  139. package/templates/primitives/Menubar/Menubar.variants.ts +22 -0
  140. package/templates/primitives/Meter/Meter.tsx +123 -0
  141. package/templates/primitives/Meter/Meter.types.ts +45 -0
  142. package/templates/primitives/Meter/Meter.variants.ts +47 -0
  143. package/templates/primitives/NavigationMenu/NavigationMenu.tsx +256 -0
  144. package/templates/primitives/NavigationMenu/NavigationMenu.types.ts +58 -0
  145. package/templates/primitives/NavigationMenu/NavigationMenu.variants.ts +40 -0
  146. package/templates/primitives/NumberField/NumberField.tsx +168 -0
  147. package/templates/primitives/NumberField/NumberField.types.ts +51 -0
  148. package/templates/primitives/NumberField/NumberField.variants.ts +92 -0
  149. package/templates/primitives/OtpField/OtpField.tsx +65 -0
  150. package/templates/primitives/OtpField/OtpField.types.ts +29 -0
  151. package/templates/primitives/OtpField/OtpField.variants.ts +45 -0
  152. package/templates/primitives/Popover/Popover.tsx +193 -0
  153. package/templates/primitives/Popover/Popover.types.ts +35 -0
  154. package/templates/primitives/Popover/Popover.variants.ts +68 -0
  155. package/templates/primitives/PreviewCard/PreviewCard.tsx +153 -0
  156. package/templates/primitives/PreviewCard/PreviewCard.types.ts +42 -0
  157. package/templates/primitives/PreviewCard/PreviewCard.variants.ts +24 -0
  158. package/templates/primitives/Progress/Progress.tsx +95 -0
  159. package/templates/primitives/Progress/Progress.types.ts +39 -0
  160. package/templates/primitives/Progress/Progress.variants.ts +39 -0
  161. package/templates/primitives/RadioGroup/RadioGroup.tsx +66 -0
  162. package/templates/primitives/RadioGroup/RadioGroup.types.ts +34 -0
  163. package/templates/primitives/RadioGroup/RadioGroup.variants.ts +59 -0
  164. package/templates/primitives/ScrollArea/ScrollArea.tsx +135 -0
  165. package/templates/primitives/ScrollArea/ScrollArea.types.ts +34 -0
  166. package/templates/primitives/ScrollArea/ScrollArea.variants.ts +38 -0
  167. package/templates/primitives/Select/Select.tsx +319 -0
  168. package/templates/primitives/Select/Select.types.ts +74 -0
  169. package/templates/primitives/Select/Select.variants.ts +94 -0
  170. package/templates/primitives/Separator/Separator.tsx +30 -0
  171. package/templates/primitives/Separator/Separator.types.ts +13 -0
  172. package/templates/primitives/Separator/Separator.variants.ts +19 -0
  173. package/templates/primitives/Slider/Slider.tsx +124 -0
  174. package/templates/primitives/Slider/Slider.types.ts +51 -0
  175. package/templates/primitives/Slider/Slider.variants.ts +38 -0
  176. package/templates/primitives/Switch/Switch.tsx +61 -0
  177. package/templates/primitives/Switch/Switch.types.ts +29 -0
  178. package/templates/primitives/Switch/Switch.variants.ts +48 -0
  179. package/templates/primitives/Tabs/Tabs.tsx +70 -0
  180. package/templates/primitives/Tabs/Tabs.types.ts +23 -0
  181. package/templates/primitives/Tabs/Tabs.variants.ts +29 -0
  182. package/templates/primitives/Textarea/Textarea.tsx +42 -0
  183. package/templates/primitives/Textarea/Textarea.types.ts +31 -0
  184. package/templates/primitives/Textarea/Textarea.variants.ts +46 -0
  185. package/templates/primitives/Toast/Toast.tsx +195 -0
  186. package/templates/primitives/Toast/Toast.types.ts +52 -0
  187. package/templates/primitives/Toast/Toast.variants.ts +88 -0
  188. package/templates/primitives/Toggle/Toggle.tsx +24 -0
  189. package/templates/primitives/Toggle/Toggle.types.ts +19 -0
  190. package/templates/primitives/Toggle/Toggle.variants.ts +32 -0
  191. package/templates/primitives/ToggleGroup/ToggleGroup.tsx +34 -0
  192. package/templates/primitives/ToggleGroup/ToggleGroup.types.ts +19 -0
  193. package/templates/primitives/ToggleGroup/ToggleGroup.variants.ts +32 -0
  194. package/templates/primitives/Toolbar/Toolbar.tsx +118 -0
  195. package/templates/primitives/Toolbar/Toolbar.types.ts +32 -0
  196. package/templates/primitives/Toolbar/Toolbar.variants.ts +84 -0
  197. package/templates/primitives/Tooltip/Tooltip.tsx +98 -0
  198. package/templates/primitives/Tooltip/Tooltip.types.ts +22 -0
  199. package/templates/primitives/Tooltip/Tooltip.variants.ts +24 -0
  200. package/templates/shared/utils/cn.ts +46 -0
  201. package/templates/styles/theme.css +311 -0
  202. package/templates/styles/tokens.css +1445 -0
  203. package/templates/templates/DashboardShell/DashboardShell.tsx +124 -0
  204. package/templates/templates/DashboardShell/DashboardShell.types.ts +37 -0
  205. package/templates/templates/DashboardShell/DashboardShell.variants.ts +25 -0
  206. package/templates/tsconfig.json +5 -0
package/dist/index.js ADDED
@@ -0,0 +1,2164 @@
1
+ // src/install-layer.ts
2
+ var getInstallLayer = (item) => {
3
+ if (item.type === "component") {
4
+ return "primitive";
5
+ }
6
+ if (item.type !== "block") {
7
+ return null;
8
+ }
9
+ const firstFile = item.files[0] ?? "";
10
+ if (firstFile.startsWith("blocks/")) {
11
+ return "block";
12
+ }
13
+ if (firstFile.startsWith("templates/")) {
14
+ return "template";
15
+ }
16
+ return null;
17
+ };
18
+
19
+ // src/items/accordion.ts
20
+ var accordionRegistryItem = {
21
+ name: "accordion",
22
+ canonicalName: "Accordion",
23
+ version: "0.0.1",
24
+ type: "component",
25
+ category: "data-display",
26
+ aliases: ["collapse"],
27
+ files: [
28
+ "primitives/Accordion/Accordion.tsx",
29
+ "primitives/Accordion/Accordion.types.ts",
30
+ "primitives/Accordion/Accordion.variants.ts"
31
+ ],
32
+ remoteFiles: [
33
+ {
34
+ path: "primitives/Accordion/Accordion.tsx"
35
+ },
36
+ {
37
+ path: "primitives/Accordion/Accordion.types.ts"
38
+ },
39
+ {
40
+ path: "primitives/Accordion/Accordion.variants.ts"
41
+ }
42
+ ],
43
+ dependencies: [
44
+ "@base-ui/react",
45
+ "class-variance-authority",
46
+ "clsx",
47
+ "tailwind-merge"
48
+ ],
49
+ registryDependencies: [],
50
+ utilities: ["cn"],
51
+ styles: ["theme"],
52
+ target: "src/components/ui/Accordion"
53
+ };
54
+
55
+ // src/items/alert-dialog.ts
56
+ var alertDialogRegistryItem = {
57
+ name: "alert-dialog",
58
+ canonicalName: "AlertDialog",
59
+ version: "0.0.1",
60
+ type: "component",
61
+ category: "overlays",
62
+ aliases: [],
63
+ files: [
64
+ "primitives/AlertDialog/AlertDialog.tsx",
65
+ "primitives/AlertDialog/AlertDialog.types.ts",
66
+ "primitives/AlertDialog/AlertDialog.variants.ts"
67
+ ],
68
+ remoteFiles: [
69
+ {
70
+ path: "primitives/AlertDialog/AlertDialog.tsx"
71
+ },
72
+ {
73
+ path: "primitives/AlertDialog/AlertDialog.types.ts"
74
+ },
75
+ {
76
+ path: "primitives/AlertDialog/AlertDialog.variants.ts"
77
+ }
78
+ ],
79
+ dependencies: [
80
+ "@base-ui/react",
81
+ "class-variance-authority",
82
+ "lucide-react",
83
+ "clsx",
84
+ "tailwind-merge"
85
+ ],
86
+ registryDependencies: [],
87
+ utilities: ["cn"],
88
+ styles: ["theme"],
89
+ target: "src/components/ui/AlertDialog"
90
+ };
91
+
92
+ // src/items/alert.ts
93
+ var alertRegistryItem = {
94
+ name: "alert",
95
+ canonicalName: "Alert",
96
+ version: "0.0.1",
97
+ type: "component",
98
+ category: "feedback",
99
+ aliases: ["notice", "message"],
100
+ files: [
101
+ "primitives/Alert/Alert.tsx",
102
+ "primitives/Alert/Alert.types.ts",
103
+ "primitives/Alert/Alert.variants.ts"
104
+ ],
105
+ remoteFiles: [
106
+ {
107
+ path: "primitives/Alert/Alert.tsx"
108
+ },
109
+ {
110
+ path: "primitives/Alert/Alert.types.ts"
111
+ },
112
+ {
113
+ path: "primitives/Alert/Alert.variants.ts"
114
+ }
115
+ ],
116
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
117
+ registryDependencies: [],
118
+ utilities: ["cn"],
119
+ styles: ["theme"],
120
+ target: "src/components/ui/Alert"
121
+ };
122
+
123
+ // src/items/avatar.ts
124
+ var avatarRegistryItem = {
125
+ name: "avatar",
126
+ canonicalName: "Avatar",
127
+ version: "0.0.1",
128
+ type: "component",
129
+ category: "data-display",
130
+ aliases: [],
131
+ files: [
132
+ "primitives/Avatar/Avatar.tsx",
133
+ "primitives/Avatar/Avatar.types.ts",
134
+ "primitives/Avatar/Avatar.variants.ts"
135
+ ],
136
+ remoteFiles: [
137
+ {
138
+ path: "primitives/Avatar/Avatar.tsx"
139
+ },
140
+ {
141
+ path: "primitives/Avatar/Avatar.types.ts"
142
+ },
143
+ {
144
+ path: "primitives/Avatar/Avatar.variants.ts"
145
+ }
146
+ ],
147
+ dependencies: [
148
+ "@base-ui/react",
149
+ "class-variance-authority",
150
+ "clsx",
151
+ "tailwind-merge"
152
+ ],
153
+ registryDependencies: [],
154
+ utilities: ["cn"],
155
+ styles: ["theme"],
156
+ target: "src/components/ui/Avatar"
157
+ };
158
+
159
+ // src/items/badge.ts
160
+ var badgeRegistryItem = {
161
+ name: "badge",
162
+ canonicalName: "Badge",
163
+ version: "0.0.1",
164
+ type: "component",
165
+ category: "data-display",
166
+ aliases: ["tag", "label"],
167
+ files: [
168
+ "primitives/Badge/Badge.tsx",
169
+ "primitives/Badge/Badge.types.ts",
170
+ "primitives/Badge/Badge.variants.ts"
171
+ ],
172
+ remoteFiles: [
173
+ {
174
+ path: "primitives/Badge/Badge.tsx"
175
+ },
176
+ {
177
+ path: "primitives/Badge/Badge.types.ts"
178
+ },
179
+ {
180
+ path: "primitives/Badge/Badge.variants.ts"
181
+ }
182
+ ],
183
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
184
+ registryDependencies: [],
185
+ utilities: ["cn"],
186
+ styles: ["theme"],
187
+ target: "src/components/ui/Badge"
188
+ };
189
+
190
+ // src/items/button.ts
191
+ var buttonRegistryItem = {
192
+ name: "button",
193
+ canonicalName: "Button",
194
+ version: "0.0.1",
195
+ type: "component",
196
+ category: "actions",
197
+ aliases: ["btn"],
198
+ files: [
199
+ "primitives/Button/Button.tsx",
200
+ "primitives/Button/Button.types.ts",
201
+ "primitives/Button/Button.variants.ts"
202
+ ],
203
+ remoteFiles: [
204
+ {
205
+ path: "primitives/Button/Button.tsx"
206
+ },
207
+ {
208
+ path: "primitives/Button/Button.types.ts"
209
+ },
210
+ {
211
+ path: "primitives/Button/Button.variants.ts"
212
+ }
213
+ ],
214
+ dependencies: [
215
+ "@base-ui/react",
216
+ "class-variance-authority",
217
+ "clsx",
218
+ "tailwind-merge"
219
+ ],
220
+ registryDependencies: [],
221
+ utilities: ["cn"],
222
+ styles: ["theme"],
223
+ target: "src/components/ui/Button"
224
+ };
225
+
226
+ // src/items/card.ts
227
+ var cardRegistryItem = {
228
+ name: "card",
229
+ canonicalName: "Card",
230
+ version: "0.0.1",
231
+ type: "component",
232
+ category: "layout",
233
+ aliases: ["panel", "surface"],
234
+ files: [
235
+ "primitives/Card/Card.tsx",
236
+ "primitives/Card/Card.types.ts",
237
+ "primitives/Card/Card.variants.ts"
238
+ ],
239
+ remoteFiles: [
240
+ {
241
+ path: "primitives/Card/Card.tsx"
242
+ },
243
+ {
244
+ path: "primitives/Card/Card.types.ts"
245
+ },
246
+ {
247
+ path: "primitives/Card/Card.variants.ts"
248
+ }
249
+ ],
250
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
251
+ registryDependencies: [],
252
+ utilities: ["cn"],
253
+ styles: ["theme"],
254
+ target: "src/components/ui/Card"
255
+ };
256
+
257
+ // src/items/checkbox.ts
258
+ var checkboxRegistryItem = {
259
+ name: "checkbox",
260
+ canonicalName: "Checkbox",
261
+ version: "0.0.2",
262
+ type: "component",
263
+ category: "forms",
264
+ aliases: ["check"],
265
+ files: [
266
+ "primitives/Checkbox/Checkbox.tsx",
267
+ "primitives/Checkbox/Checkbox.types.ts",
268
+ "primitives/Checkbox/Checkbox.variants.ts"
269
+ ],
270
+ remoteFiles: [
271
+ {
272
+ path: "primitives/Checkbox/Checkbox.tsx"
273
+ },
274
+ {
275
+ path: "primitives/Checkbox/Checkbox.types.ts"
276
+ },
277
+ {
278
+ path: "primitives/Checkbox/Checkbox.variants.ts"
279
+ }
280
+ ],
281
+ dependencies: [
282
+ "@base-ui/react",
283
+ "class-variance-authority",
284
+ "clsx",
285
+ "tailwind-merge"
286
+ ],
287
+ registryDependencies: [],
288
+ utilities: ["cn"],
289
+ styles: ["theme"],
290
+ target: "src/components/ui/Checkbox"
291
+ };
292
+
293
+ // src/items/collapsible.ts
294
+ var collapsibleRegistryItem = {
295
+ name: "collapsible",
296
+ canonicalName: "Collapsible",
297
+ version: "0.0.1",
298
+ type: "component",
299
+ category: "layout",
300
+ aliases: [],
301
+ files: [
302
+ "primitives/Collapsible/Collapsible.tsx",
303
+ "primitives/Collapsible/Collapsible.types.ts",
304
+ "primitives/Collapsible/Collapsible.variants.ts"
305
+ ],
306
+ remoteFiles: [
307
+ {
308
+ path: "primitives/Collapsible/Collapsible.tsx"
309
+ },
310
+ {
311
+ path: "primitives/Collapsible/Collapsible.types.ts"
312
+ },
313
+ {
314
+ path: "primitives/Collapsible/Collapsible.variants.ts"
315
+ }
316
+ ],
317
+ dependencies: [
318
+ "@base-ui/react",
319
+ "class-variance-authority",
320
+ "lucide-react",
321
+ "clsx",
322
+ "tailwind-merge"
323
+ ],
324
+ registryDependencies: [],
325
+ utilities: ["cn"],
326
+ styles: ["theme"],
327
+ target: "src/components/ui/Collapsible"
328
+ };
329
+
330
+ // src/items/context-menu.ts
331
+ var contextMenuRegistryItem = {
332
+ name: "context-menu",
333
+ canonicalName: "ContextMenu",
334
+ version: "0.0.1",
335
+ type: "component",
336
+ category: "overlays",
337
+ aliases: [],
338
+ files: [
339
+ "primitives/ContextMenu/ContextMenu.tsx",
340
+ "primitives/ContextMenu/ContextMenu.types.ts",
341
+ "primitives/ContextMenu/ContextMenu.variants.ts"
342
+ ],
343
+ remoteFiles: [
344
+ {
345
+ path: "primitives/ContextMenu/ContextMenu.tsx"
346
+ },
347
+ {
348
+ path: "primitives/ContextMenu/ContextMenu.types.ts"
349
+ },
350
+ {
351
+ path: "primitives/ContextMenu/ContextMenu.variants.ts"
352
+ }
353
+ ],
354
+ dependencies: [
355
+ "@base-ui/react",
356
+ "class-variance-authority",
357
+ "lucide-react",
358
+ "clsx",
359
+ "tailwind-merge"
360
+ ],
361
+ registryDependencies: [],
362
+ utilities: ["cn"],
363
+ styles: ["theme"],
364
+ target: "src/components/ui/ContextMenu"
365
+ };
366
+
367
+ // src/items/dialog.ts
368
+ var dialogRegistryItem = {
369
+ name: "dialog",
370
+ canonicalName: "Dialog",
371
+ version: "0.0.1",
372
+ type: "component",
373
+ category: "overlays",
374
+ aliases: [],
375
+ files: [
376
+ "primitives/Dialog/Dialog.tsx",
377
+ "primitives/Dialog/Dialog.types.ts",
378
+ "primitives/Dialog/Dialog.variants.ts"
379
+ ],
380
+ remoteFiles: [
381
+ {
382
+ path: "primitives/Dialog/Dialog.tsx"
383
+ },
384
+ {
385
+ path: "primitives/Dialog/Dialog.types.ts"
386
+ },
387
+ {
388
+ path: "primitives/Dialog/Dialog.variants.ts"
389
+ }
390
+ ],
391
+ dependencies: [
392
+ "@base-ui/react",
393
+ "class-variance-authority",
394
+ "lucide-react",
395
+ "clsx",
396
+ "tailwind-merge"
397
+ ],
398
+ registryDependencies: [],
399
+ utilities: ["cn"],
400
+ styles: ["theme"],
401
+ target: "src/components/ui/Dialog"
402
+ };
403
+
404
+ // src/items/drawer.ts
405
+ var drawerRegistryItem = {
406
+ name: "drawer",
407
+ canonicalName: "Drawer",
408
+ version: "0.0.2",
409
+ type: "component",
410
+ category: "overlays",
411
+ aliases: [],
412
+ files: [
413
+ "primitives/Drawer/Drawer.tsx",
414
+ "primitives/Drawer/Drawer.types.ts",
415
+ "primitives/Drawer/Drawer.variants.ts"
416
+ ],
417
+ remoteFiles: [
418
+ {
419
+ path: "primitives/Drawer/Drawer.tsx"
420
+ },
421
+ {
422
+ path: "primitives/Drawer/Drawer.types.ts"
423
+ },
424
+ {
425
+ path: "primitives/Drawer/Drawer.variants.ts"
426
+ }
427
+ ],
428
+ dependencies: [
429
+ "@base-ui/react",
430
+ "class-variance-authority",
431
+ "lucide-react",
432
+ "clsx",
433
+ "tailwind-merge"
434
+ ],
435
+ registryDependencies: [],
436
+ utilities: ["cn"],
437
+ styles: ["theme"],
438
+ target: "src/components/ui/Drawer"
439
+ };
440
+
441
+ // src/items/field.ts
442
+ var fieldRegistryItem = {
443
+ name: "field",
444
+ canonicalName: "Field",
445
+ version: "0.0.1",
446
+ type: "component",
447
+ category: "forms",
448
+ aliases: [],
449
+ files: [
450
+ "primitives/Field/Field.tsx",
451
+ "primitives/Field/Field.types.ts",
452
+ "primitives/Field/Field.variants.ts"
453
+ ],
454
+ remoteFiles: [
455
+ {
456
+ path: "primitives/Field/Field.tsx"
457
+ },
458
+ {
459
+ path: "primitives/Field/Field.types.ts"
460
+ },
461
+ {
462
+ path: "primitives/Field/Field.variants.ts"
463
+ }
464
+ ],
465
+ dependencies: [
466
+ "@base-ui/react",
467
+ "class-variance-authority",
468
+ "clsx",
469
+ "tailwind-merge"
470
+ ],
471
+ registryDependencies: [],
472
+ utilities: ["cn"],
473
+ styles: ["theme"],
474
+ target: "src/components/ui/Field"
475
+ };
476
+
477
+ // src/items/fieldset.ts
478
+ var fieldsetRegistryItem = {
479
+ name: "fieldset",
480
+ canonicalName: "Fieldset",
481
+ version: "0.0.1",
482
+ type: "component",
483
+ category: "forms",
484
+ aliases: [],
485
+ files: [
486
+ "primitives/Fieldset/Fieldset.tsx",
487
+ "primitives/Fieldset/Fieldset.types.ts",
488
+ "primitives/Fieldset/Fieldset.variants.ts"
489
+ ],
490
+ remoteFiles: [
491
+ {
492
+ path: "primitives/Fieldset/Fieldset.tsx"
493
+ },
494
+ {
495
+ path: "primitives/Fieldset/Fieldset.types.ts"
496
+ },
497
+ {
498
+ path: "primitives/Fieldset/Fieldset.variants.ts"
499
+ }
500
+ ],
501
+ dependencies: [
502
+ "@base-ui/react",
503
+ "class-variance-authority",
504
+ "clsx",
505
+ "tailwind-merge"
506
+ ],
507
+ registryDependencies: [],
508
+ utilities: ["cn"],
509
+ styles: ["theme"],
510
+ target: "src/components/ui/Fieldset"
511
+ };
512
+
513
+ // src/items/form.ts
514
+ var formRegistryItem = {
515
+ name: "form",
516
+ canonicalName: "Form",
517
+ version: "0.0.1",
518
+ type: "component",
519
+ category: "forms",
520
+ aliases: [],
521
+ files: [
522
+ "primitives/Form/Form.tsx",
523
+ "primitives/Form/Form.types.ts",
524
+ "primitives/Form/Form.variants.ts"
525
+ ],
526
+ remoteFiles: [
527
+ {
528
+ path: "primitives/Form/Form.tsx"
529
+ },
530
+ {
531
+ path: "primitives/Form/Form.types.ts"
532
+ },
533
+ {
534
+ path: "primitives/Form/Form.variants.ts"
535
+ }
536
+ ],
537
+ dependencies: [
538
+ "@base-ui/react",
539
+ "class-variance-authority",
540
+ "clsx",
541
+ "tailwind-merge"
542
+ ],
543
+ registryDependencies: [],
544
+ utilities: ["cn"],
545
+ styles: ["theme"],
546
+ target: "src/components/ui/Form"
547
+ };
548
+
549
+ // src/items/input.ts
550
+ var inputRegistryItem = {
551
+ name: "input",
552
+ canonicalName: "Input",
553
+ version: "0.0.1",
554
+ type: "component",
555
+ category: "forms",
556
+ aliases: ["ipt"],
557
+ files: [
558
+ "primitives/Input/Input.tsx",
559
+ "primitives/Input/Input.types.ts",
560
+ "primitives/Input/Input.variants.ts"
561
+ ],
562
+ remoteFiles: [
563
+ {
564
+ path: "primitives/Input/Input.tsx"
565
+ },
566
+ {
567
+ path: "primitives/Input/Input.types.ts"
568
+ },
569
+ {
570
+ path: "primitives/Input/Input.variants.ts"
571
+ }
572
+ ],
573
+ dependencies: [
574
+ "@base-ui/react",
575
+ "class-variance-authority",
576
+ "clsx",
577
+ "tailwind-merge"
578
+ ],
579
+ registryDependencies: [],
580
+ utilities: ["cn"],
581
+ styles: ["theme"],
582
+ target: "src/components/ui/Input"
583
+ };
584
+
585
+ // src/items/menu.ts
586
+ var menuRegistryItem = {
587
+ name: "menu",
588
+ canonicalName: "Menu",
589
+ version: "0.0.2",
590
+ type: "component",
591
+ category: "overlays",
592
+ aliases: [],
593
+ files: [
594
+ "primitives/Menu/Menu.tsx",
595
+ "primitives/Menu/Menu.types.ts",
596
+ "primitives/Menu/Menu.variants.ts"
597
+ ],
598
+ remoteFiles: [
599
+ {
600
+ path: "primitives/Menu/Menu.tsx"
601
+ },
602
+ {
603
+ path: "primitives/Menu/Menu.types.ts"
604
+ },
605
+ {
606
+ path: "primitives/Menu/Menu.variants.ts"
607
+ }
608
+ ],
609
+ dependencies: [
610
+ "@base-ui/react",
611
+ "class-variance-authority",
612
+ "lucide-react",
613
+ "clsx",
614
+ "tailwind-merge"
615
+ ],
616
+ registryDependencies: [],
617
+ utilities: ["cn"],
618
+ styles: ["theme"],
619
+ target: "src/components/ui/Menu"
620
+ };
621
+
622
+ // src/items/menubar.ts
623
+ var menubarRegistryItem = {
624
+ name: "menubar",
625
+ canonicalName: "Menubar",
626
+ version: "0.0.1",
627
+ type: "component",
628
+ category: "overlays",
629
+ aliases: [],
630
+ files: [
631
+ "primitives/Menubar/Menubar.tsx",
632
+ "primitives/Menubar/Menubar.types.ts",
633
+ "primitives/Menubar/Menubar.variants.ts"
634
+ ],
635
+ remoteFiles: [
636
+ {
637
+ path: "primitives/Menubar/Menubar.tsx"
638
+ },
639
+ {
640
+ path: "primitives/Menubar/Menubar.types.ts"
641
+ },
642
+ {
643
+ path: "primitives/Menubar/Menubar.variants.ts"
644
+ }
645
+ ],
646
+ dependencies: [
647
+ "@base-ui/react",
648
+ "class-variance-authority",
649
+ "clsx",
650
+ "tailwind-merge"
651
+ ],
652
+ registryDependencies: [],
653
+ utilities: ["cn"],
654
+ styles: ["theme"],
655
+ target: "src/components/ui/Menubar"
656
+ };
657
+
658
+ // src/items/meter.ts
659
+ var meterRegistryItem = {
660
+ name: "meter",
661
+ canonicalName: "Meter",
662
+ version: "0.0.1",
663
+ type: "component",
664
+ category: "data-display",
665
+ aliases: [],
666
+ files: [
667
+ "primitives/Meter/Meter.tsx",
668
+ "primitives/Meter/Meter.types.ts",
669
+ "primitives/Meter/Meter.variants.ts"
670
+ ],
671
+ remoteFiles: [
672
+ {
673
+ path: "primitives/Meter/Meter.tsx"
674
+ },
675
+ {
676
+ path: "primitives/Meter/Meter.types.ts"
677
+ },
678
+ {
679
+ path: "primitives/Meter/Meter.variants.ts"
680
+ }
681
+ ],
682
+ dependencies: [
683
+ "@base-ui/react",
684
+ "class-variance-authority",
685
+ "clsx",
686
+ "tailwind-merge"
687
+ ],
688
+ registryDependencies: [],
689
+ utilities: ["cn"],
690
+ styles: ["theme"],
691
+ target: "src/components/ui/Meter"
692
+ };
693
+
694
+ // src/items/number-field.ts
695
+ var numberFieldRegistryItem = {
696
+ name: "number-field",
697
+ canonicalName: "NumberField",
698
+ version: "0.0.1",
699
+ type: "component",
700
+ category: "forms",
701
+ aliases: [],
702
+ files: [
703
+ "primitives/NumberField/NumberField.tsx",
704
+ "primitives/NumberField/NumberField.types.ts",
705
+ "primitives/NumberField/NumberField.variants.ts"
706
+ ],
707
+ remoteFiles: [
708
+ {
709
+ path: "primitives/NumberField/NumberField.tsx"
710
+ },
711
+ {
712
+ path: "primitives/NumberField/NumberField.types.ts"
713
+ },
714
+ {
715
+ path: "primitives/NumberField/NumberField.variants.ts"
716
+ }
717
+ ],
718
+ dependencies: [
719
+ "@base-ui/react",
720
+ "class-variance-authority",
721
+ "clsx",
722
+ "tailwind-merge"
723
+ ],
724
+ registryDependencies: [],
725
+ utilities: ["cn"],
726
+ styles: ["theme"],
727
+ target: "src/components/ui/NumberField"
728
+ };
729
+
730
+ // src/items/navigation-menu.ts
731
+ var navigationMenuRegistryItem = {
732
+ name: "navigation-menu",
733
+ canonicalName: "NavigationMenu",
734
+ version: "0.0.1",
735
+ type: "component",
736
+ category: "overlays",
737
+ aliases: [],
738
+ files: [
739
+ "primitives/NavigationMenu/NavigationMenu.tsx",
740
+ "primitives/NavigationMenu/NavigationMenu.types.ts",
741
+ "primitives/NavigationMenu/NavigationMenu.variants.ts"
742
+ ],
743
+ remoteFiles: [
744
+ {
745
+ path: "primitives/NavigationMenu/NavigationMenu.tsx"
746
+ },
747
+ {
748
+ path: "primitives/NavigationMenu/NavigationMenu.types.ts"
749
+ },
750
+ {
751
+ path: "primitives/NavigationMenu/NavigationMenu.variants.ts"
752
+ }
753
+ ],
754
+ dependencies: [
755
+ "@base-ui/react",
756
+ "class-variance-authority",
757
+ "lucide-react",
758
+ "clsx",
759
+ "tailwind-merge"
760
+ ],
761
+ registryDependencies: [],
762
+ utilities: ["cn"],
763
+ styles: ["theme"],
764
+ target: "src/components/ui/NavigationMenu"
765
+ };
766
+
767
+ // src/items/popover.ts
768
+ var popoverRegistryItem = {
769
+ name: "popover",
770
+ canonicalName: "Popover",
771
+ version: "0.0.1",
772
+ type: "component",
773
+ category: "overlays",
774
+ aliases: [],
775
+ files: [
776
+ "primitives/Popover/Popover.tsx",
777
+ "primitives/Popover/Popover.types.ts",
778
+ "primitives/Popover/Popover.variants.ts"
779
+ ],
780
+ remoteFiles: [
781
+ {
782
+ path: "primitives/Popover/Popover.tsx"
783
+ },
784
+ {
785
+ path: "primitives/Popover/Popover.types.ts"
786
+ },
787
+ {
788
+ path: "primitives/Popover/Popover.variants.ts"
789
+ }
790
+ ],
791
+ dependencies: [
792
+ "@base-ui/react",
793
+ "class-variance-authority",
794
+ "lucide-react",
795
+ "clsx",
796
+ "tailwind-merge"
797
+ ],
798
+ registryDependencies: [],
799
+ utilities: ["cn"],
800
+ styles: ["theme"],
801
+ target: "src/components/ui/Popover"
802
+ };
803
+
804
+ // src/items/preview-card.ts
805
+ var previewCardRegistryItem = {
806
+ name: "preview-card",
807
+ canonicalName: "PreviewCard",
808
+ version: "0.0.1",
809
+ type: "component",
810
+ category: "overlays",
811
+ aliases: [],
812
+ files: [
813
+ "primitives/PreviewCard/PreviewCard.tsx",
814
+ "primitives/PreviewCard/PreviewCard.types.ts",
815
+ "primitives/PreviewCard/PreviewCard.variants.ts"
816
+ ],
817
+ remoteFiles: [
818
+ {
819
+ path: "primitives/PreviewCard/PreviewCard.tsx"
820
+ },
821
+ {
822
+ path: "primitives/PreviewCard/PreviewCard.types.ts"
823
+ },
824
+ {
825
+ path: "primitives/PreviewCard/PreviewCard.variants.ts"
826
+ }
827
+ ],
828
+ dependencies: [
829
+ "@base-ui/react",
830
+ "class-variance-authority",
831
+ "clsx",
832
+ "tailwind-merge"
833
+ ],
834
+ registryDependencies: [],
835
+ utilities: ["cn"],
836
+ styles: ["theme"],
837
+ target: "src/components/ui/PreviewCard"
838
+ };
839
+
840
+ // src/items/progress.ts
841
+ var progressRegistryItem = {
842
+ name: "progress",
843
+ canonicalName: "Progress",
844
+ version: "0.0.2",
845
+ type: "component",
846
+ category: "feedback",
847
+ aliases: ["progress-bar"],
848
+ files: [
849
+ "primitives/Progress/Progress.tsx",
850
+ "primitives/Progress/Progress.types.ts",
851
+ "primitives/Progress/Progress.variants.ts"
852
+ ],
853
+ remoteFiles: [
854
+ {
855
+ path: "primitives/Progress/Progress.tsx"
856
+ },
857
+ {
858
+ path: "primitives/Progress/Progress.types.ts"
859
+ },
860
+ {
861
+ path: "primitives/Progress/Progress.variants.ts"
862
+ }
863
+ ],
864
+ dependencies: [
865
+ "@base-ui/react",
866
+ "class-variance-authority",
867
+ "clsx",
868
+ "tailwind-merge"
869
+ ],
870
+ registryDependencies: [],
871
+ utilities: ["cn"],
872
+ styles: ["theme"],
873
+ target: "src/components/ui/Progress"
874
+ };
875
+
876
+ // src/items/radio-group.ts
877
+ var radioGroupRegistryItem = {
878
+ name: "radio-group",
879
+ canonicalName: "RadioGroup",
880
+ version: "0.0.1",
881
+ type: "component",
882
+ category: "forms",
883
+ aliases: ["radio"],
884
+ files: [
885
+ "primitives/RadioGroup/RadioGroup.tsx",
886
+ "primitives/RadioGroup/RadioGroup.types.ts",
887
+ "primitives/RadioGroup/RadioGroup.variants.ts"
888
+ ],
889
+ remoteFiles: [
890
+ {
891
+ path: "primitives/RadioGroup/RadioGroup.tsx"
892
+ },
893
+ {
894
+ path: "primitives/RadioGroup/RadioGroup.types.ts"
895
+ },
896
+ {
897
+ path: "primitives/RadioGroup/RadioGroup.variants.ts"
898
+ }
899
+ ],
900
+ dependencies: [
901
+ "@base-ui/react",
902
+ "class-variance-authority",
903
+ "clsx",
904
+ "tailwind-merge"
905
+ ],
906
+ registryDependencies: [],
907
+ utilities: ["cn"],
908
+ styles: ["theme"],
909
+ target: "src/components/ui/RadioGroup"
910
+ };
911
+
912
+ // src/items/select.ts
913
+ var selectRegistryItem = {
914
+ name: "select",
915
+ canonicalName: "Select",
916
+ version: "0.0.1",
917
+ type: "component",
918
+ category: "forms",
919
+ aliases: [],
920
+ files: [
921
+ "primitives/Select/Select.tsx",
922
+ "primitives/Select/Select.types.ts",
923
+ "primitives/Select/Select.variants.ts"
924
+ ],
925
+ remoteFiles: [
926
+ {
927
+ path: "primitives/Select/Select.tsx"
928
+ },
929
+ {
930
+ path: "primitives/Select/Select.types.ts"
931
+ },
932
+ {
933
+ path: "primitives/Select/Select.variants.ts"
934
+ }
935
+ ],
936
+ dependencies: [
937
+ "@base-ui/react",
938
+ "class-variance-authority",
939
+ "lucide-react",
940
+ "clsx",
941
+ "tailwind-merge"
942
+ ],
943
+ registryDependencies: [],
944
+ utilities: ["cn"],
945
+ styles: ["theme"],
946
+ target: "src/components/ui/Select"
947
+ };
948
+
949
+ // src/items/separator.ts
950
+ var separatorRegistryItem = {
951
+ name: "separator",
952
+ canonicalName: "Separator",
953
+ version: "0.0.1",
954
+ type: "component",
955
+ category: "layout",
956
+ aliases: ["divider"],
957
+ files: [
958
+ "primitives/Separator/Separator.tsx",
959
+ "primitives/Separator/Separator.types.ts",
960
+ "primitives/Separator/Separator.variants.ts"
961
+ ],
962
+ remoteFiles: [
963
+ {
964
+ path: "primitives/Separator/Separator.tsx"
965
+ },
966
+ {
967
+ path: "primitives/Separator/Separator.types.ts"
968
+ },
969
+ {
970
+ path: "primitives/Separator/Separator.variants.ts"
971
+ }
972
+ ],
973
+ dependencies: [
974
+ "@base-ui/react",
975
+ "class-variance-authority",
976
+ "clsx",
977
+ "tailwind-merge"
978
+ ],
979
+ registryDependencies: [],
980
+ utilities: ["cn"],
981
+ styles: ["theme"],
982
+ target: "src/components/ui/Separator"
983
+ };
984
+
985
+ // src/items/slider.ts
986
+ var sliderRegistryItem = {
987
+ name: "slider",
988
+ canonicalName: "Slider",
989
+ version: "0.0.2",
990
+ type: "component",
991
+ category: "forms",
992
+ aliases: ["range"],
993
+ files: [
994
+ "primitives/Slider/Slider.tsx",
995
+ "primitives/Slider/Slider.types.ts",
996
+ "primitives/Slider/Slider.variants.ts"
997
+ ],
998
+ remoteFiles: [
999
+ {
1000
+ path: "primitives/Slider/Slider.tsx"
1001
+ },
1002
+ {
1003
+ path: "primitives/Slider/Slider.types.ts"
1004
+ },
1005
+ {
1006
+ path: "primitives/Slider/Slider.variants.ts"
1007
+ }
1008
+ ],
1009
+ dependencies: [
1010
+ "@base-ui/react",
1011
+ "class-variance-authority",
1012
+ "clsx",
1013
+ "tailwind-merge"
1014
+ ],
1015
+ registryDependencies: [],
1016
+ utilities: ["cn"],
1017
+ styles: ["theme"],
1018
+ target: "src/components/ui/Slider"
1019
+ };
1020
+
1021
+ // src/items/switch.ts
1022
+ var switchRegistryItem = {
1023
+ name: "switch",
1024
+ canonicalName: "Switch",
1025
+ version: "0.0.2",
1026
+ type: "component",
1027
+ category: "forms",
1028
+ aliases: ["toggle-switch"],
1029
+ files: [
1030
+ "primitives/Switch/Switch.tsx",
1031
+ "primitives/Switch/Switch.types.ts",
1032
+ "primitives/Switch/Switch.variants.ts"
1033
+ ],
1034
+ remoteFiles: [
1035
+ {
1036
+ path: "primitives/Switch/Switch.tsx"
1037
+ },
1038
+ {
1039
+ path: "primitives/Switch/Switch.types.ts"
1040
+ },
1041
+ {
1042
+ path: "primitives/Switch/Switch.variants.ts"
1043
+ }
1044
+ ],
1045
+ dependencies: [
1046
+ "@base-ui/react",
1047
+ "class-variance-authority",
1048
+ "clsx",
1049
+ "tailwind-merge"
1050
+ ],
1051
+ registryDependencies: [],
1052
+ utilities: ["cn"],
1053
+ styles: ["theme"],
1054
+ target: "src/components/ui/Switch"
1055
+ };
1056
+
1057
+ // src/items/tabs.ts
1058
+ var tabsRegistryItem = {
1059
+ name: "tabs",
1060
+ canonicalName: "Tabs",
1061
+ version: "0.0.1",
1062
+ type: "component",
1063
+ category: "navigation",
1064
+ aliases: ["tab"],
1065
+ files: [
1066
+ "primitives/Tabs/Tabs.tsx",
1067
+ "primitives/Tabs/Tabs.types.ts",
1068
+ "primitives/Tabs/Tabs.variants.ts"
1069
+ ],
1070
+ remoteFiles: [
1071
+ {
1072
+ path: "primitives/Tabs/Tabs.tsx"
1073
+ },
1074
+ {
1075
+ path: "primitives/Tabs/Tabs.types.ts"
1076
+ },
1077
+ {
1078
+ path: "primitives/Tabs/Tabs.variants.ts"
1079
+ }
1080
+ ],
1081
+ dependencies: [
1082
+ "@base-ui/react",
1083
+ "class-variance-authority",
1084
+ "clsx",
1085
+ "tailwind-merge"
1086
+ ],
1087
+ registryDependencies: [],
1088
+ utilities: ["cn"],
1089
+ styles: ["theme"],
1090
+ target: "src/components/ui/Tabs"
1091
+ };
1092
+
1093
+ // src/items/textarea.ts
1094
+ var textareaRegistryItem = {
1095
+ name: "textarea",
1096
+ canonicalName: "Textarea",
1097
+ version: "0.0.1",
1098
+ type: "component",
1099
+ category: "forms",
1100
+ aliases: [],
1101
+ files: [
1102
+ "primitives/Textarea/Textarea.tsx",
1103
+ "primitives/Textarea/Textarea.types.ts",
1104
+ "primitives/Textarea/Textarea.variants.ts"
1105
+ ],
1106
+ remoteFiles: [
1107
+ {
1108
+ path: "primitives/Textarea/Textarea.tsx"
1109
+ },
1110
+ {
1111
+ path: "primitives/Textarea/Textarea.types.ts"
1112
+ },
1113
+ {
1114
+ path: "primitives/Textarea/Textarea.variants.ts"
1115
+ }
1116
+ ],
1117
+ dependencies: [
1118
+ "@base-ui/react",
1119
+ "class-variance-authority",
1120
+ "clsx",
1121
+ "tailwind-merge"
1122
+ ],
1123
+ registryDependencies: [],
1124
+ utilities: ["cn"],
1125
+ styles: ["theme"],
1126
+ target: "src/components/ui/Textarea"
1127
+ };
1128
+
1129
+ // src/items/toast.ts
1130
+ var toastRegistryItem = {
1131
+ name: "toast",
1132
+ canonicalName: "Toast",
1133
+ version: "0.0.1",
1134
+ type: "component",
1135
+ category: "feedback",
1136
+ aliases: [],
1137
+ files: [
1138
+ "primitives/Toast/Toast.tsx",
1139
+ "primitives/Toast/Toast.types.ts",
1140
+ "primitives/Toast/Toast.variants.ts"
1141
+ ],
1142
+ remoteFiles: [
1143
+ {
1144
+ path: "primitives/Toast/Toast.tsx"
1145
+ },
1146
+ {
1147
+ path: "primitives/Toast/Toast.types.ts"
1148
+ },
1149
+ {
1150
+ path: "primitives/Toast/Toast.variants.ts"
1151
+ }
1152
+ ],
1153
+ dependencies: [
1154
+ "@base-ui/react",
1155
+ "class-variance-authority",
1156
+ "lucide-react",
1157
+ "clsx",
1158
+ "tailwind-merge"
1159
+ ],
1160
+ registryDependencies: [],
1161
+ utilities: ["cn"],
1162
+ styles: ["theme"],
1163
+ target: "src/components/ui/Toast"
1164
+ };
1165
+
1166
+ // src/items/toggle-group.ts
1167
+ var toggleGroupRegistryItem = {
1168
+ name: "toggle-group",
1169
+ canonicalName: "ToggleGroup",
1170
+ version: "0.0.1",
1171
+ type: "component",
1172
+ category: "actions",
1173
+ aliases: [],
1174
+ files: [
1175
+ "primitives/ToggleGroup/ToggleGroup.tsx",
1176
+ "primitives/ToggleGroup/ToggleGroup.types.ts",
1177
+ "primitives/ToggleGroup/ToggleGroup.variants.ts"
1178
+ ],
1179
+ remoteFiles: [
1180
+ {
1181
+ path: "primitives/ToggleGroup/ToggleGroup.tsx"
1182
+ },
1183
+ {
1184
+ path: "primitives/ToggleGroup/ToggleGroup.types.ts"
1185
+ },
1186
+ {
1187
+ path: "primitives/ToggleGroup/ToggleGroup.variants.ts"
1188
+ }
1189
+ ],
1190
+ dependencies: [
1191
+ "@base-ui/react",
1192
+ "class-variance-authority",
1193
+ "clsx",
1194
+ "tailwind-merge"
1195
+ ],
1196
+ registryDependencies: [],
1197
+ utilities: ["cn"],
1198
+ styles: ["theme"],
1199
+ target: "src/components/ui/ToggleGroup"
1200
+ };
1201
+
1202
+ // src/items/toggle.ts
1203
+ var toggleRegistryItem = {
1204
+ name: "toggle",
1205
+ canonicalName: "Toggle",
1206
+ version: "0.0.1",
1207
+ type: "component",
1208
+ category: "actions",
1209
+ aliases: ["toggle-button"],
1210
+ files: [
1211
+ "primitives/Toggle/Toggle.tsx",
1212
+ "primitives/Toggle/Toggle.types.ts",
1213
+ "primitives/Toggle/Toggle.variants.ts"
1214
+ ],
1215
+ remoteFiles: [
1216
+ {
1217
+ path: "primitives/Toggle/Toggle.tsx"
1218
+ },
1219
+ {
1220
+ path: "primitives/Toggle/Toggle.types.ts"
1221
+ },
1222
+ {
1223
+ path: "primitives/Toggle/Toggle.variants.ts"
1224
+ }
1225
+ ],
1226
+ dependencies: [
1227
+ "@base-ui/react",
1228
+ "class-variance-authority",
1229
+ "clsx",
1230
+ "tailwind-merge"
1231
+ ],
1232
+ registryDependencies: [],
1233
+ utilities: ["cn"],
1234
+ styles: ["theme"],
1235
+ target: "src/components/ui/Toggle"
1236
+ };
1237
+
1238
+ // src/items/toolbar.ts
1239
+ var toolbarRegistryItem = {
1240
+ name: "toolbar",
1241
+ canonicalName: "Toolbar",
1242
+ version: "0.0.1",
1243
+ type: "component",
1244
+ category: "layout",
1245
+ aliases: [],
1246
+ files: [
1247
+ "primitives/Toolbar/Toolbar.tsx",
1248
+ "primitives/Toolbar/Toolbar.types.ts",
1249
+ "primitives/Toolbar/Toolbar.variants.ts"
1250
+ ],
1251
+ remoteFiles: [
1252
+ {
1253
+ path: "primitives/Toolbar/Toolbar.tsx"
1254
+ },
1255
+ {
1256
+ path: "primitives/Toolbar/Toolbar.types.ts"
1257
+ },
1258
+ {
1259
+ path: "primitives/Toolbar/Toolbar.variants.ts"
1260
+ }
1261
+ ],
1262
+ dependencies: [
1263
+ "@base-ui/react",
1264
+ "class-variance-authority",
1265
+ "clsx",
1266
+ "tailwind-merge"
1267
+ ],
1268
+ registryDependencies: [],
1269
+ utilities: ["cn"],
1270
+ styles: ["theme"],
1271
+ target: "src/components/ui/Toolbar"
1272
+ };
1273
+
1274
+ // src/items/tooltip.ts
1275
+ var tooltipRegistryItem = {
1276
+ name: "tooltip",
1277
+ canonicalName: "Tooltip",
1278
+ version: "0.0.1",
1279
+ type: "component",
1280
+ category: "overlays",
1281
+ aliases: ["hint"],
1282
+ files: [
1283
+ "primitives/Tooltip/Tooltip.tsx",
1284
+ "primitives/Tooltip/Tooltip.types.ts",
1285
+ "primitives/Tooltip/Tooltip.variants.ts"
1286
+ ],
1287
+ remoteFiles: [
1288
+ {
1289
+ path: "primitives/Tooltip/Tooltip.tsx"
1290
+ },
1291
+ {
1292
+ path: "primitives/Tooltip/Tooltip.types.ts"
1293
+ },
1294
+ {
1295
+ path: "primitives/Tooltip/Tooltip.variants.ts"
1296
+ }
1297
+ ],
1298
+ dependencies: [
1299
+ "@base-ui/react",
1300
+ "class-variance-authority",
1301
+ "clsx",
1302
+ "tailwind-merge"
1303
+ ],
1304
+ registryDependencies: [],
1305
+ utilities: ["cn"],
1306
+ styles: ["theme"],
1307
+ target: "src/components/ui/Tooltip"
1308
+ };
1309
+
1310
+ // src/items/scroll-area.ts
1311
+ var scrollAreaRegistryItem = {
1312
+ name: "scroll-area",
1313
+ canonicalName: "ScrollArea",
1314
+ version: "0.0.1",
1315
+ type: "component",
1316
+ category: "layout",
1317
+ aliases: ["scroll"],
1318
+ files: [
1319
+ "primitives/ScrollArea/ScrollArea.tsx",
1320
+ "primitives/ScrollArea/ScrollArea.types.ts",
1321
+ "primitives/ScrollArea/ScrollArea.variants.ts"
1322
+ ],
1323
+ remoteFiles: [
1324
+ {
1325
+ path: "primitives/ScrollArea/ScrollArea.tsx"
1326
+ },
1327
+ {
1328
+ path: "primitives/ScrollArea/ScrollArea.types.ts"
1329
+ },
1330
+ {
1331
+ path: "primitives/ScrollArea/ScrollArea.variants.ts"
1332
+ }
1333
+ ],
1334
+ dependencies: [
1335
+ "@base-ui/react",
1336
+ "class-variance-authority",
1337
+ "clsx",
1338
+ "tailwind-merge"
1339
+ ],
1340
+ registryDependencies: [],
1341
+ utilities: ["cn"],
1342
+ styles: ["theme"],
1343
+ target: "src/components/ui/ScrollArea"
1344
+ };
1345
+
1346
+ // src/items/dashboard-shell.ts
1347
+ var dashboardShellRegistryItem = {
1348
+ name: "dashboard-shell",
1349
+ canonicalName: "DashboardShell",
1350
+ version: "0.0.2",
1351
+ type: "block",
1352
+ category: "layout",
1353
+ aliases: ["dashboard-template"],
1354
+ files: [
1355
+ "templates/DashboardShell/DashboardShell.tsx",
1356
+ "templates/DashboardShell/DashboardShell.types.ts",
1357
+ "templates/DashboardShell/DashboardShell.variants.ts"
1358
+ ],
1359
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1360
+ registryDependencies: [],
1361
+ utilities: ["cn"],
1362
+ styles: ["theme"],
1363
+ target: "src/components/ui/DashboardShell"
1364
+ };
1365
+
1366
+ // src/items/form-field.ts
1367
+ var formFieldRegistryItem = {
1368
+ name: "form-field",
1369
+ canonicalName: "FormField",
1370
+ version: "0.0.2",
1371
+ type: "block",
1372
+ category: "blocks",
1373
+ aliases: [],
1374
+ files: [
1375
+ "blocks/FormField/FormField.tsx",
1376
+ "blocks/FormField/FormField.types.ts",
1377
+ "blocks/FormField/FormField.variants.ts"
1378
+ ],
1379
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1380
+ registryDependencies: ["field"],
1381
+ utilities: ["cn"],
1382
+ styles: ["theme"],
1383
+ target: "src/components/ui/FormField"
1384
+ };
1385
+
1386
+ // src/items/settings-panel.ts
1387
+ var settingsPanelRegistryItem = {
1388
+ name: "settings-panel",
1389
+ canonicalName: "SettingsPanel",
1390
+ version: "0.0.2",
1391
+ type: "block",
1392
+ category: "blocks",
1393
+ aliases: ["settings-section"],
1394
+ files: [
1395
+ "blocks/SettingsPanel/SettingsPanel.tsx",
1396
+ "blocks/SettingsPanel/SettingsPanel.types.ts",
1397
+ "blocks/SettingsPanel/SettingsPanel.variants.ts"
1398
+ ],
1399
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1400
+ registryDependencies: ["card"],
1401
+ utilities: ["cn"],
1402
+ styles: ["theme"],
1403
+ target: "src/components/ui/SettingsPanel"
1404
+ };
1405
+
1406
+ // src/items/sidebar.ts
1407
+ var sidebarRegistryItem = {
1408
+ name: "sidebar",
1409
+ canonicalName: "Sidebar",
1410
+ version: "0.0.2",
1411
+ type: "block",
1412
+ category: "blocks",
1413
+ aliases: [],
1414
+ files: [
1415
+ "blocks/Sidebar/Sidebar.tsx",
1416
+ "blocks/Sidebar/Sidebar.types.ts",
1417
+ "blocks/Sidebar/Sidebar.variants.ts"
1418
+ ],
1419
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1420
+ registryDependencies: ["button", "drawer", "scroll-area"],
1421
+ utilities: ["cn"],
1422
+ styles: ["theme"],
1423
+ target: "src/components/ui/Sidebar"
1424
+ };
1425
+
1426
+ // src/items/autocomplete.ts
1427
+ var autocompleteRegistryItem = {
1428
+ name: "autocomplete",
1429
+ canonicalName: "Autocomplete",
1430
+ version: "0.0.2",
1431
+ type: "component",
1432
+ category: "forms",
1433
+ aliases: [],
1434
+ files: [
1435
+ "primitives/Autocomplete/Autocomplete.tsx",
1436
+ "primitives/Autocomplete/Autocomplete.types.ts",
1437
+ "primitives/Autocomplete/Autocomplete.variants.ts"
1438
+ ],
1439
+ remoteFiles: [
1440
+ {
1441
+ path: "primitives/Autocomplete/Autocomplete.tsx"
1442
+ },
1443
+ {
1444
+ path: "primitives/Autocomplete/Autocomplete.types.ts"
1445
+ },
1446
+ {
1447
+ path: "primitives/Autocomplete/Autocomplete.variants.ts"
1448
+ }
1449
+ ],
1450
+ dependencies: [
1451
+ "@base-ui/react",
1452
+ "class-variance-authority",
1453
+ "lucide-react",
1454
+ "clsx",
1455
+ "tailwind-merge"
1456
+ ],
1457
+ registryDependencies: [],
1458
+ utilities: ["cn"],
1459
+ styles: ["theme"],
1460
+ target: "src/components/ui/Autocomplete"
1461
+ };
1462
+
1463
+ // src/items/checkbox-group.ts
1464
+ var checkboxGroupRegistryItem = {
1465
+ name: "checkbox-group",
1466
+ canonicalName: "CheckboxGroup",
1467
+ version: "0.0.1",
1468
+ type: "component",
1469
+ category: "forms",
1470
+ aliases: [],
1471
+ files: [
1472
+ "primitives/CheckboxGroup/CheckboxGroup.tsx",
1473
+ "primitives/CheckboxGroup/CheckboxGroup.types.ts",
1474
+ "primitives/CheckboxGroup/CheckboxGroup.variants.ts"
1475
+ ],
1476
+ remoteFiles: [
1477
+ {
1478
+ path: "primitives/CheckboxGroup/CheckboxGroup.tsx"
1479
+ },
1480
+ {
1481
+ path: "primitives/CheckboxGroup/CheckboxGroup.types.ts"
1482
+ },
1483
+ {
1484
+ path: "primitives/CheckboxGroup/CheckboxGroup.variants.ts"
1485
+ }
1486
+ ],
1487
+ dependencies: [
1488
+ "@base-ui/react",
1489
+ "class-variance-authority",
1490
+ "clsx",
1491
+ "tailwind-merge"
1492
+ ],
1493
+ registryDependencies: [],
1494
+ utilities: ["cn"],
1495
+ styles: ["theme"],
1496
+ target: "src/components/ui/CheckboxGroup"
1497
+ };
1498
+
1499
+ // src/items/combobox.ts
1500
+ var comboboxRegistryItem = {
1501
+ name: "combobox",
1502
+ canonicalName: "Combobox",
1503
+ version: "0.0.2",
1504
+ type: "component",
1505
+ category: "forms",
1506
+ aliases: [],
1507
+ files: [
1508
+ "primitives/Combobox/Combobox.tsx",
1509
+ "primitives/Combobox/Combobox.types.ts",
1510
+ "primitives/Combobox/Combobox.variants.ts"
1511
+ ],
1512
+ remoteFiles: [
1513
+ {
1514
+ path: "primitives/Combobox/Combobox.tsx"
1515
+ },
1516
+ {
1517
+ path: "primitives/Combobox/Combobox.types.ts"
1518
+ },
1519
+ {
1520
+ path: "primitives/Combobox/Combobox.variants.ts"
1521
+ }
1522
+ ],
1523
+ dependencies: [
1524
+ "@base-ui/react",
1525
+ "class-variance-authority",
1526
+ "lucide-react",
1527
+ "clsx",
1528
+ "tailwind-merge"
1529
+ ],
1530
+ registryDependencies: [],
1531
+ utilities: ["cn"],
1532
+ styles: ["theme"],
1533
+ target: "src/components/ui/Combobox"
1534
+ };
1535
+
1536
+ // src/items/auth-form.ts
1537
+ var authFormRegistryItem = {
1538
+ name: "auth-form",
1539
+ canonicalName: "AuthForm",
1540
+ version: "0.0.2",
1541
+ type: "block",
1542
+ category: "blocks",
1543
+ aliases: ["login-form"],
1544
+ files: [
1545
+ "blocks/AuthForm/AuthForm.tsx",
1546
+ "blocks/AuthForm/AuthForm.types.ts",
1547
+ "blocks/AuthForm/AuthForm.variants.ts"
1548
+ ],
1549
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1550
+ registryDependencies: ["card", "button", "form-field", "field"],
1551
+ utilities: ["cn"],
1552
+ styles: ["theme"],
1553
+ target: "src/components/ui/AuthForm"
1554
+ };
1555
+
1556
+ // src/items/command-palette.ts
1557
+ var commandPaletteRegistryItem = {
1558
+ name: "command-palette",
1559
+ canonicalName: "CommandPalette",
1560
+ version: "0.0.2",
1561
+ type: "block",
1562
+ category: "blocks",
1563
+ aliases: ["command-menu", "kbar"],
1564
+ files: [
1565
+ "blocks/CommandPalette/CommandPalette.tsx",
1566
+ "blocks/CommandPalette/CommandPalette.types.ts",
1567
+ "blocks/CommandPalette/CommandPalette.variants.ts"
1568
+ ],
1569
+ dependencies: ["class-variance-authority", "clsx", "tailwind-merge"],
1570
+ registryDependencies: ["dialog", "input", "scroll-area", "separator"],
1571
+ utilities: ["cn"],
1572
+ styles: ["theme"],
1573
+ target: "src/components/ui/CommandPalette"
1574
+ };
1575
+
1576
+ // src/items/otp-field.ts
1577
+ var otpFieldRegistryItem = {
1578
+ name: "otp-field",
1579
+ canonicalName: "OtpField",
1580
+ version: "0.0.1",
1581
+ type: "component",
1582
+ category: "forms",
1583
+ aliases: [],
1584
+ files: [
1585
+ "primitives/OtpField/OtpField.tsx",
1586
+ "primitives/OtpField/OtpField.types.ts",
1587
+ "primitives/OtpField/OtpField.variants.ts"
1588
+ ],
1589
+ remoteFiles: [
1590
+ {
1591
+ path: "primitives/OtpField/OtpField.tsx"
1592
+ },
1593
+ {
1594
+ path: "primitives/OtpField/OtpField.types.ts"
1595
+ },
1596
+ {
1597
+ path: "primitives/OtpField/OtpField.variants.ts"
1598
+ }
1599
+ ],
1600
+ dependencies: [
1601
+ "@base-ui/react",
1602
+ "class-variance-authority",
1603
+ "clsx",
1604
+ "tailwind-merge"
1605
+ ],
1606
+ registryDependencies: [],
1607
+ utilities: ["cn"],
1608
+ styles: ["theme"],
1609
+ target: "src/components/ui/OtpField"
1610
+ };
1611
+
1612
+ // src/items/index.ts
1613
+ var registryItems = [
1614
+ accordionRegistryItem,
1615
+ alertDialogRegistryItem,
1616
+ alertRegistryItem,
1617
+ avatarRegistryItem,
1618
+ badgeRegistryItem,
1619
+ buttonRegistryItem,
1620
+ cardRegistryItem,
1621
+ checkboxRegistryItem,
1622
+ collapsibleRegistryItem,
1623
+ contextMenuRegistryItem,
1624
+ dialogRegistryItem,
1625
+ drawerRegistryItem,
1626
+ fieldRegistryItem,
1627
+ fieldsetRegistryItem,
1628
+ formRegistryItem,
1629
+ inputRegistryItem,
1630
+ menuRegistryItem,
1631
+ menubarRegistryItem,
1632
+ meterRegistryItem,
1633
+ numberFieldRegistryItem,
1634
+ navigationMenuRegistryItem,
1635
+ popoverRegistryItem,
1636
+ previewCardRegistryItem,
1637
+ progressRegistryItem,
1638
+ radioGroupRegistryItem,
1639
+ selectRegistryItem,
1640
+ separatorRegistryItem,
1641
+ sliderRegistryItem,
1642
+ switchRegistryItem,
1643
+ tabsRegistryItem,
1644
+ textareaRegistryItem,
1645
+ toastRegistryItem,
1646
+ toggleGroupRegistryItem,
1647
+ toggleRegistryItem,
1648
+ toolbarRegistryItem,
1649
+ tooltipRegistryItem,
1650
+ scrollAreaRegistryItem,
1651
+ formFieldRegistryItem,
1652
+ authFormRegistryItem,
1653
+ commandPaletteRegistryItem,
1654
+ settingsPanelRegistryItem,
1655
+ sidebarRegistryItem,
1656
+ dashboardShellRegistryItem,
1657
+ autocompleteRegistryItem,
1658
+ checkboxGroupRegistryItem,
1659
+ comboboxRegistryItem,
1660
+ otpFieldRegistryItem
1661
+ ];
1662
+
1663
+ // src/styles/theme.ts
1664
+ var themeRegistryStyle = {
1665
+ name: "theme",
1666
+ version: "0.0.1",
1667
+ files: [
1668
+ {
1669
+ path: "styles/tokens.css",
1670
+ target: "tokens.css"
1671
+ },
1672
+ {
1673
+ path: "styles/theme.css",
1674
+ target: "theme.css"
1675
+ }
1676
+ ]
1677
+ };
1678
+
1679
+ // src/utilities/cn.ts
1680
+ var cnRegistryUtility = {
1681
+ name: "cn",
1682
+ path: "shared/utils/cn.ts",
1683
+ target: "utils.ts"
1684
+ };
1685
+
1686
+ // src/validate-registry-item.ts
1687
+ var isEmpty = (value) => {
1688
+ return !value || !value.trim();
1689
+ };
1690
+ var consumerTarget = (canonicalName) => {
1691
+ return `src/components/ui/${canonicalName}`;
1692
+ };
1693
+ var primitiveTemplatePrefix = (canonicalName) => {
1694
+ return `primitives/${canonicalName}/`;
1695
+ };
1696
+ var blockTemplatePrefix = (canonicalName) => {
1697
+ return `blocks/${canonicalName}/`;
1698
+ };
1699
+ var templateTemplatePrefix = (canonicalName) => {
1700
+ return `templates/${canonicalName}/`;
1701
+ };
1702
+ var validateRegistryItem = (item) => {
1703
+ if (isEmpty(item.name)) {
1704
+ throw new Error("Registry item has invalid 'name'");
1705
+ }
1706
+ if (isEmpty(item.canonicalName)) {
1707
+ throw new Error(`Registry item "${item.name}" has invalid 'canonicalName'`);
1708
+ }
1709
+ if (isEmpty(item.version)) {
1710
+ throw new Error(`Registry item "${item.name}" has invalid 'version'`);
1711
+ }
1712
+ if (!item.files || !item.files.length) {
1713
+ throw new Error(
1714
+ `Registry item "${item.name}" must define at least one file`
1715
+ );
1716
+ }
1717
+ for (const file of item.files) {
1718
+ if (isEmpty(file)) {
1719
+ throw new Error(`Registry item "${item.name}" has invalid file entry`);
1720
+ }
1721
+ }
1722
+ if (item.dependencies) {
1723
+ for (const dep of item.dependencies) {
1724
+ if (isEmpty(dep)) {
1725
+ throw new Error(`Registry item "${item.name}" has invalid dependency`);
1726
+ }
1727
+ }
1728
+ }
1729
+ if (item.utilities) {
1730
+ for (const util of item.utilities) {
1731
+ if (isEmpty(util)) {
1732
+ throw new Error(`Registry item "${item.name}" has invalid utility`);
1733
+ }
1734
+ }
1735
+ }
1736
+ if (item.styles) {
1737
+ for (const style of item.styles) {
1738
+ if (isEmpty(style)) {
1739
+ throw new Error(`Registry item "${item.name}" has invalid style`);
1740
+ }
1741
+ }
1742
+ }
1743
+ if (isEmpty(item.target)) {
1744
+ throw new Error(`Registry item "${item.name}" has invalid target`);
1745
+ }
1746
+ const expectedTarget = consumerTarget(item.canonicalName);
1747
+ if (item.target !== expectedTarget) {
1748
+ throw new Error(
1749
+ `Registry item "${item.name}" target MUST be "${expectedTarget}" (got "${item.target}")`
1750
+ );
1751
+ }
1752
+ const installLayer = getInstallLayer(item);
1753
+ if (item.type === "component") {
1754
+ if (installLayer !== "primitive") {
1755
+ throw new Error(
1756
+ `Registry component "${item.name}" MUST use primitive template paths`
1757
+ );
1758
+ }
1759
+ for (const file of item.files) {
1760
+ const templatePrefix = primitiveTemplatePrefix(item.canonicalName);
1761
+ if (!file.startsWith(templatePrefix)) {
1762
+ throw new Error(
1763
+ `Registry component "${item.name}" file MUST live under "${templatePrefix}": ${file}`
1764
+ );
1765
+ }
1766
+ }
1767
+ }
1768
+ if (item.type === "block") {
1769
+ if (item.category !== "blocks" && item.category !== "layout") {
1770
+ throw new Error(
1771
+ `Registry block "${item.name}" MUST use category "blocks" or "layout" (got "${item.category}")`
1772
+ );
1773
+ }
1774
+ if (installLayer === "block") {
1775
+ const templatePrefix = blockTemplatePrefix(item.canonicalName);
1776
+ for (const file of item.files) {
1777
+ if (!file.startsWith(templatePrefix)) {
1778
+ throw new Error(
1779
+ `Registry block "${item.name}" file MUST live under "${templatePrefix}": ${file}`
1780
+ );
1781
+ }
1782
+ }
1783
+ } else if (installLayer === "template") {
1784
+ const templatePrefix = templateTemplatePrefix(item.canonicalName);
1785
+ for (const file of item.files) {
1786
+ if (!file.startsWith(templatePrefix)) {
1787
+ throw new Error(
1788
+ `Registry template "${item.name}" file MUST live under "${templatePrefix}": ${file}`
1789
+ );
1790
+ }
1791
+ }
1792
+ } else {
1793
+ throw new Error(
1794
+ `Registry block "${item.name}" files MUST live under "blocks/" or "templates/"`
1795
+ );
1796
+ }
1797
+ }
1798
+ for (const file of item.files) {
1799
+ if (!file.includes(item.canonicalName)) {
1800
+ throw new Error(
1801
+ `Registry item "${item.name}" has file path that does not match canonicalName: ${file}`
1802
+ );
1803
+ }
1804
+ }
1805
+ };
1806
+
1807
+ // src/validate-registry-composition.ts
1808
+ var validateRegistryComposition = (items) => {
1809
+ const errors = [];
1810
+ const itemsByName = new Map(items.map((item) => [item.name, item]));
1811
+ const visitCycle = (name, stack, visited) => {
1812
+ if (stack.includes(name)) {
1813
+ errors.push(
1814
+ `Registry dependency cycle detected: ${[...stack, name].join(" -> ")}`
1815
+ );
1816
+ return;
1817
+ }
1818
+ if (visited.has(name)) {
1819
+ return;
1820
+ }
1821
+ visited.add(name);
1822
+ const item = itemsByName.get(name);
1823
+ if (!item) {
1824
+ return;
1825
+ }
1826
+ for (const dep of item.registryDependencies) {
1827
+ visitCycle(dep, [...stack, name], visited);
1828
+ }
1829
+ };
1830
+ for (const item of items) {
1831
+ visitCycle(item.name, [], /* @__PURE__ */ new Set());
1832
+ }
1833
+ for (const item of items) {
1834
+ const itemLayer = getInstallLayer(item);
1835
+ if (!itemLayer) {
1836
+ continue;
1837
+ }
1838
+ if (itemLayer === "primitive" && item.registryDependencies.length > 0) {
1839
+ errors.push(
1840
+ `Registry primitive "${item.name}" MUST NOT declare registryDependencies`
1841
+ );
1842
+ }
1843
+ if (itemLayer !== "block" && itemLayer !== "template") {
1844
+ continue;
1845
+ }
1846
+ for (const depName of item.registryDependencies) {
1847
+ const dep = itemsByName.get(depName);
1848
+ if (!dep) {
1849
+ continue;
1850
+ }
1851
+ const depLayer = getInstallLayer(dep);
1852
+ if (!depLayer) {
1853
+ errors.push(
1854
+ `Registry item "${item.name}" depends on "${depName}" with invalid install layer metadata`
1855
+ );
1856
+ continue;
1857
+ }
1858
+ if (itemLayer === "block" && depLayer === "template") {
1859
+ errors.push(
1860
+ `Registry block "${item.name}" MUST NOT depend on template "${depName}"`
1861
+ );
1862
+ }
1863
+ }
1864
+ }
1865
+ return errors;
1866
+ };
1867
+
1868
+ // src/validate-registry-template-imports.ts
1869
+ var COMPOSITION_IMPORT_RE = /from "\.\.\/\.\.\/(primitives|blocks)\/([A-Za-z0-9]+)\//g;
1870
+ var toRegistryItemName = (canonicalName) => {
1871
+ return canonicalName.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1872
+ };
1873
+ var extractRegistryCompositionImports = (source) => {
1874
+ const names = /* @__PURE__ */ new Set();
1875
+ for (const match of source.matchAll(COMPOSITION_IMPORT_RE)) {
1876
+ names.add(toRegistryItemName(match[2]));
1877
+ }
1878
+ return [...names];
1879
+ };
1880
+ var validateRegistryTemplateImports = (items, readTemplate) => {
1881
+ const errors = [];
1882
+ const itemsByName = new Map(items.map((item) => [item.name, item]));
1883
+ for (const item of items) {
1884
+ const layer = getInstallLayer(item);
1885
+ if (layer !== "block" && layer !== "template") {
1886
+ continue;
1887
+ }
1888
+ const declared = new Set(item.registryDependencies);
1889
+ for (const file of item.files) {
1890
+ if (!file.endsWith(".tsx")) {
1891
+ continue;
1892
+ }
1893
+ const source = readTemplate(file);
1894
+ for (const importedName of extractRegistryCompositionImports(source)) {
1895
+ if (!declared.has(importedName)) {
1896
+ errors.push(
1897
+ `Registry "${item.name}" template "${file}" imports "${importedName}" but registryDependencies omits it`
1898
+ );
1899
+ }
1900
+ const dependency = itemsByName.get(importedName);
1901
+ const dependencyLayer = dependency ? getInstallLayer(dependency) : null;
1902
+ if (layer === "block" && dependencyLayer === "template") {
1903
+ errors.push(
1904
+ `Registry block "${item.name}" template "${file}" imports template "${importedName}" directly`
1905
+ );
1906
+ }
1907
+ }
1908
+ }
1909
+ }
1910
+ return errors;
1911
+ };
1912
+
1913
+ // src/validate-registry.ts
1914
+ var isEmpty2 = (value) => {
1915
+ return !value || !value.trim();
1916
+ };
1917
+ var isSafeRelativePath = (value) => {
1918
+ return !isEmpty2(value) && !value.includes("\\") && !value.startsWith("/") && !/^[a-z]:/iu.test(value) && !value.split("/").includes("..");
1919
+ };
1920
+ var isSafePackageName = (value) => {
1921
+ return /^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/iu.test(value);
1922
+ };
1923
+ var validateRegistry = (items, options = {}) => {
1924
+ const errors = [];
1925
+ const addError = (msg) => errors.push(msg);
1926
+ const shouldValidateStyles = options.styles !== void 0;
1927
+ const shouldValidateUtilities = options.utilities !== void 0;
1928
+ const availableNames = new Set(items.map((item) => item.name));
1929
+ const availableStyles = new Set((options.styles ?? []).map((s) => s.name));
1930
+ const availableUtilities = new Set(
1931
+ (options.utilities ?? []).map((u) => u.name)
1932
+ );
1933
+ const availableTemplateFiles = new Set(options.templateFiles ?? []);
1934
+ const usedLookupKeys = /* @__PURE__ */ new Map();
1935
+ const usedStyleNames = /* @__PURE__ */ new Set();
1936
+ const usedStyleTargets = /* @__PURE__ */ new Set();
1937
+ const usedUtilityNames = /* @__PURE__ */ new Set();
1938
+ const usedUtilityTargets = /* @__PURE__ */ new Set();
1939
+ for (const style of options.styles ?? []) {
1940
+ if (isEmpty2(style.name)) {
1941
+ addError("Registry style has an invalid name");
1942
+ continue;
1943
+ }
1944
+ if (isEmpty2(style.version)) {
1945
+ addError(`Registry style "${style.name}" has an invalid version`);
1946
+ }
1947
+ if (!style.files.length) {
1948
+ addError(`Registry style "${style.name}" must define at least one file`);
1949
+ }
1950
+ const normalizedStyleName = style.name.toLowerCase();
1951
+ if (usedStyleNames.has(normalizedStyleName)) {
1952
+ addError(`Registry style "${style.name}" is duplicated`);
1953
+ }
1954
+ usedStyleNames.add(normalizedStyleName);
1955
+ for (const file of style.files) {
1956
+ if (!isSafeRelativePath(file.path)) {
1957
+ addError(
1958
+ `Registry style "${style.name}" has invalid file path: ${file.path}`
1959
+ );
1960
+ }
1961
+ if (!isSafeRelativePath(file.target)) {
1962
+ addError(
1963
+ `Registry style "${style.name}" has invalid target: ${file.target}`
1964
+ );
1965
+ }
1966
+ if (availableTemplateFiles.size > 0 && !availableTemplateFiles.has(file.path)) {
1967
+ addError(
1968
+ `Registry style "${style.name}" references missing template file: ${file.path}`
1969
+ );
1970
+ }
1971
+ const normalizedTarget = file.target.toLowerCase();
1972
+ if (usedStyleTargets.has(normalizedTarget)) {
1973
+ addError(
1974
+ `Registry style target "${file.target}" is used more than once (in style "${style.name}")`
1975
+ );
1976
+ }
1977
+ usedStyleTargets.add(normalizedTarget);
1978
+ }
1979
+ }
1980
+ for (const utility of options.utilities ?? []) {
1981
+ if (isEmpty2(utility.name)) {
1982
+ addError("Registry utility has an invalid name");
1983
+ continue;
1984
+ }
1985
+ if (!isSafeRelativePath(utility.path)) {
1986
+ addError(
1987
+ `Registry utility "${utility.name}" has invalid file path: ${utility.path}`
1988
+ );
1989
+ }
1990
+ if (!isSafeRelativePath(utility.target)) {
1991
+ addError(
1992
+ `Registry utility "${utility.name}" has invalid target: ${utility.target}`
1993
+ );
1994
+ }
1995
+ const normalizedUtilityName = utility.name.toLowerCase();
1996
+ if (usedUtilityNames.has(normalizedUtilityName)) {
1997
+ addError(`Registry utility "${utility.name}" is duplicated`);
1998
+ }
1999
+ usedUtilityNames.add(normalizedUtilityName);
2000
+ const normalizedUtilityTarget = utility.target.toLowerCase();
2001
+ if (usedUtilityTargets.has(normalizedUtilityTarget)) {
2002
+ addError(
2003
+ `Registry utility target "${utility.target}" is used more than once (in utility "${utility.name}")`
2004
+ );
2005
+ }
2006
+ usedUtilityTargets.add(normalizedUtilityTarget);
2007
+ if (availableTemplateFiles.size > 0 && !availableTemplateFiles.has(utility.path)) {
2008
+ addError(
2009
+ `Registry utility "${utility.name}" references missing template file: ${utility.path}`
2010
+ );
2011
+ }
2012
+ }
2013
+ for (const item of items) {
2014
+ try {
2015
+ validateRegistryItem(item);
2016
+ } catch (e) {
2017
+ const message = e instanceof Error ? e.message : String(e);
2018
+ addError(
2019
+ `Registry item "${item.name}" failed basic validation: ${message}`
2020
+ );
2021
+ }
2022
+ const lookupKeys = [item.name, item.canonicalName, ...item.aliases];
2023
+ for (const key of lookupKeys) {
2024
+ if (isEmpty2(key)) {
2025
+ addError(
2026
+ `Registry item "${item.name}" has an invalid empty lookup key (alias or name)`
2027
+ );
2028
+ continue;
2029
+ }
2030
+ const normalizedKey = key.toLowerCase();
2031
+ const existingItemName = usedLookupKeys.get(normalizedKey);
2032
+ if (existingItemName && existingItemName !== item.name) {
2033
+ addError(
2034
+ `Registry lookup key "${key}" is used by both "${existingItemName}" and "${item.name}"`
2035
+ );
2036
+ }
2037
+ usedLookupKeys.set(normalizedKey, item.name);
2038
+ }
2039
+ for (const dep of item.registryDependencies) {
2040
+ if (!availableNames.has(dep)) {
2041
+ addError(
2042
+ `Registry item "${item.name}" references missing registry dependency: ${dep}`
2043
+ );
2044
+ }
2045
+ }
2046
+ for (const dep of item.dependencies) {
2047
+ if (!isSafePackageName(dep)) {
2048
+ addError(
2049
+ `Registry item "${item.name}" has invalid npm dependency: ${dep}`
2050
+ );
2051
+ }
2052
+ }
2053
+ const aliasSet = /* @__PURE__ */ new Set();
2054
+ for (const alias of item.aliases) {
2055
+ const normalizedAlias = alias.toLowerCase();
2056
+ if (aliasSet.has(normalizedAlias)) {
2057
+ addError(`Registry item "${item.name}" has duplicated alias: ${alias}`);
2058
+ }
2059
+ aliasSet.add(normalizedAlias);
2060
+ if (normalizedAlias === item.name.toLowerCase() || normalizedAlias === item.canonicalName.toLowerCase()) {
2061
+ addError(
2062
+ `Registry item "${item.name}" has alias that duplicates its name/canonicalName: ${alias}`
2063
+ );
2064
+ }
2065
+ }
2066
+ for (const file of item.files) {
2067
+ if (!isSafeRelativePath(file)) {
2068
+ addError(`Registry item "${item.name}" has invalid file path: ${file}`);
2069
+ }
2070
+ if (availableTemplateFiles.size > 0 && !availableTemplateFiles.has(file)) {
2071
+ addError(
2072
+ `Registry item "${item.name}" references missing template file: ${file}`
2073
+ );
2074
+ }
2075
+ }
2076
+ if (shouldValidateUtilities) {
2077
+ for (const util of item.utilities) {
2078
+ if (!availableUtilities.has(util)) {
2079
+ addError(
2080
+ `Registry item "${item.name}" references missing utility: ${util}`
2081
+ );
2082
+ }
2083
+ }
2084
+ }
2085
+ if (shouldValidateStyles) {
2086
+ for (const style of item.styles) {
2087
+ if (!availableStyles.has(style)) {
2088
+ addError(
2089
+ `Registry item "${item.name}" references missing style: ${style}`
2090
+ );
2091
+ }
2092
+ }
2093
+ }
2094
+ const usedRemotePaths = /* @__PURE__ */ new Set();
2095
+ for (const remoteFile of item.remoteFiles ?? []) {
2096
+ if (!isSafeRelativePath(remoteFile.path)) {
2097
+ addError(
2098
+ `Registry item "${item.name}" has invalid remote file path: ${remoteFile.path}`
2099
+ );
2100
+ }
2101
+ if (!item.files.includes(remoteFile.path)) {
2102
+ addError(
2103
+ `Registry item "${item.name}" remote file "${remoteFile.path}" is not declared in the "files" array`
2104
+ );
2105
+ }
2106
+ if (usedRemotePaths.has(remoteFile.path)) {
2107
+ addError(
2108
+ `Registry item "${item.name}" has duplicated remote file entry: ${remoteFile.path}`
2109
+ );
2110
+ }
2111
+ usedRemotePaths.add(remoteFile.path);
2112
+ if (remoteFile.remoteUrl !== void 0) {
2113
+ if (isEmpty2(remoteFile.remoteUrl)) {
2114
+ addError(
2115
+ `Registry item "${item.name}" has empty remote URL for file: ${remoteFile.path}`
2116
+ );
2117
+ } else {
2118
+ try {
2119
+ const url = new URL(remoteFile.remoteUrl);
2120
+ if (url.protocol !== "https:") {
2121
+ addError(
2122
+ `Registry item "${item.name}" remote URL must use HTTPS: ${remoteFile.remoteUrl}`
2123
+ );
2124
+ }
2125
+ } catch {
2126
+ addError(
2127
+ `Registry item "${item.name}" has invalid remote URL: ${remoteFile.remoteUrl}`
2128
+ );
2129
+ }
2130
+ }
2131
+ }
2132
+ }
2133
+ }
2134
+ for (const compositionError of validateRegistryComposition(items)) {
2135
+ addError(compositionError);
2136
+ }
2137
+ if (options.readTemplateFile) {
2138
+ for (const importError of validateRegistryTemplateImports(
2139
+ items,
2140
+ options.readTemplateFile
2141
+ )) {
2142
+ addError(importError);
2143
+ }
2144
+ }
2145
+ if (errors.length > 0) {
2146
+ const message = `Registry validation failed with ${errors.length} error(s):
2147
+
2148
+ ${errors.map((err, i) => `${i + 1}. ${err}`).join("\n")}`;
2149
+ throw new Error(message);
2150
+ }
2151
+ };
2152
+
2153
+ // src/index.ts
2154
+ var registryVersion = "0.0.1";
2155
+ var registryStyles = [themeRegistryStyle];
2156
+ var registryUtilities = [cnRegistryUtility];
2157
+ var registryManifest = {
2158
+ version: registryVersion,
2159
+ items: registryItems,
2160
+ styles: registryStyles,
2161
+ utilities: registryUtilities
2162
+ };
2163
+
2164
+ export { accordionRegistryItem, alertDialogRegistryItem, alertRegistryItem, authFormRegistryItem, autocompleteRegistryItem, avatarRegistryItem, badgeRegistryItem, buttonRegistryItem, cardRegistryItem, checkboxGroupRegistryItem, checkboxRegistryItem, cnRegistryUtility, collapsibleRegistryItem, comboboxRegistryItem, commandPaletteRegistryItem, contextMenuRegistryItem, dashboardShellRegistryItem, dialogRegistryItem, drawerRegistryItem, fieldRegistryItem, fieldsetRegistryItem, formFieldRegistryItem, formRegistryItem, getInstallLayer, inputRegistryItem, menuRegistryItem, menubarRegistryItem, meterRegistryItem, navigationMenuRegistryItem, numberFieldRegistryItem, otpFieldRegistryItem, popoverRegistryItem, previewCardRegistryItem, progressRegistryItem, radioGroupRegistryItem, registryItems, registryManifest, registryStyles, registryUtilities, registryVersion, scrollAreaRegistryItem, selectRegistryItem, separatorRegistryItem, settingsPanelRegistryItem, sidebarRegistryItem, sliderRegistryItem, switchRegistryItem, tabsRegistryItem, textareaRegistryItem, themeRegistryStyle, toastRegistryItem, toggleGroupRegistryItem, toggleRegistryItem, toolbarRegistryItem, tooltipRegistryItem, validateRegistry, validateRegistryItem };