@blockslides/ai-context 0.1.3 → 0.1.5

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.
package/dist/index.d.cts CHANGED
@@ -75,20 +75,14 @@ declare const all: string;
75
75
  /**
76
76
  * Human- and AI-readable bundle of all v1 JSON Schemas.
77
77
  *
78
- * This is intended for:
79
- * - LLMs that want to see the exact JSON Schema contracts
80
- * - Tools that want a single text blob containing every schema
81
- *
82
- * Each schema is pretty-printed and prefixed with its key name.
78
+ * Wrapped in a top-level <Schemas>…</Schemas> tag, with each schema
79
+ * enclosed in its own <{name}Schema>…</{name}Schema> block.
83
80
  */
84
81
  declare const allSchemas: string;
85
82
 
86
83
  /**
87
- * All v1 context atoms concatenated into a single string.
88
- *
89
- * Intended for:
90
- * - LLMs that should know about every supported node type and layout primitive
91
- * - Power users who want a “maximal” context (structure + nodes + editing rules + sizing)
84
+ * All v1 context atoms concatenated into a single string,
85
+ * wrapped in a top-level <Context>…</Context> block.
92
86
  */
93
87
  declare const allContexts: string;
94
88
 
@@ -245,6 +239,39 @@ var properties$b = {
245
239
  "string",
246
240
  "null"
247
241
  ]
242
+ },
243
+ backgroundMode: {
244
+ "enum": [
245
+ "none",
246
+ "color",
247
+ "image",
248
+ "imageOverlay",
249
+ null
250
+ ]
251
+ },
252
+ backgroundColor: {
253
+ type: [
254
+ "string",
255
+ "null"
256
+ ]
257
+ },
258
+ backgroundImage: {
259
+ type: [
260
+ "string",
261
+ "null"
262
+ ]
263
+ },
264
+ backgroundOverlayColor: {
265
+ type: [
266
+ "string",
267
+ "null"
268
+ ]
269
+ },
270
+ backgroundOverlayOpacity: {
271
+ type: [
272
+ "number",
273
+ "null"
274
+ ]
248
275
  }
249
276
  },
250
277
  additionalProperties: true
@@ -307,6 +334,39 @@ var properties$a = {
307
334
  "none",
308
335
  null
309
336
  ]
337
+ },
338
+ backgroundMode: {
339
+ "enum": [
340
+ "none",
341
+ "color",
342
+ "image",
343
+ "imageOverlay",
344
+ null
345
+ ]
346
+ },
347
+ backgroundColor: {
348
+ type: [
349
+ "string",
350
+ "null"
351
+ ]
352
+ },
353
+ backgroundImage: {
354
+ type: [
355
+ "string",
356
+ "null"
357
+ ]
358
+ },
359
+ backgroundOverlayColor: {
360
+ type: [
361
+ "string",
362
+ "null"
363
+ ]
364
+ },
365
+ backgroundOverlayOpacity: {
366
+ type: [
367
+ "number",
368
+ "null"
369
+ ]
310
370
  }
311
371
  },
312
372
  additionalProperties: true
@@ -358,6 +418,39 @@ var properties$9 = {
358
418
  "linkedin-banner",
359
419
  null
360
420
  ]
421
+ },
422
+ backgroundMode: {
423
+ "enum": [
424
+ "none",
425
+ "color",
426
+ "image",
427
+ "imageOverlay",
428
+ null
429
+ ]
430
+ },
431
+ backgroundColor: {
432
+ type: [
433
+ "string",
434
+ "null"
435
+ ]
436
+ },
437
+ backgroundImage: {
438
+ type: [
439
+ "string",
440
+ "null"
441
+ ]
442
+ },
443
+ backgroundOverlayColor: {
444
+ type: [
445
+ "string",
446
+ "null"
447
+ ]
448
+ },
449
+ backgroundOverlayOpacity: {
450
+ type: [
451
+ "number",
452
+ "null"
453
+ ]
361
454
  }
362
455
  },
363
456
  additionalProperties: true
package/dist/index.d.ts CHANGED
@@ -75,20 +75,14 @@ declare const all: string;
75
75
  /**
76
76
  * Human- and AI-readable bundle of all v1 JSON Schemas.
77
77
  *
78
- * This is intended for:
79
- * - LLMs that want to see the exact JSON Schema contracts
80
- * - Tools that want a single text blob containing every schema
81
- *
82
- * Each schema is pretty-printed and prefixed with its key name.
78
+ * Wrapped in a top-level <Schemas>…</Schemas> tag, with each schema
79
+ * enclosed in its own <{name}Schema>…</{name}Schema> block.
83
80
  */
