@10up/block-renderer-theme-json 0.1.4

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.
@@ -0,0 +1,459 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Color preset definition from theme.json
4
+ */
5
+ export interface ColorPreset {
6
+ name: string;
7
+ slug: string;
8
+ color: string;
9
+ }
10
+ /**
11
+ * Gradient preset definition from theme.json
12
+ */
13
+ export interface GradientPreset {
14
+ name: string;
15
+ slug: string;
16
+ gradient: string;
17
+ }
18
+ /**
19
+ * Duotone preset definition from theme.json
20
+ */
21
+ export interface DuotonePreset {
22
+ name: string;
23
+ slug: string;
24
+ colors: [string, string];
25
+ }
26
+ /**
27
+ * Font family definition from theme.json
28
+ */
29
+ export interface FontFamilyPreset {
30
+ name: string;
31
+ slug: string;
32
+ fontFamily: string;
33
+ fontFace?: FontFace[];
34
+ }
35
+ /**
36
+ * Font face definition for @font-face rules
37
+ */
38
+ export interface FontFace {
39
+ fontFamily: string;
40
+ fontWeight?: string | number;
41
+ fontStyle?: string;
42
+ fontStretch?: string;
43
+ src: string[];
44
+ fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
45
+ }
46
+ /**
47
+ * Font size preset definition from theme.json
48
+ */
49
+ export interface FontSizePreset {
50
+ name: string;
51
+ slug: string;
52
+ size: string;
53
+ fluid?: {
54
+ min?: string;
55
+ max?: string;
56
+ } | boolean;
57
+ }
58
+ /**
59
+ * Spacing preset definition from theme.json
60
+ */
61
+ export interface SpacingPreset {
62
+ name: string;
63
+ slug: string;
64
+ size: string;
65
+ }
66
+ /**
67
+ * Shadow preset definition from theme.json
68
+ */
69
+ export interface ShadowPreset {
70
+ name: string;
71
+ slug: string;
72
+ shadow: string;
73
+ }
74
+ /**
75
+ * Extracted design tokens from theme.json
76
+ */
77
+ export interface ThemeTokens {
78
+ colors: {
79
+ palette: ColorPreset[];
80
+ gradients: GradientPreset[];
81
+ duotone: DuotonePreset[];
82
+ };
83
+ typography: {
84
+ fontFamilies: FontFamilyPreset[];
85
+ fontSizes: FontSizePreset[];
86
+ };
87
+ spacing: {
88
+ spacingSizes: SpacingPreset[];
89
+ units: string[];
90
+ };
91
+ shadow: {
92
+ presets: ShadowPreset[];
93
+ };
94
+ layout: {
95
+ contentSize?: string;
96
+ wideSize?: string;
97
+ };
98
+ custom: Record<string, unknown>;
99
+ }
100
+ /**
101
+ * Style object used in theme.json styles section
102
+ */
103
+ export interface StyleObject {
104
+ color?: {
105
+ background?: string;
106
+ text?: string;
107
+ gradient?: string;
108
+ link?: string;
109
+ };
110
+ typography?: {
111
+ fontFamily?: string;
112
+ fontSize?: string;
113
+ fontStyle?: string;
114
+ fontWeight?: string;
115
+ lineHeight?: string;
116
+ textDecoration?: string;
117
+ textTransform?: string;
118
+ letterSpacing?: string;
119
+ };
120
+ spacing?: {
121
+ margin?: SidesObject;
122
+ padding?: SidesObject;
123
+ blockGap?: string;
124
+ };
125
+ border?: {
126
+ color?: string;
127
+ radius?: string | SidesObject;
128
+ style?: string;
129
+ width?: string;
130
+ };
131
+ dimensions?: {
132
+ minHeight?: string;
133
+ aspectRatio?: string;
134
+ };
135
+ filter?: {
136
+ duotone?: string;
137
+ };
138
+ shadow?: string;
139
+ outline?: {
140
+ color?: string;
141
+ offset?: string;
142
+ style?: string;
143
+ width?: string;
144
+ };
145
+ css?: string;
146
+ }
147
+ /**
148
+ * Sides object for margin/padding/radius
149
+ */
150
+ export interface SidesObject {
151
+ top?: string;
152
+ right?: string;
153
+ bottom?: string;
154
+ left?: string;
155
+ }
156
+ /**
157
+ * Theme styles from theme.json
158
+ */
159
+ export interface ThemeStyles {
160
+ global: StyleObject;
161
+ elements: Record<string, StyleObject>;
162
+ blocks: Record<string, StyleObject & {
163
+ elements?: Record<string, StyleObject>;
164
+ }>;
165
+ }
166
+ /**
167
+ * Section style definition from /styles directory (WordPress 6.6+)
168
+ * These are partial theme.json files that define scoped styles for specific block types.
169
+ */
170
+ export interface SectionStyle {
171
+ /** Display name */
172
+ title: string;
173
+ /** CSS class slug (used in .is-style-{slug}) */
174
+ slug: string;
175
+ /** Block types this style applies to */
176
+ blockTypes: string[];
177
+ /** Extracted styles from the styles section */
178
+ styles: Partial<ThemeStyles>;
179
+ /** Custom settings for scoped CSS variables (ignite-wp extension) */
180
+ customSettings?: Record<string, unknown>;
181
+ /** Source file path */
182
+ filePath: string;
183
+ }
184
+ /**
185
+ * Fluid value definition (Ignite WP extension)
186
+ * Used for responsive typography and spacing with clamp()
187
+ */
188
+ export interface FluidValue {
189
+ fluid: 'true' | true;
190
+ min: string;
191
+ max: string;
192
+ }
193
+ /**
194
+ * Typography preset definition (Ignite WP extension)
195
+ * Defines complete typography styles that can be applied via className
196
+ */
197
+ export interface TypographyPreset {
198
+ /** Unique identifier used in CSS class: is-typography-preset-{slug} */
199
+ slug: string;
200
+ /** Display name shown in the editor */
201
+ name: string;
202
+ /** Optional HTML selector for default element styling (e.g., 'h1') */
203
+ selector?: string;
204
+ /** Font size value or CSS variable */
205
+ fontSize: string;
206
+ /** Font weight value or CSS variable */
207
+ fontWeight?: string;
208
+ /** Line height value or CSS variable */
209
+ lineHeight?: string;
210
+ /** Letter spacing value or CSS variable */
211
+ letterSpacing?: string;
212
+ /** Font family value or CSS variable */
213
+ fontFamily?: string;
214
+ }
215
+ /**
216
+ * Ignite-specific tokens extracted from theme.json
217
+ * Only present when parsing with ignite: true option
218
+ */
219
+ export interface IgniteTokens {
220
+ /** Fluid typography values from settings.custom.text */
221
+ fluidTypography: Record<string, FluidValue>;
222
+ /** Fluid spacing values from settings.custom.spacing */
223
+ fluidSpacing: Record<string, FluidValue>;
224
+ /** Typography presets from settings.custom.typography.presets */
225
+ typographyPresets: TypographyPreset[];
226
+ }
227
+ /**
228
+ * Complete parsed theme data
229
+ */
230
+ export interface ParsedTheme {
231
+ /** JSON schema version */
232
+ version: number;
233
+ /** Extracted design tokens */
234
+ tokens: ThemeTokens;
235
+ /** Theme styles */
236
+ styles: ThemeStyles;
237
+ /** Style variations from /styles directory */
238
+ variations: Record<string, Partial<ThemeStyles>>;
239
+ /** Section styles from /styles directory (WordPress 6.6+) */
240
+ sectionStyles: SectionStyle[];
241
+ /** Ignite WP tokens (only present when ignite: true option is used) */
242
+ igniteTokens?: IgniteTokens;
243
+ /** Raw theme.json data */
244
+ raw: ThemeJson;
245
+ }
246
+ /**
247
+ * theme.json settings section
248
+ */
249
+ export interface ThemeJsonSettings {
250
+ appearanceTools?: boolean;
251
+ useRootPaddingAwareAlignments?: boolean;
252
+ border?: {
253
+ color?: boolean;
254
+ radius?: boolean;
255
+ style?: boolean;
256
+ width?: boolean;
257
+ };
258
+ color?: {
259
+ background?: boolean;
260
+ custom?: boolean;
261
+ customDuotone?: boolean;
262
+ customGradient?: boolean;
263
+ defaultDuotone?: boolean;
264
+ defaultGradients?: boolean;
265
+ defaultPalette?: boolean;
266
+ duotone?: DuotonePreset[];
267
+ gradients?: GradientPreset[];
268
+ link?: boolean;
269
+ palette?: ColorPreset[];
270
+ text?: boolean;
271
+ };
272
+ custom?: Record<string, unknown>;
273
+ dimensions?: {
274
+ aspectRatio?: boolean;
275
+ minHeight?: boolean;
276
+ };
277
+ layout?: {
278
+ contentSize?: string;
279
+ wideSize?: string;
280
+ allowEditing?: boolean;
281
+ allowCustomContentAndWideSize?: boolean;
282
+ };
283
+ position?: {
284
+ sticky?: boolean;
285
+ fixed?: boolean;
286
+ };
287
+ shadow?: {
288
+ defaultPresets?: boolean;
289
+ presets?: ShadowPreset[];
290
+ };
291
+ spacing?: {
292
+ blockGap?: boolean | null;
293
+ customSpacingSize?: boolean;
294
+ margin?: boolean;
295
+ padding?: boolean;
296
+ spacingSizes?: SpacingPreset[];
297
+ spacingScale?: {
298
+ operator?: '+' | '*';
299
+ increment?: number;
300
+ steps?: number;
301
+ mediumStep?: number;
302
+ unit?: string;
303
+ };
304
+ units?: string[];
305
+ };
306
+ typography?: {
307
+ customFontSize?: boolean;
308
+ dropCap?: boolean;
309
+ fluid?: boolean | {
310
+ minFontSize?: string;
311
+ maxViewportWidth?: string;
312
+ minViewportWidth?: string;
313
+ };
314
+ fontFamilies?: FontFamilyPreset[];
315
+ fontSizes?: FontSizePreset[];
316
+ fontStyle?: boolean;
317
+ fontWeight?: boolean;
318
+ letterSpacing?: boolean;
319
+ lineHeight?: boolean;
320
+ textAlign?: boolean;
321
+ textColumns?: boolean;
322
+ textDecoration?: boolean;
323
+ textTransform?: boolean;
324
+ writingMode?: boolean;
325
+ };
326
+ blocks?: Record<string, Partial<ThemeJsonSettings>>;
327
+ }
328
+ /**
329
+ * Complete theme.json structure
330
+ */
331
+ export interface ThemeJson {
332
+ $schema?: string;
333
+ version: number;
334
+ title?: string;
335
+ settings?: ThemeJsonSettings;
336
+ styles?: {
337
+ color?: StyleObject['color'];
338
+ typography?: StyleObject['typography'];
339
+ spacing?: StyleObject['spacing'];
340
+ border?: StyleObject['border'];
341
+ dimensions?: StyleObject['dimensions'];
342
+ filter?: StyleObject['filter'];
343
+ shadow?: string;
344
+ outline?: StyleObject['outline'];
345
+ css?: string;
346
+ elements?: Record<string, StyleObject>;
347
+ blocks?: Record<string, StyleObject & {
348
+ elements?: Record<string, StyleObject>;
349
+ }>;
350
+ };
351
+ customTemplates?: Array<{
352
+ name: string;
353
+ title: string;
354
+ postTypes?: string[];
355
+ }>;
356
+ templateParts?: Array<{
357
+ name: string;
358
+ title?: string;
359
+ area?: string;
360
+ }>;
361
+ patterns?: string[];
362
+ }
363
+ export declare const colorPresetSchema: z.ZodObject<{
364
+ name: z.ZodString;
365
+ slug: z.ZodString;
366
+ color: z.ZodString;
367
+ }, "strip", z.ZodTypeAny, {
368
+ color: string;
369
+ name: string;
370
+ slug: string;
371
+ }, {
372
+ color: string;
373
+ name: string;
374
+ slug: string;
375
+ }>;
376
+ export declare const gradientPresetSchema: z.ZodObject<{
377
+ name: z.ZodString;
378
+ slug: z.ZodString;
379
+ gradient: z.ZodString;
380
+ }, "strip", z.ZodTypeAny, {
381
+ name: string;
382
+ slug: string;
383
+ gradient: string;
384
+ }, {
385
+ name: string;
386
+ slug: string;
387
+ gradient: string;
388
+ }>;
389
+ export declare const duotonePresetSchema: z.ZodObject<{
390
+ name: z.ZodString;
391
+ slug: z.ZodString;
392
+ colors: z.ZodTuple<[z.ZodString, z.ZodString], null>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ name: string;
395
+ slug: string;
396
+ colors: [string, string];
397
+ }, {
398
+ name: string;
399
+ slug: string;
400
+ colors: [string, string];
401
+ }>;
402
+ export declare const fontSizePresetSchema: z.ZodObject<{
403
+ name: z.ZodString;
404
+ slug: z.ZodString;
405
+ size: z.ZodString;
406
+ fluid: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
407
+ min: z.ZodOptional<z.ZodString>;
408
+ max: z.ZodOptional<z.ZodString>;
409
+ }, "strip", z.ZodTypeAny, {
410
+ min?: string | undefined;
411
+ max?: string | undefined;
412
+ }, {
413
+ min?: string | undefined;
414
+ max?: string | undefined;
415
+ }>]>>;
416
+ }, "strip", z.ZodTypeAny, {
417
+ name: string;
418
+ slug: string;
419
+ size: string;
420
+ fluid?: boolean | {
421
+ min?: string | undefined;
422
+ max?: string | undefined;
423
+ } | undefined;
424
+ }, {
425
+ name: string;
426
+ slug: string;
427
+ size: string;
428
+ fluid?: boolean | {
429
+ min?: string | undefined;
430
+ max?: string | undefined;
431
+ } | undefined;
432
+ }>;
433
+ export declare const spacingPresetSchema: z.ZodObject<{
434
+ name: z.ZodString;
435
+ slug: z.ZodString;
436
+ size: z.ZodString;
437
+ }, "strip", z.ZodTypeAny, {
438
+ name: string;
439
+ slug: string;
440
+ size: string;
441
+ }, {
442
+ name: string;
443
+ slug: string;
444
+ size: string;
445
+ }>;
446
+ export declare const shadowPresetSchema: z.ZodObject<{
447
+ name: z.ZodString;
448
+ slug: z.ZodString;
449
+ shadow: z.ZodString;
450
+ }, "strip", z.ZodTypeAny, {
451
+ name: string;
452
+ slug: string;
453
+ shadow: string;
454
+ }, {
455
+ name: string;
456
+ slug: string;
457
+ shadow: string;
458
+ }>;
459
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ // Zod schemas for validation
3
+ export const colorPresetSchema = z.object({
4
+ name: z.string(),
5
+ slug: z.string(),
6
+ color: z.string(),
7
+ });
8
+ export const gradientPresetSchema = z.object({
9
+ name: z.string(),
10
+ slug: z.string(),
11
+ gradient: z.string(),
12
+ });
13
+ export const duotonePresetSchema = z.object({
14
+ name: z.string(),
15
+ slug: z.string(),
16
+ colors: z.tuple([z.string(), z.string()]),
17
+ });
18
+ export const fontSizePresetSchema = z.object({
19
+ name: z.string(),
20
+ slug: z.string(),
21
+ size: z.string(),
22
+ fluid: z.union([
23
+ z.boolean(),
24
+ z.object({
25
+ min: z.string().optional(),
26
+ max: z.string().optional(),
27
+ })
28
+ ]).optional(),
29
+ });
30
+ export const spacingPresetSchema = z.object({
31
+ name: z.string(),
32
+ slug: z.string(),
33
+ size: z.string(),
34
+ });
35
+ export const shadowPresetSchema = z.object({
36
+ name: z.string(),
37
+ slug: z.string(),
38
+ shadow: z.string(),
39
+ });
40
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8XxB,6BAA6B;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;QACb,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,CAAC;KACH,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@10up/block-renderer-theme-json",
3
+ "version": "0.1.4",
4
+ "description": "Theme.json parser and design token extractor for WordPress themes",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "dependencies": {
19
+ "zod": "^3.24.0",
20
+ "@10up/block-renderer-core": "0.1.4"
21
+ },
22
+ "devDependencies": {
23
+ "typescript": "^5.7.0",
24
+ "vitest": "^2.1.0"
25
+ },
26
+ "keywords": [
27
+ "wordpress",
28
+ "theme",
29
+ "theme.json",
30
+ "design-tokens",
31
+ "gutenberg"
32
+ ],
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/10up/json-block-renderer",
37
+ "directory": "packages/theme-json"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "scripts": {
43
+ "build": "tsc -p tsconfig.build.json",
44
+ "dev": "tsc -p tsconfig.build.json --watch",
45
+ "typecheck": "tsc --noEmit",
46
+ "clean": "rm -rf dist",
47
+ "test": "vitest run",
48
+ "test:watch": "vitest",
49
+ "bench": "vitest bench --run"
50
+ }
51
+ }