dsh-ppt-studio 1.1.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.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +480 -0
  3. package/agent-presets/ppt/agent.cordis.yml +308 -0
  4. package/agent-presets/ppt/preset.yml +3 -0
  5. package/cordis.patch.yml +29 -0
  6. package/docs/00-/350/256/276/350/256/241/346/272/220.md +537 -0
  7. package/docs/01-/351/234/200/346/261/202/344/270/216/347/233/256/346/240/207.md +136 -0
  8. package/docs/02-/346/212/200/346/234/257/346/212/245/345/221/212.md +483 -0
  9. package/docs/03-/346/233/264/346/226/260/346/227/245/345/277/227.md +2898 -0
  10. package/docs/04-/350/267/257/347/272/277/345/233/276/344/270/216/351/207/214/347/250/213/347/242/221.md +113 -0
  11. package/docs/05-/350/277/255/344/273/243/346/265/201/347/250/213.md +210 -0
  12. package/docs/06-/350/257/204/345/256/241/344/270/216/346/265/213/350/257/225.md +296 -0
  13. package/docs/fidelity-report.md +225 -0
  14. package/examples/fx/fx-mini/deck.yaml +39 -0
  15. package/examples/fx/fx-mini/pages/01.yaml +6 -0
  16. package/examples/fx/fx-mini/pages/02.yaml +2 -0
  17. package/examples/fx/fx-mini/pages/03.yaml +6 -0
  18. package/examples/fx/fx-pro/deck.yaml +48 -0
  19. package/examples/fx/fx-pro/pages/01_cover.yaml +40 -0
  20. package/examples/fx/fx-pro/pages/02_arch.yaml +55 -0
  21. package/examples/fx/fx-pro/pages/03_table.yaml +20 -0
  22. package/examples/fx/fx-pro/pages/04_chart.yaml +40 -0
  23. package/examples/fx/fx-pro/pages/05_timeline.yaml +71 -0
  24. package/examples/fx/fx-pro/pages/06_longtext.yaml +13 -0
  25. package/examples/fx/fx-pro/pages/07_safearea.yaml +33 -0
  26. package/examples/fx/fx-pro/pages/08_contrast.yaml +22 -0
  27. package/examples/fx/fx-pro/pages/09_custgeom.yaml +32 -0
  28. package/examples/fx/fx-pro/pages/10_numbers.yaml +25 -0
  29. package/examples/fx/fx-pro/pages/11_section.yaml +20 -0
  30. package/examples/fx/fx-pro/pages/12_summary.yaml +57 -0
  31. package/examples/fx/fx-pro/preview/01_pages_01_cover.html +1 -0
  32. package/examples/fx/fx-pro/preview/02_pages_02_arch.html +3 -0
  33. package/examples/fx/fx-pro/preview/03_pages_03_table.html +1 -0
  34. package/examples/fx/fx-pro/preview/04_pages_04_chart.html +3 -0
  35. package/examples/fx/fx-pro/preview/05_pages_05_timeline.html +2 -0
  36. package/examples/fx/fx-pro/preview/06_pages_06_longtext.html +4 -0
  37. package/examples/fx/fx-pro/preview/07_pages_07_safearea.html +2 -0
  38. package/examples/fx/fx-pro/preview/08_pages_08_contrast.html +1 -0
  39. package/examples/fx/fx-pro/preview/09_pages_09_custgeom.html +1 -0
  40. package/examples/fx/fx-pro/preview/10_pages_10_numbers.html +1 -0
  41. package/examples/fx/fx-pro/preview/11_pages_11_section.html +1 -0
  42. package/examples/fx/fx-pro/preview/12_pages_12_summary.html +1 -0
  43. package/examples/fx/fx-pro/preview/deck.html +10 -0
  44. package/examples/fx/fx-pro/preview/layout.json +2325 -0
  45. package/examples/fx/fx-pro/preview/measured.json +814 -0
  46. package/examples/fx/fx-pro.pptx +0 -0
  47. package/examples/fx/ren-single/01.png +0 -0
  48. package/examples/fx/ren-spliced/01.png +0 -0
  49. package/examples/fx/ren-spliced/03.png +0 -0
  50. package/examples/fx/seed.pptx +0 -0
  51. package/examples/fx/single.pptx +0 -0
  52. package/examples/fx/spliced.pptx +0 -0
  53. package/examples/smoke/deck.yaml +26 -0
  54. package/examples/smoke/imported/deck.yaml +30 -0
  55. package/examples/smoke/imported/import-styles.json +126 -0
  56. package/examples/smoke/imported/pages/slide_01.yaml +31 -0
  57. package/examples/smoke/imported/pages/slide_02.yaml +38 -0
  58. package/examples/smoke/imported/pages/slide_03.yaml +55 -0
  59. package/examples/smoke/imported/preview-rt/01_pages_slide_01.html +1 -0
  60. package/examples/smoke/imported/preview-rt/02_pages_slide_02.html +1 -0
  61. package/examples/smoke/imported/preview-rt/03_pages_slide_03.html +1 -0
  62. package/examples/smoke/imported/preview-rt/deck.html +1 -0
  63. package/examples/smoke/imported/preview-rt/layout.json +434 -0
  64. package/examples/smoke/imported/reference/previews/01.png +0 -0
  65. package/examples/smoke/imported/reference/previews/02.png +0 -0
  66. package/examples/smoke/imported/reference/previews/03.png +0 -0
  67. package/examples/smoke/imported/source.pptx +0 -0
  68. package/examples/smoke/media-test.png +0 -0
  69. package/examples/smoke/out-smoke.pptx +0 -0
  70. package/examples/smoke/pages/01_cover.yaml +27 -0
  71. package/examples/smoke/pages/02_content.yaml +42 -0
  72. package/examples/smoke/pages/03_chart.yaml +35 -0
  73. package/examples/smoke/preview/01_pages_01_cover.html +1 -0
  74. package/examples/smoke/preview/02_pages_02_content.html +1 -0
  75. package/examples/smoke/preview/03_pages_03_chart.html +1 -0
  76. package/examples/smoke/preview/deck.html +1 -0
  77. package/examples/smoke/preview/layout.json +378 -0
  78. package/lib/autodeclare.js +40 -0
  79. package/lib/commands.js +161 -0
  80. package/lib/crosscheck.js +300 -0
  81. package/lib/imgmeta.js +55 -0
  82. package/lib/index.js +239 -0
  83. package/lib/measurement.js +209 -0
  84. package/lib/msrender.js +123 -0
  85. package/lib/pptd/export-pptx.js +686 -0
  86. package/lib/pptd/import-pptx.js +774 -0
  87. package/lib/pptd/layout.js +209 -0
  88. package/lib/pptd/render-html.js +254 -0
  89. package/lib/pptd/schema.js +518 -0
  90. package/lib/pptd/svgCharts.js +147 -0
  91. package/lib/pptxPy.js +205 -0
  92. package/lib/preset-delivery.js +195 -0
  93. package/lib/preview-server.js +164 -0
  94. package/lib/router.js +165 -0
  95. package/lib/scaffold.js +315 -0
  96. package/lib/skill.js +174 -0
  97. package/lib/splice.js +219 -0
  98. package/lib/state.js +88 -0
  99. package/lib/surgical.js +369 -0
  100. package/lib/templates.js +400 -0
  101. package/lib/tools.js +955 -0
  102. package/lib/verify.js +828 -0
  103. package/lib/xmljs.js +112 -0
  104. package/lib/zips.js +117 -0
  105. package/package.json +81 -0
  106. package/scripts/audit-manual-facts.mjs +294 -0
  107. package/scripts/audit-template-fidelity.mjs +162 -0
  108. package/scripts/bench-m2.mjs +48 -0
  109. package/scripts/build-templates.mjs +63 -0
  110. package/scripts/build.mjs +14 -0
  111. package/scripts/build.sh +7 -0
  112. package/scripts/check-lib-freshness.mjs +70 -0
  113. package/scripts/check-preset.mjs +189 -0
  114. package/scripts/check-tracked-lf.mjs +84 -0
  115. package/scripts/dbg-import.mjs +13 -0
  116. package/scripts/dbg-media.mjs +10 -0
  117. package/scripts/dbg-tpl-inventory.mjs +23 -0
  118. package/scripts/dump-workflow-baseline.mjs +38 -0
  119. package/scripts/e2e-1.0.mjs +129 -0
  120. package/scripts/eval-skills-blind.mjs +91 -0
  121. package/scripts/eval-skills-score.mjs +129 -0
  122. package/scripts/export-orig-templates.ps1 +17 -0
  123. package/scripts/fixtures/workflow-baseline.json +300 -0
  124. package/scripts/fixtures.mjs +501 -0
  125. package/scripts/import-user-templates.mjs +60 -0
  126. package/scripts/install-desktop.mjs +312 -0
  127. package/scripts/install.mjs +209 -0
  128. package/scripts/migrate-templates-dualtrack.mjs +71 -0
  129. package/scripts/preflight-1.0.mjs +198 -0
  130. package/scripts/probe-asset-freshness.mjs +57 -0
  131. package/scripts/probe-effect-semantics.mjs +69 -0
  132. package/scripts/probe-reparse-safety.mjs +32 -0
  133. package/scripts/rebuild-templates-c11.mjs +69 -0
  134. package/scripts/regression-real.mjs +84 -0
  135. package/scripts/release-sync.mjs +425 -0
  136. package/scripts/shot-templates.mjs +49 -0
  137. package/scripts/smoke.mjs +2512 -0
  138. package/scripts/verify-bundle-install.mjs +281 -0
  139. package/scripts/verify-fresh-install.mjs +260 -0
  140. package/skills/ppt-studio-copy/SKILL.md +139 -0
  141. package/skills/ppt-studio-craft/SKILL.md +171 -0
  142. package/skills/ppt-studio-data/SKILL.md +173 -0
  143. package/skills/ppt-studio-manual/SKILL.md +104 -0
  144. package/templates/academic-white/deck.yaml +24 -0
  145. package/templates/academic-white/pages/_chart.yaml +43 -0
  146. package/templates/academic-white/pages/_compare.yaml +37 -0
  147. package/templates/academic-white/pages/_content.yaml +35 -0
  148. package/templates/academic-white/pages/_cover.yaml +28 -0
  149. package/templates/academic-white/pages/_ending.yaml +28 -0
  150. package/templates/academic-white/pages/_flow.yaml +61 -0
  151. package/templates/academic-white/preview.png +0 -0
  152. package/templates/academic-white/template.yaml +14 -0
  153. package/templates/business-blue/deck.yaml +28 -0
  154. package/templates/business-blue/pages/_chart.yaml +36 -0
  155. package/templates/business-blue/pages/_compare.yaml +45 -0
  156. package/templates/business-blue/pages/_content.yaml +80 -0
  157. package/templates/business-blue/pages/_cover.yaml +39 -0
  158. package/templates/business-blue/pages/_ending.yaml +32 -0
  159. package/templates/business-blue/pages/_flow.yaml +87 -0
  160. package/templates/business-blue/preview.png +0 -0
  161. package/templates/business-blue/template.yaml +14 -0
  162. package/templates/pitch-bold/deck.yaml +23 -0
  163. package/templates/pitch-bold/pages/_chart.yaml +32 -0
  164. package/templates/pitch-bold/pages/_compare.yaml +36 -0
  165. package/templates/pitch-bold/pages/_content.yaml +58 -0
  166. package/templates/pitch-bold/pages/_cover.yaml +31 -0
  167. package/templates/pitch-bold/pages/_ending.yaml +27 -0
  168. package/templates/pitch-bold/pages/_flow.yaml +46 -0
  169. package/templates/pitch-bold/preview.png +0 -0
  170. package/templates/pitch-bold/template.yaml +14 -0
  171. package/templates/tech-dark/deck.yaml +24 -0
  172. package/templates/tech-dark/pages/_chart.yaml +27 -0
  173. package/templates/tech-dark/pages/_compare.yaml +38 -0
  174. package/templates/tech-dark/pages/_content.yaml +51 -0
  175. package/templates/tech-dark/pages/_cover.yaml +30 -0
  176. package/templates/tech-dark/pages/_ending.yaml +25 -0
  177. package/templates/tech-dark/pages/_flow.yaml +80 -0
  178. package/templates/tech-dark/preview.png +0 -0
  179. package/templates/tech-dark/template.yaml +14 -0
