uikit-studio 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.
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "uikit-studio",
3
+ "version": "0.1.0",
4
+ "description": "The uikit CLI — scaffold, validate, and add UI kits from the uikit.studio gallery. Includes the kit contract and the uikit-standard generator.",
5
+ "keywords": [
6
+ "uikit",
7
+ "ui-kit",
8
+ "design-system",
9
+ "tailwind",
10
+ "react",
11
+ "vue",
12
+ "cli",
13
+ "scaffold",
14
+ "shadcn"
15
+ ],
16
+ "homepage": "https://uikit.studio",
17
+ "bugs": "https://github.com/uikit-studio/uikit-studio/issues",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/uikit-studio/uikit-studio.git"
21
+ },
22
+ "license": "MIT",
23
+ "author": "uikit.studio",
24
+ "type": "module",
25
+ "bin": {
26
+ "uikit": "./dist/index.js"
27
+ },
28
+ "files": [
29
+ "dist",
30
+ "schema",
31
+ "README.md"
32
+ ],
33
+ "engines": {
34
+ "node": ">=20"
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "scripts": {
40
+ "build": "node build.mjs",
41
+ "typecheck": "tsc -p tsconfig.json --noEmit",
42
+ "test": "vitest run",
43
+ "dev": "tsx src/index.ts",
44
+ "prepublishOnly": "node build.mjs",
45
+ "clean": "rm -rf dist"
46
+ },
47
+ "devDependencies": {
48
+ "@types/node": "^22.10.7",
49
+ "esbuild": "^0.24.2",
50
+ "picocolors": "^1.1.1",
51
+ "tsx": "^4.19.2",
52
+ "typescript": "^5.7.3",
53
+ "vitest": "^3.0.4",
54
+ "zod": "^4.0.5"
55
+ }
56
+ }
package/schema/v1.json ADDED
@@ -0,0 +1,422 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://uikit.dev/schema/v1.json",
4
+ "title": "uikit.json",
5
+ "description": "The UIKit manifest contract — describes a UI kit for the gallery, CLI, and generator.",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string"
10
+ },
11
+ "manifestVersion": {
12
+ "type": "number",
13
+ "const": 1
14
+ },
15
+ "id": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
19
+ },
20
+ "name": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "version": {
25
+ "type": "string",
26
+ "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
27
+ },
28
+ "description": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "author": {
33
+ "type": "object",
34
+ "properties": {
35
+ "name": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "github": {
40
+ "type": "string",
41
+ "minLength": 1
42
+ },
43
+ "url": {
44
+ "type": "string",
45
+ "format": "uri"
46
+ }
47
+ },
48
+ "required": [
49
+ "name"
50
+ ],
51
+ "additionalProperties": false
52
+ },
53
+ "license": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "homepage": {
58
+ "type": "string",
59
+ "format": "uri"
60
+ },
61
+ "repository": {
62
+ "type": "string",
63
+ "format": "uri"
64
+ },
65
+ "categories": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "string",
69
+ "minLength": 1,
70
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
71
+ }
72
+ },
73
+ "tags": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ }
79
+ },
80
+ "tech": {
81
+ "type": "object",
82
+ "properties": {
83
+ "frameworks": {
84
+ "minItems": 1,
85
+ "type": "array",
86
+ "items": {
87
+ "type": "string",
88
+ "enum": [
89
+ "react",
90
+ "vue",
91
+ "web-components"
92
+ ]
93
+ }
94
+ },
95
+ "styling": {
96
+ "default": "tailwind",
97
+ "type": "string",
98
+ "enum": [
99
+ "tailwind",
100
+ "css-vars",
101
+ "both"
102
+ ]
103
+ },
104
+ "tailwindVersion": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "icons": {
109
+ "type": "string",
110
+ "minLength": 1
111
+ },
112
+ "deps": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string",
116
+ "minLength": 1
117
+ }
118
+ }
119
+ },
120
+ "required": [
121
+ "frameworks",
122
+ "styling"
123
+ ],
124
+ "additionalProperties": false
125
+ },
126
+ "design": {
127
+ "type": "object",
128
+ "properties": {
129
+ "tokens": {
130
+ "type": "string",
131
+ "minLength": 1,
132
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
133
+ },
134
+ "tailwindPreset": {
135
+ "type": "string",
136
+ "minLength": 1,
137
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
138
+ },
139
+ "themeCss": {
140
+ "type": "string",
141
+ "minLength": 1,
142
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
143
+ },
144
+ "fonts": {
145
+ "type": "array",
146
+ "items": {
147
+ "type": "object",
148
+ "properties": {
149
+ "family": {
150
+ "type": "string",
151
+ "minLength": 1
152
+ },
153
+ "source": {
154
+ "default": "google",
155
+ "type": "string",
156
+ "enum": [
157
+ "google",
158
+ "local",
159
+ "system",
160
+ "url"
161
+ ]
162
+ },
163
+ "url": {
164
+ "type": "string",
165
+ "format": "uri"
166
+ }
167
+ },
168
+ "required": [
169
+ "family",
170
+ "source"
171
+ ],
172
+ "additionalProperties": false
173
+ }
174
+ },
175
+ "palettes": {
176
+ "type": "array",
177
+ "items": {
178
+ "type": "object",
179
+ "properties": {
180
+ "name": {
181
+ "type": "string",
182
+ "minLength": 1
183
+ },
184
+ "primary": {
185
+ "type": "string",
186
+ "minLength": 1
187
+ }
188
+ },
189
+ "required": [
190
+ "name",
191
+ "primary"
192
+ ],
193
+ "additionalProperties": false
194
+ }
195
+ },
196
+ "modes": {
197
+ "type": "array",
198
+ "items": {
199
+ "type": "string",
200
+ "enum": [
201
+ "light",
202
+ "dark"
203
+ ]
204
+ }
205
+ }
206
+ },
207
+ "additionalProperties": false
208
+ },
209
+ "surface": {
210
+ "type": "object",
211
+ "properties": {
212
+ "components": {
213
+ "type": "array",
214
+ "items": {
215
+ "type": "object",
216
+ "properties": {
217
+ "name": {
218
+ "type": "string",
219
+ "minLength": 1
220
+ },
221
+ "react": {
222
+ "type": "string",
223
+ "minLength": 1,
224
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
225
+ },
226
+ "vue": {
227
+ "type": "string",
228
+ "minLength": 1,
229
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
230
+ },
231
+ "web": {
232
+ "type": "string",
233
+ "minLength": 1,
234
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
235
+ }
236
+ },
237
+ "required": [
238
+ "name"
239
+ ],
240
+ "additionalProperties": false
241
+ }
242
+ },
243
+ "blocks": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "object",
247
+ "properties": {
248
+ "name": {
249
+ "type": "string",
250
+ "minLength": 1
251
+ },
252
+ "preview": {
253
+ "type": "string",
254
+ "minLength": 1,
255
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
256
+ }
257
+ },
258
+ "required": [
259
+ "name"
260
+ ],
261
+ "additionalProperties": false
262
+ }
263
+ },
264
+ "templates": {
265
+ "type": "array",
266
+ "items": {
267
+ "type": "object",
268
+ "properties": {
269
+ "name": {
270
+ "type": "string",
271
+ "minLength": 1
272
+ },
273
+ "route": {
274
+ "type": "string",
275
+ "minLength": 1
276
+ },
277
+ "preview": {
278
+ "type": "string",
279
+ "minLength": 1,
280
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
281
+ }
282
+ },
283
+ "required": [
284
+ "name"
285
+ ],
286
+ "additionalProperties": false
287
+ }
288
+ }
289
+ },
290
+ "additionalProperties": false
291
+ },
292
+ "prompts": {
293
+ "type": "object",
294
+ "properties": {
295
+ "origin": {
296
+ "type": "string",
297
+ "minLength": 1,
298
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
299
+ },
300
+ "extend": {
301
+ "type": "string",
302
+ "minLength": 1,
303
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
304
+ },
305
+ "skillVersion": {
306
+ "type": "string",
307
+ "minLength": 1
308
+ }
309
+ },
310
+ "additionalProperties": false
311
+ },
312
+ "consume": {
313
+ "type": "object",
314
+ "properties": {
315
+ "skill": {
316
+ "type": "string",
317
+ "minLength": 1,
318
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
319
+ },
320
+ "skillName": {
321
+ "type": "string",
322
+ "minLength": 1,
323
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
324
+ },
325
+ "steps": {
326
+ "minItems": 1,
327
+ "type": "array",
328
+ "items": {
329
+ "type": "string",
330
+ "minLength": 1
331
+ }
332
+ },
333
+ "entry": {
334
+ "type": "string",
335
+ "minLength": 1,
336
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
337
+ },
338
+ "requires": {
339
+ "type": "array",
340
+ "items": {
341
+ "type": "string",
342
+ "minLength": 1
343
+ }
344
+ }
345
+ },
346
+ "required": [
347
+ "skill",
348
+ "skillName",
349
+ "steps"
350
+ ],
351
+ "additionalProperties": false
352
+ },
353
+ "media": {
354
+ "type": "object",
355
+ "properties": {
356
+ "demoUrl": {
357
+ "type": "string",
358
+ "format": "uri"
359
+ },
360
+ "screenshots": {
361
+ "minItems": 1,
362
+ "type": "array",
363
+ "items": {
364
+ "type": "object",
365
+ "properties": {
366
+ "kind": {
367
+ "type": "string",
368
+ "enum": [
369
+ "logo",
370
+ "landing",
371
+ "dashboard",
372
+ "other"
373
+ ]
374
+ },
375
+ "src": {
376
+ "type": "string",
377
+ "minLength": 1
378
+ },
379
+ "label": {
380
+ "type": "string",
381
+ "minLength": 1
382
+ }
383
+ },
384
+ "required": [
385
+ "kind",
386
+ "src"
387
+ ],
388
+ "additionalProperties": false
389
+ }
390
+ }
391
+ },
392
+ "required": [
393
+ "screenshots"
394
+ ],
395
+ "additionalProperties": false
396
+ },
397
+ "registry": {
398
+ "type": "object",
399
+ "properties": {
400
+ "install": {
401
+ "type": "string",
402
+ "minLength": 1
403
+ },
404
+ "components": {
405
+ "type": "string",
406
+ "minLength": 1,
407
+ "pattern": "^(?!\\/)(?!.*\\.\\.).+$"
408
+ }
409
+ },
410
+ "additionalProperties": false
411
+ }
412
+ },
413
+ "required": [
414
+ "manifestVersion",
415
+ "id",
416
+ "name",
417
+ "version",
418
+ "tech",
419
+ "media"
420
+ ],
421
+ "additionalProperties": false
422
+ }