pptx-ts 4.0.0 → 4.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 (95) hide show
  1. package/README.md +147 -114
  2. package/dist/{autopage-odPz7zZO.js → autopage-D4kyVp11.js} +5 -5
  3. package/dist/{autopage-odPz7zZO.js.map → autopage-D4kyVp11.js.map} +1 -1
  4. package/dist/{body-insets-Dw_BeWD_.js → body-insets-kVHmjGc6.js} +2 -2
  5. package/dist/{body-insets-Dw_BeWD_.js.map → body-insets-kVHmjGc6.js.map} +1 -1
  6. package/dist/browser.d.ts +7 -7
  7. package/dist/browser.js +5 -5
  8. package/dist/{clip-Bl01BPcN.d.ts → clip-DHDlnHUq.d.ts} +2 -2
  9. package/dist/{clip-Bl01BPcN.d.ts.map → clip-DHDlnHUq.d.ts.map} +1 -1
  10. package/dist/{diagnostics-D8ot4Ei7.d.ts → diagnostics-DiMmBU8P.d.ts} +6 -6
  11. package/dist/{diagnostics-D8ot4Ei7.d.ts.map → diagnostics-DiMmBU8P.d.ts.map} +1 -1
  12. package/dist/{embedded-fonts-DarT9aoa.d.ts → embedded-fonts-CI_YGW2d.d.ts} +2 -2
  13. package/dist/{embedded-fonts-DarT9aoa.d.ts.map → embedded-fonts-CI_YGW2d.d.ts.map} +1 -1
  14. package/dist/{entry-compose-DCnvBZz2.d.ts → entry-compose-6hF9aTmT.d.ts} +19 -17
  15. package/dist/{entry-compose-DCnvBZz2.d.ts.map → entry-compose-6hF9aTmT.d.ts.map} +1 -1
  16. package/dist/{enums-BUKTUB6V.d.ts → enums-DQRpVOLh.d.ts} +3 -3
  17. package/dist/{enums-BUKTUB6V.d.ts.map → enums-DQRpVOLh.d.ts.map} +1 -1
  18. package/dist/{errors-C4oENPcu.js → errors-Da2nXCJm.js} +6 -6
  19. package/dist/{errors-C4oENPcu.js.map → errors-Da2nXCJm.js.map} +1 -1
  20. package/dist/families.d.ts +6 -6
  21. package/dist/families.js +2 -2
  22. package/dist/{fit-Cb7naFj6.js → fit-CcXbg__l.js} +10 -10
  23. package/dist/{fit-Cb7naFj6.js.map → fit-CcXbg__l.js.map} +1 -1
  24. package/dist/{font-metrics-v5fn7s7e.d.ts → font-metrics-CBGmhLo0.d.ts} +6 -6
  25. package/dist/{font-metrics-v5fn7s7e.d.ts.map → font-metrics-CBGmhLo0.d.ts.map} +1 -1
  26. package/dist/{grid-DikTjFey.js → grid-9B2w5EaY.js} +2 -2
  27. package/dist/{grid-DikTjFey.js.map → grid-9B2w5EaY.js.map} +1 -1
  28. package/dist/{html-dom-Iuog2wdK.js → html-dom-DvJmuHt2.js} +10 -10
  29. package/dist/html-dom-DvJmuHt2.js.map +1 -0
  30. package/dist/html.d.ts +3 -3
  31. package/dist/html.js +2 -2
  32. package/dist/{image-size-CvN2iCA4.js → image-size-DwDbakcl.js} +64 -5
  33. package/dist/image-size-DwDbakcl.js.map +1 -0
  34. package/dist/index.d.ts +7 -7
  35. package/dist/index.js +3 -3
  36. package/dist/inspect.d.ts +4 -4
  37. package/dist/inspect.js +4 -4
  38. package/dist/inspect.js.map +1 -1
  39. package/dist/math.d.ts +1 -1
  40. package/dist/math.js +1 -1
  41. package/dist/measure.d.ts +3 -3
  42. package/dist/measure.js +2 -2
  43. package/dist/node.d.ts +7 -7
  44. package/dist/node.js +3 -3
  45. package/dist/{notes-Dh12JAbn.js → notes-BcT571R4.js} +19 -18
  46. package/dist/notes-BcT571R4.js.map +1 -0
  47. package/dist/options-internal-WqgMf720.js.map +1 -1
  48. package/dist/{package-J49Ck6S2.d.ts → package-KoEgVwII.d.ts} +6 -2
  49. package/dist/{package-J49Ck6S2.d.ts.map → package-KoEgVwII.d.ts.map} +1 -1
  50. package/dist/{pres-C6qgOFAa.d.ts → pres-BA9_lJbY.d.ts} +32 -12
  51. package/dist/pres-BA9_lJbY.d.ts.map +1 -0
  52. package/dist/{presentation-DGYlAWhl.js → presentation-Cyl74rq2.js} +70 -35
  53. package/dist/presentation-Cyl74rq2.js.map +1 -0
  54. package/dist/{presentation-types-8jLQHI4M.d.ts → presentation-types-B3VQH4Bz.d.ts} +19 -15
  55. package/dist/presentation-types-B3VQH4Bz.d.ts.map +1 -0
  56. package/dist/read.d.ts +6 -6
  57. package/dist/read.js +3 -3
  58. package/dist/script.d.ts +2 -2
  59. package/dist/script.d.ts.map +1 -1
  60. package/dist/script.js +11 -11
  61. package/dist/script.js.map +1 -1
  62. package/dist/{shapes-re0KyQk_.js → shapes-BcyFdZpp.js} +14 -10
  63. package/dist/shapes-BcyFdZpp.js.map +1 -0
  64. package/dist/{slide-Dx2ZeVZ6.d.ts → slide-BqPtyKmb.d.ts} +12 -7
  65. package/dist/slide-BqPtyKmb.d.ts.map +1 -0
  66. package/dist/{table-cell-margins-EVg0EwxT.js → table-cell-margins-PDshga8T.js} +4 -4
  67. package/dist/{table-cell-margins-EVg0EwxT.js.map → table-cell-margins-PDshga8T.js.map} +1 -1
  68. package/dist/{table-dom-BTDP3lEP.js → table-dom-CVbvUfgh.js} +3 -3
  69. package/dist/{table-dom-BTDP3lEP.js.map → table-dom-CVbvUfgh.js.map} +1 -1
  70. package/dist/{text-KnLOtEEu.js → text-BvFFMMFQ.js} +38 -36
  71. package/dist/{text-KnLOtEEu.js.map → text-BvFFMMFQ.js.map} +1 -1
  72. package/dist/{text-anchor-CrYXAfUu.js → text-anchor-BgLPbwbL.js} +2 -2
  73. package/dist/{text-anchor-CrYXAfUu.js.map → text-anchor-BgLPbwbL.js.map} +1 -1
  74. package/dist/{units-internal-XJlf-hOl.js → units-internal-DFcUYjh3.js} +11 -6
  75. package/dist/units-internal-DFcUYjh3.js.map +1 -0
  76. package/dist/{zip-C0leZZMj.d.ts → zip-CTll_dr0.d.ts} +2 -2
  77. package/dist/{zip-C0leZZMj.d.ts.map → zip-CTll_dr0.d.ts.map} +1 -1
  78. package/dist/{zip-CKd8ihcf.js → zip-CYZ0F6BV.js} +2 -2
  79. package/dist/{zip-CKd8ihcf.js.map → zip-CYZ0F6BV.js.map} +1 -1
  80. package/dist/zip.d.ts +2 -2
  81. package/dist/zip.js +2 -2
  82. package/dist/{zoom-cX9sllpH.js → zoom-BoNyOlPm.js} +66 -52
  83. package/dist/zoom-BoNyOlPm.js.map +1 -0
  84. package/package.json +39 -31
  85. package/skills/ts-pptx-upstream/SKILL.md +18 -18
  86. package/dist/html-dom-Iuog2wdK.js.map +0 -1
  87. package/dist/image-size-CvN2iCA4.js.map +0 -1
  88. package/dist/notes-Dh12JAbn.js.map +0 -1
  89. package/dist/pres-C6qgOFAa.d.ts.map +0 -1
  90. package/dist/presentation-DGYlAWhl.js.map +0 -1
  91. package/dist/presentation-types-8jLQHI4M.d.ts.map +0 -1
  92. package/dist/shapes-re0KyQk_.js.map +0 -1
  93. package/dist/slide-Dx2ZeVZ6.d.ts.map +0 -1
  94. package/dist/units-internal-XJlf-hOl.js.map +0 -1
  95. package/dist/zoom-cX9sllpH.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { d as SHAPE_NAME, h as TableStyle, i as CHART_NAME, m as SlideObjectType } from "./enums-BUKTUB6V.js";
2
- import { Ct as CommonObjectDescriptor, Dt as CommentProps, Et as PlaceholderProps, Gt as ImageBaseProps, Ht as TextPropsOptions, I as FillOption, It as TextBaseProps, Kt as ImageProps, N as BorderProps, O as PositionProps, P as ConnectorProps, Q as ChartOpts, R as HyperlinkProps, Rt as TextFitShrinkProps, S as HexColor, T as Margin, Tt as ObjectNameProps, Vt as TextProps, Yt as OleObjectProps, Z as ChartMulti, _ as DataOrPathRequiredProps, bn as TextHorzOverflowType, f as BackgroundOption, fn as LightRigDirection, g as DataOrPathProps, h as Coord, hn as PresetMaterialType, kt as NotesProps, m as Color, nn as ShapeProps, on as BevelPresetType, pn as LightRigType, qt as MediaProps, vn as TEXT_AUTONUM_SCHEMES, wt as ObjectLockProps, x as HAlign, xt as OptsChartData, yn as TRANSITION_TYPES } from "./pres-C6qgOFAa.js";
1
+ import { d as SHAPE_NAME, h as TableStyle, i as CHART_NAME, m as SlideObjectType } from "./enums-DQRpVOLh.js";
2
+ import { $ as ChartOpts, At as NotesProps, B as ShadowProps, C as HexColor, Dt as PlaceholderProps, E as Margin, Et as ObjectNameProps, F as ConnectorProps, Ht as TextProps, Jt as MediaProps, Kt as ImageBaseProps, L as FillOption, Lt as TextBaseProps, Ot as CommentProps, P as BorderProps, Q as ChartMulti, S as HAlign, St as OptsChartData, Tt as ObjectLockProps, Ut as TextPropsOptions, Xt as OleObjectProps, _ as DataOrPathProps, bn as TRANSITION_TYPES, g as Coord, gn as PresetMaterialType, h as Color, k as PositionProps, mn as LightRigType, p as BackgroundOption, pn as LightRigDirection, qt as ImageProps, rn as ShapeProps, sn as BevelPresetType, v as DataOrPathRequiredProps, wt as CommonObjectDescriptor, xn as TextHorzOverflowType, yn as TEXT_AUTONUM_SCHEMES, z as HyperlinkProps, zt as TextFitShrinkProps } from "./pres-BA9_lJbY.js";
3
3
  //#region src/types/table.d.ts
4
4
  /**
5
5
  * A `<table>` element, from whatever DOM implementation the caller has.
@@ -172,6 +172,11 @@ interface TableCellProps extends TextBaseProps {
172
172
  * the text, below zero lowers it. On a cell it applies to every run that states none.
173
173
  */
174
174
  baseline?: NonNullable<TextPropsOptions['baseline']>;
175
+ /**
176
+ * Text shadow (`a:rPr/a:effectLst`), as {@link TextPropsOptions.shadow} takes it on a run. A cell
177
+ * has no shape effect of its own, so on a cell this is the shadow of every run that states none.
178
+ */
179
+ shadow?: ShadowProps;
175
180
  /** Outline level of the paragraph a run starts, as {@link TextPropsOptions.indentLevel}. */
176
181
  indentLevel?: NonNullable<TextPropsOptions['indentLevel']>;
177
182
  /** Line spacing in points, as {@link TextPropsOptions.lineSpacing}. */
