@pixerate/editor 0.96.0 → 0.98.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 (52) hide show
  1. package/THIRD_PARTY_NOTICES.md +4 -2
  2. package/dist/animation-editor/index.cjs +55 -53
  3. package/dist/animation-editor/index.cjs.map +1 -1
  4. package/dist/animation-editor/index.d.cts +3 -2
  5. package/dist/animation-editor/index.d.ts +3 -2
  6. package/dist/animation-editor/index.js +11 -9
  7. package/dist/animation-editor/index.js.map +1 -1
  8. package/dist/chunk-DWGZUSES.cjs +694 -0
  9. package/dist/chunk-DWGZUSES.cjs.map +1 -0
  10. package/dist/chunk-GX332W2C.js +181 -0
  11. package/dist/chunk-GX332W2C.js.map +1 -0
  12. package/dist/{chunk-7MD7C6XQ.cjs → chunk-JF5PXN7W.cjs} +96 -744
  13. package/dist/chunk-JF5PXN7W.cjs.map +1 -0
  14. package/dist/chunk-KKREERP2.js +694 -0
  15. package/dist/chunk-KKREERP2.js.map +1 -0
  16. package/dist/chunk-MUUXNRU4.cjs +181 -0
  17. package/dist/chunk-MUUXNRU4.cjs.map +1 -0
  18. package/dist/{chunk-KFTQ2PKP.js → chunk-WIR377F6.js} +1001 -61
  19. package/dist/chunk-WIR377F6.js.map +1 -0
  20. package/dist/{chunk-T422YCHR.cjs → chunk-WT6ZAWJP.cjs} +1023 -83
  21. package/dist/chunk-WT6ZAWJP.cjs.map +1 -0
  22. package/dist/{chunk-4JLB2USO.js → chunk-YGZNGDIT.js} +45 -693
  23. package/dist/chunk-YGZNGDIT.js.map +1 -0
  24. package/dist/image-editor/index.cjs +1519 -360
  25. package/dist/image-editor/index.cjs.map +1 -1
  26. package/dist/image-editor/index.d.cts +378 -5
  27. package/dist/image-editor/index.d.ts +378 -5
  28. package/dist/image-editor/index.js +1244 -85
  29. package/dist/image-editor/index.js.map +1 -1
  30. package/dist/raster/index.cjs +25 -2
  31. package/dist/raster/index.cjs.map +1 -1
  32. package/dist/raster/index.d.cts +143 -4
  33. package/dist/raster/index.d.ts +143 -4
  34. package/dist/raster/index.js +25 -2
  35. package/dist/{svg-ymShkNtu.d.cts → svg-C9r284x8.d.cts} +6 -9
  36. package/dist/{svg-Dh17jCyA.d.ts → svg-MVKBqwD4.d.ts} +6 -9
  37. package/dist/types-CwMPoRMU.d.cts +40 -0
  38. package/dist/types-CwMPoRMU.d.ts +40 -0
  39. package/dist/vector/index.cjs +490 -554
  40. package/dist/vector/index.cjs.map +1 -1
  41. package/dist/vector/index.d.cts +154 -292
  42. package/dist/vector/index.d.ts +154 -292
  43. package/dist/vector/index.js +91 -155
  44. package/dist/vector/index.js.map +1 -1
  45. package/dist/warp-B8rAguzs.d.ts +165 -0
  46. package/dist/warp-nYs2DPrx.d.cts +165 -0
  47. package/package.json +1 -1
  48. package/skills/pixerate-image-editor/SKILL.md +49 -3
  49. package/dist/chunk-4JLB2USO.js.map +0 -1
  50. package/dist/chunk-7MD7C6XQ.cjs.map +0 -1
  51. package/dist/chunk-KFTQ2PKP.js.map +0 -1
  52. package/dist/chunk-T422YCHR.cjs.map +0 -1
@@ -1,15 +1,52 @@
1
- import { d as Vec2, e as VectorSubpath, b as VectorBounds, f as VectorAnchor, V as VectorDocument, a as VectorNode, g as VectorPathNode, h as VectorAnchorType, i as VectorPaint, j as VectorGroupNode, k as VectorCornerKind, l as VectorWidthPoint, m as VectorGradientHandle, n as VectorGradient, o as VectorGradientStop, p as VectorViewport, q as VectorEffectType, r as VectorEffectParamsMap, s as VectorFillRule, t as VectorBooleanOperation, u as VectorEffect, v as VectorWarpMesh, w as VectorTransformHandle, x as VectorAnchorRef, y as VectorPathfinderOperation, z as VectorTool, A as VectorDefaults, B as VectorStyle, C as VectorHandleRef, D as VectorSegmentRef, E as VectorBlendOptions, F as VectorModifiers, c as VectorSvgExportOptions, G as VectorGradientPatch, H as VectorAlign, I as VectorDistribute, J as VectorArrange, K as VectorAverageAxis, L as VectorArrowhead, M as VectorBlendSpacing, N as VectorGradientInterpolation, O as VectorGradientSpread, P as VectorGradientType, Q as VectorStrokeAlign, R as VectorStrokeGradientMode, S as VectorRenderStrokeParts, T as VectorPaintDef, U as VectorArrowAlign, W as VectorBlend, X as VectorMergeMode, Y as VectorLineJoin, Z as VectorWarpStyle } from '../svg-Dh17jCyA.js';
2
- export { _ as VECTOR_ARROWHEADS, $ as VECTOR_BLEND_SPACINGS, a0 as VECTOR_CORNER_KINDS, a1 as VECTOR_EFFECT_TYPES, a2 as VECTOR_GRADIENT_INTERPOLATIONS, a3 as VECTOR_GRADIENT_MAX_PERIODS, a4 as VECTOR_GRADIENT_MIN_STOPS, a5 as VECTOR_GRADIENT_SPREADS, a6 as VECTOR_GRADIENT_TYPES, a7 as VECTOR_MERGE_MODES, a8 as VECTOR_PATHFINDER_OPERATIONS, a9 as VECTOR_STROKE_GRADIENT_MODES, aa as VECTOR_TOOLS, ab as VECTOR_TRANSFORM_HANDLES, ac as VectorCorner, ad as VectorGradientPoints, ae as VectorGradientRamp, af as VectorGradientSvgOptions, ag as VectorGradientUnits, ah as VectorLineCap, ai as VectorMatrix, aj as VectorPaintSvgOptions, ak as VectorRgba, al as VectorSvgImportOptions, am as VectorSvgPatternDef, an as VectorSvgWrapper, ao as applyVectorCornersAttribute, ap as applyVectorGradientPatch, aq as applyVectorGradientSpread, ar as convertVectorGradient, as as defaultVectorGradient, at as expandVectorGradientSpread, au as expandVectorGradientStops, av as explicitVectorGradient, aw as gradientMidpointRemap, ax as hasExplicitGradientGeometry, ay as insertVectorGradientStop, az as isCentredVectorGradient, aA as isVectorGradient, aB as mapVectorGradient, aC as mapVectorPaint, aD as moveVectorGradientHandle, aE as moveVectorGradientStop, aF as parseSvgTransform, aG as parseVectorColor, aH as parseVectorSvg, aI as patternAttrs, aJ as periodicVectorGradientStops, aK as pinVectorGradient, aL as removeVectorGradientStop, aM as reverseVectorGradient, aN as samplePlainStops, aO as sampleVectorGradient, aP as sampleVectorGradientAt, aQ as sampleVectorPaintDefAt, aR as sanitizeVectorGradient, aS as setVectorGradientVector, aT as sortedVectorGradientStops, aU as spanVectorGradientStops, aV as transformVectorGradient, aW as transformVectorPaint, aX as vectorBoxMatrix, aY as vectorCornersAttribute, aZ as vectorDocumentToSvg, a_ as vectorGradientArea, a$ as vectorGradientAspect, b0 as vectorGradientFocalParam, b1 as vectorGradientHandles, b2 as vectorGradientMatrix, b3 as vectorGradientMidpointFromPosition, b4 as vectorGradientMidpointPosition, b5 as vectorGradientNeedsExpansion, b6 as vectorGradientParam, b7 as vectorGradientPoints, b8 as vectorGradientRamp, b9 as vectorGradientSvgDefs, ba as vectorGradientTAt, bb as vectorGradientUnitsMatrix, bc as vectorPaintToSvg, bd as vectorPathLocalBounds, be as vectorStrokeSvgParts, bf as widthProfileFromAttribute, bg as widthProfileToAttribute } from '../svg-Dh17jCyA.js';
1
+ import { d as Vec2$1, e as VectorSubpath, b as VectorBounds, f as VectorAnchor, V as VectorDocument, a as VectorNode, g as VectorPathNode, h as VectorAnchorType, i as VectorPaint, j as VectorGroupNode, k as VectorCornerKind, l as VectorWidthPoint, m as VectorGradientHandle, n as VectorGradient, o as VectorGradientStop, p as VectorViewport, q as VectorEffectType, r as VectorEffectParamsMap, s as VectorFillRule, t as VectorBooleanOperation, u as VectorEffect, v as VectorWarpMesh, w as VectorTransformHandle, x as VectorAnchorRef, y as VectorPathfinderOperation, z as VectorTool, A as VectorDefaults, B as VectorStyle, C as VectorHandleRef, D as VectorSegmentRef, E as VectorBlendOptions, F as VectorModifiers, c as VectorSvgExportOptions, G as VectorGradientPatch, H as VectorAlign, I as VectorDistribute, J as VectorArrange, K as VectorAverageAxis, L as VectorArrowhead, M as VectorBlendSpacing, N as VectorGradientInterpolation, O as VectorGradientSpread, P as VectorGradientType, Q as VectorStrokeAlign, R as VectorStrokeGradientMode, S as VectorRenderStrokeParts, T as VectorPaintDef, U as VectorArrowAlign, W as VectorBlend, X as VectorMergeMode, Y as VectorLineJoin } from '../svg-MVKBqwD4.js';
2
+ export { Z as VECTOR_ARROWHEADS, _ as VECTOR_BLEND_SPACINGS, $ as VECTOR_CORNER_KINDS, a0 as VECTOR_EFFECT_TYPES, a1 as VECTOR_GRADIENT_INTERPOLATIONS, a2 as VECTOR_GRADIENT_MAX_PERIODS, a3 as VECTOR_GRADIENT_MIN_STOPS, a4 as VECTOR_GRADIENT_SPREADS, a5 as VECTOR_GRADIENT_TYPES, a6 as VECTOR_MERGE_MODES, a7 as VECTOR_PATHFINDER_OPERATIONS, a8 as VECTOR_STROKE_GRADIENT_MODES, a9 as VECTOR_TOOLS, aa as VECTOR_TRANSFORM_HANDLES, ab as VectorCorner, ac as VectorGradientPoints, ad as VectorGradientRamp, ae as VectorGradientSvgOptions, af as VectorGradientUnits, ag as VectorLineCap, ah as VectorMatrix, ai as VectorPaintSvgOptions, aj as VectorRgba, ak as VectorSvgImportOptions, al as VectorSvgPatternDef, am as VectorSvgWrapper, an as VectorWarpStyle, ao as applyVectorCornersAttribute, ap as applyVectorGradientPatch, aq as applyVectorGradientSpread, ar as convertVectorGradient, as as defaultVectorGradient, at as expandVectorGradientSpread, au as expandVectorGradientStops, av as explicitVectorGradient, aw as gradientMidpointRemap, ax as hasExplicitGradientGeometry, ay as insertVectorGradientStop, az as isCentredVectorGradient, aA as isVectorGradient, aB as mapVectorGradient, aC as mapVectorPaint, aD as moveVectorGradientHandle, aE as moveVectorGradientStop, aF as parseSvgTransform, aG as parseVectorColor, aH as parseVectorSvg, aI as patternAttrs, aJ as periodicVectorGradientStops, aK as pinVectorGradient, aL as removeVectorGradientStop, aM as reverseVectorGradient, aN as samplePlainStops, aO as sampleVectorGradient, aP as sampleVectorGradientAt, aQ as sampleVectorPaintDefAt, aR as sanitizeVectorGradient, aS as setVectorGradientVector, aT as sortedVectorGradientStops, aU as spanVectorGradientStops, aV as transformVectorGradient, aW as transformVectorPaint, aX as vectorBoxMatrix, aY as vectorCornersAttribute, aZ as vectorDocumentToSvg, a_ as vectorGradientArea, a$ as vectorGradientAspect, b0 as vectorGradientFocalParam, b1 as vectorGradientHandles, b2 as vectorGradientMatrix, b3 as vectorGradientMidpointFromPosition, b4 as vectorGradientMidpointPosition, b5 as vectorGradientNeedsExpansion, b6 as vectorGradientParam, b7 as vectorGradientPoints, b8 as vectorGradientRamp, b9 as vectorGradientSvgDefs, ba as vectorGradientTAt, bb as vectorGradientUnitsMatrix, bc as vectorPaintToSvg, bd as vectorPathLocalBounds, be as vectorStrokeSvgParts, bf as widthProfileFromAttribute, bg as widthProfileToAttribute } from '../svg-MVKBqwD4.js';
3
3
  import { P as Point } from '../types-BFkYA4eF.js';
