pptx-react-viewer 3.5.1 → 3.5.3

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 (140) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{AiChatPanel-6RN4FZ5Y.mjs → AiChatPanel-L2HGGEND.mjs} +3 -3
  3. package/dist/AiChatPanel-L2HGGEND.mjs.br +0 -0
  4. package/dist/AiChatPanel-L2HGGEND.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-D5DDUEIW.js → AiChatPanel-ZEM3ZVA6.js} +24 -24
  6. package/dist/AiChatPanel-ZEM3ZVA6.js.br +0 -0
  7. package/dist/AiChatPanel-ZEM3ZVA6.js.gz +0 -0
  8. package/dist/{Area3DChartScene-PWBCCYGS.mjs → Area3DChartScene-EYNCHRB3.mjs} +1 -1
  9. package/dist/Area3DChartScene-EYNCHRB3.mjs.br +2 -0
  10. package/dist/Area3DChartScene-EYNCHRB3.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-UH6DXEDV.js → Area3DChartScene-I7LMTNK5.js} +2 -2
  12. package/dist/Area3DChartScene-I7LMTNK5.js.br +0 -0
  13. package/dist/Area3DChartScene-I7LMTNK5.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-6GDMTIFI.mjs → Bar3DChartScene-6HQ6QWNB.mjs} +1 -1
  15. package/dist/Bar3DChartScene-6HQ6QWNB.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-6HQ6QWNB.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-HN54LAH5.js → Bar3DChartScene-VPKQDPIO.js} +2 -2
  18. package/dist/Bar3DChartScene-VPKQDPIO.js.br +0 -0
  19. package/dist/Bar3DChartScene-VPKQDPIO.js.gz +0 -0
  20. package/dist/{Line3DChartScene-5WIHGKH4.mjs → Line3DChartScene-QYBKXNOD.mjs} +1 -1
  21. package/dist/Line3DChartScene-QYBKXNOD.mjs.br +2 -0
  22. package/dist/Line3DChartScene-QYBKXNOD.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-WSDPBF5W.js → Line3DChartScene-VV362RMX.js} +2 -2
  24. package/dist/Line3DChartScene-VV362RMX.js.br +0 -0
  25. package/dist/Line3DChartScene-VV362RMX.js.gz +0 -0
  26. package/dist/{Model3DScene-GUYP4VJP.js → Model3DScene-XA57KXA5.js} +2 -2
  27. package/dist/{Model3DScene-GUYP4VJP.js.br → Model3DScene-XA57KXA5.js.br} +0 -0
  28. package/dist/Model3DScene-XA57KXA5.js.gz +0 -0
  29. package/dist/{Model3DScene-7ZUKNMXA.mjs → Model3DScene-YTLWTG52.mjs} +1 -1
  30. package/dist/Model3DScene-YTLWTG52.mjs.br +0 -0
  31. package/dist/Model3DScene-YTLWTG52.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-W7QK76IY.js → PieChart3DScene-IFZMTN5H.js} +2 -2
  33. package/dist/{PieChart3DScene-W7QK76IY.js.br → PieChart3DScene-IFZMTN5H.js.br} +0 -0
  34. package/dist/PieChart3DScene-IFZMTN5H.js.gz +0 -0
  35. package/dist/{PieChart3DScene-FBYOJF2T.mjs → PieChart3DScene-INBL4F5Z.mjs} +1 -1
  36. package/dist/PieChart3DScene-INBL4F5Z.mjs.br +0 -0
  37. package/dist/PieChart3DScene-INBL4F5Z.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-QIXANTOO.mjs → SurfaceChart3DScene-EV6DBPJS.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-EV6DBPJS.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-EV6DBPJS.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-6SRHNAYR.js → SurfaceChart3DScene-FRSZVIVB.js} +2 -2
  42. package/dist/{SurfaceChart3DScene-6SRHNAYR.js.br → SurfaceChart3DScene-FRSZVIVB.js.br} +0 -0
  43. package/dist/SurfaceChart3DScene-FRSZVIVB.js.gz +0 -0
  44. package/dist/{chunk-3MJLEKOD.mjs → chunk-3WM5TUY7.mjs} +2 -2
  45. package/dist/chunk-3WM5TUY7.mjs.br +0 -0
  46. package/dist/chunk-3WM5TUY7.mjs.gz +0 -0
  47. package/dist/{chunk-2TKEP3LD.mjs → chunk-7AL6KAFX.mjs} +40 -27
  48. package/dist/chunk-7AL6KAFX.mjs.br +0 -0
  49. package/dist/chunk-7AL6KAFX.mjs.gz +0 -0
  50. package/dist/{chunk-ZGSPOPVM.js → chunk-BBSFZLYI.js} +5 -5
  51. package/dist/chunk-BBSFZLYI.js.br +0 -0
  52. package/dist/chunk-BBSFZLYI.js.gz +0 -0
  53. package/dist/{chunk-MLDG7WX6.js → chunk-HHDPQJF3.js} +146 -123
  54. package/dist/chunk-HHDPQJF3.js.br +0 -0
  55. package/dist/chunk-HHDPQJF3.js.gz +0 -0
  56. package/dist/{chunk-DGFYYQAK.mjs → chunk-KOLCCOTS.mjs} +1 -1
  57. package/dist/chunk-KOLCCOTS.mjs.br +0 -0
  58. package/dist/chunk-KOLCCOTS.mjs.gz +0 -0
  59. package/dist/{chunk-QCFRIC6B.mjs → chunk-MSRRBA7G.mjs} +1 -1
  60. package/dist/chunk-MSRRBA7G.mjs.br +0 -0
  61. package/dist/chunk-MSRRBA7G.mjs.gz +0 -0
  62. package/dist/{chunk-WPOZ2SAD.js → chunk-PPL3WBC7.js} +1197 -1184
  63. package/dist/chunk-PPL3WBC7.js.br +0 -0
  64. package/dist/chunk-PPL3WBC7.js.gz +0 -0
  65. package/dist/{chunk-BRUBTLWG.js → chunk-QA573RUB.js} +160 -160
  66. package/dist/chunk-QA573RUB.js.br +0 -0
  67. package/dist/chunk-QA573RUB.js.gz +0 -0
  68. package/dist/{chunk-P7SNHVMV.mjs → chunk-QPHGHUUJ.mjs} +145 -124
  69. package/dist/chunk-QPHGHUUJ.mjs.br +0 -0
  70. package/dist/chunk-QPHGHUUJ.mjs.gz +0 -0
  71. package/dist/{chunk-NZY4GXCF.js → chunk-SIM2LXO2.js} +430 -430
  72. package/dist/chunk-SIM2LXO2.js.br +0 -0
  73. package/dist/chunk-SIM2LXO2.js.gz +0 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +45 -45
  76. package/dist/index.js.br +0 -0
  77. package/dist/index.js.gz +0 -0
  78. package/dist/index.mjs +5 -5
  79. package/dist/index.mjs.br +0 -0
  80. package/dist/index.mjs.gz +0 -0
  81. package/dist/internals.d.ts +1 -0
  82. package/dist/internals.js +78 -78
  83. package/dist/internals.js.br +0 -0
  84. package/dist/internals.js.gz +0 -0
  85. package/dist/internals.mjs +3 -3
  86. package/dist/internals.mjs.br +0 -0
  87. package/dist/internals.mjs.gz +0 -0
  88. package/dist/viewer/index.d.ts +1 -0
  89. package/dist/viewer/index.js +26 -26
  90. package/dist/viewer/index.js.br +0 -0
  91. package/dist/viewer/index.js.gz +0 -0
  92. package/dist/viewer/index.mjs +5 -5
  93. package/dist/viewer/index.mjs.br +0 -0
  94. package/dist/viewer/index.mjs.gz +0 -0
  95. package/package.json +1 -1
  96. package/dist/AiChatPanel-6RN4FZ5Y.mjs.br +0 -0
  97. package/dist/AiChatPanel-6RN4FZ5Y.mjs.gz +0 -0
  98. package/dist/AiChatPanel-D5DDUEIW.js.br +0 -0
  99. package/dist/AiChatPanel-D5DDUEIW.js.gz +0 -0
  100. package/dist/Area3DChartScene-PWBCCYGS.mjs.br +0 -1
  101. package/dist/Area3DChartScene-PWBCCYGS.mjs.gz +0 -0
  102. package/dist/Area3DChartScene-UH6DXEDV.js.br +0 -0
  103. package/dist/Area3DChartScene-UH6DXEDV.js.gz +0 -0
  104. package/dist/Bar3DChartScene-6GDMTIFI.mjs.br +0 -0
  105. package/dist/Bar3DChartScene-6GDMTIFI.mjs.gz +0 -0
  106. package/dist/Bar3DChartScene-HN54LAH5.js.br +0 -0
  107. package/dist/Bar3DChartScene-HN54LAH5.js.gz +0 -0
  108. package/dist/Line3DChartScene-5WIHGKH4.mjs.br +0 -1
  109. package/dist/Line3DChartScene-5WIHGKH4.mjs.gz +0 -0
  110. package/dist/Line3DChartScene-WSDPBF5W.js.br +0 -0
  111. package/dist/Line3DChartScene-WSDPBF5W.js.gz +0 -0
  112. package/dist/Model3DScene-7ZUKNMXA.mjs.br +0 -0
  113. package/dist/Model3DScene-7ZUKNMXA.mjs.gz +0 -0
  114. package/dist/Model3DScene-GUYP4VJP.js.gz +0 -0
  115. package/dist/PieChart3DScene-FBYOJF2T.mjs.br +0 -0
  116. package/dist/PieChart3DScene-FBYOJF2T.mjs.gz +0 -0
  117. package/dist/PieChart3DScene-W7QK76IY.js.gz +0 -0
  118. package/dist/SurfaceChart3DScene-6SRHNAYR.js.gz +0 -0
  119. package/dist/SurfaceChart3DScene-QIXANTOO.mjs.br +0 -0
  120. package/dist/SurfaceChart3DScene-QIXANTOO.mjs.gz +0 -0
  121. package/dist/chunk-2TKEP3LD.mjs.br +0 -0
  122. package/dist/chunk-2TKEP3LD.mjs.gz +0 -0
  123. package/dist/chunk-3MJLEKOD.mjs.br +0 -0
  124. package/dist/chunk-3MJLEKOD.mjs.gz +0 -0
  125. package/dist/chunk-BRUBTLWG.js.br +0 -0
  126. package/dist/chunk-BRUBTLWG.js.gz +0 -0
  127. package/dist/chunk-DGFYYQAK.mjs.br +0 -0
  128. package/dist/chunk-DGFYYQAK.mjs.gz +0 -0
  129. package/dist/chunk-MLDG7WX6.js.br +0 -0
  130. package/dist/chunk-MLDG7WX6.js.gz +0 -0
  131. package/dist/chunk-NZY4GXCF.js.br +0 -0
  132. package/dist/chunk-NZY4GXCF.js.gz +0 -0
  133. package/dist/chunk-P7SNHVMV.mjs.br +0 -0
  134. package/dist/chunk-P7SNHVMV.mjs.gz +0 -0
  135. package/dist/chunk-QCFRIC6B.mjs.br +0 -0
  136. package/dist/chunk-QCFRIC6B.mjs.gz +0 -0
  137. package/dist/chunk-WPOZ2SAD.js.br +0 -0
  138. package/dist/chunk-WPOZ2SAD.js.gz +0 -0
  139. package/dist/chunk-ZGSPOPVM.js.br +0 -0
  140. package/dist/chunk-ZGSPOPVM.js.gz +0 -0
