@pixerate/editor 0.38.0 → 0.39.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.
@@ -1,4 +1,4 @@
1
- import { C as CanvasGradientDef, A as AffineMatrix, B as BezierPathInput, a as BezierPath, S as SvgGradientDef, b as StrokeJoin, c as StrokeCap, d as BezierSegment, P as PlanarMap, e as PathfinderOperation, f as PathfinderShape } from '../pathfinder-Bd87_lsQ.cjs';
1
+ import { C as CanvasGradientDef, A as AffineMatrix, B as BezierPathInput, a as BezierPath, S as SvgGradientDef, b as StrokeJoin, c as StrokeCap, d as BezierSegment, P as PlanarMap, e as PathfinderOperation, f as PathfinderShape } from '../pathfinder-DKRcXiLS.cjs';
2
2
  import { P as Point } from '../types-BFkYA4eF.cjs';
3
3
  import { H as HistoryManager } from '../HistoryManager-DeQQMBCj.cjs';
4
4
  import { C as CommandSpec } from '../registry-D0GADKc7.cjs';
@@ -1104,6 +1104,8 @@ interface VectorShapeBuilderResult {
1104
1104
  merged: string | null;
1105
1105
  faces: number;
1106
1106
  lines: number;
1107
+ /** Outline edges erased (cut out of the paths they lie on). */
1108
+ edges: number;
1107
1109
  }
1108
1110
  /** A face of the Shape Builder map (document units). */
