@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,611 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_5752p2f5ye",
4
+ "title": "Programs",
5
+ "slug": "programs",
6
+ "seo": {
7
+ "description": "Free groceries at the Penn Avenue Pantry, after-school tutoring at Homework Harbor and home repairs through Safe at Home."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_eqz1q2xxfc",
12
+ "preset": "hero/split-landscape@1",
13
+ "label": "Split with landscape image",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 7,
19
+ 5
20
+ ],
21
+ "m": [
22
+ 12
23
+ ]
24
+ },
25
+ "order": {
26
+ "m": [
27
+ 1,
28
+ 0
29
+ ],
30
+ "t": [
31
+ 1,
32
+ 0
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_06n4y17vhb",
48
+ "type": "image",
49
+ "v": 1,
50
+ "fields": {
51
+ "image": {
52
+ "src": "https://images.unsplash.com/photo-1488521787991-ed7bbaae773c?w=1520&q=80",
53
+ "alt": "Children at Homework Harbor making peace signs",
54
+ "width": 1520,
55
+ "height": 1013
56
+ },
57
+ "aspect": "3:2",
58
+ "lightbox": false
59
+ },
60
+ "column": 0,
61
+ "variant": "default"
62
+ },
63
+ {
64
+ "id": "blk_23fvzy5nre",
65
+ "type": "heading",
66
+ "v": 1,
67
+ "fields": {
68
+ "text": "Help that starts with listening",
69
+ "level": "h1",
70
+ "size": "h1",
71
+ "eyebrow": "Programs",
72
+ "subheading": "Each program began when neighbors told us what was missing. They're all free, and most are run by people who once used them."
73
+ },
74
+ "column": 1,
75
+ "variant": "plain"
76
+ },
77
+ {
78
+ "id": "blk_pt1b3agmev",
79
+ "type": "button",
80
+ "v": 1,
81
+ "fields": {
82
+ "label": "Volunteer with us",
83
+ "link": {
84
+ "type": "page",
85
+ "page": "pg_ffqyf65d7j"
86
+ },
87
+ "role": "primary",
88
+ "secondaryLabel": "Ask for help",
89
+ "secondaryLink": {
90
+ "type": "page",
91
+ "page": "pg_rbmgfshm9y"
92
+ }
93
+ },
94
+ "column": 1,
95
+ "variant": "default"
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "id": "sec_v4s7sy3gad",
101
+ "preset": "services/alternating@1",
102
+ "label": "Alternating image and text",
103
+ "layout": {
104
+ "mode": "grid",
105
+ "rows": {
106
+ "d": 33,
107
+ "m": 43
108
+ },
109
+ "items": {
110
+ "blk_z6dj0wexfc": {
111
+ "d": {
112
+ "x": 1,
113
+ "y": 1,
114
+ "w": 12,
115
+ "h": 16
116
+ },
117
+ "m": {
118
+ "x": 1,
119
+ "y": 1,
120
+ "w": 8,
121
+ "h": 11
122
+ }
123
+ },
124
+ "blk_7c5z3qd77x": {
125
+ "d": {
126
+ "x": 15,
127
+ "y": 4,
128
+ "w": 9,
129
+ "h": 10
130
+ },
131
+ "m": {
132
+ "x": 1,
133
+ "y": 12,
134
+ "w": 8,
135
+ "h": 10
136
+ }
137
+ },
138
+ "blk_17kkhb8nx1": {
139
+ "d": {
140
+ "x": 13,
141
+ "y": 18,
142
+ "w": 12,
143
+ "h": 16
144
+ },
145
+ "m": {
146
+ "x": 1,
147
+ "y": 23,
148
+ "w": 8,
149
+ "h": 11
150
+ }
151
+ },
152
+ "blk_vv7vwp1eew": {
153
+ "d": {
154
+ "x": 2,
155
+ "y": 21,
156
+ "w": 9,
157
+ "h": 10
158
+ },
159
+ "m": {
160
+ "x": 1,
161
+ "y": 34,
162
+ "w": 8,
163
+ "h": 10
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "style": {
169
+ "colorTheme": "light"
170
+ },
171
+ "blocks": [
172
+ {
173
+ "id": "blk_z6dj0wexfc",
174
+ "type": "image",
175
+ "v": 1,
176
+ "fields": {
177
+ "image": {
178
+ "src": "https://images.unsplash.com/photo-1528605248644-14dd04022da1?w=1280&q=80",
179
+ "alt": "Neighbors chatting at a long table at the pantry",
180
+ "width": 1280,
181
+ "height": 853
182
+ },
183
+ "aspect": "original",
184
+ "lightbox": false
185
+ },
186
+ "variant": "default"
187
+ },
188
+ {
189
+ "id": "blk_7c5z3qd77x",
190
+ "type": "text",
191
+ "v": 1,
192
+ "fields": {
193
+ "content": {
194
+ "type": "doc",
195
+ "content": [
196
+ {
197
+ "type": "paragraph",
198
+ "attrs": {
199
+ "preset": "eyebrow"
200
+ },
201
+ "content": [
202
+ {
203
+ "type": "text",
204
+ "text": "Tuesday, Thursday & Saturday"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "type": "heading",
210
+ "attrs": {
211
+ "level": 2,
212
+ "preset": "h2"
213
+ },
214
+ "content": [
215
+ {
216
+ "type": "text",
217
+ "text": "Penn Avenue Pantry"
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "type": "paragraph",
223
+ "content": [
224
+ {
225
+ "type": "text",
226
+ "text": "A choice pantry set up like a small grocery store, with fresh produce from three local farms, milk, eggs and pantry staples. Bring a bag; we'll bring the coffee."
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ "type": "paragraph",
232
+ "content": [
233
+ {
234
+ "type": "text",
235
+ "text": "Pantry hours and address →",
236
+ "marks": [
237
+ {
238
+ "type": "link",
239
+ "attrs": {
240
+ "href": "/contact/"
241
+ }
242
+ }
243
+ ]
244
+ }
245
+ ]
246
+ }
247
+ ]
248
+ }
249
+ },
250
+ "variant": "default"
251
+ },
252
+ {
253
+ "id": "blk_17kkhb8nx1",
254
+ "type": "image",
255
+ "v": 1,
256
+ "fields": {
257
+ "image": {
258
+ "src": "https://images.unsplash.com/photo-1488521787991-ed7bbaae773c?w=1280&q=80",
259
+ "alt": "Kids from Homework Harbor smiling together",
260
+ "width": 1280,
261
+ "height": 853
262
+ },
263
+ "aspect": "original",
264
+ "lightbox": false
265
+ },
266
+ "variant": "default"
267
+ },
268
+ {
269
+ "id": "blk_vv7vwp1eew",
270
+ "type": "text",
271
+ "v": 1,
272
+ "fields": {
273
+ "content": {
274
+ "type": "doc",
275
+ "content": [
276
+ {
277
+ "type": "paragraph",
278
+ "attrs": {
279
+ "preset": "eyebrow"
280
+ },
281
+ "content": [
282
+ {
283
+ "type": "text",
284
+ "text": "School days, 3–6pm"
285
+ }
286
+ ]
287
+ },
288
+ {
289
+ "type": "heading",
290
+ "attrs": {
291
+ "level": 2,
292
+ "preset": "h2"
293
+ },
294
+ "content": [
295
+ {
296
+ "type": "text",
297
+ "text": "Homework Harbor"
298
+ }
299
+ ]
300
+ },
301
+ {
302
+ "type": "paragraph",
303
+ "content": [
304
+ {
305
+ "type": "text",
306
+ "text": "Volunteer tutors, a hot snack and a calm place to work for students in grades 3 to 8. Parents can pick up groceries from the pantry on the same visit."
307
+ }
308
+ ]
309
+ },
310
+ {
311
+ "type": "paragraph",
312
+ "content": [
313
+ {
314
+ "type": "text",
315
+ "text": "Enroll a student →",
316
+ "marks": [
317
+ {
318
+ "type": "link",
319
+ "attrs": {
320
+ "href": "/contact/"
321
+ }
322
+ }
323
+ ]
324
+ }
325
+ ]
326
+ }
327
+ ]
328
+ }
329
+ },
330
+ "variant": "default"
331
+ }
332
+ ],
333
+ "anchor": "pantry"
334
+ },
335
+ {
336
+ "id": "sec_2mwv6gfv1m",
337
+ "preset": "services/steps@1",
338
+ "label": "How it works in three steps",
339
+ "layout": {
340
+ "mode": "stack",
341
+ "columns": {
342
+ "d": [
343
+ 12
344
+ ]
345
+ },
346
+ "gap": "xl"
347
+ },
348
+ "style": {
349
+ "colorTheme": "light-accent"
350
+ },
351
+ "blocks": [
352
+ {
353
+ "id": "blk_rb9e8g6mje",
354
+ "type": "heading",
355
+ "v": 1,
356
+ "fields": {
357
+ "text": "How a free repair works",
358
+ "level": "h2",
359
+ "size": "auto",
360
+ "eyebrow": "Safe at Home"
361
+ },
362
+ "variant": "plain",
363
+ "style": {
364
+ "align": {
365
+ "d": "center"
366
+ }
367
+ }
368
+ },
369
+ {
370
+ "id": "blk_nnadvtch76",
371
+ "type": "columns",
372
+ "v": 1,
373
+ "fields": {
374
+ "items": [
375
+ {
376
+ "heading": "Call or write to us",
377
+ "body": {
378
+ "type": "doc",
379
+ "content": [
380
+ {
381
+ "type": "paragraph",
382
+ "content": [
383
+ {
384
+ "type": "text",
385
+ "text": "Tell us what needs fixing. Homeowners aged 62 and over, or living with a disability, qualify."
386
+ }
387
+ ]
388
+ }
389
+ ]
390
+ }
391
+ },
392
+ {
393
+ "heading": "A volunteer visits",
394
+ "body": {
395
+ "type": "doc",
396
+ "content": [
397
+ {
398
+ "type": "paragraph",
399
+ "content": [
400
+ {
401
+ "type": "text",
402
+ "text": "A licensed contractor from our crew looks at the job and explains what we can do, usually within two weeks."
403
+ }
404
+ ]
405
+ }
406
+ ]
407
+ }
408
+ },
409
+ {
410
+ "heading": "We fix it, free",
411
+ "body": {
412
+ "type": "doc",
413
+ "content": [
414
+ {
415
+ "type": "paragraph",
416
+ "content": [
417
+ {
418
+ "type": "text",
419
+ "text": "Ramps, rails, roofs and furnaces are repaired by volunteers, with materials paid for by donors."
420
+ }
421
+ ]
422
+ }
423
+ ]
424
+ }
425
+ }
426
+ ],
427
+ "columns": "3",
428
+ "aspect": "original"
429
+ },
430
+ "variant": "steps"
431
+ },
432
+ {
433
+ "id": "blk_1vpr77h9fg",
434
+ "type": "button",
435
+ "v": 1,
436
+ "fields": {
437
+ "label": "Request a repair",
438
+ "link": {
439
+ "type": "page",
440
+ "page": "pg_rbmgfshm9y"
441
+ },
442
+ "role": "primary"
443
+ },
444
+ "variant": "default",
445
+ "style": {
446
+ "align": {
447
+ "d": "center"
448
+ }
449
+ }
450
+ }
451
+ ],
452
+ "anchor": "repairs"
453
+ },
454
+ {
455
+ "id": "sec_r7wr2rk1yt",
456
+ "preset": "faq/split@1",
457
+ "label": "Questions beside heading",
458
+ "layout": {
459
+ "mode": "stack",
460
+ "columns": {
461
+ "d": [
462
+ 4,
463
+ 8
464
+ ],
465
+ "m": [
466
+ 12
467
+ ]
468
+ },
469
+ "gap": "2xl"
470
+ },
471
+ "style": {
472
+ "colorTheme": "light"
473
+ },
474
+ "blocks": [
475
+ {
476
+ "id": "blk_5f053qx56z",
477
+ "type": "heading",
478
+ "v": 1,
479
+ "fields": {
480
+ "text": "Getting help",
481
+ "level": "h2",
482
+ "size": "auto",
483
+ "eyebrow": "Questions"
484
+ },
485
+ "column": 0,
486
+ "variant": "plain"
487
+ },
488
+ {
489
+ "id": "blk_xpjhgcesxb",
490
+ "type": "text",
491
+ "v": 1,
492
+ "fields": {
493
+ "content": {
494
+ "type": "doc",
495
+ "content": [
496
+ {
497
+ "type": "paragraph",
498
+ "content": [
499
+ {
500
+ "type": "text",
501
+ "text": "Not sure if a program is right for you? Call the front desk and we'll talk it through."
502
+ }
503
+ ]
504
+ }
505
+ ]
506
+ }
507
+ },
508
+ "column": 0,
509
+ "variant": "default"
510
+ },
511
+ {
512
+ "id": "blk_tvtzak0k69",
513
+ "type": "button",
514
+ "v": 1,
515
+ "fields": {
516
+ "label": "Contact us",
517
+ "link": {
518
+ "type": "page",
519
+ "page": "pg_rbmgfshm9y"
520
+ },
521
+ "role": "secondary"
522
+ },
523
+ "column": 0,
524
+ "variant": "default"
525
+ },
526
+ {
527
+ "id": "blk_hz7m2q9wst",
528
+ "type": "accordion",
529
+ "v": 1,
530
+ "fields": {
531
+ "items": [
532
+ {
533
+ "question": "Do I need ID or proof of income for the pantry?",
534
+ "answer": {
535
+ "type": "doc",
536
+ "content": [
537
+ {
538
+ "type": "paragraph",
539
+ "content": [
540
+ {
541
+ "type": "text",
542
+ "text": "No. Just give us your first name and zip code so we can plan how much food to order."
543
+ }
544
+ ]
545
+ }
546
+ ]
547
+ }
548
+ },
549
+ {
550
+ "question": "Is there a cost for Homework Harbor?",
551
+ "answer": {
552
+ "type": "doc",
553
+ "content": [
554
+ {
555
+ "type": "paragraph",
556
+ "content": [
557
+ {
558
+ "type": "text",
559
+ "text": "Never. Snacks, supplies and tutoring are free for every student who enrolls."
560
+ }
561
+ ]
562
+ }
563
+ ]
564
+ }
565
+ },
566
+ {
567
+ "question": "Can renters ask for repairs?",
568
+ "answer": {
569
+ "type": "doc",
570
+ "content": [
571
+ {
572
+ "type": "paragraph",
573
+ "content": [
574
+ {
575
+ "type": "text",
576
+ "text": "Safe at Home is for homeowners, but we'll connect renters with the tenants' union and city inspectors."
577
+ }
578
+ ]
579
+ }
580
+ ]
581
+ }
582
+ },
583
+ {
584
+ "question": "Do you offer help in other languages?",
585
+ "answer": {
586
+ "type": "doc",
587
+ "content": [
588
+ {
589
+ "type": "paragraph",
590
+ "content": [
591
+ {
592
+ "type": "text",
593
+ "text": "Volunteers speak Spanish, Nepali and Arabic on pantry days, and we can arrange interpreters for repair visits."
594
+ }
595
+ ]
596
+ }
597
+ ]
598
+ }
599
+ }
600
+ ],
601
+ "exclusive": false,
602
+ "openFirst": true,
603
+ "faqSchema": true
604
+ },
605
+ "column": 1,
606
+ "variant": "lines"
607
+ }
608
+ ]
609
+ }
610
+ ]
611
+ }