@aixa-transformation/pptx-viewer 2.0.33 → 2.0.35

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.
@@ -31707,6 +31707,31 @@ function readUtf16LE2(data, offset, byteLength) {
31707
31707
  }
31708
31708
  return chars.join("");
31709
31709
  }
31710
+ function readUint16BE(data, offset) {
31711
+ return (data[offset] ?? 0) << 8 | (data[offset + 1] ?? 0);
31712
+ }
31713
+ function readUint32BE(data, offset) {
31714
+ return ((data[offset] ?? 0) << 24 >>> 0 | (data[offset + 1] ?? 0) << 16 | (data[offset + 2] ?? 0) << 8 | (data[offset + 3] ?? 0)) >>> 0;
31715
+ }
31716
+ function findSfntTable(data, tag) {
31717
+ if (data.length < 12) return null;
31718
+ const numTables = readUint16BE(data, 4);
31719
+ for (let i = 0; i < numTables; i++) {
31720
+ const record = 12 + i * 16;
31721
+ if (record + 16 > data.length) break;
31722
+ const recordTag = String.fromCharCode(
31723
+ data[record],
31724
+ data[record + 1],
31725
+ data[record + 2],
31726
+ data[record + 3]
31727
+ );
31728
+ if (recordTag !== tag) continue;
31729
+ const offset = readUint32BE(data, record + 8);
31730
+ const length = readUint32BE(data, record + 12);
31731
+ return offset + length <= data.length ? { offset, length } : null;
31732
+ }
31733
+ return null;
31734
+ }
31710
31735
  function isEotFormat(data) {
31711
31736
  if (data.length < 36) {
31712
31737
  return false;
@@ -31729,27 +31754,52 @@ function createEotFromSfnt(fontData, options) {
31729
31754
  encodeName2(""),
31730
31755
  encodeName2(options.fullName ?? options.familyName)
31731
31756
  ];
31732
- const headerSize = 80 + names.reduce((sum, name) => sum + 4 + name.length, 0);
31757
+ const headerSize = 82 + names.reduce((sum, name) => sum + 2 + name.length, 0) + 2;
31733
31758
  const result = new Uint8Array(headerSize + fontData.length);
31734
31759
  const view = new DataView(result.buffer);
31760
+ const os2 = findSfntTable(fontData, "OS/2");
31761
+ const head = findSfntTable(fontData, "head");
31735
31762
  view.setUint32(0, result.length, true);
31736
31763
  view.setUint32(4, fontData.length, true);
31737
31764
  view.setUint32(8, 131073, true);
31738
31765
  view.setUint32(12, 0, true);
31766
+ if (os2 && os2.length >= 42) {
31767
+ result.set(fontData.slice(os2.offset + 32, os2.offset + 42), 16);
31768
+ }
31739
31769
  result[26] = 1;
31740
31770
  result[27] = options.italic ? 1 : 0;
31741
- view.setUint32(28, options.weight ?? 400, true);
31742
- view.setUint16(32, 0, true);
31771
+ view.setUint32(
31772
+ 28,
31773
+ options.weight ?? (os2 && os2.length >= 6 ? readUint16BE(fontData, os2.offset + 4) : 400),
31774
+ true
31775
+ );
31776
+ view.setUint16(
31777
+ 32,
31778
+ os2 && os2.length >= 10 ? readUint16BE(fontData, os2.offset + 8) : 0,
31779
+ true
31780
+ );
31743
31781
  view.setUint16(34, EOT_MAGIC, true);
31744
- let offset = 80;
31782
+ if (os2 && os2.length >= 58) {
31783
+ for (let i = 0; i < 4; i++) {
31784
+ view.setUint32(36 + i * 4, readUint32BE(fontData, os2.offset + 42 + i * 4), true);
31785
+ }
31786
+ }
31787
+ if (os2 && os2.length >= 86) {
31788
+ view.setUint32(52, readUint32BE(fontData, os2.offset + 78), true);
31789
+ view.setUint32(56, readUint32BE(fontData, os2.offset + 82), true);
31790
+ }
31791
+ if (head && head.length >= 12) {
31792
+ view.setUint32(60, readUint32BE(fontData, head.offset + 8), true);
31793
+ }
31794
+ let offset = 82;
31745
31795
  for (const name of names) {
31746
- view.setUint16(offset, 0, true);
31747
- offset += 2;
31748
- view.setUint16(offset, name.length, true);
31796
+ view.setUint16(offset, Math.max(0, name.length - 2), true);
31749
31797
  offset += 2;
31750
31798
  result.set(name, offset);
31751
31799
  offset += name.length;
31752
31800
  }
31801
+ view.setUint16(offset, 0, true);
31802
+ offset += 2;
31753
31803
  result.set(fontData, offset);
31754
31804
  return result;
31755
31805
  }
@@ -31785,8 +31835,10 @@ function parseEotHeader(data) {
31785
31835
  const styleName = readNameString();
31786
31836
  const versionName = readNameString();
31787
31837
  const fullName = readNameString();
31788
- if (version >= 131074) {
31838
+ if (version >= 131073 && offset + 4 <= data.length && readUint16LE(data, offset) === 0 && readUint16LE(data, offset + 2) === 0) {
31789
31839
  readNameString();
31840
+ }
31841
+ if (version >= 131074) {
31790
31842
  offset += 8;
31791
31843
  if (offset + 4 <= data.length) {
31792
31844
  const signatureSize = readUint16LE(data, offset + 2);
@@ -62320,8 +62372,14 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime7 extends PptxHandlerRuntime
62320
62372
  }
62321
62373
  return;
62322
62374
  }
62375
+ const newFontsWithData = fontsWithData.filter(
62376
+ (font) => !(font.originalRId && font.partPath)
62377
+ );
62378
+ if (newFontsWithData.length === 0) {
62379
+ return;
62380
+ }
62323
62381
  const fontsByName = /* @__PURE__ */ new Map();
62324
- for (const font of fontsWithData) {
62382
+ for (const font of newFontsWithData) {
62325
62383
  const existing = fontsByName.get(font.name) ?? [];
62326
62384
  existing.push(font);
62327
62385
  fontsByName.set(font.name, existing);
@@ -62423,8 +62481,28 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime7 extends PptxHandlerRuntime
62423
62481
  const generatedList = {
62424
62482
  "p:embeddedFont": embeddedFontEntries.length === 1 ? embeddedFontEntries[0] : embeddedFontEntries
62425
62483
  };
62426
- const metadata = explicitFontList ? serializeEmbeddedFontList(explicitFontList) : explicitFonts === void 0 && this.loadedEmbeddedFontList ? serializeEmbeddedFontList(this.loadedEmbeddedFontList) : generatedList;
62427
- setEmbeddedFontList(this.presentationData, metadata);
62484
+ const preservedMetadata = explicitFontList ?? this.loadedEmbeddedFontList;
62485
+ let metadata = generatedList;
62486
+ let metadataAppliedInPlace = false;
62487
+ if (preservedMetadata?.rawXml && !explicitFontList) {
62488
+ const rawList = preservedMetadata.rawXml;
62489
+ const embeddedFontKey = Object.keys(rawList).find(
62490
+ (key) => key.replace(/^.*:/u, "") === "embeddedFont"
62491
+ ) ?? "p:embeddedFont";
62492
+ const preservedEntries = this.ensureArray(rawList[embeddedFontKey]);
62493
+ rawList[embeddedFontKey] = [...preservedEntries, ...embeddedFontEntries];
62494
+ metadataAppliedInPlace = true;
62495
+ } else if (preservedMetadata) {
62496
+ metadata = serializeEmbeddedFontList(preservedMetadata);
62497
+ const embeddedFontKey = Object.keys(metadata).find(
62498
+ (key) => key.replace(/^.*:/u, "") === "embeddedFont"
62499
+ ) ?? "p:embeddedFont";
62500
+ const preservedEntries = this.ensureArray(metadata[embeddedFontKey]);
62501
+ metadata[embeddedFontKey] = [...preservedEntries, ...embeddedFontEntries];
62502
+ }
62503
+ if (!metadataAppliedInPlace) {
62504
+ setEmbeddedFontList(this.presentationData, metadata);
62505
+ }
62428
62506
  }
62429
62507
  const ctXml = await this.zip.file("[Content_Types].xml")?.async("string");
62430
62508
  if (ctXml) {
@@ -1,7 +1,7 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, MIN_ELEMENT_SIZE, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, contrastingTextColor, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, truncate, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-F3IAKCR3.mjs';
2
- import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, createBackstagePresentation, buildCssGradientFromShapeStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getGroupChildParentFill, revealedSmartArtNodeCount, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, resolveGroupChildFill, shouldUseSvgWarp, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, 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, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, withFrameSlides, withSlidesPerPage, 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-HBJEBWBB.mjs';
1
+ import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, MIN_ELEMENT_SIZE, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, contrastingTextColor, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, truncate, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-JVIT6JD7.mjs';
2
+ import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, createBackstagePresentation, buildCssGradientFromShapeStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getGroupChildParentFill, revealedSmartArtNodeCount, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, resolveGroupChildFill, shouldUseSvgWarp, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, 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, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, withFrameSlides, withSlidesPerPage, 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-PWNYNDVP.mjs';
3
3
  import { LOCALE_CATALOG, translationsEn } from './chunk-2X72MOPZ.mjs';
4
- import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-QKRGKIBL.mjs';
4
+ import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-ZKWWCC2U.mjs';
5
5
  import React18, { createContext, useMemo, useState, useCallback, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useDeferredValue } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { useTranslation } from 'react-i18next';
@@ -1335,7 +1335,7 @@ function AccountPage() {
1335
1335
  return void 0;
1336
1336
  });
1337
1337
  };
1338
- const version = "2.0.33" ;
1338
+ const version = "2.0.35" ;
1339
1339
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1340
1340
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1341
1341
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -3853,7 +3853,7 @@ function FailedToLoad() {
3853
3853
  var LazyModel3DScene = React18.lazy(
3854
3854
  async () => {
3855
3855
  try {
3856
- return await import('./Model3DScene-ID7GWMBL.mjs');
3856
+ return await import('./Model3DScene-2GPBXNZQ.mjs');
3857
3857
  } catch {
3858
3858
  return { default: FailedToLoad };
3859
3859
  }
@@ -31701,6 +31701,31 @@ function readUtf16LE2(data, offset, byteLength) {
31701
31701
  }
31702
31702
  return chars.join("");
31703
31703
  }
31704
+ function readUint16BE(data, offset) {
31705
+ return (data[offset] ?? 0) << 8 | (data[offset + 1] ?? 0);
31706
+ }
31707
+ function readUint32BE(data, offset) {
31708
+ return ((data[offset] ?? 0) << 24 >>> 0 | (data[offset + 1] ?? 0) << 16 | (data[offset + 2] ?? 0) << 8 | (data[offset + 3] ?? 0)) >>> 0;
31709
+ }
31710
+ function findSfntTable(data, tag) {
31711
+ if (data.length < 12) return null;
31712
+ const numTables = readUint16BE(data, 4);
31713
+ for (let i = 0; i < numTables; i++) {
31714
+ const record = 12 + i * 16;
31715
+ if (record + 16 > data.length) break;
31716
+ const recordTag = String.fromCharCode(
31717
+ data[record],
31718
+ data[record + 1],
31719
+ data[record + 2],
31720
+ data[record + 3]
31721
+ );
31722
+ if (recordTag !== tag) continue;
31723
+ const offset = readUint32BE(data, record + 8);
31724
+ const length = readUint32BE(data, record + 12);
31725
+ return offset + length <= data.length ? { offset, length } : null;
31726
+ }
31727
+ return null;
31728
+ }
31704
31729
  function isEotFormat(data) {
31705
31730
  if (data.length < 36) {
31706
31731
  return false;
@@ -31723,27 +31748,52 @@ function createEotFromSfnt(fontData, options) {
31723
31748
  encodeName2(""),
31724
31749
  encodeName2(options.fullName ?? options.familyName)
31725
31750
  ];
31726
- const headerSize = 80 + names.reduce((sum, name) => sum + 4 + name.length, 0);
31751
+ const headerSize = 82 + names.reduce((sum, name) => sum + 2 + name.length, 0) + 2;
31727
31752
  const result = new Uint8Array(headerSize + fontData.length);
31728
31753
  const view = new DataView(result.buffer);
31754
+ const os2 = findSfntTable(fontData, "OS/2");
31755
+ const head = findSfntTable(fontData, "head");
31729
31756
  view.setUint32(0, result.length, true);
31730
31757
  view.setUint32(4, fontData.length, true);
31731
31758
  view.setUint32(8, 131073, true);
31732
31759
  view.setUint32(12, 0, true);
31760
+ if (os2 && os2.length >= 42) {
31761
+ result.set(fontData.slice(os2.offset + 32, os2.offset + 42), 16);
31762
+ }
31733
31763
  result[26] = 1;
31734
31764
  result[27] = options.italic ? 1 : 0;
31735
- view.setUint32(28, options.weight ?? 400, true);
31736
- view.setUint16(32, 0, true);
31765
+ view.setUint32(
31766
+ 28,
31767
+ options.weight ?? (os2 && os2.length >= 6 ? readUint16BE(fontData, os2.offset + 4) : 400),
31768
+ true
31769
+ );
31770
+ view.setUint16(
31771
+ 32,
31772
+ os2 && os2.length >= 10 ? readUint16BE(fontData, os2.offset + 8) : 0,
31773
+ true
31774
+ );
31737
31775
  view.setUint16(34, EOT_MAGIC, true);
31738
- let offset = 80;
31776
+ if (os2 && os2.length >= 58) {
31777
+ for (let i = 0; i < 4; i++) {
31778
+ view.setUint32(36 + i * 4, readUint32BE(fontData, os2.offset + 42 + i * 4), true);
31779
+ }
31780
+ }
31781
+ if (os2 && os2.length >= 86) {
31782
+ view.setUint32(52, readUint32BE(fontData, os2.offset + 78), true);
31783
+ view.setUint32(56, readUint32BE(fontData, os2.offset + 82), true);
31784
+ }
31785
+ if (head && head.length >= 12) {
31786
+ view.setUint32(60, readUint32BE(fontData, head.offset + 8), true);
31787
+ }
31788
+ let offset = 82;
31739
31789
  for (const name of names) {
31740
- view.setUint16(offset, 0, true);
31741
- offset += 2;
31742
- view.setUint16(offset, name.length, true);
31790
+ view.setUint16(offset, Math.max(0, name.length - 2), true);
31743
31791
  offset += 2;
31744
31792
  result.set(name, offset);
31745
31793
  offset += name.length;
31746
31794
  }
31795
+ view.setUint16(offset, 0, true);
31796
+ offset += 2;
31747
31797
  result.set(fontData, offset);
31748
31798
  return result;
31749
31799
  }
@@ -31779,8 +31829,10 @@ function parseEotHeader(data) {
31779
31829
  const styleName = readNameString();
31780
31830
  const versionName = readNameString();
31781
31831
  const fullName = readNameString();
31782
- if (version >= 131074) {
31832
+ if (version >= 131073 && offset + 4 <= data.length && readUint16LE(data, offset) === 0 && readUint16LE(data, offset + 2) === 0) {
31783
31833
  readNameString();
31834
+ }
31835
+ if (version >= 131074) {
31784
31836
  offset += 8;
31785
31837
  if (offset + 4 <= data.length) {
31786
31838
  const signatureSize = readUint16LE(data, offset + 2);
@@ -62314,8 +62366,14 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime7 extends PptxHandlerRuntime
62314
62366
  }
62315
62367
  return;
62316
62368
  }
62369
+ const newFontsWithData = fontsWithData.filter(
62370
+ (font) => !(font.originalRId && font.partPath)
62371
+ );
62372
+ if (newFontsWithData.length === 0) {
62373
+ return;
62374
+ }
62317
62375
  const fontsByName = /* @__PURE__ */ new Map();
62318
- for (const font of fontsWithData) {
62376
+ for (const font of newFontsWithData) {
62319
62377
  const existing = fontsByName.get(font.name) ?? [];
62320
62378
  existing.push(font);
62321
62379
  fontsByName.set(font.name, existing);
@@ -62417,8 +62475,28 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime7 extends PptxHandlerRuntime
62417
62475
  const generatedList = {
62418
62476
  "p:embeddedFont": embeddedFontEntries.length === 1 ? embeddedFontEntries[0] : embeddedFontEntries
62419
62477
  };
62420
- const metadata = explicitFontList ? serializeEmbeddedFontList(explicitFontList) : explicitFonts === void 0 && this.loadedEmbeddedFontList ? serializeEmbeddedFontList(this.loadedEmbeddedFontList) : generatedList;
62421
- setEmbeddedFontList(this.presentationData, metadata);
62478
+ const preservedMetadata = explicitFontList ?? this.loadedEmbeddedFontList;
62479
+ let metadata = generatedList;
62480
+ let metadataAppliedInPlace = false;
62481
+ if (preservedMetadata?.rawXml && !explicitFontList) {
62482
+ const rawList = preservedMetadata.rawXml;
62483
+ const embeddedFontKey = Object.keys(rawList).find(
62484
+ (key) => key.replace(/^.*:/u, "") === "embeddedFont"
62485
+ ) ?? "p:embeddedFont";
62486
+ const preservedEntries = this.ensureArray(rawList[embeddedFontKey]);
62487
+ rawList[embeddedFontKey] = [...preservedEntries, ...embeddedFontEntries];
62488
+ metadataAppliedInPlace = true;
62489
+ } else if (preservedMetadata) {
62490
+ metadata = serializeEmbeddedFontList(preservedMetadata);
62491
+ const embeddedFontKey = Object.keys(metadata).find(
62492
+ (key) => key.replace(/^.*:/u, "") === "embeddedFont"
62493
+ ) ?? "p:embeddedFont";
62494
+ const preservedEntries = this.ensureArray(metadata[embeddedFontKey]);
62495
+ metadata[embeddedFontKey] = [...preservedEntries, ...embeddedFontEntries];
62496
+ }
62497
+ if (!metadataAppliedInPlace) {
62498
+ setEmbeddedFontList(this.presentationData, metadata);
62499
+ }
62422
62500
  }
62423
62501
  const ctXml = await this.zip.file("[Content_Types].xml")?.async("string");
62424
62502
  if (ctXml) {