4
- import { A as AffineMatrix, a as BezierPathInput, B as BezierPath, c as BezierSegment } from '../bezier-DYBvLgUH.js';
4
+ import { a as BezierPathInput, A as AffineMatrix$1, B as BezierPath, c as BezierSegment } from '../bezier-DYBvLgUH.js';
5
5
  export { S as SvgGradientDef } from '../bezier-DYBvLgUH.js';
6
6
  import { H as HistoryManager } from '../HistoryManager-DWSLd6Tf.js';
7
7
  import { C as CommandSpec } from '../registry-rVtFJjRM.js';
8
8
  import { S as StrokeJoin, a as StrokeCap, P as PlanarMap, b as PathfinderOperation, c as PathfinderShape } from '../pathfinder-CNtsbCRK.js';
9
9
  import { b as AnimationEasing } from '../easing-lM0Xo9Ni.js';
10
+ export { W as VECTOR_WARP_STYLES, a as VECTOR_WARP_STYLE_LABELS, b as VectorWarpPreset, c as applyVectorHomography, d as dragVectorMeshPoint, e as evalVectorMesh, f as fitVectorMesh, i as isValidVectorMesh, m as mapVectorMeshPoints, o as orderVectorQuad, p as pullVectorMesh, r as removeVectorMeshSplitU, g as removeVectorMeshSplitV, h as resizeVectorMesh, s as solve8, j as splitVectorMeshU, k as splitVectorMeshV, l as vectorHomography, n as vectorHomographyKeepsQuad, q as vectorIdentityMesh, w as vectorMeshColumns, t as vectorMeshControlBounds, u as vectorMeshEditPoints, v as vectorMeshGridCurves, x as vectorMeshParamAt, y as vectorMeshRows, z as vectorWarpPresetGrid, A as vectorWarpPresetMesh } from '../warp-B8rAguzs.js';
11
+ import { A as AffineMatrix, V as Vec2 } from '../types-CwMPoRMU.js';
12
+ export { H as VectorHomography } from '../types-CwMPoRMU.js';
10
13
  import '../types-DsiXGmjo.js';
11
14
  import '../schema-Di0CS6Pe.js';
12
15
 
16
+ /**
17
+ * Affine matrices in SVG order (`[a, b, c, d, e, f]`), shared by the vector and image editors.
18
+ * Angles are degrees, clockwise on screen (y points down).
19
+ */
20
+
21
+ declare const IDENTITY_MATRIX: AffineMatrix;
22
+ /** `a` then `b` (apply `a` first). */
23
+ declare function multiplyMatrices(a: AffineMatrix, b: AffineMatrix): AffineMatrix;
24
+ declare const translateMatrix: (dx: number, dy: number) => AffineMatrix;
25
+ declare function scaleMatrix(sx: number, sy: number, origin?: Vec2): AffineMatrix;
26
+ /** Rotation by `degrees` clockwise (y points down) around `origin`. */
27
+ declare function rotateMatrix(degrees: number, origin?: Vec2): AffineMatrix;
28
+ declare function applyMatrix(m: AffineMatrix, p: Vec2): Vec2;
29
+ declare function isIdentityMatrix(m: AffineMatrix, eps?: number): boolean;
30
+ /** The inverse matrix (the identity for a singular one). */
31
+ declare function invertMatrix(m: AffineMatrix): AffineMatrix;
32
+ /** Applies only the linear part (for directions and offsets). */
33
+ declare function applyMatrixLinear(m: AffineMatrix, v: Vec2): Vec2;
34
+ /**
35
+ * The rotation of a matrix in degrees, clockwise (y down), in (−180, 180]. For a mirrored
36
+ * matrix it is the rotation left after undoing a horizontal flip, so a flipped rotated shape
37
+ * keeps its angle.
38
+ */
39
+ declare function matrixRotation(m: AffineMatrix): number;
40
+ /**
41
+ * Splits `m` into `residual` then `rigid` (`m = residual × rigid` in apply order): `rigid` is
42
+ * the nearest rotation plus the translation, `residual` the linear rest (scale, skew,
43
+ * reflection). An unrotated `m` gives an identity `rigid` and everything in `residual`.
44
+ */
45
+ declare function decomposeRigid(m: AffineMatrix): {
46
+ rigid: AffineMatrix;
47
+ residual: AffineMatrix;
48
+ };
49
+
13
50
  declare const cloneAnchor: (a: VectorAnchor) => VectorAnchor;
14
51
  declare const cloneSubpath: (s: VectorSubpath) => VectorSubpath;
15
52
  /** A deep copy of a node (ids kept). */