@@ -0,0 +1,814 @@
1
+ {
2
+ "browser": "Edge/Chrome headless",
3
+ "ts": "2026-09-25T17:54:02.638Z",
4
+ "size": {
5
+ "width": 960,
6
+ "height": 540
7
+ },
8
+ "pages": [
9
+ {
10
+ "pageNo": 1,
11
+ "index": 0,
12
+ "file": "01_pages_01_cover.html",
13
+ "elements": [
14
+ {
15
+ "id": "band",
16
+ "kind": "shape",
17
+ "x": 0,
18
+ "y": 0,
19
+ "w": 960,
20
+ "h": 540
21
+ },
22
+ {
23
+ "id": "glow",
24
+ "kind": "shape",
25
+ "x": 660,
26
+ "y": 34,
27
+ "w": 260,
28
+ "h": 260
29
+ },
30
+ {
31
+ "id": "title",
32
+ "kind": "text",
33
+ "x": 80,
34
+ "y": 150,
35
+ "w": 700,
36
+ "h": 90,
37
+ "lines": 1,
38
+ "clientHeight": 90,
39
+ "contentHeight": 90,
40
+ "overflowY": 0
41
+ },
42
+ {
43
+ "id": "sub",
44
+ "kind": "text",
45
+ "x": 80,
46
+ "y": 260,
47
+ "w": 600,
48
+ "h": 50,
49
+ "lines": 1,
50
+ "clientHeight": 50,
51
+ "contentHeight": 50,
52
+ "overflowY": 0
53
+ },
54
+ {
55
+ "id": "badge",
56
+ "kind": "shape",
57
+ "x": 80,
58
+ "y": 420,
59
+ "w": 200,
60
+ "h": 56
61
+ },
62
+ {
63
+ "id": "badge_t",
64
+ "kind": "text",
65
+ "x": 100,
66
+ "y": 430,
67
+ "w": 160,
68
+ "h": 40,
69
+ "lines": 1,
70
+ "clientHeight": 40,
71
+ "contentHeight": 40,
72
+ "overflowY": 0
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "pageNo": 2,
78
+ "index": 1,
79
+ "file": "02_pages_02_arch.html",
80
+ "elements": [
81
+ {
82
+ "id": "panel",
83
+ "kind": "shape",
84
+ "x": 60,
85
+ "y": 80,
86
+ "w": 840,
87
+ "h": 380
88
+ },
89
+ {
90
+ "id": "box_a",
91
+ "kind": "shape",
92
+ "x": 100,
93
+ "y": 130,
94
+ "w": 350,
95
+ "h": 240
96
+ },
97
+ {
98
+ "id": "box_a_t",
99
+ "kind": "text",
100
+ "x": 120,
101
+ "y": 150,
102
+ "w": 310,
103
+ "h": 60,
104
+ "lines": 1,
105
+ "clientHeight": 60,
106
+ "contentHeight": 60,
107
+ "overflowY": 0
108
+ },
109
+ {
110
+ "id": "box_a_b",
111
+ "kind": "text",
112
+ "x": 120,
113
+ "y": 230,
114
+ "w": 310,
115
+ "h": 120,
116
+ "lines": 2,
117
+ "clientHeight": 120,
118
+ "contentHeight": 120,
119
+ "overflowY": 0
120
+ },
121
+ {
122
+ "id": "box_b",
123
+ "kind": "shape",
124
+ "x": 510,
125
+ "y": 130,
126
+ "w": 350,
127
+ "h": 240
128
+ },
129
+ {
130
+ "id": "box_b_t",
131
+ "kind": "text",
132
+ "x": 530,
133
+ "y": 150,
134
+ "w": 310,
135
+ "h": 60,
136
+ "lines": 1,
137
+ "clientHeight": 60,
138
+ "contentHeight": 60,
139
+ "overflowY": 0
140
+ },
141
+ {
142
+ "id": "box_b_b",
143
+ "kind": "text",
144
+ "x": 530,
145
+ "y": 230,
146
+ "w": 310,
147
+ "h": 120,
148
+ "lines": 2,
149
+ "clientHeight": 120,
150
+ "contentHeight": 120,
151
+ "overflowY": 0
152
+ },
153
+ {
154
+ "id": "foot",
155
+ "kind": "text",
156
+ "x": 100,
157
+ "y": 470,
158
+ "w": 760,
159
+ "h": 40,
160
+ "lines": 1,
161
+ "clientHeight": 40,
162
+ "contentHeight": 40,
163
+ "overflowY": 0
164
+ }
165
+ ]
166
+ },
167
+ {
168
+ "pageNo": 3,
169
+ "index": 2,
170
+ "file": "03_pages_03_table.html",
171
+ "elements": [
172
+ {
173
+ "id": "t_head",
174
+ "kind": "text",
175
+ "x": 60,
176
+ "y": 60,
177
+ "w": 400,
178
+ "h": 40,
179
+ "lines": 1,
180
+ "clientHeight": 40,
181
+ "contentHeight": 40,
182
+ "overflowY": 0
183
+ },
184
+ {
185
+ "id": "tbl",
186
+ "kind": "table",
187
+ "x": 60,
188
+ "y": 120,
189
+ "w": 840,
190
+ "h": 300
191
+ },
192
+ {
193
+ "id": "t_note",
194
+ "kind": "text",
195
+ "x": 60,
196
+ "y": 450,
197
+ "w": 840,
198
+ "h": 40,
199
+ "lines": 1,
200
+ "clientHeight": 40,
201
+ "contentHeight": 40,
202
+ "overflowY": 0
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "pageNo": 4,
208
+ "index": 3,
209
+ "file": "04_pages_04_chart.html",
210
+ "elements": [
211
+ {
212
+ "id": "c_head",
213
+ "kind": "text",
214
+ "x": 60,
215
+ "y": 60,
216
+ "w": 400,
217
+ "h": 40,
218
+ "lines": 1,
219
+ "clientHeight": 40,
220
+ "contentHeight": 40,
221
+ "overflowY": 0
222
+ },
223
+ {
224
+ "id": "chart",
225
+ "kind": "chart",
226
+ "x": 60,
227
+ "y": 130,
228
+ "w": 480,
229
+ "h": 300
230
+ },
231
+ {
232
+ "id": "key",
233
+ "kind": "shape",
234
+ "x": 580,
235
+ "y": 130,
236
+ "w": 320,
237
+ "h": 300
238
+ },
239
+ {
240
+ "id": "key_t",
241
+ "kind": "text",
242
+ "x": 610,
243
+ "y": 160,
244
+ "w": 260,
245
+ "h": 60,
246
+ "lines": 1,
247
+ "clientHeight": 60,
248
+ "contentHeight": 60,
249
+ "overflowY": 0
250
+ },
251
+ {
252
+ "id": "key_body",
253
+ "kind": "text",
254
+ "x": 610,
255
+ "y": 240,
256
+ "w": 260,
257
+ "h": 160,
258
+ "lines": 3,
259
+ "clientHeight": 160,
260
+ "contentHeight": 160,
261
+ "overflowY": 0
262
+ }
263
+ ]
264
+ },
265
+ {
266
+ "pageNo": 5,
267
+ "index": 4,
268
+ "file": "05_pages_05_timeline.html",
269
+ "elements": [
270
+ {
271
+ "id": "tl_head",
272
+ "kind": "text",
273
+ "x": 60,
274
+ "y": 60,
275
+ "w": 500,
276
+ "h": 40,
277
+ "lines": 1,
278
+ "clientHeight": 40,
279
+ "contentHeight": 40,
280
+ "overflowY": 0
281
+ },
282
+ {
283
+ "id": "st1",
284
+ "kind": "shape",
285
+ "x": 60,
286
+ "y": 140,
287
+ "w": 140,
288
+ "h": 60
289
+ },
290
+ {
291
+ "id": "st1_t",
292
+ "kind": "text",
293
+ "x": 70,
294
+ "y": 148,
295
+ "w": 120,
296
+ "h": 44,
297
+ "lines": 1,
298
+ "clientHeight": 44,
299
+ "contentHeight": 44,
300
+ "overflowY": 0
301
+ },
302
+ {
303
+ "id": "st2",
304
+ "kind": "shape",
305
+ "x": 220,
306
+ "y": 140,
307
+ "w": 140,
308
+ "h": 60
309
+ },
310
+ {
311
+ "id": "st2_t",
312
+ "kind": "text",
313
+ "x": 230,
314
+ "y": 148,
315
+ "w": 120,
316
+ "h": 44,
317
+ "lines": 1,
318
+ "clientHeight": 44,
319
+ "contentHeight": 44,
320
+ "overflowY": 0
321
+ },
322
+ {
323
+ "id": "st3",
324
+ "kind": "shape",
325
+ "x": 380,
326
+ "y": 140,
327
+ "w": 140,
328
+ "h": 60
329
+ },
330
+ {
331
+ "id": "st3_t",
332
+ "kind": "text",
333
+ "x": 390,
334
+ "y": 148,
335
+ "w": 120,
336
+ "h": 44,
337
+ "lines": 1,
338
+ "clientHeight": 44,
339
+ "contentHeight": 44,
340
+ "overflowY": 0
341
+ },
342
+ {
343
+ "id": "st4",
344
+ "kind": "shape",
345
+ "x": 540,
346
+ "y": 140,
347
+ "w": 140,
348
+ "h": 60
349
+ },
350
+ {
351
+ "id": "st4_t",
352
+ "kind": "text",
353
+ "x": 550,
354
+ "y": 148,
355
+ "w": 120,
356
+ "h": 44,
357
+ "lines": 1,
358
+ "clientHeight": 44,
359
+ "contentHeight": 44,
360
+ "overflowY": 0
361
+ },
362
+ {
363
+ "id": "st5",
364
+ "kind": "shape",
365
+ "x": 700,
366
+ "y": 140,
367
+ "w": 140,
368
+ "h": 60
369
+ },
370
+ {
371
+ "id": "st5_t",
372
+ "kind": "text",
373
+ "x": 710,
374
+ "y": 148,
375
+ "w": 120,
376
+ "h": 44,
377
+ "lines": 1,
378
+ "clientHeight": 44,
379
+ "contentHeight": 44,
380
+ "overflowY": 0
381
+ },
382
+ {
383
+ "id": "tl_note",
384
+ "kind": "text",
385
+ "x": 80,
386
+ "y": 300,
387
+ "w": 800,
388
+ "h": 100,
389
+ "lines": 2,
390
+ "clientHeight": 100,
391
+ "contentHeight": 100,
392
+ "overflowY": 0
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "pageNo": 6,
398
+ "index": 5,
399
+ "file": "06_pages_06_longtext.html",
400
+ "elements": [
401
+ {
402
+ "id": "lt_head",
403
+ "kind": "text",
404
+ "x": 60,
405
+ "y": 60,
406
+ "w": 500,
407
+ "h": 40,
408
+ "lines": 1,
409
+ "clientHeight": 40,
410
+ "contentHeight": 40,
411
+ "overflowY": 0
412
+ },
413
+ {
414
+ "id": "lt_body",
415
+ "kind": "text",
416
+ "x": 60,
417
+ "y": 130,
418
+ "w": 840,
419
+ "h": 340,
420
+ "lines": 4,
421
+ "clientHeight": 340,
422
+ "contentHeight": 340,
423
+ "overflowY": 0
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ "pageNo": 7,
429
+ "index": 6,
430
+ "file": "07_pages_07_safearea.html",
431
+ "elements": [
432
+ {
433
+ "id": "logo",
434
+ "kind": "shape",
435
+ "x": 895,
436
+ "y": 8,
437
+ "w": 40,
438
+ "h": 30
439
+ },
440
+ {
441
+ "id": "logo_t",
442
+ "kind": "text",
443
+ "x": 897,
444
+ "y": 12,
445
+ "w": 36,
446
+ "h": 24,
447
+ "lines": 1,
448
+ "clientHeight": 24,
449
+ "contentHeight": 24,
450
+ "overflowY": 0
451
+ },
452
+ {
453
+ "id": "sa_title",
454
+ "kind": "text",
455
+ "x": 60,
456
+ "y": 70,
457
+ "w": 600,
458
+ "h": 40,
459
+ "lines": 1,
460
+ "clientHeight": 40,
461
+ "contentHeight": 40,
462
+ "overflowY": 0
463
+ },
464
+ {
465
+ "id": "sa_body",
466
+ "kind": "text",
467
+ "x": 60,
468
+ "y": 140,
469
+ "w": 840,
470
+ "h": 200,
471
+ "lines": 2,
472
+ "clientHeight": 200,
473
+ "contentHeight": 200,
474
+ "overflowY": 0
475
+ },
476
+ {
477
+ "id": "footer",
478
+ "kind": "shape",
479
+ "x": 0,
480
+ "y": 514,
481
+ "w": 960,
482
+ "h": 26
483
+ },
484
+ {
485
+ "id": "footer_t",
486
+ "kind": "text",
487
+ "x": 60,
488
+ "y": 518,
489
+ "w": 300,
490
+ "h": 20,
491
+ "lines": 1,
492
+ "clientHeight": 20,
493
+ "contentHeight": 20,
494
+ "overflowY": 0
495
+ }
496
+ ]
497
+ },
498
+ {
499
+ "pageNo": 8,
500
+ "index": 7,
501
+ "file": "08_pages_08_contrast.html",
502
+ "elements": [
503
+ {
504
+ "id": "ct_head",
505
+ "kind": "text",
506
+ "x": 60,
507
+ "y": 60,
508
+ "w": 600,
509
+ "h": 40,
510
+ "lines": 1,
511
+ "clientHeight": 40,
512
+ "contentHeight": 40,
513
+ "overflowY": 0
514
+ },
515
+ {
516
+ "id": "carrier",
517
+ "kind": "shape",
518
+ "x": 60,
519
+ "y": 150,
520
+ "w": 400,
521
+ "h": 180
522
+ },
523
+ {
524
+ "id": "carrier_t",
525
+ "kind": "text",
526
+ "x": 110,
527
+ "y": 230,
528
+ "w": 300,
529
+ "h": 60,
530
+ "lines": 1,
531
+ "clientHeight": 60,
532
+ "contentHeight": 60,
533
+ "overflowY": 0
534
+ },
535
+ {
536
+ "id": "ct_note",
537
+ "kind": "text",
538
+ "x": 520,
539
+ "y": 170,
540
+ "w": 380,
541
+ "h": 140,
542
+ "lines": 2,
543
+ "clientHeight": 140,
544
+ "contentHeight": 140,
545
+ "overflowY": 0
546
+ }
547
+ ]
548
+ },
549
+ {
550
+ "pageNo": 9,
551
+ "index": 8,
552
+ "file": "09_pages_09_custgeom.html",
553
+ "elements": [
554
+ {
555
+ "id": "cg_head",
556
+ "kind": "text",
557
+ "x": 60,
558
+ "y": 60,
559
+ "w": 600,
560
+ "h": 40,
561
+ "lines": 1,
562
+ "clientHeight": 40,
563
+ "contentHeight": 40,
564
+ "overflowY": 0
565
+ },
566
+ {
567
+ "id": "arc",
568
+ "kind": "shape",
569
+ "x": 600,
570
+ "y": 320,
571
+ "w": 320,
572
+ "h": 200
573
+ },
574
+ {
575
+ "id": "cg_body",
576
+ "kind": "text",
577
+ "x": 60,
578
+ "y": 140,
579
+ "w": 500,
580
+ "h": 160,
581
+ "lines": 2,
582
+ "clientHeight": 160,
583
+ "contentHeight": 160,
584
+ "overflowY": 0
585
+ },
586
+ {
587
+ "id": "deco",
588
+ "kind": "shape",
589
+ "x": 700,
590
+ "y": 60,
591
+ "w": 120,
592
+ "h": 120
593
+ }
594
+ ]
595
+ },
596
+ {
597
+ "pageNo": 10,
598
+ "index": 9,
599
+ "file": "10_pages_10_numbers.html",
600
+ "elements": [
601
+ {
602
+ "id": "num_card",
603
+ "kind": "shape",
604
+ "x": 60,
605
+ "y": 90,
606
+ "w": 380,
607
+ "h": 220
608
+ },
609
+ {
610
+ "id": "num_v",
611
+ "kind": "text",
612
+ "x": 100,
613
+ "y": 120,
614
+ "w": 300,
615
+ "h": 80,
616
+ "lines": 1,
617
+ "clientHeight": 80,
618
+ "contentHeight": 80,
619
+ "overflowY": 0
620
+ },
621
+ {
622
+ "id": "num_l",
623
+ "kind": "text",
624
+ "x": 100,
625
+ "y": 220,
626
+ "w": 300,
627
+ "h": 40,
628
+ "lines": 1,
629
+ "clientHeight": 40,
630
+ "contentHeight": 40,
631
+ "overflowY": 0
632
+ },
633
+ {
634
+ "id": "num_note",
635
+ "kind": "text",
636
+ "x": 480,
637
+ "y": 120,
638
+ "w": 420,
639
+ "h": 160,
640
+ "lines": 2,
641
+ "clientHeight": 160,
642
+ "contentHeight": 160,
643
+ "overflowY": 0
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "pageNo": 11,
649
+ "index": 10,
650
+ "file": "11_pages_11_section.html",
651
+ "elements": [
652
+ {
653
+ "id": "sec_band",
654
+ "kind": "shape",
655
+ "x": 0,
656
+ "y": 0,
657
+ "w": 960,
658
+ "h": 540
659
+ },
660
+ {
661
+ "id": "sec_num",
662
+ "kind": "text",
663
+ "x": 80,
664
+ "y": 180,
665
+ "w": 300,
666
+ "h": 120,
667
+ "lines": 1,
668
+ "clientHeight": 120,
669
+ "contentHeight": 120,
670
+ "overflowY": 0
671
+ },
672
+ {
673
+ "id": "sec_t",
674
+ "kind": "text",
675
+ "x": 400,
676
+ "y": 200,
677
+ "w": 480,
678
+ "h": 80,
679
+ "lines": 1,
680
+ "clientHeight": 80,
681
+ "contentHeight": 80,
682
+ "overflowY": 0
683
+ }
684
+ ]
685
+ },
686
+ {
687
+ "pageNo": 12,
688
+ "index": 11,
689
+ "file": "12_pages_12_summary.html",
690
+ "elements": [
691
+ {
692
+ "id": "sm_head",
693
+ "kind": "text",
694
+ "x": 60,
695
+ "y": 60,
696
+ "w": 600,
697
+ "h": 40,
698
+ "lines": 1,
699
+ "clientHeight": 40,
700
+ "contentHeight": 40,
701
+ "overflowY": 0
702
+ },
703
+ {
704
+ "id": "sm_a",
705
+ "kind": "shape",
706
+ "x": 60,
707
+ "y": 130,
708
+ "w": 260,
709
+ "h": 180
710
+ },
711
+ {
712
+ "id": "sm_a_t",
713
+ "kind": "text",
714
+ "x": 80,
715
+ "y": 150,
716
+ "w": 220,
717
+ "h": 60,
718
+ "lines": 1,
719
+ "clientHeight": 60,
720
+ "contentHeight": 60,
721
+ "overflowY": 0
722
+ },
723
+ {
724
+ "id": "sm_a_b",
725
+ "kind": "text",
726
+ "x": 80,
727
+ "y": 220,
728
+ "w": 220,
729
+ "h": 70,
730
+ "lines": 1,
731
+ "clientHeight": 70,
732
+ "contentHeight": 70,
733
+ "overflowY": 0
734
+ },
735
+ {
736
+ "id": "sm_b",
737
+ "kind": "shape",
738
+ "x": 350,
739
+ "y": 130,
740
+ "w": 260,
741
+ "h": 180
742
+ },
743
+ {
744
+ "id": "sm_b_t",
745
+ "kind": "text",
746
+ "x": 370,
747
+ "y": 150,
748
+ "w": 220,
749
+ "h": 60,
750
+ "lines": 1,
751
+ "clientHeight": 60,
752
+ "contentHeight": 60,
753
+ "overflowY": 0
754
+ },
755
+ {
756
+ "id": "sm_b_b",
757
+ "kind": "text",
758
+ "x": 370,
759
+ "y": 220,
760
+ "w": 220,
761
+ "h": 70,
762
+ "lines": 1,
763
+ "clientHeight": 70,
764
+ "contentHeight": 70,
765
+ "overflowY": 0
766
+ },
767
+ {
768
+ "id": "sm_c",
769
+ "kind": "shape",
770
+ "x": 640,
771
+ "y": 130,
772
+ "w": 260,
773
+ "h": 180
774
+ },
775
+ {
776
+ "id": "sm_c_t",
777
+ "kind": "text",
778
+ "x": 660,
779
+ "y": 150,
780
+ "w": 220,
781
+ "h": 60,
782
+ "lines": 1,
783
+ "clientHeight": 60,
784
+ "contentHeight": 60,
785
+ "overflowY": 0
786
+ },
787
+ {
788
+ "id": "sm_c_b",
789
+ "kind": "text",
790
+ "x": 660,
791
+ "y": 220,
792
+ "w": 220,
793
+ "h": 70,
794
+ "lines": 1,
795
+ "clientHeight": 70,
796
+ "contentHeight": 70,
797
+ "overflowY": 0
798
+ },
799
+ {
800
+ "id": "sm_foot",
801
+ "kind": "text",
802
+ "x": 60,
803
+ "y": 360,
804
+ "w": 840,
805
+ "h": 90,
806
+ "lines": 1,
807
+ "clientHeight": 90,
808
+ "contentHeight": 90,
809
+ "overflowY": 0
810
+ }
811
+ ]
812
+ }
813
+ ]
814
+ }