@omniharmonic/openspace-cli 0.1.3 → 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 (140) hide show
  1. package/dist/{agents-md-7DESZGEN.js → agents-md-3W4PIY4N.js} +2 -2
  2. package/dist/bin.js +2 -2
  3. package/dist/{chunk-TQZ5F7VG.js → chunk-6NIIOHOX.js} +91 -3
  4. package/dist/chunk-6NIIOHOX.js.map +1 -0
  5. package/dist/{chunk-AAMRGTSI.js → chunk-7I6IJI6Z.js} +9166 -874
  6. package/dist/chunk-7I6IJI6Z.js.map +1 -0
  7. package/dist/index.js +2 -2
  8. package/dist/starter/site/AGENTS.md +11 -4
  9. package/dist/templates/beacon/content/collections/events/_collection.json +13 -0
  10. package/dist/templates/beacon/content/collections/events/keeper-training-november.mdoc +14 -0
  11. package/dist/templates/beacon/content/collections/events/planting-day-harbour-ward.mdoc +14 -0
  12. package/dist/templates/beacon/content/collections/events/planting-day-linden-north.mdoc +14 -0
  13. package/dist/templates/beacon/content/collections/news/2026-09-12-heat-map-2026.mdoc +13 -0
  14. package/dist/templates/beacon/content/collections/news/2026-09-30-school-gardens-harvest.mdoc +13 -0
  15. package/dist/templates/beacon/content/collections/news/2026-10-14-planting-season-begins.mdoc +13 -0
  16. package/dist/templates/beacon/content/collections/news/_collection.json +16 -0
  17. package/dist/templates/beacon/content/pages/about.json +572 -0
  18. package/dist/templates/beacon/content/pages/contact.json +260 -0
  19. package/dist/templates/beacon/content/pages/donate.json +406 -0
  20. package/dist/templates/beacon/content/pages/get-involved.json +412 -0
  21. package/dist/templates/beacon/content/pages/home.json +701 -0
  22. package/dist/templates/beacon/content/pages/our-work.json +855 -0
  23. package/dist/templates/beacon/content/site.json +363 -0
  24. package/dist/templates/beacon/content/styles.json +17 -0
  25. package/dist/templates/beacon/media/LICENSES.json +163 -0
  26. package/dist/templates/beacon/openspace.json +21 -0
  27. package/dist/templates/beacon/template.json +113 -0
  28. package/dist/templates/commons/content/pages/{members.json → directory.json} +15 -15
  29. package/dist/templates/commons/content/pages/home.json +1 -1
  30. package/dist/templates/commons/content/site.json +2 -2
  31. package/dist/templates/commons/template.json +2 -2
  32. package/dist/templates/darkroom/content/collections/work/_collection.json +13 -0
  33. package/dist/templates/darkroom/content/collections/work/after-hours.mdoc +28 -0
  34. package/dist/templates/darkroom/content/collections/work/dry-season.mdoc +28 -0
  35. package/dist/templates/darkroom/content/collections/work/faces-of-the-guild.mdoc +28 -0
  36. package/dist/templates/darkroom/content/collections/work/two-weddings.mdoc +28 -0
  37. package/dist/templates/darkroom/content/collections/work/white-lines.mdoc +28 -0
  38. package/dist/templates/darkroom/content/pages/about.json +449 -0
  39. package/dist/templates/darkroom/content/pages/contact.json +185 -0
  40. package/dist/templates/darkroom/content/pages/home.json +636 -0
  41. package/dist/templates/darkroom/content/pages/services.json +636 -0
  42. package/dist/templates/darkroom/content/site.json +264 -0
  43. package/dist/templates/darkroom/content/styles.json +17 -0
  44. package/dist/templates/darkroom/media/LICENSES.json +284 -0
  45. package/dist/templates/darkroom/openspace.json +21 -0
  46. package/dist/templates/darkroom/template.json +103 -0
  47. package/dist/templates/encore/content/pages/home.json +86 -0
  48. package/dist/templates/encore/media/LICENSES.json +22 -0
  49. package/dist/templates/field-notes/content/pages/home.json +94 -0
  50. package/dist/templates/fixwell/content/pages/about.json +508 -0
  51. package/dist/templates/fixwell/content/pages/contact.json +321 -0
  52. package/dist/templates/fixwell/content/pages/home.json +888 -0
  53. package/dist/templates/fixwell/content/pages/pricing.json +467 -0
  54. package/dist/templates/fixwell/content/pages/services.json +648 -0
  55. package/dist/templates/fixwell/content/site.json +293 -0
  56. package/dist/templates/fixwell/content/styles.json +17 -0
  57. package/dist/templates/fixwell/media/LICENSES.json +119 -0
  58. package/dist/templates/fixwell/openspace.json +21 -0
  59. package/dist/templates/fixwell/template.json +108 -0
  60. package/dist/templates/folio/content/collections/projects/_collection.json +13 -0
  61. package/dist/templates/folio/content/collections/projects/field-notes-app.mdoc +28 -0
  62. package/dist/templates/folio/content/collections/projects/harbour-health-dashboards.mdoc +28 -0
  63. package/dist/templates/folio/content/collections/projects/open-budget.mdoc +28 -0
  64. package/dist/templates/folio/content/collections/projects/transit-times.mdoc +28 -0
  65. package/dist/templates/folio/content/collections/writing/2026-08-30-designing-for-night-shifts.mdoc +9 -0
  66. package/dist/templates/folio/content/collections/writing/2026-09-20-testing-with-real-data.mdoc +9 -0
  67. package/dist/templates/folio/content/collections/writing/2026-10-12-one-honest-number.mdoc +9 -0
  68. package/dist/templates/folio/content/collections/writing/_collection.json +16 -0
  69. package/dist/templates/folio/content/pages/about.json +366 -0
  70. package/dist/templates/folio/content/pages/contact.json +218 -0
  71. package/dist/templates/folio/content/pages/experience.json +552 -0
  72. package/dist/templates/folio/content/pages/home.json +410 -0
  73. package/dist/templates/folio/content/site.json +186 -0
  74. package/dist/templates/folio/content/styles.json +17 -0
  75. package/dist/templates/folio/media/LICENSES.json +229 -0
  76. package/dist/templates/folio/openspace.json +21 -0
  77. package/dist/templates/folio/template.json +103 -0
  78. package/dist/templates/gather/content/collections/fringe/_collection.json +13 -0
  79. package/dist/templates/gather/content/collections/fringe/library-open-studio.mdoc +14 -0
  80. package/dist/templates/gather/content/collections/fringe/morning-run.mdoc +14 -0
  81. package/dist/templates/gather/content/collections/fringe/plain-language-pub-quiz.mdoc +14 -0
  82. package/dist/templates/gather/content/pages/about.json +435 -0
  83. package/dist/templates/gather/content/pages/contact.json +196 -0
  84. package/dist/templates/gather/content/pages/home.json +527 -0
  85. package/dist/templates/gather/content/pages/programme.json +449 -0
  86. package/dist/templates/gather/content/pages/speakers.json +225 -0
  87. package/dist/templates/gather/content/pages/tickets.json +495 -0
  88. package/dist/templates/gather/content/pages/venue.json +382 -0
  89. package/dist/templates/gather/content/site.json +222 -0
  90. package/dist/templates/gather/content/styles.json +17 -0
  91. package/dist/templates/gather/media/LICENSES.json +185 -0
  92. package/dist/templates/gather/openspace.json +21 -0
  93. package/dist/templates/gather/template.json +118 -0
  94. package/dist/templates/inkwell/content/collections/essays/2026-09-17-notebooks.mdoc +13 -0
  95. package/dist/templates/inkwell/content/collections/essays/2026-10-01-kitchen-radio.mdoc +13 -0
  96. package/dist/templates/inkwell/content/collections/essays/2026-10-15-the-same-mile.mdoc +13 -0
  97. package/dist/templates/inkwell/content/collections/essays/_collection.json +21 -0
  98. package/dist/templates/inkwell/content/pages/about.json +281 -0
  99. package/dist/templates/inkwell/content/pages/books.json +459 -0
  100. package/dist/templates/inkwell/content/pages/contact.json +201 -0
  101. package/dist/templates/inkwell/content/pages/home.json +457 -0
  102. package/dist/templates/inkwell/content/pages/speaking.json +522 -0
  103. package/dist/templates/inkwell/content/site.json +222 -0
  104. package/dist/templates/inkwell/content/styles.json +17 -0
  105. package/dist/templates/inkwell/media/LICENSES.json +119 -0
  106. package/dist/templates/inkwell/openspace.json +21 -0
  107. package/dist/templates/inkwell/template.json +108 -0
  108. package/dist/templates/keystone/content/collections/notes/2026-09-17-hard-conversations.mdoc +11 -0
  109. package/dist/templates/keystone/content/collections/notes/2026-10-01-weekly-rhythm.mdoc +11 -0
  110. package/dist/templates/keystone/content/collections/notes/2026-10-15-the-first-manager.mdoc +11 -0
  111. package/dist/templates/keystone/content/collections/notes/_collection.json +21 -0
  112. package/dist/templates/keystone/content/pages/about.json +371 -0
  113. package/dist/templates/keystone/content/pages/contact.json +207 -0
  114. package/dist/templates/keystone/content/pages/home.json +815 -0
  115. package/dist/templates/keystone/content/pages/results.json +396 -0
  116. package/dist/templates/keystone/content/pages/work-with-me.json +477 -0
  117. package/dist/templates/keystone/content/site.json +224 -0
  118. package/dist/templates/keystone/content/styles.json +17 -0
  119. package/dist/templates/keystone/media/LICENSES.json +75 -0
  120. package/dist/templates/keystone/openspace.json +21 -0
  121. package/dist/templates/keystone/template.json +108 -0
  122. package/dist/templates/ledger/content/pages/home.json +62 -0
  123. package/dist/templates/orbit/content/collections/changelog/2026-09-21-faster-attachments.mdoc +11 -0
  124. package/dist/templates/orbit/content/collections/changelog/2026-10-05-snooze-until-reply.mdoc +11 -0
  125. package/dist/templates/orbit/content/collections/changelog/2026-10-19-help-centre-search.mdoc +13 -0
  126. package/dist/templates/orbit/content/collections/changelog/_collection.json +39 -0
  127. package/dist/templates/orbit/content/pages/about.json +396 -0
  128. package/dist/templates/orbit/content/pages/contact.json +195 -0
  129. package/dist/templates/orbit/content/pages/features.json +603 -0
  130. package/dist/templates/orbit/content/pages/home.json +1273 -0
  131. package/dist/templates/orbit/content/pages/pricing.json +608 -0
  132. package/dist/templates/orbit/content/site.json +368 -0
  133. package/dist/templates/orbit/content/styles.json +17 -0
  134. package/dist/templates/orbit/media/LICENSES.json +141 -0
  135. package/dist/templates/orbit/openspace.json +21 -0
  136. package/dist/templates/orbit/template.json +108 -0
  137. package/package.json +6 -6
  138. package/dist/chunk-AAMRGTSI.js.map +0 -1
  139. package/dist/chunk-TQZ5F7VG.js.map +0 -1
  140. /package/dist/{agents-md-7DESZGEN.js.map → agents-md-3W4PIY4N.js.map} +0 -0
