pptx-ts 0.0.1 → 4.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.
Files changed (136) hide show
  1. package/README.md +116 -269
  2. package/dist/autopage-odPz7zZO.js +536 -0
  3. package/dist/autopage-odPz7zZO.js.map +1 -0
  4. package/dist/binary-string-CKVAYI3M.js +24 -0
  5. package/dist/binary-string-CKVAYI3M.js.map +1 -0
  6. package/dist/body-insets-Dw_BeWD_.js +54 -0
  7. package/dist/body-insets-Dw_BeWD_.js.map +1 -0
  8. package/dist/browser.d.ts +29 -9
  9. package/dist/browser.d.ts.map +1 -1
  10. package/dist/browser.js +41 -14
  11. package/dist/browser.js.map +1 -1
  12. package/dist/clip-Bl01BPcN.d.ts +67 -0
  13. package/dist/clip-Bl01BPcN.d.ts.map +1 -0
  14. package/dist/diagnostics-D8ot4Ei7.d.ts +244 -0
  15. package/dist/diagnostics-D8ot4Ei7.d.ts.map +1 -0
  16. package/dist/embedded-fonts-DarT9aoa.d.ts +20 -0
  17. package/dist/embedded-fonts-DarT9aoa.d.ts.map +1 -0
  18. package/dist/entry-compose-DCnvBZz2.d.ts +1046 -0
  19. package/dist/entry-compose-DCnvBZz2.d.ts.map +1 -0
  20. package/dist/{enums-CvRYniUA.d.ts → enums-BUKTUB6V.d.ts} +21 -13
  21. package/dist/{enums-CvRYniUA.d.ts.map → enums-BUKTUB6V.d.ts.map} +1 -1
  22. package/dist/{errors-Bvln0H-7.js → errors-C4oENPcu.js} +92 -2
  23. package/dist/errors-C4oENPcu.js.map +1 -0
  24. package/dist/families.d.ts +260 -0
  25. package/dist/families.d.ts.map +1 -0
  26. package/dist/families.js +57 -0
  27. package/dist/families.js.map +1 -0
  28. package/dist/{fit-BKs0zxMI.js → fit-Cb7naFj6.js} +249 -167
  29. package/dist/fit-Cb7naFj6.js.map +1 -0
  30. package/dist/font-metrics-v5fn7s7e.d.ts +613 -0
  31. package/dist/font-metrics-v5fn7s7e.d.ts.map +1 -0
  32. package/dist/grid-DikTjFey.js +187 -0
  33. package/dist/grid-DikTjFey.js.map +1 -0
  34. package/dist/{html-dom-B0I0QSbU.js → html-dom-Iuog2wdK.js} +121 -91
  35. package/dist/html-dom-Iuog2wdK.js.map +1 -0
  36. package/dist/html.d.ts +6 -6
  37. package/dist/html.d.ts.map +1 -1
  38. package/dist/html.js +7 -6
  39. package/dist/html.js.map +1 -1
  40. package/dist/image-size-CvN2iCA4.js +1611 -0
  41. package/dist/image-size-CvN2iCA4.js.map +1 -0
  42. package/dist/index.d.ts +24 -10
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +31 -11
  45. package/dist/index.js.map +1 -1
  46. package/dist/inspect.d.ts +40 -31
  47. package/dist/inspect.d.ts.map +1 -1
  48. package/dist/inspect.js +40 -48
  49. package/dist/inspect.js.map +1 -1
  50. package/dist/math.d.ts +7 -5
  51. package/dist/math.d.ts.map +1 -1
  52. package/dist/math.js +16 -7
  53. package/dist/math.js.map +1 -1
  54. package/dist/measure.d.ts +12 -225
  55. package/dist/measure.d.ts.map +1 -1
  56. package/dist/measure.js +3 -3
  57. package/dist/node.d.ts +22 -8
  58. package/dist/node.d.ts.map +1 -1
  59. package/dist/node.js +27 -7
  60. package/dist/node.js.map +1 -1
  61. package/dist/notes-Dh12JAbn.js +3264 -0
  62. package/dist/notes-Dh12JAbn.js.map +1 -0
  63. package/dist/options-internal-WqgMf720.js +43 -0
  64. package/dist/options-internal-WqgMf720.js.map +1 -0
  65. package/dist/{package-CaOLXSNi.d.ts → package-J49Ck6S2.d.ts} +27 -12
  66. package/dist/package-J49Ck6S2.d.ts.map +1 -0
  67. package/dist/playbtn-CUqQdoDf.js +22 -0
  68. package/dist/playbtn-CUqQdoDf.js.map +1 -0
  69. package/dist/{slide-js0QpRV-.d.ts → pres-C6qgOFAa.d.ts} +1021 -1370
  70. package/dist/pres-C6qgOFAa.d.ts.map +1 -0
  71. package/dist/{presentation-Cp7vzlAw.js → presentation-DGYlAWhl.js} +3208 -2727
  72. package/dist/presentation-DGYlAWhl.js.map +1 -0
  73. package/dist/{presentation-types-DP_8jog7.d.ts → presentation-types-8jLQHI4M.d.ts} +1070 -683
  74. package/dist/presentation-types-8jLQHI4M.d.ts.map +1 -0
  75. package/dist/read.d.ts +9 -9
  76. package/dist/read.d.ts.map +1 -1
  77. package/dist/read.js +4 -4
  78. package/dist/script.d.ts +80 -66
  79. package/dist/script.d.ts.map +1 -1
  80. package/dist/script.js +2399 -1139
  81. package/dist/script.js.map +1 -1
  82. package/dist/{shapes-BemroU-z.js → shapes-re0KyQk_.js} +2807 -1609
  83. package/dist/shapes-re0KyQk_.js.map +1 -0
  84. package/dist/slide-Dx2ZeVZ6.d.ts +1256 -0
  85. package/dist/slide-Dx2ZeVZ6.d.ts.map +1 -0
  86. package/dist/slide-size-BalTjFuv.js +88 -0
  87. package/dist/slide-size-BalTjFuv.js.map +1 -0
  88. package/dist/{units-internal-Dg95w_YD.js → table-cell-margins-EVg0EwxT.js} +235 -273
  89. package/dist/table-cell-margins-EVg0EwxT.js.map +1 -0
  90. package/dist/table-dom-BTDP3lEP.js +21 -0
  91. package/dist/table-dom-BTDP3lEP.js.map +1 -0
  92. package/dist/text-KnLOtEEu.js +3980 -0
  93. package/dist/text-KnLOtEEu.js.map +1 -0
  94. package/dist/text-anchor-CrYXAfUu.js +176 -0
  95. package/dist/text-anchor-CrYXAfUu.js.map +1 -0
  96. package/dist/transition-speed-kUEWDWTx.js +14 -0
  97. package/dist/transition-speed-kUEWDWTx.js.map +1 -0
  98. package/dist/units-internal-XJlf-hOl.js +649 -0
  99. package/dist/units-internal-XJlf-hOl.js.map +1 -0
  100. package/dist/zip-C0leZZMj.d.ts +67 -0
  101. package/dist/zip-C0leZZMj.d.ts.map +1 -0
  102. package/dist/zip-CKd8ihcf.js +177 -0
  103. package/dist/zip-CKd8ihcf.js.map +1 -0
  104. package/dist/zip.d.ts +3 -68
  105. package/dist/zip.js +3 -163
  106. package/dist/zoom-cX9sllpH.js +8865 -0
  107. package/dist/zoom-cX9sllpH.js.map +1 -0
  108. package/package.json +106 -19
  109. package/skills/ts-pptx-upstream/SKILL.md +58 -57
  110. package/dist/autopage-DkjYZUFD.js +0 -423
  111. package/dist/autopage-DkjYZUFD.js.map +0 -1
  112. package/dist/diagnostics-Du_s75MT.d.ts +0 -829
  113. package/dist/diagnostics-Du_s75MT.d.ts.map +0 -1
  114. package/dist/errors-Bvln0H-7.js.map +0 -1
  115. package/dist/errors-PflMPWBn.d.ts +0 -182
  116. package/dist/errors-PflMPWBn.d.ts.map +0 -1
  117. package/dist/fit-BKs0zxMI.js.map +0 -1
  118. package/dist/html-dom-B0I0QSbU.js.map +0 -1
  119. package/dist/namespaces-BVnNu7sg.js +0 -666
  120. package/dist/namespaces-BVnNu7sg.js.map +0 -1
  121. package/dist/notes-RLCwdlTE.js +0 -1703
  122. package/dist/notes-RLCwdlTE.js.map +0 -1
  123. package/dist/package-CaOLXSNi.d.ts.map +0 -1
  124. package/dist/pres-C5__xkDh.d.ts +0 -202
  125. package/dist/pres-C5__xkDh.d.ts.map +0 -1
  126. package/dist/presentation-Cp7vzlAw.js.map +0 -1
  127. package/dist/presentation-types-DP_8jog7.d.ts.map +0 -1
  128. package/dist/shapes-BemroU-z.js.map +0 -1
  129. package/dist/slide-js0QpRV-.d.ts.map +0 -1
  130. package/dist/text-CyetbF6p.js +0 -11278
  131. package/dist/text-CyetbF6p.js.map +0 -1
  132. package/dist/units-1kRzYShk.js +0 -231
  133. package/dist/units-1kRzYShk.js.map +0 -1
  134. package/dist/units-internal-Dg95w_YD.js.map +0 -1
  135. package/dist/zip.d.ts.map +0 -1
  136. package/dist/zip.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ //#region src/options-internal.ts
