@topmindspace/tms-skills 2.0.1 → 2.0.2

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 (98) hide show
  1. package/CHANGELOG.md +139 -134
  2. package/bin/tms-skills.js +160 -160
  3. package/package.json +48 -48
  4. package/top-ppt-html/README.md +254 -254
  5. package/top-ppt-html/SKILL.md +111 -111
  6. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +3873 -3926
  7. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.model.json +167 -167
  8. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.html +3873 -3926
  9. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.model.json +167 -167
  10. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.html +4272 -4325
  11. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.model.json +320 -320
  12. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.html +4272 -4325
  13. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.model.json +320 -320
  14. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +4272 -4325
  15. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.model.json +320 -320
  16. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.html +5474 -5527
  17. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.model.json +913 -913
  18. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.html +5474 -5527
  19. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.model.json +913 -913
  20. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +5474 -5527
  21. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.model.json +913 -913
  22. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.html +5474 -5527
  23. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.model.json +913 -913
  24. package/top-ppt-html/assets/pptx-export.js +1944 -1944
  25. package/top-ppt-html/assets/style-gallery.html +559 -589
  26. package/top-ppt-html/assets/templates/architecture.html +3675 -3728
  27. package/top-ppt-html/assets/templates/engine.css +787 -840
  28. package/top-ppt-html/assets/templates/presentation.html +3685 -3738
  29. package/top-ppt-html/assets/templates/research.html +3964 -4017
  30. package/top-ppt-html/assets/templates/ui.js +520 -520
  31. package/top-ppt-html/assets/theme-overview-architecture.png +0 -0
  32. package/top-ppt-html/assets/theme-overview-presentation.png +0 -0
  33. package/top-ppt-html/assets/theme-overview-research.png +0 -0
  34. package/top-ppt-html/assets/theme-overview.png +0 -0
  35. package/top-ppt-html/evals/prompts.csv +15 -15
  36. package/top-ppt-html/evals/rubric.schema.json +25 -25
  37. package/top-ppt-html/evals/run_evals.py +220 -220
  38. package/top-ppt-html/evals/trace.example.json +16 -16
  39. package/top-ppt-html/package-lock.json +175 -0
  40. package/top-ppt-html/package.json +30 -35
  41. package/top-ppt-html/references/charts-basic.md +624 -624
  42. package/top-ppt-html/references/charts-discipline.md +108 -108
  43. package/top-ppt-html/references/charts-extended.md +482 -482
  44. package/top-ppt-html/references/charts.md +28 -28
  45. package/top-ppt-html/references/components-atoms.md +624 -624
  46. package/top-ppt-html/references/components.md +30 -30
  47. package/top-ppt-html/references/content-rules.md +490 -490
  48. package/top-ppt-html/references/design-system-engine.md +235 -235
  49. package/top-ppt-html/references/design-system.md +471 -478
  50. package/top-ppt-html/references/failure-modes.md +214 -214
  51. package/top-ppt-html/references/high-fidelity.md +127 -127
  52. package/top-ppt-html/references/icons.md +397 -397
  53. package/top-ppt-html/references/industry-benchmark.md +105 -105
  54. package/top-ppt-html/references/infographics-stats.md +308 -308
  55. package/top-ppt-html/references/infographics-structure.md +226 -226
  56. package/top-ppt-html/references/infographics.md +43 -43
  57. package/top-ppt-html/references/layout-grammar.md +315 -315
  58. package/top-ppt-html/references/layouts-architecture.md +108 -108
  59. package/top-ppt-html/references/layouts-combo.md +600 -600
  60. package/top-ppt-html/references/layouts-research.md +160 -160
  61. package/top-ppt-html/references/modes.md +254 -254
  62. package/top-ppt-html/references/outline-design.md +275 -275
  63. package/top-ppt-html/references/playbook.md +266 -266
  64. package/top-ppt-html/references/pptx-export.md +209 -209
  65. package/top-ppt-html/references/reform-plan.md +252 -252
  66. package/top-ppt-html/references/styles.md +336 -370
  67. package/top-ppt-html/references/tech-design.md +138 -138
  68. package/top-ppt-html/scripts/audit_css.py +109 -109
  69. package/top-ppt-html/scripts/audit_docs.py +176 -176
  70. package/top-ppt-html/scripts/audit_skill.py +220 -220
  71. package/top-ppt-html/scripts/audit_styles.py +293 -351
  72. package/top-ppt-html/scripts/build_examples.py +2276 -2276
  73. package/top-ppt-html/scripts/build_pptx.js +2380 -2380
  74. package/top-ppt-html/scripts/capture_theme_overview.js +78 -78
  75. package/top-ppt-html/scripts/checks_html.py +127 -127
  76. package/top-ppt-html/scripts/cross_verify.py +294 -294
  77. package/top-ppt-html/scripts/env_probe.py +158 -158
  78. package/top-ppt-html/scripts/extract_model.py +210 -210
  79. package/top-ppt-html/scripts/extract_snippet.py +374 -374
  80. package/top-ppt-html/scripts/gen_channel_a.js +214 -214
  81. package/top-ppt-html/scripts/layout-constants.json +3309 -3377
  82. package/top-ppt-html/scripts/layout_slots.json +830 -830
  83. package/top-ppt-html/scripts/lib_layout_regions.js +412 -412
  84. package/top-ppt-html/scripts/measure_height.py +178 -178
  85. package/top-ppt-html/scripts/model-schema.json +547 -547
  86. package/top-ppt-html/scripts/negative_tests.py +307 -307
  87. package/top-ppt-html/scripts/package_skill.py +291 -291
  88. package/top-ppt-html/scripts/prepare_images.py +341 -341
  89. package/top-ppt-html/scripts/probe_image_export.py +188 -188
  90. package/top-ppt-html/scripts/quality_gate.py +301 -301
  91. package/top-ppt-html/scripts/regression.py +307 -308
  92. package/top-ppt-html/scripts/render_compare.py +275 -275
  93. package/top-ppt-html/scripts/render_from_model.py +698 -698
  94. package/top-ppt-html/scripts/scaffold_report.py +1054 -1054
  95. package/top-ppt-html/scripts/section-file-map.json +104 -104
  96. package/top-ppt-html/scripts/sync_runtime.py +662 -662
  97. package/top-ppt-html/scripts/validate_pptx.py +1510 -1510
  98. package/top-ppt-html/scripts/validate_report.py +1456 -1456
