ooxml-ui 1.30.0 → 1.32.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 (185) hide show
  1. package/README.md +10 -0
  2. package/custom-elements.json +4 -0
  3. package/dist/building-block-styles.d.ts +0 -1
  4. package/dist/chart/format-pane-3d.d.ts +0 -1
  5. package/dist/chart/format-pane-analysis.d.ts +0 -1
  6. package/dist/chart/format-pane-fill-line.d.ts +0 -1
  7. package/dist/chart/format-pane-text.d.ts +0 -1
  8. package/dist/{chunk-SBBFNAKM.js → chunk-32P252JS.js} +3 -3
  9. package/dist/{chunk-E4H3Y7M4.js → chunk-6TS7ASDJ.js} +1 -1
  10. package/dist/{chunk-BKHWBIXP.js → chunk-CALEXPBD.js} +132 -69
  11. package/dist/{chunk-SXVOXSTE.js → chunk-CDC5MAZS.js} +1 -1
  12. package/dist/chunk-DA57FPSN.js +54 -0
  13. package/dist/{chunk-HNREZW5U.js → chunk-KYXSQFDB.js} +484 -1
  14. package/dist/{chunk-IE6HKH4X.js → chunk-OKEFAQJT.js} +1 -1
  15. package/dist/controls.d.ts +6 -0
  16. package/dist/controls.d.ts.map +1 -1
  17. package/dist/controls.js +1 -1
  18. package/dist/dialog/dialog-session.d.ts +19 -0
  19. package/dist/dialog/dialog-session.d.ts.map +1 -0
  20. package/dist/docx/smartart-node-view.d.ts +1 -1
  21. package/dist/docx.js +36 -20
  22. package/dist/fonts/availability.d.ts +10 -0
  23. package/dist/fonts/availability.d.ts.map +1 -0
  24. package/dist/fonts/catalog.d.ts +63 -0
  25. package/dist/fonts/catalog.d.ts.map +1 -0
  26. package/dist/fonts/custom-fonts.d.ts +75 -0
  27. package/dist/fonts/custom-fonts.d.ts.map +1 -0
  28. package/dist/form/color-input/live-color-input.d.ts +93 -0
  29. package/dist/form/color-input/live-color-input.d.ts.map +1 -0
  30. package/dist/form/color-input/live-color-leaves.d.ts +34 -0
  31. package/dist/form/color-input/live-color-leaves.d.ts.map +1 -0
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +6 -5
  34. package/dist/picture-effects.d.ts +6 -0
  35. package/dist/pptx/ai/host.cjs +41 -37
  36. package/dist/pptx/ai/host.d.ts +2 -0
  37. package/dist/pptx/ai/host.d.ts.map +1 -1
  38. package/dist/pptx/ai/host.mjs +2 -2
  39. package/dist/pptx/ai/index.cjs +47 -43
  40. package/dist/pptx/ai/index.d.ts +2 -0
  41. package/dist/pptx/ai/index.d.ts.map +1 -1
  42. package/dist/pptx/ai/index.mjs +3 -3
  43. package/dist/pptx/{chart-3d-view-scene-ZUGA3DKM.mjs → chart-3d-view-scene-HNL4NWJT.mjs} +2 -2
  44. package/dist/pptx/{chart-3d-view-scene-N7UQOYFI.cjs → chart-3d-view-scene-OPVBTZL5.cjs} +38 -38
  45. package/dist/pptx/chunk-3RIGT7H6.cjs +82 -0
  46. package/dist/pptx/{chunk-D7UYDESZ.mjs → chunk-7DT3UJQB.mjs} +3 -3
  47. package/dist/pptx/{chunk-KY75GY5O.mjs → chunk-7FXQHSPE.mjs} +6 -24
  48. package/dist/pptx/{chunk-45OYSCLD.mjs → chunk-CH4Z6H6C.mjs} +581 -230
  49. package/dist/pptx/{chunk-6KLPQQYP.cjs → chunk-D4LJJ7Z7.cjs} +77 -327
  50. package/dist/pptx/{chunk-MNSWEXYO.mjs → chunk-DACFW5LO.mjs} +26 -3
  51. package/dist/pptx/{chunk-IOOI63TH.cjs → chunk-FFWLDANS.cjs} +6 -24
  52. package/dist/pptx/{chunk-SMMEIEEJ.mjs → chunk-KGDMMWIY.mjs} +1 -1
  53. package/dist/pptx/{chunk-LXEMMWVI.mjs → chunk-LCCRLB7Q.mjs} +1 -1
  54. package/dist/pptx/{chunk-BMMTD6PB.cjs → chunk-M55PNMFQ.cjs} +2 -2
  55. package/dist/pptx/chunk-PM2SOLK3.mjs +79 -0
  56. package/dist/pptx/{chunk-QX6XPYVA.mjs → chunk-PTIGQSTY.mjs} +31 -14
  57. package/dist/pptx/{chunk-34LEUH5R.mjs → chunk-RZVEPTLN.mjs} +63 -316
  58. package/dist/pptx/{chunk-CQYWHRZE.cjs → chunk-S3L5NNCK.cjs} +1 -1
  59. package/dist/pptx/{chunk-H5IPNKX6.cjs → chunk-S5I64Y55.cjs} +12 -12
  60. package/dist/pptx/{chunk-WQA3KZRB.mjs → chunk-SPOECCPV.mjs} +1 -1
  61. package/dist/pptx/{chunk-YMWEU56T.cjs → chunk-TDIJHLS5.cjs} +927 -543
  62. package/dist/pptx/{chunk-QWF3PGUX.cjs → chunk-VEFFYJGG.cjs} +26 -2
  63. package/dist/pptx/{chunk-BSGCZ4JZ.cjs → chunk-WBGU7BWD.cjs} +31 -14
  64. package/dist/pptx/{chunk-2CBK46AW.cjs → chunk-ZS5EVODY.cjs} +48 -48
  65. package/dist/pptx/dom/index.cjs +431 -430
  66. package/dist/pptx/dom/index.mjs +15 -14
  67. package/dist/pptx/export/html2canvas-clone.cjs +6 -6
  68. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  69. package/dist/pptx/index.cjs +3423 -3355
  70. package/dist/pptx/index.mjs +8 -8
  71. package/dist/pptx/render/bullet-toggle-selection.d.ts +8 -4
  72. package/dist/pptx/render/bullet-toggle-selection.d.ts.map +1 -1
  73. package/dist/pptx/render/chart-box-whisker.d.ts.map +1 -1
  74. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  75. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  76. package/dist/pptx/render/chart-data-table-metrics.d.ts +1 -1
  77. package/dist/pptx/render/chart-data-table-metrics.d.ts.map +1 -1
  78. package/dist/pptx/render/chart-data-table-render.d.ts.map +1 -1
  79. package/dist/pptx/render/chart-date-axis.d.ts +1 -1
  80. package/dist/pptx/render/chart-date-axis.d.ts.map +1 -1
  81. package/dist/pptx/render/chart-date-format.d.ts +1 -30
  82. package/dist/pptx/render/chart-date-format.d.ts.map +1 -1
  83. package/dist/pptx/render/chart-funnel-sunburst.d.ts +1 -1
  84. package/dist/pptx/render/chart-funnel-sunburst.d.ts.map +1 -1
  85. package/dist/pptx/render/chart-line-path.d.ts +2 -26
  86. package/dist/pptx/render/chart-line-path.d.ts.map +1 -1
  87. package/dist/pptx/render/chart-manual-layout.d.ts +1 -1
  88. package/dist/pptx/render/chart-manual-layout.d.ts.map +1 -1
  89. package/dist/pptx/render/chart-overlays.cjs +7 -7
  90. package/dist/pptx/render/chart-overlays.mjs +1 -1
  91. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  92. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  93. package/dist/pptx/render/chart-view-model-layout.d.ts.map +1 -1
  94. package/dist/pptx/render/chart-view-model.cjs +44 -44
  95. package/dist/pptx/render/chart-view-model.mjs +1 -1
  96. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  97. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  98. package/dist/pptx/render/controller/ai-assistant.d.ts +73 -0
  99. package/dist/pptx/render/controller/ai-assistant.d.ts.map +1 -0
  100. package/dist/pptx/render/controller/autosave-controller.d.ts.map +1 -1
  101. package/dist/pptx/render/controller/collaboration-history.d.ts +25 -0
  102. package/dist/pptx/render/controller/collaboration-history.d.ts.map +1 -1
  103. package/dist/pptx/render/controller/history-controller.d.ts +9 -0
  104. package/dist/pptx/render/controller/history-controller.d.ts.map +1 -1
  105. package/dist/pptx/render/controller/index.d.ts +4 -0
  106. package/dist/pptx/render/controller/index.d.ts.map +1 -1
  107. package/dist/pptx/render/custom-fonts.cjs +9 -5
  108. package/dist/pptx/render/custom-fonts.d.ts +1 -64
  109. package/dist/pptx/render/custom-fonts.d.ts.map +1 -1
  110. package/dist/pptx/render/custom-fonts.mjs +1 -1
  111. package/dist/pptx/render/editor-geometry.d.ts +3 -15
  112. package/dist/pptx/render/editor-geometry.d.ts.map +1 -1
  113. package/dist/pptx/render/font-availability.d.ts +1 -9
  114. package/dist/pptx/render/font-availability.d.ts.map +1 -1
  115. package/dist/pptx/render/font-catalog.cjs +3 -3
  116. package/dist/pptx/render/font-catalog.d.ts +3 -61
  117. package/dist/pptx/render/font-catalog.d.ts.map +1 -1
  118. package/dist/pptx/render/font-catalog.mjs +1 -1
  119. package/dist/pptx/render/hyperlink-security.cjs +8 -8
  120. package/dist/pptx/render/hyperlink-security.d.ts +1 -27
  121. package/dist/pptx/render/hyperlink-security.d.ts.map +1 -1
  122. package/dist/pptx/render/hyperlink-security.mjs +1 -1
  123. package/dist/pptx/render/image-effects.d.ts.map +1 -1
  124. package/dist/pptx/render/index.d.ts +2 -0
  125. package/dist/pptx/render/index.d.ts.map +1 -1
  126. package/dist/pptx/render/inline-list-style.d.ts +2 -1
  127. package/dist/pptx/render/inline-list-style.d.ts.map +1 -1
  128. package/dist/pptx/render/live-color-input.d.ts +2 -92
  129. package/dist/pptx/render/live-color-input.d.ts.map +1 -1
  130. package/dist/pptx/render/live-color-leaves.d.ts +2 -33
  131. package/dist/pptx/render/live-color-leaves.d.ts.map +1 -1
  132. package/dist/pptx/render/options/autocorrect.d.ts +15 -2
  133. package/dist/pptx/render/options/autocorrect.d.ts.map +1 -1
  134. package/dist/pptx/render/picture-crop/crop-geometry.d.ts +2 -20
  135. package/dist/pptx/render/picture-crop/crop-geometry.d.ts.map +1 -1
  136. package/dist/pptx/render/slides-pane-model.d.ts +79 -0
  137. package/dist/pptx/render/slides-pane-model.d.ts.map +1 -0
  138. package/dist/pptx/render/table-cell-edit.d.ts +1 -1
  139. package/dist/pptx/render/table-cell-edit.d.ts.map +1 -1
  140. package/dist/pptx/render/text-list-style-update.d.ts +23 -2
  141. package/dist/pptx/render/text-list-style-update.d.ts.map +1 -1
  142. package/dist/pptx/render/text-script-fonts.d.ts +4 -72
  143. package/dist/pptx/render/text-script-fonts.d.ts.map +1 -1
  144. package/dist/pptx/render/text-warp-envelope-block.d.ts +10 -1
  145. package/dist/pptx/render/text-warp-envelope-block.d.ts.map +1 -1
  146. package/dist/pptx/render/text-warp-envelope-curves.d.ts +8 -0
  147. package/dist/pptx/render/text-warp-envelope-curves.d.ts.map +1 -1
  148. package/dist/pptx/render/text-warp-envelope-layout.d.ts +9 -3
  149. package/dist/pptx/render/text-warp-envelope-layout.d.ts.map +1 -1
  150. package/dist/pptx/render/text-warp-envelope-map.d.ts.map +1 -1
  151. package/dist/pptx/render/text-warp-envelope-wrap.d.ts +29 -0
  152. package/dist/pptx/render/text-warp-envelope-wrap.d.ts.map +1 -0
  153. package/dist/pptx/render/text-warp-preset-definitions.d.ts +13 -0
  154. package/dist/pptx/render/text-warp-preset-definitions.d.ts.map +1 -1
  155. package/dist/pptx/render/text-warp-preset-sampler.d.ts +12 -0
  156. package/dist/pptx/render/text-warp-preset-sampler.d.ts.map +1 -1
  157. package/dist/pptx/render/text-warp.d.ts +3 -2
  158. package/dist/pptx/render/text-warp.d.ts.map +1 -1
  159. package/dist/pptx/render/viewer-props-manifest.d.ts.map +1 -1
  160. package/dist/pptx/{smartart-insert-preview-SKFD7NCQ.mjs → smartart-insert-preview-RQUFRLSV.mjs} +9 -9
  161. package/dist/pptx/{smartart-insert-preview-7OL7VWEK.cjs → smartart-insert-preview-YKNB37GE.cjs} +10 -10
  162. package/dist/recovery-scheduler.d.ts +18 -0
  163. package/dist/recovery-scheduler.d.ts.map +1 -0
  164. package/dist/smartart/smartart-geometry.d.ts +1 -3
  165. package/dist/smartart/smartart-paint.d.ts +2 -1
  166. package/dist/smartart/smartart-picture.d.ts +7 -0
  167. package/dist/smartart/smartart-svg.d.ts +2 -1
  168. package/dist/smartart/smartart.d.ts +6 -0
  169. package/dist/smartart.js +1 -1
  170. package/dist/teams.js +2 -2
  171. package/dist/theme-bridge.d.ts +0 -1
  172. package/dist/theme.d.ts +0 -1
  173. package/dist/visio/controller.d.ts +2 -2
  174. package/dist/visio/viewer-autorecover.d.ts +0 -1
  175. package/dist/visio/viewer-commands.d.ts +1 -1
  176. package/dist/visio/viewer-guides.d.ts +2 -2
  177. package/dist/visio/viewer-pointer-gestures.d.ts +1 -1
  178. package/dist/visio/viewer-resize-frame.d.ts +2 -2
  179. package/dist/visio/viewer-resize-handles.d.ts +1 -1
  180. package/dist/visio.js +109 -62
  181. package/dist/xlsx/grid/smartart.d.ts +1 -1
  182. package/dist/xlsx.js +91 -62
  183. package/package.json +2 -2
  184. package/dist/pptx/chunk-WM5SW737.mjs +0 -27
  185. package/dist/pptx/chunk-Y6DO6SVT.cjs +0 -29
