@design-token-kit/core 0.1.1

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 (28) hide show
  1. package/LICENSE +159 -0
  2. package/README.md +57 -0
  3. package/lib/index.d.ts +608 -0
  4. package/lib/index.js +4737 -0
  5. package/lib/schemas/2025.10/format/group.json +55 -0
  6. package/lib/schemas/2025.10/format/groupOrToken.json +15 -0
  7. package/lib/schemas/2025.10/format/token.json +425 -0
  8. package/lib/schemas/2025.10/format/tokenType.json +23 -0
  9. package/lib/schemas/2025.10/format/values/border.json +45 -0
  10. package/lib/schemas/2025.10/format/values/color.json +515 -0
  11. package/lib/schemas/2025.10/format/values/cubicBezier.json +57 -0
  12. package/lib/schemas/2025.10/format/values/dimension.json +35 -0
  13. package/lib/schemas/2025.10/format/values/duration.json +35 -0
  14. package/lib/schemas/2025.10/format/values/fontFamily.json +34 -0
  15. package/lib/schemas/2025.10/format/values/fontWeight.json +39 -0
  16. package/lib/schemas/2025.10/format/values/gradient.json +53 -0
  17. package/lib/schemas/2025.10/format/values/number.json +8 -0
  18. package/lib/schemas/2025.10/format/values/shadow.json +103 -0
  19. package/lib/schemas/2025.10/format/values/strokeStyle.json +64 -0
  20. package/lib/schemas/2025.10/format/values/transition.json +45 -0
  21. package/lib/schemas/2025.10/format/values/typography.json +73 -0
  22. package/lib/schemas/2025.10/format.json +106 -0
  23. package/lib/schemas/2025.10/resolver/modifier.json +85 -0
  24. package/lib/schemas/2025.10/resolver/resolutionOrder.json +117 -0
  25. package/lib/schemas/2025.10/resolver/set.json +71 -0
  26. package/lib/schemas/2025.10/resolver.json +62 -0
  27. package/lib/schemas/hrdt-tokens.json +533 -0
  28. package/package.json +60 -0
