pptx-react-viewer 4.42.0 → 4.43.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 (63) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/{AiChatPanel-IDP326YW.mjs → AiChatPanel-R5UTSMXU.mjs} +1 -1
  3. package/dist/AiChatPanel-R5UTSMXU.mjs.br +0 -0
  4. package/dist/AiChatPanel-R5UTSMXU.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-KEVVVR7C.js → AiChatPanel-VI2IQ7XU.js} +9 -9
  6. package/dist/AiChatPanel-VI2IQ7XU.js.br +0 -0
  7. package/dist/AiChatPanel-VI2IQ7XU.js.gz +0 -0
  8. package/dist/{chunk-MNT2CXDI.mjs → chunk-3LIHPZKS.mjs} +22 -22
  9. package/dist/chunk-3LIHPZKS.mjs.br +0 -0
  10. package/dist/chunk-3LIHPZKS.mjs.gz +0 -0
  11. package/dist/{chunk-36H3P2PB.js → chunk-CHPELGQD.js} +384 -383
  12. package/dist/chunk-CHPELGQD.js.br +0 -0
  13. package/dist/chunk-CHPELGQD.js.gz +0 -0
  14. package/dist/{chunk-3PKYNJJG.js → chunk-FKY33ZKL.js} +21 -21
  15. package/dist/chunk-FKY33ZKL.js.br +0 -0
  16. package/dist/chunk-FKY33ZKL.js.gz +0 -0
  17. package/dist/{chunk-QJ4X7Y7S.js → chunk-GLWV52C6.js} +248 -245
  18. package/dist/chunk-GLWV52C6.js.br +0 -0
  19. package/dist/chunk-GLWV52C6.js.gz +0 -0
  20. package/dist/{chunk-MPKUCUHD.mjs → chunk-ITV63NJ5.mjs} +5 -4
  21. package/dist/chunk-ITV63NJ5.mjs.br +0 -0
  22. package/dist/chunk-ITV63NJ5.mjs.gz +0 -0
  23. package/dist/{chunk-EQTNWM5Y.mjs → chunk-UACDKMXF.mjs} +4 -1
  24. package/dist/chunk-UACDKMXF.mjs.br +0 -0
  25. package/dist/chunk-UACDKMXF.mjs.gz +0 -0
  26. package/dist/index.js +24 -24
  27. package/dist/index.js.br +0 -0
  28. package/dist/index.js.gz +0 -0
  29. package/dist/index.mjs +3 -3
  30. package/dist/index.mjs.br +0 -0
  31. package/dist/index.mjs.gz +0 -0
  32. package/dist/internals.js +81 -81
  33. package/dist/internals.js.br +0 -0
  34. package/dist/internals.js.gz +0 -0
  35. package/dist/internals.mjs +2 -2
  36. package/dist/internals.mjs.br +0 -0
  37. package/dist/internals.mjs.gz +0 -0
  38. package/dist/pptx-viewer.css +1 -1
  39. package/dist/pptx-viewer.css.br +0 -0
  40. package/dist/pptx-viewer.css.gz +0 -0
  41. package/dist/viewer/index.js +19 -19
  42. package/dist/viewer/index.js.br +0 -0
  43. package/dist/viewer/index.js.gz +0 -0
  44. package/dist/viewer/index.mjs +3 -3
  45. package/dist/viewer/index.mjs.br +0 -0
  46. package/dist/viewer/index.mjs.gz +0 -0
  47. package/package.json +8 -8
  48. package/dist/AiChatPanel-IDP326YW.mjs.br +0 -0
  49. package/dist/AiChatPanel-IDP326YW.mjs.gz +0 -0
  50. package/dist/AiChatPanel-KEVVVR7C.js.br +0 -0
  51. package/dist/AiChatPanel-KEVVVR7C.js.gz +0 -0
  52. package/dist/chunk-36H3P2PB.js.br +0 -0
  53. package/dist/chunk-36H3P2PB.js.gz +0 -0
  54. package/dist/chunk-3PKYNJJG.js.br +0 -0
  55. package/dist/chunk-3PKYNJJG.js.gz +0 -0
  56. package/dist/chunk-EQTNWM5Y.mjs.br +0 -0
  57. package/dist/chunk-EQTNWM5Y.mjs.gz +0 -0
  58. package/dist/chunk-MNT2CXDI.mjs.br +0 -0
  59. package/dist/chunk-MNT2CXDI.mjs.gz +0 -0
  60. package/dist/chunk-MPKUCUHD.mjs.br +0 -0
  61. package/dist/chunk-MPKUCUHD.mjs.gz +0 -0
  62. package/dist/chunk-QJ4X7Y7S.js.br +0 -0
  63. package/dist/chunk-QJ4X7Y7S.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,54 @@ A release listed with no entries carried no Conventional Commit in this package'