2
+ /**
3
+ * Write a normalized value onto an option bag, spelling "no value" as an *absent* key.
4
+ *
5
+ * Reach for this wherever a normalizer's result may be nothing —
6
+ * `setOrClear(opts, 'holeSize', clampChartPct(opts.holeSize, 10, 90, 'holeSize'))` — rather than
7
+ * assigning the result directly, which leaves the caller's rejected value replaced by an
8
+ * `undefined` instead of removed.
9
+ *
10
+ * Only optional keys are accepted, so this cannot be used to unset something required.
11
+ * @param bag - the options bag to write onto
12
+ * @param key - the key to set or remove
13
+ * @param value - the normalized value, or `undefined` to remove the key
14
+ */
15
+ function setOrClear(bag, key, value) {
16
+ if (value === void 0) delete bag[key];
17
+ else bag[key] = value;
18
+ }
19
+ /**
20
+ * The named properties of `source` that are actually set, as a new object.
21
+ *
22
+ * For the other shape this problem takes: a literal that projects a fixed key list off a bag that
23
+ * may not state them all (`{ x: opts.x, y: opts.y, rotate: opts.rotate, … }`), which writes a key
24
+ * for every name whether or not the source had one. Naming the keys once is also shorter than
25
+ * spelling out the copy, and it cannot drift from itself the way a hand-written list can.
26
+ *
27
+ * Every key comes back optional and with `undefined` excluded from its type, which is the whole
28
+ * claim: what this returns is the subset that was actually stated.
29
+ * @param source - the bag to read from
30
+ * @param keys - the keys to carry over
31
+ */
32
+ function pickDefined(source, keys) {
33
+ const out = {};
34
+ for (const key of keys) {
35
+ const value = source[key];
36
+ if (value !== void 0) out[key] = value;
37
+ }
38
+ return out;
39
+ }
40
+ //#endregion
41
+ export { setOrClear as n, pickDefined as t };
42
+
43
+ //# sourceMappingURL=options-internal-WqgMf720.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-internal-WqgMf720.js","names":[],"sources":["../src/options-internal.ts"],"sourcesContent":["/**\n * ts-pptx: option-bag normalization helpers — one spelling of absent.\n *\n * `exactOptionalPropertyTypes` draws a line this library needs drawn: a `foo?: T` declaration says\n * the key is either *missing* or holds a `T`, and a key present with an `undefined` in it is a\n * third state. Readers here cannot see that state — every option is read with truthiness or `?.`\n * — but spreads can, and the generator spreads these bags constantly: a layout placeholder's\n * options onto a slide's, a column default under a cell's own, a combo subchart's overrides onto\n * the chart's. There the side that wins is decided by whether the key *exists*, not by what it\n * holds, so \"the caller said nothing\" and \"the caller said nothing, in writing\" produce different\n * output.\n *\n * These two helpers are how a normalizer stays on the right side of that. They are the write-side\n * twin of `compact()` (`script/from-read/values.ts`), which keeps the same invariant on the read\n * side and for the same reason.\n *\n * Internal: nothing here is exported from an entrypoint, the same way `constants-internal.ts` and\n * `units-internal.ts` are not.\n */\n\nimport type { OptionalKeysOf } from './types/internal.js'\n\n/**\n * Write a normalized value onto an option bag, spelling \"no value\" as an *absent* key.\n *\n * Reach for this wherever a normalizer's result may be nothing —\n * `setOrClear(opts, 'holeSize', clampChartPct(opts.holeSize, 10, 90, 'holeSize'))` — rather than\n * assigning the result directly, which leaves the caller's rejected value replaced by an\n * `undefined` instead of removed.\n *\n * Only optional keys are accepted, so this cannot be used to unset something required.\n * @param bag - the options bag to write onto\n * @param key - the key to set or remove\n * @param value - the normalized value, or `undefined` to remove the key\n */\nexport function setOrClear<T extends object, K extends OptionalKeysOf<T> & keyof T>(bag: T, key: K, value: T[K]): void {\n\tif (value === undefined) delete bag[key]\n\telse bag[key] = value\n}\n\n/**\n * The named properties of `source` that are actually set, as a new object.\n *\n * For the other shape this problem takes: a literal that projects a fixed key list off a bag that\n * may not state them all (`{ x: opts.x, y: opts.y, rotate: opts.rotate, … }`), which writes a key\n * for every name whether or not the source had one. Naming the keys once is also shorter than\n * spelling out the copy, and it cannot drift from itself the way a hand-written list can.\n *\n * Every key comes back optional and with `undefined` excluded from its type, which is the whole\n * claim: what this returns is the subset that was actually stated.\n * @param source - the bag to read from\n * @param keys - the keys to carry over\n */\nexport function pickDefined<T extends object, K extends keyof T>(\n\tsource: T,\n\tkeys: readonly K[]\n): { [P in K]?: Exclude<T[P], undefined> } {\n\tconst out: { [P in K]?: Exclude<T[P], undefined> } = {}\n\tfor (const key of keys) {\n\t\tconst value = source[key]\n\t\tif (value !== undefined) out[key] = value as Exclude<T[K], undefined>\n\t}\n\treturn out\n}\n"],"mappings":";;;;;;;;;;;;;;AAmCA,SAAgB,WAAoE,KAAQ,KAAQ,OAAmB;CACtH,IAAI,UAAU,KAAA,GAAW,OAAO,IAAI;MAC/B,IAAI,OAAO;AACjB;;;;;;;;;;;;;;AAeA,SAAgB,YACf,QACA,MAC0C;CAC1C,MAAM,MAA+C,CAAC;CACtD,KAAK,MAAM,OAAO,MAAM;EACvB,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GAAW,IAAI,OAAO;CACrC;CACA,OAAO;AACR"}
@@ -48,8 +48,16 @@ declare class Part {
48
48
  get isXmlPart(): boolean;
49
49
  /** True once the body has been materialized as a DOM. */
50
50
  get isParsed(): boolean;
51
- /** The original bytes from the package. Do not mutate. */
52
- get bytes(): Uint8Array;
51
+ /**
52
+ * The bytes the part was loaded or created with. Do not mutate.
53
+ *
54
+ * **Not the part's current body.** An edit made through {@link dom} and
55
+ * {@link markDirty} is visible only through {@link serialize}. Anything that copies,
56
+ * compares or reads a part's content wants `serialize()`: every slide copy and import
57
+ * used to read this instead, and silently dropped each edit made earlier in the session.
58
+ * Named so a call site has to say which of the two it means.
59
+ */
60
+ get originalBytes(): Uint8Array;
53
61
  /**
54
62
  * Lazily parsed DOM for XML parts. Parsing alone does not mark the part
55
63
  * dirty; call `markDirty()` after mutating the tree.
@@ -59,8 +67,9 @@ declare class Part {
59
67
  markDirty(): void;
60
68
  get isDirty(): boolean;
61
69
  /**
62
- * Bytes to write on save: the original bytes when clean (byte-identical),
63
- * the serialized DOM when dirty (semantically equivalent, schema-valid).
70
+ * The part's current body, which is also what `save()` writes: the original bytes when
71
+ * clean (byte-identical), the serialized DOM when dirty (semantically equivalent,
72
+ * schema-valid). Copy a part through this, not {@link originalBytes}.
64
73
  */
65
74
  serialize(): Uint8Array;
66
75
  }
