ooxml-core 1.6.1 → 1.7.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 (72) hide show
  1. package/dist/{PptxHandler-BTXB54UC.mjs → PptxHandler-BL4B7CZO.mjs} +2 -2
  2. package/dist/automation/index.cjs +482 -232
  3. package/dist/automation/index.mjs +482 -232
  4. package/dist/{chunk-CS7HRNHL.mjs → chunk-GAGSCAR3.mjs} +43 -43
  5. package/dist/{chunk-5CJRDY7Q.mjs → chunk-NIHPA63A.mjs} +1 -1
  6. package/dist/{chunk-Q5LESLDA.mjs → chunk-TTPZITQN.mjs} +841 -614
  7. package/dist/{chunk-4L4UB3RQ.mjs → chunk-Z7IQR4S4.mjs} +3 -3
  8. package/dist/{chunk-RIFVZP2S.mjs → chunk-ZAP5WLEN.mjs} +1 -1
  9. package/dist/crypto/index.cjs +281 -109
  10. package/dist/crypto/index.mjs +281 -109
  11. package/dist/docx/load/index.cjs +481 -254
  12. package/dist/docx/load/index.mjs +481 -254
  13. package/dist/geometry/index.cjs +25 -0
  14. package/dist/geometry/index.d.ts +1 -0
  15. package/dist/geometry/index.d.ts.map +1 -1
  16. package/dist/geometry/index.mjs +24 -1
  17. package/dist/geometry/nudge.d.ts +12 -0
  18. package/dist/geometry/nudge.d.ts.map +1 -0
  19. package/dist/geometry/rotation-drag.d.ts +6 -0
  20. package/dist/geometry/rotation-drag.d.ts.map +1 -1
  21. package/dist/index.cjs +25 -0
  22. package/dist/index.mjs +25 -0
  23. package/dist/pptx/automation/index.cjs +1395 -1156
  24. package/dist/pptx/automation/index.d.ts +1 -1
  25. package/dist/pptx/automation/index.mjs +5 -5
  26. package/dist/pptx/chunks/{index-DkHgeV1p.d.ts → index-Cn-GzYGp.d.ts} +62 -13
  27. package/dist/pptx/chunks/{index-DkHgeV1p.d.ts.map → index-Cn-GzYGp.d.ts.map} +1 -1
  28. package/dist/pptx/cli/index.cjs +1274 -1090
  29. package/dist/pptx/cli/index.mjs +4 -4
  30. package/dist/pptx/converter/index.cjs +7 -2
  31. package/dist/pptx/converter/index.mjs +2 -2
  32. package/dist/pptx/index.cjs +1415 -1176
  33. package/dist/pptx/index.d.ts +1 -1
  34. package/dist/pptx/index.mjs +5 -5
  35. package/dist/teams/index.cjs +7 -2
  36. package/dist/teams/index.mjs +7 -2
  37. package/dist/visio/edit-commands.d.ts +3 -1
  38. package/dist/visio/edit-commands.d.ts.map +1 -1
  39. package/dist/visio/edit-layer-properties.d.ts +22 -0
  40. package/dist/visio/edit-layer-properties.d.ts.map +1 -0
  41. package/dist/visio/edit-text-instance.d.ts +21 -0
  42. package/dist/visio/edit-text-instance.d.ts.map +1 -0
  43. package/dist/visio/edit-text-ranges.d.ts.map +1 -1
  44. package/dist/visio/edit-text-scope.d.ts +6 -1
  45. package/dist/visio/edit-text-scope.d.ts.map +1 -1
  46. package/dist/visio/edit-text-target.d.ts +11 -1
  47. package/dist/visio/edit-text-target.d.ts.map +1 -1
  48. package/dist/visio/edit-text.d.ts +2 -1
  49. package/dist/visio/edit-text.d.ts.map +1 -1
  50. package/dist/visio/edit.d.ts +1 -1
  51. package/dist/visio/edit.d.ts.map +1 -1
  52. package/dist/visio/index.cjs +1038 -538
  53. package/dist/visio/index.d.ts +1 -1
  54. package/dist/visio/index.d.ts.map +1 -1
  55. package/dist/visio/index.mjs +1038 -538
  56. package/dist/visio/text-fields.d.ts.map +1 -1
  57. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  58. package/dist/visio/ui/edit-error.d.ts +4 -1
  59. package/dist/visio/ui/edit-error.d.ts.map +1 -1
  60. package/dist/visio/ui/guides.d.ts +5 -0
  61. package/dist/visio/ui/guides.d.ts.map +1 -1
  62. package/dist/visio/ui/index.cjs +19768 -1874
  63. package/dist/visio/ui/index.d.ts +1 -0
  64. package/dist/visio/ui/index.d.ts.map +1 -1
  65. package/dist/visio/ui/index.mjs +19765 -1877
  66. package/dist/visio/ui/sample-drawing.d.ts +8 -0
  67. package/dist/visio/ui/sample-drawing.d.ts.map +1 -0
  68. package/dist/visio/ui/shape-move.d.ts +6 -0
  69. package/dist/visio/ui/shape-move.d.ts.map +1 -1
  70. package/dist/xlsx/load/index.cjs +415 -188
  71. package/dist/xlsx/load/index.mjs +415 -188
  72. package/package.json +6 -5