package/dist/visio.js CHANGED
@@ -1,15 +1,16 @@
1
1
  import { trackPointerPan, ownsCaptureLoss } from './chunk-GSXOZCAN.js';
2
- import { syncRibbonAddIns, createHostBackstagePages, syncHostMenuChildren, tidyMenuSeparators } from './chunk-SXVOXSTE.js';
3
- export { RIBBON_ADD_IN_EVENT } from './chunk-SXVOXSTE.js';
2
+ import { createRecoveryScheduler } from './chunk-DA57FPSN.js';
3
+ import { syncRibbonAddIns, createHostBackstagePages, syncHostMenuChildren, tidyMenuSeparators } from './chunk-CDC5MAZS.js';
4
+ export { RIBBON_ADD_IN_EVENT } from './chunk-CDC5MAZS.js';
4
5
  import { themeBridge, installOfficeUiThemeFor, prepareOfficeUiBlock } from './chunk-T5ARELU2.js';
5
- import { personalizeSection, unavailableCategory, userInterfaceSection, attachKeyTips, registerControls, readOfficeProfile, sanitizeOfficeProfile, writeOfficeProfile, attachRibbonGroupOverflow, defineChartPicker, defineChartDataSheet, defineChartFormatPane, commentInitials } from './chunk-HNREZW5U.js';
6
+ import { personalizeSection, unavailableCategory, userInterfaceSection, attachKeyTips, registerControls, readOfficeProfile, sanitizeOfficeProfile, writeOfficeProfile, attachRibbonGroupOverflow, defineChartPicker, defineChartDataSheet, defineChartFormatPane, commentInitials } from './chunk-KYXSQFDB.js';
6
7
  import { getIcon, registerIcon } from './chunk-M6GF5ED2.js';