84
81
  declare const allSchemas: string;
85
82
 
86
83
  /**
87
- * All v1 context atoms concatenated into a single string.
88
- *
89
- * Intended for:
90
- * - LLMs that should know about every supported node type and layout primitive
91
- * - Power users who want a “maximal” context (structure + nodes + editing rules + sizing)
84
+ * All v1 context atoms concatenated into a single string,
85
+ * wrapped in a top-level <Context>…</Context> block.
92
86
  */
93
87
  declare const allContexts: string;
94
88
 
@@ -245,6 +239,39 @@ var properties$b = {
245
239
  "string",
246
240
  "null"
247
241
  ]
242
+ },
243
+ backgroundMode: {
244
+ "enum": [
245
+ "none",
246
+ "color",
247
+ "image",
248
+ "imageOverlay",
249
+ null
250
+ ]
251
+ },
252
+ backgroundColor: {
253
+ type: [
254
+ "string",
255
+ "null"
256
+ ]
257
+ },
258
+ backgroundImage: {
259
+ type: [
260
+ "string",
261
+ "null"
262
+ ]
263
+ },
264
+ backgroundOverlayColor: {
265
+ type: [
266
+ "string",
267
+ "null"
268
+ ]
269
+ },
270
+ backgroundOverlayOpacity: {
271
+ type: [
272
+ "number",
273
+ "null"
274
+ ]
248
275
  }
249
276
  },
250
277
  additionalProperties: true
@@ -307,6 +334,39 @@ var properties$a = {
307
334
  "none",
308
335
  null
309
336
  ]
337
+ },
338
+ backgroundMode: {
339
+ "enum": [
340
+ "none",
341
+ "color",
342
+ "image",
343
+ "imageOverlay",
344
+ null
345
+ ]
346
+ },
347
+ backgroundColor: {
348
+ type: [
349
+ "string",
350
+ "null"
351
+ ]
352
+ },
353
+ backgroundImage: {
354
+ type: [
355
+ "string",
356
+ "null"
357
+ ]
358
+ },
359
+ backgroundOverlayColor: {
360
+ type: [
361
+ "string",
362
+ "null"
363
+ ]
364
+ },
365
+ backgroundOverlayOpacity: {
366
+ type: [
367
+ "number",
368
+ "null"
369
+ ]
310
370
  }
311
371
  },
312
372
  additionalProperties: true
@@ -358,6 +418,39 @@ var properties$9 = {
358
418
  "linkedin-banner",
359
419
  null
360
420
  ]
421
+ },
422
+ backgroundMode: {
423
+ "enum": [
424
+ "none",
425
+ "color",
426
+ "image",
427
+ "imageOverlay",
428
+ null
429
+ ]
430
+ },
431
+ backgroundColor: {
432
+ type: [
433
+ "string",
434
+ "null"
435
+ ]
436
+ },
437
+ backgroundImage: {
438
+ type: [
439
+ "string",
440
+ "null"
441
+ ]
442
+ },
443
+ backgroundOverlayColor: {
444
+ type: [
445
+ "string",
446
+ "null"
447
+ ]
448
+ },
449
+ backgroundOverlayOpacity: {
450
+ type: [
451
+ "number",
452
+ "null"
453
+ ]
361
454
  }
362
455
  },