@@ -15475,6 +15475,13 @@ function createRotationDrag(center, startPointer, startRotation, options = {}) {
15475
15475
  return rotation;
15476
15476
  };
15477
15477
  }
15478
+ function snapAngle(angleDeg, step = 15, tolerance = step / 2) {
15479
+ const nearest = Math.round(angleDeg / step) * step;
15480
+ if (Math.abs(angleDeg - nearest) <= tolerance) {
15481
+ return (nearest % 360 + 360) % 360;
15482
+ }
15483
+ return angleDeg;
15484
+ }
15478
15485
 
15479
15486
  // geometry/rotate-handle-placement.ts
15480
15487
  function resolveRotateHandlePlacement(input) {
@@ -15892,6 +15899,22 @@ function autoAlignBoxes(boxes, options = {}) {
15892
15899
  return result;
15893
15900
  }
15894
15901
 
15902
+ // geometry/nudge.ts
15903
+ function arrowKeyDelta(key, step) {
15904
+ switch (key) {
15905
+ case "ArrowLeft":
15906
+ return { dx: -step, dy: 0 };
15907
+ case "ArrowRight":
15908
+ return { dx: step, dy: 0 };
15909
+ case "ArrowUp":
15910
+ return { dx: 0, dy: -step };
15911
+ case "ArrowDown":
15912
+ return { dx: 0, dy: step };
15913
+ default:
15914
+ return null;
15915
+ }
15916
+ }
15917
+
15895
15918
  exports.ACTION_BUTTON_CONNECTION_SITES = ACTION_BUTTON_CONNECTION_SITES;
15896
15919
  exports.ACTION_BUTTON_PRESET_DEFINITIONS = ACTION_BUTTON_PRESET_DEFINITIONS;
15897
15920
  exports.ACTION_BUTTON_TEXT_RECTS = ACTION_BUTTON_TEXT_RECTS;
@@ -15963,6 +15986,7 @@ exports.TAB_TEXT_RECTS = TAB_TEXT_RECTS;
15963
15986
  exports._internalForTests = _internalForTests;
15964
15987
  exports.alignElements = alignElements;
15965
15988
  exports.angleToRadians = angleToRadians;
15989
+ exports.arrowKeyDelta = arrowKeyDelta;
15966
15990
  exports.at = at;
15967
15991
  exports.autoAlignBoxes = autoAlignBoxes;
15968
15992
  exports.buildCalloutLeaderLineSvgPath = buildCalloutLeaderLineSvgPath;
@@ -16034,6 +16058,7 @@ exports.resolveOperand = resolveOperand;
16034
16058
  exports.resolveRotateHandlePlacement = resolveRotateHandlePlacement;
16035
16059
  exports.segmentIntersection = segmentIntersection;
16036
16060
  exports.signedArea = signedArea;
16061
+ exports.snapAngle = snapAngle;
16037
16062
  exports.snapBox = snapBox;
16038
16063
  exports.snapToGridStep = snapToGridStep;
16039
16064
  exports.snapValue = snapValue;
@@ -85,4 +85,5 @@ export * from './rotation-drag.js';
85
85
  export * from './rotate-handle-placement.js';
86
86
  export * from './graph-layout.js';
87
87
  export * from './auto-align.js';
88
+ export * from './nudge.js';
88
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../geometry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../geometry/index.ts"],"names":[],"mappings":"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"}
@@ -15473,6 +15473,13 @@ function createRotationDrag(center, startPointer, startRotation, options = {}) {
15473
15473
  return rotation;
15474
15474
  };
15475
15475
  }