7
8
  import './chunk-4OBMFPGF.js';
8
9
  import { definePresence } from './chunk-YZH2QS7J.js';
9
10
  import { parseSvgPreview } from './chunk-FN7IF6M6.js';
10
11
  import './chunk-QLHCGV4C.js';
11
12
  import './chunk-XL77FR4B.js';
12
- import { VISIO_CAPABILITY_COMMANDS, VISIO_TEXT_LANGUAGES, VISIO_BULLET_STYLES, FOREIGN_VECTOR_SCENE_LIMITS, EMPTY_TEXT_SEARCH, EMPTY_SELECTION, EMPTY_EDIT_STATE, assertViewableDocument, snapshotSelection, selectionKey, indexDocumentText, searchDocumentText, sameSelection, validateSearchQuery, MAX_INPUT_BYTES, DocumentHistory, snapshotEdits, visioWithContainerMembers, visioSelectionIsOnPage, visioDuplicateCommand, visioGroupCommand, visioUngroupCommand, visioContainerCommand, visioCalloutCommand, visioPasteCommand, visioTextOccurrenceSelection, ForeignVectorBudget, VISIO_IDENTITY_TRANSFORM, hasVisibleShapeContent, composeVisioTransform, VISIO_CAPABILITY_BACKSTAGE_PAGES, compatibilityNotes, compatibilityText, visioGradientInstances, visioRenderedGradientStopCount, inspectForeignVectorResource, copySnapshotScene, editErrorMessage, eventKeys, isEditCancellation, propertyKeys, VISIO_TEXT_REPLACE_LIMITS, visioTextReplaceOccurrences, visioTextReplacePlan, visioTextReplaceCommands, visioClipboardShape, TEXT_SEARCH_LIMITS, visioSizePositionCommand, visioSizePositionState, visioPageInsertCommand, visioQuarterTurnCommand, visioRotationShape, VISIO_INITIAL_PRESENCE, sanitizeVisioPresence, textSearchStatus, visioSvgStrokeStyle, visioLineDashLengths, visioStencilDropCommand, visioMovementShape, visioMoveCommands, visioMoveTargets, visioMarqueeBox, visioPageDragDelta, visioTextShape, visioTextDraftEdit, isVisioPathTool, visioPathDrawPlan, visioDrawPlan, visioDrawBounds, visioDrawIsLargeEnough, visioConnectorCreationCommand, visioResizeShape, visioResizeDrag, visioConnectorRouteOf, visioPageEditToDrawing, visioNudgeCommands, VISIO_DIAGRAM_RULE_SETS, visioArrangeCommands, visioChangeMasterTargets, visioChangeMasterCommand, visioChangeShapeRefusal, visioChangeShapeCommand, visioChangeCaseShape, visioChangeCaseCommand, visioTextBlockShape, visioTextBlockFrame, visioTextBlockEdit, visioOrderingShape, visioFormatTargetShape, visioFormattingShape, visioTextFormattingState, visioTextIndentCommand, visioTextFontStepCommand, visioFontFamilies, visioChartObjectInsertCommand, visioPictureInsertCommand, normalizeVisioHyperlinkAddress, visioFitToDrawingEdits, VISIO_PAPER_SIZES, visioPageSizePresetEdits, visioOrientationEdits, visioPageDecorationState, visioNewPageId, visioMatchingPaperSize, visioPageBreaks, visioRemoveDataGraphicEdits, visioDataGraphicFields, visioDataGraphicEdits, visioShapeDataRow, VISIO_DATA_GRAPHIC_FILL_ROW, visioColorRules, visioLegendEdits, visioTextDialogValues, visioTextDialogPatch, visioFormatPainterSnapshot, visioFormatPainterEdits, VISIO_FORMAT_PAINTER_LIMITS, visioConnectableShape, visioAddConnectionPointCommand, visioWithCalloutLeaders, visioWithDataGraphics, visioFillPatternTransform, visioRenderedGradientStops, visioStrokeGradient, visioMasterDropRefusal, visioMasterDropSize, visioFileMasterDropCommand, visioMasterDropCommand, visioDrawingPoint, visioMovePreviewTransform, visioMarqueeSelection, visioPathPreview, visioNearestConnectionPoint, VISIO_RESIZE_HANDLES, visioRotationPreviewTransform, visioStraightLineHandles, visioConnectorEndHandles, VISIO_LAYOUT_STYLES, visioShapeFormattingState, visioGlowKey, visioShapeEffectValues, visioReflectionKey, visioFollowTarget, visioPaperSize, visioKeepAutoSize, VISIO_RULER_DENSITY_CHOICES, VISIO_GRID_DENSITY_CHOICES, visioGridSteps, visioRulerGridValues, visioRulerDensityFactor, visioRulerGridEdits, checkVisioDiagram, visioShapeReport, visioShapeReportTable, visioShapeReportCsv, visioShapeReportText, visioSubprocessCommand, visioShapeDataText, VISIO_LAYOUT_LABELS, visioAutoAlignCommands, visioReLayoutCommands, visioLayerAssignState, visioNewLayerNames, visioLayerAssignCommands, VISIO_SELECT_TYPES, VISIO_SELECT_TYPE_LABELS, visioPageMasters, visioSelectByType, visioPasteTextCommand, visioSnapMoveDelta, visioPageGuides, visioAutoConnectShape, visioAutoConnectArrows, visioAutoConnectNeighbor, visioAutoConnectPlan, visioShapePageBox, VISIO_FIELD_CATEGORIES, visioTextAppendEdit, visioTextSource, visioTextBlockMatrix, VISIO_TEXT_BLOCK_HANDLES, visioShapeLocalPoint, visioTextBlockDrag, visioShapeFrame, visioMasterPreviewBox, visioConnectorMovePreviews, visioConnectorPreviewPath, visioGlueableShape, visioDataGraphicMarker, visioParseRange, visioDataTable, visioWorkbookGrid, visioGuideCreateCommand, visioGuideMoveCommand } from 'ooxml-core/visio/ui';
13
+ import { VISIO_CAPABILITY_COMMANDS, VISIO_TEXT_LANGUAGES, VISIO_BULLET_STYLES, FOREIGN_VECTOR_SCENE_LIMITS, EMPTY_TEXT_SEARCH, EMPTY_SELECTION, EMPTY_EDIT_STATE, assertViewableDocument, snapshotSelection, selectionKey, indexDocumentText, searchDocumentText, sameSelection, validateSearchQuery, MAX_INPUT_BYTES, DocumentHistory, snapshotEdits, visioWithContainerMembers, snapshotVisioGeometryExpectation, visioSelectionIsOnPage, assertVisioGeometryExpectation, visioDuplicateCommand, visioGroupCommand, visioUngroupCommand, visioContainerCommand, visioCalloutCommand, visioPasteCommand, visioTextOccurrenceSelection, ForeignVectorBudget, VISIO_IDENTITY_TRANSFORM, hasVisibleShapeContent, composeVisioTransform, VISIO_CAPABILITY_BACKSTAGE_PAGES, compatibilityNotes, compatibilityText, visioGradientInstances, visioRenderedGradientStopCount, inspectForeignVectorResource, copySnapshotScene, editErrorMessage, eventKeys, isEditCancellation, propertyKeys, VISIO_TEXT_REPLACE_LIMITS, visioTextReplaceOccurrences, visioTextReplacePlan, visioTextReplaceCommands, visioClipboardShape, TEXT_SEARCH_LIMITS, visioSizePositionCommand, visioSizePositionState, visioPageInsertCommand, visioQuarterTurnCommand, visioRotationShape, VISIO_INITIAL_PRESENCE, sanitizeVisioPresence, textSearchStatus, visioSvgStrokeStyle, visioLineDashLengths, visioStencilDropCommand, visioMovementShape, visioMoveCommands, visioMoveTargets, visioMarqueeBox, visioPageDragDelta, visioTextShape, visioTextDraftEdit, isVisioPathTool, visioPathDrawPlan, visioDrawPlan, visioDrawBounds, visioDrawIsLargeEnough, visioConnectorCreationCommand, visioResizeSelectionFrame, visioResizeSelectionDrag, visioConnectorRouteOf, visioPageEditToDrawing, visioNudgeCommands, VISIO_DIAGRAM_RULE_SETS, visioArrangeCommands, visioChangeMasterTargets, visioChangeMasterCommand, visioChangeShapeRefusal, visioChangeShapeCommand, visioChangeCaseShape, visioChangeCaseCommand, visioTextBlockShape, visioTextBlockFrame, visioTextBlockEdit, visioOrderingShape, visioFormatTargetShape, visioFormattingShape, visioTextFormattingState, visioTextIndentCommand, visioTextFontStepCommand, visioFontFamilies, visioChartObjectInsertCommand, visioPictureInsertCommand, normalizeVisioHyperlinkAddress, visioFitToDrawingEdits, VISIO_PAPER_SIZES, visioPageSizePresetEdits, visioOrientationEdits, visioPageDecorationState, visioNewPageId, visioMatchingPaperSize, visioPageBreaks, visioRemoveDataGraphicEdits, visioDataGraphicFields, visioDataGraphicEdits, visioShapeDataRow, VISIO_DATA_GRAPHIC_FILL_ROW, visioColorRules, visioLegendEdits, visioTextDialogValues, visioTextDialogPatch, visioFormatPainterSnapshot, visioFormatPainterEdits, VISIO_FORMAT_PAINTER_LIMITS, visioConnectableShape, visioAddConnectionPointCommand, visioWithCalloutLeaders, visioWithDataGraphics, visioFillPatternTransform, visioRenderedGradientStops, visioStrokeGradient, visioMasterDropRefusal, visioMasterDropSize, visioFileMasterDropCommand, visioMasterDropCommand, visioDrawingPoint, visioMovePreviewTransform, visioMarqueeSelection, visioPathPreview, visioNearestConnectionPoint, VISIO_RESIZE_HANDLES, visioRotationPreviewTransform, visioStraightLineHandles, visioConnectorEndHandles, VISIO_LAYOUT_STYLES, visioShapeFormattingState, visioGlowKey, visioShapeEffectValues, visioReflectionKey, visioFollowTarget, visioPaperSize, visioKeepAutoSize, VISIO_RULER_DENSITY_CHOICES, VISIO_GRID_DENSITY_CHOICES, visioGridSteps, visioRulerGridValues, visioRulerDensityFactor, visioRulerGridEdits, checkVisioDiagram, visioShapeReport, visioShapeReportTable, visioShapeReportCsv, visioShapeReportText, visioSubprocessCommand, visioShapeDataText, VISIO_LAYOUT_LABELS, visioAutoAlignCommands, visioReLayoutCommands, visioLayerAssignState, visioNewLayerNames, visioLayerAssignCommands, VISIO_SELECT_TYPES, VISIO_SELECT_TYPE_LABELS, visioPageMasters, visioSelectByType, visioPasteTextCommand, visioSnapMoveDelta, visioPageGuides, visioAutoConnectShape, visioAutoConnectArrows, visioAutoConnectNeighbor, visioAutoConnectPlan, visioShapePageBox, VISIO_FIELD_CATEGORIES, visioTextAppendEdit, visioTextSource, visioTextBlockMatrix, VISIO_TEXT_BLOCK_HANDLES, visioShapeLocalPoint, visioTextBlockDrag, visioShapeFrame, visioMasterPreviewBox, visioConnectorMovePreviews, visioConnectorPreviewPath, visioGlueableShape, visioDataGraphicMarker, visioParseRange, visioDataTable, visioWorkbookGrid, visioGuideCreateCommand, visioGuideMoveCommand } from 'ooxml-core/visio/ui';
13
14
  export { TEXT_SEARCH_LIMITS, VISIO_CAPABILITY_IDS, compatibilityNotes, compatibilityText, demoDocument, eventKeys, propertyKeys } from 'ooxml-core/visio/ui';
