@omniharmonic/openspace-cli 0.1.2 → 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.
Files changed (143) hide show
  1. package/README.md +11 -1
  2. package/dist/{agents-md-2DTXWUZQ.js → agents-md-3W4PIY4N.js} +2 -2
  3. package/dist/bin.js +2 -2
  4. package/dist/chunk-6NIIOHOX.js +39190 -0
  5. package/dist/chunk-6NIIOHOX.js.map +1 -0
  6. package/dist/{chunk-3F6TAUAT.js → chunk-7I6IJI6Z.js} +9184 -874
  7. package/dist/chunk-7I6IJI6Z.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +2 -2
  10. package/dist/starter/site/AGENTS.md +11 -4
  11. package/dist/templates/beacon/content/collections/events/_collection.json +13 -0
  12. package/dist/templates/beacon/content/collections/events/keeper-training-november.mdoc +14 -0
  13. package/dist/templates/beacon/content/collections/events/planting-day-harbour-ward.mdoc +14 -0
  14. package/dist/templates/beacon/content/collections/events/planting-day-linden-north.mdoc +14 -0
  15. package/dist/templates/beacon/content/collections/news/2026-09-12-heat-map-2026.mdoc +13 -0
  16. package/dist/templates/beacon/content/collections/news/2026-09-30-school-gardens-harvest.mdoc +13 -0
  17. package/dist/templates/beacon/content/collections/news/2026-10-14-planting-season-begins.mdoc +13 -0
  18. package/dist/templates/beacon/content/collections/news/_collection.json +16 -0
  19. package/dist/templates/beacon/content/pages/about.json +572 -0
  20. package/dist/templates/beacon/content/pages/contact.json +260 -0
  21. package/dist/templates/beacon/content/pages/donate.json +406 -0
  22. package/dist/templates/beacon/content/pages/get-involved.json +412 -0
  23. package/dist/templates/beacon/content/pages/home.json +701 -0
  24. package/dist/templates/beacon/content/pages/our-work.json +855 -0
  25. package/dist/templates/beacon/content/site.json +363 -0
  26. package/dist/templates/beacon/content/styles.json +17 -0
  27. package/dist/templates/beacon/media/LICENSES.json +163 -0
  28. package/dist/templates/beacon/openspace.json +21 -0
  29. package/dist/templates/beacon/template.json +113 -0
  30. package/dist/templates/commons/content/pages/{members.json → directory.json} +15 -15
  31. package/dist/templates/commons/content/pages/home.json +1 -1
  32. package/dist/templates/commons/content/site.json +2 -2
  33. package/dist/templates/commons/template.json +2 -2
  34. package/dist/templates/darkroom/content/collections/work/_collection.json +13 -0
  35. package/dist/templates/darkroom/content/collections/work/after-hours.mdoc +28 -0
  36. package/dist/templates/darkroom/content/collections/work/dry-season.mdoc +28 -0
  37. package/dist/templates/darkroom/content/collections/work/faces-of-the-guild.mdoc +28 -0
  38. package/dist/templates/darkroom/content/collections/work/two-weddings.mdoc +28 -0
  39. package/dist/templates/darkroom/content/collections/work/white-lines.mdoc +28 -0
  40. package/dist/templates/darkroom/content/pages/about.json +449 -0
  41. package/dist/templates/darkroom/content/pages/contact.json +185 -0
  42. package/dist/templates/darkroom/content/pages/home.json +636 -0
  43. package/dist/templates/darkroom/content/pages/services.json +636 -0
  44. package/dist/templates/darkroom/content/site.json +264 -0
  45. package/dist/templates/darkroom/content/styles.json +17 -0
  46. package/dist/templates/darkroom/media/LICENSES.json +284 -0
  47. package/dist/templates/darkroom/openspace.json +21 -0
  48. package/dist/templates/darkroom/template.json +103 -0
  49. package/dist/templates/encore/content/pages/home.json +86 -0
  50. package/dist/templates/encore/media/LICENSES.json +22 -0
  51. package/dist/templates/field-notes/content/pages/home.json +94 -0
  52. package/dist/templates/fixwell/content/pages/about.json +508 -0
  53. package/dist/templates/fixwell/content/pages/contact.json +321 -0
  54. package/dist/templates/fixwell/content/pages/home.json +888 -0
  55. package/dist/templates/fixwell/content/pages/pricing.json +467 -0
  56. package/dist/templates/fixwell/content/pages/services.json +648 -0
  57. package/dist/templates/fixwell/content/site.json +293 -0
  58. package/dist/templates/fixwell/content/styles.json +17 -0
  59. package/dist/templates/fixwell/media/LICENSES.json +119 -0
  60. package/dist/templates/fixwell/openspace.json +21 -0
  61. package/dist/templates/fixwell/template.json +108 -0
  62. package/dist/templates/folio/content/collections/projects/_collection.json +13 -0
  63. package/dist/templates/folio/content/collections/projects/field-notes-app.mdoc +28 -0
  64. package/dist/templates/folio/content/collections/projects/harbour-health-dashboards.mdoc +28 -0
  65. package/dist/templates/folio/content/collections/projects/open-budget.mdoc +28 -0
  66. package/dist/templates/folio/content/collections/projects/transit-times.mdoc +28 -0
  67. package/dist/templates/folio/content/collections/writing/2026-08-30-designing-for-night-shifts.mdoc +9 -0
  68. package/dist/templates/folio/content/collections/writing/2026-09-20-testing-with-real-data.mdoc +9 -0
  69. package/dist/templates/folio/content/collections/writing/2026-10-12-one-honest-number.mdoc +9 -0
  70. package/dist/templates/folio/content/collections/writing/_collection.json +16 -0
  71. package/dist/templates/folio/content/pages/about.json +366 -0
  72. package/dist/templates/folio/content/pages/contact.json +218 -0
  73. package/dist/templates/folio/content/pages/experience.json +552 -0
  74. package/dist/templates/folio/content/pages/home.json +410 -0
  75. package/dist/templates/folio/content/site.json +186 -0
  76. package/dist/templates/folio/content/styles.json +17 -0
  77. package/dist/templates/folio/media/LICENSES.json +229 -0
  78. package/dist/templates/folio/openspace.json +21 -0
  79. package/dist/templates/folio/template.json +103 -0
  80. package/dist/templates/gather/content/collections/fringe/_collection.json +13 -0
  81. package/dist/templates/gather/content/collections/fringe/library-open-studio.mdoc +14 -0
  82. package/dist/templates/gather/content/collections/fringe/morning-run.mdoc +14 -0
  83. package/dist/templates/gather/content/collections/fringe/plain-language-pub-quiz.mdoc +14 -0
  84. package/dist/templates/gather/content/pages/about.json +435 -0
  85. package/dist/templates/gather/content/pages/contact.json +196 -0
  86. package/dist/templates/gather/content/pages/home.json +527 -0
  87. package/dist/templates/gather/content/pages/programme.json +449 -0
  88. package/dist/templates/gather/content/pages/speakers.json +225 -0
  89. package/dist/templates/gather/content/pages/tickets.json +495 -0
  90. package/dist/templates/gather/content/pages/venue.json +382 -0
  91. package/dist/templates/gather/content/site.json +222 -0
  92. package/dist/templates/gather/content/styles.json +17 -0
  93. package/dist/templates/gather/media/LICENSES.json +185 -0
  94. package/dist/templates/gather/openspace.json +21 -0
  95. package/dist/templates/gather/template.json +118 -0
  96. package/dist/templates/inkwell/content/collections/essays/2026-09-17-notebooks.mdoc +13 -0
  97. package/dist/templates/inkwell/content/collections/essays/2026-10-01-kitchen-radio.mdoc +13 -0
  98. package/dist/templates/inkwell/content/collections/essays/2026-10-15-the-same-mile.mdoc +13 -0
  99. package/dist/templates/inkwell/content/collections/essays/_collection.json +21 -0
  100. package/dist/templates/inkwell/content/pages/about.json +281 -0
  101. package/dist/templates/inkwell/content/pages/books.json +459 -0
  102. package/dist/templates/inkwell/content/pages/contact.json +201 -0
  103. package/dist/templates/inkwell/content/pages/home.json +457 -0
  104. package/dist/templates/inkwell/content/pages/speaking.json +522 -0
  105. package/dist/templates/inkwell/content/site.json +222 -0
  106. package/dist/templates/inkwell/content/styles.json +17 -0
  107. package/dist/templates/inkwell/media/LICENSES.json +119 -0
  108. package/dist/templates/inkwell/openspace.json +21 -0
  109. package/dist/templates/inkwell/template.json +108 -0
  110. package/dist/templates/keystone/content/collections/notes/2026-09-17-hard-conversations.mdoc +11 -0
  111. package/dist/templates/keystone/content/collections/notes/2026-10-01-weekly-rhythm.mdoc +11 -0
  112. package/dist/templates/keystone/content/collections/notes/2026-10-15-the-first-manager.mdoc +11 -0
  113. package/dist/templates/keystone/content/collections/notes/_collection.json +21 -0
  114. package/dist/templates/keystone/content/pages/about.json +371 -0
  115. package/dist/templates/keystone/content/pages/contact.json +207 -0
  116. package/dist/templates/keystone/content/pages/home.json +815 -0
  117. package/dist/templates/keystone/content/pages/results.json +396 -0
  118. package/dist/templates/keystone/content/pages/work-with-me.json +477 -0
  119. package/dist/templates/keystone/content/site.json +224 -0
  120. package/dist/templates/keystone/content/styles.json +17 -0
  121. package/dist/templates/keystone/media/LICENSES.json +75 -0
  122. package/dist/templates/keystone/openspace.json +21 -0
  123. package/dist/templates/keystone/template.json +108 -0
  124. package/dist/templates/ledger/content/pages/home.json +62 -0
  125. package/dist/templates/orbit/content/collections/changelog/2026-09-21-faster-attachments.mdoc +11 -0
  126. package/dist/templates/orbit/content/collections/changelog/2026-10-05-snooze-until-reply.mdoc +11 -0
  127. package/dist/templates/orbit/content/collections/changelog/2026-10-19-help-centre-search.mdoc +13 -0
  128. package/dist/templates/orbit/content/collections/changelog/_collection.json +39 -0
  129. package/dist/templates/orbit/content/pages/about.json +396 -0
  130. package/dist/templates/orbit/content/pages/contact.json +195 -0
  131. package/dist/templates/orbit/content/pages/features.json +603 -0
  132. package/dist/templates/orbit/content/pages/home.json +1273 -0
  133. package/dist/templates/orbit/content/pages/pricing.json +608 -0
  134. package/dist/templates/orbit/content/site.json +368 -0
  135. package/dist/templates/orbit/content/styles.json +17 -0
  136. package/dist/templates/orbit/media/LICENSES.json +141 -0
  137. package/dist/templates/orbit/openspace.json +21 -0
  138. package/dist/templates/orbit/template.json +108 -0
  139. package/package.json +9 -7
  140. package/dist/chunk-3F6TAUAT.js.map +0 -1
  141. package/dist/chunk-R3SYHQ5J.js +0 -17420
  142. package/dist/chunk-R3SYHQ5J.js.map +0 -1
  143. /package/dist/{agents-md-2DTXWUZQ.js.map → agents-md-3W4PIY4N.js.map} +0 -0
