@omniharmonic/openspace-cli 0.0.0-stage → 0.1.1

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 (205) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +74 -2
  3. package/dist/agents-md-2DTXWUZQ.js +8 -0
  4. package/dist/agents-md-2DTXWUZQ.js.map +1 -0
  5. package/dist/bin.d.ts +1 -0
  6. package/dist/bin.js +11 -0
  7. package/dist/bin.js.map +1 -0
  8. package/dist/chunk-3F6TAUAT.js +41167 -0
  9. package/dist/chunk-3F6TAUAT.js.map +1 -0
  10. package/dist/chunk-LTJEM3DN.js +17161 -0
  11. package/dist/chunk-LTJEM3DN.js.map +1 -0
  12. package/dist/index.d.ts +83 -0
  13. package/dist/index.js +23 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/starter/site/.github/workflows/publish.yml +38 -0
  16. package/dist/starter/site/AGENTS.md +392 -0
  17. package/dist/starter/site/astro.config.mjs +8 -0
  18. package/dist/starter/site/package.json +21 -0
  19. package/dist/starter/site/public/.gitkeep +0 -0
  20. package/dist/starter/site/src/pages/[...slug].astro +10 -0
  21. package/dist/starter/site/tsconfig.json +5 -0
  22. package/dist/starter/variants/cloudflare/.github/openspace/gated-sync.mjs +121 -0
  23. package/dist/starter/variants/cloudflare/.github/workflows/publish.yml +70 -0
  24. package/dist/starter/variants/cloudflare/astro.config.mjs +11 -0
  25. package/dist/starter/variants/cloudflare/package.json +23 -0
  26. package/dist/starter/variants/cloudflare/wrangler.jsonc +13 -0
  27. package/dist/templates/atelier/content/collections/projects/_collection.json +13 -0
  28. package/dist/templates/atelier/content/collections/projects/cordillera.mdoc +32 -0
  29. package/dist/templates/atelier/content/collections/projects/field-studies.mdoc +32 -0
  30. package/dist/templates/atelier/content/collections/projects/salt-and-glass.mdoc +32 -0
  31. package/dist/templates/atelier/content/collections/projects/white-city.mdoc +32 -0
  32. package/dist/templates/atelier/content/pages/about.json +180 -0
  33. package/dist/templates/atelier/content/pages/commissions.json +307 -0
  34. package/dist/templates/atelier/content/pages/contact.json +117 -0
  35. package/dist/templates/atelier/content/pages/home.json +524 -0
  36. package/dist/templates/atelier/content/pages/work.json +332 -0
  37. package/dist/templates/atelier/content/site.json +190 -0
  38. package/dist/templates/atelier/content/styles.json +25 -0
  39. package/dist/templates/atelier/media/LICENSES.json +218 -0
  40. package/dist/templates/atelier/openspace.json +21 -0
  41. package/dist/templates/atelier/template.json +115 -0
  42. package/dist/templates/commons/content/collections/gatherings/_collection.json +13 -0
  43. package/dist/templates/commons/content/collections/gatherings/grant-writing-workshop.mdoc +17 -0
  44. package/dist/templates/commons/content/collections/gatherings/seed-swap.mdoc +16 -0
  45. package/dist/templates/commons/content/collections/gatherings/winter-general-assembly.mdoc +17 -0
  46. package/dist/templates/commons/content/pages/about.json +227 -0
  47. package/dist/templates/commons/content/pages/home.json +540 -0
  48. package/dist/templates/commons/content/pages/join.json +304 -0
  49. package/dist/templates/commons/content/pages/members.json +499 -0
  50. package/dist/templates/commons/content/site.json +306 -0
  51. package/dist/templates/commons/content/styles.json +27 -0
  52. package/dist/templates/commons/media/LICENSES.json +108 -0
  53. package/dist/templates/commons/openspace.json +21 -0
  54. package/dist/templates/commons/template.json +113 -0
  55. package/dist/templates/encore/content/collections/sessions/_collection.json +19 -0
  56. package/dist/templates/encore/content/collections/sessions/session-10-headphones-on.mdoc +16 -0
  57. package/dist/templates/encore/content/collections/sessions/session-11-neon-tide.mdoc +16 -0
  58. package/dist/templates/encore/content/collections/sessions/session-12-slow-static.mdoc +16 -0
  59. package/dist/templates/encore/content/collections/tour/_collection.json +13 -0
  60. package/dist/templates/encore/content/collections/tour/brooklyn-elsewhere.mdoc +18 -0
  61. package/dist/templates/encore/content/collections/tour/chicago-thalia-hall.mdoc +18 -0
  62. package/dist/templates/encore/content/collections/tour/london-electric-ballroom.mdoc +18 -0
  63. package/dist/templates/encore/content/collections/tour/minneapolis-first-avenue.mdoc +18 -0
  64. package/dist/templates/encore/content/collections/tour/toronto-danforth.mdoc +18 -0
  65. package/dist/templates/encore/content/pages/about.json +251 -0
  66. package/dist/templates/encore/content/pages/contact.json +122 -0
  67. package/dist/templates/encore/content/pages/home.json +363 -0
  68. package/dist/templates/encore/content/pages/music.json +297 -0
  69. package/dist/templates/encore/content/site.json +293 -0
  70. package/dist/templates/encore/content/styles.json +17 -0
  71. package/dist/templates/encore/media/LICENSES.json +97 -0
  72. package/dist/templates/encore/openspace.json +21 -0
  73. package/dist/templates/encore/template.json +103 -0
  74. package/dist/templates/field-notes/content/collections/essays/_collection.json +31 -0
  75. package/dist/templates/field-notes/content/collections/essays/a-year-of-apples.mdoc +25 -0
  76. package/dist/templates/field-notes/content/collections/essays/learning-a-field.mdoc +32 -0
  77. package/dist/templates/field-notes/content/collections/essays/small-weather.mdoc +25 -0
  78. package/dist/templates/field-notes/content/collections/essays/the-wall-builders.mdoc +29 -0
  79. package/dist/templates/field-notes/content/pages/about.json +236 -0
  80. package/dist/templates/field-notes/content/pages/contact.json +116 -0
  81. package/dist/templates/field-notes/content/pages/home.json +428 -0
  82. package/dist/templates/field-notes/content/pages/subscribe.json +273 -0
  83. package/dist/templates/field-notes/content/site.json +218 -0
  84. package/dist/templates/field-notes/content/styles.json +27 -0
  85. package/dist/templates/field-notes/media/LICENSES.json +119 -0
  86. package/dist/templates/field-notes/openspace.json +21 -0
  87. package/dist/templates/field-notes/template.json +112 -0
  88. package/dist/templates/harbor/content/collections/events/_collection.json +13 -0
  89. package/dist/templates/harbor/content/collections/events/coat-drive-sorting-day.mdoc +17 -0
  90. package/dist/templates/harbor/content/collections/events/safe-at-home-build-day.mdoc +17 -0
  91. package/dist/templates/harbor/content/collections/events/spring-community-supper.mdoc +17 -0
  92. package/dist/templates/harbor/content/collections/events/winter-coat-giveaway.mdoc +16 -0
  93. package/dist/templates/harbor/content/collections/news/2026-08-28-back-to-school-at-homework-harbor.mdoc +17 -0
  94. package/dist/templates/harbor/content/collections/news/2026-09-15-meet-the-repair-crew.mdoc +21 -0
  95. package/dist/templates/harbor/content/collections/news/2026-10-08-the-2025-annual-report.mdoc +25 -0
  96. package/dist/templates/harbor/content/collections/news/_collection.json +34 -0
  97. package/dist/templates/harbor/content/pages/about.json +366 -0
  98. package/dist/templates/harbor/content/pages/contact.json +233 -0
  99. package/dist/templates/harbor/content/pages/get-involved.json +425 -0
  100. package/dist/templates/harbor/content/pages/home.json +524 -0
  101. package/dist/templates/harbor/content/pages/programs.json +611 -0
  102. package/dist/templates/harbor/content/site.json +377 -0
  103. package/dist/templates/harbor/content/styles.json +25 -0
  104. package/dist/templates/harbor/media/LICENSES.json +141 -0
  105. package/dist/templates/harbor/openspace.json +21 -0
  106. package/dist/templates/harbor/template.json +115 -0
  107. package/dist/templates/hearth/content/pages/about.json +246 -0
  108. package/dist/templates/hearth/content/pages/home.json +937 -0
  109. package/dist/templates/hearth/content/pages/menu.json +396 -0
  110. package/dist/templates/hearth/content/pages/private-dining.json +288 -0
  111. package/dist/templates/hearth/content/pages/visit.json +257 -0
  112. package/dist/templates/hearth/content/site.json +214 -0
  113. package/dist/templates/hearth/content/styles.json +25 -0
  114. package/dist/templates/hearth/media/LICENSES.json +196 -0
  115. package/dist/templates/hearth/openspace.json +21 -0
  116. package/dist/templates/hearth/template.json +116 -0
  117. package/dist/templates/kiln/content/collections/classes/_collection.json +13 -0
  118. package/dist/templates/kiln/content/collections/classes/glaze-day-march.mdoc +17 -0
  119. package/dist/templates/kiln/content/collections/classes/hand-building-february.mdoc +17 -0
  120. package/dist/templates/kiln/content/collections/classes/spring-studio-sale.mdoc +15 -0
  121. package/dist/templates/kiln/content/collections/classes/wheel-weekend-january.mdoc +17 -0
  122. package/dist/templates/kiln/content/collections/shop/_collection.json +14 -0
  123. package/dist/templates/kiln/content/collections/shop/ash-bud-vases.mdoc +18 -0
  124. package/dist/templates/kiln/content/collections/shop/harbor-planter.mdoc +18 -0
  125. package/dist/templates/kiln/content/collections/shop/morning-cup-pair.mdoc +24 -0
  126. package/dist/templates/kiln/content/collections/shop/sea-glass-planter.mdoc +18 -0
  127. package/dist/templates/kiln/content/collections/shop/tide-vase.mdoc +23 -0
  128. package/dist/templates/kiln/content/collections/shop/walnut-step-stool.mdoc +18 -0
  129. package/dist/templates/kiln/content/pages/about.json +344 -0
  130. package/dist/templates/kiln/content/pages/contact.json +232 -0
  131. package/dist/templates/kiln/content/pages/home.json +754 -0
  132. package/dist/templates/kiln/content/pages/workshops.json +352 -0
  133. package/dist/templates/kiln/content/site.json +263 -0
  134. package/dist/templates/kiln/content/styles.json +17 -0
  135. package/dist/templates/kiln/media/LICENSES.json +119 -0
  136. package/dist/templates/kiln/openspace.json +21 -0
  137. package/dist/templates/kiln/template.json +103 -0
  138. package/dist/templates/ledger/content/collections/case-studies/_collection.json +14 -0
  139. package/dist/templates/ledger/content/collections/case-studies/fieldwork-coffee.mdoc +29 -0
  140. package/dist/templates/ledger/content/collections/case-studies/larkspur-foods.mdoc +29 -0
  141. package/dist/templates/ledger/content/collections/case-studies/ostrander-clinics.mdoc +29 -0
  142. package/dist/templates/ledger/content/collections/insights/2026-08-10-one-page-of-numbers.mdoc +12 -0
  143. package/dist/templates/ledger/content/collections/insights/2026-09-07-hiring-your-first-coo.mdoc +17 -0
  144. package/dist/templates/ledger/content/collections/insights/2026-10-05-the-decision-log.mdoc +15 -0
  145. package/dist/templates/ledger/content/collections/insights/_collection.json +21 -0
  146. package/dist/templates/ledger/content/pages/about.json +298 -0
  147. package/dist/templates/ledger/content/pages/contact.json +158 -0
  148. package/dist/templates/ledger/content/pages/home.json +621 -0
  149. package/dist/templates/ledger/content/pages/services.json +639 -0
  150. package/dist/templates/ledger/content/site.json +336 -0
  151. package/dist/templates/ledger/content/styles.json +17 -0
  152. package/dist/templates/ledger/media/LICENSES.json +86 -0
  153. package/dist/templates/ledger/openspace.json +21 -0
  154. package/dist/templates/ledger/template.json +102 -0
  155. package/dist/templates/link/content/pages/home.json +278 -0
  156. package/dist/templates/link/content/site.json +168 -0
  157. package/dist/templates/link/content/styles.json +17 -0
  158. package/dist/templates/link/media/LICENSES.json +97 -0
  159. package/dist/templates/link/openspace.json +21 -0
  160. package/dist/templates/link/template.json +87 -0
  161. package/dist/templates/meadow/content/collections/journal/2026-09-02-meet-daniel.mdoc +20 -0
  162. package/dist/templates/meadow/content/collections/journal/2026-09-28-a-practice-for-dark-mornings.mdoc +24 -0
  163. package/dist/templates/meadow/content/collections/journal/2026-10-12-why-twelve-mats.mdoc +26 -0
  164. package/dist/templates/meadow/content/collections/journal/_collection.json +34 -0
  165. package/dist/templates/meadow/content/collections/workshops/_collection.json +13 -0
  166. package/dist/templates/meadow/content/collections/workshops/breath-and-rest-workshop.mdoc +17 -0
  167. package/dist/templates/meadow/content/collections/workshops/foundations-four-weeks.mdoc +17 -0
  168. package/dist/templates/meadow/content/collections/workshops/manzanita-spring-retreat.mdoc +17 -0
  169. package/dist/templates/meadow/content/collections/workshops/winter-solstice-restorative.mdoc +17 -0
  170. package/dist/templates/meadow/content/pages/about.json +344 -0
  171. package/dist/templates/meadow/content/pages/bodywork.json +330 -0
  172. package/dist/templates/meadow/content/pages/classes.json +820 -0
  173. package/dist/templates/meadow/content/pages/contact.json +240 -0
  174. package/dist/templates/meadow/content/pages/home.json +556 -0
  175. package/dist/templates/meadow/content/site.json +290 -0
  176. package/dist/templates/meadow/content/styles.json +25 -0
  177. package/dist/templates/meadow/media/LICENSES.json +130 -0
  178. package/dist/templates/meadow/openspace.json +21 -0
  179. package/dist/templates/meadow/template.json +116 -0
  180. package/dist/templates/signal/content/collections/changelog/2026-09-08-faster-sms.mdoc +11 -0
  181. package/dist/templates/signal/content/collections/changelog/2026-09-22-postmortem-drafts.mdoc +11 -0
  182. package/dist/templates/signal/content/collections/changelog/2026-10-06-quiet-hours.mdoc +13 -0
  183. package/dist/templates/signal/content/collections/changelog/2026-10-20-status-pages-that-update-themselves.mdoc +17 -0
  184. package/dist/templates/signal/content/collections/changelog/_collection.json +39 -0
  185. package/dist/templates/signal/content/pages/about.json +258 -0
  186. package/dist/templates/signal/content/pages/contact.json +122 -0
  187. package/dist/templates/signal/content/pages/home.json +1062 -0
  188. package/dist/templates/signal/content/pages/pricing.json +460 -0
  189. package/dist/templates/signal/content/site.json +345 -0
  190. package/dist/templates/signal/content/styles.json +17 -0
  191. package/dist/templates/signal/media/LICENSES.json +119 -0
  192. package/dist/templates/signal/openspace.json +21 -0
  193. package/dist/templates/signal/template.json +103 -0
  194. package/dist/templates/vow/content/pages/about.json +314 -0
  195. package/dist/templates/vow/content/pages/home.json +400 -0
  196. package/dist/templates/vow/content/pages/registry.json +207 -0
  197. package/dist/templates/vow/content/pages/rsvp.json +145 -0
  198. package/dist/templates/vow/content/pages/schedule.json +281 -0
  199. package/dist/templates/vow/content/pages/travel.json +326 -0
  200. package/dist/templates/vow/content/site.json +200 -0
  201. package/dist/templates/vow/content/styles.json +17 -0
  202. package/dist/templates/vow/media/LICENSES.json +130 -0
  203. package/dist/templates/vow/openspace.json +21 -0
  204. package/dist/templates/vow/template.json +113 -0
  205. package/package.json +71 -3