14
15
  import { VISIO_VISIBILITY_LIMITS, VISIO_BASIC_STENCIL, VISIO_STENCILS, visioOutlineShape, VISIO_SNAP, VISIO_GLUE, VISIO_SHADOW_PRESETS, loadVisio, createVsdx, deserializeVisioClipboard, mergeVisioPages, getVisioPageLayers, resolveVisioPageVisibility, visioLineJumpPaths, VISIO_CLIPBOARD_MAX_CHARS, visioSnapGlue, VISIO_GLOW_TRANSPARENCY, VISIO_METADATA_TEXT_LIMIT, VISIO_PICTURE_MAX_BYTES, inspectVisioRasterImage, visioPageLayout, VISIO_BUILT_IN_THEMES, VISIO_CONNECTOR_ROUTES, visioFilledArrow, layoutVisioFilledArrowLine, visioOpenArrowPath, visioBuiltInStencil, visioBuiltInMaster, isVisioChangeShapeTarget, VISIO_CONTAINER_STYLES, VISIO_CALLOUT_STYLES, visioFallbackQuickStyle, VISIO_GLOW_SIZES, VISIO_SOFT_EDGE_SIZES, VISIO_REFLECTION_PRESETS, encodeBitmapEmf, VISIO_BACKGROUND_STYLES, visioBackgroundShapes, VISIO_BORDER_STYLES, visioBorderShapes, checkVisioAlternativeText, VISIO_SHAPE_DATA_TYPES, visioShapeDataRowName, VISIO_CLIPBOARD_MAGIC, visioThemeVariantColors, visioPageThemeColors, readVisioStencil, VISIO_QUICK_STYLE_COLORS, isVisioBuiltInThemeId, VISIO_SCALE_UNITS } from 'ooxml-core/visio';