@@ -0,0 +1,636 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_mdnn4w8hvq",
4
+ "title": "Home",
5
+ "slug": "",
6
+ "seo": {
7
+ "description": "Mara Quill photographs people and places in natural light. Portraits, editorial commissions and small weddings, based in Brooklyn."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_q42y5vzh6r",
12
+ "preset": "hero/gallery-strip@1",
13
+ "label": "Headline over photo strip",
14
+ "layout": {
15
+ "mode": "grid",
16
+ "rows": {
17
+ "d": 29,
18
+ "m": 38
19
+ },
20
+ "items": {
21
+ "blk_m1dyp9mdj6": {
22
+ "d": {
23
+ "x": 4,
24
+ "y": 1,
25
+ "w": 18,
26
+ "h": 10
27
+ },
28
+ "m": {
29
+ "x": 1,
30
+ "y": 1,
31
+ "w": 8,
32
+ "h": 12
33
+ }
34
+ },
35
+ "blk_bt8vxt7pa3": {
36
+ "d": {
37
+ "x": 4,
38
+ "y": 12,
39
+ "w": 18,
40
+ "h": 3
41
+ },
42
+ "m": {
43
+ "x": 1,
44
+ "y": 14,
45
+ "w": 8,
46
+ "h": 3
47
+ }
48
+ },
49
+ "blk_57hehks24p": {
50
+ "d": {
51
+ "x": 1,
52
+ "y": 16,
53
+ "w": 6,
54
+ "h": 12
55
+ },
56
+ "m": {
57
+ "x": 1,
58
+ "y": 18,
59
+ "w": 4,
60
+ "h": 10
61
+ }
62
+ },
63
+ "blk_mw17war9xn": {
64
+ "d": {
65
+ "x": 7,
66
+ "y": 18,
67
+ "w": 6,
68
+ "h": 12
69
+ },
70
+ "m": {
71
+ "x": 5,
72
+ "y": 18,
73
+ "w": 4,
74
+ "h": 10
75
+ }
76
+ },
77
+ "blk_gw3zmv9wth": {
78
+ "d": {
79
+ "x": 13,
80
+ "y": 16,
81
+ "w": 6,
82
+ "h": 12
83
+ },
84
+ "m": {
85
+ "x": 1,
86
+ "y": 29,
87
+ "w": 4,
88
+ "h": 10
89
+ }
90
+ },
91
+ "blk_dzs30f9atc": {
92
+ "d": {
93
+ "x": 19,
94
+ "y": 18,
95
+ "w": 6,
96
+ "h": 12
97
+ },
98
+ "m": {
99
+ "x": 5,
100
+ "y": 29,
101
+ "w": 4,
102
+ "h": 10
103
+ }
104
+ }
105
+ },
106
+ "width": "wide"
107
+ },
108
+ "style": {
109
+ "colorTheme": "light",
110
+ "padding": {
111
+ "d": "xl",
112
+ "m": "lg"
113
+ }
114
+ },
115
+ "blocks": [
116
+ {
117
+ "id": "blk_m1dyp9mdj6",
118
+ "type": "heading",
119
+ "v": 1,
120
+ "fields": {
121
+ "text": "Quiet portraits of people at work and at home",
122
+ "level": "h1",
123
+ "size": "display",
124
+ "eyebrow": "Portrait & editorial photographer · Brooklyn",
125
+ "subheading": "Natural light, no props and plenty of time. I photograph people for magazines, books and their own walls."
126
+ },
127
+ "variant": "plain",
128
+ "style": {
129
+ "align": {
130
+ "d": "center"
131
+ }
132
+ }
133
+ },
134
+ {
135
+ "id": "blk_bt8vxt7pa3",
136
+ "type": "button",
137
+ "v": 1,
138
+ "fields": {
139
+ "label": "See sessions & prices",
140
+ "link": {
141
+ "type": "page",
142
+ "page": "pg_7dmpqcv4k7"
143
+ },
144
+ "role": "primary",
145
+ "secondaryLabel": "Get in touch",
146
+ "secondaryLink": {
147
+ "type": "page",
148
+ "page": "pg_qp79g004am"
149
+ }
150
+ },
151
+ "variant": "default",
152
+ "style": {
153
+ "align": {
154
+ "d": "center"
155
+ }
156
+ }
157
+ },
158
+ {
159
+ "id": "blk_57hehks24p",
160
+ "type": "image",
161
+ "v": 1,
162
+ "fields": {
163
+ "image": {
164
+ "src": "https://images.unsplash.com/photo-1667053508464-eb11b394df83?w=680&q=80",
165
+ "alt": "Studio portrait from Faces of the Guild",
166
+ "width": 680,
167
+ "height": 850
168
+ },
169
+ "aspect": "4:5",
170
+ "lightbox": false
171
+ },
172
+ "variant": "default"
173
+ },
174
+ {
175
+ "id": "blk_mw17war9xn",
176
+ "type": "image",
177
+ "v": 1,
178
+ "fields": {
179
+ "image": {
180
+ "src": "https://images.unsplash.com/photo-1703088066010-af61bb552da4?w=680&q=80",
181
+ "alt": "A lantern-lit street at night, from After Hours",
182
+ "width": 680,
183
+ "height": 1020
184
+ },
185
+ "aspect": "4:5",
186
+ "lightbox": false
187
+ },
188
+ "variant": "default"
189
+ },
190
+ {
191
+ "id": "blk_gw3zmv9wth",
192
+ "type": "image",
193
+ "v": 1,
194
+ "fields": {
195
+ "image": {
196
+ "src": "https://images.unsplash.com/photo-1620122303020-87ec826cf70d?w=680&q=80",
197
+ "alt": "Black-and-white portrait from Faces of the Guild",
198
+ "width": 680,
199
+ "height": 1020
200
+ },
201
+ "aspect": "4:5",
202
+ "lightbox": false
203
+ },
204
+ "variant": "default"
205
+ },
206
+ {
207
+ "id": "blk_dzs30f9atc",
208
+ "type": "image",
209
+ "v": 1,
210
+ "fields": {
211
+ "image": {
212
+ "src": "https://images.unsplash.com/photo-1542401886-65d6c61db217?w=1240&q=80",
213
+ "alt": "Sand dunes at dawn, from Dry Season",
214
+ "width": 1240,
215
+ "height": 827
216
+ },
217
+ "aspect": "4:5",
218
+ "lightbox": false
219
+ },
220
+ "variant": "default"
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "id": "sec_g6s4513zq0",
226
+ "preset": "portfolio/project-grid@1",
227
+ "label": "Selected work grid",
228
+ "layout": {
229
+ "mode": "stack",
230
+ "columns": {
231
+ "d": [
232
+ 12
233
+ ]
234
+ },
235
+ "width": "wide"
236
+ },
237
+ "style": {
238
+ "colorTheme": "light"
239
+ },
240
+ "blocks": [
241
+ {
242
+ "id": "blk_6arjgzwtna",
243
+ "type": "summary",
244
+ "v": 1,
245
+ "fields": {
246
+ "heading": "Recent projects",
247
+ "headingLevel": "h2",
248
+ "source": {
249
+ "collection": "work",
250
+ "sort": "date-desc",
251
+ "limit": 4
252
+ },
253
+ "columns": "2",
254
+ "showImage": true,
255
+ "showDate": false,
256
+ "showExcerpt": false,
257
+ "showMeta": false,
258
+ "linkLabel": "Every project",
259
+ "link": {
260
+ "type": "url",
261
+ "url": "/work/"
262
+ },
263
+ "emptyMessage": "New projects are on their way."
264
+ },
265
+ "variant": "grid"
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "id": "sec_06a84z717t",
271
+ "preset": "services/horizontal-cards@1",
272
+ "label": "Service rows",
273
+ "layout": {
274
+ "mode": "stack",
275
+ "columns": {
276
+ "d": [
277
+ 12
278
+ ]
279
+ },
280
+ "width": "content",
281
+ "gap": "lg"
282
+ },
283
+ "style": {
284
+ "colorTheme": "light-accent"
285
+ },
286
+ "blocks": [
287
+ {
288
+ "id": "blk_6gcrepc73p",
289
+ "type": "heading",
290
+ "v": 1,
291
+ "fields": {
292
+ "text": "Three ways to work together",
293
+ "level": "h2",
294
+ "size": "auto",
295
+ "eyebrow": "Commissions"
296
+ },
297
+ "variant": "plain"
298
+ },
299
+ {
300
+ "id": "blk_heq95phnca",
301
+ "type": "card",
302
+ "v": 1,
303
+ "fields": {
304
+ "image": {
305
+ "src": "https://images.unsplash.com/photo-1522529599102-193c0d76b5b6?w=720&q=80",
306
+ "alt": "A smiling man photographed outdoors",
307
+ "width": 720,
308
+ "height": 480
309
+ },
310
+ "aspect": "3:2",
311
+ "heading": "Portrait sessions",
312
+ "body": {
313
+ "type": "doc",
314
+ "content": [
315
+ {
316
+ "type": "paragraph",
317
+ "content": [
318
+ {
319
+ "type": "text",
320
+ "text": "Two unhurried hours at your home, studio or a place that matters to you."
321
+ }
322
+ ]
323
+ }
324
+ ]
325
+ },
326
+ "link": {
327
+ "type": "page",
328
+ "page": "pg_7dmpqcv4k7",
329
+ "anchor": "portraits"
330
+ },
331
+ "linkLabel": "Sessions and prices"
332
+ },
333
+ "variant": "horizontal"
334
+ },
335
+ {
336
+ "id": "blk_07gbm98ka9",
337
+ "type": "card",
338
+ "v": 1,
339
+ "fields": {
340
+ "image": {
341
+ "src": "https://images.unsplash.com/photo-1493863641943-9b68992a8d07?w=720&q=80",
342
+ "alt": "Mara photographing on a city street",
343
+ "width": 720,
344
+ "height": 487
345
+ },
346
+ "aspect": "3:2",
347
+ "heading": "Editorial and books",
348
+ "body": {
349
+ "type": "doc",
350
+ "content": [
351
+ {
352
+ "type": "paragraph",
353
+ "content": [
354
+ {
355
+ "type": "text",
356
+ "text": "Portraits and stories for magazines, annual reports and publishers."
357
+ }
358
+ ]
359
+ }
360
+ ]
361
+ },
362
+ "link": {
363
+ "type": "page",
364
+ "page": "pg_7dmpqcv4k7",
365
+ "anchor": "editorial"
366
+ },
367
+ "linkLabel": "How it works"
368
+ },
369
+ "variant": "horizontal"
370
+ },
371
+ {
372
+ "id": "blk_4z09g8vztr",
373
+ "type": "card",
374
+ "v": 1,
375
+ "fields": {
376
+ "image": {
377
+ "src": "https://images.unsplash.com/photo-1715285977619-6d9357168f46?w=720&q=80",
378
+ "alt": "A couple embracing in a misty field",
379
+ "width": 720,
380
+ "height": 1080
381
+ },
382
+ "aspect": "3:2",
383
+ "heading": "Small weddings",
384
+ "body": {
385
+ "type": "doc",
386
+ "content": [
387
+ {
388
+ "type": "paragraph",
389
+ "content": [
390
+ {
391
+ "type": "text",
392
+ "text": "Elopements and weddings under fifty guests, shot on film and digital."
393
+ }
394
+ ]
395
+ }
396
+ ]
397
+ },
398
+ "link": {
399
+ "type": "page",
400
+ "page": "pg_7dmpqcv4k7",
401
+ "anchor": "weddings"
402
+ },
403
+ "linkLabel": "Wedding coverage"
404
+ },
405
+ "variant": "horizontal"
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "id": "sec_6n72pvja6b",
411
+ "preset": "testimonials/dark-trio@1",
412
+ "label": "Three quotes on dark",
413
+ "layout": {
414
+ "mode": "grid",
415
+ "rows": {
416
+ "d": 14,
417
+ "m": 32
418
+ },
419
+ "items": {
420
+ "blk_57790hgtev": {
421
+ "d": {
422
+ "x": 1,
423
+ "y": 1,
424
+ "w": 16,
425
+ "h": 5
426
+ },
427
+ "m": {
428
+ "x": 1,
429
+ "y": 1,
430
+ "w": 8,
431
+ "h": 5
432
+ }
433
+ },
434
+ "blk_z3md91dsta": {
435
+ "d": {
436
+ "x": 1,
437
+ "y": 7,
438
+ "w": 8,
439
+ "h": 8
440
+ },
441
+ "m": {
442
+ "x": 1,
443
+ "y": 7,
444
+ "w": 8,
445
+ "h": 8
446
+ }
447
+ },
448
+ "blk_3rw8xfz76e": {
449
+ "d": {
450
+ "x": 9,
451
+ "y": 7,
452
+ "w": 8,
453
+ "h": 8
454
+ },
455
+ "m": {
456
+ "x": 1,
457
+ "y": 16,
458
+ "w": 8,
459
+ "h": 8
460
+ }
461
+ },
462
+ "blk_edm1b13acf": {
463
+ "d": {
464
+ "x": 17,
465
+ "y": 7,
466
+ "w": 8,
467
+ "h": 8
468
+ },
469
+ "m": {
470
+ "x": 1,
471
+ "y": 25,
472
+ "w": 8,
473
+ "h": 8
474
+ }
475
+ }
476
+ }
477
+ },
478
+ "style": {
479
+ "colorTheme": "dark"
480
+ },
481
+ "blocks": [
482
+ {
483
+ "id": "blk_57790hgtev",
484
+ "type": "heading",
485
+ "v": 1,
486
+ "fields": {
487
+ "text": "What people say afterwards",
488
+ "level": "h2",
489
+ "size": "auto",
490
+ "eyebrow": "Clients"
491
+ },
492
+ "variant": "plain"
493
+ },
494
+ {
495
+ "id": "blk_z3md91dsta",
496
+ "type": "testimonial",
497
+ "v": 1,
498
+ "fields": {
499
+ "quote": {
500
+ "type": "doc",
501
+ "content": [
502
+ {
503
+ "type": "paragraph",
504
+ "content": [
505
+ {
506
+ "type": "text",
507
+ "text": "I've never liked a photo of myself until these. She made the morning feel like a conversation."
508
+ }
509
+ ]
510
+ }
511
+ ]
512
+ },
513
+ "name": "Hana Okafor",
514
+ "role": "Portrait session",
515
+ "photo": {
516
+ "src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=320&q=80",
517
+ "alt": "Portrait of a woman in a red sweater, laughing",
518
+ "width": 320,
519
+ "height": 480
520
+ }
521
+ },
522
+ "variant": "minimal"
523
+ },
524
+ {
525
+ "id": "blk_3rw8xfz76e",
526
+ "type": "testimonial",
527
+ "v": 1,
528
+ "fields": {
529
+ "quote": {
530
+ "type": "doc",
531
+ "content": [
532
+ {
533
+ "type": "paragraph",
534
+ "content": [
535
+ {
536
+ "type": "text",
537
+ "text": "Mara delivered forty portraits on time and every one of them had a story in it."
538
+ }
539
+ ]
540
+ }
541
+ ]
542
+ },
543
+ "name": "Theo Grant",
544
+ "role": "Editor, Brooklyn Makers Guild",
545
+ "photo": {
546
+ "src": "https://images.unsplash.com/photo-1539571696357-5a69c17a67c6?w=320&q=80",
547
+ "alt": "Portrait of a young man in a black hat, smiling",
548
+ "width": 320,
549
+ "height": 480
550
+ }
551
+ },
552
+ "variant": "minimal"
553
+ },
554
+ {
555
+ "id": "blk_edm1b13acf",
556
+ "type": "testimonial",
557
+ "v": 1,
558
+ "fields": {
559
+ "quote": {
560
+ "type": "doc",
561
+ "content": [
562
+ {
563
+ "type": "paragraph",
564
+ "content": [
565
+ {
566
+ "type": "text",
567
+ "text": "Our wedding photos look like the day felt: relaxed, a bit foggy and full of laughing."
568
+ }
569
+ ]
570
+ }
571
+ ]
572
+ },
573
+ "name": "Iris Lund",
574
+ "role": "Wedding, October",
575
+ "photo": {
576
+ "src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=320&q=80",
577
+ "alt": "Portrait of a woman in a black top against a soft violet wall",
578
+ "width": 320,
579
+ "height": 400
580
+ }
581
+ },
582
+ "variant": "minimal"
583
+ }
584
+ ]
585
+ },
586
+ {
587
+ "id": "sec_tmrh1gytma",
588
+ "preset": "cta/minimal-link@1",
589
+ "label": "Minimal next step",
590
+ "layout": {
591
+ "mode": "stack",
592
+ "columns": {
593
+ "d": [
594
+ 12
595
+ ]
596
+ },
597
+ "width": "content",
598
+ "gap": "md"
599
+ },
600
+ "style": {
601
+ "colorTheme": "light",
602
+ "padding": {
603
+ "d": "xl",
604
+ "m": "lg"
605
+ }
606
+ },
607
+ "blocks": [
608
+ {
609
+ "id": "blk_smr684z9ae",
610
+ "type": "heading",
611
+ "v": 1,
612
+ "fields": {
613
+ "text": "Now booking portrait sessions for spring.",
614
+ "level": "h2",
615
+ "size": "h2"
616
+ },
617
+ "variant": "plain"
618
+ },
619
+ {
620
+ "id": "blk_kc2fxjak9n",
621
+ "type": "button",
622
+ "v": 1,
623
+ "fields": {
624
+ "label": "Check my availability",
625
+ "link": {
626
+ "type": "page",
627
+ "page": "pg_qp79g004am"
628
+ },
629
+ "role": "tertiary"
630
+ },
631
+ "variant": "default"
632
+ }
633
+ ]
634
+ }
635
+ ]
636
+ }