@@ -158,12 +167,14 @@ declare class OpcPackage {
158
167
  */
159
168
  addPart(partName: string, contentType: string, bytes: Uint8Array): Part;
160
169
  /**
161
- * Remove a part and return whether it existed. Drops its `Override` content-type
162
- * registration and any cached relationship set it owned, so a later `save()`
163
- * neither re-emits it nor flushes a stale `.rels` for it. Low-level: it does not
164
- * touch references *to* this part (dangling rels are the caller's concern) nor
165
- * cascade to parts this one referenced — see {@link Presentation.removeSlide}
166
- * for the slide-aware variant that unwires the presentation and prunes orphans.
170
+ * Remove a part and return whether it existed. Its `.rels` part goes with it, along with
171
+ * its `Override` content-type registration and any cached relationship set it owned, so a
172
+ * later `save()` neither re-emits it nor flushes a stale `.rels` for it. A relationship set
173
+ * belongs to its part: one left behind would come back as the relationships of the next part
174
+ * added under the same name. Low-level: it does not touch references *to* this part
175
+ * (dangling rels are the caller's concern) nor cascade to parts this one referenced — see
176
+ * {@link Presentation.removeSlide} for the slide-aware variant that unwires the presentation
177
+ * and prunes orphans.
167
178
  */
168
179
  removePart(partName: string): boolean;
169
180
  /**
@@ -179,8 +190,12 @@ declare class OpcPackage {
179
190
  * `/ppt/slideLayouts/slideLayout<n>.xml`, `/ppt/media/image1.png` →
180
191
  * `/ppt/media/image<n>.png`. Used when copying a part in from another package.
181
192
  * Does not create the part.
193
+ *
194
+ * `taken` names partnames to count as existing although the package does not hold them yet:
195
+ * an import plan's names for the parts it would add, so the names it predicts are the ones the
196
+ * copy itself is then given.
182
197
  */
183
- reservePartNameLike(templatePartName: string): string;
198
+ reservePartNameLike(templatePartName: string, taken?: ReadonlySet<string>): string;
184
199
  /**
185
200
  * Re-emit the package. Clean parts are written from their original bytes;
186
201
  * dirty parts from their DOM. Dirty relationship sets and content types are
@@ -190,4 +205,4 @@ declare class OpcPackage {
190
205
  }
191
206
  //#endregion
192
207
  export { Part as a, Relationships as i, OpcPackage as n, Element as o, Relationship as r, ContentTypes as s, OpcInput as t };
193
- //# sourceMappingURL=package-CaOLXSNi.d.ts.map
208
+ //# sourceMappingURL=package-J49Ck6S2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-J49Ck6S2.d.ts","names":[],"sources":["../src/read/opc/content-types.ts","../src/read/opc/part.ts","../src/read/opc/relationships.ts","../src/read/opc/package.ts"],"mappings":";;;;;;;;cAaa;;SAKL,MAAM,cAAc;;EAgC3B,eAAe;;MAKX;;;;;;;EAUJ,iBAAiB,kBAAkB;;;;;;EAWnC,eAAe;;EAKf,cAAc,mBAAmB;EAOjC;;;;;;;;;;;cCxEY;;WACH;WACA;EAKT,YAAY,kBAAkB,qBAAqB,OAAO;;MAOtD;;MAOA;;;;;;;;;;MAaA,iBAAiB;;;;;MAQjB,OAAO;;EAWX;MASI;;;;;;EASJ,aAAa;;;;UChFG;EAChB;EACA;EACA;EACA;;;;;;;;cASY;;;WAEH;UAIF;;;;;SAQA,MAAM,aAAa,yBAAyB;;SAuC5C,MAAM,yBAAyB;MAIlC;;MAKA;;;;;;;EAUJ,IAAI,cAAc,gBAAgB,uCAAuC;;;;;;;;EAgBzE,UAAU,YAAY,cAAc,gBAAgB,uCAAuC;;;;;;EA8B3F,OAAO;EASP,IAAI,aAAa;EAIjB,OAAO,eAAe;GAIrB,OAAO,aAAa,iBAAiB;;EAiBtC,cAAc;EAoBd;;;;;;;;;KCnLW,+BAA+B,aAAa,cAAc;;;;;;;;;cAezD;;;WAIH,cAAc;UAchB;;MAOH,SAAS,oBAAoB;SAIpB,KAAK,OAAO,WAAW,QAAQ;EA4B5C,KAAK,mBAAmB;EAIxB,mBAAmB,sBAAsB;;;;;EAoBzC,iBAAiB,0BAAuB;;;;;EAexC,QAAQ,kBAAkB,qBAAqB,OAAO,aAAa;;;;;;;;;;;EAuBnE,WAAW;;;;;EAgBX,qBAAqB,mBAAmB;;;;;;;;;;;;;;EAqBxC,oBAAoB,0BAA0B,QAAQ;;;;;;EAiChD,QAAQ,QAAQ"}
@@ -0,0 +1,22 @@
1
+ //#region src/media/playbtn.ts
2
+ /**
3
+ * The default poster frame for an embedded video: PowerPoint's play-button overlay.
4
+ *
5
+ * Alone in a module because of its size. 19,312 base64 characters is about 14 kB of PNG, and
6
+ * base64 of an already-compressed image barely deflates, so it is still the largest thing the
7
+ * write path can reach. The chunker splits by module, so every chunk reaching this module is
8
+ * charged the whole payload; keeping it alone is what lets `gen/media.ts` reach it through a
9
+ * dynamic import instead, and leave it out of the entry chunk.
10
+ *
11
+ * It is resolved during the async media pass, for a deck that actually carries media and only
12
+ * where the caller supplied no `cover` of their own — see `SlideRelMedia.isDefaultCover`.
13
+ *
14
+ * **Generated — do not hand-edit.** `scripts/gen-playbtn.mjs` draws it from measured geometry and
15
+ * writes this file; that script's header is where the design and its two deliberate departures
16
+ * from the original artwork are written down. `pnpm run media:playbtn` rewrites it.
17
+ */
18
+ const IMG_PLAYBTN = "data:image/png;base64,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5OTk1HVDcU43fo2Q+8EHH3xkRRcABGAAKLi4q/iaa675PAzPnTu3ZdasWScNx3V1dRc0NTVNBeqxsbGhycnJkwbV9957b+To0aOf36n78ssvj7hjFwAEYAAAAPijzlUCAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAgET+L42bXdU+VqmBAAAAAElFTkSuQmCC";
19
+ //#endregion
20
+ export { IMG_PLAYBTN };
21
+
22
+ //# sourceMappingURL=playbtn-CUqQdoDf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbtn-CUqQdoDf.js","names":[],"sources":["../src/media/playbtn.ts"],"sourcesContent":["/**\n * The default poster frame for an embedded video: PowerPoint's play-button overlay.\n *\n * Alone in a module because of its size. 19,312 base64 characters is about 14 kB of PNG, and\n * base64 of an already-compressed image barely deflates, so it is still the largest thing the\n * write path can reach. The chunker splits by module, so every chunk reaching this module is\n * charged the whole payload; keeping it alone is what lets `gen/media.ts` reach it through a\n * dynamic import instead, and leave it out of the entry chunk.\n *\n * It is resolved during the async media pass, for a deck that actually carries media and only\n * where the caller supplied no `cover` of their own — see `SlideRelMedia.isDefaultCover`.\n *\n * **Generated — do not hand-edit.** `scripts/gen-playbtn.mjs` draws it from measured geometry and\n * writes this file; that script's header is where the design and its two deliberate departures\n * from the original artwork are written down. `pnpm run media:playbtn` rewrites it.\n */\nexport const IMG_PLAYBTN =\n\t'data:image/png;base64,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5OTk1HVDcU43fo2Q+8EHH3xkRRcABGAAKLi4q/iaa675PAzPnTu3ZdasWScNx3V1dRc0NTVNBeqxsbGhycnJkwbV9957b+To0aOf36n78ssvj7hjFwAEYAAAAPijzlUCAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAgET+L42bXdU+VqmBAAAAAElFTkSuQmCC'\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,MAAa,cACZ"}