pptx-react-viewer 1.14.0 → 1.15.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 (98) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{Model3DScene-DX7S3IM7.mjs → Model3DScene-EF72C34A.mjs} +1 -1
  3. package/dist/Model3DScene-EF72C34A.mjs.br +0 -0
  4. package/dist/Model3DScene-EF72C34A.mjs.gz +0 -0
  5. package/dist/{Model3DScene-2E4HO4RQ.js → Model3DScene-QIE7QZ7M.js} +2 -2
  6. package/dist/{Model3DScene-2E4HO4RQ.js.br → Model3DScene-QIE7QZ7M.js.br} +0 -0
  7. package/dist/Model3DScene-QIE7QZ7M.js.gz +0 -0
  8. package/dist/{PowerPointViewer-DCYB93o0.d.ts → PowerPointViewer-BsaUH3ZT.d.ts} +1 -1
  9. package/dist/{PowerPointViewer-Crgj0LoS.d.mts → PowerPointViewer-Nxku67uL.d.mts} +1 -1
  10. package/dist/{SurfaceChart3DScene-327DEJSK.js → SurfaceChart3DScene-CBUOCCEN.js} +2 -2
  11. package/dist/{SurfaceChart3DScene-327DEJSK.js.br → SurfaceChart3DScene-CBUOCCEN.js.br} +0 -0
  12. package/dist/SurfaceChart3DScene-CBUOCCEN.js.gz +0 -0
  13. package/dist/{SurfaceChart3DScene-C3D3F2NN.mjs → SurfaceChart3DScene-JYCQ2DBR.mjs} +1 -1
  14. package/dist/{SurfaceChart3DScene-C3D3F2NN.mjs.br → SurfaceChart3DScene-JYCQ2DBR.mjs.br} +0 -0
  15. package/dist/SurfaceChart3DScene-JYCQ2DBR.mjs.gz +0 -0
  16. package/dist/{chunk-FMB2AJD7.js → chunk-BZVYWFHS.js} +418 -573
  17. package/dist/chunk-BZVYWFHS.js.br +0 -0
  18. package/dist/chunk-BZVYWFHS.js.gz +0 -0
  19. package/dist/{chunk-JZP5LYN3.mjs → chunk-FHOZRWAD.mjs} +289 -1
  20. package/dist/chunk-FHOZRWAD.mjs.br +0 -0
  21. package/dist/chunk-FHOZRWAD.mjs.gz +0 -0
  22. package/dist/{chunk-H5KXQEQD.js → chunk-FQXZZBFJ.js} +295 -0
  23. package/dist/chunk-FQXZZBFJ.js.br +0 -0
  24. package/dist/chunk-FQXZZBFJ.js.gz +0 -0
  25. package/dist/{chunk-OSWE3VXS.mjs → chunk-HJQZJ3VE.mjs} +9 -0
  26. package/dist/chunk-HJQZJ3VE.mjs.br +0 -0
  27. package/dist/chunk-HJQZJ3VE.mjs.gz +0 -0
  28. package/dist/{chunk-TQD5XTOT.mjs → chunk-POP5TS5L.mjs} +64 -219
  29. package/dist/chunk-POP5TS5L.mjs.br +0 -0
  30. package/dist/chunk-POP5TS5L.mjs.gz +0 -0
  31. package/dist/{chunk-K74UOJ6P.js → chunk-WGLJ32FW.js} +9 -0
  32. package/dist/chunk-WGLJ32FW.js.br +0 -0
  33. package/dist/chunk-WGLJ32FW.js.gz +0 -0
  34. package/dist/{chunk-45JY7DOB.mjs → chunk-X2UMJTCM.mjs} +38 -18
  35. package/dist/chunk-X2UMJTCM.mjs.br +0 -0
  36. package/dist/chunk-X2UMJTCM.mjs.gz +0 -0
  37. package/dist/{chunk-55OTTA3H.js → chunk-ZDV7QRGB.js} +779 -759
  38. package/dist/chunk-ZDV7QRGB.js.br +0 -0
  39. package/dist/chunk-ZDV7QRGB.js.gz +0 -0
  40. package/dist/hooks-unstable.d.mts +10 -4
  41. package/dist/hooks-unstable.d.ts +10 -4
  42. package/dist/hooks-unstable.js +74 -74
  43. package/dist/hooks-unstable.js.br +0 -0
  44. package/dist/hooks-unstable.js.gz +0 -0
  45. package/dist/hooks-unstable.mjs +3 -3
  46. package/dist/hooks-unstable.mjs.br +0 -0
  47. package/dist/hooks-unstable.mjs.gz +0 -0
  48. package/dist/i18n.js +3 -3
  49. package/dist/i18n.js.br +1 -1
  50. package/dist/i18n.js.gz +0 -0
  51. package/dist/i18n.mjs +1 -1
  52. package/dist/i18n.mjs.br +0 -0
  53. package/dist/i18n.mjs.gz +0 -0
  54. package/dist/index.d.mts +2 -2
  55. package/dist/index.d.ts +2 -2
  56. package/dist/index.js +18 -18
  57. package/dist/index.js.br +0 -0
  58. package/dist/index.js.gz +0 -0
  59. package/dist/index.mjs +4 -4
  60. package/dist/index.mjs.br +2 -1
  61. package/dist/index.mjs.gz +0 -0
  62. package/dist/pptx-viewer.css +1 -1
  63. package/dist/pptx-viewer.css.br +0 -0
  64. package/dist/pptx-viewer.css.gz +0 -0
  65. package/dist/{types-ui-Bagu4aYj.d.mts → types-ui-NG29h55h.d.mts} +17 -6
  66. package/dist/{types-ui-Bagu4aYj.d.ts → types-ui-NG29h55h.d.ts} +17 -6
  67. package/dist/{usePresenterWindow-DxZUXXk_.d.ts → usePresenterWindow-DToCijGy.d.ts} +1 -1
  68. package/dist/{usePresenterWindow-BarXkdvr.d.mts → usePresenterWindow-DeTm-unp.d.mts} +1 -1
  69. package/dist/viewer/index.d.mts +5 -5
  70. package/dist/viewer/index.d.ts +5 -5
  71. package/dist/viewer/index.js +19 -19
  72. package/dist/viewer/index.js.br +0 -0
  73. package/dist/viewer/index.js.gz +0 -0
  74. package/dist/viewer/index.mjs +4 -4
  75. package/dist/viewer/index.mjs.br +0 -0
  76. package/dist/viewer/index.mjs.gz +0 -0
  77. package/package.json +1 -1
  78. package/dist/Model3DScene-2E4HO4RQ.js.gz +0 -0
  79. package/dist/Model3DScene-DX7S3IM7.mjs.br +0 -0
  80. package/dist/Model3DScene-DX7S3IM7.mjs.gz +0 -0
  81. package/dist/SurfaceChart3DScene-327DEJSK.js.gz +0 -0
  82. package/dist/SurfaceChart3DScene-C3D3F2NN.mjs.gz +0 -0
  83. package/dist/chunk-45JY7DOB.mjs.br +0 -0
  84. package/dist/chunk-45JY7DOB.mjs.gz +0 -0
  85. package/dist/chunk-55OTTA3H.js.br +0 -0
  86. package/dist/chunk-55OTTA3H.js.gz +0 -0
  87. package/dist/chunk-FMB2AJD7.js.br +0 -0
  88. package/dist/chunk-FMB2AJD7.js.gz +0 -0
  89. package/dist/chunk-H5KXQEQD.js.br +0 -0
  90. package/dist/chunk-H5KXQEQD.js.gz +0 -0
  91. package/dist/chunk-JZP5LYN3.mjs.br +0 -0
  92. package/dist/chunk-JZP5LYN3.mjs.gz +0 -0
  93. package/dist/chunk-K74UOJ6P.js.br +0 -0
  94. package/dist/chunk-K74UOJ6P.js.gz +0 -0
  95. package/dist/chunk-OSWE3VXS.mjs.br +0 -0
  96. package/dist/chunk-OSWE3VXS.mjs.gz +0 -0
  97. package/dist/chunk-TQD5XTOT.mjs.br +0 -0
  98. package/dist/chunk-TQD5XTOT.mjs.gz +0 -0