363
456
  additionalProperties: true
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ __export(v1_exports, {
29
29
 
30
30
  // src/contexts/v1/core.ts
31
31
  var core = `
32
+ <core>
32
33
  You are given a BlockSlides document to CREATE or EDIT.
33
34
 
34
35
  Document shape:
@@ -42,6 +43,7 @@ Rules:
42
43
  - Use only known node types and valid attrs. Do not invent attributes.
43
44
  - Prefer stable references: preserve slide.attrs.id if present.
44
45
  - Slides and flyers share the same JSON; flyers are slides sized via attrs and theme.
46
+ </core>
45
47
  `.trim();
46
48
 
47
49
  // src/contexts/v1/output.fullDocument.ts
@@ -54,6 +56,7 @@ Output contract:
54
56
 
55
57
  // src/contexts/v1/imageBlock.ts
56
58
  var imageBlock = `
59
+ <imageBlock>
57
60
  Node: imageBlock
58
61
  Attrs:
59
62
  - src (required): string (URL)
@@ -77,14 +80,21 @@ Behavior:
77
80
  - focus: Cover + radial spotlight at focalX/focalY.
78
81
  - pattern: Hide <img>; use tiled background (from src).
79
82
  - Do not set unknown attributes. Preserve existing valid attrs.
83
+ </imageBlock>
80
84
  `.trim();
81
85
 
82
86
  // src/contexts/v1/row.ts
83
87
  var row = `
88
+ <row>
84
89
  Node: row
85
90
  Attrs:
86
91
  - layout (optional): "", "1", "1-1", "2-1", "1-2", "1-1-1", "2-1-1", "1-2-1", "1-1-2", "1-1-1-1"
87
92
  - className (optional): string (CSS classes)
93
+ - backgroundMode (optional): "none" | "color" | "image" | "imageOverlay"
94
+ - backgroundColor (optional): string (CSS color for row background)
95
+ - backgroundImage (optional): string (URL for row-level background image)
96
+ - backgroundOverlayColor (optional): string (overlay color when using imageOverlay)
97
+ - backgroundOverlayOpacity (optional): number (0\u20131, overlay opacity)
88
98
 
89
99
  Semantics:
90
100
  - Fractions determine relative column flex:
@@ -94,10 +104,13 @@ Semantics:
94
104
  - 1-1-1: three equal columns
95
105
  - 1-1-1-1: four equal columns
96
106
  - Empty layout ("", "1") acts as a single full-width column.
107
+ - Use row backgrounds for horizontal bands (e.g., header strip) instead of attaching everything to the slide.
108
+ </row>
97
109
  `.trim();
98
110
 
99
111
  // src/contexts/v1/column.ts
100
112
  var column = `
113
+ <column>
101
114
  Node: column
102
115
  Attrs:
103
116
  - className (optional): string
@@ -105,19 +118,31 @@ Attrs:
105
118
  - verticalAlign (optional): "top" | "center" | "bottom" (default "top")
106
119
  - horizontalAlign (optional): "left" | "center" | "right" | "stretch" (default "left")
107
120
  - padding (optional): "none" (future-friendly)
121
+ - backgroundMode (optional): "none" | "color" | "image" | "imageOverlay"
122
+ - backgroundColor (optional): string (CSS color for the column background)
123
+ - backgroundImage (optional): string (URL for column-level background image)
124
+ - backgroundOverlayColor (optional): string (overlay color when using imageOverlay)
125
+ - backgroundOverlayOpacity (optional): number (0\u20131, overlay opacity)
108
126
 
109
127
  Notes:
110
128
  - Use className for spacing, colors, typography (e.g., Tailwind).
111
129
  - Keep nesting shallow; columns can contain rows or blocks as needed.
130
+ </column>
112
131
  `.trim();
113
132
 
114
133
  // src/contexts/v1/slide.ts
115
134
  var slide = `
135
+ <slide>
116
136
  Node: slide
117
137
  Attrs:
118
138
  - id (optional): string (stable identifier; preserve if present)
119
139
  - className (optional): string (styling)
120
140
  - size (optional): "16x9" | "4x3" | "a4-portrait" | "a4-landscape" | "letter-portrait" | "letter-landscape" | "linkedin-banner"
141
+ - backgroundMode (optional): "none" | "color" | "image" | "imageOverlay"
142
+ - backgroundColor (optional): string (CSS color for solid backgrounds)
143
+ - backgroundImage (optional): string (URL for slide-level background image)
144
+ - backgroundOverlayColor (optional): string (color for the overlay when using imageOverlay)
145
+ - backgroundOverlayOpacity (optional): number (0\u20131, opacity for the overlay)
121
146
 
122
147
  Content:
123
148
  - slide contains one or more rows.
@@ -125,35 +150,84 @@ Content:
125
150
  Notes:
126
151
  - Flyers are slides sized for paper (e.g., size: "a4-portrait").
127
152
  - Set size to control canvas dimensions; theme applies the exact width/height.
153
+ - For background images, prefer backgroundMode/backgroundImage over Tailwind bg-[url(...)]; the extension will inject the correct CSS.
154
+ </slide>
128
155
  `.trim();
129
156
 
130
157
  // src/contexts/v1/style.ts
131
158
  var style = `
159
+ <style>
132
160
  Styling
133
161
  - Prefer using attrs.className for styling (e.g., Tailwind classes).
134
162
  - Use enums for canonical behaviors (e.g., imageBlock.layout).
135
163
  - When enums are insufficient (spacing, backgrounds), use className.
164
+ </style>
136
165
  `.trim();
137
166
 
138
167
  // src/contexts/v1/editingRules.ts
139
168
  var editingRules = `
140
- Editing rules
169
+ <General editing rules>
141
170
  - Preserve existing ids and valid attributes. Do not remove or rename known attrs.
142
171
  - Use only allowed enum values. Do not invent new enum values.
143
- - Avoid introducing new attrs. If styling is needed, prefer className.
172
+ - Avoid introducing new attributes that are not documented. If styling is needed, prefer className.
144
173
  - Keep the document valid: slide > row > column > blocks.
174
+ </General editing rules>
175
+
176
+ <Centering content in a column>
177
+ - Columns are flex containers. Use their alignment attrs instead of per-block hacks.
178
+ - To center all content vertically and horizontally inside a column:
179
+ - Set column.attrs.verticalAlign = "center".
180
+ - Set column.attrs.horizontalAlign = "center".
181
+ - This will apply to headings, paragraphs, imageBlocks, and other blocks inside that column.
182
+ - Example:
183
+ - Before: column.attrs = { verticalAlign: "top", horizontalAlign: "left", padding: "none" }
184
+ - After: column.attrs = { verticalAlign: "center", horizontalAlign: "center", padding: "none" }
185
+ </Centering content in a column>
186
+
187
+ <Backgrounds (slides, rows, columns)>
188
+ - Prefer structured background attrs over raw Tailwind bg-[url(...)] when setting background images.
189
+ - For slide-level backgrounds (hero/flyer):
190
+ - Use slide.attrs.backgroundMode = "color" | "image" | "imageOverlay".
191
+ - For images, set slide.attrs.backgroundImage to the image URL.
192
+ - For overlays, set slide.attrs.backgroundOverlayColor (e.g., "rgba(0,0,0,0.8)") and slide.attrs.backgroundOverlayOpacity (0\u20131).
193
+ - For horizontal bands, use row-level backgrounds (row.attrs.background*).
194
+ - For panel-style sections, use column-level backgrounds (column.attrs.background*).
195
+ - Do not mix multiple background images on the same node; prefer one backgroundMode per slide/row/column and layer additional visuals as imageBlock nodes.
196
+ </Backgrounds (slides, rows, columns)>
197
+
198
+ <Text editing (headings and paragraphs)>
199
+ - Preserve semantic types: do not turn headings into paragraphs or vice versa unless explicitly asked.
200
+ - To change heading level, update heading.attrs.level (1\u20136) without changing its id.
201
+ - To change the text, edit the text nodes inside content, keeping marks and structure when possible.
202
+ - For alignment of text itself, prefer using the textAlign extension (textAlign: "left" | "center" | "right" | "justify") if configured.
203
+ - Do not introduce inline HTML; represent formatting via marks (bold, italic, underline, etc.).
204
+ </Text editing (headings and paragraphs)>
205
+
206
+ <Image blocks>
207
+ - Use imageBlock for rich images; preserve src, assetId, and metadata unless the user explicitly asks to change them.
208
+ - To change the alignment of an imageBlock within its column, set imageBlock.attrs.align to "left", "center", "right", or "stretch".
209
+ - To change how the image is fit, adjust imageBlock.attrs.layout (for example: "cover", "contain", "fill", "focus", or a configured layout key).
210
+ - When centering both text and image in a column, combine:
211
+ - column verticalAlign/horizontalAlign for layout, and
212
+ - imageBlock align for how the image itself sits in the column.
213
+ - Do not invent new layout or align values that are not documented in the schema.
214
+ </Image blocks>
215
+
145
216
  `.trim();
146
217
 
147
218
  // src/contexts/v1/sizing.ts
148
219
  var sizing = `
220
+ <sizing>
149
221
  Sizing
150
222
  - Slides and flyers share the same JSON. Flyers are slides sized via slide.attrs.size and theme rules.
151
223
  - Allowed sizes: "16x9" | "4x3" | "a4-portrait" | "a4-landscape" | "letter-portrait" | "letter-landscape" | "linkedin-banner".
152
224
  - Editors may render with fixed canvases or dynamic mode. The default is fixed; dynamic stretches to container with preserved aspect.
225
+ </sizing>
153
226
  `.trim();
154
227
 
155
228
  // src/contexts/v1/blockquote.ts
156
229
  var blockquote = `
230
+ <blockquote>
157
231
  Node: blockquote
158
232
  Attrs:
159
233
  - HTML-only; no required JSON attrs beyond optional styling such as className.
@@ -164,10 +238,12 @@ Content:
164
238
  Semantics:
165
239
  - Use for quoted text or callouts inside a column or row.
166
240
  - Styling should be applied via className on the surrounding column/slide, not by inventing new attrs here.
241
+ </blockquote>
167
242
  `.trim();
168
243
 
169
244
  // src/contexts/v1/bulletList.ts
170
245
  var bulletList = `
246
+ <bulletList>
171
247
  Node: bulletList
172
248
  Attrs:
173
249
  - HTML-only; no required JSON attrs beyond optional styling such as className.
@@ -179,10 +255,12 @@ Semantics:
179
255
  - Represents an unordered list rendered as <ul>.
180
256
  - Use when you need bullet points inside a column or blockquote.
181
257
  - Do not use bulletList as a top-level child of doc; it belongs inside a column/row structure.
258
+ </bulletList>
182
259
  `.trim();
183
260
 
184
261
  // src/contexts/v1/codeBlock.ts
185
262
  var codeBlock = `
263
+ <codeBlock>
186
264
  Node: codeBlock
187
265
  Attrs:
188
266
  - language (optional): string | null (e.g., "js", "ts", "python").
@@ -194,10 +272,12 @@ Semantics:
194
272
  - Renders as <pre><code>\u2026</code></pre>.
195
273
  - language controls a CSS class (e.g., "language-js") for syntax highlighting.
196
274
  - Use when the user explicitly wants a fenced code block, not inline code in a paragraph.
275
+ </codeBlock>
197
276
  `.trim();
198
277
 
199
278
  // src/contexts/v1/hardBreak.ts
200
279
  var hardBreak = `
280
+ <hardBreak>
201
281
  Node: hardBreak
202
282
  Attrs:
203
283
  - None (HTML-only); behaves like a manual line break.
@@ -208,10 +288,12 @@ Content:
208
288
  Semantics:
209
289
  - Renders as <br> and as a newline in plain text exports.
210
290
  - Use when the user requests a line break without starting a new paragraph.
291
+ </hardBreak>
211
292
  `.trim();
212
293
 
213
294
  // src/contexts/v1/horizontalRule.ts
214
295
  var horizontalRule = `
296
+ <horizontalRule>
215
297
  Node: horizontalRule
216
298
  Attrs:
217
299
  - HTML-only; no JSON attrs beyond optional styling via surrounding layout.
@@ -222,10 +304,12 @@ Content:
222
304
  Semantics:
223
305
  - Renders as <hr>.
224
306
  - Use to visually separate sections within a slide (for example, between rows of text).
307
+ </horizontalRule>
225
308
  `.trim();
226
309
 
227
310
  // src/contexts/v1/image.ts
228
311
  var image = `
312
+ <image>
229
313
  Node: image
230
314
  Attrs:
231
315
  - src (required): string (URL to the image).
@@ -239,10 +323,12 @@ Content:
239
323
  Semantics:
240
324
  - Renders as a simple <img>, unlike imageBlock which adds rich framing/caption UI.
241
325
  - Prefer imageBlock for designed layouts; use image for simple inline images in paragraphs.
326
+ </image>
242
327
  `.trim();
243
328
 
244
329
  // src/contexts/v1/heading.ts
245
330
  var heading = `
331
+ <heading>
246
332
  Node: heading
247
333
  Attrs:
248
334
  - level (required): 1 | 2 | 3 | 4 | 5 | 6.
@@ -254,10 +340,12 @@ Semantics:
254
340
  - Renders as <h1>\u2026<h6> depending on level.
255
341
  - Use level 1\u20132 for main slide titles, 3\u20134 for section headings, 5\u20136 for subtle labels.
256
342
  - Do not invent other attrs; typography/styling should come from className on columns/slides.
343
+ </heading>
257
344
  `.trim();
258
345
 
259
346
  // src/contexts/v1/paragraph.ts
260
347
  var paragraph = `
348
+ <paragraph>
261
349
  Node: paragraph
262
350
  Attrs:
263
351
  - HTML-only; no structured JSON attrs beyond optional styling such as className.
@@ -268,10 +356,12 @@ Content:
268
356
  Semantics:
269
357
  - Default text block inside columns and rows.
270
358
  - Multiple paragraphs can be stacked within the same column to create vertical rhythm.
359
+ </paragraph>
271
360
  `.trim();
272
361
 
273
362
  // src/contexts/v1/youtube.ts
274
363
  var youtube = `
364
+ <youtube>
275
365
  Node: youtube
276
366
  Attrs:
277
367
  - src (required): string (public YouTube URL).
@@ -286,6 +376,7 @@ Semantics:
286
376
  - Renders as an embedded YouTube iframe wrapped in a container <div>.
287
377
  - Use for video embeds inside a column or row; keep other text in separate paragraphs/columns.
288
378
  - Do not embed raw <iframe> HTML directly; always use the youtube node with attrs.
379
+ </youtube>
289
380
  `.trim();
290
381
 
291
382
  // src/examples/v1/index.ts
@@ -456,7 +547,14 @@ var row_schema_default = {
456
547
  layout: {
457
548
  enum: ["", "1", "1-1", "2-1", "1-2", "1-1-1", "2-1-1", "1-2-1", "1-1-2", "1-1-1-1", null]
458
549
  },
459
- className: { type: ["string", "null"] }
550
+ className: { type: ["string", "null"] },
551
+ backgroundMode: {
552
+ enum: ["none", "color", "image", "imageOverlay", null]
553
+ },
554
+ backgroundColor: { type: ["string", "null"] },
555
+ backgroundImage: { type: ["string", "null"] },
556
+ backgroundOverlayColor: { type: ["string", "null"] },
557
+ backgroundOverlayOpacity: { type: ["number", "null"] }
460
558
  },
461
559
  additionalProperties: true
462
560
  }
@@ -479,7 +577,14 @@ var column_schema_default = {
479
577
  contentMode: { enum: ["default", null] },
480
578
  verticalAlign: { enum: ["top", "center", "bottom", null] },
481
579
  horizontalAlign: { enum: ["left", "center", "right", "stretch", null] },
482
- padding: { enum: ["none", null] }
580
+ padding: { enum: ["none", null] },
581
+ backgroundMode: {
582
+ enum: ["none", "color", "image", "imageOverlay", null]
583
+ },
584
+ backgroundColor: { type: ["string", "null"] },
585
+ backgroundImage: { type: ["string", "null"] },
586
+ backgroundOverlayColor: { type: ["string", "null"] },
587
+ backgroundOverlayOpacity: { type: ["number", "null"] }
483
588
  },
484
589
  additionalProperties: true
485
590
  }