@@ -0,0 +1,533 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://designtokens.local/schemas/hrdt-tokens.json",
4
+ "title": "HRDT Design Tokens Schema",
5
+ "description": "JSON Schema for the HRDT token format before conversion to DTCG JSON.",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string",
10
+ "format": "uri-reference",
11
+ "description": "URI reference to this JSON schema."
12
+ },
13
+ "primitive": {
14
+ "$ref": "#/definitions/primitiveRoot"
15
+ }
16
+ },
17
+ "patternProperties": {
18
+ "^(?!\\$schema$|primitive$)[^${}.][^{}.]*$": {
19
+ "$ref": "#/definitions/referenceGroup"
20
+ }
21
+ },
22
+ "additionalProperties": false,
23
+ "definitions": {
24
+ "tokenName": {
25
+ "type": "string",
26
+ "pattern": "^[^${}.][^{}.]*$"
27
+ },
28
+ "reference": {
29
+ "type": "string",
30
+ "pattern": "^\\{[^{}]+\\}$"
31
+ },
32
+ "dimensionString": {
33
+ "type": "string",
34
+ "pattern": "^-?\\d+(?:\\.\\d+)?(?:px|rem)$"
35
+ },
36
+ "durationString": {
37
+ "type": "string",
38
+ "pattern": "^-?\\d+(?:\\.\\d+)?(?:ms|s)$"
39
+ },
40
+ "hexColor": {
41
+ "type": "string",
42
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
43
+ },
44
+ "referenceableScalar": {
45
+ "anyOf": [
46
+ {
47
+ "$ref": "#/definitions/reference"
48
+ },
49
+ {
50
+ "type": "string"
51
+ },
52
+ {
53
+ "type": "number"
54
+ },
55
+ {
56
+ "type": "boolean"
57
+ },
58
+ {
59
+ "type": "null"
60
+ }
61
+ ]
62
+ },
63
+ "referenceGroup": {
64
+ "oneOf": [
65
+ {
66
+ "$ref": "#/definitions/referenceableScalar"
67
+ },
68
+ {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "#/definitions/referenceGroup"
72
+ }
73
+ },
74
+ {
75
+ "type": "object",
76
+ "additionalProperties": {
77
+ "$ref": "#/definitions/referenceGroup"
78
+ }
79
+ }
80
+ ]
81
+ },
82
+ "tokenMap": {
83
+ "type": "object",
84
+ "propertyNames": {
85
+ "$ref": "#/definitions/tokenName"
86
+ }
87
+ },
88
+ "primitiveRoot": {
89
+ "type": "object",
90
+ "properties": {
91
+ "color": {
92
+ "allOf": [
93
+ {
94
+ "$ref": "#/definitions/tokenMap"
95
+ },
96
+ {
97
+ "additionalProperties": {
98
+ "anyOf": [
99
+ {
100
+ "$ref": "#/definitions/hexColor"
101
+ },
102
+ {
103
+ "$ref": "#/definitions/reference"
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ ]
109
+ },
110
+ "dimension": {
111
+ "allOf": [
112
+ {
113
+ "$ref": "#/definitions/tokenMap"
114
+ },
115
+ {
116
+ "additionalProperties": {
117
+ "anyOf": [
118
+ {
119
+ "$ref": "#/definitions/dimensionString"
120
+ },
121
+ {
122
+ "$ref": "#/definitions/reference"
123
+ }
124
+ ]
125
+ }
126
+ }
127
+ ]
128
+ },
129
+ "fontFamily": {
130
+ "allOf": [
131
+ {
132
+ "$ref": "#/definitions/tokenMap"
133
+ },
134
+ {
135
+ "additionalProperties": {
136
+ "anyOf": [
137
+ {
138
+ "$ref": "#/definitions/fontFamilyValue"
139
+ },
140
+ {
141
+ "$ref": "#/definitions/reference"
142
+ }
143
+ ]
144
+ }
145
+ }
146
+ ]
147
+ },
148
+ "fontWeight": {
149
+ "allOf": [
150
+ {
151
+ "$ref": "#/definitions/tokenMap"
152
+ },
153
+ {
154
+ "additionalProperties": {
155
+ "anyOf": [
156
+ {
157
+ "type": "string"
158
+ },
159
+ {
160
+ "type": "number"
161
+ },
162
+ {
163
+ "$ref": "#/definitions/reference"
164
+ }
165
+ ]
166
+ }
167
+ }
168
+ ]
169
+ },
170
+ "duration": {
171
+ "allOf": [
172
+ {
173
+ "$ref": "#/definitions/tokenMap"
174
+ },
175
+ {
176
+ "additionalProperties": {
177
+ "oneOf": [
178
+ {
179
+ "$ref": "#/definitions/durationString"
180
+ },
181
+ {
182
+ "$ref": "#/definitions/reference"
183
+ }
184
+ ]
185
+ }
186
+ }
187
+ ]
188
+ },
189
+ "cubicBezier": {
190
+ "allOf": [
191
+ {
192
+ "$ref": "#/definitions/tokenMap"
193
+ },
194
+ {
195
+ "additionalProperties": {
196
+ "oneOf": [
197
+ {
198
+ "$ref": "#/definitions/cubicBezierValue"
199
+ },
200
+ {
201
+ "$ref": "#/definitions/reference"
202
+ }
203
+ ]
204
+ }
205
+ }
206
+ ]
207
+ },
208
+ "number": {
209
+ "allOf": [
210
+ {
211
+ "$ref": "#/definitions/tokenMap"
212
+ },
213
+ {
214
+ "additionalProperties": {
215
+ "oneOf": [
216
+ {
217
+ "type": "number"
218
+ },
219
+ {
220
+ "$ref": "#/definitions/reference"
221
+ }
222
+ ]
223
+ }
224
+ }
225
+ ]
226
+ },
227
+ "strokeStyle": {
228
+ "allOf": [
229
+ {
230
+ "$ref": "#/definitions/tokenMap"
231
+ },
232
+ {
233
+ "additionalProperties": {
234
+ "anyOf": [
235
+ {
236
+ "type": "string"
237
+ },
238
+ {
239
+ "$ref": "#/definitions/strokeStyleValue"
240
+ },
241
+ {
242
+ "$ref": "#/definitions/reference"
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ]
248
+ },
249
+ "border": {
250
+ "allOf": [
251
+ {
252
+ "$ref": "#/definitions/tokenMap"
253
+ },
254
+ {
255
+ "additionalProperties": {
256
+ "oneOf": [
257
+ {
258
+ "$ref": "#/definitions/borderValue"
259
+ },
260
+ {
261
+ "$ref": "#/definitions/reference"
262
+ }
263
+ ]
264
+ }
265
+ }
266
+ ]
267
+ },
268
+ "transition": {
269
+ "allOf": [
270
+ {
271
+ "$ref": "#/definitions/tokenMap"
272
+ },
273
+ {
274
+ "additionalProperties": {
275
+ "oneOf": [
276
+ {
277
+ "$ref": "#/definitions/transitionValue"
278
+ },
279
+ {
280
+ "$ref": "#/definitions/reference"
281
+ }
282
+ ]
283
+ }
284
+ }
285
+ ]
286
+ },
287
+ "shadow": {
288
+ "allOf": [
289
+ {
290
+ "$ref": "#/definitions/tokenMap"
291
+ },
292
+ {
293
+ "additionalProperties": {
294
+ "oneOf": [
295
+ {
296
+ "$ref": "#/definitions/shadowValue"
297
+ },
298
+ {
299
+ "$ref": "#/definitions/reference"
300
+ }
301
+ ]
302
+ }
303
+ }
304
+ ]
305
+ },
306
+ "gradient": {
307
+ "allOf": [
308
+ {
309
+ "$ref": "#/definitions/tokenMap"
310
+ },
311
+ {
312
+ "additionalProperties": {
313
+ "oneOf": [
314
+ {
315
+ "$ref": "#/definitions/gradientValue"
316
+ },
317
+ {
318
+ "$ref": "#/definitions/reference"
319
+ }
320
+ ]
321
+ }
322
+ }
323
+ ]
324
+ },
325
+ "typography": {
326
+ "allOf": [
327
+ {
328
+ "$ref": "#/definitions/tokenMap"
329
+ },
330
+ {
331
+ "additionalProperties": {
332
+ "oneOf": [
333
+ {
334
+ "$ref": "#/definitions/typographyValue"
335
+ },
336
+ {
337
+ "$ref": "#/definitions/reference"
338
+ }
339
+ ]
340
+ }
341
+ }
342
+ ]
343
+ }
344
+ },
345
+ "additionalProperties": false
346
+ },
347
+ "fontFamilyValue": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "string"
351
+ },
352
+ "minItems": 1
353
+ },
354
+ "cubicBezierValue": {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "number"
358
+ },
359
+ "minItems": 4,
360
+ "maxItems": 4
361
+ },
362
+ "strokeStyleValue": {
363
+ "type": "object",
364
+ "properties": {
365
+ "dashArray": {
366
+ "type": "array",
367
+ "items": {
368
+ "$ref": "#/definitions/dimensionString"
369
+ },
370
+ "minItems": 1
371
+ },
372
+ "lineCap": {
373
+ "type": "string"
374
+ }
375
+ },
376
+ "required": [
377
+ "dashArray",
378
+ "lineCap"
379
+ ],
380
+ "additionalProperties": false
381
+ },
382
+ "borderValue": {
383
+ "type": "object",
384
+ "properties": {
385
+ "color": {
386
+ "$ref": "#/definitions/hexColor"
387
+ },
388
+ "width": {
389
+ "$ref": "#/definitions/dimensionString"
390
+ },
391
+ "style": {
392
+ "anyOf": [
393
+ {
394
+ "type": "string"
395
+ },
396
+ {
397
+ "$ref": "#/definitions/strokeStyleValue"
398
+ },
399
+ {
400
+ "$ref": "#/definitions/reference"
401
+ }
402
+ ]
403
+ }
404
+ },
405
+ "required": [
406
+ "color",
407
+ "width",
408
+ "style"
409
+ ],
410
+ "additionalProperties": false
411
+ },
412
+ "transitionValue": {
413
+ "type": "object",
414
+ "properties": {
415
+ "duration": {
416
+ "$ref": "#/definitions/durationString"
417
+ },
418
+ "delay": {
419
+ "$ref": "#/definitions/durationString"
420
+ },
421
+ "timingFunction": {
422
+ "$ref": "#/definitions/cubicBezierValue"
423
+ }
424
+ },
425
+ "required": [
426
+ "duration",
427
+ "delay",
428
+ "timingFunction"
429
+ ],
430
+ "additionalProperties": false
431
+ },
432
+ "shadowLayer": {
433
+ "type": "object",
434
+ "properties": {
435
+ "color": {
436
+ "$ref": "#/definitions/hexColor"
437
+ },
438
+ "offsetX": {
439
+ "$ref": "#/definitions/dimensionString"
440
+ },
441
+ "offsetY": {
442
+ "$ref": "#/definitions/dimensionString"
443
+ },
444
+ "blur": {
445
+ "$ref": "#/definitions/dimensionString"
446
+ },
447
+ "spread": {
448
+ "$ref": "#/definitions/dimensionString"
449
+ }
450
+ },
451
+ "required": [
452
+ "color",
453
+ "offsetX",
454
+ "offsetY",
455
+ "blur",
456
+ "spread"
457
+ ],
458
+ "additionalProperties": false
459
+ },
460
+ "shadowValue": {
461
+ "oneOf": [
462
+ {
463
+ "$ref": "#/definitions/shadowLayer"
464
+ },
465
+ {
466
+ "type": "array",
467
+ "items": {
468
+ "$ref": "#/definitions/shadowLayer"
469
+ },
470
+ "minItems": 1
471
+ }
472
+ ]
473
+ },
474
+ "gradientStop": {
475
+ "type": "object",
476
+ "properties": {
477
+ "color": {
478
+ "$ref": "#/definitions/hexColor"
479
+ },
480
+ "position": {
481
+ "type": "number"
482
+ }
483
+ },
484
+ "required": [
485
+ "color",
486
+ "position"
487
+ ],
488
+ "additionalProperties": false
489
+ },
490
+ "gradientValue": {
491
+ "type": "array",
492
+ "items": {
493
+ "$ref": "#/definitions/gradientStop"
494
+ },
495
+ "minItems": 1
496
+ },
497
+ "typographyValue": {
498
+ "type": "object",
499
+ "properties": {
500
+ "fontFamily": {
501
+ "$ref": "#/definitions/fontFamilyValue"
502
+ },
503
+ "fontSize": {
504
+ "$ref": "#/definitions/dimensionString"
505
+ },
506
+ "fontWeight": {
507
+ "oneOf": [
508
+ {
509
+ "type": "string"
510
+ },
511
+ {
512
+ "type": "number"
513
+ }
514
+ ]
515
+ },
516
+ "letterSpacing": {
517
+ "$ref": "#/definitions/dimensionString"
518
+ },
519
+ "lineHeight": {
520
+ "type": "number"
521
+ }
522
+ },
523
+ "required": [
524
+ "fontFamily",
525
+ "fontSize",
526
+ "fontWeight",
527
+ "letterSpacing",
528
+ "lineHeight"
529
+ ],
530
+ "additionalProperties": false
531
+ }
532
+ }
533
+ }
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@design-token-kit/core",
3
+ "version": "0.1.1",
4
+ "description": "Core library for Design Token Kit: validate, convert, showcase.",
5
+ "keywords": [
6
+ "design-tokens",
7
+ "dtcg",
8
+ "tokens",
9
+ "validation",
10
+ "css"
11
+ ],
12
+ "license": "Apache-2.0",
13
+ "homepage": "https://github.com/design-token-kit/design-token-kit",
14
+ "bugs": {
15
+ "url": "https://github.com/design-token-kit/design-token-kit/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/design-token-kit/design-token-kit.git"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "type": "module",
26
+ "main": "lib/index.js",
27
+ "types": "lib/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./lib/index.d.ts",
31
+ "import": "./lib/index.js"
32
+ }
33
+ },
34
+ "imports": {
35
+ "#/*": "./src/*"
36
+ },
37
+ "files": [
38
+ "lib"
39
+ ],
40
+ "engines": {
41
+ "node": ">=18"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc --noEmit && vite build",
45
+ "dist": "node ../scripts/stage-package.mjs core",
46
+ "test": "vitest run"
47
+ },
48
+ "dependencies": {
49
+ "ajv": "8.20.0",
50
+ "ajv-formats": "3.0.1"
51
+ },
52
+ "devDependencies": {
53
+ "@microsoft/api-extractor": "7.58.7",
54
+ "@types/node": "24.10.1",
55
+ "typescript": "5.9.3",
56
+ "vite": "8.0.10",
57
+ "vite-plugin-dts": "5.0.1",
58
+ "vitest": "4.1.7"
59
+ }
60
+ }