@@ -1106,6 +1106,7 @@ var translationsEn = {
1106
1106
  "pptx.table.bandRowCycle": "Row band size",
1107
1107
  "pptx.table.cell": "Cell R{{row}} C{{col}}",
1108
1108
  "pptx.table.cellBorders": "Cell borders",
1109
+ "pptx.table.cellPadding": "Cell padding",
1109
1110
  "pptx.table.color": "Text",
1110
1111
  "pptx.table.columnWidths": "Column widths",
1111
1112
  "pptx.table.even": "Even",
@@ -1647,6 +1648,9 @@ var translationsEn = {
1647
1648
  "pptx.ribbon.strokeWidth": "Stroke width",
1648
1649
  "pptx.ribbon.browseThemes": "Browse Themes",
1649
1650
  "pptx.ribbon.browseThemesTitle": "Browse and apply built-in themes",
1651
+ "pptx.ribbon.theme.default": "Default",
1652
+ "pptx.ribbon.theme.light": "Light (Vermilion)",
1653
+ "pptx.ribbon.theme.dark": "Dark (Vermilion)",
1650
1654
  "pptx.ribbon.editTheme": "Edit Theme",
1651
1655
  "pptx.ribbon.editThemeTitle": "Edit theme - theme editor not yet ported",
1652
1656
  "pptx.ribbon.slideSize": "Slide Size",
@@ -2399,6 +2403,10 @@ var translationsEn = {
2399
2403
  "pptx.text.characterSpacingTight": "Tight",
2400
2404
  "pptx.text.characterSpacingVeryLoose": "Very Loose",
2401
2405
  "pptx.text.characterSpacingVeryTight": "Very Tight",
2406
+ "pptx.textAdvanced.autoFit": "AutoFit",
2407
+ "pptx.textAdvanced.autoFitNone": "Do not autofit",
2408
+ "pptx.textAdvanced.autoFitResize": "Resize shape to fit text",
2409
+ "pptx.textAdvanced.autoFitShrink": "Shrink text on overflow",
2402
2410
  "pptx.textAdvanced.autoPlaceholder": "auto",
2403
2411
  "pptx.textAdvanced.indent": "Indent",
2404
2412
  "pptx.textAdvanced.indentMargin": "Indent & Margin",
@@ -2412,6 +2420,7 @@ var translationsEn = {
2412
2420
  "pptx.textAdvanced.spaceBefore": "Space Before",
2413
2421
  "pptx.textAdvanced.spacing": "Spacing",
2414
2422
  "pptx.textAdvanced.vAlign": "V-Align",
2423
+ "pptx.textAdvanced.wrapText": "Wrap text in shape",
2415
2424
  "pptx.textFormatting.bulleted": "Bulleted",
2416
2425
  "pptx.textFormatting.numbered": "Numbered",
2417
2426
  "pptx.textFormatting.paragraphAfter": "Paragraph After",
Binary file
Binary file
@@ -1,8 +1,8 @@
1
- import { computeValueRangeForChart, cloneTemplateElementsBySlideId, cloneSlide, countTextSegments, expandTextBuildAnimations, TimelineEngine, TEXT_BUILD_ID_SEP, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, getAnimationInitialStyle, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, parseDrawingColor, parseDrawingColorOpacity, getPatternSvg, ooxmlDashToCssBorderStyle, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildPreviewAnimation, isTemplateElementId, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, comparePresentation, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, copyFormatFromElement, applyFormatToElement, INITIAL_SYNC_GRACE_MS, validateRoomId, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, BROADCAST_THROTTLE_MS, sanitizeColor, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, createTouchGestureRecognizer, isKeyboardOpen, downloadBlob, groupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, secureRandomUuid, resolveTransitionDurationMs, isUrlSafe, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, tintColor2, shadeColor2, computeColumnBoundaries, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, chartPartToAttrs } from './chunk-JZP5LYN3.mjs';
2
- import { translationsEn } from './chunk-OSWE3VXS.mjs';
1
+ import { SHAPE_PRESET_DEFS, computeValueRangeForChart, cloneTemplateElementsBySlideId, cloneSlide, countTextSegments, expandTextBuildAnimations, TimelineEngine, TEXT_BUILD_ID_SEP, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, getAnimationInitialStyle, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, parseDrawingColor, parseDrawingColorOpacity, getPatternSvg, ooxmlDashToCssBorderStyle, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildPreviewAnimation, isTemplateElementId, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, comparePresentation, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, copyFormatFromElement, applyFormatToElement, INITIAL_SYNC_GRACE_MS, validateRoomId, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, BROADCAST_THROTTLE_MS, sanitizeColor, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, createTouchGestureRecognizer, isKeyboardOpen, buildElementClipboardPayload, downloadBlob, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, secureRandomUuid, resolveTransitionDurationMs, isUrlSafe, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, tintColor2, shadeColor2, computeColumnBoundaries, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, cloneElementForPaste, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, chartPartToAttrs } from './chunk-FHOZRWAD.mjs';
2
+ import { translationsEn } from './chunk-HJQZJ3VE.mjs';
3
3
  import { hasTextProperties, PptxHandler, EncryptedFileError, hasShapeProperties, isImageLikeElement, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, applyThemeToData, THEME_PRESETS, guidePxToEmu, mergeShapes, getSubstituteFontFamily, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, SvgExporter, rebuildTableStructureInRawXml, updateCellTextStyleInRawXml, updateCellTextInRawXml, updateMergeAttrsInRawXml, elementActionToPptxAction } from './chunk-QFRXMAFR.mjs';
4
4
  import React3, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useSyncExternalStore, useImperativeHandle, useLayoutEffect } from 'react';
5
- import { LuSquare, LuCircle, LuDatabase, LuMoveRight, LuTriangle, LuDiamond, LuPlus, LuMinus } from 'react-icons/lu';
5
+ import { LuTriangle, LuPlus, LuMoveRight, LuMinus, LuDiamond, LuDatabase, LuCircle, LuSquare } from 'react-icons/lu';
6
6
  import { clsx } from 'clsx';
7
7
  import { twMerge } from 'tailwind-merge';
8
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -329,189 +329,26 @@ var ANIMATION_PRESET_OPTIONS = [
329
329
  { value: "growShrink", label: "Grow/Shrink", i18nKey: "pptx.animation.preset.growShrink" },
330
330
  { value: "teeter", label: "Teeter", i18nKey: "pptx.animation.preset.teeter" }
331
331
  ];
332
- var icon = (component, className) => React3.createElement(component, { className });
333
- var SHAPE_PRESETS = [
334
- {
335
- type: "rect",
336
- label: "Rectangle",
337
- i18nKey: "pptx.editorToolbar.shapeRectangle",
338
- icon: icon(LuSquare, "w-3.5 h-3.5")
339
- },
340
- {
341
- type: "roundRect",
342
- label: "Rounded",
343
- i18nKey: "pptx.shapePresets.rounded",
344
- icon: icon(LuSquare, "w-3.5 h-3.5")
345
- },
346
- {
347
- type: "ellipse",
348
- label: "Circle",
349
- i18nKey: "pptx.shapePresets.circle",
350
- icon: icon(LuCircle, "w-3.5 h-3.5")
351
- },
352
- {
353
- type: "cylinder",
354
- label: "Cylinder",
355
- i18nKey: "pptx.shapePresets.cylinder",
356
- icon: icon(LuDatabase, "w-3.5 h-3.5")
357
- },
358
- {
359
- type: "rtArrow",
360
- label: "Right Arrow",
361
- i18nKey: "pptx.shapePresets.rightArrow",
362
- icon: icon(LuMoveRight, "w-3.5 h-3.5")
363
- },
364
- {
365
- type: "leftArrow",
366
- label: "Left Arrow",
367
- i18nKey: "pptx.shapePresets.leftArrow",
368
- icon: icon(LuMoveRight, "w-3.5 h-3.5 rotate-180")
369
- },
370
- {
371
- type: "upArrow",
372
- label: "Up Arrow",
373
- i18nKey: "pptx.shapePresets.upArrow",
374
- icon: icon(LuMoveRight, "w-3.5 h-3.5 -rotate-90")
375
- },
376
- {
377
- type: "downArrow",
378
- label: "Down Arrow",
379
- i18nKey: "pptx.shapePresets.downArrow",
380
- icon: icon(LuMoveRight, "w-3.5 h-3.5 rotate-90")
381
- },
382
- {
383
- type: "triangle",
384
- label: "Triangle",
385
- i18nKey: "pptx.editorToolbar.shapeTriangle",
386
- icon: icon(LuTriangle, "w-3.5 h-3.5")
387
- },
388
- {
389
- type: "rtTriangle",
390
- label: "Right Triangle",
391
- i18nKey: "pptx.shapePresets.rightTriangle",
392
- icon: icon(LuTriangle, "w-3.5 h-3.5 rotate-90")
393
- },
394
- {
395
- type: "diamond",
396
- label: "Diamond",
397
- i18nKey: "pptx.shapePresets.diamond",
398
- icon: icon(LuDiamond, "w-3.5 h-3.5")
399
- },
400
- {
401
- type: "parallelogram",
402
- label: "Parallelogram",
403
- i18nKey: "pptx.shapePresets.parallelogram",
404
- icon: icon(LuSquare, "w-3.5 h-3.5 -skew-x-12")
405
- },
406
- {
407
- type: "trapezoid",
408
- label: "Trapezoid",
409
- i18nKey: "pptx.shapePresets.trapezoid",
410
- icon: icon(LuSquare, "w-3.5 h-3.5")
411
- },
412
- {
413
- type: "pentagon",
414
- label: "Pentagon",
415
- i18nKey: "pptx.shapePresets.pentagon",
416
- icon: icon(LuDiamond, "w-3.5 h-3.5")
417
- },
418
- {
419
- type: "hexagon",
420
- label: "Hexagon",
421
- i18nKey: "pptx.shapePresets.hexagon",
422
- icon: icon(LuDiamond, "w-3.5 h-3.5")
423
- },
424
- {
425
- type: "octagon",
426
- label: "Octagon",
427
- i18nKey: "pptx.shapePresets.octagon",
428
- icon: icon(LuCircle, "w-3.5 h-3.5")
429
- },
430
- {
431
- type: "chevron",
432
- label: "Chevron",
433
- i18nKey: "pptx.shapePresets.chevron",
434
- icon: icon(LuMoveRight, "w-3.5 h-3.5")
435
- },
436
- {
437
- type: "star5",
438
- label: "Star",
439
- i18nKey: "pptx.shapePresets.star",
440
- icon: icon(LuDiamond, "w-3.5 h-3.5 rotate-45")
441
- },
442
- {
443
- type: "star6",
444
- label: "Star 6",
445
- i18nKey: "pptx.shapePresets.star6",
446
- icon: icon(LuDiamond, "w-3.5 h-3.5")
447
- },
448
- {
449
- type: "star8",
450
- label: "Star 8",
451
- i18nKey: "pptx.shapePresets.star8",
452
- icon: icon(LuDiamond, "w-3.5 h-3.5 rotate-45")
453
- },
454
- {
455
- type: "plus",
456
- label: "Plus",
457
- i18nKey: "pptx.shapePresets.plus",
458
- icon: icon(LuPlus, "w-3.5 h-3.5")
459
- },
460
- {
461
- type: "heart",
462
- label: "Heart",
463
- i18nKey: "pptx.shapePresets.heart",
464
- icon: icon(LuCircle, "w-3.5 h-3.5")
465
- },
466
- {
467
- type: "cloud",
468
- label: "Cloud",
469
- i18nKey: "pptx.shapePresets.cloud",
470
- icon: icon(LuCircle, "w-3.5 h-3.5")
471
- },
472
- {
473
- type: "sun",
474
- label: "Sun",
475
- i18nKey: "pptx.shapePresets.sun",
476
- icon: icon(LuCircle, "w-3.5 h-3.5")
477
- },
478
- {
479
- type: "moon",
480
- label: "Moon",
481
- i18nKey: "pptx.shapePresets.moon",
482
- icon: icon(LuCircle, "w-3.5 h-3.5")
483
- },
484
- {
485
- type: "pie",
486
- label: "Pie",
487
- i18nKey: "pptx.shapePresets.pie",
488
- icon: icon(LuCircle, "w-3.5 h-3.5")
489
- },
490
- {
491
- type: "plaque",
492
- label: "Plaque",
493
- i18nKey: "pptx.shapePresets.plaque",
494
- icon: icon(LuSquare, "w-3.5 h-3.5")
495
- },
496
- {
497
- type: "teardrop",
498
- label: "Teardrop",
499
- i18nKey: "pptx.shapePresets.teardrop",
500
- icon: icon(LuCircle, "w-3.5 h-3.5")
501
- },
502
- {
503
- type: "line",
504
- label: "Line",
505
- i18nKey: "pptx.shapePresets.line",
506
- icon: icon(LuMinus, "w-3.5 h-3.5")
507
- },
508
- {
509
- type: "connector",
510
- label: "Connector",
511
- i18nKey: "pptx.elementType.connector",
512
- icon: icon(LuMoveRight, "w-3.5 h-3.5")
513
- }
514
- ];
332
+ var GLYPH_COMPONENTS = {
333
+ square: LuSquare,
334
+ circle: LuCircle,
335
+ database: LuDatabase,
336
+ diamond: LuDiamond,
337
+ minus: LuMinus,
338
+ moveRight: LuMoveRight,
339
+ plus: LuPlus,
340
+ triangle: LuTriangle
341
+ };
342
+ var SHAPE_PRESETS = SHAPE_PRESET_DEFS.map(
343
+ (def) => ({
344
+ type: def.type,
345
+ label: def.label,
346
+ i18nKey: def.i18nKey,
347
+ icon: React3.createElement(GLYPH_COMPONENTS[def.glyph], {
348
+ className: def.glyphClass ? `w-3.5 h-3.5 ${def.glyphClass}` : "w-3.5 h-3.5"
349
+ })
350
+ })
351
+ );
515
352
 
516
353
  // src/viewer/hooks/useZoomViewport.ts
517
354
  function useZoomViewport({
@@ -3302,11 +3139,6 @@ function useViewerState(input) {
3302
3139
  return { ...core, ...ui };
3303
3140
  }
3304
3141
 
3305
- // src/viewer/utils/generate-id.ts
3306
- function generateElementId() {
3307
- return `el-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
3308
- }
3309
-
3310
3142
  // src/viewer/utils/template-editing.ts
3311
3143
  function partitionTemplateElements(slides) {
3312
3144
  const templateElementsBySlideId = {};
@@ -3329,15 +3161,6 @@ function buildSaveSlides(slides, templateElementsBySlideId) {
3329
3161
  return { ...slide, elements: [...template, ...slide.elements] };
3330
3162
  });
3331
3163
  }
3332
- function makeCloneId(intoTemplate, sourceId) {
3333
- if (!intoTemplate) {
3334
- return generateElementId();
3335
- }
3336
- if (sourceId.startsWith("master-")) {
3337
- return `master-${generateElementId()}`;
3338
- }
3339
- return `layout-${generateElementId()}`;
3340
- }
3341
3164
 
3342
3165
  // src/viewer/hooks/useLoadContent.ts
3343
3166
  function useLoadContent({
@@ -8664,7 +8487,7 @@ function FailedToLoad() {
8664
8487
  var LazySurfaceChart3DScene = React3.lazy(
8665
8488
  async () => {
8666
8489
  try {
8667
- return await import('./SurfaceChart3DScene-C3D3F2NN.mjs');
8490
+ return await import('./SurfaceChart3DScene-JYCQ2DBR.mjs');
8668
8491
  } catch {
8669
8492
  return { default: FailedToLoad };
8670
8493
  }
@@ -11518,6 +11341,36 @@ function useElementOperations(input) {
11518
11341
  },
11519
11342
  [selectedElement, updateSelectedElement]
11520
11343
  );
11344
+ const updateSelectedTextCase = useCallback(
11345
+ (mode) => {
11346
+ if (!selectedElement || !hasTextProperties(selectedElement)) {
11347
+ return;
11348
+ }
11349
+ const inlineSel = getInlineEditorSelection(selectedElement.textSegments);
11350
+ if (inlineSel && selectedElement.textSegments) {
11351
+ const newSegments = applyCaseTransformToSegments(
11352
+ selectedElement.textSegments,
11353
+ inlineSel,
11354
+ mode
11355
+ );
11356
+ updateSelectedElement({ textSegments: newSegments });
11357
+ return;
11358
+ }
11359
+ const updates = {};
11360
+ if (selectedElement.textSegments && selectedElement.textSegments.length > 0) {
11361
+ updates.textSegments = applyCaseTransformToSegments(
11362
+ selectedElement.textSegments,
11363
+ null,
11364
+ mode
11365
+ );
11366
+ }
11367
+ if (typeof selectedElement.text === "string") {
11368
+ updates.text = transformTextCase(selectedElement.text, mode);
11369
+ }
11370
+ updateSelectedElement(updates);
11371
+ },
11372
+ [selectedElement, updateSelectedElement]
11373
+ );
11521
11374
  const updateSlides = useCallback(
11522
11375
  (updater) => {
11523
11376
  setSlides((prev) => updater(prev));
@@ -11556,6 +11409,7 @@ function useElementOperations(input) {
11556
11409
  updateSelectedElement,
11557
11410
  updateSelectedShapeStyle,
11558
11411
  updateSelectedTextStyle,
11412
+ updateSelectedTextCase,
11559
11413
  updateSlides,
11560
11414
  activeElements,
11561
11415
  updateActiveElements,
@@ -12842,10 +12696,7 @@ function useClipboardHandlers(input) {
12842
12696
  if (!selectedElement) {
12843
12697
  return;
12844
12698
  }
12845
- setClipboardPayload({
12846
- element: structuredClone(selectedElement),
12847
- isTemplate: editTemplateMode
12848
- });
12699
+ setClipboardPayload(buildElementClipboardPayload(selectedElement, editTemplateMode));
12849
12700
  };
12850
12701
  const handleDelete = () => {
12851
12702
  const idsToDelete = effectiveSelectedIds;
@@ -12861,29 +12712,23 @@ function useClipboardHandlers(input) {
12861
12712
  handleCopy();
12862
12713
  handleDelete();
12863
12714
  };
12715
+ const insertClone = (source) => {
12716
+ const clone = cloneElementForPaste(source, { intoTemplate: editTemplateMode });
12717
+ ops.updateActiveElements((els) => [...els, clone]);
12718
+ ops.applySelection(clone.id);
12719
+ history.markDirty();
12720
+ };
12864
12721
  const handlePaste = () => {
12865
12722
  if (!clipboardPayload || !activeSlide) {
12866
12723
  return;
12867
12724
  }
12868
- const clone = structuredClone(clipboardPayload.element);
12869
- clone.id = makeCloneId(editTemplateMode, clipboardPayload.element.id);
12870
- clone.x += 20;
12871
- clone.y += 20;
12872
- ops.updateActiveElements((els) => [...els, clone]);
12873
- ops.applySelection(clone.id);
12874
- history.markDirty();
12725
+ insertClone(clipboardPayload.element);
12875
12726
  };
12876
12727
  const handleDuplicate = () => {
12877
12728
  if (!selectedElement || !activeSlide) {
12878
12729
  return;
12879
12730
  }
12880
- const clone = structuredClone(selectedElement);
12881
- clone.id = makeCloneId(editTemplateMode, selectedElement.id);
12882
- clone.x += 20;
12883
- clone.y += 20;
12884
- ops.updateActiveElements((els) => [...els, clone]);
12885
- ops.applySelection(clone.id);
12886
- history.markDirty();
12731
+ insertClone(selectedElement);
12887
12732
  };
12888
12733
  return {
12889
12734
  handleCopy,
Binary file
Binary file
@@ -1108,6 +1108,7 @@ var translationsEn = {
1108
1108
  "pptx.table.bandRowCycle": "Row band size",
1109
1109
  "pptx.table.cell": "Cell R{{row}} C{{col}}",
1110
1110
  "pptx.table.cellBorders": "Cell borders",
1111
+ "pptx.table.cellPadding": "Cell padding",
1111
1112
  "pptx.table.color": "Text",
1112
1113
  "pptx.table.columnWidths": "Column widths",
1113
1114
  "pptx.table.even": "Even",
@@ -1649,6 +1650,9 @@ var translationsEn = {
1649
1650
  "pptx.ribbon.strokeWidth": "Stroke width",
1650
1651
  "pptx.ribbon.browseThemes": "Browse Themes",
1651
1652
  "pptx.ribbon.browseThemesTitle": "Browse and apply built-in themes",
1653
+ "pptx.ribbon.theme.default": "Default",
1654
+ "pptx.ribbon.theme.light": "Light (Vermilion)",
1655
+ "pptx.ribbon.theme.dark": "Dark (Vermilion)",
1652
1656
  "pptx.ribbon.editTheme": "Edit Theme",
1653
1657
  "pptx.ribbon.editThemeTitle": "Edit theme - theme editor not yet ported",
1654
1658
  "pptx.ribbon.slideSize": "Slide Size",
@@ -2401,6 +2405,10 @@ var translationsEn = {
2401
2405
  "pptx.text.characterSpacingTight": "Tight",
2402
2406
  "pptx.text.characterSpacingVeryLoose": "Very Loose",
2403
2407
  "pptx.text.characterSpacingVeryTight": "Very Tight",
2408
+ "pptx.textAdvanced.autoFit": "AutoFit",
2409
+ "pptx.textAdvanced.autoFitNone": "Do not autofit",
2410
+ "pptx.textAdvanced.autoFitResize": "Resize shape to fit text",
2411
+ "pptx.textAdvanced.autoFitShrink": "Shrink text on overflow",
2404
2412
  "pptx.textAdvanced.autoPlaceholder": "auto",
2405
2413
  "pptx.textAdvanced.indent": "Indent",
2406
2414
  "pptx.textAdvanced.indentMargin": "Indent & Margin",
@@ -2414,6 +2422,7 @@ var translationsEn = {
2414
2422
  "pptx.textAdvanced.spaceBefore": "Space Before",
2415
2423
  "pptx.textAdvanced.spacing": "Spacing",
2416
2424
  "pptx.textAdvanced.vAlign": "V-Align",
2425
+ "pptx.textAdvanced.wrapText": "Wrap text in shape",
2417
2426
  "pptx.textFormatting.bulleted": "Bulleted",
2418
2427
  "pptx.textFormatting.numbered": "Numbered",
2419
2428
  "pptx.textFormatting.paragraphAfter": "Paragraph After",
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, SLIDE_TRANSITION_OPTIONS, DEFAULT_FILL_COLOR, shouldRenderFallbackLabel, isImageTiled, getImageTilingStyle, renderTextSegments, getTextLayoutStyle, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, renderTableElement, renderMediaElement, buildTextBody3DSceneStyle, getTextWarpStyle, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, parseTableElementData, ensureArrayValue, getTableCellBandStyle, extractCellText, extractTableCellStyle, cellStyleToCss, renderChartElement, getDuotoneColors, renderDuotoneSvgFilter, renderArtisticEffectSvgFilter, renderImageAlphaSvgFilter, buildReactChartViewModel, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, EMU_PER_PX, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-TQD5XTOT.mjs';
2
- import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, RULER_THICKNESS, RULER_FONT_SIZE, convertLatexToOmml, convertOmmlToMathMl, openPptxFile, buildSmartArtA11y, buildCssGradientFromShapeStyle, getElementLabel, getTextCompensationTransform, shouldUseSvgWarp, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, resolveTransportForServerUrl, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveDrawingShapeNodeId, getPendingSelectionRestore, restoreSegmentSelection, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, getWarpPath, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, NOTES_FONT_SIZE_DEFAULT, clampNotesFontSize, NOTES_FONT_SIZE_STEP, formatTime, formatElapsed, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_MAX, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, INSERT_CHART_TYPES, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, notesSegmentsToSpans, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, TABLE_STYLE_PRESETS, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-JZP5LYN3.mjs';
3
- import { translationsEn } from './chunk-OSWE3VXS.mjs';
1
+ import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, SLIDE_TRANSITION_OPTIONS, DEFAULT_FILL_COLOR, shouldRenderFallbackLabel, isImageTiled, getImageTilingStyle, renderTextSegments, getTextLayoutStyle, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, renderTableElement, renderMediaElement, buildTextBody3DSceneStyle, getTextWarpStyle, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, parseTableElementData, ensureArrayValue, getTableCellBandStyle, extractCellText, extractTableCellStyle, cellStyleToCss, renderChartElement, getDuotoneColors, renderDuotoneSvgFilter, renderArtisticEffectSvgFilter, renderImageAlphaSvgFilter, buildReactChartViewModel, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, EMU_PER_PX, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-POP5TS5L.mjs';
2
+ import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, RULER_THICKNESS, RULER_FONT_SIZE, convertLatexToOmml, convertOmmlToMathMl, openPptxFile, buildSmartArtA11y, buildCssGradientFromShapeStyle, getElementLabel, getTextCompensationTransform, shouldUseSvgWarp, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, resolveTransportForServerUrl, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveDrawingShapeNodeId, getPendingSelectionRestore, restoreSegmentSelection, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, getWarpPath, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, NOTES_FONT_SIZE_DEFAULT, clampNotesFontSize, NOTES_FONT_SIZE_STEP, formatTime, formatElapsed, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_MAX, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, INSERT_CHART_TYPES, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, notesSegmentsToSpans, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, TABLE_STYLE_PRESETS, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-FHOZRWAD.mjs';
3
+ import { translationsEn } from './chunk-HJQZJ3VE.mjs';
4
4
  import { hasShapeProperties, hasTextProperties, SWITCHABLE_LAYOUT_TYPES, isInkElement, getLinkedTextBoxSegments, isImageLikeElement, getSubstituteFontFamily, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, hasNonTrivialOverride, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-QFRXMAFR.mjs';
5
5
  import React5, { createContext, useMemo, useState, useCallback, forwardRef, useEffect, useRef, useContext, Suspense, useLayoutEffect, useDeferredValue } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -4720,6 +4720,25 @@ function InlineTextEditor({
4720
4720
  const handleInput = useCallback(() => {
4721
4721
  onEditChange(extractText());
4722
4722
  }, [extractText, onEditChange]);
4723
+ const trimTrailingSpaceBeforeCaret = useCallback(() => {
4724
+ const selection = window.getSelection();
4725
+ if (!selection || !selection.isCollapsed || selection.rangeCount === 0) {
4726
+ return;
4727
+ }
4728
+ const range = selection.getRangeAt(0);
4729
+ const { startContainer, startOffset } = range;
4730
+ if (startContainer.nodeType !== Node.TEXT_NODE || startOffset === 0) {
4731
+ return;
4732
+ }
4733
+ const text = startContainer.textContent ?? "";
4734
+ if (text.charAt(startOffset - 1) !== " ") {
4735
+ return;
4736
+ }
4737
+ const trimRange = document.createRange();
4738
+ trimRange.setStart(startContainer, startOffset - 1);
4739
+ trimRange.setEnd(startContainer, startOffset);
4740
+ trimRange.deleteContents();
4741
+ }, []);
4723
4742
  useEffect(() => {
4724
4743
  const el = editorRef.current;
4725
4744
  if (!el) {
@@ -4818,6 +4837,10 @@ function InlineTextEditor({
4818
4837
  e.preventDefault();
4819
4838
  onEditChange(extractText());
4820
4839
  onCommit();
4840
+ return;
4841
+ }
4842
+ if (e.key === "Enter") {
4843
+ trimTrailingSpaceBeforeCaret();
4821
4844
  }
4822
4845
  },
4823
4846
  onPaste: (e) => {
@@ -4835,7 +4858,7 @@ function FailedToLoad() {
4835
4858
  var LazyModel3DScene = React5.lazy(
4836
4859
  async () => {
4837
4860
  try {
4838
- return await import('./Model3DScene-DX7S3IM7.mjs');
4861
+ return await import('./Model3DScene-EF72C34A.mjs');
4839
4862
  } catch {
4840
4863
  return { default: FailedToLoad };
4841
4864
  }
@@ -14163,19 +14186,13 @@ function TextSection(p) {
14163
14186
  if (!canFormat) {
14164
14187
  return;
14165
14188
  }
14166
- switch (opt.value) {
14167
- case "upper":
14168
- p.onUpdateTextStyle({ textCaps: "all" });
14169
- break;
14170
- case "lower":
14171
- p.onUpdateTextStyle({ textCaps: "none" });
14172
- break;
14173
- case "sentence":
14174
- case "capitalize":
14175
- case "toggle":
14176
- p.onUpdateTextStyle({ textCaps: "none" });
14177
- break;
14189
+ if (isTable) {
14190
+ p.onUpdateTextStyle({
14191
+ textCaps: opt.value === "upper" ? "all" : "none"
14192
+ });
14193
+ return;
14178
14194
  }
14195
+ p.onTransformTextCase(opt.value);
14179
14196
  },
14180
14197
  children: opt.label
14181
14198
  },
@@ -14770,7 +14787,8 @@ function MobileSectionBody({
14770
14787
  canEdit: p.canEdit,
14771
14788
  selectedElement: p.selectedElement,
14772
14789
  tableEditorState: p.tableEditorState,
14773
- onUpdateTextStyle: p.onUpdateTextStyle
14790
+ onUpdateTextStyle: p.onUpdateTextStyle,
14791
+ onTransformTextCase: p.onTransformTextCase
14774
14792
  }
14775
14793
  ) });
14776
14794
  case "draw":
@@ -15989,7 +16007,8 @@ function Toolbar(p) {
15989
16007
  canEdit: p.canEdit,
15990
16008
  selectedElement: p.selectedElement,
15991
16009
  tableEditorState: p.tableEditorState,
15992
- onUpdateTextStyle: p.onUpdateTextStyle
16010
+ onUpdateTextStyle: p.onUpdateTextStyle,
16011
+ onTransformTextCase: p.onTransformTextCase
15993
16012
  }
15994
16013
  ),
15995
16014
  sHome && /* @__PURE__ */ jsx(EditingSection, { onToggleFindReplace: p.onToggleFindReplace }),
@@ -28802,6 +28821,7 @@ function ViewerToolbarSection(props) {
28802
28821
  onRunAccessibilityCheck: dialogs.handleRunAccessibilityCheck,
28803
28822
  onToggleSlideSorter: () => s.setShowSlideSorter((p) => !p),
28804
28823
  onUpdateTextStyle: ops.updateSelectedTextStyle,
28824
+ onTransformTextCase: ops.updateSelectedTextCase,
28805
28825
  isOverflowMenuOpen: s.isOverflowMenuOpen,
28806
28826
  onSetOverflowMenuOpen: s.setIsOverflowMenuOpen,
28807
28827
  layoutOptions: scopedLayoutOptions,
Binary file
Binary file