@json-to-office/jto 2.3.1 → 3.0.0
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/cli.js +123 -39
- package/dist/cli.js.map +1 -1
- package/dist/client/assets/HomePage-BlzZ7qG4.js +245 -0
- package/dist/client/assets/HomePage-BlzZ7qG4.js.map +1 -0
- package/dist/client/assets/{JsonEditorPage-DR9E7ul1.js → JsonEditorPage-kWuP_kL3.js} +3 -3
- package/dist/client/assets/{JsonEditorPage-DR9E7ul1.js.map → JsonEditorPage-kWuP_kL3.js.map} +1 -1
- package/dist/client/assets/{MonacoPluginProvider-CdHBp1cD.js → MonacoPluginProvider-Dbv1PrO2.js} +6 -6
- package/dist/client/assets/{MonacoPluginProvider-CdHBp1cD.js.map → MonacoPluginProvider-Dbv1PrO2.js.map} +1 -1
- package/dist/client/assets/{_virtual_jto-plugin-type-libs-BlMraosv.js → _virtual_jto-plugin-type-libs-B6KyD9RL.js} +7912 -3250
- package/dist/client/assets/{_virtual_jto-plugin-type-libs-BlMraosv.js.map → _virtual_jto-plugin-type-libs-B6KyD9RL.js.map} +1 -1
- package/dist/client/assets/_virtual_jto-sandbox-runtime-Bzo2M5U7.js +2 -0
- package/dist/client/assets/_virtual_jto-sandbox-runtime-Bzo2M5U7.js.map +1 -0
- package/dist/client/assets/editor-CwEocOY2.js +16 -0
- package/dist/client/assets/editor-CwEocOY2.js.map +1 -0
- package/dist/client/assets/editor-monaco-json-D_oiidNg.js +24 -0
- package/dist/client/assets/editor-monaco-json-D_oiidNg.js.map +1 -0
- package/dist/client/assets/index--kF4jVbp.css +1 -0
- package/dist/client/assets/index-DFJaEoi0.js +27 -0
- package/dist/client/assets/index-DFJaEoi0.js.map +1 -0
- package/dist/client/assets/index-UheDso2P.js +2 -0
- package/dist/client/assets/index-UheDso2P.js.map +1 -0
- package/dist/client/assets/preview-CWdUATNl.js +4 -0
- package/dist/client/assets/preview-CWdUATNl.js.map +1 -0
- package/dist/client/assets/useQualityAnalysis-Cl4QPeOT.js +6 -0
- package/dist/client/assets/useQualityAnalysis-Cl4QPeOT.js.map +1 -0
- package/dist/client/index.html +2 -2
- package/dist/client/templates/client-report-blocks.docx.json +791 -0
- package/dist/client/templates/consulting-deck-blocks.pptx.json +455 -0
- package/dist/client/templates/data-report-presentation.pptx.json +108 -36
- package/dist/client/templates/management-plan.pptx.json +100 -22
- package/dist/client/templates/minimalist-pitch-deck.pptx.json +172 -101
- package/dist/prompts/instructions-edit-document-pptx-blocks.md +77 -0
- package/dist/prompts/instructions-edit-document-pptx-slides.md +15 -21
- package/dist/prompts/instructions-edit-document-pptx.md +34 -53
- package/dist/prompts/instructions-edit-pptx.md +9 -8
- package/dist/prompts/instructions-generate-pptx.md +13 -17
- package/dist/prompts/pptx-core.md +104 -127
- package/dist/prompts/pptx-design.md +115 -109
- package/package.json +10 -9
- package/dist/client/assets/HomePage-Cq_CI7_t.js +0 -251
- package/dist/client/assets/HomePage-Cq_CI7_t.js.map +0 -1
- package/dist/client/assets/_virtual_jto-sandbox-runtime-XWrhySEO.js +0 -2
- package/dist/client/assets/_virtual_jto-sandbox-runtime-XWrhySEO.js.map +0 -1
- package/dist/client/assets/editor-D-LgWzQZ.js +0 -16
- package/dist/client/assets/editor-D-LgWzQZ.js.map +0 -1
- package/dist/client/assets/editor-monaco-json-BVkSRpj1.js +0 -24
- package/dist/client/assets/editor-monaco-json-BVkSRpj1.js.map +0 -1
- package/dist/client/assets/editor-refs-store-COFjkOeo.js +0 -2
- package/dist/client/assets/editor-refs-store-COFjkOeo.js.map +0 -1
- package/dist/client/assets/index-B9j3hDSy.js +0 -5
- package/dist/client/assets/index-B9j3hDSy.js.map +0 -1
- package/dist/client/assets/index-Bj6ZAKUc.css +0 -1
- package/dist/client/assets/preview-D0HsunpU.js +0 -4
- package/dist/client/assets/preview-D0HsunpU.js.map +0 -1
- package/dist/client/assets/useQualityAnalysis-PZsxJDvP.js +0 -6
- package/dist/client/assets/useQualityAnalysis-PZsxJDvP.js.map +0 -1
- package/dist/prompts/instructions-edit-document-pptx-templates.md +0 -63
|
@@ -58,104 +58,120 @@
|
|
|
58
58
|
"color": "text"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
"
|
|
62
|
-
{
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
61
|
+
"blocks": {
|
|
62
|
+
"veil-bottom-right": {
|
|
63
|
+
"description": "Slide chrome shared by the veil-bottom-right slides of this deck.",
|
|
64
|
+
"slots": {},
|
|
65
|
+
"slide": {
|
|
66
|
+
"background": {
|
|
67
|
+
"gradient": {
|
|
68
|
+
"type": "radial",
|
|
69
|
+
"focus": "bottomRight",
|
|
70
|
+
"stops": [
|
|
71
|
+
{
|
|
72
|
+
"color": "primary",
|
|
73
|
+
"pos": 0
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"color": "primary",
|
|
77
|
+
"pos": 79
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"color": "secondary",
|
|
81
|
+
"pos": 100
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
82
85
|
}
|
|
83
|
-
}
|
|
86
|
+
},
|
|
87
|
+
"body": []
|
|
84
88
|
},
|
|
85
|
-
{
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
89
|
+
"veil-top-left": {
|
|
90
|
+
"description": "Slide chrome shared by the veil-top-left slides of this deck.",
|
|
91
|
+
"slots": {},
|
|
92
|
+
"slide": {
|
|
93
|
+
"background": {
|
|
94
|
+
"gradient": {
|
|
95
|
+
"type": "radial",
|
|
96
|
+
"focus": "topLeft",
|
|
97
|
+
"stops": [
|
|
98
|
+
{
|
|
99
|
+
"color": "primary",
|
|
100
|
+
"pos": 0
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"color": "primary",
|
|
104
|
+
"pos": 79
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"color": "secondary",
|
|
108
|
+
"pos": 100
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}
|
|
105
112
|
}
|
|
106
|
-
}
|
|
113
|
+
},
|
|
114
|
+
"body": []
|
|
107
115
|
},
|
|
108
|
-
{
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
116
|
+
"dawn-diagonal": {
|
|
117
|
+
"description": "Slide chrome shared by the dawn-diagonal slides of this deck.",
|
|
118
|
+
"slots": {},
|
|
119
|
+
"slide": {
|
|
120
|
+
"background": {
|
|
121
|
+
"gradient": {
|
|
122
|
+
"type": "linear",
|
|
123
|
+
"angle": 110,
|
|
124
|
+
"stops": [
|
|
125
|
+
{
|
|
126
|
+
"color": "primary",
|
|
127
|
+
"pos": 0
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"color": "secondary",
|
|
131
|
+
"pos": 23
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"color": "background2",
|
|
135
|
+
"pos": 73
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"color": "background2",
|
|
139
|
+
"pos": 100
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
132
143
|
}
|
|
133
|
-
}
|
|
144
|
+
},
|
|
145
|
+
"body": []
|
|
134
146
|
},
|
|
135
|
-
{
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
"
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
147
|
+
"haze-bottom-left": {
|
|
148
|
+
"description": "Slide chrome shared by the haze-bottom-left slides of this deck.",
|
|
149
|
+
"slots": {},
|
|
150
|
+
"slide": {
|
|
151
|
+
"background": {
|
|
152
|
+
"gradient": {
|
|
153
|
+
"type": "radial",
|
|
154
|
+
"focus": "bottomLeft",
|
|
155
|
+
"stops": [
|
|
156
|
+
{
|
|
157
|
+
"color": "secondary",
|
|
158
|
+
"pos": 0
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"color": "background2",
|
|
162
|
+
"pos": 38
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"color": "background2",
|
|
166
|
+
"pos": 100
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}
|
|
155
170
|
}
|
|
156
|
-
}
|
|
171
|
+
},
|
|
172
|
+
"body": []
|
|
157
173
|
}
|
|
158
|
-
|
|
174
|
+
}
|
|
159
175
|
},
|
|
160
176
|
"children": [
|
|
161
177
|
{
|
|
@@ -405,10 +421,15 @@
|
|
|
405
421
|
{
|
|
406
422
|
"name": "slide",
|
|
407
423
|
"props": {
|
|
408
|
-
"template": "veil-bottom-right",
|
|
409
424
|
"notes": "Welcome slide with stat and image."
|
|
410
425
|
},
|
|
411
426
|
"children": [
|
|
427
|
+
{
|
|
428
|
+
"name": "block",
|
|
429
|
+
"props": {
|
|
430
|
+
"ref": "veil-bottom-right"
|
|
431
|
+
}
|
|
432
|
+
},
|
|
412
433
|
{
|
|
413
434
|
"name": "text",
|
|
414
435
|
"props": {
|
|
@@ -545,10 +566,15 @@
|
|
|
545
566
|
{
|
|
546
567
|
"name": "slide",
|
|
547
568
|
"props": {
|
|
548
|
-
"template": "veil-top-left",
|
|
549
569
|
"notes": "Vision statement with stat and two square images."
|
|
550
570
|
},
|
|
551
571
|
"children": [
|
|
572
|
+
{
|
|
573
|
+
"name": "block",
|
|
574
|
+
"props": {
|
|
575
|
+
"ref": "veil-top-left"
|
|
576
|
+
}
|
|
577
|
+
},
|
|
552
578
|
{
|
|
553
579
|
"name": "text",
|
|
554
580
|
"props": {
|
|
@@ -717,10 +743,15 @@
|
|
|
717
743
|
{
|
|
718
744
|
"name": "slide",
|
|
719
745
|
"props": {
|
|
720
|
-
"template": "dawn-diagonal",
|
|
721
746
|
"notes": "Problem and solution overview."
|
|
722
747
|
},
|
|
723
748
|
"children": [
|
|
749
|
+
{
|
|
750
|
+
"name": "block",
|
|
751
|
+
"props": {
|
|
752
|
+
"ref": "dawn-diagonal"
|
|
753
|
+
}
|
|
754
|
+
},
|
|
724
755
|
{
|
|
725
756
|
"name": "text",
|
|
726
757
|
"props": {
|
|
@@ -1746,10 +1777,15 @@
|
|
|
1746
1777
|
{
|
|
1747
1778
|
"name": "slide",
|
|
1748
1779
|
"props": {
|
|
1749
|
-
"template": "veil-bottom-right",
|
|
1750
1780
|
"notes": "Product overview with right image band."
|
|
1751
1781
|
},
|
|
1752
1782
|
"children": [
|
|
1783
|
+
{
|
|
1784
|
+
"name": "block",
|
|
1785
|
+
"props": {
|
|
1786
|
+
"ref": "veil-bottom-right"
|
|
1787
|
+
}
|
|
1788
|
+
},
|
|
1753
1789
|
{
|
|
1754
1790
|
"name": "image",
|
|
1755
1791
|
"props": {
|
|
@@ -1879,10 +1915,15 @@
|
|
|
1879
1915
|
{
|
|
1880
1916
|
"name": "slide",
|
|
1881
1917
|
"props": {
|
|
1882
|
-
"template": "veil-top-left",
|
|
1883
1918
|
"notes": "Three product feature images."
|
|
1884
1919
|
},
|
|
1885
1920
|
"children": [
|
|
1921
|
+
{
|
|
1922
|
+
"name": "block",
|
|
1923
|
+
"props": {
|
|
1924
|
+
"ref": "veil-top-left"
|
|
1925
|
+
}
|
|
1926
|
+
},
|
|
1886
1927
|
{
|
|
1887
1928
|
"name": "image",
|
|
1888
1929
|
"props": {
|
|
@@ -2031,10 +2072,15 @@
|
|
|
2031
2072
|
"meta": {
|
|
2032
2073
|
"title": "Case timeline"
|
|
2033
2074
|
},
|
|
2034
|
-
"template": "dawn-diagonal",
|
|
2035
2075
|
"notes": "Arc timeline with four cases."
|
|
2036
2076
|
},
|
|
2037
2077
|
"children": [
|
|
2078
|
+
{
|
|
2079
|
+
"name": "block",
|
|
2080
|
+
"props": {
|
|
2081
|
+
"ref": "dawn-diagonal"
|
|
2082
|
+
}
|
|
2083
|
+
},
|
|
2038
2084
|
{
|
|
2039
2085
|
"name": "text",
|
|
2040
2086
|
"props": {
|
|
@@ -2383,10 +2429,15 @@
|
|
|
2383
2429
|
"meta": {
|
|
2384
2430
|
"title": "Market overview"
|
|
2385
2431
|
},
|
|
2386
|
-
"template": "haze-bottom-left",
|
|
2387
2432
|
"notes": "Market overview pies."
|
|
2388
2433
|
},
|
|
2389
2434
|
"children": [
|
|
2435
|
+
{
|
|
2436
|
+
"name": "block",
|
|
2437
|
+
"props": {
|
|
2438
|
+
"ref": "haze-bottom-left"
|
|
2439
|
+
}
|
|
2440
|
+
},
|
|
2390
2441
|
{
|
|
2391
2442
|
"name": "text",
|
|
2392
2443
|
"props": {
|
|
@@ -2835,10 +2886,15 @@
|
|
|
2835
2886
|
"meta": {
|
|
2836
2887
|
"title": "Competitive landscape"
|
|
2837
2888
|
},
|
|
2838
|
-
"template": "veil-bottom-right",
|
|
2839
2889
|
"notes": "Competitive landscape stats and images."
|
|
2840
2890
|
},
|
|
2841
2891
|
"children": [
|
|
2892
|
+
{
|
|
2893
|
+
"name": "block",
|
|
2894
|
+
"props": {
|
|
2895
|
+
"ref": "veil-bottom-right"
|
|
2896
|
+
}
|
|
2897
|
+
},
|
|
2842
2898
|
{
|
|
2843
2899
|
"name": "image",
|
|
2844
2900
|
"props": {
|
|
@@ -3021,10 +3077,15 @@
|
|
|
3021
3077
|
"meta": {
|
|
3022
3078
|
"title": "Laptop mockup"
|
|
3023
3079
|
},
|
|
3024
|
-
"template": "veil-top-left",
|
|
3025
3080
|
"notes": "Laptop mockup slide."
|
|
3026
3081
|
},
|
|
3027
3082
|
"children": [
|
|
3083
|
+
{
|
|
3084
|
+
"name": "block",
|
|
3085
|
+
"props": {
|
|
3086
|
+
"ref": "veil-top-left"
|
|
3087
|
+
}
|
|
3088
|
+
},
|
|
3028
3089
|
{
|
|
3029
3090
|
"name": "shape",
|
|
3030
3091
|
"props": {
|
|
@@ -3263,10 +3324,15 @@
|
|
|
3263
3324
|
"meta": {
|
|
3264
3325
|
"title": "Values"
|
|
3265
3326
|
},
|
|
3266
|
-
"template": "dawn-diagonal",
|
|
3267
3327
|
"notes": "Values list and percent column."
|
|
3268
3328
|
},
|
|
3269
3329
|
"children": [
|
|
3330
|
+
{
|
|
3331
|
+
"name": "block",
|
|
3332
|
+
"props": {
|
|
3333
|
+
"ref": "dawn-diagonal"
|
|
3334
|
+
}
|
|
3335
|
+
},
|
|
3270
3336
|
{
|
|
3271
3337
|
"name": "image",
|
|
3272
3338
|
"props": {
|
|
@@ -3427,10 +3493,15 @@
|
|
|
3427
3493
|
"meta": {
|
|
3428
3494
|
"title": "Revenue KPIs"
|
|
3429
3495
|
},
|
|
3430
|
-
"template": "haze-bottom-left",
|
|
3431
3496
|
"notes": "Revenue KPIs."
|
|
3432
3497
|
},
|
|
3433
3498
|
"children": [
|
|
3499
|
+
{
|
|
3500
|
+
"name": "block",
|
|
3501
|
+
"props": {
|
|
3502
|
+
"ref": "haze-bottom-left"
|
|
3503
|
+
}
|
|
3504
|
+
},
|
|
3434
3505
|
{
|
|
3435
3506
|
"name": "text",
|
|
3436
3507
|
"props": {
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
## Presentation: {{documentName}}
|
|
2
|
+
|
|
3
|
+
### Current block definitions
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{{blocksText}}
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
### Slides invoking them (reference only — do not output these)
|
|
10
|
+
|
|
11
|
+
{{slidesSummary}}
|
|
12
|
+
|
|
13
|
+
You are EDITING the block definitions of this presentation. Output **only new or modified** definitions:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"blocks": { "<name>": { ...complete definition... } }
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Unchanged definitions are automatically preserved — do NOT echo them back.
|
|
22
|
+
|
|
23
|
+
### Rules for block-scoped editing
|
|
24
|
+
|
|
25
|
+
- Output ONLY definitions you are adding or modifying. Omit unchanged definitions entirely.
|
|
26
|
+
- Do NOT include `"name"`, `"children"` or other top-level keys — only `"blocks"`.
|
|
27
|
+
- When modifying a definition, output the **complete** definition (all its slots, its whole body, its `slide` effects) — not just the changed fields.
|
|
28
|
+
- Keep definition names stable — slides reference them by name. Keep every slot the slides above fill, with the same name and type; renaming or removing one breaks those slides.
|
|
29
|
+
- To DELETE a definition, output `"<name>": null`.
|
|
30
|
+
- New names are lowercase-kebab (`kpi-row`, `two-column`). Each definition needs `slots` and `body`; add `description` and, when the slide should inherit a background or notes, `slide`.
|
|
31
|
+
- Author geometry as percentage frames of the slide, bind sizes to type roles with a `default`, wrap optional slots in `$if`, give titles a `fit`, and put page numbers and trackers in the body.
|
|
32
|
+
- **Component format:** every item in a `body` MUST be `{ "name": "<type>", "props": { ... } }` or a binding directive. Never `{ "type": "...", ... }` with flat props.
|
|
33
|
+
|
|
34
|
+
### Example
|
|
35
|
+
|
|
36
|
+
**User request:** "Add a source line to the statement block"
|
|
37
|
+
|
|
38
|
+
**Correct output (only the modified definition, complete):**
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"blocks": {
|
|
43
|
+
"statement": {
|
|
44
|
+
"description": "One sentence on an otherwise empty slide, with an optional source.",
|
|
45
|
+
"slots": {
|
|
46
|
+
"text": { "type": "string", "required": true, "maxWords": 30, "role": "actionTitle" },
|
|
47
|
+
"source": { "type": "string", "maxWords": 20, "role": "source" }
|
|
48
|
+
},
|
|
49
|
+
"body": [
|
|
50
|
+
{
|
|
51
|
+
"name": "text",
|
|
52
|
+
"props": {
|
|
53
|
+
"text": { "$slot": "/text" },
|
|
54
|
+
"style": "display",
|
|
55
|
+
"fontSize": { "$theme": "/styles/display/fontSize", "default": 28 },
|
|
56
|
+
"x": "3.75%", "y": "30%", "w": "92.5%", "h": "30%",
|
|
57
|
+
"valign": "middle",
|
|
58
|
+
"fit": { "maxLines": 3, "shrink": [24, 22] }
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"$if": "/source",
|
|
63
|
+
"then": {
|
|
64
|
+
"name": "text",
|
|
65
|
+
"props": {
|
|
66
|
+
"text": { "$slot": "/source" },
|
|
67
|
+
"style": "source",
|
|
68
|
+
"fontSize": { "$theme": "/styles/source/fontSize", "default": 9 },
|
|
69
|
+
"x": "3.75%", "y": "94.5%", "w": "75%", "h": "5%"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
## Presentation: {{documentName}}
|
|
2
2
|
|
|
3
|
-
### Available
|
|
3
|
+
### Available blocks (reference only — do not output these)
|
|
4
4
|
|
|
5
|
-
{{
|
|
5
|
+
{{blocksSummary}}
|
|
6
6
|
|
|
7
|
-
### Current
|
|
7
|
+
### Current slides
|
|
8
8
|
|
|
9
9
|
```json
|
|
10
10
|
{{slidesText}}
|
|
@@ -21,40 +21,34 @@ You are EDITING the slides of this presentation. Return ONLY the modified slides
|
|
|
21
21
|
### Rules for slide-scoped editing
|
|
22
22
|
|
|
23
23
|
- Output the COMPLETE `children` array — include ALL slides, not just changed ones.
|
|
24
|
-
- Do NOT include `"name"` or `"props"` keys —
|
|
25
|
-
-
|
|
26
|
-
- New slides MUST reference existing templates — do not invent new templates.
|
|
24
|
+
- Do NOT include `"name"` or `"props"` keys — the block definitions and presentation settings are unchanged.
|
|
25
|
+
- New slides MUST invoke blocks from the list above — do not define new blocks here and do not add coordinates to an invocation.
|
|
27
26
|
- Preserve unmodified slides exactly as they appear above.
|
|
28
|
-
- When editing a slide, keep its `
|
|
29
|
-
- If the presentation uses templates, new slides should also use templates for consistency.
|
|
27
|
+
- When editing a slide that invokes a block, keep its `ref` and change only the `slots`; fill every required slot and respect `maxWords`/`oneLine`.
|
|
30
28
|
- **Component format:** every component MUST be `{ "name": "<type>", "props": { ... } }`. Never use `{ "type": "...", ... }` with flat props.
|
|
31
29
|
|
|
32
30
|
### Example
|
|
33
31
|
|
|
34
32
|
**User request:** "Add a slide about pricing"
|
|
35
33
|
|
|
36
|
-
**Correct output (complete children array with new slide appended):**
|
|
34
|
+
**Correct output (complete children array with the new slide appended):**
|
|
37
35
|
|
|
38
36
|
```json
|
|
39
37
|
{
|
|
40
38
|
"children": [
|
|
41
39
|
{
|
|
42
40
|
"name": "slide",
|
|
43
|
-
"props": {
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
}
|
|
41
|
+
"props": { "meta": { "title": "Overview" } },
|
|
42
|
+
"children": [
|
|
43
|
+
{ "name": "block", "props": { "ref": "statement", "slots": { "text": "Growth improved as delivery became reliable." } } }
|
|
44
|
+
]
|
|
49
45
|
},
|
|
50
46
|
{
|
|
51
47
|
"name": "slide",
|
|
52
|
-
"props": {
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
}
|
|
48
|
+
"props": { "meta": { "title": "Pricing" } },
|
|
49
|
+
"children": [
|
|
50
|
+
{ "name": "block", "props": { "ref": "statement", "slots": { "text": "Pricing moves to three tiers." } } }
|
|
51
|
+
]
|
|
58
52
|
}
|
|
59
53
|
]
|
|
60
54
|
}
|
|
@@ -10,11 +10,11 @@ IMPORTANT: This {{contentLabelLower}} already exists. You are EDITING it, not ge
|
|
|
10
10
|
|
|
11
11
|
### Rules for editing presentations
|
|
12
12
|
|
|
13
|
-
- **Preserve
|
|
14
|
-
- When adding
|
|
15
|
-
- When editing a slide, keep its `
|
|
16
|
-
- If the presentation uses
|
|
17
|
-
- **Component format:** every component MUST be `{ "name": "<type>", "props": { ... } }`. Never use `{ "type": "...", ... }` with flat props.
|
|
13
|
+
- **Preserve every definition in `pptx.props.blocks`** unless explicitly asked to change it.
|
|
14
|
+
- When adding slides, **invoke an existing block** — do not define a new one unless the user asks for a new layout, and never add coordinates to an invocation.
|
|
15
|
+
- When editing a slide that invokes a block, keep its `ref` and change only the `slots`.
|
|
16
|
+
- If the presentation uses blocks, new slides should invoke blocks too, for consistency.
|
|
17
|
+
- **Component format:** every component MUST be `{ "name": "<type>", "props": { ... } }`. Never use `{ "type": "...", ... }` with flat props. Never emit `templates`, `template` or `placeholders` keys.
|
|
18
18
|
|
|
19
19
|
### Example
|
|
20
20
|
|
|
@@ -24,26 +24,23 @@ IMPORTANT: This {{contentLabelLower}} already exists. You are EDITING it, not ge
|
|
|
24
24
|
{
|
|
25
25
|
"name": "pptx",
|
|
26
26
|
"props": {
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
]
|
|
27
|
+
"theme": "consulting",
|
|
28
|
+
"slideWidth": 13.333,
|
|
29
|
+
"slideHeight": 7.5,
|
|
30
|
+
"blocks": {
|
|
31
|
+
"statement": {
|
|
32
|
+
"slots": { "text": { "type": "string", "required": true, "maxWords": 30 } },
|
|
33
|
+
"body": [{ "name": "text", "props": { "text": { "$slot": "/text" }, "style": "display", "x": "3.75%", "y": "30%", "w": "92.5%", "h": "30%" } }]
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
}
|
|
36
36
|
},
|
|
37
37
|
"children": [
|
|
38
38
|
{
|
|
39
39
|
"name": "slide",
|
|
40
|
-
"props": {
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
"body": { "name": "text", "props": { "text": "Content here." } }
|
|
45
|
-
}
|
|
46
|
-
}
|
|
40
|
+
"props": { "meta": { "title": "Overview" } },
|
|
41
|
+
"children": [
|
|
42
|
+
{ "name": "block", "props": { "ref": "statement", "slots": { "text": "Growth improved as delivery became reliable." } } }
|
|
43
|
+
]
|
|
47
44
|
}
|
|
48
45
|
]
|
|
49
46
|
}
|
|
@@ -51,52 +48,36 @@ IMPORTANT: This {{contentLabelLower}} already exists. You are EDITING it, not ge
|
|
|
51
48
|
|
|
52
49
|
**User request:** "Add a slide about pricing"
|
|
53
50
|
|
|
54
|
-
**Correct output (full document with new slide appended,
|
|
51
|
+
**Correct output (full document with the new slide appended, invoking the existing block):**
|
|
55
52
|
|
|
56
53
|
```json
|
|
57
54
|
{
|
|
58
55
|
"name": "pptx",
|
|
59
56
|
"props": {
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
]
|
|
57
|
+
"theme": "consulting",
|
|
58
|
+
"slideWidth": 13.333,
|
|
59
|
+
"slideHeight": 7.5,
|
|
60
|
+
"blocks": {
|
|
61
|
+
"statement": {
|
|
62
|
+
"slots": { "text": { "type": "string", "required": true, "maxWords": 30 } },
|
|
63
|
+
"body": [{ "name": "text", "props": { "text": { "$slot": "/text" }, "style": "display", "x": "3.75%", "y": "30%", "w": "92.5%", "h": "30%" } }]
|
|
67
64
|
}
|
|
68
|
-
|
|
65
|
+
}
|
|
69
66
|
},
|
|
70
67
|
"children": [
|
|
71
68
|
{
|
|
72
69
|
"name": "slide",
|
|
73
|
-
"props": {
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
"body": { "name": "text", "props": { "text": "Content here." } }
|
|
78
|
-
}
|
|
79
|
-
}
|
|
70
|
+
"props": { "meta": { "title": "Overview" } },
|
|
71
|
+
"children": [
|
|
72
|
+
{ "name": "block", "props": { "ref": "statement", "slots": { "text": "Growth improved as delivery became reliable." } } }
|
|
73
|
+
]
|
|
80
74
|
},
|
|
81
75
|
{
|
|
82
76
|
"name": "slide",
|
|
83
|
-
"props": {
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
"body": {
|
|
88
|
-
"name": "table",
|
|
89
|
-
"props": {
|
|
90
|
-
"rows": [
|
|
91
|
-
["Plan", "Price"],
|
|
92
|
-
["Starter", "$9/mo"],
|
|
93
|
-
["Pro", "$29/mo"]
|
|
94
|
-
],
|
|
95
|
-
"grid": { "column": 0, "row": 2, "columnSpan": 12, "rowSpan": 3 }
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
77
|
+
"props": { "meta": { "title": "Pricing" } },
|
|
78
|
+
"children": [
|
|
79
|
+
{ "name": "block", "props": { "ref": "statement", "slots": { "text": "Pricing moves to three tiers: Starter at $9, Pro at $29, Enterprise on request." } } }
|
|
80
|
+
]
|
|
100
81
|
}
|
|
101
82
|
]
|
|
102
83
|
}
|