@@ -1,830 +1,830 @@
1
- {
2
- "$comment": "页型布局 IR(Layout Intermediate Representation):全部可交付页型的语义槽位。双通道按同一槽位语义落位;坐标以 layout-constants.json pageTypes 为唯一几何源,scripts/lib_layout_regions.js 将槽位映射为英寸矩形。role: primary/secondary/annotation/chrome。required: true 表示缺了即不合格。",
3
- "version": "9.1",
4
- "pageTypes": {
5
- "points": {
6
- "mode": [
7
- "presentation",
8
- "research",
9
- "architecture"
10
- ],
11
- "slots": [
12
- {
13
- "id": "head",
14
- "role": "chrome",
15
- "required": true,
16
- "html": ".shead",
17
- "pptx": "head()"
18
- },
19
- {
20
- "id": "primary",
21
- "role": "primary",
22
- "required": true,
23
- "html": ".grid.g-2 / .card / .ul",
24
- "pptx": "points columns",
25
- "minUnits": 1
26
- },
27
- {
28
- "id": "annotation",
29
- "role": "annotation",
30
- "required": false,
31
- "html": ".sowhat / .note",
32
- "pptx": "soWhatBar / footnoteLine"
33
- }
34
- ]
35
- },
36
- "metrics": {
37
- "mode": [
38
- "presentation",
39
- "research"
40
- ],
41
- "slots": [
42
- {
43
- "id": "head",
44
- "role": "chrome",
45
- "required": true,
46
- "html": ".shead",
47
- "pptx": "head()"
48
- },
49
- {
50
- "id": "primary",
51
- "role": "primary",
52
- "required": true,
53
- "html": ".metric",
54
- "pptx": "metric row",
55
- "minUnits": 4
56
- },
57
- {
58
- "id": "annotation",
59
- "role": "annotation",
60
- "required": false,
61
- "html": "口径行 / .sowhat",
62
- "pptx": "footnoteLine / soWhatBar"
63
- }
64
- ]
65
- },
66
- "kpi": {
67
- "mode": [
68
- "presentation",
69
- "research"
70
- ],
71
- "slots": [
72
- {
73
- "id": "head",
74
- "role": "chrome",
75
- "required": true,
76
- "html": ".shead",
77
- "pptx": "head()"
78
- },
79
- {
80
- "id": "hero",
81
- "role": "primary",
82
- "required": true,
83
- "html": ".t-metric hero",
84
- "pptx": "hero number"
85
- },
86
- {
87
- "id": "metrics",
88
- "role": "secondary",
89
- "required": false,
90
- "html": ".metric",
91
- "pptx": "support metrics"
92
- },
93
- {
94
- "id": "annotation",
95
- "role": "annotation",
96
- "required": false,
97
- "html": ".sowhat / .note",
98
- "pptx": "soWhatBar"
99
- }
100
- ]
101
- },
102
- "exhibit": {
103
- "mode": [
104
- "research",
105
- "presentation"
106
- ],
107
- "slots": [
108
- {
109
- "id": "head",
110
- "role": "chrome",
111
- "required": true,
112
- "html": ".shead / .exhibit__hd",
113
- "pptx": "head()"
114
- },
115
- {
116
- "id": "primary",
117
- "role": "primary",
118
- "required": true,
119
- "html": "svg[data-chart] / .exhibit",
120
- "pptx": "nativeChart | shapeChart",
121
- "channel": "registry"
122
- },
123
- {
124
- "id": "secondary",
125
- "role": "secondary",
126
- "required": false,
127
- "html": "要点列表",
128
- "pptx": "side bullets"
129
- },
130
- {
131
- "id": "annotation",
132
- "role": "annotation",
133
- "required": true,
134
- "html": ".exhibit__src / .sowhat",
135
- "pptx": "footnoteLine / soWhatBar / notes"
136
- }
137
- ]
138
- },
139
- "split": {
140
- "mode": [
141
- "presentation",
142
- "research",
143
- "architecture"
144
- ],
145
- "slots": [
146
- {
147
- "id": "head",
148
- "role": "chrome",
149
- "required": true,
150
- "html": ".shead",
151
- "pptx": "head()"
152
- },
153
- {
154
- "id": "left",
155
- "role": "primary",
156
- "required": true,
157
- "html": "左区(points/table/image/chart)",
158
- "pptx": "left zone"
159
- },
160
- {
161
- "id": "right",
162
- "role": "secondary",
163
- "required": true,
164
- "html": "右区(points/table/image/chart)",
165
- "pptx": "right zone"
166
- },
167
- {
168
- "id": "annotation",
169
- "role": "annotation",
170
- "required": false,
171
- "html": ".sowhat / .note",
172
- "pptx": "soWhatBar"
173
- }
174
- ]
175
- },
176
- "table": {
177
- "mode": [
178
- "presentation",
179
- "research"
180
- ],
181
- "slots": [
182
- {
183
- "id": "head",
184
- "role": "chrome",
185
- "required": true,
186
- "html": ".shead",
187
- "pptx": "head()"
188
- },
189
- {
190
- "id": "primary",
191
- "role": "primary",
192
- "required": true,
193
- "html": ".tbl-wrap table",
194
- "pptx": "addTable",
195
- "maxRows": {
196
- "presentation": 8,
197
- "research": 16
198
- }
199
- },
200
- {
201
- "id": "annotation",
202
- "role": "annotation",
203
- "required": false,
204
- "html": ".sowhat / .note",
205
- "pptx": "soWhatBar / footnoteLine"
206
- }
207
- ]
208
- },
209
- "bar": {
210
- "mode": [
211
- "presentation",
212
- "research",
213
- "architecture"
214
- ],
215
- "slots": [
216
- {
217
- "id": "head",
218
- "role": "chrome",
219
- "required": true,
220
- "html": ".shead",
221
- "pptx": "head()"
222
- },
223
- {
224
- "id": "primary",
225
- "role": "primary",
226
- "required": true,
227
- "html": "svg[data-chart]",
228
- "pptx": "nativeChart | shapeChart",
229
- "channel": "registry"
230
- },
231
- {
232
- "id": "annotation",
233
- "role": "annotation",
234
- "required": true,
235
- "html": "note / dataTable",
236
- "pptx": "footnoteLine / notes / inline table"
237
- }
238
- ]
239
- },
240
- "donut": {
241
- "mode": [
242
- "presentation",
243
- "research"
244
- ],
245
- "slots": [
246
- {
247
- "id": "head",
248
- "role": "chrome",
249
- "required": true,
250
- "html": ".shead",
251
- "pptx": "head()"
252
- },
253
- {
254
- "id": "primary",
255
- "role": "primary",
256
- "required": true,
257
- "html": "svg[data-chart=donut]",
258
- "pptx": "addChart doughnut"
259
- },
260
- {
261
- "id": "annotation",
262
- "role": "annotation",
263
- "required": false,
264
- "html": "中心合计 / 图例 / .note",
265
- "pptx": "center label / legend / notes"
266
- }
267
- ]
268
- },
269
- "twocol": {
270
- "mode": [
271
- "research"
272
- ],
273
- "slots": [
274
- {
275
- "id": "head",
276
- "role": "chrome",
277
- "required": true,
278
- "html": ".shead",
279
- "pptx": "head()"
280
- },
281
- {
282
- "id": "primary",
283
- "role": "primary",
284
- "required": true,
285
- "html": ".cols-2",
286
- "pptx": "two text columns"
287
- },
288
- {
289
- "id": "annotation",
290
- "role": "annotation",
291
- "required": false,
292
- "html": ".sowhat",
293
- "pptx": "soWhatBar"
294
- }
295
- ]
296
- },
297
- "threecol": {
298
- "mode": [
299
- "research"
300
- ],
301
- "slots": [
302
- {
303
- "id": "head",
304
- "role": "chrome",
305
- "required": true,
306
- "html": ".shead",
307
- "pptx": "head()"
308
- },
309
- {
310
- "id": "primary",
311
- "role": "primary",
312
- "required": true,
313
- "html": ".cols-3",
314
- "pptx": "three text columns"
315
- },
316
- {
317
- "id": "annotation",
318
- "role": "annotation",
319
- "required": false,
320
- "html": ".sowhat",
321
- "pptx": "soWhatBar"
322
- }
323
- ]
324
- },
325
- "halftable": {
326
- "mode": [
327
- "research"
328
- ],
329
- "slots": [
330
- {
331
- "id": "head",
332
- "role": "chrome",
333
- "required": true,
334
- "html": ".shead",
335
- "pptx": "head()"
336
- },
337
- {
338
- "id": "primary",
339
- "role": "primary",
340
- "required": true,
341
- "html": "左表",
342
- "pptx": "addTable left"
343
- },
344
- {
345
- "id": "secondary",
346
- "role": "secondary",
347
- "required": true,
348
- "html": "右图",
349
- "pptx": "chart right"
350
- },
351
- {
352
- "id": "annotation",
353
- "role": "annotation",
354
- "required": false,
355
- "html": ".sowhat",
356
- "pptx": "soWhatBar"
357
- }
358
- ]
359
- },
360
- "matrix": {
361
- "mode": [
362
- "research"
363
- ],
364
- "slots": [
365
- {
366
- "id": "head",
367
- "role": "chrome",
368
- "required": true,
369
- "html": ".shead",
370
- "pptx": "head()"
371
- },
372
- {
373
- "id": "primary",
374
- "role": "primary",
375
- "required": true,
376
- "html": ".matrix",
377
- "pptx": "matrix cells"
378
- },
379
- {
380
- "id": "annotation",
381
- "role": "annotation",
382
- "required": false,
383
- "html": ".sowhat",
384
- "pptx": "soWhatBar"
385
- }
386
- ]
387
- },
388
- "comparison": {
389
- "mode": [
390
- "presentation",
391
- "research"
392
- ],
393
- "slots": [
394
- {
395
- "id": "head",
396
- "role": "chrome",
397
- "required": true,
398
- "html": ".shead",
399
- "pptx": "head()"
400
- },
401
- {
402
- "id": "left",
403
- "role": "primary",
404
- "required": true,
405
- "html": "左面板",
406
- "pptx": "left panel"
407
- },
408
- {
409
- "id": "right",
410
- "role": "secondary",
411
- "required": true,
412
- "html": "右面板",
413
- "pptx": "right panel"
414
- },
415
- {
416
- "id": "annotation",
417
- "role": "annotation",
418
- "required": false,
419
- "html": "verdict / .sowhat",
420
- "pptx": "verdict bar"
421
- }
422
- ]
423
- },
424
- "quote": {
425
- "mode": [
426
- "presentation",
427
- "research"
428
- ],
429
- "slots": [
430
- {
431
- "id": "head",
432
- "role": "chrome",
433
- "required": true,
434
- "html": ".shead",
435
- "pptx": "head()"
436
- },
437
- {
438
- "id": "primary",
439
- "role": "primary",
440
- "required": true,
441
- "html": "金句正文",
442
- "pptx": "quote text"
443
- }
444
- ]
445
- },
446
- "timeline": {
447
- "mode": [
448
- "presentation",
449
- "research"
450
- ],
451
- "slots": [
452
- {
453
- "id": "head",
454
- "role": "chrome",
455
- "required": true,
456
- "html": ".shead",
457
- "pptx": "head()"
458
- },
459
- {
460
- "id": "primary",
461
- "role": "primary",
462
- "required": true,
463
- "html": ".tl",
464
- "pptx": "timeline axis"
465
- }
466
- ]
467
- },
468
- "steps": {
469
- "mode": [
470
- "presentation",
471
- "architecture"
472
- ],
473
- "slots": [
474
- {
475
- "id": "head",
476
- "role": "chrome",
477
- "required": true,
478
- "html": ".shead",
479
- "pptx": "head()"
480
- },
481
- {
482
- "id": "primary",
483
- "role": "primary",
484
- "required": true,
485
- "html": ".steps",
486
- "pptx": "step row"
487
- }
488
- ]
489
- },
490
- "cards": {
491
- "mode": [
492
- "presentation",
493
- "research"
494
- ],
495
- "slots": [
496
- {
497
- "id": "head",
498
- "role": "chrome",
499
- "required": true,
500
- "html": ".shead",
501
- "pptx": "head()"
502
- },
503
- {
504
- "id": "primary",
505
- "role": "primary",
506
- "required": true,
507
- "html": ".card grid",
508
- "pptx": "card grid"
509
- }
510
- ]
511
- },
512
- "heatmap": {
513
- "mode": [
514
- "presentation",
515
- "research"
516
- ],
517
- "slots": [
518
- {
519
- "id": "head",
520
- "role": "chrome",
521
- "required": true,
522
- "html": ".shead",
523
- "pptx": "head()"
524
- },
525
- {
526
- "id": "primary",
527
- "role": "primary",
528
- "required": true,
529
- "html": ".heat",
530
- "pptx": "heat cells"
531
- }
532
- ]
533
- },
534
- "bullet": {
535
- "mode": [
536
- "presentation",
537
- "research"
538
- ],
539
- "slots": [
540
- {
541
- "id": "head",
542
- "role": "chrome",
543
- "required": true,
544
- "html": ".shead",
545
- "pptx": "head()"
546
- },
547
- {
548
- "id": "primary",
549
- "role": "primary",
550
- "required": true,
551
- "html": ".bul",
552
- "pptx": "bullet rows"
553
- }
554
- ]
555
- },
556
- "pyramid": {
557
- "mode": [
558
- "presentation",
559
- "research"
560
- ],
561
- "slots": [
562
- {
563
- "id": "head",
564
- "role": "chrome",
565
- "required": true,
566
- "html": ".shead",
567
- "pptx": "head()"
568
- },
569
- {
570
- "id": "primary",
571
- "role": "primary",
572
- "required": true,
573
- "html": ".pyr",
574
- "pptx": "pyramid layers"
575
- }
576
- ]
577
- },
578
- "image": {
579
- "mode": [
580
- "presentation",
581
- "research",
582
- "architecture"
583
- ],
584
- "slots": [
585
- {
586
- "id": "head",
587
- "role": "chrome",
588
- "required": true,
589
- "html": ".shead",
590
- "pptx": "head()"
591
- },
592
- {
593
- "id": "primary",
594
- "role": "primary",
595
- "required": true,
596
- "html": ".media*",
597
- "pptx": "imageLayoutShapes"
598
- }
599
- ]
600
- },
601
- "diagram": {
602
- "mode": [
603
- "architecture",
604
- "research"
605
- ],
606
- "slots": [
607
- {
608
- "id": "head",
609
- "role": "chrome",
610
- "required": true,
611
- "html": ".shead",
612
- "pptx": "head()"
613
- },
614
- {
615
- "id": "primary",
616
- "role": "primary",
617
- "required": true,
618
- "html": ".arch / layers",
619
- "pptx": "layered nodes + edges",
620
- "maxNodes": 24,
621
- "maxLayers": 4
622
- },
623
- {
624
- "id": "annotation",
625
- "role": "annotation",
626
- "required": false,
627
- "html": ".arch__legend / .note",
628
- "pptx": "legend chips / notes"
629
- }
630
- ]
631
- },
632
- "lane": {
633
- "mode": [
634
- "architecture",
635
- "research"
636
- ],
637
- "slots": [
638
- {
639
- "id": "head",
640
- "role": "chrome",
641
- "required": true,
642
- "html": ".shead",
643
- "pptx": "head()"
644
- },
645
- {
646
- "id": "primary",
647
- "role": "primary",
648
- "required": true,
649
- "html": ".lane",
650
- "pptx": "lanes + steps"
651
- }
652
- ]
653
- },
654
- "sankey": {
655
- "mode": [
656
- "research",
657
- "architecture"
658
- ],
659
- "slots": [
660
- {
661
- "id": "head",
662
- "role": "chrome",
663
- "required": true,
664
- "html": ".shead",
665
- "pptx": "head()"
666
- },
667
- {
668
- "id": "primary",
669
- "role": "primary",
670
- "required": true,
671
- "html": "svg[data-chart=sankey]",
672
- "pptx": "infoSankey",
673
- "maxNodes": 12
674
- },
675
- {
676
- "id": "annotation",
677
- "role": "annotation",
678
- "required": true,
679
- "html": "dataTable / .note",
680
- "pptx": "notes"
681
- }
682
- ]
683
- },
684
- "treemap": {
685
- "mode": [
686
- "research",
687
- "architecture"
688
- ],
689
- "slots": [
690
- {
691
- "id": "head",
692
- "role": "chrome",
693
- "required": true,
694
- "html": ".shead",
695
- "pptx": "head()"
696
- },
697
- {
698
- "id": "primary",
699
- "role": "primary",
700
- "required": true,
701
- "html": "svg[data-chart=treemap]",
702
- "pptx": "infoTreemap"
703
- },
704
- {
705
- "id": "annotation",
706
- "role": "annotation",
707
- "required": true,
708
- "html": "dataTable / .note",
709
- "pptx": "notes"
710
- }
711
- ]
712
- },
713
- "boxplot": {
714
- "mode": [
715
- "research",
716
- "architecture"
717
- ],
718
- "slots": [
719
- {
720
- "id": "head",
721
- "role": "chrome",
722
- "required": true,
723
- "html": ".shead",
724
- "pptx": "head()"
725
- },
726
- {
727
- "id": "primary",
728
- "role": "primary",
729
- "required": true,
730
- "html": "svg[data-chart=boxplot]",
731
- "pptx": "infoBoxplot"
732
- },
733
- {
734
- "id": "annotation",
735
- "role": "annotation",
736
- "required": true,
737
- "html": "dataTable / .note",
738
- "pptx": "notes"
739
- }
740
- ]
741
- },
742
- "network": {
743
- "mode": [
744
- "research",
745
- "architecture"
746
- ],
747
- "slots": [
748
- {
749
- "id": "head",
750
- "role": "chrome",
751
- "required": true,
752
- "html": ".shead",
753
- "pptx": "head()"
754
- },
755
- {
756
- "id": "primary",
757
- "role": "primary",
758
- "required": true,
759
- "html": "svg[data-chart=network]",
760
- "pptx": "infoNetwork"
761
- },
762
- {
763
- "id": "annotation",
764
- "role": "annotation",
765
- "required": true,
766
- "html": "dataTable / .note",
767
- "pptx": "notes"
768
- }
769
- ]
770
- },
771
- "marimekko": {
772
- "mode": [
773
- "research",
774
- "architecture"
775
- ],
776
- "slots": [
777
- {
778
- "id": "head",
779
- "role": "chrome",
780
- "required": true,
781
- "html": ".shead",
782
- "pptx": "head()"
783
- },
784
- {
785
- "id": "primary",
786
- "role": "primary",
787
- "required": true,
788
- "html": "svg[data-chart=marimekko]",
789
- "pptx": "infoMarimekko"
790
- },
791
- {
792
- "id": "annotation",
793
- "role": "annotation",
794
- "required": true,
795
- "html": "dataTable / .note",
796
- "pptx": "notes"
797
- }
798
- ]
799
- },
800
- "streamgraph": {
801
- "mode": [
802
- "research",
803
- "architecture"
804
- ],
805
- "slots": [
806
- {
807
- "id": "head",
808
- "role": "chrome",
809
- "required": true,
810
- "html": ".shead",
811
- "pptx": "head()"
812
- },
813
- {
814
- "id": "primary",
815
- "role": "primary",
816
- "required": true,
817
- "html": "svg[data-chart=streamgraph]",
818
- "pptx": "infoStreamgraph"
819
- },
820
- {
821
- "id": "annotation",
822
- "role": "annotation",
823
- "required": true,
824
- "html": "dataTable / .note",
825
- "pptx": "notes"
826
- }
827
- ]
828
- }
829
- }
830
- }
1
+ {
2
+ "$comment": "页型布局 IR(Layout Intermediate Representation):全部可交付页型的语义槽位。双通道按同一槽位语义落位;坐标以 layout-constants.json pageTypes 为唯一几何源,scripts/lib_layout_regions.js 将槽位映射为英寸矩形。role: primary/secondary/annotation/chrome。required: true 表示缺了即不合格。",
3
+ "version": "9.0",
4
+ "pageTypes": {
5
+ "points": {
6
+ "mode": [
7
+ "presentation",
8
+ "research",
9
+ "architecture"
10
+ ],
11
+ "slots": [
12
+ {
13
+ "id": "head",
14
+ "role": "chrome",
15
+ "required": true,
16
+ "html": ".shead",
17
+ "pptx": "head()"
18
+ },
19
+ {
20
+ "id": "primary",
21
+ "role": "primary",
22
+ "required": true,
23
+ "html": ".grid.g-2 / .card / .ul",
24
+ "pptx": "points columns",
25
+ "minUnits": 1
26
+ },
27
+ {
28
+ "id": "annotation",
29
+ "role": "annotation",
30
+ "required": false,
31
+ "html": ".sowhat / .note",
32
+ "pptx": "soWhatBar / footnoteLine"
33
+ }
34
+ ]
35
+ },
36
+ "metrics": {
37
+ "mode": [
38
+ "presentation",
39
+ "research"
40
+ ],
41
+ "slots": [
42
+ {
43
+ "id": "head",
44
+ "role": "chrome",
45
+ "required": true,
46
+ "html": ".shead",
47
+ "pptx": "head()"
48
+ },
49
+ {
50
+ "id": "primary",
51
+ "role": "primary",
52
+ "required": true,
53
+ "html": ".metric",
54
+ "pptx": "metric row",
55
+ "minUnits": 4
56
+ },
57
+ {
58
+ "id": "annotation",
59
+ "role": "annotation",
60
+ "required": false,
61
+ "html": "口径行 / .sowhat",
62
+ "pptx": "footnoteLine / soWhatBar"
63
+ }
64
+ ]
65
+ },
66
+ "kpi": {
67
+ "mode": [
68
+ "presentation",
69
+ "research"
70
+ ],
71
+ "slots": [
72
+ {
73
+ "id": "head",
74
+ "role": "chrome",
75
+ "required": true,
76
+ "html": ".shead",
77
+ "pptx": "head()"
78
+ },
79
+ {
80
+ "id": "hero",
81
+ "role": "primary",
82
+ "required": true,
83
+ "html": ".t-metric hero",
84
+ "pptx": "hero number"
85
+ },
86
+ {
87
+ "id": "metrics",
88
+ "role": "secondary",
89
+ "required": false,
90
+ "html": ".metric",
91
+ "pptx": "support metrics"
92
+ },
93
+ {
94
+ "id": "annotation",
95
+ "role": "annotation",
96
+ "required": false,
97
+ "html": ".sowhat / .note",
98
+ "pptx": "soWhatBar"
99
+ }
100
+ ]
101
+ },
102
+ "exhibit": {
103
+ "mode": [
104
+ "research",
105
+ "presentation"
106
+ ],
107
+ "slots": [
108
+ {
109
+ "id": "head",
110
+ "role": "chrome",
111
+ "required": true,
112
+ "html": ".shead / .exhibit__hd",
113
+ "pptx": "head()"
114
+ },
115
+ {
116
+ "id": "primary",
117
+ "role": "primary",
118
+ "required": true,
119
+ "html": "svg[data-chart] / .exhibit",
120
+ "pptx": "nativeChart | shapeChart",
121
+ "channel": "registry"
122
+ },
123
+ {
124
+ "id": "secondary",
125
+ "role": "secondary",
126
+ "required": false,
127
+ "html": "要点列表",
128
+ "pptx": "side bullets"
129
+ },
130
+ {
131
+ "id": "annotation",
132
+ "role": "annotation",
133
+ "required": true,
134
+ "html": ".exhibit__src / .sowhat",
135
+ "pptx": "footnoteLine / soWhatBar / notes"
136
+ }
137
+ ]
138
+ },
139
+ "split": {
140
+ "mode": [
141
+ "presentation",
142
+ "research",
143
+ "architecture"
144
+ ],
145
+ "slots": [
146
+ {
147
+ "id": "head",
148
+ "role": "chrome",
149
+ "required": true,
150
+ "html": ".shead",
151
+ "pptx": "head()"
152
+ },
153
+ {
154
+ "id": "left",
155
+ "role": "primary",
156
+ "required": true,
157
+ "html": "左区(points/table/image/chart)",
158
+ "pptx": "left zone"
159
+ },
160
+ {
161
+ "id": "right",
162
+ "role": "secondary",
163
+ "required": true,
164
+ "html": "右区(points/table/image/chart)",
165
+ "pptx": "right zone"
166
+ },
167
+ {
168
+ "id": "annotation",
169
+ "role": "annotation",
170
+ "required": false,
171
+ "html": ".sowhat / .note",
172
+ "pptx": "soWhatBar"
173
+ }
174
+ ]
175
+ },
176
+ "table": {
177
+ "mode": [
178
+ "presentation",
179
+ "research"
180
+ ],
181
+ "slots": [
182
+ {
183
+ "id": "head",
184
+ "role": "chrome",
185
+ "required": true,
186
+ "html": ".shead",
187
+ "pptx": "head()"
188
+ },
189
+ {
190
+ "id": "primary",
191
+ "role": "primary",
192
+ "required": true,
193
+ "html": ".tbl-wrap table",
194
+ "pptx": "addTable",
195
+ "maxRows": {
196
+ "presentation": 8,
197
+ "research": 16
198
+ }
199
+ },
200
+ {
201
+ "id": "annotation",
202
+ "role": "annotation",
203
+ "required": false,
204
+ "html": ".sowhat / .note",
205
+ "pptx": "soWhatBar / footnoteLine"
206
+ }
207
+ ]
208
+ },
209
+ "bar": {
210
+ "mode": [
211
+ "presentation",
212
+ "research",
213
+ "architecture"
214
+ ],
215
+ "slots": [
216
+ {
217
+ "id": "head",
218
+ "role": "chrome",
219
+ "required": true,
220
+ "html": ".shead",
221
+ "pptx": "head()"
222
+ },
223
+ {
224
+ "id": "primary",
225
+ "role": "primary",
226
+ "required": true,
227
+ "html": "svg[data-chart]",
228
+ "pptx": "nativeChart | shapeChart",
229
+ "channel": "registry"
230
+ },
231
+ {
232
+ "id": "annotation",
233
+ "role": "annotation",
234
+ "required": true,
235
+ "html": "note / dataTable",
236
+ "pptx": "footnoteLine / notes / inline table"
237
+ }
238
+ ]
239
+ },
240
+ "donut": {
241
+ "mode": [
242
+ "presentation",
243
+ "research"
244
+ ],
245
+ "slots": [
246
+ {
247
+ "id": "head",
248
+ "role": "chrome",
249
+ "required": true,
250
+ "html": ".shead",
251
+ "pptx": "head()"
252
+ },
253
+ {
254
+ "id": "primary",
255
+ "role": "primary",
256
+ "required": true,
257
+ "html": "svg[data-chart=donut]",
258
+ "pptx": "addChart doughnut"
259
+ },
260
+ {
261
+ "id": "annotation",
262
+ "role": "annotation",
263
+ "required": false,
264
+ "html": "中心合计 / 图例 / .note",
265
+ "pptx": "center label / legend / notes"
266
+ }
267
+ ]
268
+ },
269
+ "twocol": {
270
+ "mode": [
271
+ "research"
272
+ ],
273
+ "slots": [
274
+ {
275
+ "id": "head",
276
+ "role": "chrome",
277
+ "required": true,
278
+ "html": ".shead",
279
+ "pptx": "head()"
280
+ },
281
+ {
282
+ "id": "primary",
283
+ "role": "primary",
284
+ "required": true,
285
+ "html": ".cols-2",
286
+ "pptx": "two text columns"
287
+ },
288
+ {
289
+ "id": "annotation",
290
+ "role": "annotation",
291
+ "required": false,
292
+ "html": ".sowhat",
293
+ "pptx": "soWhatBar"
294
+ }
295
+ ]
296
+ },
297
+ "threecol": {
298
+ "mode": [
299
+ "research"
300
+ ],
301
+ "slots": [
302
+ {
303
+ "id": "head",
304
+ "role": "chrome",
305
+ "required": true,
306
+ "html": ".shead",
307
+ "pptx": "head()"
308
+ },
309
+ {
310
+ "id": "primary",
311
+ "role": "primary",
312
+ "required": true,
313
+ "html": ".cols-3",
314
+ "pptx": "three text columns"
315
+ },
316
+ {
317
+ "id": "annotation",
318
+ "role": "annotation",
319
+ "required": false,
320
+ "html": ".sowhat",
321
+ "pptx": "soWhatBar"
322
+ }
323
+ ]
324
+ },
325
+ "halftable": {
326
+ "mode": [
327
+ "research"
328
+ ],
329
+ "slots": [
330
+ {
331
+ "id": "head",
332
+ "role": "chrome",
333
+ "required": true,
334
+ "html": ".shead",
335
+ "pptx": "head()"
336
+ },
337
+ {
338
+ "id": "primary",
339
+ "role": "primary",
340
+ "required": true,
341
+ "html": "左表",
342
+ "pptx": "addTable left"
343
+ },
344
+ {
345
+ "id": "secondary",
346
+ "role": "secondary",
347
+ "required": true,
348
+ "html": "右图",
349
+ "pptx": "chart right"
350
+ },
351
+ {
352
+ "id": "annotation",
353
+ "role": "annotation",
354
+ "required": false,
355
+ "html": ".sowhat",
356
+ "pptx": "soWhatBar"
357
+ }
358
+ ]
359
+ },
360
+ "matrix": {
361
+ "mode": [
362
+ "research"
363
+ ],
364
+ "slots": [
365
+ {
366
+ "id": "head",
367
+ "role": "chrome",
368
+ "required": true,
369
+ "html": ".shead",
370
+ "pptx": "head()"
371
+ },
372
+ {
373
+ "id": "primary",
374
+ "role": "primary",
375
+ "required": true,
376
+ "html": ".matrix",
377
+ "pptx": "matrix cells"
378
+ },
379
+ {
380
+ "id": "annotation",
381
+ "role": "annotation",
382
+ "required": false,
383
+ "html": ".sowhat",
384
+ "pptx": "soWhatBar"
385
+ }
386
+ ]
387
+ },
388
+ "comparison": {
389
+ "mode": [
390
+ "presentation",
391
+ "research"
392
+ ],
393
+ "slots": [
394
+ {
395
+ "id": "head",
396
+ "role": "chrome",
397
+ "required": true,
398
+ "html": ".shead",
399
+ "pptx": "head()"
400
+ },
401
+ {
402
+ "id": "left",
403
+ "role": "primary",
404
+ "required": true,
405
+ "html": "左面板",
406
+ "pptx": "left panel"
407
+ },
408
+ {
409
+ "id": "right",
410
+ "role": "secondary",
411
+ "required": true,
412
+ "html": "右面板",
413
+ "pptx": "right panel"
414
+ },
415
+ {
416
+ "id": "annotation",
417
+ "role": "annotation",
418
+ "required": false,
419
+ "html": "verdict / .sowhat",
420
+ "pptx": "verdict bar"
421
+ }
422
+ ]
423
+ },
424
+ "quote": {
425
+ "mode": [
426
+ "presentation",
427
+ "research"
428
+ ],
429
+ "slots": [
430
+ {
431
+ "id": "head",
432
+ "role": "chrome",
433
+ "required": true,
434
+ "html": ".shead",
435
+ "pptx": "head()"
436
+ },
437
+ {
438
+ "id": "primary",
439
+ "role": "primary",
440
+ "required": true,
441
+ "html": "金句正文",
442
+ "pptx": "quote text"
443
+ }
444
+ ]
445
+ },
446
+ "timeline": {
447
+ "mode": [
448
+ "presentation",
449
+ "research"
450
+ ],
451
+ "slots": [
452
+ {
453
+ "id": "head",
454
+ "role": "chrome",
455
+ "required": true,
456
+ "html": ".shead",
457
+ "pptx": "head()"
458
+ },
459
+ {
460
+ "id": "primary",
461
+ "role": "primary",
462
+ "required": true,
463
+ "html": ".tl",
464
+ "pptx": "timeline axis"
465
+ }
466
+ ]
467
+ },
468
+ "steps": {
469
+ "mode": [
470
+ "presentation",
471
+ "architecture"
472
+ ],
473
+ "slots": [
474
+ {
475
+ "id": "head",
476
+ "role": "chrome",
477
+ "required": true,
478
+ "html": ".shead",
479
+ "pptx": "head()"
480
+ },
481
+ {
482
+ "id": "primary",
483
+ "role": "primary",
484
+ "required": true,
485
+ "html": ".steps",
486
+ "pptx": "step row"
487
+ }
488
+ ]
489
+ },
490
+ "cards": {
491
+ "mode": [
492
+ "presentation",
493
+ "research"
494
+ ],
495
+ "slots": [
496
+ {
497
+ "id": "head",
498
+ "role": "chrome",
499
+ "required": true,
500
+ "html": ".shead",
501
+ "pptx": "head()"
502
+ },
503
+ {
504
+ "id": "primary",
505
+ "role": "primary",
506
+ "required": true,
507
+ "html": ".card grid",
508
+ "pptx": "card grid"
509
+ }
510
+ ]
511
+ },
512
+ "heatmap": {
513
+ "mode": [
514
+ "presentation",
515
+ "research"
516
+ ],
517
+ "slots": [
518
+ {
519
+ "id": "head",
520
+ "role": "chrome",
521
+ "required": true,
522
+ "html": ".shead",
523
+ "pptx": "head()"
524
+ },
525
+ {
526
+ "id": "primary",
527
+ "role": "primary",
528
+ "required": true,
529
+ "html": ".heat",
530
+ "pptx": "heat cells"
531
+ }
532
+ ]
533
+ },
534
+ "bullet": {
535
+ "mode": [
536
+ "presentation",
537
+ "research"
538
+ ],
539
+ "slots": [
540
+ {
541
+ "id": "head",
542
+ "role": "chrome",
543
+ "required": true,
544
+ "html": ".shead",
545
+ "pptx": "head()"
546
+ },
547
+ {
548
+ "id": "primary",
549
+ "role": "primary",
550
+ "required": true,
551
+ "html": ".bul",
552
+ "pptx": "bullet rows"
553
+ }
554
+ ]
555
+ },
556
+ "pyramid": {
557
+ "mode": [
558
+ "presentation",
559
+ "research"
560
+ ],
561
+ "slots": [
562
+ {
563
+ "id": "head",
564
+ "role": "chrome",
565
+ "required": true,
566
+ "html": ".shead",
567
+ "pptx": "head()"
568
+ },
569
+ {
570
+ "id": "primary",
571
+ "role": "primary",
572
+ "required": true,
573
+ "html": ".pyr",
574
+ "pptx": "pyramid layers"
575
+ }
576
+ ]
577
+ },
578
+ "image": {
579
+ "mode": [
580
+ "presentation",
581
+ "research",
582
+ "architecture"
583
+ ],
584
+ "slots": [
585
+ {
586
+ "id": "head",
587
+ "role": "chrome",
588
+ "required": true,
589
+ "html": ".shead",
590
+ "pptx": "head()"
591
+ },
592
+ {
593
+ "id": "primary",
594
+ "role": "primary",
595
+ "required": true,
596
+ "html": ".media*",
597
+ "pptx": "imageLayoutShapes"
598
+ }
599
+ ]
600
+ },
601
+ "diagram": {
602
+ "mode": [
603
+ "architecture",
604
+ "research"
605
+ ],
606
+ "slots": [
607
+ {
608
+ "id": "head",
609
+ "role": "chrome",
610
+ "required": true,
611
+ "html": ".shead",
612
+ "pptx": "head()"
613
+ },
614
+ {
615
+ "id": "primary",
616
+ "role": "primary",
617
+ "required": true,
618
+ "html": ".arch / layers",
619
+ "pptx": "layered nodes + edges",
620
+ "maxNodes": 24,
621
+ "maxLayers": 4
622
+ },
623
+ {
624
+ "id": "annotation",
625
+ "role": "annotation",
626
+ "required": false,
627
+ "html": ".arch__legend / .note",
628
+ "pptx": "legend chips / notes"
629
+ }
630
+ ]
631
+ },
632
+ "lane": {
633
+ "mode": [
634
+ "architecture",
635
+ "research"
636
+ ],
637
+ "slots": [
638
+ {
639
+ "id": "head",
640
+ "role": "chrome",
641
+ "required": true,
642
+ "html": ".shead",
643
+ "pptx": "head()"
644
+ },
645
+ {
646
+ "id": "primary",
647
+ "role": "primary",
648
+ "required": true,
649
+ "html": ".lane",
650
+ "pptx": "lanes + steps"
651
+ }
652
+ ]
653
+ },
654
+ "sankey": {
655
+ "mode": [
656
+ "research",
657
+ "architecture"
658
+ ],
659
+ "slots": [
660
+ {
661
+ "id": "head",
662
+ "role": "chrome",
663
+ "required": true,
664
+ "html": ".shead",
665
+ "pptx": "head()"
666
+ },
667
+ {
668
+ "id": "primary",
669
+ "role": "primary",
670
+ "required": true,
671
+ "html": "svg[data-chart=sankey]",
672
+ "pptx": "infoSankey",
673
+ "maxNodes": 12
674
+ },
675
+ {
676
+ "id": "annotation",
677
+ "role": "annotation",
678
+ "required": true,
679
+ "html": "dataTable / .note",
680
+ "pptx": "notes"
681
+ }
682
+ ]
683
+ },
684
+ "treemap": {
685
+ "mode": [
686
+ "research",
687
+ "architecture"
688
+ ],
689
+ "slots": [
690
+ {
691
+ "id": "head",
692
+ "role": "chrome",
693
+ "required": true,
694
+ "html": ".shead",
695
+ "pptx": "head()"
696
+ },
697
+ {
698
+ "id": "primary",
699
+ "role": "primary",
700
+ "required": true,
701
+ "html": "svg[data-chart=treemap]",
702
+ "pptx": "infoTreemap"
703
+ },
704
+ {
705
+ "id": "annotation",
706
+ "role": "annotation",
707
+ "required": true,
708
+ "html": "dataTable / .note",
709
+ "pptx": "notes"
710
+ }
711
+ ]
712
+ },
713
+ "boxplot": {
714
+ "mode": [
715
+ "research",
716
+ "architecture"
717
+ ],
718
+ "slots": [
719
+ {
720
+ "id": "head",
721
+ "role": "chrome",
722
+ "required": true,
723
+ "html": ".shead",
724
+ "pptx": "head()"
725
+ },
726
+ {
727
+ "id": "primary",
728
+ "role": "primary",
729
+ "required": true,
730
+ "html": "svg[data-chart=boxplot]",
731
+ "pptx": "infoBoxplot"
732
+ },
733
+ {
734
+ "id": "annotation",
735
+ "role": "annotation",
736
+ "required": true,
737
+ "html": "dataTable / .note",
738
+ "pptx": "notes"
739
+ }
740
+ ]
741
+ },
742
+ "network": {
743
+ "mode": [
744
+ "research",
745
+ "architecture"
746
+ ],
747
+ "slots": [
748
+ {
749
+ "id": "head",
750
+ "role": "chrome",
751
+ "required": true,
752
+ "html": ".shead",
753
+ "pptx": "head()"
754
+ },
755
+ {
756
+ "id": "primary",
757
+ "role": "primary",
758
+ "required": true,
759
+ "html": "svg[data-chart=network]",
760
+ "pptx": "infoNetwork"
761
+ },
762
+ {
763
+ "id": "annotation",
764
+ "role": "annotation",
765
+ "required": true,
766
+ "html": "dataTable / .note",
767
+ "pptx": "notes"
768
+ }
769
+ ]
770
+ },
771
+ "marimekko": {
772
+ "mode": [
773
+ "research",
774
+ "architecture"
775
+ ],
776
+ "slots": [
777
+ {
778
+ "id": "head",
779
+ "role": "chrome",
780
+ "required": true,
781
+ "html": ".shead",
782
+ "pptx": "head()"
783
+ },
784
+ {
785
+ "id": "primary",
786
+ "role": "primary",
787
+ "required": true,
788
+ "html": "svg[data-chart=marimekko]",
789
+ "pptx": "infoMarimekko"
790
+ },
791
+ {
792
+ "id": "annotation",
793
+ "role": "annotation",
794
+ "required": true,
795
+ "html": "dataTable / .note",
796
+ "pptx": "notes"
797
+ }
798
+ ]
799
+ },
800
+ "streamgraph": {
801
+ "mode": [
802
+ "research",
803
+ "architecture"
804
+ ],
805
+ "slots": [
806
+ {
807
+ "id": "head",
808
+ "role": "chrome",
809
+ "required": true,
810
+ "html": ".shead",
811
+ "pptx": "head()"
812
+ },
813
+ {
814
+ "id": "primary",
815
+ "role": "primary",
816
+ "required": true,
817
+ "html": "svg[data-chart=streamgraph]",
818
+ "pptx": "infoStreamgraph"
819
+ },
820
+ {
821
+ "id": "annotation",
822
+ "role": "annotation",
823
+ "required": true,
824
+ "html": "dataTable / .note",
825
+ "pptx": "notes"
826
+ }
827
+ ]
828
+ }
829
+ }
830
+ }