@janga/norna 0.7.3 → 0.7.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.
Files changed (87) hide show
  1. package/docs/README.md +3 -3
  2. package/docs/commands.md +2 -2
  3. package/docs/configuration.md +2 -1
  4. package/docs/design/command-organization.md +4 -3
  5. package/docs/design/site-examples-structure.md +4 -3
  6. package/docs/getting-started.md +8 -7
  7. package/docs/theme.md +27 -43
  8. package/docs/typography.md +47 -31
  9. package/examples/dog-gallery/site/content.md +1 -1
  10. package/examples/dog-gallery/site/theme.md +12 -14
  11. package/package.json +1 -1
  12. package/scripts/check-config.mjs +1 -0
  13. package/scripts/lib/project-config.mjs +87 -32
  14. package/scripts/lib/site-content.mjs +4 -4
  15. package/scripts/lib/typography.mjs +79 -39
  16. package/scripts/show-typography.mjs +75 -11
  17. package/scripts/test-engine-commands.mjs +18 -0
  18. package/scripts/test-package-check.mjs +19 -3
  19. package/src/components/SiteSection.astro +82 -20
  20. package/src/content.config.ts +11 -9
  21. package/src/layouts/BaseLayout.astro +0 -6
  22. package/src/styles/global.css +44 -17
  23. package/starters/basic/README.md +4 -3
  24. package/starters/basic/site/theme.md +19 -46
  25. package/starters/project/README.md +7 -7
  26. package/starters/project/package-lock.json +4 -4
  27. package/starters/project/package.json +1 -1
  28. package/starters/project/site/content.md +86 -46
  29. package/starters/project/site/routes/guide/route-content.md +52 -25
  30. package/starters/project/site/theme.md +29 -1
  31. package/examples/dog-gallery/.astro/collections/site.schema.json +0 -802
  32. package/examples/dog-gallery/.astro/collections/theme.schema.json +0 -714
  33. package/examples/dog-gallery/.astro/content-assets.mjs +0 -4
  34. package/examples/dog-gallery/.astro/content-modules.mjs +0 -1
  35. package/examples/dog-gallery/.astro/content.d.ts +0 -175
  36. package/examples/dog-gallery/.astro/data-store.json +0 -1
  37. package/examples/dog-gallery/.astro/dev-local.json +0 -8
  38. package/examples/dog-gallery/.astro/dev.json +0 -13
  39. package/examples/dog-gallery/.astro/dev.log +0 -49
  40. package/examples/dog-gallery/.astro/settings.json +0 -5
  41. package/examples/dog-gallery/.astro/types.d.ts +0 -2
  42. package/examples/dog-gallery/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
  43. package/examples/dog-gallery/dist/_astro/SitePage.BFHZm5UG.css +0 -1
  44. package/examples/dog-gallery/dist/dog-care/index.html +0 -15
  45. package/examples/dog-gallery/dist/favicon.svg +0 -7
  46. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1080.webp +0 -0
  47. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1440.webp +0 -0
  48. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1536.webp +0 -0
  49. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-480.webp +0 -0
  50. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-768.webp +0 -0
  51. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-480.webp +0 -0
  52. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-768.webp +0 -0
  53. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-960.webp +0 -0
  54. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1080.webp +0 -0
  55. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1440.webp +0 -0
  56. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1920.webp +0 -0
  57. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-3939.webp +0 -0
  58. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-480.webp +0 -0
  59. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-768.webp +0 -0
  60. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1080.webp +0 -0
  61. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1440.webp +0 -0
  62. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1920.webp +0 -0
  63. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-2400.webp +0 -0
  64. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-480.webp +0 -0
  65. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-768.webp +0 -0
  66. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1080.webp +0 -0
  67. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1440.webp +0 -0
  68. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1600.webp +0 -0
  69. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-480.webp +0 -0
  70. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-768.webp +0 -0
  71. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1080.webp +0 -0
  72. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1440.webp +0 -0
  73. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1920.webp +0 -0
  74. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-2576.webp +0 -0
  75. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-480.webp +0 -0
  76. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-768.webp +0 -0
  77. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1080.webp +0 -0
  78. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1277.webp +0 -0
  79. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-480.webp +0 -0
  80. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-768.webp +0 -0
  81. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1080.webp +0 -0
  82. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1440.webp +0 -0
  83. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1536.webp +0 -0
  84. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-480.webp +0 -0
  85. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-768.webp +0 -0
  86. package/examples/dog-gallery/dist/index.html +0 -43
  87. package/examples/dog-gallery/dist/robots.txt +0 -2