@@ -53,12 +90,12 @@ declare function locateVectorNode(nodes: VectorNode[], id: string): {
53
90
  /** Every path node in the subtree (a path node itself, or a group's descendants). */
54
91
  declare function collectPathNodes(node: VectorNode): VectorPathNode[];
55
92
  /** The node's local → parent matrix (identity when it has no `transform`). */
56
- declare function nodeMatrix(node: VectorNode): AffineMatrix;
93
+ declare function nodeMatrix(node: VectorNode): AffineMatrix$1;
57
94
  /**
58
95
  * A path node's outline in the space `parent` maps to (default: its parent's space), as drawn:
59
96
  * live corners cut and path effects applied (`{ effects: false }`: the stored path only).
60
97
  */
61
- declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatrix, options?: {
98
+ declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatrix$1, options?: {
62
99
  effects?: boolean;
63
100
  }): BezierPath;
64
101
  /**
@@ -66,13 +103,13 @@ declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatr
66
103
  * by default the node's parent space, which for top-level nodes is the document. Null when
67
104
  * the node has no points.
68
105
  */
69
- declare function vectorNodeBounds(node: VectorNode, parent?: AffineMatrix): VectorBounds | null;
106
+ declare function vectorNodeBounds(node: VectorNode, parent?: AffineMatrix$1): VectorBounds | null;
70
107
  /** The smallest box around all non-null boxes, or null. */
71
108
  declare function unionBounds(list: readonly (VectorBounds | null | undefined)[]): VectorBounds | null;
72
109
  /** True when two boxes overlap (touching counts). */
73
110
  declare function boundsIntersect(a: VectorBounds, b: VectorBounds): boolean;
74
111
  /** A box from two corners in any order. */
75
- declare function boundsFromPoints(a: Vec2, b: Vec2): VectorBounds;
112
+ declare function boundsFromPoints(a: Vec2$1, b: Vec2$1): VectorBounds;
76
113
  /** Options of `hitTestVectorNode`. */
77
114
  interface VectorHitTestOptions {
78
115
  /**
@@ -86,71 +123,44 @@ interface VectorHitTestOptions {
86
123
  * (when it has one), on its stroke (its alignment and arrowheads respected) or within
87
124
  * `tolerance` of either. A group is hit when any visible child is.
88
125
  */
89
- declare function hitTestVectorNode(node: VectorNode, p: Vec2, tolerance?: number, parent?: AffineMatrix, options?: VectorHitTestOptions): boolean;
126
+ declare function hitTestVectorNode(node: VectorNode, p: Vec2$1, tolerance?: number, parent?: AffineMatrix$1, options?: VectorHitTestOptions): boolean;
90
127
  /**
91
128
  * The area a path node's stroke paints (alignment, caps, joins, dashes and arrowheads
92
129
  * included), as a filled path in the space `parent` maps to. Empty without a stroke.
93
130
  */
94
- declare function vectorStrokeOutline(node: VectorPathNode, parent?: AffineMatrix): BezierPath;
131
+ declare function vectorStrokeOutline(node: VectorPathNode, parent?: AffineMatrix$1): BezierPath;
95
132
  /** The topmost node hit by `p` (skipping hidden and locked ones), or null. */
96
- declare function hitTestVectorNodes(nodes: readonly VectorNode[], p: Vec2, tolerance?: number, options?: VectorHitTestOptions): VectorNode | null;
133
+ declare function hitTestVectorNodes(nodes: readonly VectorNode[], p: Vec2$1, tolerance?: number, options?: VectorHitTestOptions): VectorNode | null;
97
134
  interface NearestSegment {
98
135
  subpath: number;
99
136
  segment: number;
100
137
  /** Curve parameter 0–1 on the segment. */
101
138
  t: number;
102
- point: Vec2;
139
+ point: Vec2$1;
103
140
  distance: number;
104
141
  }
105
142
  /** The closest point on any segment of a path node (`p` and the result are in the node's own space). */
106
- declare function nearestSegment(node: VectorPathNode, p: Vec2): NearestSegment | null;
107
- declare const IDENTITY_MATRIX: AffineMatrix;
108
- /** `a` then `b` (apply `a` first). */
109
- declare function multiplyMatrices(a: AffineMatrix, b: AffineMatrix): AffineMatrix;
110
- declare const translateMatrix: (dx: number, dy: number) => AffineMatrix;
111
- declare function scaleMatrix(sx: number, sy: number, origin?: Vec2): AffineMatrix;
112
- /** Rotation by `degrees` clockwise (y points down) around `origin`. */
113
- declare function rotateMatrix(degrees: number, origin?: Vec2): AffineMatrix;
114
- declare function applyMatrix(m: AffineMatrix, p: Vec2): Vec2;
115
- declare function isIdentityMatrix(m: AffineMatrix, eps?: number): boolean;
116
- /** The inverse matrix (the identity for a singular one). */
117
- declare function invertMatrix(m: AffineMatrix): AffineMatrix;
118
- /** Applies only the linear part (for directions and offsets). */
119
- declare function applyMatrixLinear(m: AffineMatrix, v: Vec2): Vec2;
120
- /**
121
- * The rotation of a matrix in degrees, clockwise (y down), in (−180, 180]. For a mirrored
122
- * matrix it is the rotation left after undoing a horizontal flip, so a flipped rotated shape
123
- * keeps its angle.
124
- */
125
- declare function matrixRotation(m: AffineMatrix): number;
126
- /**
127
- * Splits `m` into `residual` then `rigid` (`m = residual × rigid` in apply order): `rigid` is
128
- * the nearest rotation plus the translation, `residual` the linear rest (scale, skew,
129
- * reflection). An unrotated `m` gives an identity `rigid` and everything in `residual`.
130
- */
131
- declare function decomposeRigid(m: AffineMatrix): {
132
- rigid: AffineMatrix;
133
- residual: AffineMatrix;
134
- };
143
+ declare function nearestSegment(node: VectorPathNode, p: Vec2$1): NearestSegment | null;
144
+
135
145
  /**
136
146
  * A copy of the node moved by `m`, given in its parent's space. The node's rotation and
137
147
  * translation go to its rigid `transform`; scale and skew are baked into its anchors (or its
138
148
  * children), so the result draws exactly as `m` says. Stroke widths are kept.
139
149
  */
140
- declare function transformVectorNode<T extends VectorNode>(node: T, m: AffineMatrix): T;
150
+ declare function transformVectorNode<T extends VectorNode>(node: T, m: AffineMatrix$1): T;
141
151
  /** The node's rotation in degrees (from its `transform` and its ancestors' when `parent` is given). */
142
- declare function vectorNodeRotation(node: VectorNode, parent?: AffineMatrix): number;
152
+ declare function vectorNodeRotation(node: VectorNode, parent?: AffineMatrix$1): number;
143
153
  /** The local → document matrix of node `id` (ancestors' transforms included), or null. */
144
- declare function vectorWorldMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix | null;
154
+ declare function vectorWorldMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix$1 | null;
145
155
  /** The parent space → document matrix of node `id` (identity for top-level nodes), or null. */
146
- declare function vectorParentMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix | null;
156
+ declare function vectorParentMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix$1 | null;
147
157
  /** Moves an anchor and its handles by (dx, dy). */
148
158
  declare function translateAnchor(a: VectorAnchor, dx: number, dy: number): VectorAnchor;
149
159
  /**
150
160
  * Moves one handle to `pos`, keeping the other in line for `smooth` anchors and mirrored for
151
161
  * `symmetric` ones. With `breakHandles` the anchor becomes a `corner` and only this handle moves.
152
162
  */
153
- declare function moveAnchorHandle(a: VectorAnchor, side: 'in' | 'out', pos: Vec2, breakHandles?: boolean): VectorAnchor;
163
+ declare function moveAnchorHandle(a: VectorAnchor, side: 'in' | 'out', pos: Vec2$1, breakHandles?: boolean): VectorAnchor;
154
164
  /**
155
165
  * Converts anchor `index` of a subpath. `corner` removes both handles; `smooth` and
156
166
  * `symmetric` keep existing handles in line, or add handles a third of the way to the
@@ -186,7 +196,7 @@ declare function polygonSubpath(b: VectorBounds, sides?: number): VectorSubpath;
186
196
  /** A star inscribed in a box, first point at the top. `innerRatio` is inner / outer radius. */
187
197
  declare function starSubpath(b: VectorBounds, points?: number, innerRatio?: number): VectorSubpath;
188
198
  /** A straight open line. */
189
- declare function lineSubpath(a: Vec2, b: Vec2): VectorSubpath;
199
+ declare function lineSubpath(a: Vec2$1, b: Vec2$1): VectorSubpath;
190
200
  /** Rounds every coordinate to `precision` decimals (stable JSON and SVG output). */
191
201
  declare function roundSubpaths(subpaths: readonly VectorSubpath[], precision?: number): VectorSubpath[];
192
202
 
@@ -198,10 +208,10 @@ interface VectorCornerInfo {
198
208
  subpath: number;
199
209
  index: number;
200
210
  /** Where the sides meet. */
201
- at: Vec2;
211
+ at: Vec2$1;
202
212
  /** Unit directions the sides leave the corner in: towards the previous anchor, then the next one. */
203
- u: Vec2;
204
- v: Vec2;
213
+ u: Vec2$1;
214
+ v: Vec2$1;
205
215
  /** The sides' lengths (along curves), in the same order. */
206
216
  lu: number;
207
217
  lv: number;
@@ -222,9 +232,9 @@ declare const cornerSetback: (c: Pick<VectorCornerInfo, "cos" | "sin">, r: numbe
222
232
  /** `radius` clamped to what the corner can draw (0 for negative or non-finite radii). */
223
233
  declare const fitCornerRadius: (c: Pick<VectorCornerInfo, "maxRadius">, radius: number) => number;
224
234
  /** The point `k` along the corner's bisector, measured in (u + v): a round cut of radius r is centred at k = r / sin. */
225
- declare const cornerBisectorPoint: (c: VectorCornerInfo, k: number) => Vec2;
235
+ declare const cornerBisectorPoint: (c: VectorCornerInfo, k: number) => Vec2$1;
226
236
  /** How much the radius grows when the round cut's centre moves by `d` (its part along the bisector, in radius units). */
227
- declare const cornerRadiusChange: (c: VectorCornerInfo, d: Vec2) => number;
237
+ declare const cornerRadiusChange: (c: VectorCornerInfo, d: Vec2$1) => number;
228
238
  /** True when any anchor of the subpaths has a live corner radius. */
229
239
  declare function hasVectorCorners(subpaths: readonly VectorSubpath[]): boolean;
230
240
  /** One subpath with its corners cut; `sources[i]` is the stored anchor each output anchor comes from. */
@@ -419,16 +429,16 @@ interface VectorGradientAnnotator {
419
429
  /** The path's box in its own space. */
420
430
  bounds: VectorBounds | null;
421
431
  /** The path's own space → document. */
422
- world: AffineMatrix;
432
+ world: AffineMatrix$1;
423
433
  /** Screen positions of the handles. */
424
- start: Vec2;
425
- end: Vec2;
434
+ start: Vec2$1;
435
+ end: Vec2$1;
426
436
  /** Radial, conic and diamond gradients. */
427
- aspect: Vec2 | null;
437
+ aspect: Vec2$1 | null;
428
438
  /** Radial gradients. */
429
- focal: Vec2 | null;
439
+ focal: Vec2$1 | null;
430
440
  /** Unit normal to the bar towards the stop chips (screen). */
431
- normal: Vec2;
441
+ normal: Vec2$1;
432
442
  /** Stops (sorted, as the gradient stores them) with their chips' screen positions. */
433
443
  stops: (VectorGradientStop & {
434
444
  index: number;
@@ -450,12 +460,12 @@ declare function vectorGradientTargetPath(doc: VectorDocument, selection: readon
450
460
  /** The annotator of the selection's gradient (`target` paint), in screen pixels, or null when it has none. */
451
461
  declare function getVectorGradientAnnotator(doc: VectorDocument, selection: readonly string[], viewport: VectorViewport, target: VectorGradientTarget): VectorGradientAnnotator | null;
452
462
  /** Where `p` lies relative to the bar: offset along it (0 at the start, 1 at the end) and distance towards the stop chips. */
453
- declare function vectorGradientBarPosition(a: Pick<VectorGradientAnnotator, 'start' | 'end' | 'normal'>, p: Vec2): {
463
+ declare function vectorGradientBarPosition(a: Pick<VectorGradientAnnotator, 'start' | 'end' | 'normal'>, p: Vec2$1): {
454
464
  offset: number;
455
465
  across: number;
456
466
  };
457
467
  /** The annotator part under screen point `p`: stops, then midpoints, the handles and the bar. */
458
- declare function hitVectorGradientAnnotator(a: VectorGradientAnnotator, p: Vec2): VectorGradientPart | null;
468
+ declare function hitVectorGradientAnnotator(a: VectorGradientAnnotator, p: Vec2$1): VectorGradientPart | null;
459
469
 
460
470
  /**
461
471
  * Live appearance: path effect stacks and live boolean groups, evaluated on demand while the
@@ -628,7 +638,7 @@ declare function sanitizeVectorEffects(value: unknown): VectorEffect[];
628
638
  * flipping it): offsets and positions move with it, angles turn the other way when it mirrors.
629
639
  * Lengths such as sizes and radii are kept, like stroke widths.
630
640
  */
631
- declare function transformVectorEffects(effects: readonly VectorEffect[], m: AffineMatrix, node?: VectorNode): VectorEffect[];
641
+ declare function transformVectorEffects(effects: readonly VectorEffect[], m: AffineMatrix$1, node?: VectorNode): VectorEffect[];
632
642
  /**
633
643
  * The live groups (live booleans and groups with effects) being edited: those in `ids` and those
634
644
  * holding a node in `ids`. Their children are hit and outlined as stored instead of as drawn, so
@@ -637,7 +647,7 @@ declare function transformVectorEffects(effects: readonly VectorEffect[], m: Aff
637
647
  declare function vectorEnteredGroups(nodes: readonly VectorNode[], ids: readonly string[]): Set<string>;
638
648
 
639
649
  /** A map of the plane (document or node space). */
640
- type VectorPointMap = (p: Vec2) => Vec2;
650
+ type VectorPointMap = (p: Vec2$1) => Vec2$1;
641
651
  /** Every anchor and handle of `subpaths` through `f` (no subdivision). */
642
652
  declare function mapVectorPoints(subpaths: readonly VectorSubpath[], f: VectorPointMap): VectorSubpath[];
643
653
  interface MapVectorSubpathsOptions {
@@ -671,23 +681,23 @@ declare const VECTOR_DISTORT_TOLERANCE = 0.05;
671
681
  /** How dragging a selection box handle distorts it: each corner freely, or in symmetric perspective. */
672
682
  type VectorDistortMode = 'distort' | 'perspective';
673
683
  /** A box's corners clockwise from the top left. */
674
- declare const vectorBoxCorners: (b: VectorBounds) => Vec2[];
684
+ declare const vectorBoxCorners: (b: VectorBounds) => Vec2$1[];
675
685
  /**
676
686
  * The quad (clockwise from the top left) box `b` becomes when handle `handle` is dragged by `d`: a
677
687
  * corner moves by `d` (`distort`), or along the drag's dominant axis with the corner beside it on
678
688
  * that side moving the opposite way (`perspective`); a side moves both its corners.
679
689
  */
680
- declare function vectorDistortQuad(b: VectorBounds, handle: VectorTransformHandle, d: Vec2, mode?: VectorDistortMode): Vec2[];
690
+ declare function vectorDistortQuad(b: VectorBounds, handle: VectorTransformHandle, d: Vec2$1, mode?: VectorDistortMode): Vec2$1[];
681
691
  /**
682
692
  * The skew for dragging side `handle` of box `b` by `d`: along that side, about the opposite side
683
693
  * (or the centre, `fromCenter`). Corners give the identity.
684
694
  */
685
- declare function vectorShearForSide(b: VectorBounds, handle: VectorTransformHandle, d: Vec2, fromCenter?: boolean): AffineMatrix;
695
+ declare function vectorShearForSide(b: VectorBounds, handle: VectorTransformHandle, d: Vec2$1, fromCenter?: boolean): AffineMatrix$1;
686
696
  /**
687
697
  * A skew by `ax` degrees horizontally (vertical lines lean right for positive angles: x' = x + tan(ax)·y)
688
698
  * and `ay` degrees vertically (y' = y + tan(ay)·x), about `origin`.
689
699
  */
690
- declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2): AffineMatrix;
700
+ declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2$1): AffineMatrix$1;
691
701
  /**
692
702
  * A node sent through `f`, a map of the space `parentToDoc` maps its parent to (the document):
693
703
  * every anchor and handle is mapped in the node's own space, adaptively so curves stay within
@@ -695,7 +705,7 @@ declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2): Affine
695
705
  * handles mapped (bounding-box ones follow the new bounds), envelope meshes and a blend's spine
696
706
  * are mapped too; stroke widths, live corner radii and effect parameters are kept.
697
707
  */
698
- declare function distortVectorNode<T extends VectorNode>(node: T, parentToDoc: AffineMatrix, f: VectorPointMap, tolerance?: number): T;
708
+ declare function distortVectorNode<T extends VectorNode>(node: T, parentToDoc: AffineMatrix$1, f: VectorPointMap, tolerance?: number): T;
699
709
 
700
710
  /**
701
711
  * What a guide line shows: `align` lines run from a target through the snapped point or box,
@@ -725,7 +735,7 @@ interface VectorSnapGuides {
725
735
  labels: VectorGuideLabel[];
726
736
  }
727
737
  interface VectorPointSnap extends VectorSnapGuides {
728
- point: Vec2;
738
+ point: Vec2$1;
729
739
  /** The rule that placed the point, or null when nothing was in reach. */
730
740
  kind: VectorSnapKind | null;
731
741
  /** Whether x / y were set by a target (for falling back to the grid on the other axis). */
@@ -749,7 +759,7 @@ interface VectorScaleSnap extends VectorSnapGuides {
749
759
  * anchor) and how it keeps to it.
750
760
  */
751
761
  interface VectorSnapLeave {
752
- at: Vec2;
762
+ at: Vec2$1;
753
763
  /**
754
764
  * Shift held: keep to 45° steps round `at` (`angle`), to a diagonal (`square`, a box's
755
765
  * corner) or to the nearer axis (`axis`, a dragged point).
@@ -763,7 +773,7 @@ interface VectorSnapLeave {
763
773
  /** The construction guide angles new editors start with. */
764
774
  declare const VECTOR_CONSTRUCTION_ANGLES: readonly number[];
765
775
  /** Where `constrain` puts `p` (unchanged without one). */
766
- declare function constrainToLeave(leave: VectorSnapLeave | null | undefined, p: Vec2): Vec2;
776
+ declare function constrainToLeave(leave: VectorSnapLeave | null | undefined, p: Vec2$1): Vec2$1;
767
777
  /**
768
778
  * Snap targets in document space, gathered once per gesture. Build them with `forMove`,
769
779
  * `forResize`, `forDrawing`, `forAnchorDrag` or `forHandle`, then call `snapFrom`,
@@ -824,7 +834,7 @@ declare class VectorSnapTargets {
824
834
  */
825
835
  private static collect;
826
836
  /** Snaps a single point (see `snapFrom`). */
827
- snapPoint(p: Vec2, tol: number): VectorPointSnap;
837
+ snapPoint(p: Vec2$1, tol: number): VectorPointSnap;
828
838
  /**
829
839
  * Snaps a point `p`, drawn or dragged from `leave` when given. With `leave.constrain` it keeps
830
840
  * to its angle round `leave.at`, sliding along that way into line with the nearest target.
@@ -833,7 +843,7 @@ declare class VectorSnapTargets {
833
843
  * through `leave.at` (where a target's line crosses it if one does nearby), or else lines up
834
844
  * with targets on x and y.
835
845
  */
836
- snapFrom(p: Vec2, leave: VectorSnapLeave | null | undefined, tol: number): VectorPointSnap;
846
+ snapFrom(p: Vec2$1, leave: VectorSnapLeave | null | undefined, tol: number): VectorPointSnap;
837
847
  private label;
838
848
  /** The anchor or centre nearest `p`, within `tol`. */
839
849
  private nearestPoint;
@@ -989,10 +999,10 @@ interface VectorStrokeSpot {
989
999
  subpath: number;
990
1000
  /** Position along the subpath by length, 0–1. */
991
1001
  t: number;
992
- point: Vec2;
1002
+ point: Vec2$1;
993
1003
  /** Ends of the stroke's width across the path there. */
994
- left: Vec2;
995
- right: Vec2;
1004
+ left: Vec2$1;
1005
+ right: Vec2$1;
996
1006
  }
997
1007
  /**
998
1008
  * The width point being edited numerically (double-click with the width tool): `index` is the
@@ -1007,7 +1017,7 @@ interface VectorWidthPointEdit {
1007
1017
  t: number;
1008
1018
  left: number;
1009
1019
  right: number;
1010
- point: Vec2;
1020
+ point: Vec2$1;
1011
1021
  }
1012
1022
  /** A key press as the controller needs it. */
1013
1023
  interface VectorKeyInput extends VectorModifiers {
@@ -1025,7 +1035,7 @@ interface VectorHover {
1025
1035
  subpath: number;
1026
1036
  segment: number;
1027
1037
  t: number;
1028
- point: Vec2;
1038
+ point: Vec2$1;
1029
1039
  };
1030
1040
  transformHandle?: VectorTransformHandle;
1031
1041
  /** A live corner widget (direct tool): the corner's anchor. */
@@ -1079,16 +1089,16 @@ type VectorInteraction = {
1079
1089
  tool: VectorTool;
1080
1090
  nodeId: string;
1081
1091
  bounds: VectorBounds;
1082
- string?: [Vec2, Vec2];
1092
+ string?: [Vec2$1, Vec2$1];
1083
1093
  } | {
1084
1094
  type: 'stroke';
1085
1095
  tool: 'knife' | 'eraser';
1086
- points: Vec2[];
1096
+ points: Vec2$1[];
1087
1097
  width: number;
1088
1098
  } | {
1089
1099
  type: 'builder';
1090
1100
  mode: 'merge' | 'erase';
1091
- points: Vec2[];
1101
+ points: Vec2$1[];
1092
1102
  } | {
1093
1103
  type: 'width';
1094
1104
  ref: VectorWidthPointRef;
@@ -1109,7 +1119,7 @@ type VectorInteraction = {
1109
1119
  | {
1110
1120
  type: 'distort';
1111
1121
  mode: VectorDistortMode | 'skew';
1112
- corners: Vec2[];
1122
+ corners: Vec2$1[];
1113
1123
  }
1114
1124
  /** Envelope tool: a mesh point (`index`) or the surface (`index` null) being dragged. */
1115
1125
  | {
@@ -1154,7 +1164,7 @@ interface VectorEditorState {
1154
1164
  subpath: number;
1155
1165
  } | null;
1156
1166
  /** Last pointer position in document units (for the pen preview), or null when outside. */
1157
- pointer: Vec2 | null;
1167
+ pointer: Vec2$1 | null;
1158
1168
  /** Shape Builder and paint bucket highlight: faces, line pieces and the gesture's trail. */
1159
1169
  builder: VectorBuilderPreview | null;
1160
1170
  /** The Blend tool's first click: the shape (and anchor of its first subpath) the next click blends from. */
@@ -1210,7 +1220,7 @@ interface VectorBuilderPreview {
1210
1220
  mode: 'merge' | 'erase' | 'fill';
1211
1221
  faces: BezierPath[];
1212
1222
  lines: BezierPath[];
1213
- trail: Vec2[] | null;
1223
+ trail: Vec2$1[] | null;
1214
1224
  }
1215
1225
  /** Result of a Shape Builder gesture. */
1216
1226
  interface VectorShapeBuilderResult {
@@ -1232,7 +1242,7 @@ interface VectorShapeBuilderFace {
1232
1242
  /** Ids of the paths whose fill covers it, bottom to top (empty for an area only outlines enclose). */
1233
1243
  sources: string[];
1234
1244
  /** A point inside it. */
1235
- point: Vec2 | null;
1245
+ point: Vec2$1 | null;
1236
1246
  }
1237
1247
  interface AddVectorNodeOptions {
1238
1248
  /** Group to add into (default: the root). */
@@ -1313,8 +1323,8 @@ interface VectorWidthHandle {
1313
1323
  x: number;
1314
1324
  y: number;
1315
1325
  /** Ends of its left and right sides. */
1316
- left: Vec2;
1317
- right: Vec2;
1326
+ left: Vec2$1;
1327
+ right: Vec2$1;
1318
1328
  t: number;
1319
1329
  /** Side scales (multiples of half the stroke width). */
1320
1330
  leftScale: number;
@@ -1334,8 +1344,8 @@ declare function getAnchor(doc: VectorDocument, ref: VectorAnchorRef): VectorAnc
1334
1344
  declare function getAnchorWorld(doc: VectorDocument, ref: VectorAnchorRef): {
1335
1345
  x: number;
1336
1346
  y: number;
1337
- in?: Vec2;
1338
- out?: Vec2;
1347
+ in?: Vec2$1;
1348
+ out?: Vec2$1;
1339
1349
  type?: VectorAnchorType;
1340
1350
  } | undefined;
1341
1351
  /**
@@ -1371,10 +1381,10 @@ interface VectorSelectionBoxGeometry {
1371
1381
  handle: VectorTransformHandle;
1372
1382
  x: number;
1373
1383
  y: number;
1374
- screen: Vec2;
1384
+ screen: Vec2$1;
1375
1385
  }[];
1376
1386
  /** The four corners on screen, clockwise from the top left. */
1377
- corners: Vec2[];
1387
+ corners: Vec2$1[];
1378
1388
  }
1379
1389
  declare function getVectorSelectionBoxGeometry(frame: VectorSelectionFrame, viewport: VectorViewport): VectorSelectionBoxGeometry;
1380
1390
  /**
@@ -1388,7 +1398,7 @@ declare function getVectorEnvelopeTarget(doc: VectorDocument, selection: readonl
1388
1398
  bounds: VectorBounds;
1389
1399
  mesh: VectorWarpMesh;
1390
1400
  };
1391
- world: AffineMatrix;
1401
+ world: AffineMatrix$1;
1392
1402
  } | null;
1393
1403
  /** The resize cursor for a handle of a box rotated by `angle` degrees. */
1394
1404
  declare function vectorResizeCursor(handle: VectorTransformHandle, angle?: number): string;
@@ -1494,11 +1504,11 @@ declare class VectorEditorController {
1494
1504
  private replaceNode;
1495
1505
  private freshIds;
1496
1506
  private newId;
1497
- screenToDocument(p: Vec2): Vec2;
1498
- documentToScreen(p: Vec2): Vec2;
1507
+ screenToDocument(p: Vec2$1): Vec2$1;
1508
+ documentToScreen(p: Vec2$1): Vec2$1;
1499
1509
  setViewport(viewport: Partial<VectorViewport>): void;
1500
1510
  /** Zooms by `factor` keeping the document point under `screen` in place. */
1501
- zoomAt(screen: Vec2, factor: number): void;
1511
+ zoomAt(screen: Vec2$1, factor: number): void;
1502
1512
  panBy(dx: number, dy: number): void;
1503
1513
  /** Fits the artboard (or `bounds`) into a canvas of `size` screen pixels. */
1504
1514
  zoomToFit(size: {
@@ -1509,7 +1519,7 @@ declare class VectorEditorController {
1509
1519
  bounds?: VectorBounds;
1510
1520
  }): void;
1511
1521
  /** Zoom at the canvas centre-ish: positive `delta` zooms out (wheel convention). Use with `wheel`. */
1512
- wheel(screen: Vec2, delta: {
1522
+ wheel(screen: Vec2$1, delta: {
1513
1523
  x: number;
1514
1524
  y: number;
1515
1525
  }, mods?: VectorModifiers): void;
@@ -1765,7 +1775,7 @@ declare class VectorEditorController {
1765
1775
  * so straight lines stay straight. Curves are followed within `tolerance` (document units).
1766
1776
  * One undo step.
1767
1777
  */
1768
- distort(corners: readonly Vec2[], options?: {
1778
+ distort(corners: readonly Vec2$1[], options?: {
1769
1779
  ids?: readonly string[];
1770
1780
  tolerance?: number;
1771
1781
  }): VectorActionResult;
@@ -1776,7 +1786,7 @@ declare class VectorEditorController {
1776
1786
  */
1777
1787
  skew(ax: number, ay?: number, options?: {
1778
1788
  ids?: readonly string[];
1779
- origin?: Vec2;
1789
+ origin?: Vec2$1;
1780
1790
  }): VectorActionResult;
1781
1791
  /** A selection box handle dragged in Free Distort mode. */
1782
1792
  private moveDistort;
@@ -1826,7 +1836,7 @@ declare class VectorEditorController {
1826
1836
  private downEnvelope;
1827
1837
  private moveEnvelope;
1828
1838
  /** Applies a matrix to the selected (or given) nodes as one undo step. */
1829
- transform(matrix: AffineMatrix, options?: {
1839
+ transform(matrix: AffineMatrix$1, options?: {
1830
1840
  ids?: readonly string[];
1831
1841
  label?: string;
1832
1842
  }): VectorActionResult;
@@ -1843,12 +1853,12 @@ declare class VectorEditorController {
1843
1853
  */
1844
1854
  scale(sx: number, sy?: number, options?: {
1845
1855
  ids?: readonly string[];
1846
- origin?: Vec2;
1856
+ origin?: Vec2$1;
1847
1857
  }): VectorActionResult;
1848
1858
  /** Rotates clockwise by `degrees` around `origin` (default: the selection centre). */
1849
1859
  rotate(degrees: number, options?: {
1850
1860
  ids?: readonly string[];
1851
- origin?: Vec2;
1861
+ origin?: Vec2$1;
1852
1862
  }): VectorActionResult;
1853
1863
  /** Sets each selected (or given) node's rotation to `degrees`, turning it around its own centre. */
1854
1864
  setRotation(degrees: number, options?: {
@@ -1873,7 +1883,7 @@ declare class VectorEditorController {
1873
1883
  /** Copies the selection (offset by `offset`, default 10, 10) on top of each original. */
1874
1884
  duplicate(options?: {
1875
1885
  ids?: readonly string[];
1876
- offset?: Vec2;
1886
+ offset?: Vec2$1;
1877
1887
  }): string[];
1878
1888
  private withDuplicates;
1879
1889
  /** Groups the selected nodes (they must share a parent). Returns the group id. */
@@ -1983,7 +1993,7 @@ declare class VectorEditorController {
1983
1993
  * deleted in the same gesture go with the face. Every shape covering a touched face loses
1984
1994
  * that area; paths keep their own transforms. One undo step.
1985
1995
  */
1986
- shapeBuilder(points: readonly Vec2[], options?: {
1996
+ shapeBuilder(points: readonly Vec2$1[], options?: {
1987
1997
  ids?: readonly string[];
1988
1998
  erase?: boolean;
1989
1999
  tolerance?: number;
@@ -1998,7 +2008,7 @@ declare class VectorEditorController {
1998
2008
  * (default `editing.fillGap`) closes gaps up to that size between loose ends. Returns the new
1999
2009
  * path's id, or null when nothing encloses the point.
2000
2010
  */
2001
- fillRegion(point: Vec2, options?: {
2011
+ fillRegion(point: Vec2$1, options?: {
2002
2012
  gap?: number;
2003
2013
  }): string | null;
2004
2014
  /** Updates the Shape Builder / paint bucket highlight for the pointer at `p`; true when it changed. */
@@ -2014,7 +2024,7 @@ declare class VectorEditorController {
2014
2024
  * Moves one anchor to a document position. Its handles follow; with `curvature` (default:
2015
2025
  * the `curvatureMoves` setting) its two segments bend instead, as the Curvature tool does.
2016
2026
  */
2017
- moveAnchor(ref: VectorAnchorRef, to: Vec2, options?: {
2027
+ moveAnchor(ref: VectorAnchorRef, to: Vec2$1, options?: {
2018
2028
  curvature?: boolean;
2019
2029
  }): VectorActionResult;
2020
2030
  /** `doc` with anchor `ref` moved to document point `to` by a Curvature-tool move. */
@@ -2025,15 +2035,15 @@ declare class VectorEditorController {
2025
2035
  * Bends a segment so the curve passes through document point `to` at parameter `t`
2026
2036
  * (default 0.5, clamped to 0.05–0.95); see `bendSegment` in `pathEdit`.
2027
2037
  */
2028
- bendSegment(ref: VectorSegmentRef, to: Vec2, t?: number): VectorActionResult;
2038
+ bendSegment(ref: VectorSegmentRef, to: Vec2$1, t?: number): VectorActionResult;
2029
2039
  /** Moves one handle to a document position (see `moveAnchorHandle` for how the opposite handle follows). */
2030
- moveHandle(ref: VectorHandleRef, to: Vec2, options?: {
2040
+ moveHandle(ref: VectorHandleRef, to: Vec2$1, options?: {
2031
2041
  breakHandles?: boolean;
2032
2042
  }): VectorActionResult;
2033
2043
  /** Converts the selected (or given) anchors between corner, smooth and symmetric. */
2034
2044
  convertAnchors(type: VectorAnchorType, refs?: readonly VectorAnchorRef[]): VectorActionResult;
2035
2045
  /** Adds an anchor on the nearest segment of `nodeId` to document point `point` (shape unchanged). */
2036
- insertAnchorAt(nodeId: string, point: Vec2): VectorAnchorRef | null;
2046
+ insertAnchorAt(nodeId: string, point: Vec2$1): VectorAnchorRef | null;
2037
2047
  /**
2038
2048
  * Deletes the selected (or given) anchors; subpaths left with one anchor and empty paths go
2039
2049
  * too. With `keepShape` (default: the `keepShapeOnDelete` setting, on) the neighbours'
@@ -2096,7 +2106,7 @@ declare class VectorEditorController {
2096
2106
  * anchor when within the pick distance of one). A closed subpath opens there; an open one
2097
2107
  * splits in two (a one-subpath path becomes two paths). Returns the ids of the paths.
2098
2108
  */
2099
- cutPathAt(nodeId: string, point: Vec2): string[] | null;
2109
+ cutPathAt(nodeId: string, point: Vec2$1): string[] | null;
2100
2110
  /** Scissors on the selected (or given) anchors: each cuts its subpath there (see `cutPathAt`). */
2101
2111
  cutAtAnchors(refs?: readonly VectorAnchorRef[]): VectorActionResult;
2102
2112
  /** Visible, unlocked paths a stroke over `points` can reach: in `ids`, the selection, or (with neither) any whose bounds it crosses. */
@@ -2109,7 +2119,7 @@ declare class VectorEditorController {
2109
2119
  * selection, or (with neither) every path it crosses. Returns the ids of the pieces (empty
2110
2120
  * when nothing was cut).
2111
2121
  */
2112
- knife(points: readonly Vec2[], options?: {
2122
+ knife(points: readonly Vec2$1[], options?: {
2113
2123
  ids?: readonly string[];
2114
2124
  }): string[];
2115
2125
  /**
@@ -2119,7 +2129,7 @@ declare class VectorEditorController {
2119
2129
  * the given paths, the selection, or (with neither) every path it reaches. Returns the ids
2120
2130
  * of the paths it changed or created.
2121
2131
  */
2122
- erase(points: readonly Vec2[], options?: {
2132
+ erase(points: readonly Vec2$1[], options?: {
2123
2133
  ids?: readonly string[];
2124
2134
  size?: number;
2125
2135
  }): string[];
@@ -2133,7 +2143,7 @@ declare class VectorEditorController {
2133
2143
  * Returns the new ids.
2134
2144
  */
2135
2145
  paste(text?: string, options?: {
2136
- offset?: Vec2;
2146
+ offset?: Vec2$1;
2137
2147
  }): string[];
2138
2148
  undo(): boolean;
2139
2149
  redo(): boolean;
@@ -2171,7 +2181,7 @@ declare class VectorEditorController {
2171
2181
  private nearestOutline;
2172
2182
  private sameHover;
2173
2183
  /** Primary button down on the canvas at `screen` (pixels relative to the canvas). */
2174
- pointerDown(screen: Vec2, input?: VectorPointerInput): void;
2184
+ pointerDown(screen: Vec2$1, input?: VectorPointerInput): void;
2175
2185
  /** The shape under the pointer for the Blend tool, and the anchor of its first subpath under it. */
2176
2186
  private blendHit;
2177
2187
  /** Blend tool: the first click picks the shape to blend from, the next one blends it into the shape clicked. */
@@ -2182,7 +2192,7 @@ declare class VectorEditorController {
2182
2192
  private downPencil;
2183
2193
  private downShape;
2184
2194
  /** Pointer moved over the canvas (with or without a button down). */
2185
- pointerMove(screen: Vec2, input?: VectorPointerInput): void;
2195
+ pointerMove(screen: Vec2$1, input?: VectorPointerInput): void;
2186
2196
  /** Snaps a move of the selection by (dx, dy): its bounds line up with targets or space evenly, else go to the grid. */
2187
2197
  private snapMove;
2188
2198
  /** The anchor a point drag snaps by, where it started: the grabbed one, else the moving one nearest the press. */
@@ -2190,7 +2200,7 @@ declare class VectorEditorController {
2190
2200
  /** A shape's dragged corner moved so its width or height matches another object's, when one is within reach. */
2191
2201
  private matchShapeSize;
2192
2202
  /** Primary button released. */
2193
- pointerUp(screen?: Vec2, input?: VectorPointerInput): void;
2203
+ pointerUp(screen?: Vec2$1, input?: VectorPointerInput): void;
2194
2204
  /** The pointer left the canvas. */
2195
2205
  pointerLeave(): void;
2196
2206
  /** Abandons the drag in progress (Escape, lost capture). */
@@ -2199,7 +2209,7 @@ declare class VectorEditorController {
2199
2209
  * Double click: select tool enters path editing, direct tool toggles an anchor or adds one,
2200
2210
  * width tool opens the width-point editor (`widthPointEdit`).
2201
2211
  */
2202
- doubleClick(screen: Vec2): void;
2212
+ doubleClick(screen: Vec2$1): void;
2203
2213
  /**
2204
2214
  * Handles editor shortcuts. Returns true when the key was used (call `preventDefault`).
2205
2215
  * Do not forward keys typed into text inputs.
@@ -2208,10 +2218,10 @@ declare class VectorEditorController {
2208
2218
  keyUp(input: VectorKeyInput): void;
2209
2219
  }
2210
2220
  /** Scale factors and origin for dragging a selection-box handle to `p`. */
2211
- declare function scaleFor(handle: VectorTransformHandle, b: VectorBounds, p: Vec2, mods?: VectorModifiers): {
2221
+ declare function scaleFor(handle: VectorTransformHandle, b: VectorBounds, p: Vec2$1, mods?: VectorModifiers): {
2212
2222
  sx: number;
2213
2223
  sy: number;
2214
- origin: Vec2;
2224
+ origin: Vec2$1;
2215
2225
  };
2216
2226
 
2217
2227
  interface VectorRenderPath {
@@ -2300,8 +2310,8 @@ interface VectorRenderWidthPoint {
2300
2310
  ref: VectorWidthPointRef;
2301
2311
  x: number;
2302
2312
  y: number;
2303
- left: Vec2;
2304
- right: Vec2;
2313
+ left: Vec2$1;
2314
+ right: Vec2$1;
2305
2315
  selected: boolean;
2306
2316
  /** The part under the pointer, if any. */
2307
2317
  hovered: 'center' | 'left' | 'right' | null;
@@ -2338,7 +2348,7 @@ interface VectorOverlayRenderData {
2338
2348
  selectionBox: (VectorBounds & {
2339
2349
  angle: number;
2340
2350
  transform: string;
2341
- corners: Vec2[];
2351
+ corners: Vec2$1[];
2342
2352
  handles: VectorSelectionBoxGeometry['handles'];
2343
2353
  freeDistort: boolean;
2344
2354
  }) | null;
@@ -2349,7 +2359,7 @@ interface VectorOverlayRenderData {
2349
2359
  distort: {
2350
2360
  mode: 'distort' | 'perspective' | 'skew';
2351
2361
  d: string;
2352
- corners: Vec2[];
2362
+ corners: Vec2$1[];
2353
2363
  } | null;
2354
2364
  /**
2355
2365
  * The Envelope tool's mesh of the selected envelope (screen space): `grid` is the grid lines as
@@ -2407,7 +2417,7 @@ interface VectorOverlayRenderData {
2407
2417
  y2: number;
2408
2418
  } | null;
2409
2419
  /** Where the scissors would cut (screen space). */
2410
- cutPoint: Vec2 | null;
2420
+ cutPoint: Vec2$1 | null;
2411
2421
  /**
2412
2422
  * Live corner widgets of the direct tool (screen space): drag one to round its corners,
2413
2423
  * Alt-click to cycle round / inverted / chamfer, click to pick its corner alone.
@@ -2422,8 +2432,8 @@ interface VectorOverlayRenderData {
2422
2432
  widthSpot: {
2423
2433
  x: number;
2424
2434
  y: number;
2425
- left: Vec2;
2426
- right: Vec2;
2435
+ left: Vec2$1;
2436
+ right: Vec2$1;
2427
2437
  } | null;
2428
2438
  /**
2429
2439
  * Shape Builder and paint bucket highlight (screen space): `faces` are filled paths (fill
@@ -2450,12 +2460,12 @@ interface VectorOverlayRenderData {
2450
2460
  spines: {
2451
2461
  id: string;
2452
2462
  d: string;
2453
- keys: Vec2[];
2463
+ keys: Vec2$1[];
2454
2464
  replaced: boolean;
2455
2465
  }[];
2456
2466
  start: {
2457
2467
  d: string;
2458
- anchor: Vec2 | null;
2468
+ anchor: Vec2$1 | null;
2459
2469
  } | null;
2460
2470
  anchors: {
2461
2471
  x: number;
@@ -2858,9 +2868,9 @@ declare function removeAnchorsKeepingShape(sp: VectorSubpath, indices: readonly
2858
2868
  * `B(t) = L(t) + 3t(1 − t)·offset` exactly. The end anchors keep their types (a smooth or
2859
2869
  * symmetric end turns its other handle to stay in line).
2860
2870
  */
2861
- declare function bendSegment(sp: VectorSubpath, segment: number, t: number, p: Vec2): VectorSubpath;
2871
+ declare function bendSegment(sp: VectorSubpath, segment: number, t: number, p: Vec2$1): VectorSubpath;
2862
2872
  /** The point at parameter `t` of segment `segment` (for tests and previews). */
2863
- declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number): Vec2;
2873
+ declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number): Vec2$1;
2864
2874
  /**
2865
2875
  * Moves anchor `index` to `q` the way the Curvature tool drags a point: only the two segments
2866
2876
  * at it change. A smooth or symmetric anchor turns its handles along the line through its
@@ -2868,7 +2878,7 @@ declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number):
2868
2878
  * their directions while their lengths scale with their segment's chord, so the segments
2869
2879
  * beyond don't move and a corner without handles keeps none.
2870
2880
  */
2871
- declare function curvatureMoveAnchor(sp: VectorSubpath, index: number, q: Vec2): VectorSubpath;
2881
+ declare function curvatureMoveAnchor(sp: VectorSubpath, index: number, q: Vec2$1): VectorSubpath;
2872
2882
  /**
2873
2883
  * Cuts a subpath at the anchors `at`: each becomes the end of one open piece and the start of
2874
2884
  * the next, its handle off each piece dropped (the shape doesn't change). A closed subpath
@@ -3024,9 +3034,9 @@ declare function recognizeInkShape(points: readonly Point[], options?: Recognize
3024
3034
  interface VectorArrowheadShape {
3025
3035
  end: 'start' | 'end';
3026
3036
  kind: VectorArrowhead;
3027
- tip: Vec2;
3037
+ tip: Vec2$1;
3028
3038
  /** Unit direction the head points in. */
3029
- dir: Vec2;
3039
+ dir: Vec2$1;
3030
3040
  /** Distance from the tip back to where the stroke ends under the head. */
3031
3041
  inset: number;
3032
3042
  path: BezierPath;
@@ -3064,7 +3074,7 @@ declare function arrowheadWeight(style: VectorStyle, end: 'start' | 'end'): numb
3064
3074
  /** Distance from the tip where the stroke ends, for a stroke whose cap reaches `cap` past its end. */
3065
3075
  declare function arrowheadInset(kind: VectorArrowhead, hw: number, cap: number): number;
3066
3076
  /** The outline of a `kind` head of weight `hw` with its tip at `tip`, pointing along unit `dir`. */
3067
- declare function arrowheadPath(kind: VectorArrowhead, tip: Vec2, dir: Vec2, hw: number): BezierPath;
3077
+ declare function arrowheadPath(kind: VectorArrowhead, tip: Vec2$1, dir: Vec2$1, hw: number): BezierPath;
3068
3078
  /**
3069
3079
  * The stroke of `path` as `style` draws it: its alignment, the line it follows (shortened under
3070
3080
  * `tip`-aligned heads) and its arrowheads. Heads go on the start of the first subpath and the
@@ -3082,7 +3092,7 @@ declare function vectorStrokeOutlinePath(path: BezierPath, style: VectorStyle):
3082
3092
  * the width of the outline for a centred stroke, within the whole width on the inside or the
3083
3093
  * outside of the fill for an aligned one, or on an arrowhead.
3084
3094
  */
3085
- declare function hitTestVectorStroke(path: BezierPath, p: Vec2, style: VectorStyle, tolerance?: number): boolean;
3095
+ declare function hitTestVectorStroke(path: BezierPath, p: Vec2$1, style: VectorStyle, tolerance?: number): boolean;
3086
3096
  /** How far the stroke can reach past the outline (for padding bounds and masks). */
3087
3097
  declare function vectorStrokeReach(style: VectorStyle): number;
3088
3098
 
@@ -3166,7 +3176,7 @@ declare function strokePositionPoint(path: BezierPath, index: number, t: number)
3166
3176
  /** A path node with the matrix of its parent space (parent → document). */
3167
3177
  interface VectorPathEntry {
3168
3178
  node: VectorPathNode;
3169
- parent: AffineMatrix;
3179
+ parent: AffineMatrix$1;
3170
3180
  }
3171
3181
  /**
3172
3182
  * The path nodes inside `roots` (or every node when `roots` is null), bottom to top, with their
@@ -3245,9 +3255,9 @@ declare function vectorShapeBuilderMap(entries: readonly VectorPathEntry[]): Vec
3245
3255
  * The face under `p`, or with `lineTolerance` (erasing) first the nearer of the line piece and
3246
3256
  * the outline edge that close.
3247
3257
  */
3248
- declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2, lineTolerance?: number | null): VectorBuilderHit | null;
3258
+ declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2$1, lineTolerance?: number | null): VectorBuilderHit | null;
3249
3259
  /** Points along a polyline no more than `step` apart (the pointer's path through faces). */
3250
- declare function samplePolyline(points: readonly Vec2[], step: number): Vec2[];
3260
+ declare function samplePolyline(points: readonly Vec2$1[], step: number): Vec2$1[];
3251
3261
  /** Adds what a point hits to `touched` (each face or piece once). */
3252
3262
  declare function addBuilderHit(touched: VectorBuilderTouched, hit: VectorBuilderHit | null): boolean;
3253
3263
  /**
@@ -3358,9 +3368,9 @@ interface VectorMorphContour {
3358
3368
  pts: Point[];
3359
3369
  }
3360
3370
  /** A subpath mapped by `m` as cubics (lines with handles at thirds), or null when empty. */
3361
- declare function subpathToMorphContour(sp: VectorSubpath, m?: AffineMatrix): VectorMorphContour | null;
3371
+ declare function subpathToMorphContour(sp: VectorSubpath, m?: AffineMatrix$1): VectorMorphContour | null;
3362
3372
  /** A contour back to a subpath (`m` maps it out of the morph's space). Straight cubics become lines. */
3363
- declare function morphContourToSubpath(c: VectorMorphContour, m?: AffineMatrix, closed?: boolean): VectorSubpath;
3373
+ declare function morphContourToSubpath(c: VectorMorphContour, m?: AffineMatrix$1, closed?: boolean): VectorSubpath;
3364
3374
  /**
3365
3375
  * Exactly the same outline with `segments` cubics (at least as many as it has), the new
3366
3376
  * anchors spread over its segments in proportion to their arc length (largest remainder)
@@ -3411,7 +3421,7 @@ declare function interpolateMorphContours(a: readonly VectorMorphContour[], b: r
3411
3421
  * Interpolates two rigid matrices as a rotation (the shorter way round) plus a translation.
3412
3422
  * Any scale or skew is interpolated linearly in the rotated frame.
3413
3423
  */
3414
- declare function interpolateRigidMatrix(a: AffineMatrix, b: AffineMatrix, t: number): AffineMatrix;
3424
+ declare function interpolateRigidMatrix(a: AffineMatrix$1, b: AffineMatrix$1, t: number): AffineMatrix$1;
3415
3425
  /** Two colours mixed in OKLab (premultiplied alpha); unreadable colours switch halfway. */
3416
3426
  declare function interpolateVectorColor(a: string, b: string, t: number): string;
3417
3427
  /**
@@ -3572,7 +3582,7 @@ declare function offsetPaths(paths: readonly BezierPath[], amount: number, join?
3572
3582
  * at the centre to `angle` degrees at the farthest point. Segments are subdivided and their
3573
3583
  * handles mapped through the warp's derivative, which keeps the result smooth.
3574
3584
  */
3575
- declare function twistPaths(paths: readonly BezierPath[], angle: number, center: Vec2): BezierPath[];
3585
+ declare function twistPaths(paths: readonly BezierPath[], angle: number, center: Vec2$1): BezierPath[];
3576
3586
  /**
3577
3587
  * Zig Zag: every segment gets `ridges` ridges: it is split into `ridges + 1` equal pieces and the
3578
3588
  * points (original ones included) are pushed alternately `size` to either side of the path.
@@ -3592,7 +3602,7 @@ declare function mergePaths(paths: readonly BezierPath[], mode?: VectorMergeMode
3592
3602
  interface VectorRepeaterCopy {
3593
3603
  /** Copy number (0 is the original). */
3594
3604
  index: number;
3595
- matrix: AffineMatrix;
3605
+ matrix: AffineMatrix$1;
3596
3606
  opacity: number;
3597
3607
  }
3598
3608
  /**
@@ -3601,14 +3611,14 @@ interface VectorRepeaterCopy {
3601
3611
  * `k = i + offset`; opacity runs from the start to the end opacity across the copies, and a
3602
3612
  * fractional copy count fades the last copy by its fraction.
3603
3613
  */
3604
- declare function vectorRepeaterCopies(r: VectorEffectParamsMap['repeater'], pivot: Vec2): VectorRepeaterCopy[];
3614
+ declare function vectorRepeaterCopies(r: VectorEffectParamsMap['repeater'], pivot: Vec2$1): VectorRepeaterCopy[];
3605
3615
  /** Each path repeated by `vectorRepeaterCopies` (copy order, the original first). */
3606
- declare function repeatPaths(paths: readonly BezierPath[], r: VectorEffectParamsMap['repeater'], pivot: Vec2): {
3616
+ declare function repeatPaths(paths: readonly BezierPath[], r: VectorEffectParamsMap['repeater'], pivot: Vec2$1): {
3607
3617
  copy: VectorRepeaterCopy;
3608
3618
  paths: BezierPath[];
3609
3619
  }[];
3610
3620
  /** The middle of the paths' bounds (the origin when they are empty). */
3611
- declare function pathsCenter(paths: readonly BezierPath[]): Vec2;
3621
+ declare function pathsCenter(paths: readonly BezierPath[]): Vec2$1;
3612
3622
 
3613
3623
  /**
3614
3624
  * The paint server of a gradient along or across the stroke of `node` (in its own space): a
@@ -3621,140 +3631,6 @@ declare function vectorStrokeGradientDefs(g: VectorGradient, id: string, node: V
3621
3631
  precision?: number;
3622
3632
  }): VectorPaintDef[];
3623
3633
 
3624
- /**
3625
- * Perspective (projective) maps between quadrilaterals: what Free Distort needs. Pure maths;
3626
- * degenerate or non-finite quads give `null` instead of NaNs.
3627
- *
3628
- * Ported from ArtCraft (MIT OR Apache-2.0, © ArtCraft Team and contributors; see
3629
- * THIRD_PARTY_NOTICES.md): pdfcraft `crates/geom/src/perspective.rs` (`Homography::from_points`,
3630
- * `Homography::apply`, `solve8`, `order_quad`).
3631
- */
3632
-
3633
- /** A 3×3 projective map, row-major, normalised so that the last entry is 1. */
3634
- type VectorHomography = readonly [number, number, number, number, number, number, number, number, number];
3635
- /**
3636
- * Gaussian elimination with partial pivoting on an 8×8 system (the 9th column of each row is the
3637
- * right-hand side). Null when the system is singular.
3638
- */
3639
- declare function solve8(rows: readonly (readonly number[])[]): number[] | null;
3640
- /** The image of `p`, or null where the map sends it to infinity. */
3641
- declare function applyVectorHomography(h: VectorHomography, p: Vec2): Vec2 | null;
3642
- /**
3643
- * The projective map that takes each of `from` to the point at the same index of `to`. Null when
3644
- * three of either set are collinear or a coordinate is not finite.
3645
- */
3646
- declare function vectorHomography(from: readonly Vec2[], to: readonly Vec2[]): VectorHomography | null;
3647
- /**
3648
- * Whether `h` maps the whole convex quad `quad` without sending any of it through infinity (the
3649
- * denominator keeps one sign over it): what a usable distortion needs.
3650
- */
3651
- declare function vectorHomographyKeepsQuad(h: VectorHomography, quad: readonly Vec2[]): boolean;
3652
- /**
3653
- * The four corners in reading order for a y-down space: top-left, top-right, bottom-right,
3654
- * bottom-left, whatever order they come in. Null unless they form a convex quadrilateral with a
3655
- * non-negligible area.
3656
- */
3657
- declare function orderVectorQuad(points: readonly Vec2[]): Vec2[] | null;
3658
-
3659
- /**
3660
- * Warp geometry for envelope distortion: preset warp styles and editable Bézier meshes, both
3661
- * forward maps from a source box (the bounds of the paths an envelope bends) to the node's space.
3662
- *
3663
- * - **Presets** (`VectorWarpStyle`, Photoshop's fifteen with bend and horizontal / vertical
3664
- * distortion in percent): each is one bicubic Bézier patch whose 4 × 4 control grid follows the
3665
- * bend (`vectorWarpPresetGrid`). Every preset is the identity at bend 0 and continuous in it.
3666
- * - **Meshes** (`VectorWarpMesh`): a grid of bicubic patches. Splitting a mesh (`splitVectorMeshU`
3667
- * / `V`) is an exact de Casteljau subdivision, so it never changes the shape, and a preset turns
3668
- * into an editable mesh of any size exactly.
3669
- *
3670
- * Ported from ArtCraft (MIT OR Apache-2.0, © ArtCraft Team and contributors; see
3671
- * THIRD_PARTY_NOTICES.md): photocraft `crates/geom/src/warp.rs` (`WarpStyle`, `StyleWarp`,
3672
- * `rest_grid`, `edge_arc`, `arc_grid`, `blend_rows`, `preset_grid`, `bernstein`, `split_cubic`,
3673
- * `BERN_INV`, and `BezierMesh`: `identity`, `fit`, `eval`, `split_u`, `split_v`, `remove_split_u`,
3674
- * `transpose`, `map_points`, `param_at`, `pull`, `smooth_lines`, `drag_point`, `control_bounds`;
3675
- * `Warp::map` and `Warp::to_mesh`). The Coons patch of `vectorMeshFromOutline` is our own.
3676
- */
3677
-
3678
- /** The fifteen presets in Photoshop's menu order. */
3679
- declare const VECTOR_WARP_STYLES: readonly VectorWarpStyle[];
3680
- declare const VECTOR_WARP_STYLE_LABELS: Readonly<Record<VectorWarpStyle, string>>;
3681
- /**
3682
- * A preset as a Bézier control grid (rows of `[x, y]` in box units, y down). `b`, `hd`, `vd` are
3683
- * the bend and the horizontal / vertical distortion as fractions (−1…1); `aspect` is the box's
3684
- * height over its width. The arc family stays circular in pixels, the other offsets scale with the
3685
- * box, and a vertical warp is the horizontal one with the axes (and distortions) swapped.
3686
- */
3687
- declare function vectorWarpPresetGrid(style: VectorWarpStyle, b: number, hd: number, vd: number, vertical: boolean, aspect: number): [number, number][][];
3688
- /** A preset warp's settings (bend and distortions in percent, −100…100). */
3689
- interface VectorWarpPreset {
3690
- style: VectorWarpStyle;
3691
- bend: number;
3692
- horizontal?: number;
3693
- vertical?: number;
3694
- /** Bend along the vertical axis. */
3695
- orientation?: 'horizontal' | 'vertical';
3696
- }
3697
- /**
3698
- * A preset as one Bézier patch over `bounds` (points in the bounds' space), or null when it
3699
- * changes nothing (an unknown style, all-zero amounts, or an empty box).
3700
- */
3701
- declare function vectorWarpPresetMesh(preset: VectorWarpPreset, bounds: VectorBounds): VectorWarpMesh | null;
3702
- /** Control points per row. */
3703
- declare const vectorMeshColumns: (m: VectorWarpMesh) => number;
3704
- /** Control point rows. */
3705
- declare const vectorMeshRows: (m: VectorWarpMesh) => number;
3706
- /** Whether a mesh is well formed: knots from 0 to 1 increasing, the right number of finite points. */
3707
- declare function isValidVectorMesh(m: unknown): m is VectorWarpMesh;
3708
- /** Fits a mesh with patch boundaries `us` / `vs` to the map `f` (box fractions → output) by interpolating it at each patch's thirds. Exact for bicubic maps (affine maps included). */
3709
- declare function fitVectorMesh(f: (s: number, t: number) => Vec2, us: readonly number[], vs: readonly number[]): VectorWarpMesh;
3710
- /** The identity mesh over `bounds` with `columns × rows` patches. */
3711
- declare function vectorIdentityMesh(bounds: VectorBounds, columns?: number, rows?: number): VectorWarpMesh;
3712
- /** The surface at box fractions `(s, t)`. */
3713
- declare function evalVectorMesh(m: VectorWarpMesh, s: number, t: number): Vec2;
3714
- /** The mesh with the patch column holding `s` split at `s` (exact). Null when `s` is on or too close to a boundary. */
3715
- declare function splitVectorMeshU(m: VectorWarpMesh, s: number): VectorWarpMesh | null;
3716
- /** The mesh with the patch row holding `t` split at `t` (exact). */
3717
- declare function splitVectorMeshV(m: VectorWarpMesh, t: number): VectorWarpMesh | null;
3718
- /**
3719
- * The mesh without interior vertical boundary `k` (1 … us.length − 2), its two patch columns
3720
- * merged: exact when they came from an unedited split; otherwise the outer control points stay and
3721
- * the inner handles are extrapolated.
3722
- */
3723
- declare function removeVectorMeshSplitU(m: VectorWarpMesh, k: number): VectorWarpMesh | null;
3724
- /** Removes interior horizontal boundary `k`. */
3725
- declare function removeVectorMeshSplitV(m: VectorWarpMesh, k: number): VectorWarpMesh | null;
3726
- /** Every control point through `f` (exact for affine maps). */
3727
- declare function mapVectorMeshPoints(m: VectorWarpMesh, f: (p: Vec2) => Vec2): VectorWarpMesh;
3728
- /**
3729
- * The mesh with `columns × rows` patches over the same surface: split exactly when its knots are
3730
- * a subset of the new even ones (a one-patch mesh always is), otherwise refitted.
3731
- */
3732
- declare function resizeVectorMesh(m: VectorWarpMesh, columns: number, rows: number): VectorWarpMesh;
3733
- /** Bounding box of the control points (the surface lies inside it). */
3734
- declare function vectorMeshControlBounds(m: VectorWarpMesh): VectorBounds;
3735
- /** Box fractions `(s, t)` whose surface point is nearest `p` (a coarse search, then Newton steps). */
3736
- declare function vectorMeshParamAt(m: VectorWarpMesh, p: Vec2): {
3737
- s: number;
3738
- t: number;
3739
- distance: number;
3740
- };
3741
- /**
3742
- * `base` with control point `index` dragged by `d`, keeping the surface smooth across the grid
3743
- * lines: an anchor moves with the eight points around it as one block; a handle moves with the two
3744
- * points beside it across its line, and the handle opposite it on the same anchor turns the other
3745
- * way (with its two neighbours), so the line keeps passing straight through the anchor. An inner
3746
- * point of a patch moves alone.
3747
- */
3748
- declare function dragVectorMeshPoint(base: VectorWarpMesh, index: number, d: Vec2): VectorWarpMesh;
3749
- /**
3750
- * `base` with its surface point at box fractions `(s, t)` pulled by `d`, the way dragging inside a
3751
- * patch works: interior anchors within about two cells follow by a share of `d` that fades with
3752
- * distance (each with its block of handles, so grid lines stay smooth); the outer border stays
3753
- * pinned unless the grab is near it, and then it bows; the four corners never move. The grabbed
3754
- * patch's inner points (and, near the border, the border's handles) make up the rest, so the
3755
- * grabbed point lands exactly at its start + `d`.
3756
- */
3757
- declare function pullVectorMesh(base: VectorWarpMesh, s: number, t: number, d: Vec2): VectorWarpMesh;
3758
3634
  /**
3759
3635
  * A mesh whose border follows a closed outline (Illustrator's Make with Top Object): the outline is
3760
3636
  * cut into four sides at the points nearest its bounding box's corners, and the interior is the
@@ -3764,19 +3640,5 @@ declare function pullVectorMesh(base: VectorWarpMesh, s: number, t: number, d: V
3764
3640
  declare function vectorMeshFromOutline(sp: VectorSubpath, columns?: number, rows?: number): VectorWarpMesh | null;
3765
3641
  /** The mesh's border as one closed subpath (clockwise from the top-left corner): what Release gives back as the envelope's shape. */
3766
3642
  declare function vectorMeshOutline(m: VectorWarpMesh): VectorSubpath;
3767
- /**
3768
- * The control points an editor shows: the anchors (where grid lines cross) and the handles along
3769
- * the grid lines, each with the anchor it belongs to. Points inside a patch are left out (drag
3770
- * inside a patch to pull the surface instead).
3771
- */
3772
- declare function vectorMeshEditPoints(m: VectorWarpMesh): {
3773
- anchors: number[];
3774
- handles: {
3775
- index: number;
3776
- anchor: number;
3777
- }[];
3778
- };
3779
- /** The mesh's grid lines (patch borders) as cubics `[p0, p1, p2, p3]`. */
3780
- declare function vectorMeshGridCurves(m: VectorWarpMesh): Vec2[][];
3781
3643
 
3782
- export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_BLEND_DISTANCE, DEFAULT_VECTOR_BLEND_STEPS, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type MapVectorSubpathsOptions, type NearestSegment, type RecognizeInkOptions, VECTOR_ARROWHEAD_LABELS, VECTOR_BLEND_MAX_SMOOTH_STEPS, VECTOR_BLEND_MAX_STEPS, VECTOR_BLEND_SPACING_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_DISTORT_TOLERANCE, VECTOR_EDIT_TOGGLES, VECTOR_EFFECT_DEFAULTS, VECTOR_EFFECT_LABELS, VECTOR_EFFECT_MENU, VECTOR_EFFECT_PARAM_SPECS, VECTOR_ENVELOPE_STYLE_OPTIONS, VECTOR_FILL_GAP, VECTOR_GRADIENT_INTERPOLATION_LABELS, VECTOR_GRADIENT_MIDPOINT_GAP, VECTOR_GRADIENT_OFF_BAR, VECTOR_GRADIENT_SPREAD_LABELS, VECTOR_GRADIENT_STOP_GAP, VECTOR_GRADIENT_TYPE_LABELS, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STROKE_GRADIENT_MODE_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_WARP_STYLES, VECTOR_WARP_STYLE_LABELS, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, Vec2, type VectorActionResult, VectorAlign, VectorAnchor, VectorAnchorRef, VectorAnchorType, type VectorAppearanceShape, VectorArrange, VectorArrowAlign, VectorArrowhead, type VectorArrowheadShape, VectorAverageAxis, VectorBlend, type VectorBlendControls, type VectorBlendInput, VectorBlendOptions, type VectorBlendRail, VectorBlendSpacing, type VectorBlendStart, type VectorBooleanOperand, VectorBooleanOperation, VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCornerInfo, VectorCornerKind, type VectorCornerWidget, VectorDefaults, type VectorDistortMode, VectorDistribute, VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, VectorEffect, type VectorEffectParamSpec, VectorEffectParamsMap, VectorEffectType, type VectorEffectsPanelData, type VectorEffectsPanelItem, type VectorEnvelopePanelData, type VectorEnvelopeParams, VectorFillRule, VectorGradient, type VectorGradientAnnotator, type VectorGradientEditorData, VectorGradientHandle, VectorGradientInterpolation, type VectorGradientPart, VectorGradientPatch, VectorGradientSpread, VectorGradientStop, type VectorGradientTarget, VectorGradientType, VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, VectorHandleRef, type VectorHitTestOptions, type VectorHomography, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, VectorLineJoin, VectorMergeMode, VectorModifiers, type VectorMorph, type VectorMorphContour, type VectorMorphCorrespondence, type VectorMorphOptions, VectorNode, type VectorNodeListing, type VectorOverlayRenderData, VectorPaint, VectorPaintDef, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathKeyframe, VectorPathNode, type VectorPathfinderAction, VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointMap, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGradientAnnotator, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorRepeaterCopy, type VectorScaleSnap, type VectorSceneRenderData, VectorSegmentRef, type VectorSelectionBoxGeometry, type VectorSelectionFrame, type VectorSelectionStyle, type VectorShapeBuilderFace, type VectorShapeBuilderMap, type VectorShapeBuilderPlan, type VectorShapeBuilderResult, type VectorShapeInput, type VectorSnapGuides, type VectorSnapKind, type VectorSnapLeave, type VectorSnapOptions, VectorSnapTargets, VectorStrokeAlign, VectorStrokeGradientMode, type VectorStrokeParts, type VectorStrokeSpot, VectorStyle, VectorSubpath, VectorSvgExportOptions, type VectorTaperOptions, VectorTool, VectorTransformHandle, VectorViewport, VectorWarpMesh, type VectorWarpPreset, VectorWarpStyle, type VectorWaveOptions, type VectorWidthHandle, VectorWidthPoint, type VectorWidthPointEdit, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, activeVectorEffects, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorBlendOptions, applyVectorEffects, applyVectorHomography, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, clearVectorLiveBooleanCache, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, correspondMorphContours, createVectorCommands, createVectorEffect, createVectorMorph, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, distortVectorNode, dragVectorMeshPoint, effectPathLength, effectPathVertexCount, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, evalVectorMesh, evaluateVectorPathKeyframes, expandVectorAppearance, expandVectorAppearances, expandVectorBlend, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, fitVectorMesh, foldVectorBooleanOperands, generateVectorBlendChildren, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorBlendControls, getVectorCornerWidgets, getVectorEffectsPanel, getVectorEnteredGroups, getVectorEnvelopePanel, getVectorEnvelopeTarget, getVectorGradientAnnotator, getVectorGradientEditor, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasOwnVectorAppearance, hasPaint, hasStrokeExtras, hasVectorAppearance, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, hitVectorGradientAnnotator, inferAnchorType, insertAnchor, insertWidthPoint, interpolateMorphContours, interpolateRigidMatrix, interpolateVectorColor, interpolateVectorPaint, interpolateVectorPaths, interpolateVectorStyle, interpolateWidthProfiles, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isValidVectorMesh, isVectorBlendGroup, isVectorLiveBoolean, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, mapBezierPath, mapVectorMeshPoints, mapVectorPoints, mapVectorSubpaths, matrixRotation, mergePaths, mirrorWidthProfile, morphContourToSubpath, morphPathsCross, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, normalizeVectorEffectParams, offsetPaths, orderVectorQuad, pathsCenter, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, puckerBloatPaths, pullVectorMesh, recognizeInkShape, rectSubpath, refineMorphContour, refreshVectorBlends, releaseVectorBlend, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeVectorMeshSplitU, removeVectorMeshSplitV, removeWidthPoints, repeatPaths, resampleGradientStops, resizeVectorMesh, resolveVectorBlendOptions, reverseMorphContour, reverseSubpath, reverseWidthProfile, rotateMatrix, roundCornerPaths, roundSubpaths, samplePolyline, sanitizeVectorEffects, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, solve8, splitIntoFaces, splitSubpathAt, splitVectorMeshU, splitVectorMeshV, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathToMorphContour, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorEffects, transformVectorNode, translateAnchor, translateMatrix, trimIntervals, trimPaths, trimPathsIndividually, turnMorphContour, twistPaths, unionBounds, variableStrokeOutline, variableStrokeRings, vectorAppearanceNodes, vectorAppearanceOutline, vectorAppearanceShapes, vectorBlendColorDistance, vectorBlendKeyTargets, vectorBlendKeys, vectorBlendRail, vectorBlendRailAt, vectorBlendSpine, vectorBlendStepCount, vectorBoxCorners, vectorBuilderErasedEdges, vectorCornerAt, vectorCorners, vectorDiamondPath, vectorDistortQuad, vectorEffectInputBounds, vectorEffectInputPaths, vectorEnteredGroups, vectorEnvelopeFrame, vectorEnvelopeMap, vectorEnvelopeMesh, vectorFillMap, vectorGradientBarPosition, vectorGradientTargetPath, vectorHomography, vectorHomographyKeepsQuad, vectorIdentityMesh, vectorInkShapeName, vectorLiveBooleanSteps, vectorMeshColumns, vectorMeshControlBounds, vectorMeshEditPoints, vectorMeshFromOutline, vectorMeshGridCurves, vectorMeshOutline, vectorMeshParamAt, vectorMeshRows, vectorNodeBounds, vectorNodeEnvelope, vectorNodeRotation, vectorNodeToBezier, vectorOperandOperation, vectorPaintToHex, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorRepeaterCopies, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorShearForSide, vectorSkewMatrix, vectorStrokeGradientDefs, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeWidthGeometry, vectorToolLabel, vectorWarpPresetGrid, vectorWarpPresetMesh, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, wigglePaths, zigzagPaths };
3644
+ export { type AddVectorNodeOptions, AffineMatrix$1 as AffineMatrix, DEFAULT_VECTOR_BLEND_DISTANCE, DEFAULT_VECTOR_BLEND_STEPS, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type MapVectorSubpathsOptions, type NearestSegment, type RecognizeInkOptions, VECTOR_ARROWHEAD_LABELS, VECTOR_BLEND_MAX_SMOOTH_STEPS, VECTOR_BLEND_MAX_STEPS, VECTOR_BLEND_SPACING_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_DISTORT_TOLERANCE, VECTOR_EDIT_TOGGLES, VECTOR_EFFECT_DEFAULTS, VECTOR_EFFECT_LABELS, VECTOR_EFFECT_MENU, VECTOR_EFFECT_PARAM_SPECS, VECTOR_ENVELOPE_STYLE_OPTIONS, VECTOR_FILL_GAP, VECTOR_GRADIENT_INTERPOLATION_LABELS, VECTOR_GRADIENT_MIDPOINT_GAP, VECTOR_GRADIENT_OFF_BAR, VECTOR_GRADIENT_SPREAD_LABELS, VECTOR_GRADIENT_STOP_GAP, VECTOR_GRADIENT_TYPE_LABELS, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STROKE_GRADIENT_MODE_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, Vec2$1 as Vec2, type VectorActionResult, VectorAlign, VectorAnchor, VectorAnchorRef, VectorAnchorType, type VectorAppearanceShape, VectorArrange, VectorArrowAlign, VectorArrowhead, type VectorArrowheadShape, VectorAverageAxis, VectorBlend, type VectorBlendControls, type VectorBlendInput, VectorBlendOptions, type VectorBlendRail, VectorBlendSpacing, type VectorBlendStart, type VectorBooleanOperand, VectorBooleanOperation, VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCornerInfo, VectorCornerKind, type VectorCornerWidget, VectorDefaults, type VectorDistortMode, VectorDistribute, VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, VectorEffect, type VectorEffectParamSpec, VectorEffectParamsMap, VectorEffectType, type VectorEffectsPanelData, type VectorEffectsPanelItem, type VectorEnvelopePanelData, type VectorEnvelopeParams, VectorFillRule, VectorGradient, type VectorGradientAnnotator, type VectorGradientEditorData, VectorGradientHandle, VectorGradientInterpolation, type VectorGradientPart, VectorGradientPatch, VectorGradientSpread, VectorGradientStop, type VectorGradientTarget, VectorGradientType, VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, VectorHandleRef, type VectorHitTestOptions, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, VectorLineJoin, VectorMergeMode, VectorModifiers, type VectorMorph, type VectorMorphContour, type VectorMorphCorrespondence, type VectorMorphOptions, VectorNode, type VectorNodeListing, type VectorOverlayRenderData, VectorPaint, VectorPaintDef, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathKeyframe, VectorPathNode, type VectorPathfinderAction, VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointMap, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGradientAnnotator, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorRepeaterCopy, type VectorScaleSnap, type VectorSceneRenderData, VectorSegmentRef, type VectorSelectionBoxGeometry, type VectorSelectionFrame, type VectorSelectionStyle, type VectorShapeBuilderFace, type VectorShapeBuilderMap, type VectorShapeBuilderPlan, type VectorShapeBuilderResult, type VectorShapeInput, type VectorSnapGuides, type VectorSnapKind, type VectorSnapLeave, type VectorSnapOptions, VectorSnapTargets, VectorStrokeAlign, VectorStrokeGradientMode, type VectorStrokeParts, type VectorStrokeSpot, VectorStyle, VectorSubpath, VectorSvgExportOptions, type VectorTaperOptions, VectorTool, VectorTransformHandle, VectorViewport, VectorWarpMesh, type VectorWaveOptions, type VectorWidthHandle, VectorWidthPoint, type VectorWidthPointEdit, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, activeVectorEffects, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorBlendOptions, applyVectorEffects, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, clearVectorLiveBooleanCache, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, correspondMorphContours, createVectorCommands, createVectorEffect, createVectorMorph, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, distortVectorNode, effectPathLength, effectPathVertexCount, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, evaluateVectorPathKeyframes, expandVectorAppearance, expandVectorAppearances, expandVectorBlend, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, foldVectorBooleanOperands, generateVectorBlendChildren, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorBlendControls, getVectorCornerWidgets, getVectorEffectsPanel, getVectorEnteredGroups, getVectorEnvelopePanel, getVectorEnvelopeTarget, getVectorGradientAnnotator, getVectorGradientEditor, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasOwnVectorAppearance, hasPaint, hasStrokeExtras, hasVectorAppearance, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, hitVectorGradientAnnotator, inferAnchorType, insertAnchor, insertWidthPoint, interpolateMorphContours, interpolateRigidMatrix, interpolateVectorColor, interpolateVectorPaint, interpolateVectorPaths, interpolateVectorStyle, interpolateWidthProfiles, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorBlendGroup, isVectorLiveBoolean, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, mapBezierPath, mapVectorPoints, mapVectorSubpaths, matrixRotation, mergePaths, mirrorWidthProfile, morphContourToSubpath, morphPathsCross, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, normalizeVectorEffectParams, offsetPaths, pathsCenter, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, puckerBloatPaths, recognizeInkShape, rectSubpath, refineMorphContour, refreshVectorBlends, releaseVectorBlend, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, repeatPaths, resampleGradientStops, resolveVectorBlendOptions, reverseMorphContour, reverseSubpath, reverseWidthProfile, rotateMatrix, roundCornerPaths, roundSubpaths, samplePolyline, sanitizeVectorEffects, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathToMorphContour, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorEffects, transformVectorNode, translateAnchor, translateMatrix, trimIntervals, trimPaths, trimPathsIndividually, turnMorphContour, twistPaths, unionBounds, variableStrokeOutline, variableStrokeRings, vectorAppearanceNodes, vectorAppearanceOutline, vectorAppearanceShapes, vectorBlendColorDistance, vectorBlendKeyTargets, vectorBlendKeys, vectorBlendRail, vectorBlendRailAt, vectorBlendSpine, vectorBlendStepCount, vectorBoxCorners, vectorBuilderErasedEdges, vectorCornerAt, vectorCorners, vectorDiamondPath, vectorDistortQuad, vectorEffectInputBounds, vectorEffectInputPaths, vectorEnteredGroups, vectorEnvelopeFrame, vectorEnvelopeMap, vectorEnvelopeMesh, vectorFillMap, vectorGradientBarPosition, vectorGradientTargetPath, vectorInkShapeName, vectorLiveBooleanSteps, vectorMeshFromOutline, vectorMeshOutline, vectorNodeBounds, vectorNodeEnvelope, vectorNodeRotation, vectorNodeToBezier, vectorOperandOperation, vectorPaintToHex, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorRepeaterCopies, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorShearForSide, vectorSkewMatrix, vectorStrokeGradientDefs, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, wigglePaths, zigzagPaths };