15476
+ function snapAngle(angleDeg, step = 15, tolerance = step / 2) {
15477
+ const nearest = Math.round(angleDeg / step) * step;
15478
+ if (Math.abs(angleDeg - nearest) <= tolerance) {
15479
+ return (nearest % 360 + 360) % 360;
15480
+ }
15481
+ return angleDeg;
15482
+ }
15476
15483
 
15477
15484
  // geometry/rotate-handle-placement.ts
15478
15485
  function resolveRotateHandlePlacement(input) {
@@ -15890,4 +15897,20 @@ function autoAlignBoxes(boxes, options = {}) {
15890
15897
  return result;
15891
15898
  }
15892
15899
 
15893
- export { ACTION_BUTTON_CONNECTION_SITES, ACTION_BUTTON_PRESET_DEFINITIONS, ACTION_BUTTON_TEXT_RECTS, ANGLE_SCALE, ARROW_CALLOUT_CONNECTION_SITES, ARROW_CALLOUT_PRESET_DEFINITIONS, ARROW_CONNECTION_SITES, ARROW_PRESET_DEFINITIONS, ARROW_TEXT_RECTS, BASIC_SHAPE_CONNECTION_SITES_A, BASIC_SHAPE_CONNECTION_SITES_B, BRACE_CONNECTION_SITES, BRACE_TEXT_RECTS, CALLOUT_CONNECTION_SITES, CALLOUT_TEXT_RECTS, CARDINAL_SITES, CHART_MARK_PRESET_DEFINITIONS, CIRCULAR_ARROW_CONNECTION_SITES, CIRCULAR_ARROW_TEXT_RECTS, CLIP_PATHS_CORE, CLIP_PATHS_EXTENDED, CLOUD_CALLOUT_PRESET_DEFINITIONS, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COM_AVLST_GROUND_TRUTH, CONNECTORS_BRACKETS_PRESET_DEFINITIONS, CURVED_ARROWS_CONNECTORS_PRESET_DEFINITIONS, CURVED_ARROW_CONNECTION_SITES, EPSILON, EXACT_CURVED_ARROW_PRESET_DEFINITIONS, EXTENDED_SHAPE_DEFINITIONS, FLOWCHART_CONNECTION_SITES, FLOWCHART_PRESET_DEFINITIONS, FLOWCHART_TEXT_RECTS, GEAR9_CONNECTION_SITES, GRAPH_LAYOUT_STYLES, IDENTITY_AFFINE, LEFT_CIRCULAR_ARROW_CONNECTION_SITES, LEFT_RIGHT_CIRCULAR_ARROW_CONNECTION_SITES, MATH_SYMBOL_CONNECTION_SITES, MISC_ARROW_CONNECTION_SITES, MISC_PRESET_DEFINITIONS, MISC_SHAPE_CONNECTION_SITES, MISC_TEXT_RECTS_A, MISC_TEXT_RECTS_B, POLYGON_CONNECTION_SITES, POLYGON_TEXT_RECTS, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRIMARY_SHAPE_DEFINITIONS, QUAD_CONNECTION_SITES, QUAD_TEXT_RECTS, RECTS_SNIPS_PRESET_DEFINITIONS, RECT_VARIANT_CONNECTION_SITES, REFINED_ARROW_PRESET_DEFINITIONS, RIBBON_CONNECTION_SITES, RIBBON_TEXT_RECTS, SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS, SNAP_THRESHOLD, STAR_CONNECTION_SITES, STAR_TEXT_RECTS, ST_SHAPE_TYPE_VALUES, TABS_DECORATIONS_PRESET_DEFINITIONS, TAB_CONNECTION_SITES, TAB_TEXT_RECTS, _internalForTests, alignElements, angleToRadians, at, autoAlignBoxes, buildCalloutLeaderLineSvgPath, clipPolygons, combineShapes, composeAffine, computeAlign, computeDistribute, computeRotation, computeSnap, computeSnapToShape, computeUnionWalk, convexHull, createBuiltinVariables, createRotationDrag, cross2, curvedElbowPathD, cxn, dedupPoly, distributeElements, elbowCurveSegments, elbowSegmentCount, elbowWaypoints, ensureCCW, ensureCW, evaluateFormula, evaluateGuides, findAllIntersections, flattenSvgPath, fmtNum, fragmentShapes, gd, gear6, gear9, getAdjustmentAwareClipPath, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, insertIntersections, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConvex, isHorizontalPrimaryAxis, isStShapeType, layoutGraph, lineIntersection, lookupPresetConnectionSites, lookupPresetTextRectOverride, mergeOverlappingPolygons, mergeShapes, normalizeStShapeType, parseAdjustmentValues, parseFormula, parseGuideDefinitions, pointInPolygon, pointInTriangle, polygonArea, polygonsToSvgPath, resolveAlignReferenceBox, resolveCoordinate, resolveOperand, resolveRotateHandlePlacement, segmentIntersection, signedArea, snapBox, snapToGridStep, snapValue, subtractPolygons, subtractShapes, subtractSvgPaths, sutherlandHodgman, svgPathToPolygons, triangulate, unionPolygons, unionShapes, unionSvgPaths, usesSlideReference, vec2Eq };
15900
+ // geometry/nudge.ts
15901
+ function arrowKeyDelta(key, step) {
15902
+ switch (key) {
15903
+ case "ArrowLeft":
15904
+ return { dx: -step, dy: 0 };
15905
+ case "ArrowRight":
15906
+ return { dx: step, dy: 0 };
15907
+ case "ArrowUp":
15908
+ return { dx: 0, dy: -step };
15909
+ case "ArrowDown":
15910
+ return { dx: 0, dy: step };
15911
+ default:
15912
+ return null;
15913
+ }
15914
+ }
15915
+
15916
+ export { ACTION_BUTTON_CONNECTION_SITES, ACTION_BUTTON_PRESET_DEFINITIONS, ACTION_BUTTON_TEXT_RECTS, ANGLE_SCALE, ARROW_CALLOUT_CONNECTION_SITES, ARROW_CALLOUT_PRESET_DEFINITIONS, ARROW_CONNECTION_SITES, ARROW_PRESET_DEFINITIONS, ARROW_TEXT_RECTS, BASIC_SHAPE_CONNECTION_SITES_A, BASIC_SHAPE_CONNECTION_SITES_B, BRACE_CONNECTION_SITES, BRACE_TEXT_RECTS, CALLOUT_CONNECTION_SITES, CALLOUT_TEXT_RECTS, CARDINAL_SITES, CHART_MARK_PRESET_DEFINITIONS, CIRCULAR_ARROW_CONNECTION_SITES, CIRCULAR_ARROW_TEXT_RECTS, CLIP_PATHS_CORE, CLIP_PATHS_EXTENDED, CLOUD_CALLOUT_PRESET_DEFINITIONS, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COM_AVLST_GROUND_TRUTH, CONNECTORS_BRACKETS_PRESET_DEFINITIONS, CURVED_ARROWS_CONNECTORS_PRESET_DEFINITIONS, CURVED_ARROW_CONNECTION_SITES, EPSILON, EXACT_CURVED_ARROW_PRESET_DEFINITIONS, EXTENDED_SHAPE_DEFINITIONS, FLOWCHART_CONNECTION_SITES, FLOWCHART_PRESET_DEFINITIONS, FLOWCHART_TEXT_RECTS, GEAR9_CONNECTION_SITES, GRAPH_LAYOUT_STYLES, IDENTITY_AFFINE, LEFT_CIRCULAR_ARROW_CONNECTION_SITES, LEFT_RIGHT_CIRCULAR_ARROW_CONNECTION_SITES, MATH_SYMBOL_CONNECTION_SITES, MISC_ARROW_CONNECTION_SITES, MISC_PRESET_DEFINITIONS, MISC_SHAPE_CONNECTION_SITES, MISC_TEXT_RECTS_A, MISC_TEXT_RECTS_B, POLYGON_CONNECTION_SITES, POLYGON_TEXT_RECTS, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRIMARY_SHAPE_DEFINITIONS, QUAD_CONNECTION_SITES, QUAD_TEXT_RECTS, RECTS_SNIPS_PRESET_DEFINITIONS, RECT_VARIANT_CONNECTION_SITES, REFINED_ARROW_PRESET_DEFINITIONS, RIBBON_CONNECTION_SITES, RIBBON_TEXT_RECTS, SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS, SNAP_THRESHOLD, STAR_CONNECTION_SITES, STAR_TEXT_RECTS, ST_SHAPE_TYPE_VALUES, TABS_DECORATIONS_PRESET_DEFINITIONS, TAB_CONNECTION_SITES, TAB_TEXT_RECTS, _internalForTests, alignElements, angleToRadians, arrowKeyDelta, at, autoAlignBoxes, buildCalloutLeaderLineSvgPath, clipPolygons, combineShapes, composeAffine, computeAlign, computeDistribute, computeRotation, computeSnap, computeSnapToShape, computeUnionWalk, convexHull, createBuiltinVariables, createRotationDrag, cross2, curvedElbowPathD, cxn, dedupPoly, distributeElements, elbowCurveSegments, elbowSegmentCount, elbowWaypoints, ensureCCW, ensureCW, evaluateFormula, evaluateGuides, findAllIntersections, flattenSvgPath, fmtNum, fragmentShapes, gd, gear6, gear9, getAdjustmentAwareClipPath, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, insertIntersections, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConvex, isHorizontalPrimaryAxis, isStShapeType, layoutGraph, lineIntersection, lookupPresetConnectionSites, lookupPresetTextRectOverride, mergeOverlappingPolygons, mergeShapes, normalizeStShapeType, parseAdjustmentValues, parseFormula, parseGuideDefinitions, pointInPolygon, pointInTriangle, polygonArea, polygonsToSvgPath, resolveAlignReferenceBox, resolveCoordinate, resolveOperand, resolveRotateHandlePlacement, segmentIntersection, signedArea, snapAngle, snapBox, snapToGridStep, snapValue, subtractPolygons, subtractShapes, subtractSvgPaths, sutherlandHodgman, svgPathToPolygons, triangulate, unionPolygons, unionShapes, unionSvgPaths, usesSlideReference, vec2Eq };
@@ -0,0 +1,12 @@
1
+ /** A selection move, in screen directions: x grows right and y grows down. */
2
+ export interface NudgeDelta {
3
+ dx: number;
4
+ dy: number;
5
+ }
6
+ /**
7
+ * The move an arrow key nudges a selection by, `step` units in the arrow's screen direction, or
8
+ * `null` for any other key. Each product picks its own units and steps (slide pixels in
9
+ * PowerPoint, page inches in Visio); a y-up product negates `dy`.
10
+ */
11
+ export declare function arrowKeyDelta(key: string, step: number): NudgeDelta | null;
12
+ //# sourceMappingURL=nudge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nudge.d.ts","sourceRoot":"","sources":["../../geometry/nudge.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAa1E"}
@@ -12,4 +12,10 @@ export declare function computeRotation(center: RotationPoint, pointer: Rotation
12
12
  export declare function createRotationDrag(center: RotationPoint, startPointer: RotationPoint, startRotation: number, options?: {
13
13
  unwrapped?: boolean;
14
14
  }): (pointer: RotationPoint) => number;
15
+ /**
16
+ * Snap an angle to the nearest `step` degrees when within `tolerance`, normalised to [0, 360).
17
+ * Office editors use it for Shift-drag rotation (step 15). Returns the original angle when no
18
+ * snap target is close enough.
19
+ */
20
+ export declare function snapAngle(angleDeg: number, step?: number, tolerance?: number): number;
15
21
  //# sourceMappingURL=rotation-drag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotation-drag.d.ts","sourceRoot":"","sources":["../../geometry/rotation-drag.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAGrF;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAyBpC"}
1
+ {"version":3,"file":"rotation-drag.d.ts","sourceRoot":"","sources":["../../geometry/rotation-drag.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAGrF;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAyBpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,SAAS,SAAW,GAAG,MAAM,CAMnF"}
package/dist/index.cjs CHANGED
@@ -33084,6 +33084,7 @@ __export(geometry_exports, {
33084
33084
  _internalForTests: () => _internalForTests,
33085
33085
  alignElements: () => alignElements,
33086
33086
  angleToRadians: () => angleToRadians,
33087
+ arrowKeyDelta: () => arrowKeyDelta,
33087
33088
  at: () => at,
33088
33089
  autoAlignBoxes: () => autoAlignBoxes,
33089
33090
  buildCalloutLeaderLineSvgPath: () => buildCalloutLeaderLineSvgPath,
@@ -33155,6 +33156,7 @@ __export(geometry_exports, {
33155
33156
  resolveRotateHandlePlacement: () => resolveRotateHandlePlacement,
33156
33157
  segmentIntersection: () => segmentIntersection,
33157
33158
  signedArea: () => signedArea,
33159
+ snapAngle: () => snapAngle,
33158
33160
  snapBox: () => snapBox,
33159
33161
  snapToGridStep: () => snapToGridStep,
33160
33162
  snapValue: () => snapValue,
@@ -39375,6 +39377,13 @@ function createRotationDrag(center, startPointer, startRotation, options = {}) {
39375
39377
  return rotation;
39376
39378
  };
39377
39379
  }
39380
+ function snapAngle(angleDeg, step = 15, tolerance = step / 2) {
39381
+ const nearest = Math.round(angleDeg / step) * step;
39382
+ if (Math.abs(angleDeg - nearest) <= tolerance) {
39383
+ return (nearest % 360 + 360) % 360;
39384
+ }
39385
+ return angleDeg;
39386
+ }
39378
39387
 
39379
39388
  // geometry/rotate-handle-placement.ts
39380
39389
  function resolveRotateHandlePlacement(input) {
@@ -39792,6 +39801,22 @@ function autoAlignBoxes(boxes, options = {}) {
39792
39801
  return result;
39793
39802
  }
39794
39803
 
39804
+ // geometry/nudge.ts
39805
+ function arrowKeyDelta(key, step) {
39806
+ switch (key) {
39807
+ case "ArrowLeft":
39808
+ return { dx: -step, dy: 0 };
39809
+ case "ArrowRight":
39810
+ return { dx: step, dy: 0 };
39811
+ case "ArrowUp":
39812
+ return { dx: 0, dy: -step };
39813
+ case "ArrowDown":
39814
+ return { dx: 0, dy: step };
39815
+ default:
39816
+ return null;
39817
+ }
39818
+ }
39819
+
39795
39820
  // units/index.ts
39796
39821
  var units_exports = {};
39797
39822
  __export(units_exports, {
package/dist/index.mjs CHANGED
@@ -33078,6 +33078,7 @@ __export(geometry_exports, {
33078
33078
  _internalForTests: () => _internalForTests,
33079
33079
  alignElements: () => alignElements,
33080
33080
  angleToRadians: () => angleToRadians,
33081
+ arrowKeyDelta: () => arrowKeyDelta,
33081
33082
  at: () => at,
33082
33083
  autoAlignBoxes: () => autoAlignBoxes,
33083
33084
  buildCalloutLeaderLineSvgPath: () => buildCalloutLeaderLineSvgPath,
@@ -33149,6 +33150,7 @@ __export(geometry_exports, {
33149
33150
  resolveRotateHandlePlacement: () => resolveRotateHandlePlacement,
33150
33151
  segmentIntersection: () => segmentIntersection,
33151
33152
  signedArea: () => signedArea,
33153
+ snapAngle: () => snapAngle,
33152
33154
  snapBox: () => snapBox,
33153
33155
  snapToGridStep: () => snapToGridStep,
33154
33156
  snapValue: () => snapValue,
@@ -39369,6 +39371,13 @@ function createRotationDrag(center, startPointer, startRotation, options = {}) {
39369
39371
  return rotation;
39370
39372
  };
39371
39373
  }
39374
+ function snapAngle(angleDeg, step = 15, tolerance = step / 2) {
39375
+ const nearest = Math.round(angleDeg / step) * step;
39376
+ if (Math.abs(angleDeg - nearest) <= tolerance) {
39377
+ return (nearest % 360 + 360) % 360;
39378
+ }
39379
+ return angleDeg;
39380
+ }
39372
39381
 
39373
39382
  // geometry/rotate-handle-placement.ts
39374
39383
  function resolveRotateHandlePlacement(input) {
@@ -39786,6 +39795,22 @@ function autoAlignBoxes(boxes, options = {}) {
39786
39795
  return result;
39787
39796
  }
39788
39797
 
39798
+ // geometry/nudge.ts
39799
+ function arrowKeyDelta(key, step) {
39800
+ switch (key) {
39801
+ case "ArrowLeft":
39802
+ return { dx: -step, dy: 0 };
39803
+ case "ArrowRight":
39804
+ return { dx: step, dy: 0 };
39805
+ case "ArrowUp":
39806
+ return { dx: 0, dy: -step };
39807
+ case "ArrowDown":
39808
+ return { dx: 0, dy: step };
39809
+ default:
39810
+ return null;
39811
+ }
39812
+ }
39813
+
39789
39814
  // units/index.ts
39790
39815
  var units_exports = {};
39791
39816
  __export(units_exports, {