@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,28 @@
1
+ ---
2
+ status: published
3
+ title: Bus times you can trust
4
+ date: 2023-04-01
5
+ year: 2023
6
+ client: Kitebase
7
+ role: Product design
8
+ excerpt: Arrival predictions that admit uncertainty, so riders know when to run and when to wait.
9
+ image: https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=1600&q=80
10
+ imageAlt: Bus times you can trust, project cover
11
+ gallery:
12
+ - src: https://images.unsplash.com/photo-1449824913935-59a10b8d2000?w=1920&q=80
13
+ alt: A downtown street lined with tall buildings and yellow cabs
14
+ width: 1920
15
+ height: 1280
16
+ - src: https://images.unsplash.com/photo-1583508915901-b5f84c1dcde1?w=2400&q=80
17
+ alt: A developer working at a desk with two monitors
18
+ width: 2400
19
+ height: 1600
20
+ - src: https://images.unsplash.com/photo-1589362281138-e3f7ebe47f1a?w=2400&q=80
21
+ alt: A minimal desk with a laptop and a small plant
22
+ width: 2400
23
+ height: 1600
24
+ ---
25
+
26
+ Arrival predictions that admit uncertainty, so riders know when to run and when to wait.
27
+
28
+ I led research and design with a small team of engineers, testing every version with the people who would use it.
@@ -0,0 +1,9 @@
1
+ ---
2
+ status: published
3
+ title: Designing for the night shift
4
+ date: 2026-08-30
5
+ author: Priya Raman
6
+ excerpt: What I learned shadowing nurses between midnight and 7am.
7
+ ---
8
+
9
+ Dark rooms, tired eyes and constant interruptions. Every design decision changed once I'd seen a ward at 3am.
@@ -0,0 +1,9 @@
1
+ ---
2
+ status: published
3
+ title: Prototype with the messy data
4
+ date: 2026-09-20
5
+ author: Priya Raman
6
+ excerpt: Placeholder charts flatter every design. Real data finds the problems early.
7
+ ---
8
+
9
+ Real data has gaps, outliers and labels that are far too long. Designing with it from week one saves months later.
@@ -0,0 +1,9 @@
1
+ ---
2
+ status: published
3
+ title: One honest number
4
+ date: 2026-10-12
5
+ author: Priya Raman
6
+ excerpt: Why the best dashboards I've designed lead with a single figure, and how to choose it.
7
+ ---
8
+
9
+ Ask what decision the screen supports. Then find the one number that would change that decision, and make it the biggest thing on the page.
@@ -0,0 +1,16 @@
1
+ {
2
+ "kind": "blog",
3
+ "label": "Writing",
4
+ "itemLabel": "Note",
5
+ "list": {
6
+ "layout": "list",
7
+ "pageSize": 20,
8
+ "sort": "date-desc"
9
+ },
10
+ "itemPage": {
11
+ "layout": "article",
12
+ "showDate": true,
13
+ "showAuthor": false,
14
+ "showRelated": true
15
+ }
16
+ }
@@ -0,0 +1,366 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_5ftpyf62n1",
4
+ "title": "About",
5
+ "slug": "about",
6
+ "seo": {
7
+ "description": "About Priya Raman: how she works, what she believes about designing with data, and what she does when she isn't at a screen."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_r6yzpfj8ad",
12
+ "preset": "hero/split-image@1",
13
+ "label": "Split with portrait image",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 6,
19
+ 6
20
+ ],
21
+ "m": [
22
+ 12
23
+ ]
24
+ },
25
+ "align": "center",
26
+ "gap": "2xl"
27
+ },
28
+ "style": {
29
+ "colorTheme": "light-accent",
30
+ "padding": {
31
+ "d": "xl",
32
+ "m": "lg"
33
+ }
34
+ },
35
+ "blocks": [
36
+ {
37
+ "id": "blk_fs4n2f98y5",
38
+ "type": "heading",
39
+ "v": 1,
40
+ "fields": {
41
+ "text": "Designer, chart nerd, slow runner",
42
+ "level": "h1",
43
+ "size": "h1",
44
+ "eyebrow": "About",
45
+ "subheading": "I grew up in Chennai, studied in Pittsburgh and stayed for the rivers. I design tools for people whose jobs are too important for confusing software."
46
+ },
47
+ "column": 0,
48
+ "variant": "plain"
49
+ },
50
+ {
51
+ "id": "blk_wmbeybsbeq",
52
+ "type": "button",
53
+ "v": 1,
54
+ "fields": {
55
+ "label": "My experience",
56
+ "link": {
57
+ "type": "page",
58
+ "page": "pg_g9675xv106"
59
+ },
60
+ "role": "primary",
61
+ "secondaryLabel": "Say hello",
62
+ "secondaryLink": {
63
+ "type": "page",
64
+ "page": "pg_2vmpjzd641"
65
+ },
66
+ "note": "Usually replies within a day."
67
+ },
68
+ "column": 0,
69
+ "variant": "default"
70
+ },
71
+ {
72
+ "id": "blk_mxrv5eh4rc",
73
+ "type": "image",
74
+ "v": 1,
75
+ "fields": {
76
+ "image": {
77
+ "src": "https://images.unsplash.com/photo-1629317337307-e37f95ebc372?w=3440&q=80",
78
+ "alt": "Priya's desk with a monitor and headphones",
79
+ "width": 3440,
80
+ "height": 1549
81
+ },
82
+ "aspect": "4:5",
83
+ "lightbox": false
84
+ },
85
+ "column": 1,
86
+ "variant": "default"
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "id": "sec_3knxvxsewx",
92
+ "preset": "about/beliefs@1",
93
+ "label": "What we believe",
94
+ "layout": {
95
+ "mode": "stack",
96
+ "columns": {
97
+ "d": [
98
+ 4,
99
+ 8
100
+ ],
101
+ "m": [
102
+ 12
103
+ ]
104
+ },
105
+ "gap": "2xl"
106
+ },
107
+ "style": {
108
+ "colorTheme": "light-accent"
109
+ },
110
+ "blocks": [
111
+ {
112
+ "id": "blk_54mtre89b7",
113
+ "type": "heading",
114
+ "v": 1,
115
+ "fields": {
116
+ "text": "Principles I design by",
117
+ "level": "h2",
118
+ "size": "auto",
119
+ "eyebrow": "How I work"
120
+ },
121
+ "column": 0,
122
+ "variant": "plain"
123
+ },
124
+ {
125
+ "id": "blk_b2t3375s5h",
126
+ "type": "columns",
127
+ "v": 1,
128
+ "fields": {
129
+ "items": [
130
+ {
131
+ "heading": "Start with the decision",
132
+ "body": {
133
+ "type": "doc",
134
+ "content": [
135
+ {
136
+ "type": "paragraph",
137
+ "content": [
138
+ {
139
+ "type": "text",
140
+ "text": "Every chart exists to help someone decide something. Find out what."
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ }
146
+ },
147
+ {
148
+ "heading": "Fewer, truer numbers",
149
+ "body": {
150
+ "type": "doc",
151
+ "content": [
152
+ {
153
+ "type": "paragraph",
154
+ "content": [
155
+ {
156
+ "type": "text",
157
+ "text": "One honest number beats ten impressive ones."
158
+ }
159
+ ]
160
+ }
161
+ ]
162
+ }
163
+ },
164
+ {
165
+ "heading": "Test with real data",
166
+ "body": {
167
+ "type": "doc",
168
+ "content": [
169
+ {
170
+ "type": "paragraph",
171
+ "content": [
172
+ {
173
+ "type": "text",
174
+ "text": "Tidy sample charts lie. Prototype with the messy real thing."
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ }
180
+ },
181
+ {
182
+ "heading": "Design is a team sport",
183
+ "body": {
184
+ "type": "doc",
185
+ "content": [
186
+ {
187
+ "type": "paragraph",
188
+ "content": [
189
+ {
190
+ "type": "text",
191
+ "text": "The best ideas usually come from engineers and users."
192
+ }
193
+ ]
194
+ }
195
+ ]
196
+ }
197
+ }
198
+ ],
199
+ "columns": "2",
200
+ "aspect": "3:2"
201
+ },
202
+ "column": 1,
203
+ "variant": "steps"
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "id": "sec_wmm2fpd8za",
209
+ "preset": "gallery/staggered-three@1",
210
+ "label": "Staggered three",
211
+ "layout": {
212
+ "mode": "grid",
213
+ "rows": {
214
+ "d": 25,
215
+ "m": 30
216
+ },
217
+ "items": {
218
+ "blk_h58cezwkk4": {
219
+ "d": {
220
+ "x": 1,
221
+ "y": 1,
222
+ "w": 9,
223
+ "h": 22
224
+ },
225
+ "m": {
226
+ "x": 1,
227
+ "y": 1,
228
+ "w": 8,
229
+ "h": 12
230
+ }
231
+ },
232
+ "blk_p04xr0rvpa": {
233
+ "d": {
234
+ "x": 11,
235
+ "y": 6,
236
+ "w": 6,
237
+ "h": 14
238
+ },
239
+ "m": {
240
+ "x": 1,
241
+ "y": 14,
242
+ "w": 4,
243
+ "h": 10
244
+ }
245
+ },
246
+ "blk_1tczp8hbrx": {
247
+ "d": {
248
+ "x": 18,
249
+ "y": 3,
250
+ "w": 7,
251
+ "h": 18
252
+ },
253
+ "m": {
254
+ "x": 5,
255
+ "y": 14,
256
+ "w": 4,
257
+ "h": 10
258
+ }
259
+ },
260
+ "blk_hwz6ytvra7": {
261
+ "d": {
262
+ "x": 11,
263
+ "y": 21,
264
+ "w": 14,
265
+ "h": 5
266
+ },
267
+ "m": {
268
+ "x": 1,
269
+ "y": 25,
270
+ "w": 8,
271
+ "h": 6
272
+ }
273
+ }
274
+ }
275
+ },
276
+ "style": {
277
+ "colorTheme": "light-accent"
278
+ },
279
+ "blocks": [
280
+ {
281
+ "id": "blk_h58cezwkk4",
282
+ "type": "image",
283
+ "v": 1,
284
+ "fields": {
285
+ "image": {
286
+ "src": "https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1040&q=80",
287
+ "alt": "Morning light through tall forest trees",
288
+ "width": 1040,
289
+ "height": 693
290
+ },
291
+ "aspect": "original",
292
+ "lightbox": false
293
+ },
294
+ "variant": "default"
295
+ },
296
+ {
297
+ "id": "blk_p04xr0rvpa",
298
+ "type": "image",
299
+ "v": 1,
300
+ "fields": {
301
+ "image": {
302
+ "src": "https://images.unsplash.com/photo-1582079768381-0e81b88db423?w=840&q=80",
303
+ "alt": "Reading at a cafe table",
304
+ "width": 840,
305
+ "height": 560
306
+ },
307
+ "aspect": "original",
308
+ "lightbox": false
309
+ },
310
+ "variant": "default"
311
+ },
312
+ {
313
+ "id": "blk_1tczp8hbrx",
314
+ "type": "image",
315
+ "v": 1,
316
+ "fields": {
317
+ "image": {
318
+ "src": "https://images.unsplash.com/photo-1677462679593-97b817fb118a?w=1040&q=80",
319
+ "alt": "A colourful wall of books",
320
+ "width": 1040,
321
+ "height": 1560
322
+ },
323
+ "aspect": "original",
324
+ "lightbox": false
325
+ },
326
+ "variant": "default"
327
+ },
328
+ {
329
+ "id": "blk_hwz6ytvra7",
330
+ "type": "text",
331
+ "v": 1,
332
+ "fields": {
333
+ "content": {
334
+ "type": "doc",
335
+ "content": [
336
+ {
337
+ "type": "heading",
338
+ "attrs": {
339
+ "level": 2,
340
+ "preset": "h3"
341
+ },
342
+ "content": [
343
+ {
344
+ "type": "text",
345
+ "text": "Away from the screen"
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "type": "paragraph",
351
+ "content": [
352
+ {
353
+ "type": "text",
354
+ "text": "Trail running, too many library books and a weekly cafe sketchbook habit."
355
+ }
356
+ ]
357
+ }
358
+ ]
359
+ }
360
+ },
361
+ "variant": "default"
362
+ }
363
+ ]
364
+ }
365
+ ]
366
+ }
@@ -0,0 +1,218 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_2vmpjzd641",
4
+ "title": "Contact",
5
+ "slug": "contact",
6
+ "seo": {
7
+ "description": "Contact product designer Priya Raman about senior and lead design roles, freelance projects or speaking. Email or use the form."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_h6mnrrv4pr",
12
+ "preset": "contact/simple-centered@1",
13
+ "label": "Email and phone, centred",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 12
19
+ ]
20
+ },
21
+ "width": "narrow",
22
+ "gap": "md"
23
+ },
24
+ "style": {
25
+ "colorTheme": "dark",
26
+ "padding": {
27
+ "d": "2xl",
28
+ "m": "xl"
29
+ }
30
+ },
31
+ "blocks": [
32
+ {
33
+ "id": "blk_j1b40j6thc",
34
+ "type": "heading",
35
+ "v": 1,
36
+ "fields": {
37
+ "text": "Say hello",
38
+ "level": "h1",
39
+ "size": "h1",
40
+ "eyebrow": "Contact"
41
+ },
42
+ "variant": "plain",
43
+ "style": {
44
+ "align": {
45
+ "d": "center"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "id": "blk_1az08j9d6m",
51
+ "type": "text",
52
+ "v": 1,
53
+ "fields": {
54
+ "content": {
55
+ "type": "doc",
56
+ "content": [
57
+ {
58
+ "type": "paragraph",
59
+ "attrs": {
60
+ "preset": "lead"
61
+ },
62
+ "content": [
63
+ {
64
+ "type": "text",
65
+ "text": "hello@priyaraman.example",
66
+ "marks": [
67
+ {
68
+ "type": "link",
69
+ "attrs": {
70
+ "href": "mailto:hello@priyaraman.example"
71
+ }
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "type": "paragraph",
79
+ "content": [
80
+ {
81
+ "type": "text",
82
+ "text": "Open to senior and lead product design roles from January."
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
88
+ },
89
+ "variant": "default",
90
+ "style": {
91
+ "align": {
92
+ "d": "center"
93
+ }
94
+ }
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "id": "sec_d1h5m9tepn",
100
+ "preset": "contact/appointment@1",
101
+ "label": "Appointment request",
102
+ "layout": {
103
+ "mode": "stack",
104
+ "columns": {
105
+ "d": [
106
+ 5,
107
+ 7
108
+ ],
109
+ "m": [
110
+ 12
111
+ ]
112
+ },
113
+ "gap": "2xl"
114
+ },
115
+ "style": {
116
+ "colorTheme": "light"
117
+ },
118
+ "blocks": [
119
+ {
120
+ "id": "blk_xwynd35a17",
121
+ "type": "heading",
122
+ "v": 1,
123
+ "fields": {
124
+ "text": "Tell me about the work",
125
+ "level": "h2",
126
+ "size": "auto",
127
+ "eyebrow": "Roles & projects"
128
+ },
129
+ "column": 0,
130
+ "variant": "plain"
131
+ },
132
+ {
133
+ "id": "blk_g1zfnaxbsn",
134
+ "type": "text",
135
+ "v": 1,
136
+ "fields": {
137
+ "content": {
138
+ "type": "doc",
139
+ "content": [
140
+ {
141
+ "type": "paragraph",
142
+ "content": [
143
+ {
144
+ "type": "text",
145
+ "text": "A few lines about the team and the problem is plenty. I'll reply within two working days."
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ }
151
+ },
152
+ "column": 0,
153
+ "variant": "default"
154
+ },
155
+ {
156
+ "id": "blk_rw6sypaneq",
157
+ "type": "form",
158
+ "v": 1,
159
+ "fields": {
160
+ "form": {
161
+ "id": "frm_ehw4acqq7x",
162
+ "name": "Role or project",
163
+ "fields": [
164
+ {
165
+ "type": "text",
166
+ "name": "name",
167
+ "label": "Your name",
168
+ "required": true,
169
+ "width": "half"
170
+ },
171
+ {
172
+ "type": "email",
173
+ "name": "email",
174
+ "label": "Email",
175
+ "required": true,
176
+ "width": "half"
177
+ },
178
+ {
179
+ "type": "text",
180
+ "name": "company",
181
+ "label": "Company",
182
+ "required": false,
183
+ "width": "full"
184
+ },
185
+ {
186
+ "type": "radio",
187
+ "name": "kind",
188
+ "label": "It's about",
189
+ "required": false,
190
+ "options": [
191
+ "A full-time role",
192
+ "A freelance project",
193
+ "Speaking"
194
+ ]
195
+ },
196
+ {
197
+ "type": "textarea",
198
+ "name": "message",
199
+ "label": "The team and the problem",
200
+ "required": true,
201
+ "maxLength": 3000
202
+ }
203
+ ],
204
+ "submitLabel": "Send",
205
+ "success": {
206
+ "type": "message",
207
+ "message": "Thanks — I'll reply within two working days."
208
+ },
209
+ "notifyOwner": true
210
+ }
211
+ },
212
+ "column": 1,
213
+ "variant": "card"
214
+ }
215
+ ]
216
+ }
217
+ ]
218
+ }