@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,449 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_2rv4hb1aae",
4
+ "title": "About",
5
+ "slug": "about",
6
+ "seo": {
7
+ "description": "Mara Quill has photographed people for magazines, publishers and families for twelve years. Read about her approach, clients and press."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_1vm7f1cawf",
12
+ "preset": "hero/personal-intro@1",
13
+ "label": "Personal introduction",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 4,
19
+ 8
20
+ ],
21
+ "m": [
22
+ 12
23
+ ]
24
+ },
25
+ "order": {
26
+ "m": [
27
+ 0,
28
+ 1
29
+ ],
30
+ "t": [
31
+ 0,
32
+ 1
33
+ ]
34
+ },
35
+ "align": "center",
36
+ "gap": "2xl"
37
+ },
38
+ "style": {
39
+ "colorTheme": "light",
40
+ "padding": {
41
+ "d": "xl",
42
+ "m": "lg"
43
+ }
44
+ },
45
+ "blocks": [
46
+ {
47
+ "id": "blk_hm77zz4npr",
48
+ "type": "image",
49
+ "v": 1,
50
+ "fields": {
51
+ "image": {
52
+ "src": "https://images.unsplash.com/photo-1549981832-2ba2ee913334?w=840&q=80",
53
+ "alt": "Mara Quill holding her camera",
54
+ "width": 840,
55
+ "height": 1260
56
+ },
57
+ "aspect": "1:1",
58
+ "lightbox": false
59
+ },
60
+ "column": 0,
61
+ "variant": "default",
62
+ "style": {
63
+ "imageTreatment": "circle"
64
+ }
65
+ },
66
+ {
67
+ "id": "blk_c551zw0xx5",
68
+ "type": "heading",
69
+ "v": 1,
70
+ "fields": {
71
+ "text": "I'm Mara. I take my time.",
72
+ "level": "h1",
73
+ "size": "h1",
74
+ "eyebrow": "About",
75
+ "subheading": "Twelve years photographing people for magazines, publishers and their families — always in natural light, always slowly."
76
+ },
77
+ "column": 1,
78
+ "variant": "plain"
79
+ },
80
+ {
81
+ "id": "blk_9bpwbn1atm",
82
+ "type": "button",
83
+ "v": 1,
84
+ "fields": {
85
+ "label": "Sessions & prices",
86
+ "link": {
87
+ "type": "page",
88
+ "page": "pg_7dmpqcv4k7"
89
+ },
90
+ "role": "primary",
91
+ "secondaryLabel": "Write to me",
92
+ "secondaryLink": {
93
+ "type": "page",
94
+ "page": "pg_qp79g004am"
95
+ }
96
+ },
97
+ "column": 1,
98
+ "variant": "default"
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "id": "sec_gbgsdre5ev",
104
+ "preset": "about/story-numbers@1",
105
+ "label": "Story with numbers",
106
+ "layout": {
107
+ "mode": "stack",
108
+ "columns": {
109
+ "d": [
110
+ 7,
111
+ 5
112
+ ],
113
+ "m": [
114
+ 12
115
+ ]
116
+ },
117
+ "gap": "2xl"
118
+ },
119
+ "style": {
120
+ "colorTheme": "light-accent"
121
+ },
122
+ "blocks": [
123
+ {
124
+ "id": "blk_1mv7qe7p17",
125
+ "type": "heading",
126
+ "v": 1,
127
+ "fields": {
128
+ "text": "From darkroom assistant to my own studio",
129
+ "level": "h2",
130
+ "size": "auto",
131
+ "eyebrow": "The story"
132
+ },
133
+ "column": 0,
134
+ "variant": "plain"
135
+ },
136
+ {
137
+ "id": "blk_wjp6wnsg6a",
138
+ "type": "text",
139
+ "v": 1,
140
+ "fields": {
141
+ "content": {
142
+ "type": "doc",
143
+ "content": [
144
+ {
145
+ "type": "paragraph",
146
+ "content": [
147
+ {
148
+ "type": "text",
149
+ "text": "I learned to print in a basement darkroom in Philadelphia, then spent six years assisting editorial photographers before going on my own in 2014."
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "type": "paragraph",
155
+ "content": [
156
+ {
157
+ "type": "text",
158
+ "text": "I still shoot a roll of film on every job, and every client gets one hand-printed photograph in the post."
159
+ }
160
+ ]
161
+ }
162
+ ]
163
+ }
164
+ },
165
+ "column": 0,
166
+ "variant": "default"
167
+ },
168
+ {
169
+ "id": "blk_h640j49yrh",
170
+ "type": "stats",
171
+ "v": 1,
172
+ "fields": {
173
+ "items": [
174
+ {
175
+ "value": "2014",
176
+ "label": "Working for myself since"
177
+ },
178
+ {
179
+ "value": "600+",
180
+ "label": "Portrait sessions"
181
+ },
182
+ {
183
+ "value": "38",
184
+ "label": "Magazine and book commissions"
185
+ }
186
+ ]
187
+ },
188
+ "column": 1,
189
+ "variant": "large"
190
+ }
191
+ ]
192
+ },
193
+ {
194
+ "id": "sec_m6ydj6yn7p",
195
+ "preset": "about/recognition@1",
196
+ "label": "Awards and recognition",
197
+ "layout": {
198
+ "mode": "stack",
199
+ "columns": {
200
+ "d": [
201
+ 5,
202
+ 7
203
+ ],
204
+ "m": [
205
+ 12
206
+ ]
207
+ },
208
+ "gap": "2xl"
209
+ },
210
+ "style": {
211
+ "colorTheme": "light"
212
+ },
213
+ "blocks": [
214
+ {
215
+ "id": "blk_2c6bad0eg5",
216
+ "type": "heading",
217
+ "v": 1,
218
+ "fields": {
219
+ "text": "Exhibitions and awards",
220
+ "level": "h2",
221
+ "size": "auto",
222
+ "eyebrow": "Recognition"
223
+ },
224
+ "column": 0,
225
+ "variant": "plain"
226
+ },
227
+ {
228
+ "id": "blk_8evpfmk4n6",
229
+ "type": "text",
230
+ "v": 1,
231
+ "fields": {
232
+ "content": {
233
+ "type": "doc",
234
+ "content": [
235
+ {
236
+ "type": "paragraph",
237
+ "content": [
238
+ {
239
+ "type": "text",
240
+ "text": "A few moments I'm proud of, and the people who made them possible."
241
+ }
242
+ ]
243
+ }
244
+ ]
245
+ }
246
+ },
247
+ "column": 0,
248
+ "variant": "default"
249
+ },
250
+ {
251
+ "id": "blk_pyk3rq3se3",
252
+ "type": "icon-list",
253
+ "v": 1,
254
+ "fields": {
255
+ "items": [
256
+ {
257
+ "icon": "award",
258
+ "title": "Portrait Prize shortlist, 2025",
259
+ "text": "For Faces of the Guild."
260
+ },
261
+ {
262
+ "icon": "image",
263
+ "title": "After Hours, solo exhibition",
264
+ "text": "Atlantic Avenue Gallery, 2026."
265
+ },
266
+ {
267
+ "icon": "book-open",
268
+ "title": "Faces of the Guild, the book",
269
+ "text": "Published by Saltmarsh Press."
270
+ }
271
+ ],
272
+ "columns": "1"
273
+ },
274
+ "column": 1,
275
+ "variant": "list",
276
+ "style": {
277
+ "colorTheme": "light-accent",
278
+ "padding": {
279
+ "d": "lg",
280
+ "m": "md"
281
+ },
282
+ "radius": "md"
283
+ }
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ "id": "sec_jn350f2acq",
289
+ "preset": "testimonials/press-quotes@1",
290
+ "label": "Press quotes",
291
+ "layout": {
292
+ "mode": "stack",
293
+ "columns": {
294
+ "d": [
295
+ 4,
296
+ 4,
297
+ 4
298
+ ],
299
+ "m": [
300
+ 12
301
+ ]
302
+ },
303
+ "gap": "xl"
304
+ },
305
+ "style": {
306
+ "colorTheme": "light-accent",
307
+ "padding": {
308
+ "d": "lg",
309
+ "m": "lg"
310
+ }
311
+ },
312
+ "blocks": [
313
+ {
314
+ "id": "blk_vcqgxpxj3k",
315
+ "type": "quote",
316
+ "v": 1,
317
+ "fields": {
318
+ "quote": {
319
+ "type": "doc",
320
+ "content": [
321
+ {
322
+ "type": "paragraph",
323
+ "content": [
324
+ {
325
+ "type": "text",
326
+ "text": "Patient, unshowy portraits that let their subjects breathe."
327
+ }
328
+ ]
329
+ }
330
+ ]
331
+ },
332
+ "source": "Field & Atlas"
333
+ },
334
+ "column": 0,
335
+ "variant": "classic"
336
+ },
337
+ {
338
+ "id": "blk_aredwxe4tk",
339
+ "type": "quote",
340
+ "v": 1,
341
+ "fields": {
342
+ "quote": {
343
+ "type": "doc",
344
+ "content": [
345
+ {
346
+ "type": "paragraph",
347
+ "content": [
348
+ {
349
+ "type": "text",
350
+ "text": "One of the most humane portrait books of the year."
351
+ }
352
+ ]
353
+ }
354
+ ]
355
+ },
356
+ "source": "The Evening Ledger"
357
+ },
358
+ "column": 1,
359
+ "variant": "classic"
360
+ },
361
+ {
362
+ "id": "blk_2t8sxq95xy",
363
+ "type": "quote",
364
+ "v": 1,
365
+ "fields": {
366
+ "quote": {
367
+ "type": "doc",
368
+ "content": [
369
+ {
370
+ "type": "paragraph",
371
+ "content": [
372
+ {
373
+ "type": "text",
374
+ "text": "Quill's night portraits glow without a single flash."
375
+ }
376
+ ]
377
+ }
378
+ ]
379
+ },
380
+ "source": "City Arts Weekly"
381
+ },
382
+ "column": 2,
383
+ "variant": "classic"
384
+ }
385
+ ]
386
+ },
387
+ {
388
+ "id": "sec_qqwad45934",
389
+ "preset": "cta/big-type@1",
390
+ "label": "Big type call to action",
391
+ "layout": {
392
+ "mode": "stack",
393
+ "columns": {
394
+ "d": [
395
+ 9,
396
+ 3
397
+ ],
398
+ "m": [
399
+ 12
400
+ ]
401
+ },
402
+ "align": "end",
403
+ "gap": "xl"
404
+ },
405
+ "style": {
406
+ "colorTheme": "dark",
407
+ "padding": {
408
+ "d": "2xl",
409
+ "m": "xl"
410
+ }
411
+ },
412
+ "blocks": [
413
+ {
414
+ "id": "blk_1s0k8bgvdw",
415
+ "type": "heading",
416
+ "v": 1,
417
+ "fields": {
418
+ "text": "Let's make a portrait you'll keep.",
419
+ "level": "h2",
420
+ "size": "display"
421
+ },
422
+ "column": 0,
423
+ "variant": "plain"
424
+ },
425
+ {
426
+ "id": "blk_am2bfknm45",
427
+ "type": "button",
428
+ "v": 1,
429
+ "fields": {
430
+ "label": "Get in touch",
431
+ "link": {
432
+ "type": "page",
433
+ "page": "pg_qp79g004am"
434
+ },
435
+ "role": "primary"
436
+ },
437
+ "column": 1,
438
+ "variant": "default",
439
+ "style": {
440
+ "align": {
441
+ "d": "end",
442
+ "m": "start"
443
+ }
444
+ }
445
+ }
446
+ ]
447
+ }
448
+ ]
449
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_qp79g004am",
4
+ "title": "Contact",
5
+ "slug": "contact",
6
+ "seo": {
7
+ "description": "Book a portrait session, send an editorial brief or ask about wedding dates. Mara Quill replies within two working days."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_556mnvjk19",
12
+ "preset": "contact/photo-form@1",
13
+ "label": "Form over photo",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 12
19
+ ]
20
+ },
21
+ "width": "narrow",
22
+ "gap": "lg"
23
+ },
24
+ "style": {
25
+ "colorTheme": "dark",
26
+ "padding": {
27
+ "d": "2xl",
28
+ "m": "xl"
29
+ },
30
+ "background": {
31
+ "type": "image",
32
+ "src": "https://images.unsplash.com/photo-1429292394373-ddbcc6bb7468?w=3840&q=80",
33
+ "focal": [
34
+ 0.5,
35
+ 0.5
36
+ ],
37
+ "overlay": {
38
+ "color": "background",
39
+ "opacity": 0.82
40
+ }
41
+ }
42
+ },
43
+ "blocks": [
44
+ {
45
+ "id": "blk_f43rf93qfw",
46
+ "type": "heading",
47
+ "v": 1,
48
+ "fields": {
49
+ "text": "Tell me what you have in mind",
50
+ "level": "h1",
51
+ "size": "auto",
52
+ "eyebrow": "Contact",
53
+ "subheading": "A few details help me reply with dates and a quote. I answer within two working days."
54
+ },
55
+ "variant": "plain",
56
+ "style": {
57
+ "align": {
58
+ "d": "center"
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "id": "blk_nyj6rw6jkx",
64
+ "type": "form",
65
+ "v": 1,
66
+ "fields": {
67
+ "form": {
68
+ "id": "frm_zq3wjw0sh5",
69
+ "name": "Session enquiry",
70
+ "fields": [
71
+ {
72
+ "type": "text",
73
+ "name": "name",
74
+ "label": "Your name",
75
+ "required": true,
76
+ "width": "half"
77
+ },
78
+ {
79
+ "type": "email",
80
+ "name": "email",
81
+ "label": "Email",
82
+ "required": true,
83
+ "width": "half"
84
+ },
85
+ {
86
+ "type": "select",
87
+ "name": "kind",
88
+ "label": "What kind of photographs?",
89
+ "required": true,
90
+ "width": "full",
91
+ "options": [
92
+ "Portrait session",
93
+ "Editorial or book",
94
+ "Small wedding",
95
+ "Something else"
96
+ ]
97
+ },
98
+ {
99
+ "type": "textarea",
100
+ "name": "message",
101
+ "label": "Tell me a little more",
102
+ "required": true,
103
+ "maxLength": 3000
104
+ }
105
+ ],
106
+ "submitLabel": "Send enquiry",
107
+ "success": {
108
+ "type": "message",
109
+ "message": "Thank you — I'll reply within two working days."
110
+ },
111
+ "notifyOwner": true
112
+ }
113
+ },
114
+ "variant": "card"
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "id": "sec_rbwf43es1p",
120
+ "preset": "contact/cards-row@1",
121
+ "label": "Contact options",
122
+ "layout": {
123
+ "mode": "stack",
124
+ "columns": {
125
+ "d": [
126
+ 4,
127
+ 4,
128
+ 4
129
+ ],
130
+ "m": [
131
+ 12
132
+ ]
133
+ },
134
+ "gap": "lg"
135
+ },
136
+ "style": {
137
+ "colorTheme": "light"
138
+ },
139
+ "blocks": [
140
+ {
141
+ "id": "blk_vtfspzhhde",
142
+ "type": "contact-info",
143
+ "v": 1,
144
+ "fields": {
145
+ "heading": "Email",
146
+ "headingLevel": "h2",
147
+ "directions": false,
148
+ "note": "The quickest way to reach me",
149
+ "email": "studio@maraquill.example"
150
+ },
151
+ "column": 0,
152
+ "variant": "card"
153
+ },
154
+ {
155
+ "id": "blk_2anv810cqd",
156
+ "type": "contact-info",
157
+ "v": 1,
158
+ "fields": {
159
+ "heading": "Phone",
160
+ "headingLevel": "h2",
161
+ "directions": false,
162
+ "note": "Weekdays, 10am–5pm",
163
+ "phone": "+1 (718) 555-0164"
164
+ },
165
+ "column": 1,
166
+ "variant": "card"
167
+ },
168
+ {
169
+ "id": "blk_jjgtxw8v9a",
170
+ "type": "contact-info",
171
+ "v": 1,
172
+ "fields": {
173
+ "heading": "Studio",
174
+ "headingLevel": "h2",
175
+ "address": "88 Dobbin Street, Studio 3\nBrooklyn, NY 11222",
176
+ "directions": true,
177
+ "note": "Visits by appointment"
178
+ },
179
+ "column": 2,
180
+ "variant": "card"
181
+ }
182
+ ]
183
+ }
184
+ ]
185
+ }