@@ -1,802 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "title": {
6
- "type": "string"
7
- },
8
- "description": {
9
- "type": "string"
10
- },
11
- "slug": {
12
- "type": "string",
13
- "pattern": "^[a-z0-9][a-z0-9-]*$"
14
- },
15
- "navigation": {
16
- "type": "object",
17
- "properties": {
18
- "include": {
19
- "type": "boolean"
20
- },
21
- "label": {
22
- "type": "string"
23
- },
24
- "order": {
25
- "type": "integer",
26
- "minimum": -9007199254740991,
27
- "maximum": 9007199254740991
28
- }
29
- },
30
- "additionalProperties": false
31
- },
32
- "presentation": {
33
- "type": "object",
34
- "properties": {
35
- "backgroundColor": {
36
- "type": "string",
37
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
38
- },
39
- "textColor": {
40
- "type": "string",
41
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
42
- },
43
- "typography": {
44
- "type": "object",
45
- "properties": {
46
- "preset": {
47
- "type": "string",
48
- "enum": [
49
- "quiet-gallery",
50
- "compact-gallery",
51
- "text-forward",
52
- "statement"
53
- ]
54
- },
55
- "overrides": {
56
- "type": "object",
57
- "properties": {
58
- "headings": {
59
- "type": "object",
60
- "properties": {
61
- "h1": {
62
- "type": "object",
63
- "properties": {
64
- "align": {
65
- "type": "object",
66
- "properties": {
67
- "desktop": {
68
- "type": "string",
69
- "enum": [
70
- "left",
71
- "center",
72
- "right"
73
- ]
74
- },
75
- "mobile": {
76
- "type": "string",
77
- "enum": [
78
- "left",
79
- "center",
80
- "right"
81
- ]
82
- }
83
- },
84
- "additionalProperties": false
85
- },
86
- "size": {
87
- "type": "string",
88
- "enum": [
89
- "small",
90
- "medium",
91
- "large",
92
- "xlarge"
93
- ]
94
- },
95
- "lineHeight": {
96
- "type": "number",
97
- "minimum": 1,
98
- "maximum": 3
99
- },
100
- "spacing": {
101
- "type": "string",
102
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
103
- }
104
- },
105
- "additionalProperties": false
106
- },
107
- "h2": {
108
- "type": "object",
109
- "properties": {
110
- "align": {
111
- "type": "object",
112
- "properties": {
113
- "desktop": {
114
- "type": "string",
115
- "enum": [
116
- "left",
117
- "center",
118
- "right"
119
- ]
120
- },
121
- "mobile": {
122
- "type": "string",
123
- "enum": [
124
- "left",
125
- "center",
126
- "right"
127
- ]
128
- }
129
- },
130
- "additionalProperties": false
131
- },
132
- "size": {
133
- "type": "string",
134
- "enum": [
135
- "small",
136
- "medium",
137
- "large",
138
- "xlarge"
139
- ]
140
- },
141
- "lineHeight": {
142
- "type": "number",
143
- "minimum": 1,
144
- "maximum": 3
145
- },
146
- "spacing": {
147
- "type": "string",
148
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
149
- }
150
- },
151
- "additionalProperties": false
152
- },
153
- "h3": {
154
- "type": "object",
155
- "properties": {
156
- "align": {
157
- "type": "object",
158
- "properties": {
159
- "desktop": {
160
- "type": "string",
161
- "enum": [
162
- "left",
163
- "center",
164
- "right"
165
- ]
166
- },
167
- "mobile": {
168
- "type": "string",
169
- "enum": [
170
- "left",
171
- "center",
172
- "right"
173
- ]
174
- }
175
- },
176
- "additionalProperties": false
177
- },
178
- "size": {
179
- "type": "string",
180
- "enum": [
181
- "small",
182
- "medium",
183
- "large",
184
- "xlarge"
185
- ]
186
- },
187
- "lineHeight": {
188
- "type": "number",
189
- "minimum": 1,
190
- "maximum": 3
191
- },
192
- "spacing": {
193
- "type": "string",
194
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
195
- }
196
- },
197
- "additionalProperties": false
198
- },
199
- "h4": {
200
- "type": "object",
201
- "properties": {
202
- "align": {
203
- "type": "object",
204
- "properties": {
205
- "desktop": {
206
- "type": "string",
207
- "enum": [
208
- "left",
209
- "center",
210
- "right"
211
- ]
212
- },
213
- "mobile": {
214
- "type": "string",
215
- "enum": [
216
- "left",
217
- "center",
218
- "right"
219
- ]
220
- }
221
- },
222
- "additionalProperties": false
223
- },
224
- "size": {
225
- "type": "string",
226
- "enum": [
227
- "small",
228
- "medium",
229
- "large",
230
- "xlarge"
231
- ]
232
- },
233
- "lineHeight": {
234
- "type": "number",
235
- "minimum": 1,
236
- "maximum": 3
237
- },
238
- "spacing": {
239
- "type": "string",
240
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
241
- }
242
- },
243
- "additionalProperties": false
244
- }
245
- },
246
- "additionalProperties": false
247
- },
248
- "body": {
249
- "type": "object",
250
- "properties": {
251
- "align": {
252
- "type": "object",
253
- "properties": {
254
- "desktop": {
255
- "type": "string",
256
- "enum": [
257
- "left",
258
- "center",
259
- "right"
260
- ]
261
- },
262
- "mobile": {
263
- "type": "string",
264
- "enum": [
265
- "left",
266
- "center",
267
- "right"
268
- ]
269
- }
270
- },
271
- "additionalProperties": false
272
- },
273
- "size": {
274
- "type": "string",
275
- "enum": [
276
- "small",
277
- "medium",
278
- "large",
279
- "xlarge"
280
- ]
281
- },
282
- "lineHeight": {
283
- "type": "number",
284
- "minimum": 1,
285
- "maximum": 3
286
- },
287
- "paragraphSpacing": {
288
- "type": "string",
289
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
290
- }
291
- },
292
- "additionalProperties": false
293
- },
294
- "caption": {
295
- "type": "object",
296
- "properties": {
297
- "align": {
298
- "type": "object",
299
- "properties": {
300
- "desktop": {
301
- "type": "string",
302
- "enum": [
303
- "left",
304
- "center",
305
- "right"
306
- ]
307
- },
308
- "mobile": {
309
- "type": "string",
310
- "enum": [
311
- "left",
312
- "center",
313
- "right"
314
- ]
315
- }
316
- },
317
- "additionalProperties": false
318
- },
319
- "size": {
320
- "type": "string",
321
- "enum": [
322
- "small",
323
- "medium",
324
- "large",
325
- "xlarge"
326
- ]
327
- },
328
- "lineHeight": {
329
- "type": "number",
330
- "minimum": 1,
331
- "maximum": 3
332
- },
333
- "spacing": {
334
- "type": "string",
335
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
336
- }
337
- },
338
- "additionalProperties": false
339
- }
340
- },
341
- "additionalProperties": false
342
- }
343
- },
344
- "additionalProperties": false
345
- }
346
- },
347
- "additionalProperties": false
348
- },
349
- "frame": {
350
- "type": "object",
351
- "properties": {
352
- "colors": {
353
- "anyOf": [
354
- {
355
- "type": "string",
356
- "enum": [
357
- "theme",
358
- "presentation"
359
- ]
360
- },
361
- {
362
- "type": "object",
363
- "properties": {
364
- "backgroundColor": {
365
- "type": "string",
366
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
367
- },
368
- "textColor": {
369
- "type": "string",
370
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
371
- }
372
- },
373
- "required": [
374
- "backgroundColor",
375
- "textColor"
376
- ],
377
- "additionalProperties": false
378
- }
379
- ]
380
- }
381
- },
382
- "additionalProperties": false
383
- },
384
- "sections": {
385
- "minItems": 1,
386
- "type": "array",
387
- "items": {
388
- "type": "object",
389
- "properties": {
390
- "id": {
391
- "type": "string",
392
- "pattern": "^[a-z0-9-]+$"
393
- },
394
- "visible": {
395
- "type": "object",
396
- "properties": {
397
- "from": {
398
- "type": "string",
399
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
400
- },
401
- "until": {
402
- "type": "string",
403
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
404
- }
405
- },
406
- "additionalProperties": false
407
- },
408
- "presentation": {
409
- "type": "object",
410
- "properties": {
411
- "backgroundColor": {
412
- "type": "string",
413
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
414
- },
415
- "textColor": {
416
- "type": "string",
417
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
418
- },
419
- "typography": {
420
- "type": "object",
421
- "properties": {
422
- "preset": {
423
- "type": "string",
424
- "enum": [
425
- "quiet-gallery",
426
- "compact-gallery",
427
- "text-forward",
428
- "statement"
429
- ]
430
- },
431
- "overrides": {
432
- "type": "object",
433
- "properties": {
434
- "headings": {
435
- "type": "object",
436
- "properties": {
437
- "h1": {
438
- "type": "object",
439
- "properties": {
440
- "align": {
441
- "type": "object",
442
- "properties": {
443
- "desktop": {
444
- "type": "string",
445
- "enum": [
446
- "left",
447
- "center",
448
- "right"
449
- ]
450
- },
451
- "mobile": {
452
- "type": "string",
453
- "enum": [
454
- "left",
455
- "center",
456
- "right"
457
- ]
458
- }
459
- },
460
- "additionalProperties": false
461
- },
462
- "size": {
463
- "type": "string",
464
- "enum": [
465
- "small",
466
- "medium",
467
- "large",
468
- "xlarge"
469
- ]
470
- },
471
- "lineHeight": {
472
- "type": "number",
473
- "minimum": 1,
474
- "maximum": 3
475
- },
476
- "spacing": {
477
- "type": "string",
478
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
479
- }
480
- },
481
- "additionalProperties": false
482
- },
483
- "h2": {
484
- "type": "object",
485
- "properties": {
486
- "align": {
487
- "type": "object",
488
- "properties": {
489
- "desktop": {
490
- "type": "string",
491
- "enum": [
492
- "left",
493
- "center",
494
- "right"
495
- ]
496
- },
497
- "mobile": {
498
- "type": "string",
499
- "enum": [
500
- "left",
501
- "center",
502
- "right"
503
- ]
504
- }
505
- },
506
- "additionalProperties": false
507
- },
508
- "size": {
509
- "type": "string",
510
- "enum": [
511
- "small",
512
- "medium",
513
- "large",
514
- "xlarge"
515
- ]
516
- },
517
- "lineHeight": {
518
- "type": "number",
519
- "minimum": 1,
520
- "maximum": 3
521
- },
522
- "spacing": {
523
- "type": "string",
524
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
525
- }
526
- },
527
- "additionalProperties": false
528
- },
529
- "h3": {
530
- "type": "object",
531
- "properties": {
532
- "align": {
533
- "type": "object",
534
- "properties": {
535
- "desktop": {
536
- "type": "string",
537
- "enum": [
538
- "left",
539
- "center",
540
- "right"
541
- ]
542
- },
543
- "mobile": {
544
- "type": "string",
545
- "enum": [
546
- "left",
547
- "center",
548
- "right"
549
- ]
550
- }
551
- },
552
- "additionalProperties": false
553
- },
554
- "size": {
555
- "type": "string",
556
- "enum": [
557
- "small",
558
- "medium",
559
- "large",
560
- "xlarge"
561
- ]
562
- },
563
- "lineHeight": {
564
- "type": "number",
565
- "minimum": 1,
566
- "maximum": 3
567
- },
568
- "spacing": {
569
- "type": "string",
570
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
571
- }
572
- },
573
- "additionalProperties": false
574
- },
575
- "h4": {
576
- "type": "object",
577
- "properties": {
578
- "align": {
579
- "type": "object",
580
- "properties": {
581
- "desktop": {
582
- "type": "string",
583
- "enum": [
584
- "left",
585
- "center",
586
- "right"
587
- ]
588
- },
589
- "mobile": {
590
- "type": "string",
591
- "enum": [
592
- "left",
593
- "center",
594
- "right"
595
- ]
596
- }
597
- },
598
- "additionalProperties": false
599
- },
600
- "size": {
601
- "type": "string",
602
- "enum": [
603
- "small",
604
- "medium",
605
- "large",
606
- "xlarge"
607
- ]
608
- },
609
- "lineHeight": {
610
- "type": "number",
611
- "minimum": 1,
612
- "maximum": 3
613
- },
614
- "spacing": {
615
- "type": "string",
616
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
617
- }
618
- },
619
- "additionalProperties": false
620
- }
621
- },
622
- "additionalProperties": false
623
- },
624
- "body": {
625
- "type": "object",
626
- "properties": {
627
- "align": {
628
- "type": "object",
629
- "properties": {
630
- "desktop": {
631
- "type": "string",
632
- "enum": [
633
- "left",
634
- "center",
635
- "right"
636
- ]
637
- },
638
- "mobile": {
639
- "type": "string",
640
- "enum": [
641
- "left",
642
- "center",
643
- "right"
644
- ]
645
- }
646
- },
647
- "additionalProperties": false
648
- },
649
- "size": {
650
- "type": "string",
651
- "enum": [
652
- "small",
653
- "medium",
654
- "large",
655
- "xlarge"
656
- ]
657
- },
658
- "lineHeight": {
659
- "type": "number",
660
- "minimum": 1,
661
- "maximum": 3
662
- },
663
- "paragraphSpacing": {
664
- "type": "string",
665
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
666
- }
667
- },
668
- "additionalProperties": false
669
- },
670
- "caption": {
671
- "type": "object",
672
- "properties": {
673
- "align": {
674
- "type": "object",
675
- "properties": {
676
- "desktop": {
677
- "type": "string",
678
- "enum": [
679
- "left",
680
- "center",
681
- "right"
682
- ]
683
- },
684
- "mobile": {
685
- "type": "string",
686
- "enum": [
687
- "left",
688
- "center",
689
- "right"
690
- ]
691
- }
692
- },
693
- "additionalProperties": false
694
- },
695
- "size": {
696
- "type": "string",
697
- "enum": [
698
- "small",
699
- "medium",
700
- "large",
701
- "xlarge"
702
- ]
703
- },
704
- "lineHeight": {
705
- "type": "number",
706
- "minimum": 1,
707
- "maximum": 3
708
- },
709
- "spacing": {
710
- "type": "string",
711
- "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$"
712
- }
713
- },
714
- "additionalProperties": false
715
- }
716
- },
717
- "additionalProperties": false
718
- }
719
- },
720
- "additionalProperties": false
721
- }
722
- },
723
- "additionalProperties": false
724
- },
725
- "gallery": {
726
- "default": [],
727
- "type": "array",
728
- "items": {
729
- "anyOf": [
730
- {
731
- "type": "object",
732
- "properties": {
733
- "image": {
734
- "type": "string",
735
- "pattern": "^[a-z0-9][a-z0-9.-]*\\.(jpe?g|png)$"
736
- },
737
- "alt": {
738
- "type": "string"
739
- },
740
- "caption": {
741
- "type": "string"
742
- }
743
- },
744
- "required": [
745
- "image",
746
- "alt"
747
- ],
748
- "additionalProperties": false
749
- },
750
- {
751
- "type": "object",
752
- "properties": {
753
- "carousel": {
754
- "minItems": 2,
755
- "type": "array",
756
- "items": {
757
- "type": "object",
758
- "properties": {
759
- "image": {
760
- "type": "string",
761
- "pattern": "^[a-z0-9][a-z0-9.-]*\\.(jpe?g|png)$"
762
- },
763
- "alt": {
764
- "type": "string"
765
- },
766
- "caption": {
767
- "type": "string"
768
- }
769
- },
770
- "required": [
771
- "image",
772
- "alt"
773
- ],
774
- "additionalProperties": false
775
- }
776
- }
777
- },
778
- "required": [
779
- "carousel"
780
- ],
781
- "additionalProperties": false
782
- }
783
- ]
784
- }
785
- }
786
- },
787
- "required": [
788
- "id"
789
- ],
790
- "additionalProperties": false
791
- }
792
- },
793
- "$schema": {
794
- "type": "string"
795
- }
796
- },
797
- "required": [
798
- "title",
799
- "description",
800
- "sections"
801
- ]
802
- }