@@ -511,7 +616,14 @@ var slide_schema_default = {
511
616
  "linkedin-banner",
512
617
  null
513
618
  ]
514
- }
619
+ },
620
+ backgroundMode: {
621
+ enum: ["none", "color", "image", "imageOverlay", null]
622
+ },
623
+ backgroundColor: { type: ["string", "null"] },
624
+ backgroundImage: { type: ["string", "null"] },
625
+ backgroundOverlayColor: { type: ["string", "null"] },
626
+ backgroundOverlayOpacity: { type: ["number", "null"] }
515
627
  },
516
628
  additionalProperties: true
517
629
  }
@@ -688,13 +800,20 @@ var youtube_schema_default = {
688
800
  };
689
801
 
690
802
  // src/bundles/v1/allSchemas.ts
691
- var allSchemas = Object.entries(v1_exports3).map(
692
- ([name, schema]) => `Schema "${name}":
693
- ` + JSON.stringify(schema, null, 2)
694
- ).join("\n\n");
803
+ var allSchemas = `
804
+ <Schemas>
805
+ ${Object.entries(v1_exports3).map(
806
+ ([name, schema]) => `<${name}Schema>
807
+ ` + JSON.stringify(schema, null, 2) + `
808
+ </${name}Schema>`
809
+ ).join("\n\n")}
810
+ </Schemas>
811
+ `.trim();
695
812
 
696
813
  // src/bundles/v1/allContexts.ts
697
- var allContexts = [
814
+ var allContexts = `
815
+ <Context>
816
+ ${[
698
817
  core,
699
818
  fullDocument,
700
819
  slide,
@@ -713,7 +832,9 @@ var allContexts = [
713
832
  horizontalRule,
714
833
  youtube,
715
834
  editingRules
716
- ].join("\n\n");
835
+ ].join("\n\n")}
836
+ </Context>
837
+ `.trim();
717
838
 
718
839
  // src/recipes/v1/index.ts
719
840
  var v1_exports5 = {};