@janga/norna 0.7.9 → 0.7.10

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