@@ -408,7 +413,7 @@ interface TableProps extends PositionProps, TextBaseProps, ObjectNameProps {
408
413
  * @example outerBorder: { type:'solid', color:'1A2B3C', width:1 } // box the table
409
414
  * @example outerBorder: [{type:'solid'}, undefined, {type:'solid'}, undefined] // rules above and below
410
415
  */
411
- outerBorder?: BorderProps | [BorderProps?, BorderProps?, BorderProps?, BorderProps?];
416
+ outerBorder?: BorderProps | [(BorderProps | undefined)?, (BorderProps | undefined)?, (BorderProps | undefined)?, (BorderProps | undefined)?];
412
417
  /**
413
418
  * Width of table columns (inches)
414
419
  * - single value is applied to every column equally based upon `w`
@@ -946,7 +951,7 @@ interface Model3dBaseProps extends PositionProps, ObjectNameProps {
946
951
  data?: string;
947
952
  };
948
953
  /**
949
- * Camera override. Omitted, ts-pptx emits the camera PowerPoint wrote for a 2×2×2 cube.
954
+ * Camera override. Omitted, pptx-ts emits the camera PowerPoint wrote for a 2×2×2 cube.
950
955
  * @see {@link Model3dCameraProps} for the framing formula and when this matters.
951
956
  */
952
957
  camera?: Model3dCameraProps;
@@ -956,7 +961,7 @@ interface Model3dBaseProps extends PositionProps, ObjectNameProps {
956
961
  *
957
962
  * This is the single override most models need. PowerPoint sets it to `1 / maxExtent`, where
958
963
  * `maxExtent` is the model's largest bounding-box dimension in model units, which normalizes
959
- * every model to 1 metre across. ts-pptx does not parse the `.glb`, so it cannot measure that
964
+ * every model to 1 metre across. pptx-ts does not parse the `.glb`, so it cannot measure that
960
965
  * — it defaults to `0.5`, correct for a model 2 units across. A model 100 units across left at
961
966
  * the default is a 50-metre object with the camera 2.26 metres from its centre, i.e. the
962
967
  * viewer is inside it.
@@ -1205,7 +1210,7 @@ interface Slide {
1205
1210
  * slide.addTable(rows, { autoPage: true })
1206
1211
  * for (const made of slide.newAutoPagedSlides) made.addText('continued', { x: 0.5, y: 0.2 })
1207
1212
  */
1208
- readonly newAutoPagedSlides?: Slide[];
1213
+ readonly newAutoPagedSlides: Slide[];
1209
1214
  /**
1210
1215
  * Slide-show transition played when advancing to this slide (`p:transition`).
1211
1216
  * @example slide.transition = { type: 'fade', durationMs: 1500 }
@@ -1253,4 +1258,4 @@ interface AddSlideProps {
1253
1258
  }
1254
1259
  //#endregion
1255
1260
  export { TableCellDiagonals as A, AnimationTrigger as C, TransitionType as D, TransitionSoundProps as E, TableToSlidesDocument as F, TableToSlidesElement as I, TableToSlidesProps as L, TableProps as M, TableRow as N, TableCell as O, TableRowSlide as P, AnimationProps as S, TransitionProps as T, MasterTextStyleProps as _, Slide as a, SlideMasterProps as b, SectionZoomProps as c, ZoomBaseProps as d, Model3dCameraProps as f, MasterTextStyleLevel as g, MasterBulletProps as h, ObjectOptions as i, TableCellProps as j, TableCell3DProps as k, SlideZoomProps as l, Model3dProps as m, GroupChildProps as n, SlideLayout as o, Model3dPoint as p, GroupProps as r, SlideObjectInfo as s, AddSlideProps as t, SummaryZoomProps as u, SlideMasterChartProps as v, PresetEffect as w, SlideNumberProps as x, SlideMasterObject as y };
1256
- //# sourceMappingURL=slide-Dx2ZeVZ6.d.ts.map
1261
+ //# sourceMappingURL=slide-BqPtyKmb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slide-BqPtyKmb.d.ts","names":[],"sources":["../src/types/table.ts","../src/types/animation.ts","../src/types/master.ts","../src/types/model3d.ts","../src/types/zoom.ts","../src/types/slide.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { l as warn, n as InvalidOptionError } from "./errors-C4oENPcu.js";
1
+ import { l as warn, n as InvalidOptionError } from "./errors-Da2nXCJm.js";
2
2
  //#region src/ooxml/emu.ts
3
3
  /**
4
4
  * The fixed ratios between English Metric Units, points and inches.
@@ -54,7 +54,7 @@ function ptToHundredths(pt) {
54
54
  * warn, pointing at the explicit `"<n>emu"` form. ~1000in is far beyond any real slide. */
55
55
  const IMPLAUSIBLE_INCHES = 1e3;
56
56
  /** Default pixel density for the `"<n>px"` coordinate unit: CSS reference pixels, also the
57
- * density ts-pptx assumes when reading an image header's pixel dimensions. */
57
+ * density pptx-ts assumes when reading an image header's pixel dimensions. */
58
58
  const DEFAULT_PX_PER_INCH = 96;
59
59
  /**
60
60
  * The largest DrawingML coordinate, in EMU: the `maxInclusive` of `ST_Coordinate`, the type of
@@ -475,7 +475,7 @@ const EXTRA_SHAPE_PRESETS = [
475
475
  "curvedConnector5"
476
476
  ];
477
477
  /**
478
- * Every shape geometry name ts-pptx can serialize without corrupting the
478
+ * Every shape geometry name pptx-ts can serialize without corrupting the
479
479
  * package: the OOXML preset geometries (`ST_ShapeType` — `ShapeType` values
480
480
  * plus the unexposed connectors above) and `custGeom` (freeform paths, emitted
481
481
  * as `<a:custGeom>` rather than `<a:prstGeom>`). Used to reject bogus presets
@@ -712,4 +712,4 @@ const TABLE_CELL_MARGIN_DEFAULTS_EMU = {
712
712
  //#endregion
713
713
  export { inchesToEmu as A, MIN_COORDINATE_EMU as C, emuToInches as D, coordToEmu as E, EMU_PER_INCH as F, EMU_PER_POINT as I, POINTS_PER_INCH as L, pixelsToEmu as M, pointsToEmu as N, emuToPixels as O, ptToHundredths as P, MAX_COORDINATE_EMU as S, STANDARD_LAYOUTS as T, isChartType as _, ChartType as a, FIXED_PCT_PER_PERCENT as b, SchemeColor as c, TableStyle as d, TextAnchor as f, isChartExType as g, connectorPresetFor as h, BulletType as i, percentToEmu as j, emuToPoints as k, ShapeType as l, asChartType as m, AlignH as n, OutputType as o, VALID_SHAPE_PRESETS as p, AlignV as r, PlaceholderType as s, TABLE_CELL_MARGIN_DEFAULTS_EMU as t, SlideObjectType as u, ANGLE_UNITS_PER_DEGREE as v, PERCENT_SCALE as w, HUNDREDTHS_PER_POINT as x, DEFAULT_PX_PER_INCH as y };
714
714
 
715
- //# sourceMappingURL=table-cell-margins-EVg0EwxT.js.map
715
+ //# sourceMappingURL=table-cell-margins-PDshga8T.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell-margins-EVg0EwxT.js","names":[],"sources":["../src/ooxml/emu.ts","../src/units.ts","../src/enums.ts","../src/ooxml/table-cell-margins.ts"],"sourcesContent":["/**\n * The fixed ratios between English Metric Units, points and inches.\n *\n * `units.ts` publishes them, but it also holds the unit converters, which warn and throw, so it\n * imports `diagnostics.ts` and `errors.ts` at run time. A schema fact in `ooxml/` that only needs\n * a ratio (`body-insets.ts`) took both along with it. This module imports nothing, and `units.ts`\n * re-exports it, so the public names are unchanged.\n */\n\n/** EMU in one inch. */\nexport const EMU_PER_INCH = 914400\n/** EMU in one point. */\nexport const EMU_PER_POINT = 12700\n/** Points in one inch. */\nexport const POINTS_PER_INCH = 72\n","import { warn } from './diagnostics.js'\nimport { InvalidOptionError } from './errors.js'\nimport { EMU_PER_INCH, EMU_PER_POINT, POINTS_PER_INCH } from './ooxml/emu.js'\n/**\n * Public unit conversion helpers and standard PowerPoint slide-layout constants.\n */\n\n// Declared in `ooxml/emu.ts`, which imports nothing, so a schema fact can use them without this\n// module's run-time imports.\nexport { EMU_PER_INCH, EMU_PER_POINT, POINTS_PER_INCH }\n\n/**\n * DrawingML angle unit. `ST_Angle` (`rot`, shadow `dir`, gradient `ang`, …) is measured in\n * sixtieths-of-a-thousandth of a degree, i.e. 60000 units per degree. Multiply a value in\n * degrees by this to get the OOXML integer.\n */\nexport const ANGLE_UNITS_PER_DEGREE = 60000\n\n/**\n * DrawingML fixed-point percentage scale. `ST_Percentage` / `ST_PositiveFixedPercentage` and\n * related types (`<a:alpha>`, `<a:spcPct>`, shape adjustment guides, `<p:tav tm>`, …) encode\n * 100% as the integer 100000. Multiply a 0-1 fraction by this to get the OOXML value.\n */\nexport const PERCENT_SCALE = 100000\n\n/**\n * Scale for a percentage supplied as 0-100 (rather than a 0-1 fraction) into the same\n * fixed-point percentage integer as {@link PERCENT_SCALE} (1% = 1000 units, i.e. thousandths\n * of a percent). Use for inputs documented as percents: transparency/alpha, image crop insets,\n * gradient stops, bullet size, connector adjust, etc.\n */\nexport const FIXED_PCT_PER_PERCENT = PERCENT_SCALE / 100\n\n/**\n * DrawingML text measures font size (`sz`), character spacing (`spc`) and point line/paragraph\n * spacing (`<a:spcPts val>`) in hundredths of a point. Multiply a value in points by this to get\n * the OOXML integer.\n */\nexport const HUNDREDTHS_PER_POINT = 100\n\n/**\n * Convert a value in points to hundredths of a point (rounded), the integer unit DrawingML uses\n * for `sz`, `spc`, and `<a:spcPts val>`. See {@link HUNDREDTHS_PER_POINT}.\n */\nexport function ptToHundredths(pt: number): number {\n\tassertFiniteNumber(pt, 'points')\n\treturn Math.round(pt * HUNDREDTHS_PER_POINT)\n}\n\n/**\n * English Metric Units — the integer unit OOXML serializes geometry in (914400 per inch).\n *\n * Branded so a value that has already been resolved to EMU cannot be silently fed back into a\n * unit converter: {@link coordToEmu} only accepts a user `Coord`, so passing an `Emu` into it is\n * a compile-time error. This replaces the old runtime \"a number ≥ 100 must already be EMU\"\n * magnitude guess, which silently mis-rendered values near the threshold.\n */\nexport type Emu = number & { readonly __unit: 'emu' }\n\n/** A bare number larger than this (in inches) is almost certainly a mistake — likely a raw EMU\n * value passed where inches are expected. We interpret it as inches (the documented contract) but\n * warn, pointing at the explicit `\"<n>emu\"` form. ~1000in is far beyond any real slide. */\nconst IMPLAUSIBLE_INCHES = 1000\n\n/** Default pixel density for the `\"<n>px\"` coordinate unit: CSS reference pixels, also the\n * density ts-pptx assumes when reading an image header's pixel dimensions. */\nexport const DEFAULT_PX_PER_INCH = 96\n\n/**\n * The largest DrawingML coordinate, in EMU: the `maxInclusive` of `ST_Coordinate`, the type of\n * every shape offset and extent. The range is not symmetric; see {@link MIN_COORDINATE_EMU}.\n */\nexport const MAX_COORDINATE_EMU = 27273042316900\n\n/** The smallest DrawingML coordinate, in EMU: the `minInclusive` of `ST_Coordinate`. */\nexport const MIN_COORDINATE_EMU = -27273042329600\n\nexport type StandardLayoutName = 'LAYOUT_4x3' | 'LAYOUT_16x9' | 'LAYOUT_16x10' | 'LAYOUT_WIDE'\n\nexport interface StandardLayout {\n\t/** ts-pptx layout key used with `pptx.layout`. */\n\treadonly layout: StandardLayoutName\n\t/** PresentationML slide-size preset name, or `custom` for PowerPoint widescreen. */\n\treadonly name: string\n\t/** Slide width in inches — inches is ts-pptx's default coordinate unit, so this is the value to use for `addText`/`addShape` math. */\n\treadonly widthIn: number\n\t/** Slide height in inches. */\n\treadonly heightIn: number\n\t/** Slide width in English Metric Units. */\n\treadonly widthEmu: number\n\t/** Slide height in English Metric Units. */\n\treadonly heightEmu: number\n}\n\nexport function inchesToEmu(inches: number): Emu {\n\tassertFiniteNumber(inches, 'inches')\n\treturn inCoordinateRange(Math.round(inches * EMU_PER_INCH), inches, 'inches')\n}\n\nexport function pointsToEmu(points: number): Emu {\n\tassertFiniteNumber(points, 'points')\n\treturn inCoordinateRange(Math.round(points * EMU_PER_POINT), points, 'points')\n}\n\nexport function pixelsToEmu(pixels: number, dpi: number): Emu {\n\tassertFiniteNumber(pixels, 'pixels')\n\tassertPositiveFiniteNumber(dpi, 'dpi')\n\treturn inchesToEmu(pixels / dpi)\n}\n\n/**\n * Resolve a percentage of an axis length to EMU.\n *\n * **Published for consumers, and reached from one place inside `src/` on purpose.** Internally\n * only `parseCoord` needs it, because every `'50%'` a caller writes comes through there; it is\n * exported because a consumer computing its own geometry against a slide axis needs the same\n * arithmetic, and it belongs with the rest of the conversion set beside it rather than hidden\n * behind the one caller. Left exported deliberately rather than by oversight — this note is the\n * difference between the two, as it is on {@link emuToPixels}.\n * @param percent - percentage value (e.g. `50` for 50%)\n * @param axisEmu - the axis length in EMU (slide width for x/w, height for y/h)\n */\nexport function percentToEmu(percent: number, axisEmu: number): Emu {\n\tassertFiniteNumber(percent, 'percent')\n\tassertFiniteNumber(axisEmu, 'axisEmu')\n\treturn inCoordinateRange(Math.round((percent / 100) * axisEmu), percent, 'percent')\n}\n\n/**\n * The single user-coordinate → EMU boundary. Convert each user-supplied coordinate exactly once.\n *\n * Accepts (see {@link Coord}):\n * - a bare `number` → **always inches** (the documented unit); no magnitude guessing\n * - `\"<n>%\"` → percentage of `axisEmu`\n * - `\"<n>in\"` / `\"<n>pt\"` / `\"<n>px\"` / `\"<n>emu\"` → explicit units (the escape hatch for non-inch\n * values). `px` is resolved at {@link DEFAULT_PX_PER_INCH} (96), for authoring against a known\n * web/source canvas size.\n *\n * Throws on non-finite or unparseable input rather than silently emitting a degenerate 0-size.\n * @param value - user coordinate\n * @param axisEmu - axis length in EMU, used only to resolve percentages\n */\nexport function coordToEmu(value: number | string, axisEmu: number): Emu {\n\tif (typeof value === 'number') {\n\t\tassertFiniteNumber(value, 'coordinate')\n\t\tif (Math.abs(value) > IMPLAUSIBLE_INCHES) {\n\t\t\twarn(\n\t\t\t\t'coord/bare-number-is-inches',\n\t\t\t\t`coordinate ${value} interpreted as ${value} inches. A bare number is always inches; ` +\n\t\t\t\t\t`if you meant EMU, pass it as a string like \"${Math.round(value)}emu\".`\n\t\t\t)\n\t\t}\n\t\treturn inchesToEmu(value)\n\t}\n\n\tconst match = /^\\s*(-?\\d*\\.?\\d+)\\s*(%|in|pt|px|emu)\\s*$/.exec(value)\n\tif (!match) {\n\t\tthrow new InvalidOptionError(\n\t\t\t'coord/invalid-format',\n\t\t\t`Invalid coordinate \"${value}\". Expected a number (inches) or a string like \"50%\", \"5in\", \"72pt\", \"96px\", or \"914400emu\".`\n\t\t)\n\t}\n\tconst n = Number(match[1])\n\tswitch (match[2]) {\n\t\tcase '%':\n\t\t\treturn percentToEmu(n, axisEmu)\n\t\tcase 'in':\n\t\t\treturn inchesToEmu(n)\n\t\tcase 'pt':\n\t\t\treturn pointsToEmu(n)\n\t\tcase 'px':\n\t\t\treturn pixelsToEmu(n, DEFAULT_PX_PER_INCH)\n\t\tdefault: // 'emu'\n\t\t\tassertFiniteNumber(n, 'coordinate')\n\t\t\treturn inCoordinateRange(Math.round(n), n, 'EMU')\n\t}\n}\n\nexport function emuToInches(emu: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\treturn emu / EMU_PER_INCH\n}\n\n/**\n * EMU → points, the unit the write API states line widths, font sizes and text insets in.\n *\n * The one conversion, for the library as well as for a consumer: three private forms of\n * `emu / EMU_PER_POINT` had grown around it — the read model's `null`-propagating `ptFromEmu`,\n * the script mapper's `points`, and a dozen inline divisions — while this stayed published and\n * uncalled.\n *\n * **The policy, and its one exception.** Every EMU→points conversion goes through here or through\n * `ptFromEmu` in `src/read/api/coords.ts`, which is this with a `null` passed along. (Named rather\n * than linked: it is internal, so a reference link to it resolves to nothing in the published\n * reference.) The exception is\n * `measure/*` — `fit.ts`, `paragraphs.ts`, `table-fit.ts` — where an inner box is computed as\n * `(extent - inset - inset) / EMU_PER_POINT` and then guarded with `!(x > 0)`. That guard is\n * written NaN-first on purpose: a box that cannot be measured is skipped, not reported. This\n * function asserts a finite input and throws instead, which is the right answer for a caller\n * stating a value and the wrong one for a pass whose whole job is to degrade quietly. Those\n * sites keep the division; nothing else may.\n */\nexport function emuToPoints(emu: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\treturn emu / EMU_PER_POINT\n}\n\n/**\n * EMU → whole pixels at a stated DPI.\n *\n * **Published for consumers, and used nowhere in `src/` on purpose.** Nothing inside the\n * library thinks in pixels: it is the unit a caller placing library output on a canvas or in a\n * `<img>` needs, and the DPI is theirs to choose. Left exported deliberately rather than by\n * oversight — this note is the difference between the two.\n */\nexport function emuToPixels(emu: number, dpi: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\tassertPositiveFiniteNumber(dpi, 'dpi')\n\treturn Math.round(emuToInches(emu) * dpi)\n}\n\nfunction standardLayout(layout: StandardLayoutName, name: string, widthIn: number, heightIn: number): StandardLayout {\n\treturn Object.freeze({\n\t\tlayout,\n\t\tname,\n\t\twidthIn,\n\t\theightIn,\n\t\twidthEmu: inchesToEmu(widthIn),\n\t\theightEmu: inchesToEmu(heightIn),\n\t})\n}\n\nexport const STANDARD_LAYOUTS: Readonly<Record<StandardLayoutName, StandardLayout>> = Object.freeze({\n\tLAYOUT_4x3: standardLayout('LAYOUT_4x3', 'screen4x3', 10, 7.5),\n\tLAYOUT_16x9: standardLayout('LAYOUT_16x9', 'screen16x9', 10, 5.625),\n\tLAYOUT_16x10: standardLayout('LAYOUT_16x10', 'screen16x10', 10, 6.25),\n\tLAYOUT_WIDE: standardLayout('LAYOUT_WIDE', 'custom', 40 / 3, 7.5),\n})\n\n/**\n * `emu` as an `Emu`, or a `coord/out-of-range` throw when it falls outside `ST_Coordinate`.\n *\n * A finite input is not enough on its own. `1e16` inches is finite and converts to `9.144e+21`,\n * which serializes in exponent notation and is not an `xsd:long` at all; `4e7` inches converts to\n * a long, but one past the bound. Neither is a coordinate PowerPoint can hold.\n * @param emu - the converted value\n * @param value - the caller's value, for the message\n * @param unit - the unit `value` was stated in, for the message\n */\nfunction inCoordinateRange(emu: number, value: number, unit: string): Emu {\n\tif (emu < MIN_COORDINATE_EMU || emu > MAX_COORDINATE_EMU)\n\t\tthrow new InvalidOptionError(\n\t\t\t'coord/out-of-range',\n\t\t\t`${value} ${unit} is ${emu} EMU, outside the DrawingML coordinate range ${MIN_COORDINATE_EMU} to ${MAX_COORDINATE_EMU} EMU.`\n\t\t)\n\treturn emu as Emu\n}\n\nfunction assertFiniteNumber(value: number, name: string): void {\n\tif (!Number.isFinite(value)) throw new InvalidOptionError('coord/non-finite', `${name} must be a finite number`)\n}\n\nfunction assertPositiveFiniteNumber(value: number, name: string): void {\n\tassertFiniteNumber(value, name)\n\tif (value <= 0) throw new InvalidOptionError('coord/not-positive', `${name} must be greater than 0`)\n}\n","/**\n * ts-pptx Enums\n * NOTE: `enum` wont work for objects, so use `Object.freeze`\n */\n\n/**\n * Output-type name accepted by the zip/write layer. Derived from the `OutputType`\n * enum (see below) so the two never drift: adding a member to the enum extends this\n * union automatically.\n */\nexport type ZIP_OUTPUT_TYPE = `${OutputType}`\nexport type WRITE_OUTPUT_TYPE = ZIP_OUTPUT_TYPE\n/**\n * Public chart-type name accepted by `addChart()`. Derived from the internal\n * `ChartType` enum (see below) so the two never drift: adding a member to the\n * enum extends this union automatically.\n */\nexport type CHART_NAME = `${ChartType}`\n/**\n * Public scheme-color name. Derived from the `SchemeColor` enum (see below) so the\n * two never drift.\n */\nexport type SCHEME_COLORS = `${SchemeColor}`\n\nexport enum TextAnchor {\n\tb = 'b',\n\tctr = 'ctr',\n\tt = 't',\n}\n\n// ENUM\nexport enum OutputType {\n\tarraybuffer = 'arraybuffer',\n\tbase64 = 'base64',\n\tbinarystring = 'binarystring',\n\tblob = 'blob',\n\tnodebuffer = 'nodebuffer',\n\tuint8array = 'uint8array',\n}\nexport enum ChartType {\n\tarea = 'area',\n\tbar = 'bar',\n\tbar3d = 'bar3D',\n\tbubble = 'bubble',\n\tbubble3d = 'bubble3D',\n\tdoughnut = 'doughnut',\n\tline = 'line',\n\tpie = 'pie',\n\tradar = 'radar',\n\tscatter = 'scatter',\n\tstock = 'stock',\n\tsurface = 'surface',\n\twaterfall = 'waterfall',\n\tfunnel = 'funnel',\n\ttreemap = 'treemap',\n\tsunburst = 'sunburst',\n\thistogram = 'histogram',\n\tpareto = 'pareto',\n\tboxWhisker = 'boxWhisker',\n\tregionMap = 'regionMap',\n}\nexport enum ShapeType {\n\taccentBorderCallout1 = 'accentBorderCallout1',\n\taccentBorderCallout2 = 'accentBorderCallout2',\n\taccentBorderCallout3 = 'accentBorderCallout3',\n\taccentCallout1 = 'accentCallout1',\n\taccentCallout2 = 'accentCallout2',\n\taccentCallout3 = 'accentCallout3',\n\tactionButtonBackPrevious = 'actionButtonBackPrevious',\n\tactionButtonBeginning = 'actionButtonBeginning',\n\tactionButtonBlank = 'actionButtonBlank',\n\tactionButtonDocument = 'actionButtonDocument',\n\tactionButtonEnd = 'actionButtonEnd',\n\tactionButtonForwardNext = 'actionButtonForwardNext',\n\tactionButtonHelp = 'actionButtonHelp',\n\tactionButtonHome = 'actionButtonHome',\n\tactionButtonInformation = 'actionButtonInformation',\n\tactionButtonMovie = 'actionButtonMovie',\n\tactionButtonReturn = 'actionButtonReturn',\n\tactionButtonSound = 'actionButtonSound',\n\tarc = 'arc',\n\tbentArrow = 'bentArrow',\n\tbentUpArrow = 'bentUpArrow',\n\tbevel = 'bevel',\n\tblockArc = 'blockArc',\n\tborderCallout1 = 'borderCallout1',\n\tborderCallout2 = 'borderCallout2',\n\tborderCallout3 = 'borderCallout3',\n\tbracePair = 'bracePair',\n\tbracketPair = 'bracketPair',\n\tcallout1 = 'callout1',\n\tcallout2 = 'callout2',\n\tcallout3 = 'callout3',\n\tcan = 'can',\n\tchartPlus = 'chartPlus',\n\tchartStar = 'chartStar',\n\tchartX = 'chartX',\n\tchevron = 'chevron',\n\tchord = 'chord',\n\tcircularArrow = 'circularArrow',\n\tcloud = 'cloud',\n\tcloudCallout = 'cloudCallout',\n\tcorner = 'corner',\n\tcornerTabs = 'cornerTabs',\n\tcube = 'cube',\n\tcurvedDownArrow = 'curvedDownArrow',\n\tcurvedLeftArrow = 'curvedLeftArrow',\n\tcurvedRightArrow = 'curvedRightArrow',\n\tcurvedUpArrow = 'curvedUpArrow',\n\tcustGeom = 'custGeom',\n\tdecagon = 'decagon',\n\tdiagStripe = 'diagStripe',\n\tdiamond = 'diamond',\n\tdodecagon = 'dodecagon',\n\tdonut = 'donut',\n\tdoubleWave = 'doubleWave',\n\tdownArrow = 'downArrow',\n\tdownArrowCallout = 'downArrowCallout',\n\tellipse = 'ellipse',\n\tellipseRibbon = 'ellipseRibbon',\n\tellipseRibbon2 = 'ellipseRibbon2',\n\tflowChartAlternateProcess = 'flowChartAlternateProcess',\n\tflowChartCollate = 'flowChartCollate',\n\tflowChartConnector = 'flowChartConnector',\n\tflowChartDecision = 'flowChartDecision',\n\tflowChartDelay = 'flowChartDelay',\n\tflowChartDisplay = 'flowChartDisplay',\n\tflowChartDocument = 'flowChartDocument',\n\tflowChartExtract = 'flowChartExtract',\n\tflowChartInputOutput = 'flowChartInputOutput',\n\tflowChartInternalStorage = 'flowChartInternalStorage',\n\tflowChartMagneticDisk = 'flowChartMagneticDisk',\n\tflowChartMagneticDrum = 'flowChartMagneticDrum',\n\tflowChartMagneticTape = 'flowChartMagneticTape',\n\tflowChartManualInput = 'flowChartManualInput',\n\tflowChartManualOperation = 'flowChartManualOperation',\n\tflowChartMerge = 'flowChartMerge',\n\tflowChartMultidocument = 'flowChartMultidocument',\n\tflowChartOfflineStorage = 'flowChartOfflineStorage',\n\tflowChartOffpageConnector = 'flowChartOffpageConnector',\n\tflowChartOnlineStorage = 'flowChartOnlineStorage',\n\tflowChartOr = 'flowChartOr',\n\tflowChartPredefinedProcess = 'flowChartPredefinedProcess',\n\tflowChartPreparation = 'flowChartPreparation',\n\tflowChartProcess = 'flowChartProcess',\n\tflowChartPunchedCard = 'flowChartPunchedCard',\n\tflowChartPunchedTape = 'flowChartPunchedTape',\n\tflowChartSort = 'flowChartSort',\n\tflowChartSummingJunction = 'flowChartSummingJunction',\n\tflowChartTerminator = 'flowChartTerminator',\n\tfoldedCorner = 'foldedCorner',\n\tframe = 'frame',\n\tfunnel = 'funnel',\n\tgear6 = 'gear6',\n\tgear9 = 'gear9',\n\thalfFrame = 'halfFrame',\n\theart = 'heart',\n\theptagon = 'heptagon',\n\thexagon = 'hexagon',\n\thomePlate = 'homePlate',\n\thorizontalScroll = 'horizontalScroll',\n\tirregularSeal1 = 'irregularSeal1',\n\tirregularSeal2 = 'irregularSeal2',\n\tleftArrow = 'leftArrow',\n\tleftArrowCallout = 'leftArrowCallout',\n\tleftBrace = 'leftBrace',\n\tleftBracket = 'leftBracket',\n\tleftCircularArrow = 'leftCircularArrow',\n\tleftRightArrow = 'leftRightArrow',\n\tleftRightArrowCallout = 'leftRightArrowCallout',\n\tleftRightCircularArrow = 'leftRightCircularArrow',\n\tleftRightRibbon = 'leftRightRibbon',\n\tleftRightUpArrow = 'leftRightUpArrow',\n\tleftUpArrow = 'leftUpArrow',\n\tlightningBolt = 'lightningBolt',\n\tline = 'line',\n\tlineInv = 'lineInv',\n\tmathDivide = 'mathDivide',\n\tmathEqual = 'mathEqual',\n\tmathMinus = 'mathMinus',\n\tmathMultiply = 'mathMultiply',\n\tmathNotEqual = 'mathNotEqual',\n\tmathPlus = 'mathPlus',\n\tmoon = 'moon',\n\tnoSmoking = 'noSmoking',\n\tnonIsoscelesTrapezoid = 'nonIsoscelesTrapezoid',\n\tnotchedRightArrow = 'notchedRightArrow',\n\toctagon = 'octagon',\n\tparallelogram = 'parallelogram',\n\tpentagon = 'pentagon',\n\tpie = 'pie',\n\tpieWedge = 'pieWedge',\n\tplaque = 'plaque',\n\tplaqueTabs = 'plaqueTabs',\n\tplus = 'plus',\n\tquadArrow = 'quadArrow',\n\tquadArrowCallout = 'quadArrowCallout',\n\trect = 'rect',\n\tribbon = 'ribbon',\n\tribbon2 = 'ribbon2',\n\trightArrow = 'rightArrow',\n\trightArrowCallout = 'rightArrowCallout',\n\trightBrace = 'rightBrace',\n\trightBracket = 'rightBracket',\n\tround1Rect = 'round1Rect',\n\tround2DiagRect = 'round2DiagRect',\n\tround2SameRect = 'round2SameRect',\n\troundRect = 'roundRect',\n\trtTriangle = 'rtTriangle',\n\tsmileyFace = 'smileyFace',\n\tsnip1Rect = 'snip1Rect',\n\tsnip2DiagRect = 'snip2DiagRect',\n\tsnip2SameRect = 'snip2SameRect',\n\tsnipRoundRect = 'snipRoundRect',\n\tsquareTabs = 'squareTabs',\n\tstar10 = 'star10',\n\tstar12 = 'star12',\n\tstar16 = 'star16',\n\tstar24 = 'star24',\n\tstar32 = 'star32',\n\tstar4 = 'star4',\n\tstar5 = 'star5',\n\tstar6 = 'star6',\n\tstar7 = 'star7',\n\tstar8 = 'star8',\n\tstripedRightArrow = 'stripedRightArrow',\n\tsun = 'sun',\n\tswooshArrow = 'swooshArrow',\n\tteardrop = 'teardrop',\n\ttrapezoid = 'trapezoid',\n\ttriangle = 'triangle',\n\tupArrow = 'upArrow',\n\tupArrowCallout = 'upArrowCallout',\n\tupDownArrow = 'upDownArrow',\n\tupDownArrowCallout = 'upDownArrowCallout',\n\tuturnArrow = 'uturnArrow',\n\tverticalScroll = 'verticalScroll',\n\twave = 'wave',\n\twedgeEllipseCallout = 'wedgeEllipseCallout',\n\twedgeRectCallout = 'wedgeRectCallout',\n\twedgeRoundRectCallout = 'wedgeRoundRectCallout',\n}\nexport enum SchemeColor {\n\ttext1 = 'tx1',\n\ttext2 = 'tx2',\n\tbackground1 = 'bg1',\n\tbackground2 = 'bg2',\n\taccent1 = 'accent1',\n\taccent2 = 'accent2',\n\taccent3 = 'accent3',\n\taccent4 = 'accent4',\n\taccent5 = 'accent5',\n\taccent6 = 'accent6',\n}\nexport enum AlignH {\n\tleft = 'left',\n\tcenter = 'center',\n\tright = 'right',\n\tjustify = 'justify',\n}\n/**\n * @deprecated The enum form of `VAlign`, which no option actually takes. Use the `VAlign`\n * string union (`'top' | 'middle' | 'bottom'`) or, for a text body's own anchoring,\n * {@link TextAnchor}. Unlike its sibling {@link AlignH} — which `TextPropsOptions.align`\n * really is typed as — nothing in the library reads this, so it is a third spelling of a\n * two-spelling fact. It will be removed in the next major.\n */\nexport enum AlignV {\n\ttop = 'top',\n\tmiddle = 'middle',\n\tbottom = 'bottom',\n}\n\n/**\n * Every shape geometry name `addShape` accepts: the friendly {@link ShapeType} names plus the\n * connector presets that enum does not surface.\n *\n * Derived from `ShapeType` rather than spelled out, for the reason `CHART_NAME`, `SCHEME_COLORS`,\n * `PLACEHOLDER_TYPE` and `CONNECTOR_PRESET_NAME` are each derived from their runtime source: the\n * two cannot drift. The hand-written union this replaced had all 179 members in enum order, and\n * the runtime `VALID_SHAPE_PRESETS` set was already built from `Object.values(ShapeType)`, so the\n * type and the set it is supposed to describe could disagree on exactly the half nothing checked.\n * The union this produces is character-for-character the one it replaces.\n */\nexport type SHAPE_NAME = `${ShapeType}` | CONNECTOR_PRESET_NAME\n\n/**\n * Valid ECMA-376 `ST_ShapeType` presets that are not surfaced with a friendly\n * `ShapeType` name. They are still legal geometries PowerPoint renders, so the\n * preset-validation set must accept them.\n */\nconst EXTRA_SHAPE_PRESETS = [\n\t'straightConnector1',\n\t'bentConnector2',\n\t'bentConnector3',\n\t'bentConnector4',\n\t'bentConnector5',\n\t'curvedConnector2',\n\t'curvedConnector3',\n\t'curvedConnector4',\n\t'curvedConnector5',\n] as const\n\n/**\n * Connector preset geometries (`straightConnector1` / `bentConnector{2-5}` /\n * `curvedConnector{2-5}`) that `addShape` can serialize but that are not surfaced\n * as friendly `ShapeType` names. Derived from `EXTRA_SHAPE_PRESETS` so the public\n * `SHAPE_NAME` union and the runtime `VALID_SHAPE_PRESETS` set share one source of\n * truth and cannot drift. Use `addConnector` for live, endpoint-bound connectors;\n * pass these to `addShape` for a static box-positioned connector geometry.\n */\nexport type CONNECTOR_PRESET_NAME = (typeof EXTRA_SHAPE_PRESETS)[number]\n\n/**\n * Every shape geometry name ts-pptx can serialize without corrupting the\n * package: the OOXML preset geometries (`ST_ShapeType` — `ShapeType` values\n * plus the unexposed connectors above) and `custGeom` (freeform paths, emitted\n * as `<a:custGeom>` rather than `<a:prstGeom>`). Used to reject bogus presets\n * before they become an invalid `<a:prstGeom prst=\"...\">` that triggers\n * PowerPoint's \"needs repair\" dialog and drops the shape.\n */\nexport const VALID_SHAPE_PRESETS: ReadonlySet<string> = new Set<string>([\n\t...Object.values(ShapeType),\n\t...EXTRA_SHAPE_PRESETS,\n])\n\n/**\n * Narrow a public `CHART_NAME` to the internal `ChartType` enum. Because\n * `CHART_NAME` is derived from `ChartType`, every `CHART_NAME` value is by\n * construction a valid enum value, so this conversion is total and safe — it is\n * the single boundary cast that lets internal code compare against the enum\n * (enum-to-enum) instead of enum-to-string.\n */\nexport function asChartType(name: CHART_NAME): ChartType {\n\treturn name as ChartType\n}\n\n/** Every {@link ChartType} value, for validating a caller-supplied `type` at the API boundary. */\nconst CHART_TYPES: ReadonlySet<string> = new Set<string>(Object.values(ChartType))\n\n/**\n * Is `name` a chart type this library emits?\n *\n * `CHART_NAME` constrains TypeScript callers, but `addChart` is reachable from plain JavaScript\n * where nothing enforces the union — and the two emitters partition the catalog between them by\n * `switch`, so an off-catalog string has no arm in either and cannot produce a plot. Checked once\n * at define time (`gen/define/chart.ts`) so the caller hears about it at the call that was wrong,\n * rather than getting a chart-shaped hole in the deck.\n */\nexport function isChartType(name: unknown): name is CHART_NAME {\n\treturn typeof name === 'string' && CHART_TYPES.has(name)\n}\n\n/**\n * The chartEx (`cx:` / Office 2016 chart-extension) chart types. Unlike the classic 2007 catalog\n * these do NOT emit a `<c:chartSpace>` chart part: they emit a separate `chartEx{N}.xml` part in\n * the `http://schemas.microsoft.com/office/drawing/2014/chartex` namespace, are referenced from\n * the slide through `<mc:AlternateContent>`, and render only in PowerPoint 2016+/Microsoft 365\n * (older Office, Google Slides, Keynote and LibreOffice show the `<mc:Fallback>` shape instead).\n * See `gen/chart/chartex-xml.ts`.\n */\nconst CHARTEX_TYPES: ReadonlySet<string> = new Set<string>([\n\tChartType.waterfall,\n\tChartType.funnel,\n\tChartType.treemap,\n\tChartType.sunburst,\n\tChartType.histogram,\n\tChartType.pareto,\n\tChartType.boxWhisker,\n\tChartType.regionMap,\n])\n\n/**\n * Is `type` a chartEx (cx:) chart? Accepts a `ChartType`/`CHART_NAME` string; anything else —\n * including a combo-chart `ChartMulti[]` array or `undefined` — is not a chartEx type (combos are\n * classic-only), so those return `false`.\n */\nexport function isChartExType(type: unknown): boolean {\n\treturn typeof type === 'string' && CHARTEX_TYPES.has(type)\n}\n\nexport enum SlideObjectType {\n\tchart = 'chart',\n\tconnector = 'connector',\n\tgroup = 'group',\n\thyperlink = 'hyperlink',\n\timage = 'image',\n\tmedia = 'media',\n\tmodel3d = 'model3d',\n\toleObject = 'oleObject',\n\tonline = 'online',\n\tplaceholder = 'placeholder',\n\ttable = 'table',\n\ttablecell = 'tablecell',\n\ttext = 'text',\n\tnotes = 'notes',\n\tzoom = 'zoom',\n}\n\n/**\n * Maps a friendly `ConnectorType` to its OOXML connector preset *family*. `straight`\n * has a single fixed preset; `elbow` and `curved` select a member by bend count\n * (`bentConnector{3,4,5}` / `curvedConnector{3,4,5}`) — see `connectorPresetFor`.\n *\n * Not exported: `connectorPresetFor`, eleven lines below, is its only reader, and\n * `docs/contributing/architecture.md` puts internal OOXML generators off the published surface unless\n * deliberately exposed. Callers name a connector by its `ConnectorType`, or by the\n * {@link CONNECTOR_PRESET_NAME} the function returns.\n */\nconst CONNECTOR_PRESETS = {\n\tstraight: 'straightConnector1',\n\telbow: 'bentConnector',\n\tcurved: 'curvedConnector',\n} as const satisfies Record<'straight' | 'elbow' | 'curved', string>\n\n/**\n * Resolve the concrete connector preset geometry name for a `type` + bend count.\n * `straight` ignores `bends` (it has no adjustable jog). For `elbow` / `curved`, the\n * preset suffix is `bends + 2`, so `bends` of 1/2/3 maps to `…Connector3/4/5`, each\n * of which exposes exactly `bends` adjustable guides (`adj1…adjN`).\n * @param {'straight' | 'elbow' | 'curved'} type - friendly connector routing style\n * @param {number} bends - number of adjustable bends (1–3); ignored for `straight`\n * @return {CONNECTOR_PRESET_NAME} OOXML preset geometry name (e.g. `bentConnector4`)\n */\nexport function connectorPresetFor(type: 'straight' | 'elbow' | 'curved', bends: number): CONNECTOR_PRESET_NAME {\n\tif (type === 'straight') return CONNECTOR_PRESETS.straight\n\treturn `${CONNECTOR_PRESETS[type]}${bends + 2}` as CONNECTOR_PRESET_NAME\n}\nexport enum PlaceholderType {\n\ttitle = 'title',\n\tbody = 'body',\n\timage = 'pic',\n\tchart = 'chart',\n\ttable = 'tbl',\n\tmedia = 'media',\n}\n/**\n * Placeholder-type name. Derived from the `PlaceholderType` enum (above) so the two\n * never drift.\n */\nexport type PLACEHOLDER_TYPE = `${PlaceholderType}`\n\n/**\n * Bullet glyph presets. Only `DEFAULT` is currently wired through to output; the remaining entries are\n * reserved and not yet selectable via options.\n */\nexport enum BulletType {\n\tDEFAULT = '&#x2022;',\n\tCHECK = '&#x2713;',\n\tSTAR = '&#x2605;',\n\tTRIANGLE = '&#x25B6;',\n}\n\n/**\n * Built-in PowerPoint table style IDs.\n *\n * Each value is the GUID that goes into `<a:tableStyleId>` inside `<a:tblPr>`.\n * These 74 GUIDs are the complete set defined in [MS-OE376] §5.1.6.10 and are\n * resolved by PowerPoint without embedding any style definition in the file.\n *\n * Only these enum members are supported. Raw GUID strings are not accepted;\n * use `TableStyle` members exclusively.\n */\nexport enum TableStyle {\n\t// ── No style ────────────────────────────────────────────────────────────\n\tNO_STYLE_NO_GRID = '{2D5ABB26-0587-4C30-8999-92F81FD0307C}',\n\tNO_STYLE_TABLE_GRID = '{5940675A-B579-460E-94D1-54222C63F5DA}',\n\n\t// ── Themed Style 1 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_1_ACCENT_1 = '{3C2FFA5D-87B4-456A-9821-1D502468CF0F}',\n\tTHEMED_STYLE_1_ACCENT_2 = '{284E427A-3D55-4303-BF80-6455036E1DE7}',\n\tTHEMED_STYLE_1_ACCENT_3 = '{69C7853C-536D-4A76-A0AE-DD22124D55A5}',\n\tTHEMED_STYLE_1_ACCENT_4 = '{775DCB02-9BB8-47FD-8907-85C794F793BA}',\n\tTHEMED_STYLE_1_ACCENT_5 = '{35758FB7-9AC5-4552-8A53-C91805E547FA}',\n\tTHEMED_STYLE_1_ACCENT_6 = '{08FB837D-C827-4EFA-A057-4D05807E0F7C}',\n\n\t// ── Themed Style 2 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_2_ACCENT_1 = '{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}',\n\tTHEMED_STYLE_2_ACCENT_2 = '{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}',\n\tTHEMED_STYLE_2_ACCENT_3 = '{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}',\n\tTHEMED_STYLE_2_ACCENT_4 = '{E269D01E-BC32-4049-B463-5C60D7B0CCD2}',\n\tTHEMED_STYLE_2_ACCENT_5 = '{327F97BB-C833-4FB7-BDE5-3F7075034690}',\n\tTHEMED_STYLE_2_ACCENT_6 = '{638B1855-1B75-4FBE-930C-398BA8C253C6}',\n\n\t// ── Light Style 1 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_1 = '{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}',\n\tLIGHT_STYLE_1_ACCENT_1 = '{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}',\n\tLIGHT_STYLE_1_ACCENT_2 = '{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}',\n\tLIGHT_STYLE_1_ACCENT_3 = '{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}',\n\tLIGHT_STYLE_1_ACCENT_4 = '{D27102A9-8310-4765-A935-A1911B00CA55}',\n\tLIGHT_STYLE_1_ACCENT_5 = '{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}',\n\tLIGHT_STYLE_1_ACCENT_6 = '{68D230F3-CF80-4859-8CE7-A43EE81993B5}',\n\n\t// ── Light Style 2 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_2 = '{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}',\n\tLIGHT_STYLE_2_ACCENT_1 = '{69012ECD-51FC-41F1-AA8D-1B2483CD663E}',\n\tLIGHT_STYLE_2_ACCENT_2 = '{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}',\n\tLIGHT_STYLE_2_ACCENT_3 = '{F2DE63D5-997A-4646-A377-4702673A728D}',\n\tLIGHT_STYLE_2_ACCENT_4 = '{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}',\n\tLIGHT_STYLE_2_ACCENT_5 = '{5A111915-BE36-4E01-A7E5-04B1672EAD32}',\n\tLIGHT_STYLE_2_ACCENT_6 = '{912C8C85-51F0-491E-9774-3900AFEF0FD7}',\n\n\t// ── Light Style 3 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_3 = '{616DA210-FB5B-4158-B5E0-FEB733F419BA}',\n\tLIGHT_STYLE_3_ACCENT_1 = '{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}',\n\tLIGHT_STYLE_3_ACCENT_2 = '{5DA37D80-6434-44D0-A028-1B22A696006F}',\n\tLIGHT_STYLE_3_ACCENT_3 = '{8799B23B-EC83-4686-B30A-512413B5E67A}',\n\tLIGHT_STYLE_3_ACCENT_4 = '{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}',\n\tLIGHT_STYLE_3_ACCENT_5 = '{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}',\n\tLIGHT_STYLE_3_ACCENT_6 = '{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}',\n\n\t// ── Medium Style 1 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_1 = '{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}',\n\tMEDIUM_STYLE_1_ACCENT_1 = '{B301B821-A1FF-4177-AEE7-76D212191A09}',\n\tMEDIUM_STYLE_1_ACCENT_2 = '{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}',\n\tMEDIUM_STYLE_1_ACCENT_3 = '{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}',\n\tMEDIUM_STYLE_1_ACCENT_4 = '{1E171933-4619-4E11-9A3F-F7608DF75F80}',\n\tMEDIUM_STYLE_1_ACCENT_5 = '{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}',\n\tMEDIUM_STYLE_1_ACCENT_6 = '{10A1B5D5-9B99-4C35-A422-299274C87663}',\n\n\t// ── Medium Style 2 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_2 = '{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}',\n\tMEDIUM_STYLE_2_ACCENT_1 = '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}',\n\tMEDIUM_STYLE_2_ACCENT_2 = '{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}',\n\tMEDIUM_STYLE_2_ACCENT_3 = '{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}',\n\tMEDIUM_STYLE_2_ACCENT_4 = '{00A15C55-8517-42AA-B614-E9B94910E393}',\n\tMEDIUM_STYLE_2_ACCENT_5 = '{7DF18680-E054-41AD-8BC1-D1AEF772440D}',\n\tMEDIUM_STYLE_2_ACCENT_6 = '{93296810-A885-4BE3-A3E7-6D5BEEA58F35}',\n\n\t// ── Medium Style 3 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_3 = '{8EC20E35-A176-4012-BC5E-935CFFF8708E}',\n\tMEDIUM_STYLE_3_ACCENT_1 = '{6E25E649-3F16-4E02-A733-19D2CDBF48F0}',\n\tMEDIUM_STYLE_3_ACCENT_2 = '{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}',\n\tMEDIUM_STYLE_3_ACCENT_3 = '{EB344D84-9AFB-497E-A393-DC336BA19D2E}',\n\tMEDIUM_STYLE_3_ACCENT_4 = '{EB9631B5-78F2-41C9-869B-9F39066F8104}',\n\tMEDIUM_STYLE_3_ACCENT_5 = '{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}',\n\tMEDIUM_STYLE_3_ACCENT_6 = '{2A488322-F2BA-4B5B-9748-0D474271808F}',\n\n\t// ── Medium Style 4 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_4 = '{D7AC3CCA-C797-4891-BE02-D94E43425B78}',\n\tMEDIUM_STYLE_4_ACCENT_1 = '{69CF1AB2-1976-4502-BF36-3FF5EA218861}',\n\tMEDIUM_STYLE_4_ACCENT_2 = '{8A107856-5554-42FB-B03E-39F5DBC370BA}',\n\tMEDIUM_STYLE_4_ACCENT_3 = '{0505E3EF-67EA-436B-97B2-0124C06EBD24}',\n\tMEDIUM_STYLE_4_ACCENT_4 = '{C4B1156A-380E-4F78-BDF5-A606A8083BF9}',\n\tMEDIUM_STYLE_4_ACCENT_5 = '{22838BEF-8BB2-4498-84A7-C5851F593DF1}',\n\tMEDIUM_STYLE_4_ACCENT_6 = '{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}',\n\n\t// ── Dark Style 1 ────────────────────────────────────────────────────────\n\tDARK_STYLE_1 = '{E8034E78-7F5D-4C2E-B375-FC64B27BC917}',\n\tDARK_STYLE_1_ACCENT_1 = '{125E5076-3810-47DD-B79F-674D7AD40C01}',\n\tDARK_STYLE_1_ACCENT_2 = '{37CE84F3-28C3-443E-9E96-99CF82512B78}',\n\tDARK_STYLE_1_ACCENT_3 = '{D03447BB-5D67-496B-8E87-E561075AD55C}',\n\tDARK_STYLE_1_ACCENT_4 = '{E929F9F4-4A8F-4326-A1B4-22849713DDAB}',\n\tDARK_STYLE_1_ACCENT_5 = '{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}',\n\tDARK_STYLE_1_ACCENT_6 = '{AF606853-7671-496A-8E4F-DF71F8EC918B}',\n\n\t// ── Dark Style 2 ────────────────────────────────────────────────────────\n\tDARK_STYLE_2 = '{5202B0CA-FC54-4496-8BCA-5EF66A818D29}',\n\t/** Header uses Accent 2, body rows use Accent 1 */\n\tDARK_STYLE_2_ACCENT_1_ACCENT_2 = '{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}',\n\t/** Header uses Accent 4, body rows use Accent 3 */\n\tDARK_STYLE_2_ACCENT_3_ACCENT_4 = '{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}',\n\t/** Header uses Accent 6, body rows use Accent 5 */\n\tDARK_STYLE_2_ACCENT_5_ACCENT_6 = '{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}',\n}\n","/**\n * A table cell's default text insets in EMU: the schema defaults of `a:tcPr/@marL`, `@marR`\n * (91440, 0.1in) and `@marT`, `@marB` (45720, 0.05in) on `CT_TableCellProperties`.\n *\n * Unlike the body insets in `body-insets.ts` these are real XSD defaults, so they are transcribed\n * from the schema rather than derived. A cell that states one side leaves the other three at these\n * values, not at zero.\n *\n * A module of its own, importing nothing, because `constants-internal.ts` derives the write path's\n * inch defaults from it and is reached by every entry. Taken from `body-insets.ts`, the record\n * brought that module's other exports into the read entry with it.\n */\nexport const TABLE_CELL_MARGIN_DEFAULTS_EMU = { left: 91440, right: 91440, top: 45720, bottom: 45720 } as const\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-cell-margins-PDshga8T.js","names":[],"sources":["../src/ooxml/emu.ts","../src/units.ts","../src/enums.ts","../src/ooxml/table-cell-margins.ts"],"sourcesContent":["/**\n * The fixed ratios between English Metric Units, points and inches.\n *\n * `units.ts` publishes them, but it also holds the unit converters, which warn and throw, so it\n * imports `diagnostics.ts` and `errors.ts` at run time. A schema fact in `ooxml/` that only needs\n * a ratio (`body-insets.ts`) took both along with it. This module imports nothing, and `units.ts`\n * re-exports it, so the public names are unchanged.\n */\n\n/** EMU in one inch. */\nexport const EMU_PER_INCH = 914400\n/** EMU in one point. */\nexport const EMU_PER_POINT = 12700\n/** Points in one inch. */\nexport const POINTS_PER_INCH = 72\n","import { warn } from './diagnostics.js'\nimport { InvalidOptionError } from './errors.js'\nimport { EMU_PER_INCH, EMU_PER_POINT, POINTS_PER_INCH } from './ooxml/emu.js'\n/**\n * Public unit conversion helpers and standard PowerPoint slide-layout constants.\n */\n\n// Declared in `ooxml/emu.ts`, which imports nothing, so a schema fact can use them without this\n// module's run-time imports.\nexport { EMU_PER_INCH, EMU_PER_POINT, POINTS_PER_INCH }\n\n/**\n * DrawingML angle unit. `ST_Angle` (`rot`, shadow `dir`, gradient `ang`, …) is measured in\n * sixtieths-of-a-thousandth of a degree, i.e. 60000 units per degree. Multiply a value in\n * degrees by this to get the OOXML integer.\n */\nexport const ANGLE_UNITS_PER_DEGREE = 60000\n\n/**\n * DrawingML fixed-point percentage scale. `ST_Percentage` / `ST_PositiveFixedPercentage` and\n * related types (`<a:alpha>`, `<a:spcPct>`, shape adjustment guides, `<p:tav tm>`, …) encode\n * 100% as the integer 100000. Multiply a 0-1 fraction by this to get the OOXML value.\n */\nexport const PERCENT_SCALE = 100000\n\n/**\n * Scale for a percentage supplied as 0-100 (rather than a 0-1 fraction) into the same\n * fixed-point percentage integer as {@link PERCENT_SCALE} (1% = 1000 units, i.e. thousandths\n * of a percent). Use for inputs documented as percents: transparency/alpha, image crop insets,\n * gradient stops, bullet size, connector adjust, etc.\n */\nexport const FIXED_PCT_PER_PERCENT = PERCENT_SCALE / 100\n\n/**\n * DrawingML text measures font size (`sz`), character spacing (`spc`) and point line/paragraph\n * spacing (`<a:spcPts val>`) in hundredths of a point. Multiply a value in points by this to get\n * the OOXML integer.\n */\nexport const HUNDREDTHS_PER_POINT = 100\n\n/**\n * Convert a value in points to hundredths of a point (rounded), the integer unit DrawingML uses\n * for `sz`, `spc`, and `<a:spcPts val>`. See {@link HUNDREDTHS_PER_POINT}.\n */\nexport function ptToHundredths(pt: number): number {\n\tassertFiniteNumber(pt, 'points')\n\treturn Math.round(pt * HUNDREDTHS_PER_POINT)\n}\n\n/**\n * English Metric Units — the integer unit OOXML serializes geometry in (914400 per inch).\n *\n * Branded so a value that has already been resolved to EMU cannot be silently fed back into a\n * unit converter: {@link coordToEmu} only accepts a user `Coord`, so passing an `Emu` into it is\n * a compile-time error. This replaces the old runtime \"a number ≥ 100 must already be EMU\"\n * magnitude guess, which silently mis-rendered values near the threshold.\n */\nexport type Emu = number & { readonly __unit: 'emu' }\n\n/** A bare number larger than this (in inches) is almost certainly a mistake — likely a raw EMU\n * value passed where inches are expected. We interpret it as inches (the documented contract) but\n * warn, pointing at the explicit `\"<n>emu\"` form. ~1000in is far beyond any real slide. */\nconst IMPLAUSIBLE_INCHES = 1000\n\n/** Default pixel density for the `\"<n>px\"` coordinate unit: CSS reference pixels, also the\n * density pptx-ts assumes when reading an image header's pixel dimensions. */\nexport const DEFAULT_PX_PER_INCH = 96\n\n/**\n * The largest DrawingML coordinate, in EMU: the `maxInclusive` of `ST_Coordinate`, the type of\n * every shape offset and extent. The range is not symmetric; see {@link MIN_COORDINATE_EMU}.\n */\nexport const MAX_COORDINATE_EMU = 27273042316900\n\n/** The smallest DrawingML coordinate, in EMU: the `minInclusive` of `ST_Coordinate`. */\nexport const MIN_COORDINATE_EMU = -27273042329600\n\nexport type StandardLayoutName = 'LAYOUT_4x3' | 'LAYOUT_16x9' | 'LAYOUT_16x10' | 'LAYOUT_WIDE'\n\nexport interface StandardLayout {\n\t/** pptx-ts layout key used with `pptx.layout`. */\n\treadonly layout: StandardLayoutName\n\t/** PresentationML slide-size preset name, or `custom` for PowerPoint widescreen. */\n\treadonly name: string\n\t/** Slide width in inches — inches is pptx-ts's default coordinate unit, so this is the value to use for `addText`/`addShape` math. */\n\treadonly widthIn: number\n\t/** Slide height in inches. */\n\treadonly heightIn: number\n\t/** Slide width in English Metric Units. */\n\treadonly widthEmu: number\n\t/** Slide height in English Metric Units. */\n\treadonly heightEmu: number\n}\n\nexport function inchesToEmu(inches: number): Emu {\n\tassertFiniteNumber(inches, 'inches')\n\treturn inCoordinateRange(Math.round(inches * EMU_PER_INCH), inches, 'inches')\n}\n\nexport function pointsToEmu(points: number): Emu {\n\tassertFiniteNumber(points, 'points')\n\treturn inCoordinateRange(Math.round(points * EMU_PER_POINT), points, 'points')\n}\n\nexport function pixelsToEmu(pixels: number, dpi: number): Emu {\n\tassertFiniteNumber(pixels, 'pixels')\n\tassertPositiveFiniteNumber(dpi, 'dpi')\n\treturn inchesToEmu(pixels / dpi)\n}\n\n/**\n * Resolve a percentage of an axis length to EMU.\n *\n * **Published for consumers, and reached from one place inside `src/` on purpose.** Internally\n * only `parseCoord` needs it, because every `'50%'` a caller writes comes through there; it is\n * exported because a consumer computing its own geometry against a slide axis needs the same\n * arithmetic, and it belongs with the rest of the conversion set beside it rather than hidden\n * behind the one caller. Left exported deliberately rather than by oversight — this note is the\n * difference between the two, as it is on {@link emuToPixels}.\n * @param percent - percentage value (e.g. `50` for 50%)\n * @param axisEmu - the axis length in EMU (slide width for x/w, height for y/h)\n */\nexport function percentToEmu(percent: number, axisEmu: number): Emu {\n\tassertFiniteNumber(percent, 'percent')\n\tassertFiniteNumber(axisEmu, 'axisEmu')\n\treturn inCoordinateRange(Math.round((percent / 100) * axisEmu), percent, 'percent')\n}\n\n/**\n * The single user-coordinate → EMU boundary. Convert each user-supplied coordinate exactly once.\n *\n * Accepts (see {@link Coord}):\n * - a bare `number` → **always inches** (the documented unit); no magnitude guessing\n * - `\"<n>%\"` → percentage of `axisEmu`\n * - `\"<n>in\"` / `\"<n>pt\"` / `\"<n>px\"` / `\"<n>emu\"` → explicit units (the escape hatch for non-inch\n * values). `px` is resolved at {@link DEFAULT_PX_PER_INCH} (96), for authoring against a known\n * web/source canvas size.\n *\n * Throws on non-finite or unparseable input rather than silently emitting a degenerate 0-size.\n * @param value - user coordinate\n * @param axisEmu - axis length in EMU, used only to resolve percentages\n */\nexport function coordToEmu(value: number | string, axisEmu: number): Emu {\n\tif (typeof value === 'number') {\n\t\tassertFiniteNumber(value, 'coordinate')\n\t\tif (Math.abs(value) > IMPLAUSIBLE_INCHES) {\n\t\t\twarn(\n\t\t\t\t'coord/bare-number-is-inches',\n\t\t\t\t`coordinate ${value} interpreted as ${value} inches. A bare number is always inches; ` +\n\t\t\t\t\t`if you meant EMU, pass it as a string like \"${Math.round(value)}emu\".`\n\t\t\t)\n\t\t}\n\t\treturn inchesToEmu(value)\n\t}\n\n\tconst match = /^\\s*(-?\\d*\\.?\\d+)\\s*(%|in|pt|px|emu)\\s*$/.exec(value)\n\tif (!match) {\n\t\tthrow new InvalidOptionError(\n\t\t\t'coord/invalid-format',\n\t\t\t`Invalid coordinate \"${value}\". Expected a number (inches) or a string like \"50%\", \"5in\", \"72pt\", \"96px\", or \"914400emu\".`\n\t\t)\n\t}\n\tconst n = Number(match[1])\n\tswitch (match[2]) {\n\t\tcase '%':\n\t\t\treturn percentToEmu(n, axisEmu)\n\t\tcase 'in':\n\t\t\treturn inchesToEmu(n)\n\t\tcase 'pt':\n\t\t\treturn pointsToEmu(n)\n\t\tcase 'px':\n\t\t\treturn pixelsToEmu(n, DEFAULT_PX_PER_INCH)\n\t\tdefault: // 'emu'\n\t\t\tassertFiniteNumber(n, 'coordinate')\n\t\t\treturn inCoordinateRange(Math.round(n), n, 'EMU')\n\t}\n}\n\nexport function emuToInches(emu: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\treturn emu / EMU_PER_INCH\n}\n\n/**\n * EMU → points, the unit the write API states line widths, font sizes and text insets in.\n *\n * The one conversion, for the library as well as for a consumer: three private forms of\n * `emu / EMU_PER_POINT` had grown around it — the read model's `null`-propagating `ptFromEmu`,\n * the script mapper's `points`, and a dozen inline divisions — while this stayed published and\n * uncalled.\n *\n * **The policy, and its one exception.** Every EMU→points conversion goes through here or through\n * `ptFromEmu` in `src/read/api/coords.ts`, which is this with a `null` passed along. (Named rather\n * than linked: it is internal, so a reference link to it resolves to nothing in the published\n * reference.) The exception is\n * `measure/*` — `fit.ts`, `paragraphs.ts`, `table-fit.ts` — where an inner box is computed as\n * `(extent - inset - inset) / EMU_PER_POINT` and then guarded with `!(x > 0)`. That guard is\n * written NaN-first on purpose: a box that cannot be measured is skipped, not reported. This\n * function asserts a finite input and throws instead, which is the right answer for a caller\n * stating a value and the wrong one for a pass whose whole job is to degrade quietly. Those\n * sites keep the division; nothing else may.\n */\nexport function emuToPoints(emu: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\treturn emu / EMU_PER_POINT\n}\n\n/**\n * EMU → whole pixels at a stated DPI.\n *\n * **Published for consumers, and used nowhere in `src/` on purpose.** Nothing inside the\n * library thinks in pixels: it is the unit a caller placing library output on a canvas or in a\n * `<img>` needs, and the DPI is theirs to choose. Left exported deliberately rather than by\n * oversight — this note is the difference between the two.\n */\nexport function emuToPixels(emu: number, dpi: number): number {\n\tassertFiniteNumber(emu, 'emu')\n\tassertPositiveFiniteNumber(dpi, 'dpi')\n\treturn Math.round(emuToInches(emu) * dpi)\n}\n\nfunction standardLayout(layout: StandardLayoutName, name: string, widthIn: number, heightIn: number): StandardLayout {\n\treturn Object.freeze({\n\t\tlayout,\n\t\tname,\n\t\twidthIn,\n\t\theightIn,\n\t\twidthEmu: inchesToEmu(widthIn),\n\t\theightEmu: inchesToEmu(heightIn),\n\t})\n}\n\nexport const STANDARD_LAYOUTS: Readonly<Record<StandardLayoutName, StandardLayout>> = Object.freeze({\n\tLAYOUT_4x3: standardLayout('LAYOUT_4x3', 'screen4x3', 10, 7.5),\n\tLAYOUT_16x9: standardLayout('LAYOUT_16x9', 'screen16x9', 10, 5.625),\n\tLAYOUT_16x10: standardLayout('LAYOUT_16x10', 'screen16x10', 10, 6.25),\n\tLAYOUT_WIDE: standardLayout('LAYOUT_WIDE', 'custom', 40 / 3, 7.5),\n})\n\n/**\n * `emu` as an `Emu`, or a `coord/out-of-range` throw when it falls outside `ST_Coordinate`.\n *\n * A finite input is not enough on its own. `1e16` inches is finite and converts to `9.144e+21`,\n * which serializes in exponent notation and is not an `xsd:long` at all; `4e7` inches converts to\n * a long, but one past the bound. Neither is a coordinate PowerPoint can hold.\n * @param emu - the converted value\n * @param value - the caller's value, for the message\n * @param unit - the unit `value` was stated in, for the message\n */\nfunction inCoordinateRange(emu: number, value: number, unit: string): Emu {\n\tif (emu < MIN_COORDINATE_EMU || emu > MAX_COORDINATE_EMU)\n\t\tthrow new InvalidOptionError(\n\t\t\t'coord/out-of-range',\n\t\t\t`${value} ${unit} is ${emu} EMU, outside the DrawingML coordinate range ${MIN_COORDINATE_EMU} to ${MAX_COORDINATE_EMU} EMU.`\n\t\t)\n\treturn emu as Emu\n}\n\nfunction assertFiniteNumber(value: number, name: string): void {\n\tif (!Number.isFinite(value)) throw new InvalidOptionError('coord/non-finite', `${name} must be a finite number`)\n}\n\nfunction assertPositiveFiniteNumber(value: number, name: string): void {\n\tassertFiniteNumber(value, name)\n\tif (value <= 0) throw new InvalidOptionError('coord/not-positive', `${name} must be greater than 0`)\n}\n","/**\n * pptx-ts Enums\n * NOTE: `enum` wont work for objects, so use `Object.freeze`\n */\n\n/**\n * Output-type name accepted by the zip/write layer. Derived from the `OutputType`\n * enum (see below) so the two never drift: adding a member to the enum extends this\n * union automatically.\n */\nexport type ZIP_OUTPUT_TYPE = `${OutputType}`\nexport type WRITE_OUTPUT_TYPE = ZIP_OUTPUT_TYPE\n/**\n * Public chart-type name accepted by `addChart()`. Derived from the internal\n * `ChartType` enum (see below) so the two never drift: adding a member to the\n * enum extends this union automatically.\n */\nexport type CHART_NAME = `${ChartType}`\n/**\n * Public scheme-color name. Derived from the `SchemeColor` enum (see below) so the\n * two never drift.\n */\nexport type SCHEME_COLORS = `${SchemeColor}`\n\nexport enum TextAnchor {\n\tb = 'b',\n\tctr = 'ctr',\n\tt = 't',\n}\n\n// ENUM\nexport enum OutputType {\n\tarraybuffer = 'arraybuffer',\n\tbase64 = 'base64',\n\tbinarystring = 'binarystring',\n\tblob = 'blob',\n\tnodebuffer = 'nodebuffer',\n\tuint8array = 'uint8array',\n}\nexport enum ChartType {\n\tarea = 'area',\n\tbar = 'bar',\n\tbar3d = 'bar3D',\n\tbubble = 'bubble',\n\tbubble3d = 'bubble3D',\n\tdoughnut = 'doughnut',\n\tline = 'line',\n\tpie = 'pie',\n\tradar = 'radar',\n\tscatter = 'scatter',\n\tstock = 'stock',\n\tsurface = 'surface',\n\twaterfall = 'waterfall',\n\tfunnel = 'funnel',\n\ttreemap = 'treemap',\n\tsunburst = 'sunburst',\n\thistogram = 'histogram',\n\tpareto = 'pareto',\n\tboxWhisker = 'boxWhisker',\n\tregionMap = 'regionMap',\n}\nexport enum ShapeType {\n\taccentBorderCallout1 = 'accentBorderCallout1',\n\taccentBorderCallout2 = 'accentBorderCallout2',\n\taccentBorderCallout3 = 'accentBorderCallout3',\n\taccentCallout1 = 'accentCallout1',\n\taccentCallout2 = 'accentCallout2',\n\taccentCallout3 = 'accentCallout3',\n\tactionButtonBackPrevious = 'actionButtonBackPrevious',\n\tactionButtonBeginning = 'actionButtonBeginning',\n\tactionButtonBlank = 'actionButtonBlank',\n\tactionButtonDocument = 'actionButtonDocument',\n\tactionButtonEnd = 'actionButtonEnd',\n\tactionButtonForwardNext = 'actionButtonForwardNext',\n\tactionButtonHelp = 'actionButtonHelp',\n\tactionButtonHome = 'actionButtonHome',\n\tactionButtonInformation = 'actionButtonInformation',\n\tactionButtonMovie = 'actionButtonMovie',\n\tactionButtonReturn = 'actionButtonReturn',\n\tactionButtonSound = 'actionButtonSound',\n\tarc = 'arc',\n\tbentArrow = 'bentArrow',\n\tbentUpArrow = 'bentUpArrow',\n\tbevel = 'bevel',\n\tblockArc = 'blockArc',\n\tborderCallout1 = 'borderCallout1',\n\tborderCallout2 = 'borderCallout2',\n\tborderCallout3 = 'borderCallout3',\n\tbracePair = 'bracePair',\n\tbracketPair = 'bracketPair',\n\tcallout1 = 'callout1',\n\tcallout2 = 'callout2',\n\tcallout3 = 'callout3',\n\tcan = 'can',\n\tchartPlus = 'chartPlus',\n\tchartStar = 'chartStar',\n\tchartX = 'chartX',\n\tchevron = 'chevron',\n\tchord = 'chord',\n\tcircularArrow = 'circularArrow',\n\tcloud = 'cloud',\n\tcloudCallout = 'cloudCallout',\n\tcorner = 'corner',\n\tcornerTabs = 'cornerTabs',\n\tcube = 'cube',\n\tcurvedDownArrow = 'curvedDownArrow',\n\tcurvedLeftArrow = 'curvedLeftArrow',\n\tcurvedRightArrow = 'curvedRightArrow',\n\tcurvedUpArrow = 'curvedUpArrow',\n\tcustGeom = 'custGeom',\n\tdecagon = 'decagon',\n\tdiagStripe = 'diagStripe',\n\tdiamond = 'diamond',\n\tdodecagon = 'dodecagon',\n\tdonut = 'donut',\n\tdoubleWave = 'doubleWave',\n\tdownArrow = 'downArrow',\n\tdownArrowCallout = 'downArrowCallout',\n\tellipse = 'ellipse',\n\tellipseRibbon = 'ellipseRibbon',\n\tellipseRibbon2 = 'ellipseRibbon2',\n\tflowChartAlternateProcess = 'flowChartAlternateProcess',\n\tflowChartCollate = 'flowChartCollate',\n\tflowChartConnector = 'flowChartConnector',\n\tflowChartDecision = 'flowChartDecision',\n\tflowChartDelay = 'flowChartDelay',\n\tflowChartDisplay = 'flowChartDisplay',\n\tflowChartDocument = 'flowChartDocument',\n\tflowChartExtract = 'flowChartExtract',\n\tflowChartInputOutput = 'flowChartInputOutput',\n\tflowChartInternalStorage = 'flowChartInternalStorage',\n\tflowChartMagneticDisk = 'flowChartMagneticDisk',\n\tflowChartMagneticDrum = 'flowChartMagneticDrum',\n\tflowChartMagneticTape = 'flowChartMagneticTape',\n\tflowChartManualInput = 'flowChartManualInput',\n\tflowChartManualOperation = 'flowChartManualOperation',\n\tflowChartMerge = 'flowChartMerge',\n\tflowChartMultidocument = 'flowChartMultidocument',\n\tflowChartOfflineStorage = 'flowChartOfflineStorage',\n\tflowChartOffpageConnector = 'flowChartOffpageConnector',\n\tflowChartOnlineStorage = 'flowChartOnlineStorage',\n\tflowChartOr = 'flowChartOr',\n\tflowChartPredefinedProcess = 'flowChartPredefinedProcess',\n\tflowChartPreparation = 'flowChartPreparation',\n\tflowChartProcess = 'flowChartProcess',\n\tflowChartPunchedCard = 'flowChartPunchedCard',\n\tflowChartPunchedTape = 'flowChartPunchedTape',\n\tflowChartSort = 'flowChartSort',\n\tflowChartSummingJunction = 'flowChartSummingJunction',\n\tflowChartTerminator = 'flowChartTerminator',\n\tfoldedCorner = 'foldedCorner',\n\tframe = 'frame',\n\tfunnel = 'funnel',\n\tgear6 = 'gear6',\n\tgear9 = 'gear9',\n\thalfFrame = 'halfFrame',\n\theart = 'heart',\n\theptagon = 'heptagon',\n\thexagon = 'hexagon',\n\thomePlate = 'homePlate',\n\thorizontalScroll = 'horizontalScroll',\n\tirregularSeal1 = 'irregularSeal1',\n\tirregularSeal2 = 'irregularSeal2',\n\tleftArrow = 'leftArrow',\n\tleftArrowCallout = 'leftArrowCallout',\n\tleftBrace = 'leftBrace',\n\tleftBracket = 'leftBracket',\n\tleftCircularArrow = 'leftCircularArrow',\n\tleftRightArrow = 'leftRightArrow',\n\tleftRightArrowCallout = 'leftRightArrowCallout',\n\tleftRightCircularArrow = 'leftRightCircularArrow',\n\tleftRightRibbon = 'leftRightRibbon',\n\tleftRightUpArrow = 'leftRightUpArrow',\n\tleftUpArrow = 'leftUpArrow',\n\tlightningBolt = 'lightningBolt',\n\tline = 'line',\n\tlineInv = 'lineInv',\n\tmathDivide = 'mathDivide',\n\tmathEqual = 'mathEqual',\n\tmathMinus = 'mathMinus',\n\tmathMultiply = 'mathMultiply',\n\tmathNotEqual = 'mathNotEqual',\n\tmathPlus = 'mathPlus',\n\tmoon = 'moon',\n\tnoSmoking = 'noSmoking',\n\tnonIsoscelesTrapezoid = 'nonIsoscelesTrapezoid',\n\tnotchedRightArrow = 'notchedRightArrow',\n\toctagon = 'octagon',\n\tparallelogram = 'parallelogram',\n\tpentagon = 'pentagon',\n\tpie = 'pie',\n\tpieWedge = 'pieWedge',\n\tplaque = 'plaque',\n\tplaqueTabs = 'plaqueTabs',\n\tplus = 'plus',\n\tquadArrow = 'quadArrow',\n\tquadArrowCallout = 'quadArrowCallout',\n\trect = 'rect',\n\tribbon = 'ribbon',\n\tribbon2 = 'ribbon2',\n\trightArrow = 'rightArrow',\n\trightArrowCallout = 'rightArrowCallout',\n\trightBrace = 'rightBrace',\n\trightBracket = 'rightBracket',\n\tround1Rect = 'round1Rect',\n\tround2DiagRect = 'round2DiagRect',\n\tround2SameRect = 'round2SameRect',\n\troundRect = 'roundRect',\n\trtTriangle = 'rtTriangle',\n\tsmileyFace = 'smileyFace',\n\tsnip1Rect = 'snip1Rect',\n\tsnip2DiagRect = 'snip2DiagRect',\n\tsnip2SameRect = 'snip2SameRect',\n\tsnipRoundRect = 'snipRoundRect',\n\tsquareTabs = 'squareTabs',\n\tstar10 = 'star10',\n\tstar12 = 'star12',\n\tstar16 = 'star16',\n\tstar24 = 'star24',\n\tstar32 = 'star32',\n\tstar4 = 'star4',\n\tstar5 = 'star5',\n\tstar6 = 'star6',\n\tstar7 = 'star7',\n\tstar8 = 'star8',\n\tstripedRightArrow = 'stripedRightArrow',\n\tsun = 'sun',\n\tswooshArrow = 'swooshArrow',\n\tteardrop = 'teardrop',\n\ttrapezoid = 'trapezoid',\n\ttriangle = 'triangle',\n\tupArrow = 'upArrow',\n\tupArrowCallout = 'upArrowCallout',\n\tupDownArrow = 'upDownArrow',\n\tupDownArrowCallout = 'upDownArrowCallout',\n\tuturnArrow = 'uturnArrow',\n\tverticalScroll = 'verticalScroll',\n\twave = 'wave',\n\twedgeEllipseCallout = 'wedgeEllipseCallout',\n\twedgeRectCallout = 'wedgeRectCallout',\n\twedgeRoundRectCallout = 'wedgeRoundRectCallout',\n}\nexport enum SchemeColor {\n\ttext1 = 'tx1',\n\ttext2 = 'tx2',\n\tbackground1 = 'bg1',\n\tbackground2 = 'bg2',\n\taccent1 = 'accent1',\n\taccent2 = 'accent2',\n\taccent3 = 'accent3',\n\taccent4 = 'accent4',\n\taccent5 = 'accent5',\n\taccent6 = 'accent6',\n}\nexport enum AlignH {\n\tleft = 'left',\n\tcenter = 'center',\n\tright = 'right',\n\tjustify = 'justify',\n}\n/**\n * @deprecated The enum form of `VAlign`, which no option actually takes. Use the `VAlign`\n * string union (`'top' | 'middle' | 'bottom'`) or, for a text body's own anchoring,\n * {@link TextAnchor}. Unlike its sibling {@link AlignH} — which `TextPropsOptions.align`\n * really is typed as — nothing in the library reads this, so it is a third spelling of a\n * two-spelling fact. It will be removed in the next major.\n */\nexport enum AlignV {\n\ttop = 'top',\n\tmiddle = 'middle',\n\tbottom = 'bottom',\n}\n\n/**\n * Every shape geometry name `addShape` accepts: the friendly {@link ShapeType} names plus the\n * connector presets that enum does not surface.\n *\n * Derived from `ShapeType` rather than spelled out, for the reason `CHART_NAME`, `SCHEME_COLORS`,\n * `PLACEHOLDER_TYPE` and `CONNECTOR_PRESET_NAME` are each derived from their runtime source: the\n * two cannot drift. The hand-written union this replaced had all 179 members in enum order, and\n * the runtime `VALID_SHAPE_PRESETS` set was already built from `Object.values(ShapeType)`, so the\n * type and the set it is supposed to describe could disagree on exactly the half nothing checked.\n * The union this produces is character-for-character the one it replaces.\n */\nexport type SHAPE_NAME = `${ShapeType}` | CONNECTOR_PRESET_NAME\n\n/**\n * Valid ECMA-376 `ST_ShapeType` presets that are not surfaced with a friendly\n * `ShapeType` name. They are still legal geometries PowerPoint renders, so the\n * preset-validation set must accept them.\n */\nconst EXTRA_SHAPE_PRESETS = [\n\t'straightConnector1',\n\t'bentConnector2',\n\t'bentConnector3',\n\t'bentConnector4',\n\t'bentConnector5',\n\t'curvedConnector2',\n\t'curvedConnector3',\n\t'curvedConnector4',\n\t'curvedConnector5',\n] as const\n\n/**\n * Connector preset geometries (`straightConnector1` / `bentConnector{2-5}` /\n * `curvedConnector{2-5}`) that `addShape` can serialize but that are not surfaced\n * as friendly `ShapeType` names. Derived from `EXTRA_SHAPE_PRESETS` so the public\n * `SHAPE_NAME` union and the runtime `VALID_SHAPE_PRESETS` set share one source of\n * truth and cannot drift. Use `addConnector` for live, endpoint-bound connectors;\n * pass these to `addShape` for a static box-positioned connector geometry.\n */\nexport type CONNECTOR_PRESET_NAME = (typeof EXTRA_SHAPE_PRESETS)[number]\n\n/**\n * Every shape geometry name pptx-ts can serialize without corrupting the\n * package: the OOXML preset geometries (`ST_ShapeType` — `ShapeType` values\n * plus the unexposed connectors above) and `custGeom` (freeform paths, emitted\n * as `<a:custGeom>` rather than `<a:prstGeom>`). Used to reject bogus presets\n * before they become an invalid `<a:prstGeom prst=\"...\">` that triggers\n * PowerPoint's \"needs repair\" dialog and drops the shape.\n */\nexport const VALID_SHAPE_PRESETS: ReadonlySet<string> = new Set<string>([\n\t...Object.values(ShapeType),\n\t...EXTRA_SHAPE_PRESETS,\n])\n\n/**\n * Narrow a public `CHART_NAME` to the internal `ChartType` enum. Because\n * `CHART_NAME` is derived from `ChartType`, every `CHART_NAME` value is by\n * construction a valid enum value, so this conversion is total and safe — it is\n * the single boundary cast that lets internal code compare against the enum\n * (enum-to-enum) instead of enum-to-string.\n */\nexport function asChartType(name: CHART_NAME): ChartType {\n\treturn name as ChartType\n}\n\n/** Every {@link ChartType} value, for validating a caller-supplied `type` at the API boundary. */\nconst CHART_TYPES: ReadonlySet<string> = new Set<string>(Object.values(ChartType))\n\n/**\n * Is `name` a chart type this library emits?\n *\n * `CHART_NAME` constrains TypeScript callers, but `addChart` is reachable from plain JavaScript\n * where nothing enforces the union — and the two emitters partition the catalog between them by\n * `switch`, so an off-catalog string has no arm in either and cannot produce a plot. Checked once\n * at define time (`gen/define/chart.ts`) so the caller hears about it at the call that was wrong,\n * rather than getting a chart-shaped hole in the deck.\n */\nexport function isChartType(name: unknown): name is CHART_NAME {\n\treturn typeof name === 'string' && CHART_TYPES.has(name)\n}\n\n/**\n * The chartEx (`cx:` / Office 2016 chart-extension) chart types. Unlike the classic 2007 catalog\n * these do NOT emit a `<c:chartSpace>` chart part: they emit a separate `chartEx{N}.xml` part in\n * the `http://schemas.microsoft.com/office/drawing/2014/chartex` namespace, are referenced from\n * the slide through `<mc:AlternateContent>`, and render only in PowerPoint 2016+/Microsoft 365\n * (older Office, Google Slides, Keynote and LibreOffice show the `<mc:Fallback>` shape instead).\n * See `gen/chart/chartex-xml.ts`.\n */\nconst CHARTEX_TYPES: ReadonlySet<string> = new Set<string>([\n\tChartType.waterfall,\n\tChartType.funnel,\n\tChartType.treemap,\n\tChartType.sunburst,\n\tChartType.histogram,\n\tChartType.pareto,\n\tChartType.boxWhisker,\n\tChartType.regionMap,\n])\n\n/**\n * Is `type` a chartEx (cx:) chart? Accepts a `ChartType`/`CHART_NAME` string; anything else —\n * including a combo-chart `ChartMulti[]` array or `undefined` — is not a chartEx type (combos are\n * classic-only), so those return `false`.\n */\nexport function isChartExType(type: unknown): boolean {\n\treturn typeof type === 'string' && CHARTEX_TYPES.has(type)\n}\n\nexport enum SlideObjectType {\n\tchart = 'chart',\n\tconnector = 'connector',\n\tgroup = 'group',\n\thyperlink = 'hyperlink',\n\timage = 'image',\n\tmedia = 'media',\n\tmodel3d = 'model3d',\n\toleObject = 'oleObject',\n\tonline = 'online',\n\tplaceholder = 'placeholder',\n\ttable = 'table',\n\ttablecell = 'tablecell',\n\ttext = 'text',\n\tnotes = 'notes',\n\tzoom = 'zoom',\n}\n\n/**\n * Maps a friendly `ConnectorType` to its OOXML connector preset *family*. `straight`\n * has a single fixed preset; `elbow` and `curved` select a member by bend count\n * (`bentConnector{3,4,5}` / `curvedConnector{3,4,5}`) — see `connectorPresetFor`.\n *\n * Not exported: `connectorPresetFor`, eleven lines below, is its only reader, and\n * `docs/contributing/architecture.md` puts internal OOXML generators off the published surface unless\n * deliberately exposed. Callers name a connector by its `ConnectorType`, or by the\n * {@link CONNECTOR_PRESET_NAME} the function returns.\n */\nconst CONNECTOR_PRESETS = {\n\tstraight: 'straightConnector1',\n\telbow: 'bentConnector',\n\tcurved: 'curvedConnector',\n} as const satisfies Record<'straight' | 'elbow' | 'curved', string>\n\n/**\n * Resolve the concrete connector preset geometry name for a `type` + bend count.\n * `straight` ignores `bends` (it has no adjustable jog). For `elbow` / `curved`, the\n * preset suffix is `bends + 2`, so `bends` of 1/2/3 maps to `…Connector3/4/5`, each\n * of which exposes exactly `bends` adjustable guides (`adj1…adjN`).\n * @param {'straight' | 'elbow' | 'curved'} type - friendly connector routing style\n * @param {number} bends - number of adjustable bends (1–3); ignored for `straight`\n * @return {CONNECTOR_PRESET_NAME} OOXML preset geometry name (e.g. `bentConnector4`)\n */\nexport function connectorPresetFor(type: 'straight' | 'elbow' | 'curved', bends: number): CONNECTOR_PRESET_NAME {\n\tif (type === 'straight') return CONNECTOR_PRESETS.straight\n\treturn `${CONNECTOR_PRESETS[type]}${bends + 2}` as CONNECTOR_PRESET_NAME\n}\nexport enum PlaceholderType {\n\ttitle = 'title',\n\tbody = 'body',\n\timage = 'pic',\n\tchart = 'chart',\n\ttable = 'tbl',\n\tmedia = 'media',\n}\n/**\n * Placeholder-type name. Derived from the `PlaceholderType` enum (above) so the two\n * never drift.\n */\nexport type PLACEHOLDER_TYPE = `${PlaceholderType}`\n\n/**\n * Bullet glyph presets. Only `DEFAULT` is currently wired through to output; the remaining entries are\n * reserved and not yet selectable via options.\n */\nexport enum BulletType {\n\tDEFAULT = '&#x2022;',\n\tCHECK = '&#x2713;',\n\tSTAR = '&#x2605;',\n\tTRIANGLE = '&#x25B6;',\n}\n\n/**\n * Built-in PowerPoint table style IDs.\n *\n * Each value is the GUID that goes into `<a:tableStyleId>` inside `<a:tblPr>`.\n * These 74 GUIDs are the complete set defined in [MS-OE376] §5.1.6.10 and are\n * resolved by PowerPoint without embedding any style definition in the file.\n *\n * Only these enum members are supported. Raw GUID strings are not accepted;\n * use `TableStyle` members exclusively.\n */\nexport enum TableStyle {\n\t// ── No style ────────────────────────────────────────────────────────────\n\tNO_STYLE_NO_GRID = '{2D5ABB26-0587-4C30-8999-92F81FD0307C}',\n\tNO_STYLE_TABLE_GRID = '{5940675A-B579-460E-94D1-54222C63F5DA}',\n\n\t// ── Themed Style 1 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_1_ACCENT_1 = '{3C2FFA5D-87B4-456A-9821-1D502468CF0F}',\n\tTHEMED_STYLE_1_ACCENT_2 = '{284E427A-3D55-4303-BF80-6455036E1DE7}',\n\tTHEMED_STYLE_1_ACCENT_3 = '{69C7853C-536D-4A76-A0AE-DD22124D55A5}',\n\tTHEMED_STYLE_1_ACCENT_4 = '{775DCB02-9BB8-47FD-8907-85C794F793BA}',\n\tTHEMED_STYLE_1_ACCENT_5 = '{35758FB7-9AC5-4552-8A53-C91805E547FA}',\n\tTHEMED_STYLE_1_ACCENT_6 = '{08FB837D-C827-4EFA-A057-4D05807E0F7C}',\n\n\t// ── Themed Style 2 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_2_ACCENT_1 = '{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}',\n\tTHEMED_STYLE_2_ACCENT_2 = '{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}',\n\tTHEMED_STYLE_2_ACCENT_3 = '{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}',\n\tTHEMED_STYLE_2_ACCENT_4 = '{E269D01E-BC32-4049-B463-5C60D7B0CCD2}',\n\tTHEMED_STYLE_2_ACCENT_5 = '{327F97BB-C833-4FB7-BDE5-3F7075034690}',\n\tTHEMED_STYLE_2_ACCENT_6 = '{638B1855-1B75-4FBE-930C-398BA8C253C6}',\n\n\t// ── Light Style 1 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_1 = '{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}',\n\tLIGHT_STYLE_1_ACCENT_1 = '{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}',\n\tLIGHT_STYLE_1_ACCENT_2 = '{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}',\n\tLIGHT_STYLE_1_ACCENT_3 = '{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}',\n\tLIGHT_STYLE_1_ACCENT_4 = '{D27102A9-8310-4765-A935-A1911B00CA55}',\n\tLIGHT_STYLE_1_ACCENT_5 = '{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}',\n\tLIGHT_STYLE_1_ACCENT_6 = '{68D230F3-CF80-4859-8CE7-A43EE81993B5}',\n\n\t// ── Light Style 2 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_2 = '{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}',\n\tLIGHT_STYLE_2_ACCENT_1 = '{69012ECD-51FC-41F1-AA8D-1B2483CD663E}',\n\tLIGHT_STYLE_2_ACCENT_2 = '{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}',\n\tLIGHT_STYLE_2_ACCENT_3 = '{F2DE63D5-997A-4646-A377-4702673A728D}',\n\tLIGHT_STYLE_2_ACCENT_4 = '{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}',\n\tLIGHT_STYLE_2_ACCENT_5 = '{5A111915-BE36-4E01-A7E5-04B1672EAD32}',\n\tLIGHT_STYLE_2_ACCENT_6 = '{912C8C85-51F0-491E-9774-3900AFEF0FD7}',\n\n\t// ── Light Style 3 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_3 = '{616DA210-FB5B-4158-B5E0-FEB733F419BA}',\n\tLIGHT_STYLE_3_ACCENT_1 = '{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}',\n\tLIGHT_STYLE_3_ACCENT_2 = '{5DA37D80-6434-44D0-A028-1B22A696006F}',\n\tLIGHT_STYLE_3_ACCENT_3 = '{8799B23B-EC83-4686-B30A-512413B5E67A}',\n\tLIGHT_STYLE_3_ACCENT_4 = '{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}',\n\tLIGHT_STYLE_3_ACCENT_5 = '{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}',\n\tLIGHT_STYLE_3_ACCENT_6 = '{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}',\n\n\t// ── Medium Style 1 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_1 = '{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}',\n\tMEDIUM_STYLE_1_ACCENT_1 = '{B301B821-A1FF-4177-AEE7-76D212191A09}',\n\tMEDIUM_STYLE_1_ACCENT_2 = '{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}',\n\tMEDIUM_STYLE_1_ACCENT_3 = '{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}',\n\tMEDIUM_STYLE_1_ACCENT_4 = '{1E171933-4619-4E11-9A3F-F7608DF75F80}',\n\tMEDIUM_STYLE_1_ACCENT_5 = '{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}',\n\tMEDIUM_STYLE_1_ACCENT_6 = '{10A1B5D5-9B99-4C35-A422-299274C87663}',\n\n\t// ── Medium Style 2 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_2 = '{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}',\n\tMEDIUM_STYLE_2_ACCENT_1 = '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}',\n\tMEDIUM_STYLE_2_ACCENT_2 = '{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}',\n\tMEDIUM_STYLE_2_ACCENT_3 = '{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}',\n\tMEDIUM_STYLE_2_ACCENT_4 = '{00A15C55-8517-42AA-B614-E9B94910E393}',\n\tMEDIUM_STYLE_2_ACCENT_5 = '{7DF18680-E054-41AD-8BC1-D1AEF772440D}',\n\tMEDIUM_STYLE_2_ACCENT_6 = '{93296810-A885-4BE3-A3E7-6D5BEEA58F35}',\n\n\t// ── Medium Style 3 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_3 = '{8EC20E35-A176-4012-BC5E-935CFFF8708E}',\n\tMEDIUM_STYLE_3_ACCENT_1 = '{6E25E649-3F16-4E02-A733-19D2CDBF48F0}',\n\tMEDIUM_STYLE_3_ACCENT_2 = '{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}',\n\tMEDIUM_STYLE_3_ACCENT_3 = '{EB344D84-9AFB-497E-A393-DC336BA19D2E}',\n\tMEDIUM_STYLE_3_ACCENT_4 = '{EB9631B5-78F2-41C9-869B-9F39066F8104}',\n\tMEDIUM_STYLE_3_ACCENT_5 = '{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}',\n\tMEDIUM_STYLE_3_ACCENT_6 = '{2A488322-F2BA-4B5B-9748-0D474271808F}',\n\n\t// ── Medium Style 4 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_4 = '{D7AC3CCA-C797-4891-BE02-D94E43425B78}',\n\tMEDIUM_STYLE_4_ACCENT_1 = '{69CF1AB2-1976-4502-BF36-3FF5EA218861}',\n\tMEDIUM_STYLE_4_ACCENT_2 = '{8A107856-5554-42FB-B03E-39F5DBC370BA}',\n\tMEDIUM_STYLE_4_ACCENT_3 = '{0505E3EF-67EA-436B-97B2-0124C06EBD24}',\n\tMEDIUM_STYLE_4_ACCENT_4 = '{C4B1156A-380E-4F78-BDF5-A606A8083BF9}',\n\tMEDIUM_STYLE_4_ACCENT_5 = '{22838BEF-8BB2-4498-84A7-C5851F593DF1}',\n\tMEDIUM_STYLE_4_ACCENT_6 = '{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}',\n\n\t// ── Dark Style 1 ────────────────────────────────────────────────────────\n\tDARK_STYLE_1 = '{E8034E78-7F5D-4C2E-B375-FC64B27BC917}',\n\tDARK_STYLE_1_ACCENT_1 = '{125E5076-3810-47DD-B79F-674D7AD40C01}',\n\tDARK_STYLE_1_ACCENT_2 = '{37CE84F3-28C3-443E-9E96-99CF82512B78}',\n\tDARK_STYLE_1_ACCENT_3 = '{D03447BB-5D67-496B-8E87-E561075AD55C}',\n\tDARK_STYLE_1_ACCENT_4 = '{E929F9F4-4A8F-4326-A1B4-22849713DDAB}',\n\tDARK_STYLE_1_ACCENT_5 = '{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}',\n\tDARK_STYLE_1_ACCENT_6 = '{AF606853-7671-496A-8E4F-DF71F8EC918B}',\n\n\t// ── Dark Style 2 ────────────────────────────────────────────────────────\n\tDARK_STYLE_2 = '{5202B0CA-FC54-4496-8BCA-5EF66A818D29}',\n\t/** Header uses Accent 2, body rows use Accent 1 */\n\tDARK_STYLE_2_ACCENT_1_ACCENT_2 = '{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}',\n\t/** Header uses Accent 4, body rows use Accent 3 */\n\tDARK_STYLE_2_ACCENT_3_ACCENT_4 = '{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}',\n\t/** Header uses Accent 6, body rows use Accent 5 */\n\tDARK_STYLE_2_ACCENT_5_ACCENT_6 = '{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}',\n}\n","/**\n * A table cell's default text insets in EMU: the schema defaults of `a:tcPr/@marL`, `@marR`\n * (91440, 0.1in) and `@marT`, `@marB` (45720, 0.05in) on `CT_TableCellProperties`.\n *\n * Unlike the body insets in `body-insets.ts` these are real XSD defaults, so they are transcribed\n * from the schema rather than derived. A cell that states one side leaves the other three at these\n * values, not at zero.\n *\n * A module of its own, importing nothing, because `constants-internal.ts` derives the write path's\n * inch defaults from it and is reached by every entry. Taken from `body-insets.ts`, the record\n * brought that module's other exports into the read entry with it.\n */\nexport const TABLE_CELL_MARGIN_DEFAULTS_EMU = { left: 91440, right: 91440, top: 45720, bottom: 45720 } as const\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { t as genTableToSlides } from "./html-dom-Iuog2wdK.js";
1
+ import { t as genTableToSlides } from "./html-dom-DvJmuHt2.js";
2
2
  //#region src/families/table-dom.ts
3
3
  /**
4
- * ts-pptx: the table family's live-DOM half
4
+ * pptx-ts: the table family's live-DOM half
5
5
  *
6
6
  * `tableToSlides` reproduces a rendered HTML `<table>` as a PowerPoint table, resolving the element
7
7
  * id against the global `document`. It is the table family's, but it is composed separately because
@@ -18,4 +18,4 @@ const tableDomFamily = {
18
18
  //#endregion
19
19
  export { tableDomFamily as t };
20
20
 
21
- //# sourceMappingURL=table-dom-BTDP3lEP.js.map
21
+ //# sourceMappingURL=table-dom-CVbvUfgh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-dom-BTDP3lEP.js","names":[],"sources":["../src/families/table-dom.ts"],"sourcesContent":["/**\n * ts-pptx: the table family's live-DOM half\n *\n * `tableToSlides` reproduces a rendered HTML `<table>` as a PowerPoint table, resolving the element\n * id against the global `document`. It is the table family's, but it is composed separately because\n * it is the browser entry's alone: wiring it into `families/table.ts` would put `gen/table/html-dom.ts`\n * in the graph of every Node program that draws a table, and wiring it into the entry directly would\n * make it the one thing a browser tier could not drop.\n */\n\nimport { genTableToSlides } from '../gen/table/html-dom.js'\nimport type { ConstructFamily } from './shared.js'\n\nexport const tableDomFamily = {\n\tname: 'table',\n\tpresentationAuthors: {\n\t\ttableToSlides(ctx, eleId, options) {\n\t\t\t// @note `options.verbose` (a documented dev-only flag on TableToSlidesProps) is read\n\t\t\t// inside genTableToSlides to trace the auto-paging layout process.\n\t\t\tgenTableToSlides(ctx.pres, eleId, options)\n\t\t},\n\t},\n} satisfies ConstructFamily\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,iBAAiB;CAC7B,MAAM;CACN,qBAAqB,EACpB,cAAc,KAAK,OAAO,SAAS;EAGlC,iBAAiB,IAAI,MAAM,OAAO,OAAO;CAC1C,EACD;AACD"}
1
+ {"version":3,"file":"table-dom-CVbvUfgh.js","names":[],"sources":["../src/families/table-dom.ts"],"sourcesContent":["/**\n * pptx-ts: the table family's live-DOM half\n *\n * `tableToSlides` reproduces a rendered HTML `<table>` as a PowerPoint table, resolving the element\n * id against the global `document`. It is the table family's, but it is composed separately because\n * it is the browser entry's alone: wiring it into `families/table.ts` would put `gen/table/html-dom.ts`\n * in the graph of every Node program that draws a table, and wiring it into the entry directly would\n * make it the one thing a browser tier could not drop.\n */\n\nimport { genTableToSlides } from '../gen/table/html-dom.js'\nimport type { ConstructFamily } from './shared.js'\n\nexport const tableDomFamily = {\n\tname: 'table',\n\tpresentationAuthors: {\n\t\ttableToSlides(ctx, eleId, options) {\n\t\t\t// @note `options.verbose` (a documented dev-only flag on TableToSlidesProps) is read\n\t\t\t// inside genTableToSlides to trace the auto-paging layout process.\n\t\t\tgenTableToSlides(ctx.pres, eleId, options)\n\t\t},\n\t},\n} satisfies ConstructFamily\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,iBAAiB;CAC7B,MAAM;CACN,qBAAqB,EACpB,cAAc,KAAK,OAAO,SAAS;EAGlC,iBAAiB,IAAI,MAAM,OAAO,OAAO;CAC1C,EACD;AACD"}