7
7
  scope: scripts/release-plan.mjs releases whenever any published file changes, not only on
8
8
  conventional commits.
9
9
 
10
+ ## [4.43.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.43.0) - 2026-10-21
11
+
12
+ ### Features
13
+
14
+ - **xlsx:** Expand workbook inspection and cell reads ([#117](https://github.com/ChristopherVR/ooxml/issues/117)) ([481bcc2](https://github.com/ChristopherVR/ooxml/commit/481bcc265611822a628c121f00897ec6b3e95cd6))
15
+ - **pptx:** Add layout-inheriting text placeholders ([#113](https://github.com/ChristopherVR/ooxml/issues/113)) ([a9bb079](https://github.com/ChristopherVR/ooxml/commit/a9bb07957fcf9aa1a12406911726211b415c690a))
16
+
17
+ ### Bug Fixes
18
+
19
+ - **pptx:** Inherit shared office themes across native viewers ([8ae64f7](https://github.com/ChristopherVR/ooxml/commit/8ae64f7f72ea70c323fef9b6c712697c6c54aeb6))
20
+
21
+ ### Performance
22
+
23
+ - **xlsx:** Keep comments and cdata on the XML fast path ([#119](https://github.com/ChristopherVR/ooxml/issues/119)) ([ee7212a](https://github.com/ChristopherVR/ooxml/commit/ee7212afc204e15b5977d215f5cc61c99aaf4bc3))
24
+
25
+ ### Dependencies
26
+
27
+ - **deps:** Update emf-converter to 4.21.0 ([#106](https://github.com/ChristopherVR/ooxml/issues/106)) ([641ae31](https://github.com/ChristopherVR/ooxml/commit/641ae316b7de07ed6f3c5158e8b154c991e1b719))
28
+ - **deps:** Update dev tools and fix svelte type checks ([#107](https://github.com/ChristopherVR/ooxml/issues/107)) ([550eac2](https://github.com/ChristopherVR/ooxml/commit/550eac24d469d14245a0ac71789e01c8d5fb50f9))
29
+
30
+ ### Chores
31
+
32
+ - Integrate latest main before full verification ([3bec814](https://github.com/ChristopherVR/ooxml/commit/3bec814857ae675f31eba14fcec59a3db4e1cb77))
33
+
34
+ ## [4.42.1](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.42.1) - 2026-10-20
35
+
36
+ ### Bug Fixes
37
+
38
+ - **deps:** Adapt error codes and iframe tests to updated dependencies ([550070e](https://github.com/ChristopherVR/ooxml/commit/550070e59951c339a67c7e3d6920b9b7ac0c1004))
39
+ - **pptx:** Link authors when saving first-time comments ([6b6ea0d](https://github.com/ChristopherVR/ooxml/commit/6b6ea0d149f8073ddf10d44454795e54386e5ec3))
40
+ - **ui:** Render freeform arrows with shared endpoint sizing ([dff5678](https://github.com/ChristopherVR/ooxml/commit/dff567825cde43c4fa46c0bb90afef8eb9e12782))
41
+ - **pptx:** Preserve metrics during staged text builds ([388c1b2](https://github.com/ChristopherVR/ooxml/commit/388c1b25b621e5409dd55a483922d8f7928f023e))
42
+
43
+ ### Dependencies
44
+
45
+ - **deps:** Merge dependency update ([#92](https://github.com/ChristopherVR/ooxml/issues/92)) ([ce1b012](https://github.com/ChristopherVR/ooxml/commit/ce1b01215261b162443f903e1a2086ed4110ae28))
46
+ - **deps:** Bump the production-minor-and-patch group with 22 updates ([02d7713](https://github.com/ChristopherVR/ooxml/commit/02d7713ceb301921fd6c7706138d64f4c10a9d38))
47
+ - **deps:** Merge dependency update ([#94](https://github.com/ChristopherVR/ooxml/issues/94)) ([e381aba](https://github.com/ChristopherVR/ooxml/commit/e381abaa11794233cdea85a9dc6d098d4cb338c4))
48
+ - **deps:** Merge dependency update ([#95](https://github.com/ChristopherVR/ooxml/issues/95)) ([0926eac](https://github.com/ChristopherVR/ooxml/commit/0926eac231cb49749433fb7a9eac870cc7996e52))
49
+ - **deps:** Merge dependency update ([#96](https://github.com/ChristopherVR/ooxml/issues/96)) ([33b0ebb](https://github.com/ChristopherVR/ooxml/commit/33b0ebb6a16b4448d577c169c79187466d4148a3))
50
+
51
+ ### Chores
52
+
53
+ - **deps-dev:** Bump @types/node ([df60cd7](https://github.com/ChristopherVR/ooxml/commit/df60cd7aff4efb7006ac0a6cfd1c69b08230a011))
54
+ - **deps-dev:** Bump tsup from 8.5.1 to 9.0.0 ([9835e80](https://github.com/ChristopherVR/ooxml/commit/9835e8038a9a271e37e286e524496513910553a6))
55
+ - **deps-dev:** Bump the development-minor-and-patch group with 14 updates ([1cdc60b](https://github.com/ChristopherVR/ooxml/commit/1cdc60b0f0a591304a2240ffcb550eccfd8d2487))
56
+ - **pptx:** Integrate current main with dependency updates ([713239b](https://github.com/ChristopherVR/ooxml/commit/713239b3b9166d0010dcd058ea758c11ff2425c0))
57
+
10
58
  ## [4.42.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.42.0) - 2026-10-17
11
59
 
12
60
  ### Features
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MNT2CXDI.mjs';
1
+ import { cn } from './chunk-3LIHPZKS.mjs';
2
2
  import './chunk-Q3DHYOLK.mjs';
3
3
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk3PKYNJJG_js = require('./chunk-3PKYNJJG.js');
3
+ var chunkFKY33ZKL_js = require('./chunk-FKY33ZKL.js');
4
4
  require('./chunk-W2IMY5SY.js');
5
5
  var react = require('react');
6
6
  var reactI18next = require('react-i18next');
@@ -365,7 +365,7 @@ function AiComposer({
365
365
  disabled: value.trim().length === 0,
366
366
  title: t("pptx.ai.send"),
367
367
  "aria-label": t("pptx.ai.send"),
368
- className: chunk3PKYNJJG_js.cn(
368
+ className: chunkFKY33ZKL_js.cn(
369
369
  "shrink-0 rounded-sm p-1.5 transition-colors",
370
370
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
371
371
  ),
@@ -396,7 +396,7 @@ function AiFocusBar({
396
396
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
397
397
  "span",
398
398
  {
399
- className: chunk3PKYNJJG_js.cn(
399
+ className: chunkFKY33ZKL_js.cn(
400
400
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
401
401
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
402
402
  ),
@@ -433,7 +433,7 @@ function AiFocusBar({
433
433
  title: t("pptx.ai.pickElement"),
434
434
  "aria-label": t("pptx.ai.pickAria"),
435
435
  "aria-pressed": pickMode,
436
- className: chunk3PKYNJJG_js.cn(
436
+ className: chunkFKY33ZKL_js.cn(
437
437
  "rounded-sm p-1 max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
438
438
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
439
439
  ),
@@ -512,7 +512,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
512
512
  {
513
513
  type: "button",
514
514
  onClick: () => onResume(chat.id),
515
- className: chunk3PKYNJJG_js.cn(
515
+ className: chunkFKY33ZKL_js.cn(
516
516
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
517
517
  chat.id === activeChatId && "bg-accent/60"
518
518
  ),
@@ -676,17 +676,17 @@ function AiToolCallCard({ part }) {
676
676
  /* @__PURE__ */ jsxRuntime.jsx(
677
677
  Icon,
678
678
  {
679
- className: chunk3PKYNJJG_js.cn(
679
+ className: chunkFKY33ZKL_js.cn(
680
680
  "w-3.5 h-3.5 shrink-0",
681
681
  failed ? "text-destructive" : "text-muted-foreground"
682
682
  )
683
683
  }
684
684
  ),
685
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk3PKYNJJG_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
685
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFKY33ZKL_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
686
686
  /* @__PURE__ */ jsxRuntime.jsxs(
687
687
  "span",
688
688
  {
689
- className: chunk3PKYNJJG_js.cn(
689
+ className: chunkFKY33ZKL_js.cn(
690
690
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
691
691
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
692
692
  ),
@@ -734,7 +734,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
734
734
  /* @__PURE__ */ jsxRuntime.jsx(
735
735
  "div",
736
736
  {
737
- className: chunk3PKYNJJG_js.cn(
737
+ className: chunkFKY33ZKL_js.cn(
738
738
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
739
739
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
740
740
  ),
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  import { __reExport } from './chunk-Q3DHYOLK.mjs';
2
- import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS as STROKE_DASH_OPTIONS$1, getAnimationInitialStyle as getAnimationInitialStyle$1, cloneHistorySnapshot as cloneHistorySnapshot$1, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, getCropShapeClipPath as getCropShapeClipPath$1, getImageTilingStyle as getImageTilingStyle$1, mediaPlaybackAttributes, getOnlineVideoEmbed, ONLINE_VIDEO_IFRAME_SANDBOX, ONLINE_VIDEO_IFRAME_ALLOW, buildTextBlockStyle, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle as buildTextBody3DSceneStyle$1, buildParagraphs, followingText, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData as build3DExtrusionData$1, getFrameEffectStyle, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, screenStrokeWidth, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY as DEFAULT_FONT_FAMILY$1, cellStyleToCss, TABLE_CELL_TEXT_DEFAULTS, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, measurePreviewGeometry, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, shouldShowMediaFullscreenStopButton, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, scaleFontSizeForAutoFit, resolveFontKerning, resolveScriptFontSet, hasDistinctScriptFonts, authoredLetterSpacingPx, eastAsianBreaksForRun, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, splitsUnderlineIntoWords, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects as apply3dEffects$1, buildSubpathPaints, computeColumnBoundaries, computeTableMergeCrossings, columnHandleSegments, rowHandleSegments, getTableCellBandStyle as getTableCellBandStyle$1, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders as getCellDiagonalBorders$1, cellParagraphBlocks, resolveChartPalette, computeChartLegendLayout, resolveChartSvgDef, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, buildRectPathGradient, screenBorder, cellRunStyle, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitEastAsianBreaks, splitRunByScriptFont } from 'ooxml-ui/pptx';
2
+ import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS as STROKE_DASH_OPTIONS$1, getAnimationInitialStyle as getAnimationInitialStyle$1, cloneHistorySnapshot as cloneHistorySnapshot$1, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, getCropShapeClipPath as getCropShapeClipPath$1, getImageTilingStyle as getImageTilingStyle$1, mediaPlaybackAttributes, getOnlineVideoEmbed, ONLINE_VIDEO_IFRAME_SANDBOX, ONLINE_VIDEO_IFRAME_ALLOW, buildTextBlockStyle, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle as buildTextBody3DSceneStyle$1, buildParagraphs, followingText, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData as build3DExtrusionData$1, getFrameEffectStyle, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, screenStrokeWidth, markerPath, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, isArrowedCustomPath, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY as DEFAULT_FONT_FAMILY$1, cellStyleToCss, TABLE_CELL_TEXT_DEFAULTS, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, measurePreviewGeometry, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, shouldShowMediaFullscreenStopButton, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, scaleFontSizeForAutoFit, resolveFontKerning, resolveScriptFontSet, hasDistinctScriptFonts, authoredLetterSpacingPx, eastAsianBreaksForRun, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, splitsUnderlineIntoWords, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects as apply3dEffects$1, buildSubpathPaints, computeColumnBoundaries, computeTableMergeCrossings, columnHandleSegments, rowHandleSegments, getTableCellBandStyle as getTableCellBandStyle$1, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders as getCellDiagonalBorders$1, cellParagraphBlocks, resolveChartPalette, computeChartLegendLayout, resolveChartSvgDef, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, buildRectPathGradient, screenBorder, cellRunStyle, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitEastAsianBreaks, splitRunByScriptFont } from 'ooxml-ui/pptx';
3
3
  export { ACTION_BUTTON_PRESETS, DEFAULT_COLOR_CHANGE_TOLERANCE, INK_REPLAY_KEYFRAMES, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, SHAPE_QUICK_STYLES, SLIDE_TRANSITION_OPTIONS, TABLE_STYLE_PRESETS, applyColorChange, applyFormatToElement, applyReroutedConnectors, buildCacheKey, buildContentPartStrokes, buildCssGradientFromShapeStyle, buildInkGroupStrokes, buildSaveSlides, canvasToJpegData, clampCropValue, cloneSlide, cloneTemplateElementsBySlideId, colorWithOpacity, comparePresentation, computeHandoutLayout, computeSnapToShape, copyFormatFromElement, formatCommentTimestamp, generateNoteLineCount, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCompoundLineOffsets, getCompoundLineWidths, getContentPartReplayStyles, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getPatternSvg, getPrintableArea, getShapeAdjustmentHandleDescriptors, getSvgStrokeDasharray, getTextCompensationTransform, hasCopyableFormat, isEditableTextElement, isImageTiled, isPpactionUrl, isTemplateElementId, isUrlSafe, makeCloneId, mergeCells, normalizeHexColor, normalizeStrokeDashType, openNativeEyeDropper, parsePpactionUrl, partitionTemplateElements, rerouteConnectorsForMovedElements, safeOpenUrl, sanitizeGradientStops, setCachedResult, splitCell, stopAllPersistentAudio, substituteFieldText } from 'ooxml-ui/pptx';
4
4
  import * as pptx_star from 'ooxml-core/pptx';
5
5
  import { clsx } from 'clsx';
@@ -1413,10 +1413,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1413
1413
  spanStyle.fontFamily = baseFontFamily;
1414
1414
  spanStyle.verticalAlign = baselineShift;
1415
1415
  spanStyle.fontKerning = fontKerning;
1416
- spanStyle.letterSpacing = pieceLetterSpacing(
1417
- authoredLetterSpacing,
1418
- resolveMetricTrackingPx(textValue, metricFont)
1419
- );
1416
+ spanStyle.letterSpacing = ctx.textBuildPiece ? run.style.letterSpacing : pieceLetterSpacing(authoredLetterSpacing, resolveMetricTrackingPx(textValue, metricFont));
1420
1417
  const hollow = hollowTextFillStyle(segmentStyle, {
1421
1418
  color: resolvedSegmentColor,
1422
1419
  textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
@@ -1428,6 +1425,9 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1428
1425
  if (runRtl !== void 0) {
1429
1426
  spanStyle.direction = runRtl ? "rtl" : "ltr";
1430
1427
  spanStyle.unicodeBidi = runRtl !== ctx.paragraphRtl ? "bidi-override" : "embed";
1428
+ if (ctx.textBuildPiece && runRtl === true === (ctx.paragraphRtl === true)) {
1429
+ spanStyle.unicodeBidi = "normal";
1430
+ }
1431
1431
  }
1432
1432
  const isUnderlineWords = splitsUnderlineIntoWords(segmentStyle);
1433
1433
  const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
@@ -1457,7 +1457,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1457
1457
  Boolean(segmentStyle.italic),
1458
1458
  { language: segmentStyle.language, rtl: ctx.paragraphRtl === true }
1459
1459
  ),
1460
- metricContext,
1460
+ ctx.textBuildPiece ? void 0 : metricContext,
1461
1461
  isUnderlineWords,
1462
1462
  wordDecoration
1463
1463
  );
@@ -1595,7 +1595,7 @@ function renderParagraph(para, paraIndex, paraCount, segments, ctx, subElementAn
1595
1595
  element.id,
1596
1596
  paraIndex,
1597
1597
  renderedRuns,
1598
- runs,
1598
+ para.runs,
1599
1599
  subElementAnimStates,
1600
1600
  // A staged build splits the paragraph but must not flatten it: each piece
1601
1601
  // is re-rendered through the SAME run renderer, so it keeps its run's
@@ -1603,7 +1603,7 @@ function renderParagraph(para, paraIndex, paraCount, segments, ctx, subElementAn
1603
1603
  (run, text, pieceKey) => renderParagraphRun(
1604
1604
  { ...run, text },
1605
1605
  segments[run.segmentIndex ?? -1],
1606
- runCtx,
1606
+ { ...runCtx, textBuildPiece: true },
1607
1607
  `-build-${pieceKey}`
1608
1608
  )
1609
1609
  );
@@ -1896,31 +1896,31 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1896
1896
  function getConnectorPathGeometry(element) {
1897
1897
  return (0, dist_exports.getConnectorPathGeometry)(element);
1898
1898
  }
1899
- var ARROW_SIZE_SCALE = {
1900
- sm: 0.6,
1901
- med: 1,
1902
- lg: 1.5
1903
- };
1904
1899
  function renderConnectorMarker(markerId, arrowType, color, arrowWidth, arrowLength) {
1905
1900
  if (!arrowType || arrowType === "none") {
1906
1901
  return null;
1907
1902
  }
1908
- const wScale = ARROW_SIZE_SCALE[arrowWidth || "med"] ?? 1;
1909
- const lScale = ARROW_SIZE_SCALE[arrowLength || "med"] ?? 1;
1910
- const mw = Math.round(8 * lScale);
1911
- const mh = Math.round(8 * wScale);
1903
+ const shape = markerPath(arrowType, arrowWidth, arrowLength);
1912
1904
  return /* @__PURE__ */ jsx(
1913
1905
  "marker",
1914
1906
  {
1915
1907
  id: markerId,
1916
- markerWidth: mw,
1917
- markerHeight: mh,
1918
- refX: 8,
1908
+ markerWidth: shape.markerWidth,
1909
+ markerHeight: shape.markerHeight,
1910
+ refX: shape.refX,
1919
1911
  refY: 5,
1920
1912
  orient: "auto-start-reverse",
1921
1913
  viewBox: "0 0 10 10",
1922
1914
  markerUnits: "strokeWidth",
1923
- children: arrowType === "triangle" ? /* @__PURE__ */ jsx("polygon", { points: "0,0 10,5 0,10", fill: color }) : arrowType === "stealth" ? /* @__PURE__ */ jsx("polygon", { points: "0,0 10,5 0,10 3.4,5", fill: color }) : arrowType === "diamond" ? /* @__PURE__ */ jsx("polygon", { points: "0,5 5,0 10,5 5,10", fill: color }) : arrowType === "oval" ? /* @__PURE__ */ jsx("ellipse", { cx: 5, cy: 5, rx: 4, ry: 3.3, fill: color }) : /* @__PURE__ */ jsx("path", { d: "M0 0 L10 5 L0 10", fill: "none", stroke: color, strokeWidth: 1.6 })
1915
+ preserveAspectRatio: "none",
1916
+ children: shape.shape === "circle" ? /* @__PURE__ */ jsx("circle", { cx: 5, cy: 5, r: 4, fill: color }) : /* @__PURE__ */ jsx(
1917
+ "path",
1918
+ {
1919
+ d: shape.d,
1920
+ fill: shape.strokeOnly ? "none" : color,
1921
+ stroke: shape.strokeOnly ? color : void 0
1922
+ }
1923
+ )
1924
1924
  }
1925
1925
  );
1926
1926
  }
@@ -2139,7 +2139,7 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2139
2139
  fillColor,
2140
2140
  element.shapeStyle?.fillOpacity,
2141
2141
  strokePaint,
2142
- strokeWidth,
2142
+ isArrowedCustomPath(element) ? 0 : strokeWidth,
2143
2143
  dashArray,
2144
2144
  Boolean(animatesFill),
2145
2145
  // A freeform's `a:gradFill` needs a real SVG paint server: the
Binary file
Binary file