@@ -0,0 +1,937 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_dqfe0kfhjq",
4
+ "title": "Home",
5
+ "slug": "",
6
+ "seo": {
7
+ "description": "Ember & Olive is a wood-fired trattoria on Federal Hill in Providence: handmade pasta, pizza from the oven and natural wine."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_5b9zq3pv83",
12
+ "preset": "hero/staggered-photos@1",
13
+ "label": "Staggered photographs",
14
+ "layout": {
15
+ "mode": "grid",
16
+ "rows": {
17
+ "d": 25,
18
+ "m": 35
19
+ },
20
+ "items": {
21
+ "blk_6j1d3r08z1": {
22
+ "d": {
23
+ "x": 1,
24
+ "y": 1,
25
+ "w": 8,
26
+ "h": 24
27
+ },
28
+ "m": {
29
+ "x": 1,
30
+ "y": 1,
31
+ "w": 5,
32
+ "h": 12
33
+ }
34
+ },
35
+ "blk_xv8ydcx29x": {
36
+ "d": {
37
+ "x": 10,
38
+ "y": 4,
39
+ "w": 6,
40
+ "h": 16
41
+ },
42
+ "m": {
43
+ "x": 6,
44
+ "y": 5,
45
+ "w": 3,
46
+ "h": 9
47
+ }
48
+ },
49
+ "blk_71zkpbyk12": {
50
+ "d": {
51
+ "x": 17,
52
+ "y": 1,
53
+ "w": 8,
54
+ "h": 13
55
+ },
56
+ "m": {
57
+ "x": 1,
58
+ "y": 14,
59
+ "w": 8,
60
+ "h": 9
61
+ }
62
+ },
63
+ "blk_jpecr9bw5z": {
64
+ "d": {
65
+ "x": 14,
66
+ "y": 11,
67
+ "w": 11,
68
+ "h": 11,
69
+ "z": 2
70
+ },
71
+ "m": {
72
+ "x": 1,
73
+ "y": 21,
74
+ "w": 8,
75
+ "h": 11,
76
+ "z": 2
77
+ }
78
+ },
79
+ "blk_h3yx4gyzee": {
80
+ "d": {
81
+ "x": 15,
82
+ "y": 23,
83
+ "w": 10,
84
+ "h": 3
85
+ },
86
+ "m": {
87
+ "x": 1,
88
+ "y": 33,
89
+ "w": 8,
90
+ "h": 3
91
+ }
92
+ }
93
+ }
94
+ },
95
+ "style": {
96
+ "colorTheme": "light",
97
+ "padding": {
98
+ "d": "xl",
99
+ "m": "lg"
100
+ }
101
+ },
102
+ "blocks": [
103
+ {
104
+ "id": "blk_6j1d3r08z1",
105
+ "type": "image",
106
+ "v": 1,
107
+ "fields": {
108
+ "image": {
109
+ "src": "https://images.unsplash.com/photo-1504674900247-0877df9cc836?w=840&q=80",
110
+ "alt": "Grilled steak, herbs and sauces shared across the table",
111
+ "width": 840,
112
+ "height": 560
113
+ },
114
+ "aspect": "original",
115
+ "lightbox": false
116
+ },
117
+ "variant": "default"
118
+ },
119
+ {
120
+ "id": "blk_xv8ydcx29x",
121
+ "type": "image",
122
+ "v": 1,
123
+ "fields": {
124
+ "image": {
125
+ "src": "https://images.unsplash.com/photo-1551218808-94e220e084d2?w=640&q=80",
126
+ "alt": "Our cook chopping fresh herbs before service",
127
+ "width": 640,
128
+ "height": 960,
129
+ "focal": [
130
+ 0.5,
131
+ 0.4
132
+ ]
133
+ },
134
+ "aspect": "original",
135
+ "lightbox": false
136
+ },
137
+ "variant": "default"
138
+ },
139
+ {
140
+ "id": "blk_71zkpbyk12",
141
+ "type": "image",
142
+ "v": 1,
143
+ "fields": {
144
+ "image": {
145
+ "src": "https://images.unsplash.com/photo-1513104890138-7c749659a591?w=840&q=80",
146
+ "alt": "A wood-fired pizza cut into slices",
147
+ "width": 840,
148
+ "height": 560
149
+ },
150
+ "aspect": "original",
151
+ "lightbox": false
152
+ },
153
+ "variant": "default"
154
+ },
155
+ {
156
+ "id": "blk_jpecr9bw5z",
157
+ "type": "text",
158
+ "v": 1,
159
+ "fields": {
160
+ "content": {
161
+ "type": "doc",
162
+ "content": [
163
+ {
164
+ "type": "paragraph",
165
+ "attrs": {
166
+ "preset": "eyebrow"
167
+ },
168
+ "content": [
169
+ {
170
+ "type": "text",
171
+ "text": "Federal Hill · Providence"
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ "type": "heading",
177
+ "attrs": {
178
+ "level": 1,
179
+ "preset": "h1"
180
+ },
181
+ "content": [
182
+ {
183
+ "type": "text",
184
+ "text": "Wood-fired cooking, made to share"
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "type": "paragraph",
190
+ "content": [
191
+ {
192
+ "type": "text",
193
+ "text": "Handmade pasta, blistered pizza and whatever the market brought in that morning, cooked over oak and served to the middle of the table."
194
+ }
195
+ ]
196
+ }
197
+ ]
198
+ }
199
+ },
200
+ "variant": "default",
201
+ "style": {
202
+ "colorTheme": "light",
203
+ "padding": {
204
+ "d": "lg",
205
+ "m": "md"
206
+ }
207
+ }
208
+ },
209
+ {
210
+ "id": "blk_h3yx4gyzee",
211
+ "type": "button",
212
+ "v": 1,
213
+ "fields": {
214
+ "label": "Reserve a table",
215
+ "link": {
216
+ "type": "page",
217
+ "page": "pg_03vfj29ssd",
218
+ "anchor": "reserve"
219
+ },
220
+ "role": "primary",
221
+ "secondaryLabel": "See the menu",
222
+ "secondaryLink": {
223
+ "type": "page",
224
+ "page": "pg_fs2y203dqx"
225
+ }
226
+ },
227
+ "variant": "default"
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ "id": "sec_ty1wj6jk1d",
233
+ "preset": "services/price-list@1",
234
+ "label": "Service menu with prices",
235
+ "layout": {
236
+ "mode": "stack",
237
+ "columns": {
238
+ "d": [
239
+ 4,
240
+ 8
241
+ ],
242
+ "m": [
243
+ 12
244
+ ]
245
+ },
246
+ "gap": "2xl"
247
+ },
248
+ "style": {
249
+ "colorTheme": "light-accent"
250
+ },
251
+ "blocks": [
252
+ {
253
+ "id": "blk_x65zkjxs6n",
254
+ "type": "heading",
255
+ "v": 1,
256
+ "fields": {
257
+ "text": "A few things we're known for",
258
+ "level": "h2",
259
+ "size": "auto",
260
+ "eyebrow": "From the oven",
261
+ "subheading": "The menu changes with the season; these never leave it. Everything is made in our kitchen each afternoon."
262
+ },
263
+ "column": 0,
264
+ "variant": "plain"
265
+ },
266
+ {
267
+ "id": "blk_xshwqzzpa3",
268
+ "type": "button",
269
+ "v": 1,
270
+ "fields": {
271
+ "label": "The full menu",
272
+ "link": {
273
+ "type": "page",
274
+ "page": "pg_fs2y203dqx"
275
+ },
276
+ "role": "secondary"
277
+ },
278
+ "column": 0,
279
+ "variant": "default"
280
+ },
281
+ {
282
+ "id": "blk_jfn3k3wmy1",
283
+ "type": "restaurant-menu",
284
+ "v": 1,
285
+ "fields": {
286
+ "sections": [
287
+ {
288
+ "title": "Favourites",
289
+ "items": [
290
+ {
291
+ "name": "Cacio e pepe",
292
+ "description": "Hand-rolled tonnarelli, pecorino romano, cracked black pepper.",
293
+ "price": "24",
294
+ "dietary": [
295
+ {
296
+ "tag": "v"
297
+ }
298
+ ]
299
+ },
300
+ {
301
+ "name": "Margherita DOP",
302
+ "description": "San Marzano tomato, fior di latte, basil, olive oil.",
303
+ "price": "19",
304
+ "dietary": [
305
+ {
306
+ "tag": "v"
307
+ }
308
+ ]
309
+ },
310
+ {
311
+ "name": "Spiedini di gamberi",
312
+ "description": "Oak-grilled shrimp, salsa verde, charred lemon.",
313
+ "price": "27",
314
+ "dietary": [
315
+ {
316
+ "tag": "gf"
317
+ }
318
+ ]
319
+ },
320
+ {
321
+ "name": "Tiramisù",
322
+ "description": "Espresso-soaked savoiardi, mascarpone, cocoa.",
323
+ "price": "12",
324
+ "dietary": [
325
+ {
326
+ "tag": "v"
327
+ }
328
+ ]
329
+ }
330
+ ]
331
+ }
332
+ ],
333
+ "currency": "$",
334
+ "legend": true,
335
+ "footnote": "Most dishes can be made gluten-free; please tell your server about any allergies."
336
+ },
337
+ "column": 1,
338
+ "variant": "minimal"
339
+ }
340
+ ]
341
+ },
342
+ {
343
+ "id": "sec_t9n62hphpg",
344
+ "preset": "about/quote-and-image@1",
345
+ "label": "Founder quote with photo",
346
+ "layout": {
347
+ "mode": "stack",
348
+ "columns": {
349
+ "d": [
350
+ 6,
351
+ 6
352
+ ],
353
+ "m": [
354
+ 12
355
+ ]
356
+ },
357
+ "order": {
358
+ "m": [
359
+ 1,
360
+ 0
361
+ ],
362
+ "t": [
363
+ 1,
364
+ 0
365
+ ]
366
+ },
367
+ "align": "center",
368
+ "gap": "2xl"
369
+ },
370
+ "style": {
371
+ "colorTheme": "dark"
372
+ },
373
+ "blocks": [
374
+ {
375
+ "id": "blk_f1frkfd8h3",
376
+ "type": "image",
377
+ "v": 1,
378
+ "fields": {
379
+ "image": {
380
+ "src": "https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=1280&q=80",
381
+ "alt": "The dining room at Ember & Olive, lit low before service",
382
+ "width": 1280,
383
+ "height": 853
384
+ },
385
+ "aspect": "3:2",
386
+ "lightbox": false
387
+ },
388
+ "column": 0,
389
+ "variant": "default"
390
+ },
391
+ {
392
+ "id": "blk_4zyvhpjdh9",
393
+ "type": "quote",
394
+ "v": 1,
395
+ "fields": {
396
+ "quote": {
397
+ "type": "doc",
398
+ "content": [
399
+ {
400
+ "type": "paragraph",
401
+ "content": [
402
+ {
403
+ "type": "text",
404
+ "text": "My grandmother cooked for twelve every Sunday on a wood stove in Calabria. I just wanted a room where it feels like that every night."
405
+ }
406
+ ]
407
+ }
408
+ ]
409
+ },
410
+ "attribution": "Lucia Ferrante",
411
+ "source": "Chef and owner"
412
+ },
413
+ "column": 1,
414
+ "variant": "classic"
415
+ }
416
+ ]
417
+ },
418
+ {
419
+ "id": "sec_v8hasj7wk8",
420
+ "preset": "gallery/carousel@1",
421
+ "label": "Scrolling carousel",
422
+ "layout": {
423
+ "mode": "stack",
424
+ "columns": {
425
+ "d": [
426
+ 12
427
+ ]
428
+ },
429
+ "gap": "lg"
430
+ },
431
+ "style": {
432
+ "colorTheme": "light"
433
+ },
434
+ "blocks": [
435
+ {
436
+ "id": "blk_g8krggry01",
437
+ "type": "heading",
438
+ "v": 1,
439
+ "fields": {
440
+ "text": "This week at the pass",
441
+ "level": "h2",
442
+ "size": "auto",
443
+ "eyebrow": "From the kitchen"
444
+ },
445
+ "variant": "plain"
446
+ },
447
+ {
448
+ "id": "blk_fkrzq81km9",
449
+ "type": "gallery",
450
+ "v": 1,
451
+ "fields": {
452
+ "images": [
453
+ {
454
+ "image": {
455
+ "src": "https://images.unsplash.com/photo-1513104890138-7c749659a591?w=1560&q=80",
456
+ "alt": "Pizza fresh from the wood oven",
457
+ "width": 1560,
458
+ "height": 1040
459
+ },
460
+ "caption": "Diavola, hot honey"
461
+ },
462
+ {
463
+ "image": {
464
+ "src": "https://images.unsplash.com/photo-1512621776951-a57141f2eefd?w=1560&q=80",
465
+ "alt": "A bowl of greens and roasted vegetables",
466
+ "width": 1560,
467
+ "height": 1040
468
+ },
469
+ "caption": "Market greens"
470
+ },
471
+ {
472
+ "image": {
473
+ "src": "https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1560&q=80",
474
+ "alt": "A plated dish on a candlelit table",
475
+ "width": 1560,
476
+ "height": 1040
477
+ },
478
+ "caption": "Branzino, capers, lemon"
479
+ },
480
+ {
481
+ "image": {
482
+ "src": "https://images.unsplash.com/photo-1509440159596-0249088772ff?w=1560&q=80",
483
+ "alt": "Two rustic loaves dusted with flour",
484
+ "width": 1560,
485
+ "height": 1038
486
+ },
487
+ "caption": "Our daily bread"
488
+ },
489
+ {
490
+ "image": {
491
+ "src": "https://images.unsplash.com/photo-1551218808-94e220e084d2?w=840&q=80",
492
+ "alt": "Chopping herbs for salsa verde",
493
+ "width": 840,
494
+ "height": 1260,
495
+ "focal": [
496
+ 0.5,
497
+ 0.4
498
+ ]
499
+ },
500
+ "caption": "Salsa verde, 4pm"
501
+ },
502
+ {
503
+ "image": {
504
+ "src": "https://images.unsplash.com/photo-1528605248644-14dd04022da1?w=1560&q=80",
505
+ "alt": "Friends sharing dinner on the terrace",
506
+ "width": 1560,
507
+ "height": 1040
508
+ },
509
+ "caption": "Sunday on the terrace"
510
+ }
511
+ ],
512
+ "aspect": "4:5",
513
+ "columns": "3",
514
+ "lightbox": true,
515
+ "showCaptions": true
516
+ },
517
+ "variant": "carousel"
518
+ }
519
+ ]
520
+ },
521
+ {
522
+ "id": "sec_0jnc7s3gva",
523
+ "preset": "contact/hours-overlap@1",
524
+ "label": "Hours card over photo",
525
+ "layout": {
526
+ "mode": "grid",
527
+ "rows": {
528
+ "d": 24,
529
+ "m": 30
530
+ },
531
+ "items": {
532
+ "blk_f522edxv8c": {
533
+ "d": {
534
+ "x": 1,
535
+ "y": 1,
536
+ "w": 15,
537
+ "h": 24,
538
+ "bleed": "left"
539
+ },
540
+ "m": {
541
+ "x": 1,
542
+ "y": 1,
543
+ "w": 8,
544
+ "h": 12,
545
+ "bleed": "both"
546
+ }
547
+ },
548
+ "blk_hqd1dkrj7m": {
549
+ "d": {
550
+ "x": 13,
551
+ "y": 3,
552
+ "w": 11,
553
+ "h": 13,
554
+ "z": 2
555
+ },
556
+ "m": {
557
+ "x": 1,
558
+ "y": 10,
559
+ "w": 8,
560
+ "h": 13,
561
+ "z": 2
562
+ }
563
+ },
564
+ "blk_0v2gg58257": {
565
+ "d": {
566
+ "x": 13,
567
+ "y": 17,
568
+ "w": 11,
569
+ "h": 7,
570
+ "z": 2
571
+ },
572
+ "m": {
573
+ "x": 1,
574
+ "y": 24,
575
+ "w": 8,
576
+ "h": 7
577
+ }
578
+ }
579
+ }
580
+ },
581
+ "style": {
582
+ "colorTheme": "light"
583
+ },
584
+ "blocks": [
585
+ {
586
+ "id": "blk_f522edxv8c",
587
+ "type": "image",
588
+ "v": 1,
589
+ "fields": {
590
+ "image": {
591
+ "src": "https://images.unsplash.com/photo-1555396273-367ea4eb4db5?w=1720&q=80",
592
+ "alt": "Wooden tables and pendant lights in the dining room",
593
+ "width": 1720,
594
+ "height": 1290
595
+ },
596
+ "aspect": "original",
597
+ "lightbox": false
598
+ },
599
+ "variant": "default"
600
+ },
601
+ {
602
+ "id": "blk_hqd1dkrj7m",
603
+ "type": "hours",
604
+ "v": 1,
605
+ "fields": {
606
+ "heading": "Opening hours",
607
+ "headingLevel": "h2",
608
+ "rows": [
609
+ {
610
+ "day": "mon",
611
+ "closed": true
612
+ },
613
+ {
614
+ "day": "tue",
615
+ "opens": "17:00",
616
+ "closes": "22:00",
617
+ "closed": false
618
+ },
619
+ {
620
+ "day": "wed",
621
+ "opens": "17:00",
622
+ "closes": "22:00",
623
+ "closed": false
624
+ },
625
+ {
626
+ "day": "thu",
627
+ "opens": "17:00",
628
+ "closes": "22:00",
629
+ "closed": false
630
+ },
631
+ {
632
+ "day": "fri",
633
+ "opens": "17:00",
634
+ "closes": "23:00",
635
+ "closed": false
636
+ },
637
+ {
638
+ "day": "sat",
639
+ "opens": "12:00",
640
+ "closes": "23:00",
641
+ "closed": false
642
+ },
643
+ {
644
+ "day": "sun",
645
+ "opens": "12:00",
646
+ "closes": "21:00",
647
+ "closed": false
648
+ }
649
+ ],
650
+ "note": "Kitchen closes 30 minutes before the doors. Walk-ins welcome at the bar."
651
+ },
652
+ "variant": "card",
653
+ "style": {
654
+ "colorTheme": "light",
655
+ "padding": {
656
+ "d": "lg",
657
+ "m": "md"
658
+ }
659
+ }
660
+ },
661
+ {
662
+ "id": "blk_0v2gg58257",
663
+ "type": "contact-info",
664
+ "v": 1,
665
+ "fields": {
666
+ "headingLevel": "h3",
667
+ "name": "Ember & Olive",
668
+ "address": "214 Atwells Avenue, Providence, RI 02903",
669
+ "phone": "+1 (401) 555-0158",
670
+ "directions": true
671
+ },
672
+ "variant": "list",
673
+ "style": {
674
+ "colorTheme": "light",
675
+ "padding": {
676
+ "d": "lg",
677
+ "m": "md"
678
+ }
679
+ }
680
+ }
681
+ ]
682
+ },
683
+ {
684
+ "id": "sec_5wwg1bzzj2",
685
+ "preset": "testimonials/three-cards@1",
686
+ "label": "Three testimonial cards",
687
+ "layout": {
688
+ "mode": "grid",
689
+ "rows": {
690
+ "d": 15,
691
+ "m": 41
692
+ },
693
+ "items": {
694
+ "blk_hg5bdrq7ch": {
695
+ "d": {
696
+ "x": 5,
697
+ "y": 1,
698
+ "w": 16,
699
+ "h": 5
700
+ },
701
+ "m": {
702
+ "x": 1,
703
+ "y": 1,
704
+ "w": 8,
705
+ "h": 5
706
+ }
707
+ },
708
+ "blk_4a0gwan0c5": {
709
+ "d": {
710
+ "x": 1,
711
+ "y": 7,
712
+ "w": 8,
713
+ "h": 9
714
+ },
715
+ "m": {
716
+ "x": 1,
717
+ "y": 7,
718
+ "w": 8,
719
+ "h": 11
720
+ }
721
+ },
722
+ "blk_y1ypegpr9p": {
723
+ "d": {
724
+ "x": 9,
725
+ "y": 7,
726
+ "w": 8,
727
+ "h": 9
728
+ },
729
+ "m": {
730
+ "x": 1,
731
+ "y": 19,
732
+ "w": 8,
733
+ "h": 11
734
+ }
735
+ },
736
+ "blk_s3y33v1w6n": {
737
+ "d": {
738
+ "x": 17,
739
+ "y": 7,
740
+ "w": 8,
741
+ "h": 9
742
+ },
743
+ "m": {
744
+ "x": 1,
745
+ "y": 31,
746
+ "w": 8,
747
+ "h": 11
748
+ }
749
+ }
750
+ }
751
+ },
752
+ "style": {
753
+ "colorTheme": "light-accent"
754
+ },
755
+ "blocks": [
756
+ {
757
+ "id": "blk_hg5bdrq7ch",
758
+ "type": "heading",
759
+ "v": 1,
760
+ "fields": {
761
+ "text": "Why people keep coming back",
762
+ "level": "h2",
763
+ "size": "auto",
764
+ "eyebrow": "Guests"
765
+ },
766
+ "variant": "plain",
767
+ "style": {
768
+ "align": {
769
+ "d": "center"
770
+ }
771
+ }
772
+ },
773
+ {
774
+ "id": "blk_4a0gwan0c5",
775
+ "type": "testimonial",
776
+ "v": 1,
777
+ "fields": {
778
+ "quote": {
779
+ "type": "doc",
780
+ "content": [
781
+ {
782
+ "type": "paragraph",
783
+ "content": [
784
+ {
785
+ "type": "text",
786
+ "text": "The cacio e pepe is the best I've had outside Rome, and they remembered our anniversary."
787
+ }
788
+ ]
789
+ }
790
+ ]
791
+ },
792
+ "name": "Jules Moreno",
793
+ "role": "Regular since opening",
794
+ "photo": {
795
+ "src": "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=320&q=80",
796
+ "alt": "Portrait of Jules Moreno",
797
+ "width": 320,
798
+ "height": 480
799
+ },
800
+ "rating": 5
801
+ },
802
+ "variant": "card"
803
+ },
804
+ {
805
+ "id": "blk_y1ypegpr9p",
806
+ "type": "testimonial",
807
+ "v": 1,
808
+ "fields": {
809
+ "quote": {
810
+ "type": "doc",
811
+ "content": [
812
+ {
813
+ "type": "paragraph",
814
+ "content": [
815
+ {
816
+ "type": "text",
817
+ "text": "We booked the long table for my mother's 70th. Family-style platters, perfect pacing, no rush at all."
818
+ }
819
+ ]
820
+ }
821
+ ]
822
+ },
823
+ "name": "Nadia Sorensen",
824
+ "role": "Private dining, March",
825
+ "photo": {
826
+ "src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=320&q=80",
827
+ "alt": "Portrait of Nadia Sorensen",
828
+ "width": 320,
829
+ "height": 479
830
+ },
831
+ "rating": 5
832
+ },
833
+ "variant": "card"
834
+ },
835
+ {
836
+ "id": "blk_s3y33v1w6n",
837
+ "type": "testimonial",
838
+ "v": 1,
839
+ "fields": {
840
+ "quote": {
841
+ "type": "doc",
842
+ "content": [
843
+ {
844
+ "type": "paragraph",
845
+ "content": [
846
+ {
847
+ "type": "text",
848
+ "text": "Sit at the counter and watch the oven. Order whatever the chef says is good tonight."
849
+ }
850
+ ]
851
+ }
852
+ ]
853
+ },
854
+ "name": "Theo Grant",
855
+ "role": "Food writer, Providence Weekly",
856
+ "photo": {
857
+ "src": "https://images.unsplash.com/photo-1539571696357-5a69c17a67c6?w=320&q=80",
858
+ "alt": "Portrait of Theo Grant",
859
+ "width": 320,
860
+ "height": 480
861
+ },
862
+ "rating": 5
863
+ },
864
+ "variant": "card"
865
+ }
866
+ ]
867
+ },
868
+ {
869
+ "id": "sec_mcm5pnf2wz",
870
+ "preset": "cta/photo-background@1",
871
+ "label": "Photo background",
872
+ "layout": {
873
+ "mode": "stack",
874
+ "columns": {
875
+ "d": [
876
+ 12
877
+ ]
878
+ },
879
+ "width": "narrow",
880
+ "gap": "lg"
881
+ },
882
+ "style": {
883
+ "colorTheme": "dark",
884
+ "padding": {
885
+ "d": "3xl",
886
+ "m": "2xl"
887
+ },
888
+ "background": {
889
+ "type": "image",
890
+ "src": "https://images.unsplash.com/photo-1559339352-11d035aa65de?w=2880&q=80",
891
+ "overlay": {
892
+ "color": "background",
893
+ "opacity": 0.78
894
+ }
895
+ }
896
+ },
897
+ "blocks": [
898
+ {
899
+ "id": "blk_h69b036hzp",
900
+ "type": "heading",
901
+ "v": 1,
902
+ "fields": {
903
+ "text": "A long table for your celebration",
904
+ "level": "h2",
905
+ "size": "auto",
906
+ "subheading": "Private dining for 10 to 24 guests in the back room, with a family-style menu cooked over the fire."
907
+ },
908
+ "variant": "plain",
909
+ "style": {
910
+ "align": {
911
+ "d": "center"
912
+ }
913
+ }
914
+ },
915
+ {
916
+ "id": "blk_zr2jajac6m",
917
+ "type": "button",
918
+ "v": 1,
919
+ "fields": {
920
+ "label": "Plan a private dinner",
921
+ "link": {
922
+ "type": "page",
923
+ "page": "pg_q3e0j2pp60"
924
+ },
925
+ "role": "primary"
926
+ },
927
+ "variant": "default",
928
+ "style": {
929
+ "align": {
930
+ "d": "center"
931
+ }
932
+ }
933
+ }
934
+ ]
935
+ }
936
+ ]
937
+ }