1109
1111
  interface VectorShapeBuilderFace {
@@ -1584,8 +1586,11 @@ declare class VectorEditorController {
1584
1586
  * Shape Builder gesture along `points` (document units; one point is a click) over the faces
1585
1587
  * the selected (or given) paths make. Merges the faces touched into one shape styled like the
1586
1588
  * top-most shape over the first face (the current fill for a face only outlines enclose);
1587
- * with `erase` deletes them, and the pieces of unfilled open paths within `tolerance`. Every
1588
- * shape covering a touched face loses that area. One undo step.
1589
+ * with `erase` deletes them, the pieces of unfilled open paths and the edges of other outlines
1590
+ * (cut where paths meet) within `tolerance`: a deleted edge opens a closed subpath there,
1591
+ * splits an open one or takes a subpath it runs all the way round, and edges bounding a face
1592
+ * deleted in the same gesture go with the face. Every shape covering a touched face loses
1593
+ * that area; paths keep their own transforms. One undo step.
1589
1594
  */
1590
1595
  shapeBuilder(points: readonly Vec2[], options?: {
1591
1596
  ids?: readonly string[];
@@ -1975,18 +1980,24 @@ interface VectorOverlayRenderData {
1975
1980
  } | null;
1976
1981
  /**
1977
1982
  * Shape Builder and paint bucket highlight (screen space): `faces` are filled paths (fill
1978
- * them translucent and outline them), `lines` are line pieces an erase deletes, `trail` is
1979
- * the drag's polyline. `mode` is `merge`, `erase` (Alt) or `fill` (paint bucket).
1983
+ * them translucent and outline them), `hatches` the 45° hatch lines over each face
1984
+ * (`hatchPath`, a few pixels apart; merge and erase only, empty strings for the paint
1985
+ * bucket: stroke them over the translucent fill), `lines` are the line pieces and outline
1986
+ * edges an erase deletes, `trail` is the drag's polyline. `mode` is `merge`, `erase` (Alt)
1987
+ * or `fill` (paint bucket).
1980
1988
  */
1981
1989
  builder: {
1982
1990
  mode: 'merge' | 'erase' | 'fill';
1983
1991
  faces: string[];
1992
+ hatches: string[];
1984
1993
  lines: string[];
1985
1994
  trail: string | null;
1986
1995
  } | null;
1987
1996
  /** A short status, e.g. "W 120 × H 80" or "45°". */
1988
1997
  status: string | null;
1989
1998
  }
1999
+ /** Distance between the Shape Builder's hatch lines over a face (screen pixels). */
2000
+ declare const VECTOR_BUILDER_HATCH_GAP = 6;
1990
2001
  /**
1991
2002
  * The document layer. Render the nodes inside `<g transform={transform}>` and `defs` in a
1992
2003
  * `<defs>` block. Pass a unique `idPrefix` when several editors share a page.
@@ -2017,6 +2028,8 @@ declare const VECTOR_OVERLAY_THEME: {
2017
2028
  /** Shape Builder faces and line pieces an Alt gesture deletes. */
2018
2029
  readonly builderErase: "#ef4444";
2019
2030
  readonly builderEraseFill: "rgba(239, 68, 68, 0.22)";
2031
+ /** Opacity of the hatch lines over Shape Builder faces (drawn in the face's outline colour). */
2032
+ readonly builderHatchOpacity: 0.6;
2020
2033
  };
2021
2034
  /** SVG path data of the diamond a width point is drawn with (screen pixels). */
2022
2035
  declare function vectorDiamondPath(x: number, y: number, r?: number): string;
@@ -2521,11 +2534,16 @@ declare function vectorPathfinderShape(entry: VectorPathEntry, op: PathfinderOpe
2521
2534
  * in the paint of the area the edge bounds. Never carries the node's id, transform or geometry.
2522
2535
  */
2523
2536
  declare function vectorResultStyle(node: VectorPathNode, paint: VectorPathfinderPaint, edge?: boolean): Omit<VectorPathNode, 'id' | 'subpaths'>;
2524
- /** A piece of an unfilled open path between the points where other paths meet it. */
2537
+ /**
2538
+ * A run of a path between the points where other paths meet it (or it ends): a piece of an
2539
+ * unfilled open path, or an edge of another path's outline.
2540
+ */
2525
2541
  interface VectorBuilderLinePiece {
2526
2542
  path: BezierPath;
2527
2543
  segments: BezierSegment[];
2528
- /** Index of the entry it belongs to. */
2544
+ /** A loop with no junction on it (the whole subpath). */
2545
+ closed: boolean;
2546
+ /** Index of the entry it belongs to (the front-most where outlines coincide). */
2529
2547
  source: number;
2530
2548
  bounds: {
2531
2549
  minX: number;
@@ -2541,33 +2559,57 @@ interface VectorShapeBuilderMap {
2541
2559
  /** Entries with no closed subpath (cutting lines; their pieces can be erased). */
2542
2560
  lines: boolean[];
2543
2561
  pieces: VectorBuilderLinePiece[];
2562
+ /** The edges of the other entries' outlines, cut where paths meet (built on first use: erasing). */
2563
+ readonly edges: VectorBuilderLinePiece[];
2564
+ /** How far an edge may lie from the outline it came from (document units). */
2565
+ tolerance: number;
2544
2566
  }
2545
2567
  /** What a Shape Builder gesture touches at a point. */
2546
2568
  type VectorBuilderHit = {
2547
2569
  face: number;
2548
2570
  } | {
2549
2571
  line: number;
2572
+ } | {
2573
+ edge: number;
2550
2574
  };
2551
- /** The faces and line pieces a gesture touched, in the order touched. */
2575
+ /** The faces, line pieces and edges a gesture touched, in the order touched. */
2552
2576
  interface VectorBuilderTouched {
2553
2577
  faces: number[];
2554
2578
  lines: number[];
2579
+ edges: number[];
2555
2580
  }
2556
2581
  /**
2557
2582
  * The Shape Builder map of `entries` (bottom to top). Filled open subpaths that enclose an area
2558
2583
  * are closed. Null when nothing can be mapped.
2559
2584
  */
2560
2585
  declare function vectorShapeBuilderMap(entries: readonly VectorPathEntry[]): VectorShapeBuilderMap | null;
2561
- /** The face under `p`, or with `lineTolerance` (erasing) first the line piece that close. */
2586
+ /**
2587
+ * The face under `p`, or with `lineTolerance` (erasing) first the nearer of the line piece and
2588
+ * the outline edge that close.
2589
+ */
2562
2590
  declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2, lineTolerance?: number | null): VectorBuilderHit | null;
2563
2591
  /** Points along a polyline no more than `step` apart (the pointer's path through faces). */
2564
2592
  declare function samplePolyline(points: readonly Vec2[], step: number): Vec2[];
2565
2593
  /** Adds what a point hits to `touched` (each face or piece once). */
2566
2594
  declare function addBuilderHit(touched: VectorBuilderTouched, hit: VectorBuilderHit | null): boolean;
2567
- /** What becomes of one entry: unchanged (absent), removed (`null`), or new outlines (document space). */
2595
+ /**
2596
+ * The edges a gesture deletes: those it touched that bound none of the faces it touched (an edge
2597
+ * of a deleted or merged face goes with the face, so an erase drag that crosses an edge into a
2598
+ * face deletes the face).
2599
+ */
2600
+ declare function vectorBuilderErasedEdges(m: VectorShapeBuilderMap, touched: VectorBuilderTouched): number[];
2601
+ /**
2602
+ * What becomes of one entry: unchanged (absent), removed (`null`), or new outlines (document
2603
+ * space). `fill`: what is left of its area, filled non-zero (subpaths an erased edge opened stay
2604
+ * open); `outline`: its own outline with erased edges cut out, its fill rule kept; `pieces`: the
2605
+ * pieces of a cutting line that stay, each its own path.
2606
+ */
2568
2607
  type VectorBuilderReplacement = {
2569
2608
  kind: 'fill';
2570
2609
  path: BezierPath;
2610
+ } | {
2611
+ kind: 'outline';
2612
+ path: BezierPath;
2571
2613
  } | {
2572
2614
  kind: 'pieces';
2573
2615
  paths: BezierPath[];
@@ -2584,7 +2626,8 @@ interface VectorShapeBuilderPlan {
2584
2626
  /**
2585
2627
  * What a gesture does: merging (or with `erase`, deleting) the touched faces takes them away
2586
2628
  * from every shape covering them; line pieces touched (erasing) or lying between touched faces
2587
- * go; merging adds the union of the faces as a new shape styled like the top-most shape over the
2629
+ * go; erased edges (`vectorBuilderErasedEdges`) are cut out of every outline they lie on;
2630
+ * merging adds the union of the faces as a new shape styled like the top-most shape over the
2588
2631
  * first face touched (or, for a face only outlines enclose, the top-most shape with the current
2589
2632
  * fill).
2590
2633
  */
@@ -2595,4 +2638,4 @@ declare function planShapeBuilder(m: VectorShapeBuilderMap, touched: VectorBuild
2595
2638
  */
2596
2639
  declare function vectorFillMap(doc: VectorDocument, gap?: number): PlanarMap | null;
2597
2640
 
2598
- export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type NearestSegment, type RecognizeInkOptions, SvgGradientDef, VECTOR_ARROWHEADS, VECTOR_ARROWHEAD_LABELS, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KINDS, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_EDIT_TOGGLES, VECTOR_FILL_GAP, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATHFINDER_OPERATIONS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOLS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_TRANSFORM_HANDLES, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, type Vec2, type VectorActionResult, type VectorAlign, type VectorAnchor, type VectorAnchorRef, type VectorAnchorType, type VectorArrange, type VectorArrowAlign, type VectorArrowhead, type VectorArrowheadShape, type VectorAverageAxis, type VectorBooleanOperation, type VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCorner, type VectorCornerInfo, type VectorCornerKind, type VectorCornerWidget, type VectorDefaults, type VectorDistribute, type VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, type VectorFillRule, type VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, type VectorHandleRef, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, type VectorLineCap, type VectorLineJoin, type VectorMatrix, type VectorModifiers, type VectorNode, type VectorNodeListing, type VectorOverlayRenderData, type VectorPaint, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathNode, type VectorPathfinderAction, type VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, type VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorScaleSnap, type VectorSceneRenderData, type 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, type VectorStrokeAlign, type VectorStrokeParts, type VectorStrokeSpot, type VectorStyle, type VectorSubpath, type VectorSvgExportOptions, type VectorSvgImportOptions, type VectorTaperOptions, type VectorTool, type VectorTransformHandle, type VectorViewport, type VectorWaveOptions, type VectorWidthHandle, type VectorWidthPoint, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorCornersAttribute, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, createVectorCommands, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorCornerWidgets, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasPaint, hasStrokeExtras, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, inferAnchorType, insertAnchor, insertWidthPoint, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, matrixRotation, mirrorWidthProfile, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, parseSvgTransform, parseVectorSvg, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, recognizeInkShape, rectSubpath, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, reverseSubpath, reverseWidthProfile, rotateMatrix, roundSubpaths, samplePolyline, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorNode, translateAnchor, translateMatrix, unionBounds, variableStrokeOutline, variableStrokeRings, vectorCornerAt, vectorCorners, vectorCornersAttribute, vectorDiamondPath, vectorDocumentToSvg, vectorFillMap, vectorInkShapeName, vectorNodeBounds, vectorNodeRotation, vectorNodeToBezier, vectorPaintToHex, vectorPaintToSvg, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeSvgParts, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileFromAttribute, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, widthProfileToAttribute };
2641
+ export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type NearestSegment, type RecognizeInkOptions, SvgGradientDef, VECTOR_ARROWHEADS, VECTOR_ARROWHEAD_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KINDS, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_EDIT_TOGGLES, VECTOR_FILL_GAP, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATHFINDER_OPERATIONS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOLS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_TRANSFORM_HANDLES, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, type Vec2, type VectorActionResult, type VectorAlign, type VectorAnchor, type VectorAnchorRef, type VectorAnchorType, type VectorArrange, type VectorArrowAlign, type VectorArrowhead, type VectorArrowheadShape, type VectorAverageAxis, type VectorBooleanOperation, type VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCorner, type VectorCornerInfo, type VectorCornerKind, type VectorCornerWidget, type VectorDefaults, type VectorDistribute, type VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, type VectorFillRule, type VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, type VectorHandleRef, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, type VectorLineCap, type VectorLineJoin, type VectorMatrix, type VectorModifiers, type VectorNode, type VectorNodeListing, type VectorOverlayRenderData, type VectorPaint, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathNode, type VectorPathfinderAction, type VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, type VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorScaleSnap, type VectorSceneRenderData, type 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, type VectorStrokeAlign, type VectorStrokeParts, type VectorStrokeSpot, type VectorStyle, type VectorSubpath, type VectorSvgExportOptions, type VectorSvgImportOptions, type VectorTaperOptions, type VectorTool, type VectorTransformHandle, type VectorViewport, type VectorWaveOptions, type VectorWidthHandle, type VectorWidthPoint, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorCornersAttribute, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, createVectorCommands, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorCornerWidgets, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasPaint, hasStrokeExtras, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, inferAnchorType, insertAnchor, insertWidthPoint, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, matrixRotation, mirrorWidthProfile, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, parseSvgTransform, parseVectorSvg, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, recognizeInkShape, rectSubpath, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, reverseSubpath, reverseWidthProfile, rotateMatrix, roundSubpaths, samplePolyline, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorNode, translateAnchor, translateMatrix, unionBounds, variableStrokeOutline, variableStrokeRings, vectorBuilderErasedEdges, vectorCornerAt, vectorCorners, vectorCornersAttribute, vectorDiamondPath, vectorDocumentToSvg, vectorFillMap, vectorInkShapeName, vectorNodeBounds, vectorNodeRotation, vectorNodeToBezier, vectorPaintToHex, vectorPaintToSvg, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeSvgParts, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileFromAttribute, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, widthProfileToAttribute };
@@ -1,4 +1,4 @@
1
- import { C as CanvasGradientDef, A as AffineMatrix, B as BezierPathInput, a as BezierPath, S as SvgGradientDef, b as StrokeJoin, c as StrokeCap, d as BezierSegment, P as PlanarMap, e as PathfinderOperation, f as PathfinderShape } from '../pathfinder-fLmmFOJw.js';
1
+ import { C as CanvasGradientDef, A as AffineMatrix, B as BezierPathInput, a as BezierPath, S as SvgGradientDef, b as StrokeJoin, c as StrokeCap, d as BezierSegment, P as PlanarMap, e as PathfinderOperation, f as PathfinderShape } from '../pathfinder-D98S2lV5.js';
2
2
  import { P as Point } from '../types-BFkYA4eF.js';
3
3
  import { H as HistoryManager } from '../HistoryManager-DWSLd6Tf.js';
4
4
  import { C as CommandSpec } from '../registry-DhVUZioj.js';
@@ -1104,6 +1104,8 @@ interface VectorShapeBuilderResult {
1104
1104
  merged: string | null;
1105
1105
  faces: number;
1106
1106
  lines: number;
1107
+ /** Outline edges erased (cut out of the paths they lie on). */
1108
+ edges: number;
1107
1109
  }
1108
1110
  /** A face of the Shape Builder map (document units). */
1109
1111
  interface VectorShapeBuilderFace {
@@ -1584,8 +1586,11 @@ declare class VectorEditorController {
1584
1586
  * Shape Builder gesture along `points` (document units; one point is a click) over the faces
1585
1587
  * the selected (or given) paths make. Merges the faces touched into one shape styled like the
1586
1588
  * top-most shape over the first face (the current fill for a face only outlines enclose);
1587
- * with `erase` deletes them, and the pieces of unfilled open paths within `tolerance`. Every
1588
- * shape covering a touched face loses that area. One undo step.
1589
+ * with `erase` deletes them, the pieces of unfilled open paths and the edges of other outlines
1590
+ * (cut where paths meet) within `tolerance`: a deleted edge opens a closed subpath there,
1591
+ * splits an open one or takes a subpath it runs all the way round, and edges bounding a face
1592
+ * deleted in the same gesture go with the face. Every shape covering a touched face loses
1593
+ * that area; paths keep their own transforms. One undo step.
1589
1594
  */
1590
1595
  shapeBuilder(points: readonly Vec2[], options?: {
1591
1596
  ids?: readonly string[];
@@ -1975,18 +1980,24 @@ interface VectorOverlayRenderData {
1975
1980
  } | null;
1976
1981
  /**
1977
1982
  * Shape Builder and paint bucket highlight (screen space): `faces` are filled paths (fill
1978
- * them translucent and outline them), `lines` are line pieces an erase deletes, `trail` is
1979
- * the drag's polyline. `mode` is `merge`, `erase` (Alt) or `fill` (paint bucket).
1983
+ * them translucent and outline them), `hatches` the 45° hatch lines over each face
1984
+ * (`hatchPath`, a few pixels apart; merge and erase only, empty strings for the paint
1985
+ * bucket: stroke them over the translucent fill), `lines` are the line pieces and outline
1986
+ * edges an erase deletes, `trail` is the drag's polyline. `mode` is `merge`, `erase` (Alt)
1987
+ * or `fill` (paint bucket).
1980
1988
  */
1981
1989
  builder: {
1982
1990
  mode: 'merge' | 'erase' | 'fill';
1983
1991
  faces: string[];
1992
+ hatches: string[];
1984
1993
  lines: string[];
1985
1994
  trail: string | null;
1986
1995
  } | null;
1987
1996
  /** A short status, e.g. "W 120 × H 80" or "45°". */
1988
1997
  status: string | null;
1989
1998
  }
1999
+ /** Distance between the Shape Builder's hatch lines over a face (screen pixels). */
2000
+ declare const VECTOR_BUILDER_HATCH_GAP = 6;
1990
2001
  /**
1991
2002
  * The document layer. Render the nodes inside `<g transform={transform}>` and `defs` in a
1992
2003
  * `<defs>` block. Pass a unique `idPrefix` when several editors share a page.
@@ -2017,6 +2028,8 @@ declare const VECTOR_OVERLAY_THEME: {
2017
2028
  /** Shape Builder faces and line pieces an Alt gesture deletes. */
2018
2029
  readonly builderErase: "#ef4444";
2019
2030
  readonly builderEraseFill: "rgba(239, 68, 68, 0.22)";
2031
+ /** Opacity of the hatch lines over Shape Builder faces (drawn in the face's outline colour). */
2032
+ readonly builderHatchOpacity: 0.6;
2020
2033
  };
2021
2034
  /** SVG path data of the diamond a width point is drawn with (screen pixels). */
2022
2035
  declare function vectorDiamondPath(x: number, y: number, r?: number): string;
@@ -2521,11 +2534,16 @@ declare function vectorPathfinderShape(entry: VectorPathEntry, op: PathfinderOpe
2521
2534
  * in the paint of the area the edge bounds. Never carries the node's id, transform or geometry.
2522
2535
  */
2523
2536
  declare function vectorResultStyle(node: VectorPathNode, paint: VectorPathfinderPaint, edge?: boolean): Omit<VectorPathNode, 'id' | 'subpaths'>;
2524
- /** A piece of an unfilled open path between the points where other paths meet it. */
2537
+ /**
2538
+ * A run of a path between the points where other paths meet it (or it ends): a piece of an
2539
+ * unfilled open path, or an edge of another path's outline.
2540
+ */
2525
2541
  interface VectorBuilderLinePiece {
2526
2542
  path: BezierPath;
2527
2543
  segments: BezierSegment[];
2528
- /** Index of the entry it belongs to. */
2544
+ /** A loop with no junction on it (the whole subpath). */
2545
+ closed: boolean;
2546
+ /** Index of the entry it belongs to (the front-most where outlines coincide). */
2529
2547
  source: number;
2530
2548
  bounds: {
2531
2549
  minX: number;
@@ -2541,33 +2559,57 @@ interface VectorShapeBuilderMap {
2541
2559
  /** Entries with no closed subpath (cutting lines; their pieces can be erased). */
2542
2560
  lines: boolean[];
2543
2561
  pieces: VectorBuilderLinePiece[];
2562
+ /** The edges of the other entries' outlines, cut where paths meet (built on first use: erasing). */
2563
+ readonly edges: VectorBuilderLinePiece[];
2564
+ /** How far an edge may lie from the outline it came from (document units). */
2565
+ tolerance: number;
2544
2566
  }
2545
2567
  /** What a Shape Builder gesture touches at a point. */
2546
2568
  type VectorBuilderHit = {
2547
2569
  face: number;
2548
2570
  } | {
2549
2571
  line: number;
2572
+ } | {
2573
+ edge: number;
2550
2574
  };
2551
- /** The faces and line pieces a gesture touched, in the order touched. */
2575
+ /** The faces, line pieces and edges a gesture touched, in the order touched. */
2552
2576
  interface VectorBuilderTouched {
2553
2577
  faces: number[];
2554
2578
  lines: number[];
2579
+ edges: number[];
2555
2580
  }
2556
2581
  /**
2557
2582
  * The Shape Builder map of `entries` (bottom to top). Filled open subpaths that enclose an area
2558
2583
  * are closed. Null when nothing can be mapped.
2559
2584
  */
2560
2585
  declare function vectorShapeBuilderMap(entries: readonly VectorPathEntry[]): VectorShapeBuilderMap | null;
2561
- /** The face under `p`, or with `lineTolerance` (erasing) first the line piece that close. */
2586
+ /**
2587
+ * The face under `p`, or with `lineTolerance` (erasing) first the nearer of the line piece and
2588
+ * the outline edge that close.
2589
+ */
2562
2590
  declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2, lineTolerance?: number | null): VectorBuilderHit | null;
2563
2591
  /** Points along a polyline no more than `step` apart (the pointer's path through faces). */
2564
2592
  declare function samplePolyline(points: readonly Vec2[], step: number): Vec2[];
2565
2593
  /** Adds what a point hits to `touched` (each face or piece once). */
2566
2594
  declare function addBuilderHit(touched: VectorBuilderTouched, hit: VectorBuilderHit | null): boolean;
2567
- /** What becomes of one entry: unchanged (absent), removed (`null`), or new outlines (document space). */
2595
+ /**
2596
+ * The edges a gesture deletes: those it touched that bound none of the faces it touched (an edge
2597
+ * of a deleted or merged face goes with the face, so an erase drag that crosses an edge into a
2598
+ * face deletes the face).
2599
+ */
2600
+ declare function vectorBuilderErasedEdges(m: VectorShapeBuilderMap, touched: VectorBuilderTouched): number[];
2601
+ /**
2602
+ * What becomes of one entry: unchanged (absent), removed (`null`), or new outlines (document
2603
+ * space). `fill`: what is left of its area, filled non-zero (subpaths an erased edge opened stay
2604
+ * open); `outline`: its own outline with erased edges cut out, its fill rule kept; `pieces`: the
2605
+ * pieces of a cutting line that stay, each its own path.
2606
+ */
2568
2607
  type VectorBuilderReplacement = {
2569
2608
  kind: 'fill';
2570
2609
  path: BezierPath;
2610
+ } | {
2611
+ kind: 'outline';
2612
+ path: BezierPath;
2571
2613
  } | {
2572
2614
  kind: 'pieces';
2573
2615
  paths: BezierPath[];
@@ -2584,7 +2626,8 @@ interface VectorShapeBuilderPlan {
2584
2626
  /**
2585
2627
  * What a gesture does: merging (or with `erase`, deleting) the touched faces takes them away
2586
2628
  * from every shape covering them; line pieces touched (erasing) or lying between touched faces
2587
- * go; merging adds the union of the faces as a new shape styled like the top-most shape over the
2629
+ * go; erased edges (`vectorBuilderErasedEdges`) are cut out of every outline they lie on;
2630
+ * merging adds the union of the faces as a new shape styled like the top-most shape over the
2588
2631
  * first face touched (or, for a face only outlines enclose, the top-most shape with the current
2589
2632
  * fill).
2590
2633
  */
@@ -2595,4 +2638,4 @@ declare function planShapeBuilder(m: VectorShapeBuilderMap, touched: VectorBuild
2595
2638
  */
2596
2639
  declare function vectorFillMap(doc: VectorDocument, gap?: number): PlanarMap | null;
2597
2640
 
2598
- export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type NearestSegment, type RecognizeInkOptions, SvgGradientDef, VECTOR_ARROWHEADS, VECTOR_ARROWHEAD_LABELS, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KINDS, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_EDIT_TOGGLES, VECTOR_FILL_GAP, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATHFINDER_OPERATIONS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOLS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_TRANSFORM_HANDLES, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, type Vec2, type VectorActionResult, type VectorAlign, type VectorAnchor, type VectorAnchorRef, type VectorAnchorType, type VectorArrange, type VectorArrowAlign, type VectorArrowhead, type VectorArrowheadShape, type VectorAverageAxis, type VectorBooleanOperation, type VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCorner, type VectorCornerInfo, type VectorCornerKind, type VectorCornerWidget, type VectorDefaults, type VectorDistribute, type VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, type VectorFillRule, type VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, type VectorHandleRef, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, type VectorLineCap, type VectorLineJoin, type VectorMatrix, type VectorModifiers, type VectorNode, type VectorNodeListing, type VectorOverlayRenderData, type VectorPaint, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathNode, type VectorPathfinderAction, type VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, type VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorScaleSnap, type VectorSceneRenderData, type 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, type VectorStrokeAlign, type VectorStrokeParts, type VectorStrokeSpot, type VectorStyle, type VectorSubpath, type VectorSvgExportOptions, type VectorSvgImportOptions, type VectorTaperOptions, type VectorTool, type VectorTransformHandle, type VectorViewport, type VectorWaveOptions, type VectorWidthHandle, type VectorWidthPoint, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorCornersAttribute, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, createVectorCommands, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorCornerWidgets, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasPaint, hasStrokeExtras, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, inferAnchorType, insertAnchor, insertWidthPoint, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, matrixRotation, mirrorWidthProfile, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, parseSvgTransform, parseVectorSvg, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, recognizeInkShape, rectSubpath, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, reverseSubpath, reverseWidthProfile, rotateMatrix, roundSubpaths, samplePolyline, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorNode, translateAnchor, translateMatrix, unionBounds, variableStrokeOutline, variableStrokeRings, vectorCornerAt, vectorCorners, vectorCornersAttribute, vectorDiamondPath, vectorDocumentToSvg, vectorFillMap, vectorInkShapeName, vectorNodeBounds, vectorNodeRotation, vectorNodeToBezier, vectorPaintToHex, vectorPaintToSvg, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeSvgParts, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileFromAttribute, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, widthProfileToAttribute };
2641
+ export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type NearestSegment, type RecognizeInkOptions, SvgGradientDef, VECTOR_ARROWHEADS, VECTOR_ARROWHEAD_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KINDS, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_EDIT_TOGGLES, VECTOR_FILL_GAP, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATHFINDER_OPERATIONS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOLS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_TRANSFORM_HANDLES, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, type Vec2, type VectorActionResult, type VectorAlign, type VectorAnchor, type VectorAnchorRef, type VectorAnchorType, type VectorArrange, type VectorArrowAlign, type VectorArrowhead, type VectorArrowheadShape, type VectorAverageAxis, type VectorBooleanOperation, type VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCorner, type VectorCornerInfo, type VectorCornerKind, type VectorCornerWidget, type VectorDefaults, type VectorDistribute, type VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, type VectorFillRule, type VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, type VectorHandleRef, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, type VectorLineCap, type VectorLineJoin, type VectorMatrix, type VectorModifiers, type VectorNode, type VectorNodeListing, type VectorOverlayRenderData, type VectorPaint, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathNode, type VectorPathfinderAction, type VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, type VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorScaleSnap, type VectorSceneRenderData, type 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, type VectorStrokeAlign, type VectorStrokeParts, type VectorStrokeSpot, type VectorStyle, type VectorSubpath, type VectorSvgExportOptions, type VectorSvgImportOptions, type VectorTaperOptions, type VectorTool, type VectorTransformHandle, type VectorViewport, type VectorWaveOptions, type VectorWidthHandle, type VectorWidthPoint, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorCornersAttribute, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, createVectorCommands, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorCornerWidgets, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasPaint, hasStrokeExtras, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, inferAnchorType, insertAnchor, insertWidthPoint, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, matrixRotation, mirrorWidthProfile, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, parseSvgTransform, parseVectorSvg, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, recognizeInkShape, rectSubpath, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, reverseSubpath, reverseWidthProfile, rotateMatrix, roundSubpaths, samplePolyline, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorNode, translateAnchor, translateMatrix, unionBounds, variableStrokeOutline, variableStrokeRings, vectorBuilderErasedEdges, vectorCornerAt, vectorCorners, vectorCornersAttribute, vectorDiamondPath, vectorDocumentToSvg, vectorFillMap, vectorInkShapeName, vectorNodeBounds, vectorNodeRotation, vectorNodeToBezier, vectorPaintToHex, vectorPaintToSvg, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeSvgParts, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileFromAttribute, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, widthProfileToAttribute };