@@ -0,0 +1,552 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_g9675xv106",
4
+ "title": "Experience",
5
+ "slug": "experience",
6
+ "seo": {
7
+ "description": "Priya Raman's experience: product design roles at Harbour Health, Kitebase and Civic Design Lab, skills, education and references."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_11qpeycnd6",
12
+ "preset": "hero/minimal-line@1",
13
+ "label": "One line",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 12
19
+ ]
20
+ },
21
+ "width": "content",
22
+ "gap": "lg"
23
+ },
24
+ "style": {
25
+ "colorTheme": "light",
26
+ "padding": {
27
+ "d": "3xl",
28
+ "m": "2xl"
29
+ }
30
+ },
31
+ "blocks": [
32
+ {
33
+ "id": "blk_kv8pt0p24e",
34
+ "type": "heading",
35
+ "v": 1,
36
+ "fields": {
37
+ "text": "Nine years of making complicated things clear.",
38
+ "level": "h1",
39
+ "size": "display"
40
+ },
41
+ "variant": "plain"
42
+ },
43
+ {
44
+ "id": "blk_gf0k7petr7",
45
+ "type": "button",
46
+ "v": 1,
47
+ "fields": {
48
+ "label": "Download my CV (PDF)",
49
+ "link": {
50
+ "type": "url",
51
+ "url": "https://priyaraman.example/priya-raman-cv.pdf"
52
+ },
53
+ "role": "tertiary"
54
+ },
55
+ "variant": "default"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "id": "sec_eemth61t8f",
61
+ "preset": "process/sticky-steps@1",
62
+ "label": "Steps beside heading",
63
+ "layout": {
64
+ "mode": "stack",
65
+ "columns": {
66
+ "d": [
67
+ 5,
68
+ 7
69
+ ],
70
+ "m": [
71
+ 12
72
+ ]
73
+ },
74
+ "gap": "2xl"
75
+ },
76
+ "style": {
77
+ "colorTheme": "light"
78
+ },
79
+ "blocks": [
80
+ {
81
+ "id": "blk_h0zfg26hme",
82
+ "type": "heading",
83
+ "v": 1,
84
+ "fields": {
85
+ "text": "Where I've worked",
86
+ "level": "h2",
87
+ "size": "auto",
88
+ "eyebrow": "Experience"
89
+ },
90
+ "column": 0,
91
+ "variant": "plain"
92
+ },
93
+ {
94
+ "id": "blk_mmxxjggnzb",
95
+ "type": "text",
96
+ "v": 1,
97
+ "fields": {
98
+ "content": {
99
+ "type": "doc",
100
+ "content": [
101
+ {
102
+ "type": "paragraph",
103
+ "content": [
104
+ {
105
+ "type": "text",
106
+ "text": "Mostly small teams inside larger organisations, where design has to earn its seat by shipping."
107
+ }
108
+ ]
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ "column": 0,
114
+ "variant": "default"
115
+ },
116
+ {
117
+ "id": "blk_91k96qn3qy",
118
+ "type": "button",
119
+ "v": 1,
120
+ "fields": {
121
+ "label": "References on request",
122
+ "link": {
123
+ "type": "page",
124
+ "page": "pg_2vmpjzd641"
125
+ },
126
+ "role": "primary"
127
+ },
128
+ "column": 0,
129
+ "variant": "default"
130
+ },
131
+ {
132
+ "id": "blk_58wze68m7n",
133
+ "type": "timeline",
134
+ "v": 1,
135
+ "fields": {
136
+ "items": [
137
+ {
138
+ "date": "2023 – now",
139
+ "title": "Lead product designer, Harbour Health",
140
+ "text": "Leading a team of four designing clinical dashboards for 40 hospitals."
141
+ },
142
+ {
143
+ "date": "2020 – 2023",
144
+ "title": "Senior designer, Kitebase",
145
+ "text": "Analytics product for logistics companies; redesigned reporting end to end."
146
+ },
147
+ {
148
+ "date": "2017 – 2020",
149
+ "title": "Designer, Civic Design Lab",
150
+ "text": "Budget, transit and housing tools for three city governments."
151
+ },
152
+ {
153
+ "date": "2015 – 2017",
154
+ "title": "Junior designer, Orchard Pay",
155
+ "text": "Onboarding and payments flows for a small fintech."
156
+ }
157
+ ]
158
+ },
159
+ "column": 1,
160
+ "variant": "vertical"
161
+ }
162
+ ]
163
+ },
164
+ {
165
+ "id": "sec_w4qh2s2426",
166
+ "preset": "features/split-list@1",
167
+ "label": "Heading with feature list",
168
+ "layout": {
169
+ "mode": "stack",
170
+ "columns": {
171
+ "d": [
172
+ 5,
173
+ 7
174
+ ],
175
+ "m": [
176
+ 12
177
+ ]
178
+ },
179
+ "gap": "2xl"
180
+ },
181
+ "style": {
182
+ "colorTheme": "light-accent"
183
+ },
184
+ "blocks": [
185
+ {
186
+ "id": "blk_cfx8qm8pjr",
187
+ "type": "heading",
188
+ "v": 1,
189
+ "fields": {
190
+ "text": "What I'm good at",
191
+ "level": "h2",
192
+ "size": "auto",
193
+ "eyebrow": "Skills"
194
+ },
195
+ "column": 0,
196
+ "variant": "plain"
197
+ },
198
+ {
199
+ "id": "blk_w74284pzs0",
200
+ "type": "text",
201
+ "v": 1,
202
+ "fields": {
203
+ "content": {
204
+ "type": "doc",
205
+ "content": [
206
+ {
207
+ "type": "paragraph",
208
+ "content": [
209
+ {
210
+ "type": "text",
211
+ "text": "I'm happiest between research and engineering: understanding what people need, then prototyping until the data makes sense."
212
+ }
213
+ ]
214
+ }
215
+ ]
216
+ }
217
+ },
218
+ "column": 0,
219
+ "variant": "default"
220
+ },
221
+ {
222
+ "id": "blk_188fnef6gq",
223
+ "type": "button",
224
+ "v": 1,
225
+ "fields": {
226
+ "label": "Talk about a role",
227
+ "link": {
228
+ "type": "page",
229
+ "page": "pg_2vmpjzd641"
230
+ },
231
+ "role": "primary"
232
+ },
233
+ "column": 0,
234
+ "variant": "default"
235
+ },
236
+ {
237
+ "id": "blk_qezrqc16ve",
238
+ "type": "icon-list",
239
+ "v": 1,
240
+ "fields": {
241
+ "items": [
242
+ {
243
+ "icon": "chart-bar",
244
+ "title": "Data visualisation",
245
+ "text": "Charts, maps and dashboards."
246
+ },
247
+ {
248
+ "icon": "users",
249
+ "title": "Research",
250
+ "text": "Interviews, diary studies, testing."
251
+ },
252
+ {
253
+ "icon": "layers",
254
+ "title": "Design systems",
255
+ "text": "Built and maintained two."
256
+ },
257
+ {
258
+ "icon": "code",
259
+ "title": "Prototyping",
260
+ "text": "HTML, CSS and a little D3."
261
+ },
262
+ {
263
+ "icon": "accessibility",
264
+ "title": "Accessibility",
265
+ "text": "WCAG audits and fixes."
266
+ },
267
+ {
268
+ "icon": "target",
269
+ "title": "Leading teams",
270
+ "text": "Hiring, critique and mentoring."
271
+ }
272
+ ],
273
+ "columns": "2"
274
+ },
275
+ "column": 1,
276
+ "variant": "list"
277
+ }
278
+ ]
279
+ },
280
+ {
281
+ "id": "sec_pq4e9sgyyb",
282
+ "preset": "about/recognition@1",
283
+ "label": "Awards and recognition",
284
+ "layout": {
285
+ "mode": "stack",
286
+ "columns": {
287
+ "d": [
288
+ 5,
289
+ 7
290
+ ],
291
+ "m": [
292
+ 12
293
+ ]
294
+ },
295
+ "gap": "2xl"
296
+ },
297
+ "style": {
298
+ "colorTheme": "light-accent"
299
+ },
300
+ "blocks": [
301
+ {
302
+ "id": "blk_csf6hdbw86",
303
+ "type": "heading",
304
+ "v": 1,
305
+ "fields": {
306
+ "text": "Background",
307
+ "level": "h2",
308
+ "size": "auto",
309
+ "eyebrow": "Education & awards"
310
+ },
311
+ "column": 0,
312
+ "variant": "plain"
313
+ },
314
+ {
315
+ "id": "blk_tj4nkf2d5d",
316
+ "type": "text",
317
+ "v": 1,
318
+ "fields": {
319
+ "content": {
320
+ "type": "doc",
321
+ "content": [
322
+ {
323
+ "type": "paragraph",
324
+ "content": [
325
+ {
326
+ "type": "text",
327
+ "text": "Trained in information design; still learning every day."
328
+ }
329
+ ]
330
+ }
331
+ ]
332
+ }
333
+ },
334
+ "column": 0,
335
+ "variant": "default"
336
+ },
337
+ {
338
+ "id": "blk_sswn87pvsc",
339
+ "type": "icon-list",
340
+ "v": 1,
341
+ "fields": {
342
+ "items": [
343
+ {
344
+ "icon": "graduation-cap",
345
+ "title": "MDes, Information Design",
346
+ "text": "Carnegie Mellon University, 2015."
347
+ },
348
+ {
349
+ "icon": "award",
350
+ "title": "Civic Design Award, 2024",
351
+ "text": "For the Lakewood open budget."
352
+ },
353
+ {
354
+ "icon": "mic",
355
+ "title": "Speaker, Open Field 2025",
356
+ "text": "Dashboards people can trust."
357
+ }
358
+ ],
359
+ "columns": "1"
360
+ },
361
+ "column": 1,
362
+ "variant": "list",
363
+ "style": {
364
+ "colorTheme": "light",
365
+ "padding": {
366
+ "d": "lg",
367
+ "m": "md"
368
+ },
369
+ "radius": "md"
370
+ }
371
+ }
372
+ ]
373
+ },
374
+ {
375
+ "id": "sec_7g10kjqzs8",
376
+ "preset": "testimonials/dark-trio@1",
377
+ "label": "Three quotes on dark",
378
+ "layout": {
379
+ "mode": "grid",
380
+ "rows": {
381
+ "d": 14,
382
+ "m": 32
383
+ },
384
+ "items": {
385
+ "blk_w1w10w8yge": {
386
+ "d": {
387
+ "x": 1,
388
+ "y": 1,
389
+ "w": 16,
390
+ "h": 5
391
+ },
392
+ "m": {
393
+ "x": 1,
394
+ "y": 1,
395
+ "w": 8,
396
+ "h": 5
397
+ }
398
+ },
399
+ "blk_xekax457ts": {
400
+ "d": {
401
+ "x": 1,
402
+ "y": 7,
403
+ "w": 8,
404
+ "h": 8
405
+ },
406
+ "m": {
407
+ "x": 1,
408
+ "y": 7,
409
+ "w": 8,
410
+ "h": 8
411
+ }
412
+ },
413
+ "blk_768578kr8b": {
414
+ "d": {
415
+ "x": 9,
416
+ "y": 7,
417
+ "w": 8,
418
+ "h": 8
419
+ },
420
+ "m": {
421
+ "x": 1,
422
+ "y": 16,
423
+ "w": 8,
424
+ "h": 8
425
+ }
426
+ },
427
+ "blk_e4n8m92e5s": {
428
+ "d": {
429
+ "x": 17,
430
+ "y": 7,
431
+ "w": 8,
432
+ "h": 8
433
+ },
434
+ "m": {
435
+ "x": 1,
436
+ "y": 25,
437
+ "w": 8,
438
+ "h": 8
439
+ }
440
+ }
441
+ }
442
+ },
443
+ "style": {
444
+ "colorTheme": "dark"
445
+ },
446
+ "blocks": [
447
+ {
448
+ "id": "blk_w1w10w8yge",
449
+ "type": "heading",
450
+ "v": 1,
451
+ "fields": {
452
+ "text": "People I've worked with",
453
+ "level": "h2",
454
+ "size": "auto",
455
+ "eyebrow": "References"
456
+ },
457
+ "variant": "plain"
458
+ },
459
+ {
460
+ "id": "blk_xekax457ts",
461
+ "type": "testimonial",
462
+ "v": 1,
463
+ "fields": {
464
+ "quote": {
465
+ "type": "doc",
466
+ "content": [
467
+ {
468
+ "type": "paragraph",
469
+ "content": [
470
+ {
471
+ "type": "text",
472
+ "text": "Priya turned a wall of numbers into something our nurses check every shift."
473
+ }
474
+ ]
475
+ }
476
+ ]
477
+ },
478
+ "name": "Maya Chen",
479
+ "role": "Chief nursing officer, Harbour Health",
480
+ "photo": {
481
+ "src": "https://images.unsplash.com/photo-1580489944761-15a19d654956?w=320&q=80",
482
+ "alt": "Portrait of a woman with dark hair pinned up, smiling",
483
+ "width": 320,
484
+ "height": 403
485
+ }
486
+ },
487
+ "variant": "minimal"
488
+ },
489
+ {
490
+ "id": "blk_768578kr8b",
491
+ "type": "testimonial",
492
+ "v": 1,
493
+ "fields": {
494
+ "quote": {
495
+ "type": "doc",
496
+ "content": [
497
+ {
498
+ "type": "paragraph",
499
+ "content": [
500
+ {
501
+ "type": "text",
502
+ "text": "The best designer I've hired, and a generous mentor to the team."
503
+ }
504
+ ]
505
+ }
506
+ ]
507
+ },
508
+ "name": "Owen Price",
509
+ "role": "VP Product, Kitebase",
510
+ "photo": {
511
+ "src": "https://images.unsplash.com/photo-1780387477222-730504564368?w=320&q=80",
512
+ "alt": "Portrait of a smiling grey-haired woman in a beige jumpsuit",
513
+ "width": 320,
514
+ "height": 480
515
+ }
516
+ },
517
+ "variant": "minimal"
518
+ },
519
+ {
520
+ "id": "blk_e4n8m92e5s",
521
+ "type": "testimonial",
522
+ "v": 1,
523
+ "fields": {
524
+ "quote": {
525
+ "type": "doc",
526
+ "content": [
527
+ {
528
+ "type": "paragraph",
529
+ "content": [
530
+ {
531
+ "type": "text",
532
+ "text": "She made a city budget readable. Residents noticed."
533
+ }
534
+ ]
535
+ }
536
+ ]
537
+ },
538
+ "name": "Clara Moss",
539
+ "role": "Director, Civic Design Lab",
540
+ "photo": {
541
+ "src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=320&q=80",
542
+ "alt": "Portrait of a woman with long brown hair in a striped shirt",
543
+ "width": 320,
544
+ "height": 479
545
+ }
546
+ },
547
+ "variant": "minimal"
548
+ }
549
+ ]
550
+ }
551
+ ]
552
+ }