@@ -40281,7 +40281,7 @@ function applyRunProperties(run, runProperties2, context) {
40281
40281
  }
40282
40282
  const size = parseInt(String(runProperties2["@_sz"] ?? ""), 10);
40283
40283
  if (Number.isFinite(size) && size > 0) {
40284
- run.fontSize = Math.round(size / 100);
40284
+ run.fontSize = size / 100;
40285
40285
  }
40286
40286
  if (runProperties2["a:solidFill"]) {
40287
40287
  const color2 = context.parseColor(runProperties2["a:solidFill"]);
@@ -40395,7 +40395,7 @@ function applyRunProperties2(runProperties2, style, context) {
40395
40395
  hasStyle = true;
40396
40396
  }
40397
40397
  if (runProperties2["@_sz"]) {
40398
- style.fontSize = Math.round(parseInt(String(runProperties2["@_sz"]), 10) / 100);
40398
+ style.fontSize = parseInt(String(runProperties2["@_sz"]), 10) / 100;
40399
40399
  hasStyle = true;
40400
40400
  }
40401
40401
  if (runProperties2["a:solidFill"]) {
@@ -59233,7 +59233,7 @@ function renderTable(el, defaults) {
59233
59233
  const bgColor = cell.style?.backgroundColor ?? "none";
59234
59234
  const borderColor = cell.style?.borderColor ?? "#CCCCCC";
59235
59235
  const textColor = cell.style?.color ?? "#000000";
59236
- const fontSize = cell.style?.fontSize ?? defaults.defaultFontSize;
59236
+ const fontSize = cell.style?.fontSize !== void 0 ? cell.style.fontSize * (96 / 72) : defaults.defaultFontSize;
59237
59237
  const bold = cell.style?.bold;
59238
59238
  parts.push(
59239
59239
  `<rect${attrs2({
@@ -65629,7 +65629,7 @@ function writeCellTextFormatting(xmlCell, style, ensureArray18) {
65629
65629
  rPr["@_u"] = style.underline ? "sng" : "none";
65630
65630
  }
65631
65631
  if (style.fontSize !== void 0) {
65632
- rPr["@_sz"] = String(style.fontSize * 100);
65632
+ rPr["@_sz"] = String(Math.round(style.fontSize * 100));
65633
65633
  }
65634
65634
  if (style.color) {
65635
65635
  rPr["a:solidFill"] = {
@@ -99521,7 +99521,7 @@ ${htmlRows.join("\n")}
99521
99521
  rules.push(`vertical-align:${style.vAlign}`);
99522
99522
  }
99523
99523
  if (style?.fontSize) {
99524
- rules.push(`font-size:${Math.round(style.fontSize)}px`);
99524
+ rules.push(`font-size:${style.fontSize}pt`);
99525
99525
  }
99526
99526
  const safeColor = cssColorSafe(style?.color);
99527
99527
  if (safeColor) {
@@ -121734,7 +121734,7 @@ function cellStyleToCss(style) {
121734
121734
  css.fontFamily = style.fontFamily;
121735
121735
  }
121736
121736
  if (style.fontSize) {
121737
- css.fontSize = `${style.fontSize}px`;
121737
+ css.fontSize = `${style.fontSize}pt`;
121738
121738
  }
121739
121739
  if (style.bold) {
121740
121740
  css.fontWeight = "bold";
@@ -133154,75 +133154,81 @@ function buildThemeColorGrid(colorScheme, translate) {
133154
133154
  function themeColorLabel(key2, translate) {
133155
133155
  return translate ? schemaLabel(THEME_COLOR_SLOT_LABEL_KEYS, key2, translate) : THEME_COLOR_LABELS[key2];
133156
133156
  }
133157
- var pendingRestore = null;
133158
- function setPendingSelectionRestore(sel) {
133159
- pendingRestore = sel;
133160
- }
133161
- function getPendingSelectionRestore() {
133162
- const sel = pendingRestore;
133163
- pendingRestore = null;
133164
- return sel;
133165
- }
133166
133157
  function getInlineEditorSelection(segments) {
133167
- if (!segments || segments.length === 0) {
133158
+ if (!segments?.length) {
133168
133159
  return null;
133169
133160
  }
133170
- const sel = window.getSelection();
133171
- if (!sel || sel.rangeCount === 0 || sel.isCollapsed) {
133161
+ const selection = window.getSelection();
133162
+ if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
133172
133163
  return null;
133173
133164
  }
133174
- const { anchorNode, anchorOffset, focusNode, focusOffset } = sel;
133175
- if (!anchorNode || !focusNode) {
133165
+ const range = selection.getRangeAt(0);
133166
+ const editor = findEditorContainer(range.startContainer);
133167
+ if (!editor || !editor.contains(range.endContainer) || range.toString().length === 0) {
133176
133168
  return null;
133177
133169
  }
133178
- const editor = findEditorContainer(anchorNode);
133179
- if (!editor || !editor.contains(focusNode)) {
133170
+ const start = getSegmentPosition(editor, range.startContainer, range.startOffset, segments);
133171
+ const end = getSegmentPosition(editor, range.endContainer, range.endOffset, segments);
133172
+ if (!start || !end) {
133180
133173
  return null;
133181
133174
  }
133182
- const anchorInfo = getSegmentPosition(editor, anchorNode, anchorOffset, segments);
133183
- const focusInfo = getSegmentPosition(editor, focusNode, focusOffset, segments);
133184
- if (!anchorInfo || !focusInfo) {
133175
+ const renderedSpans = Array.from(editor.querySelectorAll("[data-seg-idx]"));
133176
+ const startSpanIndex = renderedSpans.indexOf(start.span);
133177
+ const endSpanIndex = renderedSpans.indexOf(end.span);
133178
+ if (startSpanIndex < 0 || endSpanIndex < startSpanIndex) {
133179
+ return null;
133180
+ }
133181
+ const selectedSpans = renderedSpans.slice(startSpanIndex, endSpanIndex + 1);
133182
+ const first = selectedSpans.find(
133183
+ (span) => isEditableSpan(span, segments) && (span !== start.span || start.offset < start.textLength)
133184
+ );
133185
+ const last = [...selectedSpans].reverse().find((span) => isEditableSpan(span, segments) && (span !== end.span || end.offset > 0));
133186
+ if (!first || !last) {
133185
133187
  return null;
133186
133188
  }
133187
- const [start, end] = anchorInfo.absOffset <= focusInfo.absOffset ? [anchorInfo, focusInfo] : [focusInfo, anchorInfo];
133188
133189
  return {
133189
- startSegIdx: start.segIdx,
133190
- startOffset: start.offsetInSeg,
133191
- endSegIdx: end.segIdx,
133192
- endOffset: end.offsetInSeg
133190
+ startSegIdx: getSegmentIndex(first),
133191
+ startOffset: first === start.span ? start.offset : 0,
133192
+ endSegIdx: getSegmentIndex(last),
133193
+ endOffset: last === end.span ? end.offset : last.textContent?.length ?? 0
133193
133194
  };
133194
133195
  }
133196
+ function isEditableSpan(span, segments) {
133197
+ const segment = segments[getSegmentIndex(span)];
133198
+ return Boolean(
133199
+ segment && !segment.isParagraphBreak && segment.text !== "\n" && !isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
133200
+ );
133201
+ }
133202
+ function getSegmentIndex(span) {
133203
+ return Number(span.getAttribute("data-seg-idx"));
133204
+ }
133195
133205
  function findEditorContainer(node) {
133196
- const el = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
133197
- return el?.closest("[data-inline-editor]") ?? null;
133206
+ const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
133207
+ return element?.closest("[data-inline-editor]") ?? null;
133198
133208
  }
133199
133209
  function getSegmentPosition(editor, node, offset, segments) {
133200
- const el = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
133201
- if (!el) {
133202
- return null;
133203
- }
133204
- const segSpan = el.closest("[data-seg-idx]");
133205
- if (!segSpan || !editor.contains(segSpan)) {
133210
+ const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
133211
+ const span = element?.closest("[data-seg-idx]");
133212
+ if (!span || !editor.contains(span)) {
133206
133213
  return null;
133207
133214
  }
133208
- const segIdx = parseInt(segSpan.getAttribute("data-seg-idx"), 10);
133209
- if (isNaN(segIdx) || segIdx < 0 || segIdx >= segments.length) {
133215
+ const segIdx = getSegmentIndex(span);
133216
+ if (!Number.isInteger(segIdx) || segIdx < 0 || segIdx >= segments.length) {
133210
133217
  return null;
133211
133218
  }
133212
- const offsetInSeg = getTextOffsetWithin(segSpan, node, offset);
133213
- let absOffset = 0;
133214
- for (let i = 0; i < segIdx; i++) {
133215
- absOffset += segments[i].text.length;
133216
- }
133217
- absOffset += offsetInSeg;
133218
- return { segIdx, offsetInSeg, absOffset };
133219
+ return {
133220
+ segIdx,
133221
+ offset: getTextOffsetWithin(span, node, offset),
133222
+ span,
133223
+ textLength: span.textContent?.length ?? 0
133224
+ };
133219
133225
  }
133220
133226
  function getTextOffsetWithin(container, targetNode, targetOffset) {
133221
133227
  if (targetNode === container || targetNode.nodeType === Node.ELEMENT_NODE) {
133222
133228
  const parent = targetNode === container ? container : targetNode;
133223
133229
  let count = 0;
133224
- for (let i = 0; i < targetOffset && i < parent.childNodes.length; i++) {
133225
- count += (parent.childNodes[i].textContent || "").length;
133230
+ for (let index = 0; index < targetOffset && index < parent.childNodes.length; index++) {
133231
+ count += parent.childNodes[index].textContent?.length ?? 0;
133226
133232
  }
133227
133233
  return count;
133228
133234
  }
@@ -133237,6 +133243,15 @@ function getTextOffsetWithin(container, targetNode, targetOffset) {
133237
133243
  }
133238
133244
  return charCount;
133239
133245
  }
133246
+ var pendingRestore = null;
133247
+ function setPendingSelectionRestore(sel) {
133248
+ pendingRestore = sel;
133249
+ }
133250
+ function getPendingSelectionRestore() {
133251
+ const sel = pendingRestore;
133252
+ pendingRestore = null;
133253
+ return sel;
133254
+ }
133240
133255
  function applyStyleToSelectedSegments(segments, selection, updates) {
133241
133256
  const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
133242
133257
  const result = [];
@@ -141652,6 +141667,86 @@ function projectDrawingShapes(elementId, shapes, viewBox, palette, style) {
141652
141667
  function styleShadowFilter(style) {
141653
141668
  return styleShadow(style);
141654
141669
  }
141670
+ function textFontSizePxToPt(fontSizePx2) {
141671
+ return Math.round(fontSizePx2 * (72 / 96) * 100) / 100;
141672
+ }
141673
+ function textFontSizePtToPx(fontSizePt) {
141674
+ return fontSizePt * (96 / 72);
141675
+ }
141676
+ var COMMON_FONT_FAMILIES = [
141677
+ "Abadi",
141678
+ "Aptos",
141679
+ "Aptos Display",
141680
+ "Arial",
141681
+ "Arial Black",
141682
+ "Arial Narrow",
141683
+ "Bahnschrift",
141684
+ "Book Antiqua",
141685
+ "Bookman Old Style",
141686
+ "Calibri",
141687
+ "Calibri Light",
141688
+ "Cambria",
141689
+ "Candara",
141690
+ "Century Gothic",
141691
+ "Comic Sans MS",
141692
+ "Consolas",
141693
+ "Corbel",
141694
+ "Courier New",
141695
+ "Franklin Gothic Book",
141696
+ "Franklin Gothic Medium",
141697
+ "Garamond",
141698
+ "Georgia",
141699
+ "Gill Sans MT",
141700
+ "Helvetica",
141701
+ "Impact",
141702
+ "Inter",
141703
+ "Lucida Console",
141704
+ "Lucida Sans Unicode",
141705
+ "Microsoft Sans Serif",
141706
+ "Montserrat",
141707
+ "Noto Sans",
141708
+ "Open Sans",
141709
+ "Palatino Linotype",
141710
+ "Poppins",
141711
+ "Roboto",
141712
+ "Rockwell",
141713
+ "Segoe UI",
141714
+ "Source Sans Pro",
141715
+ "Tahoma",
141716
+ "Times New Roman",
141717
+ "Trebuchet MS",
141718
+ "Tw Cen MT",
141719
+ "Verdana"
141720
+ ];
141721
+ var COMMON_FONT_SIZES = [
141722
+ 8,
141723
+ 9,
141724
+ 10,
141725
+ 11,
141726
+ 12,
141727
+ 14,
141728
+ 16,
141729
+ 18,
141730
+ 20,
141731
+ 24,
141732
+ 28,
141733
+ 32,
141734
+ 36,
141735
+ 40,
141736
+ 44,
141737
+ 48,
141738
+ 54,
141739
+ 60,
141740
+ 72,
141741
+ 96
141742
+ ];
141743
+ var CHARACTER_SPACING_OPTIONS = [
141744
+ { label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
141745
+ { label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
141746
+ { label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
141747
+ { label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
141748
+ { label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
141749
+ ];
141655
141750
  var FONT_NAME_UNSAFE_CHARS = /["\\\n\r;}<>]/u;
141656
141751
  var FONT_FORMAT_ALLOWED = /* @__PURE__ */ new Set(["truetype", "opentype", "woff", "woff2"]);
141657
141752
  var FONT_DATA_URL_PATTERN = /^data:font\/[a-z0-9+.-]+(?:;charset=[a-z0-9-]+)?;base64,[a-z0-9+/=]+$/iu;
@@ -149465,80 +149560,6 @@ var SHAPE_PRESET_DEFS = [
149465
149560
  glyphClass: ""
149466
149561
  }
149467
149562
  ];
149468
- var COMMON_FONT_FAMILIES = [
149469
- "Abadi",
149470
- "Aptos",
149471
- "Aptos Display",
149472
- "Arial",
149473
- "Arial Black",
149474
- "Arial Narrow",
149475
- "Bahnschrift",
149476
- "Book Antiqua",
149477
- "Bookman Old Style",
149478
- "Calibri",
149479
- "Calibri Light",
149480
- "Cambria",
149481
- "Candara",
149482
- "Century Gothic",
149483
- "Comic Sans MS",
149484
- "Consolas",
149485
- "Corbel",
149486
- "Courier New",
149487
- "Franklin Gothic Book",
149488
- "Franklin Gothic Medium",
149489
- "Garamond",
149490
- "Georgia",
149491
- "Gill Sans MT",
149492
- "Helvetica",
149493
- "Impact",
149494
- "Inter",
149495
- "Lucida Console",
149496
- "Lucida Sans Unicode",
149497
- "Microsoft Sans Serif",
149498
- "Montserrat",
149499
- "Noto Sans",
149500
- "Open Sans",
149501
- "Palatino Linotype",
149502
- "Poppins",
149503
- "Roboto",
149504
- "Rockwell",
149505
- "Segoe UI",
149506
- "Source Sans Pro",
149507
- "Tahoma",
149508
- "Times New Roman",
149509
- "Trebuchet MS",
149510
- "Tw Cen MT",
149511
- "Verdana"
149512
- ];
149513
- var COMMON_FONT_SIZES = [
149514
- 8,
149515
- 9,
149516
- 10,
149517
- 11,
149518
- 12,
149519
- 14,
149520
- 16,
149521
- 18,
149522
- 20,
149523
- 24,
149524
- 28,
149525
- 32,
149526
- 36,
149527
- 40,
149528
- 44,
149529
- 48,
149530
- 54,
149531
- 60,
149532
- 72,
149533
- 96
149534
- ];
149535
- var CHARACTER_SPACING_OPTIONS = [
149536
- { label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
149537
- { label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
149538
- { label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
149539
- { label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
149540
- { label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
149541
- ];
149542
149563
  var GROUP_LABEL_KEYS = {
149543
149564
  theme: "pptx.font.group.theme",
149544
149565
  embedded: "pptx.font.group.embedded",
@@ -155502,6 +155523,8 @@ exports.templateSchemeFromTheme = templateSchemeFromTheme;
155502
155523
  exports.text3dEmuToPt = text3dEmuToPt;
155503
155524
  exports.text3dPtToEmu = text3dPtToEmu;
155504
155525
  exports.textBuildSpanStyle = textBuildSpanStyle;
155526
+ exports.textFontSizePtToPx = textFontSizePtToPx;
155527
+ exports.textFontSizePxToPt = textFontSizePxToPt;
155505
155528
  exports.themeColorLabel = themeColorLabel;
155506
155529
  exports.themeColorSchemesEqual = themeColorSchemesEqual;
155507
155530
  exports.themeToCssVars = themeToCssVars;
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, registerCrossSlideAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitRunForMetrics, splitRunByScriptFont } from './chunk-P7SNHVMV.mjs';
1
+ import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, registerCrossSlideAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitRunForMetrics, splitRunByScriptFont } from './chunk-QPHGHUUJ.mjs';
2
2
  import { translationsEn } from './chunk-JCJ3EPG6.mjs';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter, hasTextProperties, hasShapeProperties } from './chunk-P7SNHVMV.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter, hasTextProperties, hasShapeProperties } from './chunk-QPHGHUUJ.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
Binary file
Binary file