15
16
  import { renderChartSvg, readEmbeddedChartSpace, writeEmbeddedChartSpace } from 'ooxml-core/xlsx';
@@ -1015,16 +1016,16 @@ var ViewerController = class {
1015
1016
  return this.#replacement.apply(plan, token);
1016
1017
  }
1017
1018
  /** Gesture batches may only edit the captured current-page selection. */
1018
- async applySelectionEdits(edits) {
1019
+ async applySelectionEdits(edits, expected) {
1019
1020
  const preview5 = this.#previewSink;
1020
1021
  try {
1021
- return await this.#applySelectionEdits(edits, preview5);
1022
+ return await this.#applySelectionEdits(edits, preview5, expected);
1022
1023
  } catch (error) {
1023
1024
  if (!preview5) throw error;
1024
1025
  preview5(void 0);
1025
1026
  }
1026
1027
  }
1027
- async #applySelectionEdits(edits, preview5) {
1028
+ async #applySelectionEdits(edits, preview5, expected) {
1028
1029
  this.#assertAlive();
1029
1030
  const revision = this.#revision;
1030
1031
  const state = this.#state;
@@ -1033,14 +1034,33 @@ var ViewerController = class {
1033
1034
  const ids = state.selectedShapes.map((shape) => shape.id);
1034
1035
  const selected = new Set(page3 ? visioWithContainerMembers(page3, ids) : ids);
1035
1036
  const commands = snapshotEdits(edits);
1037
+ const geometry = expected && snapshotVisioGeometryExpectation(expected);
1036
1038
  if (this.#destroyed || revision !== this.#revision)
1037
1039
  throw new DOMException("The selection edit was superseded or cancelled.", "AbortError");
1038
- if (!pageId || !selected.size || !commands.length || !state.selectedShapes.every((shape) => visioSelectionIsOnPage(shape, pageId)) || commands.some(
1040
+ if (!pageId || !selected.size || !commands.length || !state.selectedShapes.every((shape) => visioSelectionIsOnPage(shape, pageId)) || geometry && (geometry.pageId !== pageId || geometry.members.some((member) => !selected.has(member.id))) || commands.some(
1039
1041
  (command2) => !("shapeId" in command2) || command2.pageId !== pageId || !selected.has(command2.shapeId)
1040
1042
  ))
1041
1043
  throw new Error("Selection edits must target selected shapes on the current page.");
1042
- if (preview5) return this.#preview(commands, preview5);
1043
- return this.#mutate("edit", commands, void 0, void 0, true);
1044
+ if (preview5)
1045
+ return this.#preview(commands, (document2) => {
1046
+ try {
1047
+ if (document2 && geometry) assertVisioGeometryExpectation(document2, geometry);
1048
+ } catch {
1049
+ return preview5(void 0);
1050
+ }
1051
+ preview5(document2);
1052
+ });
1053
+ return this.#mutate(
1054
+ "edit",
1055
+ commands,
1056
+ void 0,
1057
+ void 0,
1058
+ true,
1059
+ void 0,
1060
+ void 0,
1061
+ void 0,
1062
+ geometry
1063
+ );
1044
1064
  }
1045
1065
  /** Capture an internal drawing intent before pointer movement or draft input. */
1046
1066
  captureCreationToken(pageId) {
@@ -1432,7 +1452,7 @@ var ViewerController = class {
1432
1452
  current
1433
1453
  );
1434
1454
  }
1435
- async #mutate(kind, commands, remote, postSelection, strictSelectionIntent = false, creation, replacement, remoteChange) {
1455
+ async #mutate(kind, commands, remote, postSelection, strictSelectionIntent = false, creation, replacement, remoteChange, geometry) {
1436
1456
  this.#assertAlive();
1437
1457
  if (kind !== "remote" && !this.canEdit) throw new Error("The drawing is read-only.");
1438
1458
  const history = this.#history;
@@ -1481,6 +1501,7 @@ var ViewerController = class {
1481
1501
  assertViewableDocument(document2);
1482
1502
  if (document2.format !== "vsdx")
1483
1503
  throw new Error("A VSDX edit or history operation cannot change the source format.");
1504
+ if (geometry) assertVisioGeometryExpectation(document2, geometry);
1484
1505
  if (edited && !edited.changedParts.length) {
1485
1506
  if (replacement)
1486
1507
  this.#requireReplacement({ ...replacement.context, operationGeneration: id }, true);
@@ -5349,7 +5370,7 @@ var ViewerPointerGestures = class {
5349
5370
  }
5350
5371
  const point = pagePoint(drag.svg, drag.page, event, pointOptions2);
5351
5372
  if (point && this.#current(drag)) {
5352
- if (drag.preview) drag.preview.update(this.#delta(drag, point));
5373
+ if (drag.preview) drag.preview.update(this.#delta(drag, point, event));
5353
5374
  const box2 = drag.marquee && visioMarqueeBox(drag.start, point);
5354
5375
  if (box2)
5355
5376
  for (const [name, value] of Object.entries(box2))
@@ -5358,10 +5379,17 @@ var ViewerPointerGestures = class {
5358
5379
  event.preventDefault();
5359
5380
  event.stopImmediatePropagation();
5360
5381
  }
5361
- #delta(drag, point) {
5362
- const delta = visioPageDragDelta(drag.start, point);
5382
+ #delta(drag, point, event) {
5383
+ const delta = visioPageDragDelta(drag.start, point, event.shiftKey);
5384
+ if (!Number.isFinite(delta.x) || !Number.isFinite(delta.y)) return delta;
5385
+ if (event.altKey) {
5386
+ this.options.clearSnap?.();
5387
+ return delta;
5388
+ }
5389
+ const axis = event.shiftKey ? delta.y === 0 ? "x" : "y" : void 0;
5363
5390
  const ids = drag.selection.map((shape) => shape.id);
5364
- return this.options.snap?.(drag.page, ids, delta) ?? delta;
5391
+ const snapped = this.options.snap?.(drag.page, ids, delta, axis) ?? delta;
5392
+ return { x: axis === "y" ? 0 : snapped.x, y: axis === "x" ? 0 : snapped.y };
5365
5393
  }
5366
5394
  #cancel() {
5367
5395
  this.#release()();
@@ -5412,7 +5440,7 @@ var ViewerPointerGestures = class {
5412
5440
  const edits = visioMoveCommands(
5413
5441
  drag.page,
5414
5442
  drag.selection.map((shape) => shape.id),
5415
- this.#delta(drag, point)
5443
+ this.#delta(drag, point, event)
5416
5444
  );
5417
5445
  this.options.clearSnap?.();
5418
5446
  if (!edits?.length || !this.#current(drag)) {
@@ -5431,7 +5459,7 @@ var ViewerPointerGestures = class {
5431
5459
  }
5432
5460
  }
5433
5461
  };
5434
- function createResizeFrame(svg2, page3, shape, scale2) {
5462
+ function createResizeFrame(svg2, page3, frame, scale2, shapeId) {
5435
5463
  const create = (name) => svg2.ownerDocument.createElementNS("http://www.w3.org/2000/svg", name);
5436
5464
  const element = create("g");
5437
5465
  element.dataset.resizeOverlay = "";
@@ -5442,32 +5470,26 @@ function createResizeFrame(svg2, page3, shape, scale2) {
5442
5470
  const handles = VISIO_RESIZE_HANDLES.map((location) => {
5443
5471
  const handle = create("circle");
5444
5472
  handle.dataset.resizeHandle = location.id;
5445
- handle.dataset.resizeShape = shape.id;
5473
+ handle.dataset.resizeShape = shapeId;
5446
5474
  handle.setAttribute("r", String(5 / scale2));
5447
5475
  handle.setAttribute("vector-effect", "non-scaling-stroke");
5448
5476
  handle.setAttribute("aria-label", `Drag ${location.id} resize handle`);
5449
5477
  element.append(handle);
5450
5478
  return { handle, location };
5451
5479
  });
5452
- const update = (frame) => {
5480
+ const update = (frame2) => {
5453
5481
  element.setAttribute(
5454
5482
  "transform",
5455
- `translate(0 ${page3.height}) scale(1 -1) ${matrix(frame.transform)}`
5483
+ `translate(0 ${page3.height}) scale(1 -1) ${matrix(frame2.transform)}`
5456
5484
  );
5457
- rectangle.setAttribute("width", String(frame.width));
5458
- rectangle.setAttribute("height", String(frame.height));
5485
+ rectangle.setAttribute("width", String(frame2.width));
5486
+ rectangle.setAttribute("height", String(frame2.height));
5459
5487
  for (const { handle, location } of handles) {
5460
- handle.setAttribute("cx", String(location.x * frame.width));
5461
- handle.setAttribute("cy", String(location.y * frame.height));
5488
+ handle.setAttribute("cx", String(location.x * frame2.width));
5489
+ handle.setAttribute("cy", String(location.y * frame2.height));
5462
5490
  }
5463
5491
  };
5464
- update({
5465
- width: shape.width,
5466
- height: shape.height,
5467
- transform: shape.transform,
5468
- pinX: shape.rotation.pinX,
5469
- pinY: shape.rotation.pinY
5470
- });
5492
+ update(frame);
5471
5493
  svg2.append(element);
5472
5494
  return { element, rectangle, update, dispose: () => element.remove() };
5473
5495
  }
@@ -5497,18 +5519,25 @@ var ViewerResizeHandles = class {
5497
5519
  this.#frame?.dispose();
5498
5520
  this.#frame = void 0;
5499
5521
  const page3 = state.document?.pages[state.pageIndex], selection2 = state.selectedShape;
5500
- if (!page3 || !selection2 || state.selectedShapes.length !== 1 || !visioSelectionIsOnPage(selection2, page3.id) || !canEditDiagram(state) || state.edit.busy || state.loading || !this.options.active())
5522
+ if (!page3 || !selection2 || !state.selectedShapes.every((item) => visioSelectionIsOnPage(item, page3.id)) || !canEditDiagram(state) || state.edit.busy || state.loading || !this.options.active())
5501
5523
  return;
5502
- const shape = visioResizeShape(page3, selection2.id);
5503
- if (!shape) return;
5504
- const group2 = Array.from(this.viewport.querySelectorAll("[data-shape-id]")).find(
5505
- (group3) => group3.dataset.shapeId === shape.id && (group3.dataset.pageId ?? page3.id) === page3.id && group3.dataset.selected === "true"
5524
+ const frame = visioResizeSelectionFrame(
5525
+ page3,
5526
+ state.selectedShapes.map((item) => item.id)
5527
+ );
5528
+ if (!frame) return;
5529
+ const groups = Array.from(this.viewport.querySelectorAll("[data-shape-id]"));
5530
+ const selected = state.selectedShapes.map(
5531
+ (item) => groups.find(
5532
+ (group3) => group3.dataset.shapeId === item.id && (group3.dataset.pageId ?? page3.id) === page3.id && group3.dataset.selected === "true"
5533
+ )
5506
5534
  );
5535
+ const group2 = selected[0];
5507
5536
  const svg2 = group2?.ownerSVGElement, screen = svg2?.getScreenCTM?.();
5508
- if (!svg2) return;
5537
+ if (!svg2 || selected.some((group3) => group3?.ownerSVGElement !== svg2)) return;
5509
5538
  const scale2 = screen ? Math.hypot(screen.a, screen.b) : 96 * state.zoom;
5510
5539
  if (!(scale2 > 0 && Number.isFinite(scale2))) return;
5511
- this.#frame = createResizeFrame(svg2, page3, shape, scale2);
5540
+ this.#frame = createResizeFrame(svg2, page3, frame, scale2, selection2.id);
5512
5541
  }
5513
5542
  wire() {
5514
5543
  const dispose = wireHandleEvents(this.viewport, {
@@ -5532,16 +5561,19 @@ var ViewerResizeHandles = class {
5532
5561
  const handle = event.target?.closest("[data-resize-handle]");
5533
5562
  const state = this.controller.state, page3 = state.document?.pages[state.pageIndex], selection2 = state.selectedShape;
5534
5563
  const svg2 = this.viewport.querySelector("svg.paper");
5535
- if (!handle || !this.#frame?.element.contains(handle) || !svg2 || !page3 || !state.document || !selection2 || !visioSelectionIsOnPage(selection2, page3.id) || state.selectedShapes.length !== 1 || event.button !== 0 || this.#drag || handle.dataset.resizeShape !== selection2.id || !canEditDiagram(state) || state.edit.busy || state.loading || !this.options.active())
5564
+ if (!handle || !this.#frame?.element.contains(handle) || !svg2 || !page3 || !state.document || !selection2 || !state.selectedShapes.every((item) => visioSelectionIsOnPage(item, page3.id)) || event.button !== 0 || this.#drag || handle.dataset.resizeShape !== selection2.id || !canEditDiagram(state) || state.edit.busy || state.loading || !this.options.active())
5536
5565
  return;
5537
5566
  const start = pagePoint(svg2, page3, event, pointOptions3), id = handle.dataset.resizeHandle;
5538
- if (!start || !visioResizeDrag(page3, selection2.id, id, start, start)) return;
5567
+ const shapeIds = state.selectedShapes.map((item) => item.id);
5568
+ const original = visioResizeSelectionFrame(page3, shapeIds);
5569
+ if (!start || !original || !visioResizeSelectionDrag(page3, shapeIds, id, start, start)) return;
5539
5570
  const drag = {
5540
5571
  pointer: event.pointerId,
5541
5572
  svg: svg2,
5542
5573
  document: state.document,
5543
5574
  page: page3,
5544
- shapeId: selection2.id,
5575
+ shapeIds,
5576
+ original,
5545
5577
  handle: id,
5546
5578
  selection: state.selectedShapes,
5547
5579
  layers: state.layerVisibilityOverrides,
@@ -5567,7 +5599,7 @@ var ViewerResizeHandles = class {
5567
5599
  return;
5568
5600
  }
5569
5601
  const point = pagePoint(drag.svg, drag.page, event, pointOptions3);
5570
- const resized = point && visioResizeDrag(drag.page, drag.shapeId, drag.handle, drag.start, point);
5602
+ const resized = point && visioResizeSelectionDrag(drag.page, drag.shapeIds, drag.handle, drag.start, point);
5571
5603
  if (resized && this.#current(drag)) drag.frame.update(resized.frame);
5572
5604
  event.preventDefault();
5573
5605
  event.stopImmediatePropagation();
@@ -5596,7 +5628,7 @@ var ViewerResizeHandles = class {
5596
5628
  const drag = this.#drag;
5597
5629
  if (!drag || event.pointerId !== drag.pointer) return;
5598
5630
  const point = pagePoint(drag.svg, drag.page, event, pointOptions3);
5599
- const resized = point && this.#current(drag) && visioResizeDrag(drag.page, drag.shapeId, drag.handle, drag.start, point);
5631
+ const resized = point && this.#current(drag) && visioResizeSelectionDrag(drag.page, drag.shapeIds, drag.handle, drag.start, point);
5600
5632
  event.preventDefault();
5601
5633
  event.stopImmediatePropagation();
5602
5634
  const settle2 = this.#release();
@@ -5605,15 +5637,17 @@ var ViewerResizeHandles = class {
5605
5637
  this.render(this.controller.state);
5606
5638
  return;
5607
5639
  }
5608
- const original = drag.page.shapes.find((shape) => shape.id === drag.shapeId);
5609
- if (Math.abs(resized.frame.width - original.width) < 1e-10 && Math.abs(resized.frame.height - original.height) < 1e-10) {
5640
+ if (Math.abs(resized.frame.width - drag.original.width) < 1e-10 && Math.abs(resized.frame.height - drag.original.height) < 1e-10) {
5610
5641
  settle2();
5611
5642
  this.render(this.controller.state);
5612
5643
  return;
5613
5644
  }
5614
5645
  const request = ++this.#request;
5615
5646
  try {
5616
- await this.controller.applySelectionEdits([resized.command]);
5647
+ await this.controller.applySelectionEdits(resized.commands, {
5648
+ pageId: drag.page.id,
5649
+ members: resized.members
5650
+ });
5617
5651
  if (request === this.#request) this.options.announce("Shape resized.");
5618
5652
  } catch (error) {
5619
5653
  if (request === this.#request && !isEditCancellation(error))
@@ -13851,16 +13885,24 @@ var ViewerAutoRecover = class {
13851
13885
  this.fileName = fileName;
13852
13886
  this.offer = offer;
13853
13887
  this.now = now;
13854
- this.timers = timers;
13855
13888
  this.#store = typeof store === "function" ? store : () => store;
13889
+ this.#scheduler = createRecoveryScheduler({
13890
+ timers: {
13891
+ set: (handler, ms) => timers.setInterval(handler, ms),
13892
+ clear: (id) => timers.clearInterval(id)
13893
+ },
13894
+ repeating: true,
13895
+ tick: () => {
13896
+ void this.saveNow();
13897
+ }
13898
+ });
13856
13899
  }
13857
13900
  controller;
13858
13901
  fileName;
13859
13902
  offer;
13860
13903
  now;
13861
- timers;
13862
13904
  #enabled = false;
13863
- #timer;
13905
+ #scheduler;
13864
13906
  #lookup = 0;
13865
13907
  #store;
13866
13908
  get store() {
@@ -13868,11 +13910,9 @@ var ViewerAutoRecover = class {
13868
13910
  }
13869
13911
  /** Apply the option: copy every `minutes` minutes while `enabled`. */
13870
13912
  configure(enabled, minutes) {
13871
- if (this.#timer !== void 0) this.timers.clearInterval(this.#timer);
13872
- this.#timer = void 0;
13913
+ this.#scheduler.clear();
13873
13914
  this.#enabled = enabled;
13874
- if (this.#enabled)
13875
- this.#timer = this.timers.setInterval(() => void this.saveNow(), minutes * 6e4);
13915
+ if (this.#enabled) this.#scheduler.arm(minutes * 6e4);
13876
13916
  }
13877
13917
  get enabled() {
13878
13918
  return this.#enabled && !!this.store;
@@ -13882,6 +13922,9 @@ var ViewerAutoRecover = class {
13882
13922
  }
13883
13923
  /** Copy the drawing now if it has unsaved changes; true when a copy was kept. */
13884
13924
  async saveNow() {
13925
+ return await this.#scheduler.run(() => this.#save()) ?? false;
13926
+ }
13927
+ async #save() {
13885
13928
  const state = this.controller.state;
13886
13929
  if (!this.#enabled || !this.store || !state.edit.dirty || !state.edit.sourceAvailable || state.loading || state.edit.busy)
13887
13930
  return false;
@@ -13898,7 +13941,11 @@ var ViewerAutoRecover = class {
13898
13941
  }
13899
13942
  /** A copy of the drawing was saved as a file: the kept one is no longer needed. */
13900
13943
  saved() {
13901
- void this.store?.delete(this.#name()).catch(() => {
13944
+ const store = this.store;
13945
+ const name = this.#name();
13946
+ void this.#scheduler.run(async () => {
13947
+ await store?.delete(name).catch(() => {
13948
+ });
13902
13949
  });
13903
13950
  }
13904
13951
  /**
@@ -13954,8 +14001,7 @@ var ViewerAutoRecover = class {
13954
14001
  }
13955
14002
  dispose() {
13956
14003
  ++this.#lookup;
13957
- if (this.#timer !== void 0) this.timers.clearInterval(this.#timer);
13958
- this.#timer = void 0;
14004
+ this.#scheduler.dispose();
13959
14005
  this.#enabled = false;
13960
14006
  }
13961
14007
  };
@@ -21694,9 +21740,9 @@ var ViewerGuides = class {
21694
21740
  }
21695
21741
  /**
21696
21742
  * Snap a shape drag; draws alignment hints. `grid` is the Snap to Grid step in page inches (0
21697
- * while the grid is hidden). Unchanged when no snapping is active.
21743
+ * to omit grid snapping). Grid visibility is independent. Unchanged when no snapping is active.
21698
21744
  */
21699
- snap(page3, ids, delta, grid = 0) {
21745
+ snap(page3, ids, delta, grid = 0, axis) {
21700
21746
  const svg2 = this.#svg();
21701
21747
  this.clearHints();
21702
21748
  const settings = visioSnapGlue(this.controller.state.document ?? {}).snapSettings;
@@ -21709,7 +21755,8 @@ var ViewerGuides = class {
21709
21755
  shapes: this.#dynamic,
21710
21756
  guides,
21711
21757
  threshold: SNAP_PIXELS / (96 * zoom),
21712
- grid
21758
+ grid,
21759
+ ...axis ? { axis } : {}
21713
21760
  });
21714
21761
  if (!svg2 || !result.lines.length) return result.delta;
21715
21762
  const hints = svg2.ownerDocument.createElementNS(SVG6, "g");
@@ -24032,9 +24079,9 @@ var ViewerCommands = class {
24032
24079
  layoutCommands;
24033
24080
  #textFeatures;
24034
24081
  #targets;
24035
- /** The page's grid lines while View > Grid is on (Snap to Grid), else 0. */
24082
+ /** Page grid spacing; Snap & Glue controls snapping independently of View > Grid. */
24036
24083
  get gridStep() {
24037
- return this.#grid ? this.#pageSetup.rulerGrid.steps() : 0;
24084
+ return this.#pageSetup.rulerGrid.steps();
24038
24085
  }
24039
24086
  get tool() {
24040
24087
  return this.#tool;
@@ -25473,7 +25520,7 @@ var VisioViewerElement = class extends BaseElement {
25473
25520
  const editing = createCanvasEditing(this.#viewport, this.controller, {
25474
25521
  pointerActive: () => this.#commands.tool === "pointer",
25475
25522
  announce,
25476
- snap: (page3, ids, delta) => this.#commands.layoutCommands.guides.snap(page3, ids, delta, this.#commands.gridStep),
25523
+ snap: (page3, ids, delta, axis) => this.#commands.layoutCommands.guides.snap(page3, ids, delta, this.#commands.gridStep, axis),
25477
25524
  clearSnap: () => this.#commands.layoutCommands.guides.clearHints()
25478
25525
  });
25479
25526
  this.#edit = editing.edit;
@@ -9,4 +9,4 @@ export declare const smartArtSchemeColors: typeof drawingSchemeColors;
9
9
  export declare function paintSmartArt(ctx: EditorContext, node: HTMLElement, obj: SmartArtObject, theme: ThemePalette | undefined, size?: {
10
10
  w: number;
11
11
  h: number;
12
- }): void;
12
+ }, pictureResolver?: (partName: string) => string | undefined): void;