@svgsketch/core 6.1.0 → 6.3.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.
- package/dist/index.d.mts +1132 -910
- package/dist/index.d.ts +1132 -910
- package/dist/index.js +54 -54
- package/dist/index.mjs +54 -54
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -6217,6 +6217,18 @@ interface SceneTreeReplayHost {
|
|
|
6217
6217
|
*/
|
|
6218
6218
|
declare function replaySceneTreePlacements(sceneTree: readonly SerializedSceneNodePlacement[], host: SceneTreeReplayHost): void;
|
|
6219
6219
|
|
|
6220
|
+
/**
|
|
6221
|
+
* The root font size a document is resolved against when nothing authors one.
|
|
6222
|
+
*
|
|
6223
|
+
* CSS Values 4 gives `rem` the root element's computed font size, and SVG 2
|
|
6224
|
+
* inherits that. A document carries no browser, so the initial value is the
|
|
6225
|
+
* only answer available to a model-side resolver: reading the host page's
|
|
6226
|
+
* root font size instead would make the same authored `2em` mean different
|
|
6227
|
+
* geometry for a reader who has raised their browser's default text size.
|
|
6228
|
+
* Every path that resolves authored lengths shares this, so a length resolved
|
|
6229
|
+
* at import and the same length re-resolved during an edit agree.
|
|
6230
|
+
*/
|
|
6231
|
+
declare const INITIAL_ROOT_FONT_SIZE = 16;
|
|
6220
6232
|
interface SvgLengthContext {
|
|
6221
6233
|
readonly percentBasis?: number;
|
|
6222
6234
|
readonly viewportWidth?: number;
|
|
@@ -8759,11 +8771,21 @@ declare class SvgSourceDecodingError extends Error {
|
|
|
8759
8771
|
constructor(message: string, cause?: unknown | undefined);
|
|
8760
8772
|
}
|
|
8761
8773
|
/**
|
|
8762
|
-
* Decode an SVG XML byte stream
|
|
8774
|
+
* Decode an SVG XML byte stream.
|
|
8775
|
+
*
|
|
8776
|
+
* Precedence follows the browsers rather than the letter of XML 1.0:
|
|
8763
8777
|
*
|
|
8764
|
-
*
|
|
8765
|
-
*
|
|
8766
|
-
*
|
|
8778
|
+
* 1. A byte-order mark or a UTF-16 opening signature decides the encoding on
|
|
8779
|
+
* its own. XML 1.0 §4.3.3 makes a declaration that disagrees with the
|
|
8780
|
+
* signature a fatal error, but Blink and Gecko decode from the signature and
|
|
8781
|
+
* never consult the declaration afterwards (a UTF-8 BOM ahead of
|
|
8782
|
+
* `encoding="UTF-16"` renders in every browser), so the editor opens what
|
|
8783
|
+
* they render.
|
|
8784
|
+
* 2. Otherwise the declaration's label decides, resolved through the Encoding
|
|
8785
|
+
* Standard's label table.
|
|
8786
|
+
* 3. Otherwise UTF-8, as Appendix F prescribes.
|
|
8787
|
+
*
|
|
8788
|
+
* Decoding is fatal so malformed bytes cannot become a different document
|
|
8767
8789
|
* through replacement characters.
|
|
8768
8790
|
*/
|
|
8769
8791
|
declare function decodeSvgSourceBytes(bytes: Uint8Array): DecodedSvgSource;
|
|
@@ -10961,6 +10983,15 @@ declare function patternTileSize(pattern: Omit<PatternFill, 'id' | 'sourceId' |
|
|
|
10961
10983
|
* `isReusablePatternTile`).
|
|
10962
10984
|
*/
|
|
10963
10985
|
declare function patternLibraryDefToCustomPatternDef(def: PatternLibraryDef): CustomPatternDef | null;
|
|
10986
|
+
/**
|
|
10987
|
+
* The reusable tile a pattern def paints with, as the flat view the editor's
|
|
10988
|
+
* pattern pickers speak.
|
|
10989
|
+
*
|
|
10990
|
+
* Resolves both halves of the question a picker asks: which def owns the tile
|
|
10991
|
+
* (see `patternTileOwner`) and how big that tile is once the chain's geometry
|
|
10992
|
+
* is merged, so an alias and the pattern it inherits from answer identically.
|
|
10993
|
+
*/
|
|
10994
|
+
declare function resolvePatternTile(definitionOrId: PatternLibraryDef | string, library: readonly LibraryDef[]): CustomPatternDef | null;
|
|
10964
10995
|
|
|
10965
10996
|
/**
|
|
10966
10997
|
* What kind of string a payload slot holds.
|
|
@@ -12355,8 +12386,18 @@ type RenderDiagnosticSeverity = 'warning' | 'error';
|
|
|
12355
12386
|
* - `inert-text-path-morph`: a text shape carries a `textPathMorph` track
|
|
12356
12387
|
* but does not own the geometry its `<textPath>` follows (it links another
|
|
12357
12388
|
* shape or definition, or is not on a path), so the track was not emitted.
|
|
12358
|
-
|
|
12359
|
-
|
|
12389
|
+
* - `inert-variant-transition-content`: an `instanceVariant` segment adds or
|
|
12390
|
+
* crossfades an inner shape, but the definition is a native-shape def whose
|
|
12391
|
+
* single root element cannot host siblings (SVG 2 §5.5), so that content
|
|
12392
|
+
* was not emitted. Property animations on the root still are.
|
|
12393
|
+
* - `unresolved-variant-transition-pivot`: a variant segment rotates an inner
|
|
12394
|
+
* shape whose center is not analytic (text, containers) and no measurement
|
|
12395
|
+
* host was supplied, so the pivot-following rotation was not emitted.
|
|
12396
|
+
* - `shared-variant-transition-gradient`: a variant segment animates a
|
|
12397
|
+
* gradient definition that more than one shape references, so the animation
|
|
12398
|
+
* is visible on every referent rather than only the transitioning instance.
|
|
12399
|
+
*/
|
|
12400
|
+
declare const RENDER_DIAGNOSTIC_CODES: readonly ["unsupported-shape-type", "unsupported-polygon-type", "unresolved-reference", "undeclarable-namespace-prefix", "unresolved-container-pivot", "unresolved-reference-pivot", "duplicate-shape-id", "reference-cycle", "unresolved-svg-viewport", "symbol-cycle", "unresolved-symbol-definition", "duplicate-library-id", "invalid-symbol-viewport", "unresolved-symbol-viewport", "unresolved-symbol-pivot", "unknown-symbol-variant", "ambiguous-symbol-override-target", "unresolved-symbol-override-target", "unexpandable-appearance-stack", "inert-text-path-morph", "inert-variant-transition-content", "unresolved-variant-transition-pivot", "shared-variant-transition-gradient"];
|
|
12360
12401
|
type RenderDiagnosticCode = (typeof RENDER_DIAGNOSTIC_CODES)[number];
|
|
12361
12402
|
/** One machine-readable problem reported while producing render output. */
|
|
12362
12403
|
interface RenderDiagnostic {
|
|
@@ -12370,833 +12411,300 @@ interface RenderDiagnostic {
|
|
|
12370
12411
|
}
|
|
12371
12412
|
|
|
12372
12413
|
/**
|
|
12373
|
-
*
|
|
12374
|
-
* `symbol-instance` shape points at.
|
|
12375
|
-
*
|
|
12376
|
-
* A `symbol-instance` renders as `<use href="#target">` (SVG 2 §5.6), and
|
|
12377
|
-
* the target is not always the library def's own id. Variants and
|
|
12378
|
-
* per-instance overrides have no representation in the library - a
|
|
12379
|
-
* `SymbolLibraryDef` carries every variant's shapes, but which one an
|
|
12380
|
-
* instance selects, and what its overrides do to them, is instance state.
|
|
12381
|
-
* The renderer therefore MATERIALIZES a `<symbol>` per referenced
|
|
12382
|
-
* (def, variant, override) combination under a synthetic id:
|
|
12383
|
-
*
|
|
12384
|
-
* - no variant, no overrides -> `<def id>` (the library def)
|
|
12385
|
-
* - variant `state=hover` -> `<def id>--state_hover`
|
|
12386
|
-
* - any overrides -> `<def id>--ovr-<instance id>`
|
|
12387
|
-
*
|
|
12388
|
-
* Two call sites depend on that mapping and MUST agree on it, or a `<use>`
|
|
12389
|
-
* points at a def that was never emitted:
|
|
12390
|
-
*
|
|
12391
|
-
* 1. `renderShape` (shape-renderers.ts) writes the `<use href>`.
|
|
12392
|
-
* 2. `renderSymbolDefs` (svg-renderer.ts) emits the `<symbol>` bodies.
|
|
12393
|
-
*
|
|
12394
|
-
* They agree because both go through this module. `targetId` and
|
|
12395
|
-
* `resolveShapes` are two halves of one decision - the `--ovr-` id is
|
|
12396
|
-
* exactly the case where overrides are applied, the `--<variant>` id
|
|
12397
|
-
* exactly the case where a variant array replaces `def.shapes` - so they
|
|
12398
|
-
* live together and are never re-derived elsewhere.
|
|
12399
|
-
*
|
|
12400
|
-
* Dependency-free apart from types, so both the shape dispatcher and the
|
|
12401
|
-
* document renderer can import it without an import cycle.
|
|
12414
|
+
* Shared transform ownership for serialized container shapes.
|
|
12402
12415
|
*
|
|
12403
|
-
*
|
|
12416
|
+
* Imported groups preserve their source transform in `groupData.transform`.
|
|
12417
|
+
* Canonical shape transform state owns the SVG attribute whenever it produces
|
|
12418
|
+
* a non-identity matrix; the imported spelling is only the fallback. Rendering
|
|
12419
|
+
* and analytic tree bounds use this module so the two projections cannot pick
|
|
12420
|
+
* different owners.
|
|
12404
12421
|
*/
|
|
12405
12422
|
|
|
12406
|
-
type
|
|
12407
|
-
interface
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12423
|
+
type ContainerTransformOwner = 'canonical' | 'group-data' | 'none';
|
|
12424
|
+
interface ResolvedContainerTransform {
|
|
12425
|
+
matrix: Affine2D;
|
|
12426
|
+
attribute: string | null;
|
|
12427
|
+
owner: ContainerTransformOwner;
|
|
12411
12428
|
}
|
|
12412
|
-
interface
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
readonly materializationKey: string;
|
|
12418
|
-
readonly materialized: boolean;
|
|
12419
|
-
readonly diagnostics: readonly SymbolResolutionDiagnostic[];
|
|
12429
|
+
interface ContainerContentBounds {
|
|
12430
|
+
minX: number;
|
|
12431
|
+
minY: number;
|
|
12432
|
+
maxX: number;
|
|
12433
|
+
maxY: number;
|
|
12420
12434
|
}
|
|
12421
|
-
/** Resolve variant selection and recursive immutable overrides once for every surface. */
|
|
12422
|
-
declare function resolveSymbolInstanceContent(def: SymbolLibraryDef, instance: SerializedShape): ResolvedSymbolInstanceContent;
|
|
12423
12435
|
/**
|
|
12424
|
-
*
|
|
12425
|
-
*
|
|
12426
|
-
* Mirrors the editor-side `exportSymbolInstances` in
|
|
12427
|
-
* `apps/editor/src/canvas/svg-export-finalizer.ts` so an editor export and
|
|
12428
|
-
* a headless render of the same document target the same ids.
|
|
12429
|
-
*
|
|
12430
|
-
* `dedicated` forces the per-instance `--ovr-` id even without
|
|
12431
|
-
* overrides — the animated-export policy for instances driven by an
|
|
12432
|
-
* `instanceVariant` timeline track, whose injected variant-transition
|
|
12433
|
-
* animations must not bleed into sibling instances of the same def. The
|
|
12434
|
-
* editor's animated export materializes those dedicated defs and passes
|
|
12435
|
-
* the flag here so its `<use href>` retargeting and the def id agree.
|
|
12436
|
+
* Resolve the transform emitted on a container and the equivalent affine.
|
|
12437
|
+
* SVG 2 section 8.5 applies the transform to the container coordinate system.
|
|
12436
12438
|
*/
|
|
12437
|
-
declare function
|
|
12439
|
+
declare function resolveContainerTransform(state: SerializedShapeState, defaultPivot?: Point): ResolvedContainerTransform;
|
|
12440
|
+
/** Whether decomposed rotation, scale, or skew channels need a geometry pivot. */
|
|
12441
|
+
declare function containerTransformNeedsContentPivot(state: SerializedShapeState): boolean;
|
|
12442
|
+
/** Resolve container transform channels around the exact local content center. */
|
|
12443
|
+
declare function resolveContainerTransformFromContentBounds(state: SerializedShapeState, bounds: ContainerContentBounds | null): ResolvedContainerTransform;
|
|
12444
|
+
|
|
12438
12445
|
/**
|
|
12439
|
-
*
|
|
12440
|
-
* the selected variant (falling back to `def.shapes`, the default
|
|
12441
|
-
* variant, when the key is absent or unknown) with the instance's
|
|
12442
|
-
* per-shape overrides merged on top.
|
|
12446
|
+
* Pure geometry functions for computing shape vertices and paths.
|
|
12443
12447
|
*
|
|
12444
|
-
*
|
|
12445
|
-
*
|
|
12446
|
-
* shape-derived def ids such as `filter-<id>` - stable across
|
|
12447
|
-
* materializations.
|
|
12448
|
+
* These are headless — no DOM required. They take numeric parameters
|
|
12449
|
+
* and return vertex arrays or SVG path-data strings.
|
|
12448
12450
|
*/
|
|
12449
|
-
declare function resolveSymbolInstanceShapes(def: SymbolLibraryDef, instance: SerializedShape): SerializedShape[];
|
|
12450
12451
|
|
|
12451
|
-
type SymbolViewportDiagnosticCode = 'invalid-symbol-length' | 'invalid-symbol-viewbox' | 'unresolved-symbol-viewport';
|
|
12452
|
-
interface SymbolViewportDiagnostic {
|
|
12453
|
-
code: SymbolViewportDiagnosticCode;
|
|
12454
|
-
message: string;
|
|
12455
|
-
}
|
|
12456
|
-
interface SymbolLengthContext {
|
|
12457
|
-
axis: 'x' | 'y' | 'width' | 'height' | 'refX' | 'refY';
|
|
12458
|
-
percentBasis?: number;
|
|
12459
|
-
}
|
|
12460
|
-
interface SymbolViewportHost {
|
|
12461
|
-
resolveLength?: (value: string, context: SymbolLengthContext) => number | null;
|
|
12462
|
-
}
|
|
12463
|
-
interface ResolvedSymbolViewport {
|
|
12464
|
-
readonly kind: 'symbol' | 'group';
|
|
12465
|
-
readonly renders: boolean;
|
|
12466
|
-
readonly useX: number;
|
|
12467
|
-
readonly useY: number;
|
|
12468
|
-
readonly useAttributes: Readonly<AuthoredUseGeometry>;
|
|
12469
|
-
/** Mapping after the use element's own transform. Includes use x/y and def root. */
|
|
12470
|
-
readonly contentMatrix: Affine2D;
|
|
12471
|
-
readonly childPercentBasis: SvgViewportSize | null;
|
|
12472
|
-
readonly viewport: ResolvedSvgViewport | null;
|
|
12473
|
-
readonly diagnostics: readonly SymbolViewportDiagnostic[];
|
|
12474
|
-
}
|
|
12475
12452
|
/**
|
|
12476
|
-
*
|
|
12477
|
-
*
|
|
12478
|
-
* this result intentionally starts after that own transform.
|
|
12453
|
+
* Compute equally-spaced vertices around a circle (for triangle, ngon).
|
|
12454
|
+
* Path is centered at origin; caller applies translate(cx, cy).
|
|
12479
12455
|
*/
|
|
12480
|
-
declare function
|
|
12481
|
-
|
|
12482
|
-
type SymbolMaterializationDiagnosticCode = SymbolResolutionDiagnosticCode | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'symbol-cycle';
|
|
12483
|
-
interface SymbolMaterializationDiagnostic {
|
|
12484
|
-
readonly code: SymbolMaterializationDiagnosticCode;
|
|
12485
|
-
readonly shapeId: string;
|
|
12486
|
-
readonly message: string;
|
|
12487
|
-
}
|
|
12488
|
-
interface SymbolMaterialization {
|
|
12489
|
-
readonly materializationKey: string;
|
|
12490
|
-
readonly targetId: string;
|
|
12491
|
-
readonly candidateTargetId: string;
|
|
12492
|
-
readonly definition: SymbolLibraryDef;
|
|
12493
|
-
readonly shapes: readonly SerializedShape[];
|
|
12494
|
-
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
12495
|
-
readonly viewport: ResolvedSymbolViewport;
|
|
12496
|
-
}
|
|
12497
|
-
interface SymbolInstanceMaterialization {
|
|
12498
|
-
readonly targetId: string | null;
|
|
12499
|
-
readonly definition: SymbolLibraryDef | null;
|
|
12500
|
-
readonly materializationKey: string | null;
|
|
12501
|
-
/** Final occurrence-local materialization used by every render surface. */
|
|
12502
|
-
readonly materialization: SymbolMaterialization | null;
|
|
12503
|
-
readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
|
|
12504
|
-
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
12505
|
-
readonly viewport: ResolvedSymbolViewport | null;
|
|
12506
|
-
}
|
|
12507
|
-
interface SymbolMaterializationPlan {
|
|
12508
|
-
readonly materializations: readonly SymbolMaterialization[];
|
|
12509
|
-
readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
|
|
12510
|
-
resolve(instance: SerializedShape): SymbolInstanceMaterialization | undefined;
|
|
12511
|
-
}
|
|
12512
|
-
interface SymbolMaterializationPlanOptions {
|
|
12513
|
-
readonly reservedIds?: ReadonlySet<string>;
|
|
12514
|
-
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
12515
|
-
readonly viewportHost?: SymbolViewportHost;
|
|
12516
|
-
/**
|
|
12517
|
-
* Per-occurrence render policy supplied by a document surface.
|
|
12518
|
-
*
|
|
12519
|
-
* An `instanceVariant` animation starts from its first keyed state and
|
|
12520
|
-
* needs a dedicated target so injected animation never changes sibling
|
|
12521
|
-
* instances that otherwise share the same definition.
|
|
12522
|
-
*/
|
|
12523
|
-
readonly instancePolicy?: (instance: SerializedShape) => {
|
|
12524
|
-
readonly initialVariantKey?: string;
|
|
12525
|
-
readonly dedicated?: boolean;
|
|
12526
|
-
} | undefined;
|
|
12527
|
-
}
|
|
12456
|
+
declare function computePolygonVertices(sides: number, radius: number, shiftAngleDeg?: number): Point[];
|
|
12528
12457
|
/**
|
|
12529
|
-
*
|
|
12530
|
-
* one document. Cycle identity is semantic definition + variant + override
|
|
12531
|
-
* content, so finite cross-variant recursion remains legal while an actual
|
|
12532
|
-
* repeated shadow root is pruned before markup emission.
|
|
12458
|
+
* Compute star vertices with alternating outer/inner radii.
|
|
12533
12459
|
*/
|
|
12534
|
-
declare function
|
|
12535
|
-
|
|
12460
|
+
declare function computeStarVertices(arms: number, radius: number, innerRadiusPercent: number, shiftAngleDeg?: number): Point[];
|
|
12536
12461
|
/**
|
|
12537
|
-
*
|
|
12538
|
-
*
|
|
12539
|
-
* `<defs>` emission is reference-driven: a def is emitted only when
|
|
12540
|
-
* something in the rendered output points at it with `url(#id)`. Getting
|
|
12541
|
-
* that set right means walking more than the top-level shape array,
|
|
12542
|
-
* because two nesting mechanisms put `url(#…)` references into the output
|
|
12543
|
-
* without a top-level shape carrying them:
|
|
12544
|
-
*
|
|
12545
|
-
* 1. **Container children.** `<g>`, `<a>`, `<switch>` and nested `<svg>`
|
|
12546
|
-
* render `state.children` inline (see `renderContainerChildren` in
|
|
12547
|
-
* shape-renderers.ts), so a child's fill / filter / marker reference
|
|
12548
|
-
* is live in the document.
|
|
12549
|
-
* 2. **Library def contents.** A `<symbol>` or `<marker>` def emits its
|
|
12550
|
-
* inner shapes verbatim, so those shapes' references are live too -
|
|
12551
|
-
* SVG 2 §5.5 resolves them against the document `<defs>`, not against
|
|
12552
|
-
* any def-local scope.
|
|
12553
|
-
*
|
|
12554
|
-
* Both are transitive: a symbol's inner shape can be a group whose child
|
|
12555
|
-
* instantiates another symbol. Reachability is therefore a fixpoint, and
|
|
12556
|
-
* a symbol that (directly or indirectly) instantiates itself must not
|
|
12557
|
-
* spin - each def's contents are expanded at most once.
|
|
12558
|
-
*
|
|
12559
|
-
* This module is intentionally dependency-free apart from types so that
|
|
12560
|
-
* both `library-renderers.ts` (which emits the defs) and
|
|
12561
|
-
* `shape-renderers.ts` (which emits built-in `<marker>` defs) can share
|
|
12562
|
-
* one definition of "reachable" without an import cycle. The editor's
|
|
12563
|
-
* live `<defs>` reconciler (`MarkerManager`) shares it too, through
|
|
12564
|
-
* `forEachShapeInLibraryDefs` - which is what stops the canvas and the
|
|
12565
|
-
* exported file from disagreeing about which defs a document needs.
|
|
12566
|
-
*
|
|
12567
|
-
* @packageDocumentation
|
|
12462
|
+
* Compute cross vertices (12 points forming a plus shape).
|
|
12568
12463
|
*/
|
|
12569
|
-
|
|
12464
|
+
declare function computeCrossVertices(radius: number, armWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12570
12465
|
/**
|
|
12571
|
-
*
|
|
12572
|
-
*
|
|
12573
|
-
* A caller that already owns a keyed store of its defs (the editor's
|
|
12574
|
-
* `LibraryRegistry` is exactly such a map) can hand it straight to the
|
|
12575
|
-
* walkers instead of paying to rebuild an index per call - which matters
|
|
12576
|
-
* because the editor runs `collectReferencedMarkerIds` on the animation
|
|
12577
|
-
* path.
|
|
12466
|
+
* Compute arrow vertices (7 points forming an arrow).
|
|
12578
12467
|
*/
|
|
12579
|
-
|
|
12580
|
-
/** Accept either the array form or a prebuilt index. */
|
|
12581
|
-
type LibrarySource = readonly LibraryDef[] | LibraryIndex;
|
|
12468
|
+
declare function computeArrowVertices(radius: number, headWidthPercent: number, headLengthPercent: number, shaftWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12582
12469
|
/**
|
|
12583
|
-
*
|
|
12584
|
-
*
|
|
12585
|
-
*
|
|
12586
|
-
*
|
|
12587
|
-
*
|
|
12588
|
-
* Visit order is deterministic and stable: top-level shapes in document
|
|
12589
|
-
* order first, then the transitive frontier discovered from them. Callers
|
|
12590
|
-
* whose output order depends on discovery order can rely on that - and on
|
|
12591
|
-
* the fact that the top-level prefix is exactly the pre-transitive walk.
|
|
12592
|
-
*
|
|
12593
|
-
* `visit` may be called more than once for the same shape only if the
|
|
12594
|
-
* document itself contains it more than once (e.g. two symbols sharing an
|
|
12595
|
-
* inner shape object); accumulating callers should be idempotent.
|
|
12470
|
+
* Compute speech-bubble vertices — square body with a tail protruding at a
|
|
12471
|
+
* chosen angle. The base endpoints lie on the chosen body edge (keeping the
|
|
12472
|
+
* body outline continuous); the tip extends in the direction of `tailAngleDeg`
|
|
12473
|
+
* at length `tailLengthPercent * radius`.
|
|
12596
12474
|
*
|
|
12597
|
-
*
|
|
12598
|
-
* @param library Library defs available for reference resolution. Pass an
|
|
12599
|
-
* empty array to walk containers only.
|
|
12600
|
-
* @param visit Callback invoked per reachable shape.
|
|
12475
|
+
* The `shiftAngleDeg` rotates the entire shape (body + tail).
|
|
12601
12476
|
*/
|
|
12602
|
-
declare function
|
|
12477
|
+
declare function computeSpeechBubbleVertices(radius: number, tailAngleDeg: number, tailLengthPercent: number, tailWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12603
12478
|
/**
|
|
12604
|
-
*
|
|
12605
|
-
*
|
|
12606
|
-
*
|
|
12607
|
-
*
|
|
12608
|
-
* This is the half of reachability that a LIVE editor cannot answer from
|
|
12609
|
-
* its shape registry. Symbol-instance content is materialized as
|
|
12610
|
-
* temporary shapes that never enter the registry or the scene graph, so
|
|
12611
|
-
* a document-side walk sees the `symbolId` but nothing inside it. Seeding
|
|
12612
|
-
* from the def ids the document reaches recovers exactly the missing
|
|
12613
|
-
* frontier, and - because it is the same engine the export collector runs
|
|
12614
|
-
* - recovers it with identical nesting, variant, and cycle semantics.
|
|
12615
|
-
*
|
|
12616
|
-
* Ids that are absent from `library`, or that name a def with no contents
|
|
12617
|
-
* (paint servers, filters), are skipped.
|
|
12479
|
+
* Compute lightning-bolt vertices — a zigzag ribbon from top tip to bottom tip.
|
|
12480
|
+
* `boltSegments` line segments make the zigzag (alternating x offsets of
|
|
12481
|
+
* `boltJaggednessPercent * radius`); the ribbon is `boltWidthPercent * radius`
|
|
12482
|
+
* wide, perpendicular to each segment's bisector normal.
|
|
12618
12483
|
*/
|
|
12619
|
-
declare function
|
|
12484
|
+
declare function computeLightningVertices(radius: number, boltSegments: number, boltJaggednessPercent: number, boltWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12620
12485
|
/**
|
|
12621
|
-
*
|
|
12622
|
-
*
|
|
12623
|
-
*
|
|
12624
|
-
* `Path` fold those into their painted refs - see
|
|
12625
|
-
* `endpointMarkerAttributes` in codegen/helpers.ts and
|
|
12626
|
-
* `Line.getEffectiveMarkerRefs()` in the editor).
|
|
12627
|
-
*
|
|
12628
|
-
* One definition, shared by the export collector and by the editor's live
|
|
12629
|
-
* `<defs>` reconciler, so the two cannot disagree about what a given
|
|
12630
|
-
* state means.
|
|
12486
|
+
* Compute heart path — two cubic Béziers meeting at the bottom tip and the
|
|
12487
|
+
* upper cleft. `lobeRadiusPercent` controls the horizontal extent of the two
|
|
12488
|
+
* top lobes; `cleftDepthPercent` controls how deep the central dip sits.
|
|
12631
12489
|
*/
|
|
12632
|
-
declare function
|
|
12633
|
-
/** The built-in `<marker>` id a legacy endpoint name resolves to. */
|
|
12634
|
-
declare function legacyEndpointMarkerId(endpoint: string): string;
|
|
12490
|
+
declare function computeHeartPath(radius: number, lobeRadiusPercent: number, cleftDepthPercent: number, shiftAngleDeg?: number): string;
|
|
12635
12491
|
/**
|
|
12636
|
-
*
|
|
12637
|
-
*
|
|
12638
|
-
*
|
|
12492
|
+
* Compute cloud path — a classic cartoon-cloud silhouette built as the outer
|
|
12493
|
+
* boundary of N overlapping circles placed around an elongated ellipse.
|
|
12494
|
+
* Circles go all the way around (top, sides, bottom), and the silhouette is
|
|
12495
|
+
* closed by walking each circle's outer arc via the intersection with its
|
|
12496
|
+
* next neighbor. Every transition between bumps is tangent-smooth — no flat
|
|
12497
|
+
* edges, no corners.
|
|
12639
12498
|
*
|
|
12640
|
-
*
|
|
12641
|
-
*
|
|
12642
|
-
*
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
|
|
12646
|
-
*
|
|
12499
|
+
* `cloudBumps` (3..8) — number of bump circles forming the silhouette.
|
|
12500
|
+
* `cloudPuffinessPercent` (40..80) — drives bump overlap; higher values
|
|
12501
|
+
* smooth the underside; lower values leave the bumps more pronounced.
|
|
12502
|
+
*/
|
|
12503
|
+
declare function computeCloudPath(radius: number, cloudBumps: number, cloudPuffinessPercent: number, shiftAngleDeg?: number): string;
|
|
12504
|
+
/**
|
|
12505
|
+
* Convert an array of vertices to an SVG path string.
|
|
12506
|
+
* Supports optional rounded corners via quadratic Bézier.
|
|
12507
|
+
*/
|
|
12508
|
+
declare function verticesToPath(vertices: Point[], cornerRadius?: number, radius?: number): string;
|
|
12509
|
+
/**
|
|
12510
|
+
* Generate SVG path for a ring (two concentric circles).
|
|
12511
|
+
*/
|
|
12512
|
+
declare function computeRingPath(radius: number, innerRadiusPercent: number, fillRule?: 'nonzero' | 'evenodd'): string;
|
|
12513
|
+
/**
|
|
12514
|
+
* Generate SVG path for an Archimedean spiral.
|
|
12515
|
+
*/
|
|
12516
|
+
declare function computeSpiralPath(radius: number, turns: number, thicknessPercent: number, spiralDirection?: number, shiftAngleDeg?: number): string;
|
|
12517
|
+
declare function computeGearVertices(teeth: number, radius: number, toothDepthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12518
|
+
/**
|
|
12519
|
+
* Generate full gear path including optional center hole.
|
|
12520
|
+
*/
|
|
12521
|
+
declare function computeGearPath(teeth: number, radius: number, toothDepthPercent: number, cornerRadius?: number, holeRadiusPercent?: number, fillRule?: 'nonzero' | 'evenodd', shiftAngleDeg?: number): string;
|
|
12522
|
+
type CornerShape = 'round' | 'bevel' | 'notch' | 'scoop';
|
|
12523
|
+
/**
|
|
12524
|
+
* Generate SVG path for a rectangle with per-corner radius and shape.
|
|
12525
|
+
* Returns null if all corners are simple (use <rect> instead).
|
|
12526
|
+
*/
|
|
12527
|
+
declare function computeRectanglePath(x: number, y: number, width: number, height: number, cornerRadius: number, cornerShape?: CornerShape, cornerMode?: 'uniform' | 'non-uniform', perCorner?: {
|
|
12528
|
+
radiusTL?: number;
|
|
12529
|
+
radiusTR?: number;
|
|
12530
|
+
radiusBR?: number;
|
|
12531
|
+
radiusBL?: number;
|
|
12532
|
+
shapeTL?: CornerShape;
|
|
12533
|
+
shapeTR?: CornerShape;
|
|
12534
|
+
shapeBR?: CornerShape;
|
|
12535
|
+
shapeBL?: CornerShape;
|
|
12536
|
+
}): string | null;
|
|
12537
|
+
/** The six flowchart shapes that fit an axis-aligned (x, y, w, h) box. */
|
|
12538
|
+
type FlowchartBoxType = 'diamond' | 'parallelogram' | 'trapezoid' | 'terminator' | 'cylinder' | 'document-shape';
|
|
12539
|
+
/** Per-shape knob, expressed as a percentage of width or height. */
|
|
12540
|
+
interface FlowchartBoxParams {
|
|
12541
|
+
/** Parallelogram: horizontal slant as a percentage of width. */
|
|
12542
|
+
slantPercent?: number;
|
|
12543
|
+
/** Trapezoid: top edge width as a percentage of the bottom edge. */
|
|
12544
|
+
topWidthPercent?: number;
|
|
12545
|
+
/** Cylinder: elliptical cap height as a percentage of total height. */
|
|
12546
|
+
capHeightPercent?: number;
|
|
12547
|
+
/** Document: bottom wave amplitude as a percentage of height. */
|
|
12548
|
+
waveAmplitudePercent?: number;
|
|
12549
|
+
}
|
|
12550
|
+
/**
|
|
12551
|
+
* SVG path data for a flowchart box, in absolute canvas coordinates.
|
|
12647
12552
|
*
|
|
12648
|
-
*
|
|
12649
|
-
*
|
|
12650
|
-
*
|
|
12651
|
-
*
|
|
12652
|
-
*
|
|
12653
|
-
*
|
|
12654
|
-
* rather than by shared code.
|
|
12553
|
+
* Kept numerically identical to the editor's `generatePath()` methods in
|
|
12554
|
+
* `apps/editor/src/shapes/flowchart-shapes.ts` and `diamond.ts` so a
|
|
12555
|
+
* headless render and an editor export of the same document produce the
|
|
12556
|
+
* same silhouette. The defaults below mirror the editor's property
|
|
12557
|
+
* getters, which are what a document authored before a knob existed
|
|
12558
|
+
* falls back to.
|
|
12655
12559
|
*/
|
|
12656
|
-
declare function
|
|
12560
|
+
declare function computeFlowchartBoxPath(type: FlowchartBoxType, x: number, y: number, width: number, height: number, params?: FlowchartBoxParams): string;
|
|
12657
12561
|
/**
|
|
12658
|
-
*
|
|
12659
|
-
* `
|
|
12660
|
-
*
|
|
12661
|
-
* `markerEnd` - built-in (`mkr-builtin-arrow`, `line-marker-arrow`)
|
|
12662
|
-
* or user marker ids.
|
|
12663
|
-
* - `legacyEndpoints`: endpoint names from `state.startEndpoint` /
|
|
12664
|
-
* `endEndpoint` (e.g. `'arrow'`), which `Line` / `Path` emit as a
|
|
12665
|
-
* shortcut to built-in markers without explicit `marker-*` attrs.
|
|
12562
|
+
* Structural shape of one point in a spline/path model. Deliberately
|
|
12563
|
+
* looser than the `PathPoint` document type (string `pointType` /
|
|
12564
|
+
* `segmentType`) so editor and SDK point arrays both satisfy it.
|
|
12666
12565
|
*/
|
|
12667
|
-
interface
|
|
12668
|
-
|
|
12669
|
-
|
|
12566
|
+
interface SplinePointInput {
|
|
12567
|
+
x: number;
|
|
12568
|
+
y: number;
|
|
12569
|
+
handleIn?: Point;
|
|
12570
|
+
handleOut?: Point;
|
|
12571
|
+
pointType?: string;
|
|
12572
|
+
isSubpathStart?: boolean;
|
|
12573
|
+
subpathClosed?: boolean;
|
|
12574
|
+
moveRelative?: boolean;
|
|
12575
|
+
segmentRelative?: boolean;
|
|
12576
|
+
segmentType?: string;
|
|
12577
|
+
arcParams?: ArcParams;
|
|
12670
12578
|
}
|
|
12671
12579
|
/**
|
|
12672
|
-
*
|
|
12673
|
-
* level: container children render inline and `<symbol>` / `<marker>`
|
|
12674
|
-
* inner shapes emit verbatim, so a `marker-start="url(#line-marker-arrow)"`
|
|
12675
|
-
* written from inside a symbol needs its built-in def as much as a
|
|
12676
|
-
* top-level one does.
|
|
12580
|
+
* Compute SVG path data from spline points.
|
|
12677
12581
|
*/
|
|
12678
|
-
declare function collectMarkerReferences(shapes: readonly SerializedShape[], library?: LibrarySource): MarkerReferenceSets;
|
|
12679
12582
|
/**
|
|
12680
|
-
*
|
|
12681
|
-
*
|
|
12682
|
-
*
|
|
12583
|
+
* How the serializer treats the shorthand path commands whose validity
|
|
12584
|
+
* depends on measured geometry (`H`/`V` for axis-aligned lines, `S`/`T`
|
|
12585
|
+
* for reflected control points).
|
|
12683
12586
|
*
|
|
12684
|
-
*
|
|
12685
|
-
*
|
|
12686
|
-
*
|
|
12687
|
-
*
|
|
12587
|
+
* - `'preserve'` (default) — emit the shorthand whenever the geometry
|
|
12588
|
+
* satisfies it. This is what authored path data round-trips through.
|
|
12589
|
+
* - `'expand'` — always emit the long form (`L`, `C`, `Q`). Required
|
|
12590
|
+
* when serializing a sequence of `d` values that must interpolate:
|
|
12591
|
+
* SVG only animates between path values with identical command
|
|
12592
|
+
* structure (SVG 1.1 §19.2.15.3), and a vertex crossing into or out of
|
|
12593
|
+
* axis alignment silently changes which shorthand applies, which would
|
|
12594
|
+
* break the animation partway through.
|
|
12688
12595
|
*/
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
12709
|
-
|
|
12710
|
-
|
|
12711
|
-
|
|
12712
|
-
|
|
12713
|
-
|
|
12714
|
-
project: (read: PresentationValueReader, context: PresentationSemanticContext) => readonly PresentationWrite[];
|
|
12596
|
+
type PathShorthandPolicy = 'preserve' | 'expand';
|
|
12597
|
+
declare function computeSplinePath(points: readonly SplinePointInput[], curveType: string, closed?: boolean, tension?: number, arcParams?: readonly ArcParams[], shorthand?: PathShorthandPolicy): string;
|
|
12598
|
+
/**
|
|
12599
|
+
* Catmull-Rom spline emitted as cubic Bézier segments.
|
|
12600
|
+
*
|
|
12601
|
+
* This is an exact change of basis, NOT an approximation. Each
|
|
12602
|
+
* alpha-parameterized Catmull-Rom segment is a cubic polynomial in its
|
|
12603
|
+
* local parameter (Barry-Goldman), so the Bernstein basis represents it
|
|
12604
|
+
* with zero geometric loss at every alpha - verified against a direct
|
|
12605
|
+
* Barry-Goldman evaluation to ~1e-13 user units for alpha ∈ {0, ¼, ½, ¾, 1}.
|
|
12606
|
+
*
|
|
12607
|
+
* `C` is also the only option that renders: the Catmull-Rom path command
|
|
12608
|
+
* `R` exists solely in the SVG Paths Editor's Draft §4.8 and is
|
|
12609
|
+
* unimplemented in Blink, Gecko, and WebKit, all of which treat it as a
|
|
12610
|
+
* path-data error and draw nothing past it. Core's structured path parser
|
|
12611
|
+
* accepts `R`/`r` only through its explicit SVGSketch extension policy so
|
|
12612
|
+
* third-party editor-draft files can be canonicalized before persistence.)
|
|
12613
|
+
*
|
|
12614
|
+
* Pure implementation (no d3 dependency).
|
|
12615
|
+
*/
|
|
12616
|
+
interface CatmullRomCubicSegment {
|
|
12617
|
+
startIndex: number;
|
|
12618
|
+
endIndex: number;
|
|
12619
|
+
control1: Point;
|
|
12620
|
+
control2: Point;
|
|
12715
12621
|
}
|
|
12622
|
+
/** Exact cubic control points for one contiguous Catmull-Rom run. */
|
|
12623
|
+
declare function computeCatmullRomSegments(points: readonly SplinePointInput[], closed: boolean, tension: number): CatmullRomCubicSegment[];
|
|
12716
12624
|
/**
|
|
12717
|
-
*
|
|
12718
|
-
* component code generation, and the editor's incremental apply layer.
|
|
12625
|
+
* Compute a dash-array string for a given line style.
|
|
12719
12626
|
*
|
|
12720
|
-
*
|
|
12721
|
-
* style can make the final cap round, and unmodeled authored attributes
|
|
12722
|
-
* remain the final row so typed state keeps one deterministic owner.
|
|
12627
|
+
* @returns A `stroke-dasharray` value like `"8 4"`, or `null` for solid lines.
|
|
12723
12628
|
*/
|
|
12724
|
-
declare
|
|
12725
|
-
readonly id: "fill";
|
|
12726
|
-
readonly keys: readonly ["fillColor", "fillType", "fillGradient", "fillLibraryId", "inheritFill", "authoredFillPaint"];
|
|
12727
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12728
|
-
}, {
|
|
12729
|
-
readonly id: "element-opacity";
|
|
12730
|
-
readonly keys: readonly ["opacity", "preserveOpacity"];
|
|
12731
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12732
|
-
}, {
|
|
12733
|
-
readonly id: "fill-opacity";
|
|
12734
|
-
readonly keys: readonly ["fillOpacity", "preserveFillOpacity", "fillType", "fillGradient", "inheritFill"];
|
|
12735
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12736
|
-
}, {
|
|
12737
|
-
readonly id: "fill-rule";
|
|
12738
|
-
readonly keys: readonly ["fillRule"];
|
|
12739
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12740
|
-
}, {
|
|
12741
|
-
readonly id: "stroke";
|
|
12742
|
-
readonly keys: readonly ["borderColor", "strokeType", "strokeGradient", "strokeLibraryId", "inheritStroke", "authoredStrokePaint"];
|
|
12743
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12744
|
-
}, {
|
|
12745
|
-
readonly id: "stroke-width";
|
|
12746
|
-
readonly keys: readonly ["borderWidth"];
|
|
12747
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12748
|
-
}, {
|
|
12749
|
-
readonly id: "stroke-opacity";
|
|
12750
|
-
readonly keys: readonly ["strokeOpacity", "preserveStrokeOpacity", "strokeType", "strokeGradient", "inheritStroke"];
|
|
12751
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12752
|
-
}, {
|
|
12753
|
-
readonly id: "blend-mode";
|
|
12754
|
-
readonly keys: readonly ["blendMode"];
|
|
12755
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12756
|
-
}, {
|
|
12757
|
-
readonly id: "paint-order";
|
|
12758
|
-
readonly keys: readonly ["paintOrder"];
|
|
12759
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12760
|
-
}, {
|
|
12761
|
-
readonly id: "inline-style";
|
|
12762
|
-
readonly keys: readonly ["inlineStyle"];
|
|
12763
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12764
|
-
}, {
|
|
12765
|
-
readonly id: "markers";
|
|
12766
|
-
readonly keys: readonly ["markerStart", "markerMid", "markerEnd"];
|
|
12767
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12768
|
-
}, {
|
|
12769
|
-
readonly id: "stroke-linejoin";
|
|
12770
|
-
readonly keys: readonly ["strokeLinejoin"];
|
|
12771
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12772
|
-
}, {
|
|
12773
|
-
readonly id: "stroke-linecap";
|
|
12774
|
-
readonly keys: readonly ["strokeLinecap"];
|
|
12775
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12776
|
-
}, {
|
|
12777
|
-
readonly id: "stroke-miterlimit";
|
|
12778
|
-
readonly keys: readonly ["strokeMiterlimit"];
|
|
12779
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12780
|
-
}, {
|
|
12781
|
-
readonly id: "stroke-dasharray";
|
|
12782
|
-
readonly keys: readonly ["lineStyle", "dashLength", "gapLength", "strokeDasharray", "strokeLinecap"];
|
|
12783
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12784
|
-
}, {
|
|
12785
|
-
readonly id: "stroke-dashoffset";
|
|
12786
|
-
readonly keys: readonly ["dashOffset"];
|
|
12787
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12788
|
-
}, {
|
|
12789
|
-
readonly id: "shape-rendering";
|
|
12790
|
-
readonly keys: readonly ["shapeRendering"];
|
|
12791
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12792
|
-
}, {
|
|
12793
|
-
readonly id: "text-rendering";
|
|
12794
|
-
readonly keys: readonly ["textRendering"];
|
|
12795
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12796
|
-
}, {
|
|
12797
|
-
readonly id: "image-rendering";
|
|
12798
|
-
readonly keys: readonly ["imageRendering"];
|
|
12799
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12800
|
-
}, {
|
|
12801
|
-
readonly id: "color-rendering";
|
|
12802
|
-
readonly keys: readonly ["colorRendering"];
|
|
12803
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12804
|
-
}, {
|
|
12805
|
-
readonly id: "color-interpolation";
|
|
12806
|
-
readonly keys: readonly ["colorInterpolation"];
|
|
12807
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12808
|
-
}, {
|
|
12809
|
-
readonly id: "filter";
|
|
12810
|
-
readonly keys: readonly ["filters", "filterLibraryIds"];
|
|
12811
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12812
|
-
}, {
|
|
12813
|
-
readonly id: "system-language";
|
|
12814
|
-
readonly keys: readonly ["systemLanguage"];
|
|
12815
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12816
|
-
}, {
|
|
12817
|
-
readonly id: "required-extensions";
|
|
12818
|
-
readonly keys: readonly ["requiredExtensions"];
|
|
12819
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12820
|
-
}, {
|
|
12821
|
-
readonly id: "vector-effect";
|
|
12822
|
-
readonly keys: readonly ["vectorEffect"];
|
|
12823
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12824
|
-
}, {
|
|
12825
|
-
readonly id: "visibility";
|
|
12826
|
-
readonly keys: readonly ["visibility"];
|
|
12827
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12828
|
-
}, {
|
|
12829
|
-
readonly id: "display";
|
|
12830
|
-
readonly keys: readonly ["displayAttr"];
|
|
12831
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12832
|
-
}, {
|
|
12833
|
-
readonly id: "visible";
|
|
12834
|
-
readonly keys: readonly ["visible"];
|
|
12835
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12836
|
-
}, {
|
|
12837
|
-
readonly id: "path-length";
|
|
12838
|
-
readonly keys: readonly ["pathLength"];
|
|
12839
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12840
|
-
}, {
|
|
12841
|
-
readonly id: "transform-box";
|
|
12842
|
-
readonly keys: readonly ["transformBox"];
|
|
12843
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12844
|
-
}, {
|
|
12845
|
-
readonly id: "transform";
|
|
12846
|
-
readonly keys: readonly ["rotation", "transformMatrix", "translateX", "translateY", "skewX", "skewY", "scaleX", "scaleY", "customPivot", "rawTransform"];
|
|
12847
|
-
readonly project: () => never[];
|
|
12848
|
-
}, {
|
|
12849
|
-
readonly id: "locked";
|
|
12850
|
-
readonly keys: readonly ["locked"];
|
|
12851
|
-
readonly project: () => never[];
|
|
12852
|
-
}, {
|
|
12853
|
-
readonly id: "metadata";
|
|
12854
|
-
readonly keys: readonly ["metadata"];
|
|
12855
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12856
|
-
}, {
|
|
12857
|
-
readonly id: "css-clip-path";
|
|
12858
|
-
readonly keys: readonly ["cssClipPath"];
|
|
12859
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12860
|
-
}, {
|
|
12861
|
-
readonly id: "css-mask-properties";
|
|
12862
|
-
readonly keys: readonly ["cssMaskProperties"];
|
|
12863
|
-
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
12864
|
-
}, {
|
|
12865
|
-
readonly id: "container-presentation";
|
|
12866
|
-
readonly keys: readonly ["containerPresentation"];
|
|
12867
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12868
|
-
}, {
|
|
12869
|
-
readonly id: "authored-attributes";
|
|
12870
|
-
readonly keys: readonly ["authoredAttributes"];
|
|
12871
|
-
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
12872
|
-
}];
|
|
12873
|
-
type PresentationSemanticId = (typeof PRESENTATION_SEMANTICS)[number]['id'];
|
|
12874
|
-
declare function projectPresentationEntry(entry: PresentationSemanticEntry, read: PresentationValueReader, context: PresentationSemanticContext): readonly PresentationWrite[];
|
|
12875
|
-
declare function projectPresentation(read: PresentationValueReader, context: PresentationSemanticContext): PresentationWrite[];
|
|
12876
|
-
declare function serializedPresentationReader(state: SerializedShapeState): PresentationValueReader;
|
|
12877
|
-
|
|
12878
|
-
type DefinitionAttribute = readonly [name: string, value: string | number];
|
|
12879
|
-
interface GradientStopEnvelope {
|
|
12880
|
-
attributes: readonly DefinitionAttribute[];
|
|
12881
|
-
}
|
|
12882
|
-
interface GradientDefinitionEnvelope {
|
|
12883
|
-
element: 'linearGradient' | 'radialGradient';
|
|
12884
|
-
attributes: readonly DefinitionAttribute[];
|
|
12885
|
-
stops: readonly GradientStopEnvelope[];
|
|
12886
|
-
}
|
|
12887
|
-
interface PatternDefinitionEnvelope {
|
|
12888
|
-
attributes: readonly DefinitionAttribute[];
|
|
12889
|
-
content: string;
|
|
12890
|
-
}
|
|
12891
|
-
type FilterColorInterpolation = 'auto' | 'sRGB' | 'linearRGB';
|
|
12892
|
-
type FilterUnits = 'userSpaceOnUse' | 'objectBoundingBox';
|
|
12893
|
-
interface FilterElementAttrs {
|
|
12894
|
-
colorInterpolation?: FilterColorInterpolation | null;
|
|
12895
|
-
filterUnits?: FilterUnits;
|
|
12896
|
-
primitiveUnits?: FilterUnits;
|
|
12897
|
-
x?: string;
|
|
12898
|
-
y?: string;
|
|
12899
|
-
width?: string;
|
|
12900
|
-
height?: string;
|
|
12901
|
-
}
|
|
12902
|
-
interface FilterEnvelopeBase {
|
|
12903
|
-
attributes: readonly DefinitionAttribute[];
|
|
12904
|
-
}
|
|
12905
|
-
interface RawFilterEnvelope extends FilterEnvelopeBase {
|
|
12906
|
-
kind: 'raw';
|
|
12907
|
-
content: string;
|
|
12908
|
-
}
|
|
12909
|
-
interface PrimitiveChainFilterEnvelope extends FilterEnvelopeBase {
|
|
12910
|
-
kind: 'primitive-chain';
|
|
12911
|
-
chain: SvgPrimitiveChainFilter;
|
|
12912
|
-
}
|
|
12913
|
-
interface GeneratedFilterEnvelope extends FilterEnvelopeBase {
|
|
12914
|
-
kind: 'generated';
|
|
12915
|
-
filters: readonly ShapeFilter[];
|
|
12916
|
-
primitiveUnits: FilterUnits;
|
|
12917
|
-
}
|
|
12918
|
-
type FilterDefinitionEnvelope = RawFilterEnvelope | PrimitiveChainFilterEnvelope | GeneratedFilterEnvelope;
|
|
12919
|
-
/**
|
|
12920
|
-
* Build the one portable pattern definition consumed by static rendering and
|
|
12921
|
-
* platform projections. SVG 2 section 14.3 keeps tile lengths on the pattern
|
|
12922
|
-
* resource, so valid source spellings remain authoritative over the numeric
|
|
12923
|
-
* editor projection.
|
|
12924
|
-
*/
|
|
12925
|
-
declare function patternDefinitionEnvelope(id: string, pattern: PatternFill): PatternDefinitionEnvelope;
|
|
12926
|
-
declare function linearGradientEnvelope(id: string, gradient: LinearGradient): GradientDefinitionEnvelope;
|
|
12927
|
-
declare function radialGradientEnvelope(id: string, gradient: RadialGradient): GradientDefinitionEnvelope;
|
|
12928
|
-
declare function filterChainExtendsBounds(filters: readonly ShapeFilter[]): boolean;
|
|
12929
|
-
declare function filterDefinitionEnvelope(filterId: string, filters: readonly ShapeFilter[], attrs?: FilterElementAttrs): FilterDefinitionEnvelope | null;
|
|
12629
|
+
declare function computeDashArray(style: string, dashLength: number, gapLength: number): string | null;
|
|
12930
12630
|
|
|
12931
12631
|
/**
|
|
12932
|
-
*
|
|
12632
|
+
* Analytic bounds for SVG path geometry.
|
|
12933
12633
|
*
|
|
12934
|
-
*
|
|
12935
|
-
*
|
|
12936
|
-
*
|
|
12937
|
-
*
|
|
12938
|
-
*
|
|
12634
|
+
* Computes the FILL-geometry axis-aligned bounding box of path data,
|
|
12635
|
+
* the same rectangle `SVGGraphicsElement.getBBox()` reports (SVG 2 section 8.10:
|
|
12636
|
+
* fill geometry only, with no stroke, no markers, no clip, and no
|
|
12637
|
+
* element transform) with no DOM, no layout, and no measurement. Callers may
|
|
12638
|
+
* supply an affine map to request the exact box in another user coordinate
|
|
12639
|
+
* system, as defined by SVG 2 sections 8.2, 8.6, 8.7, and 8.10.
|
|
12640
|
+
*
|
|
12641
|
+
* ## Shared command geometry
|
|
12642
|
+
*
|
|
12643
|
+
* `computeSplinePath` in `./geometry` is the single source of truth for
|
|
12644
|
+
* what a point model *denotes*: it resolves curve type (linear, cubic,
|
|
12645
|
+
* quadratic, arc, catmull-rom, basis, mixed), subpath breaks, closing
|
|
12646
|
+
* segments, and the H/V/S/T shorthand demotions. Deriving bounds from a
|
|
12647
|
+
* second, independent traversal of the point model would duplicate those
|
|
12648
|
+
* rules. The model entry point consumes the serializer's numeric command
|
|
12649
|
+
* stream directly, avoiding text construction and parsing. Dedicated
|
|
12650
|
+
* whole-path generators retain the text route. Both routes use the same
|
|
12651
|
+
* extrema kernel and preserve the geometry represented by the rendered d.
|
|
12652
|
+
*
|
|
12653
|
+
* `pathDataBounds` is equally useful on its own for imported or
|
|
12654
|
+
* hand-authored `d` strings, so both layers are public.
|
|
12655
|
+
*
|
|
12656
|
+
* ## Precision
|
|
12657
|
+
*
|
|
12658
|
+
* Cubic and quadratic extrema are exact (roots of the derivative).
|
|
12659
|
+
* Elliptical-arc extrema are exact for the true ellipse. Browsers
|
|
12660
|
+
* decompose arcs into ≤90° cubic Bézier approximations before measuring
|
|
12661
|
+
* (Blink: `SVGPathNormalizer::DecomposeArcToCubic`), so a browser's
|
|
12662
|
+
* `getBBox` can differ from the exact ellipse extent by the
|
|
12663
|
+
* approximation error of that decomposition — bounded by roughly
|
|
12664
|
+
* 2.7e-4 · r, and zero whenever the extremum lands on a segment
|
|
12665
|
+
* endpoint or midpoint (the classic k = 4/3·tan(Δθ/4) construction
|
|
12666
|
+
* interpolates both). The exact value is the spec-correct one, so this
|
|
12667
|
+
* module reports it rather than reproducing the browser's
|
|
12668
|
+
* approximation.
|
|
12939
12669
|
*/
|
|
12940
12670
|
|
|
12941
|
-
|
|
12942
|
-
interface
|
|
12943
|
-
matrix: Affine2D;
|
|
12944
|
-
attribute: string | null;
|
|
12945
|
-
owner: ContainerTransformOwner;
|
|
12946
|
-
}
|
|
12947
|
-
interface ContainerContentBounds {
|
|
12671
|
+
/** Axis-aligned rectangle in the coordinate system of the path data. */
|
|
12672
|
+
interface PathBoundsRect {
|
|
12948
12673
|
minX: number;
|
|
12949
12674
|
minY: number;
|
|
12950
12675
|
maxX: number;
|
|
12951
12676
|
maxY: number;
|
|
12952
12677
|
}
|
|
12678
|
+
/** One-dimensional interval, the per-axis result of a curve extent. */
|
|
12679
|
+
interface Extent1D {
|
|
12680
|
+
min: number;
|
|
12681
|
+
max: number;
|
|
12682
|
+
}
|
|
12953
12683
|
/**
|
|
12954
|
-
*
|
|
12955
|
-
*
|
|
12684
|
+
* Center parameterization of an elliptical arc — the form in which the
|
|
12685
|
+
* arc's extrema are solvable. See SVG 2 Appendix B.2.2.
|
|
12956
12686
|
*/
|
|
12957
|
-
|
|
12958
|
-
/**
|
|
12959
|
-
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12687
|
+
interface ArcCenterParameterization {
|
|
12688
|
+
/** Ellipse center, user space. */
|
|
12689
|
+
cx: number;
|
|
12690
|
+
cy: number;
|
|
12691
|
+
/** Radii after the B.2.5 sign and out-of-range corrections. */
|
|
12692
|
+
rx: number;
|
|
12693
|
+
ry: number;
|
|
12694
|
+
/** X-axis rotation, RADIANS (the endpoint form carries degrees). */
|
|
12695
|
+
phi: number;
|
|
12696
|
+
/** Start angle, radians. */
|
|
12697
|
+
theta1: number;
|
|
12698
|
+
/** Swept angle, radians; signed — negative sweeps run counterclockwise. */
|
|
12699
|
+
deltaTheta: number;
|
|
12700
|
+
}
|
|
12963
12701
|
/**
|
|
12964
|
-
*
|
|
12702
|
+
* Exact extent of one axis of a cubic Bézier.
|
|
12965
12703
|
*
|
|
12966
|
-
*
|
|
12967
|
-
*
|
|
12968
|
-
|
|
12969
|
-
|
|
12970
|
-
/**
|
|
12971
|
-
* Compute equally-spaced vertices around a circle (for triangle, ngon).
|
|
12972
|
-
* Path is centered at origin; caller applies translate(cx, cy).
|
|
12973
|
-
*/
|
|
12974
|
-
declare function computePolygonVertices(sides: number, radius: number, shiftAngleDeg?: number): Point[];
|
|
12975
|
-
/**
|
|
12976
|
-
* Compute star vertices with alternating outer/inner radii.
|
|
12977
|
-
*/
|
|
12978
|
-
declare function computeStarVertices(arms: number, radius: number, innerRadiusPercent: number, shiftAngleDeg?: number): Point[];
|
|
12979
|
-
/**
|
|
12980
|
-
* Compute cross vertices (12 points forming a plus shape).
|
|
12981
|
-
*/
|
|
12982
|
-
declare function computeCrossVertices(radius: number, armWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12983
|
-
/**
|
|
12984
|
-
* Compute arrow vertices (7 points forming an arrow).
|
|
12985
|
-
*/
|
|
12986
|
-
declare function computeArrowVertices(radius: number, headWidthPercent: number, headLengthPercent: number, shaftWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12987
|
-
/**
|
|
12988
|
-
* Compute speech-bubble vertices — square body with a tail protruding at a
|
|
12989
|
-
* chosen angle. The base endpoints lie on the chosen body edge (keeping the
|
|
12990
|
-
* body outline continuous); the tip extends in the direction of `tailAngleDeg`
|
|
12991
|
-
* at length `tailLengthPercent * radius`.
|
|
12992
|
-
*
|
|
12993
|
-
* The `shiftAngleDeg` rotates the entire shape (body + tail).
|
|
12994
|
-
*/
|
|
12995
|
-
declare function computeSpeechBubbleVertices(radius: number, tailAngleDeg: number, tailLengthPercent: number, tailWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
12996
|
-
/**
|
|
12997
|
-
* Compute lightning-bolt vertices — a zigzag ribbon from top tip to bottom tip.
|
|
12998
|
-
* `boltSegments` line segments make the zigzag (alternating x offsets of
|
|
12999
|
-
* `boltJaggednessPercent * radius`); the ribbon is `boltWidthPercent * radius`
|
|
13000
|
-
* wide, perpendicular to each segment's bisector normal.
|
|
13001
|
-
*/
|
|
13002
|
-
declare function computeLightningVertices(radius: number, boltSegments: number, boltJaggednessPercent: number, boltWidthPercent: number, shiftAngleDeg?: number): Point[];
|
|
13003
|
-
/**
|
|
13004
|
-
* Compute heart path — two cubic Béziers meeting at the bottom tip and the
|
|
13005
|
-
* upper cleft. `lobeRadiusPercent` controls the horizontal extent of the two
|
|
13006
|
-
* top lobes; `cleftDepthPercent` controls how deep the central dip sits.
|
|
13007
|
-
*/
|
|
13008
|
-
declare function computeHeartPath(radius: number, lobeRadiusPercent: number, cleftDepthPercent: number, shiftAngleDeg?: number): string;
|
|
13009
|
-
/**
|
|
13010
|
-
* Compute cloud path — a classic cartoon-cloud silhouette built as the outer
|
|
13011
|
-
* boundary of N overlapping circles placed around an elongated ellipse.
|
|
13012
|
-
* Circles go all the way around (top, sides, bottom), and the silhouette is
|
|
13013
|
-
* closed by walking each circle's outer arc via the intersection with its
|
|
13014
|
-
* next neighbor. Every transition between bumps is tangent-smooth — no flat
|
|
13015
|
-
* edges, no corners.
|
|
13016
|
-
*
|
|
13017
|
-
* `cloudBumps` (3..8) — number of bump circles forming the silhouette.
|
|
13018
|
-
* `cloudPuffinessPercent` (40..80) — drives bump overlap; higher values
|
|
13019
|
-
* smooth the underside; lower values leave the bumps more pronounced.
|
|
13020
|
-
*/
|
|
13021
|
-
declare function computeCloudPath(radius: number, cloudBumps: number, cloudPuffinessPercent: number, shiftAngleDeg?: number): string;
|
|
13022
|
-
/**
|
|
13023
|
-
* Convert an array of vertices to an SVG path string.
|
|
13024
|
-
* Supports optional rounded corners via quadratic Bézier.
|
|
13025
|
-
*/
|
|
13026
|
-
declare function verticesToPath(vertices: Point[], cornerRadius?: number, radius?: number): string;
|
|
13027
|
-
/**
|
|
13028
|
-
* Generate SVG path for a ring (two concentric circles).
|
|
13029
|
-
*/
|
|
13030
|
-
declare function computeRingPath(radius: number, innerRadiusPercent: number, fillRule?: 'nonzero' | 'evenodd'): string;
|
|
13031
|
-
/**
|
|
13032
|
-
* Generate SVG path for an Archimedean spiral.
|
|
13033
|
-
*/
|
|
13034
|
-
declare function computeSpiralPath(radius: number, turns: number, thicknessPercent: number, spiralDirection?: number, shiftAngleDeg?: number): string;
|
|
13035
|
-
declare function computeGearVertices(teeth: number, radius: number, toothDepthPercent: number, shiftAngleDeg?: number): Point[];
|
|
13036
|
-
/**
|
|
13037
|
-
* Generate full gear path including optional center hole.
|
|
13038
|
-
*/
|
|
13039
|
-
declare function computeGearPath(teeth: number, radius: number, toothDepthPercent: number, cornerRadius?: number, holeRadiusPercent?: number, fillRule?: 'nonzero' | 'evenodd', shiftAngleDeg?: number): string;
|
|
13040
|
-
type CornerShape = 'round' | 'bevel' | 'notch' | 'scoop';
|
|
13041
|
-
/**
|
|
13042
|
-
* Generate SVG path for a rectangle with per-corner radius and shape.
|
|
13043
|
-
* Returns null if all corners are simple (use <rect> instead).
|
|
13044
|
-
*/
|
|
13045
|
-
declare function computeRectanglePath(x: number, y: number, width: number, height: number, cornerRadius: number, cornerShape?: CornerShape, cornerMode?: 'uniform' | 'non-uniform', perCorner?: {
|
|
13046
|
-
radiusTL?: number;
|
|
13047
|
-
radiusTR?: number;
|
|
13048
|
-
radiusBR?: number;
|
|
13049
|
-
radiusBL?: number;
|
|
13050
|
-
shapeTL?: CornerShape;
|
|
13051
|
-
shapeTR?: CornerShape;
|
|
13052
|
-
shapeBR?: CornerShape;
|
|
13053
|
-
shapeBL?: CornerShape;
|
|
13054
|
-
}): string | null;
|
|
13055
|
-
/** The six flowchart shapes that fit an axis-aligned (x, y, w, h) box. */
|
|
13056
|
-
type FlowchartBoxType = 'diamond' | 'parallelogram' | 'trapezoid' | 'terminator' | 'cylinder' | 'document-shape';
|
|
13057
|
-
/** Per-shape knob, expressed as a percentage of width or height. */
|
|
13058
|
-
interface FlowchartBoxParams {
|
|
13059
|
-
/** Parallelogram: horizontal slant as a percentage of width. */
|
|
13060
|
-
slantPercent?: number;
|
|
13061
|
-
/** Trapezoid: top edge width as a percentage of the bottom edge. */
|
|
13062
|
-
topWidthPercent?: number;
|
|
13063
|
-
/** Cylinder: elliptical cap height as a percentage of total height. */
|
|
13064
|
-
capHeightPercent?: number;
|
|
13065
|
-
/** Document: bottom wave amplitude as a percentage of height. */
|
|
13066
|
-
waveAmplitudePercent?: number;
|
|
13067
|
-
}
|
|
13068
|
-
/**
|
|
13069
|
-
* SVG path data for a flowchart box, in absolute canvas coordinates.
|
|
13070
|
-
*
|
|
13071
|
-
* Kept numerically identical to the editor's `generatePath()` methods in
|
|
13072
|
-
* `apps/editor/src/shapes/flowchart-shapes.ts` and `diamond.ts` so a
|
|
13073
|
-
* headless render and an editor export of the same document produce the
|
|
13074
|
-
* same silhouette. The defaults below mirror the editor's property
|
|
13075
|
-
* getters, which are what a document authored before a knob existed
|
|
13076
|
-
* falls back to.
|
|
13077
|
-
*/
|
|
13078
|
-
declare function computeFlowchartBoxPath(type: FlowchartBoxType, x: number, y: number, width: number, height: number, params?: FlowchartBoxParams): string;
|
|
13079
|
-
/**
|
|
13080
|
-
* Structural shape of one point in a spline/path model. Deliberately
|
|
13081
|
-
* looser than the `PathPoint` document type (string `pointType` /
|
|
13082
|
-
* `segmentType`) so editor and SDK point arrays both satisfy it.
|
|
13083
|
-
*/
|
|
13084
|
-
interface SplinePointInput {
|
|
13085
|
-
x: number;
|
|
13086
|
-
y: number;
|
|
13087
|
-
handleIn?: Point;
|
|
13088
|
-
handleOut?: Point;
|
|
13089
|
-
pointType?: string;
|
|
13090
|
-
isSubpathStart?: boolean;
|
|
13091
|
-
subpathClosed?: boolean;
|
|
13092
|
-
moveRelative?: boolean;
|
|
13093
|
-
segmentRelative?: boolean;
|
|
13094
|
-
segmentType?: string;
|
|
13095
|
-
arcParams?: ArcParams;
|
|
13096
|
-
}
|
|
13097
|
-
/**
|
|
13098
|
-
* Compute SVG path data from spline points.
|
|
13099
|
-
*/
|
|
13100
|
-
/**
|
|
13101
|
-
* How the serializer treats the shorthand path commands whose validity
|
|
13102
|
-
* depends on measured geometry (`H`/`V` for axis-aligned lines, `S`/`T`
|
|
13103
|
-
* for reflected control points).
|
|
13104
|
-
*
|
|
13105
|
-
* - `'preserve'` (default) — emit the shorthand whenever the geometry
|
|
13106
|
-
* satisfies it. This is what authored path data round-trips through.
|
|
13107
|
-
* - `'expand'` — always emit the long form (`L`, `C`, `Q`). Required
|
|
13108
|
-
* when serializing a sequence of `d` values that must interpolate:
|
|
13109
|
-
* SVG only animates between path values with identical command
|
|
13110
|
-
* structure (SVG 1.1 §19.2.15.3), and a vertex crossing into or out of
|
|
13111
|
-
* axis alignment silently changes which shorthand applies, which would
|
|
13112
|
-
* break the animation partway through.
|
|
13113
|
-
*/
|
|
13114
|
-
type PathShorthandPolicy = 'preserve' | 'expand';
|
|
13115
|
-
declare function computeSplinePath(points: readonly SplinePointInput[], curveType: string, closed?: boolean, tension?: number, arcParams?: readonly ArcParams[], shorthand?: PathShorthandPolicy): string;
|
|
13116
|
-
/**
|
|
13117
|
-
* Compute a dash-array string for a given line style.
|
|
13118
|
-
*
|
|
13119
|
-
* @returns A `stroke-dasharray` value like `"8 4"`, or `null` for solid lines.
|
|
13120
|
-
*/
|
|
13121
|
-
declare function computeDashArray(style: string, dashLength: number, gapLength: number): string | null;
|
|
13122
|
-
|
|
13123
|
-
/**
|
|
13124
|
-
* Analytic bounds for SVG path geometry.
|
|
13125
|
-
*
|
|
13126
|
-
* Computes the FILL-geometry axis-aligned bounding box of path data,
|
|
13127
|
-
* the same rectangle `SVGGraphicsElement.getBBox()` reports (SVG 2 section 8.10:
|
|
13128
|
-
* fill geometry only, with no stroke, no markers, no clip, and no
|
|
13129
|
-
* element transform) with no DOM, no layout, and no measurement. Callers may
|
|
13130
|
-
* supply an affine map to request the exact box in another user coordinate
|
|
13131
|
-
* system, as defined by SVG 2 sections 8.2, 8.6, 8.7, and 8.10.
|
|
13132
|
-
*
|
|
13133
|
-
* ## Shared command geometry
|
|
13134
|
-
*
|
|
13135
|
-
* `computeSplinePath` in `./geometry` is the single source of truth for
|
|
13136
|
-
* what a point model *denotes*: it resolves curve type (linear, cubic,
|
|
13137
|
-
* quadratic, arc, catmull-rom, basis, mixed), subpath breaks, closing
|
|
13138
|
-
* segments, and the H/V/S/T shorthand demotions. Deriving bounds from a
|
|
13139
|
-
* second, independent traversal of the point model would duplicate those
|
|
13140
|
-
* rules. The model entry point consumes the serializer's numeric command
|
|
13141
|
-
* stream directly, avoiding text construction and parsing. Dedicated
|
|
13142
|
-
* whole-path generators retain the text route. Both routes use the same
|
|
13143
|
-
* extrema kernel and preserve the geometry represented by the rendered d.
|
|
13144
|
-
*
|
|
13145
|
-
* `pathDataBounds` is equally useful on its own for imported or
|
|
13146
|
-
* hand-authored `d` strings, so both layers are public.
|
|
13147
|
-
*
|
|
13148
|
-
* ## Precision
|
|
13149
|
-
*
|
|
13150
|
-
* Cubic and quadratic extrema are exact (roots of the derivative).
|
|
13151
|
-
* Elliptical-arc extrema are exact for the true ellipse. Browsers
|
|
13152
|
-
* decompose arcs into ≤90° cubic Bézier approximations before measuring
|
|
13153
|
-
* (Blink: `SVGPathNormalizer::DecomposeArcToCubic`), so a browser's
|
|
13154
|
-
* `getBBox` can differ from the exact ellipse extent by the
|
|
13155
|
-
* approximation error of that decomposition — bounded by roughly
|
|
13156
|
-
* 2.7e-4 · r, and zero whenever the extremum lands on a segment
|
|
13157
|
-
* endpoint or midpoint (the classic k = 4/3·tan(Δθ/4) construction
|
|
13158
|
-
* interpolates both). The exact value is the spec-correct one, so this
|
|
13159
|
-
* module reports it rather than reproducing the browser's
|
|
13160
|
-
* approximation.
|
|
13161
|
-
*/
|
|
13162
|
-
|
|
13163
|
-
/** Axis-aligned rectangle in the coordinate system of the path data. */
|
|
13164
|
-
interface PathBoundsRect {
|
|
13165
|
-
minX: number;
|
|
13166
|
-
minY: number;
|
|
13167
|
-
maxX: number;
|
|
13168
|
-
maxY: number;
|
|
13169
|
-
}
|
|
13170
|
-
/** One-dimensional interval, the per-axis result of a curve extent. */
|
|
13171
|
-
interface Extent1D {
|
|
13172
|
-
min: number;
|
|
13173
|
-
max: number;
|
|
13174
|
-
}
|
|
13175
|
-
/**
|
|
13176
|
-
* Center parameterization of an elliptical arc — the form in which the
|
|
13177
|
-
* arc's extrema are solvable. See SVG 2 Appendix B.2.2.
|
|
13178
|
-
*/
|
|
13179
|
-
interface ArcCenterParameterization {
|
|
13180
|
-
/** Ellipse center, user space. */
|
|
13181
|
-
cx: number;
|
|
13182
|
-
cy: number;
|
|
13183
|
-
/** Radii after the B.2.5 sign and out-of-range corrections. */
|
|
13184
|
-
rx: number;
|
|
13185
|
-
ry: number;
|
|
13186
|
-
/** X-axis rotation, RADIANS (the endpoint form carries degrees). */
|
|
13187
|
-
phi: number;
|
|
13188
|
-
/** Start angle, radians. */
|
|
13189
|
-
theta1: number;
|
|
13190
|
-
/** Swept angle, radians; signed — negative sweeps run counterclockwise. */
|
|
13191
|
-
deltaTheta: number;
|
|
13192
|
-
}
|
|
13193
|
-
/**
|
|
13194
|
-
* Exact extent of one axis of a cubic Bézier.
|
|
13195
|
-
*
|
|
13196
|
-
* `B(t) = (1-t)³p₀ + 3(1-t)²t·p₁ + 3(1-t)t²·p₂ + t³p₃`, so
|
|
13197
|
-
* `B'(t) = 3[(−p₀ + 3p₁ − 3p₂ + p₃)t² + 2(p₀ − 2p₁ + p₂)t + (p₁ − p₀)]`.
|
|
13198
|
-
* The extent is the union of both endpoints and every root of `B'` that
|
|
13199
|
-
* falls inside the segment.
|
|
12704
|
+
* `B(t) = (1-t)³p₀ + 3(1-t)²t·p₁ + 3(1-t)t²·p₂ + t³p₃`, so
|
|
12705
|
+
* `B'(t) = 3[(−p₀ + 3p₁ − 3p₂ + p₃)t² + 2(p₀ − 2p₁ + p₂)t + (p₁ − p₀)]`.
|
|
12706
|
+
* The extent is the union of both endpoints and every root of `B'` that
|
|
12707
|
+
* falls inside the segment.
|
|
13200
12708
|
*/
|
|
13201
12709
|
declare function cubicBezierExtent1D(p0: number, p1: number, p2: number, p3: number): Extent1D;
|
|
13202
12710
|
/**
|
|
@@ -13471,140 +12979,699 @@ declare function shapeLocalObjectBounds(shape: SerializedShape, host?: ShapeLoca
|
|
|
13471
12979
|
/** Center of {@link shapeLocalObjectBounds}, sharing the same host contract. */
|
|
13472
12980
|
declare function shapeLocalObjectCenter(shape: SerializedShape, host?: ShapeLocalObjectBoundsHost): Point | null;
|
|
13473
12981
|
|
|
13474
|
-
type
|
|
13475
|
-
|
|
13476
|
-
|
|
13477
|
-
|
|
13478
|
-
|
|
13479
|
-
|
|
13480
|
-
|
|
13481
|
-
|
|
13482
|
-
}
|
|
13483
|
-
interface
|
|
13484
|
-
|
|
13485
|
-
|
|
13486
|
-
|
|
13487
|
-
|
|
13488
|
-
|
|
13489
|
-
|
|
13490
|
-
|
|
13491
|
-
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
|
|
13495
|
-
|
|
13496
|
-
|
|
13497
|
-
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
13501
|
-
|
|
13502
|
-
|
|
13503
|
-
|
|
13504
|
-
|
|
13505
|
-
|
|
13506
|
-
|
|
13507
|
-
|
|
13508
|
-
|
|
13509
|
-
|
|
13510
|
-
|
|
13511
|
-
|
|
13512
|
-
|
|
13513
|
-
|
|
13514
|
-
|
|
13515
|
-
|
|
12982
|
+
type SymbolViewportDiagnosticCode = 'invalid-symbol-length' | 'invalid-symbol-viewbox' | 'unresolved-symbol-viewport';
|
|
12983
|
+
interface SymbolViewportDiagnostic {
|
|
12984
|
+
code: SymbolViewportDiagnosticCode;
|
|
12985
|
+
message: string;
|
|
12986
|
+
}
|
|
12987
|
+
interface SymbolLengthContext {
|
|
12988
|
+
axis: 'x' | 'y' | 'width' | 'height' | 'refX' | 'refY';
|
|
12989
|
+
percentBasis?: number;
|
|
12990
|
+
}
|
|
12991
|
+
interface SymbolViewportHost {
|
|
12992
|
+
resolveLength?: (value: string, context: SymbolLengthContext) => number | null;
|
|
12993
|
+
}
|
|
12994
|
+
interface ResolvedSymbolViewport {
|
|
12995
|
+
readonly kind: 'symbol' | 'group';
|
|
12996
|
+
readonly renders: boolean;
|
|
12997
|
+
readonly useX: number;
|
|
12998
|
+
readonly useY: number;
|
|
12999
|
+
readonly useAttributes: Readonly<AuthoredUseGeometry>;
|
|
13000
|
+
/** Mapping after the use element's own transform. Includes use x/y and def root. */
|
|
13001
|
+
readonly contentMatrix: Affine2D;
|
|
13002
|
+
readonly childPercentBasis: SvgViewportSize | null;
|
|
13003
|
+
readonly viewport: ResolvedSvgViewport | null;
|
|
13004
|
+
readonly diagnostics: readonly SymbolViewportDiagnostic[];
|
|
13005
|
+
}
|
|
13006
|
+
/**
|
|
13007
|
+
* Resolve SVG 2 sections 5.4, 5.5.2, 8.2, and 8.6 through 8.8 for one
|
|
13008
|
+
* symbol instance. The use translation is on the right of its own transform;
|
|
13009
|
+
* this result intentionally starts after that own transform.
|
|
13010
|
+
*/
|
|
13011
|
+
declare function resolveSymbolViewport(shape: SerializedShape, def: SymbolLibraryDef, parentViewport?: SvgViewportSize, host?: SymbolViewportHost): ResolvedSymbolViewport;
|
|
13012
|
+
|
|
13013
|
+
type BoundsRect = PathBoundsRect;
|
|
13014
|
+
type BoundsStatus = 'resolved' | 'empty' | 'unresolved' | 'cycle' | 'unsupported';
|
|
13015
|
+
type BoundsDiagnosticCode = 'container-cycle' | 'reference-cycle' | 'unresolved-shape' | 'unresolved-reference-target' | 'unresolved-reference-pivot' | 'duplicate-shape-id' | 'invalid-svg-viewport' | 'unresolved-svg-viewport' | 'symbol-cycle' | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'invalid-symbol-viewport' | 'unresolved-symbol-viewport' | 'unresolved-symbol-pivot' | 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target' | 'unsupported-shape' | 'deferred-tree-kind';
|
|
13016
|
+
interface BoundsDiagnostic {
|
|
13017
|
+
code: BoundsDiagnosticCode;
|
|
13018
|
+
shapeId: string;
|
|
13019
|
+
message: string;
|
|
13020
|
+
path: readonly string[];
|
|
13021
|
+
}
|
|
13022
|
+
interface BoundsResult {
|
|
13023
|
+
bounds: BoundsRect | null;
|
|
13024
|
+
status: BoundsStatus;
|
|
13025
|
+
diagnostics: readonly BoundsDiagnostic[];
|
|
13026
|
+
}
|
|
13027
|
+
type TextObjectBoundsMeasurement = BoundsRect | readonly BoundsRect[];
|
|
13028
|
+
interface ShapeObjectBoundsHost {
|
|
13029
|
+
/**
|
|
13030
|
+
* SVG 2 section 8.10 defines text object bounds as the union of full glyph
|
|
13031
|
+
* cells. Returning individual cells preserves exact extrema after shear.
|
|
13032
|
+
* A single rectangle remains accepted for aggregate measurement hosts.
|
|
13033
|
+
*/
|
|
13034
|
+
measureText?: (shape: SerializedShape, geometry: TextShapeGeometry) => TextObjectBoundsMeasurement | null;
|
|
13035
|
+
}
|
|
13036
|
+
interface DocumentBoundsHost extends ShapeObjectBoundsHost {
|
|
13037
|
+
/**
|
|
13038
|
+
* Replace the authored own matrix with a platform runtime projection.
|
|
13039
|
+
*
|
|
13040
|
+
* The editor uses this seam for active SMIL and CSS transform state that
|
|
13041
|
+
* is intentionally not persisted in the document. Supplemental reference,
|
|
13042
|
+
* symbol, and embedded-viewport placement remains owned by the tree walker.
|
|
13043
|
+
*/
|
|
13044
|
+
resolveOwnTransform?: (shape: SerializedShape, authored: Affine2D) => Affine2D;
|
|
13045
|
+
/** Runtime conditional-processing hook. `false` removes the branch. */
|
|
13046
|
+
participatesInRendering?: (shape: SerializedShape) => boolean;
|
|
13047
|
+
/**
|
|
13048
|
+
* Runtime conditional-processing hook for a resolved symbol shadow root.
|
|
13049
|
+
* Pure bounds already honor authored `display:none`; a host can additionally
|
|
13050
|
+
* decide media-query, switch, or cascade participation without a DOM read.
|
|
13051
|
+
*/
|
|
13052
|
+
participatesSymbolDefinition?: (definition: SymbolLibraryDef, instance: SerializedShape) => boolean;
|
|
13053
|
+
/** Resolve non-px symbol/use lengths that require a platform metrics host. */
|
|
13054
|
+
resolveSymbolLength?: SymbolViewportHost['resolveLength'];
|
|
13055
|
+
}
|
|
13056
|
+
interface DocumentBoundsView {
|
|
13057
|
+
roots(): readonly SerializedShape[];
|
|
13058
|
+
shape(id: string): SerializedShape | undefined;
|
|
13059
|
+
duplicateShapeIds?(): ReadonlySet<string>;
|
|
13060
|
+
libraryDefinition?(id: string): LibraryDef | undefined;
|
|
13061
|
+
duplicateLibraryIds?(): ReadonlySet<string>;
|
|
13062
|
+
children(shape: SerializedShape): readonly SerializedShape[];
|
|
13063
|
+
}
|
|
13064
|
+
interface DocumentBoundsOptions {
|
|
13065
|
+
toTarget?: Affine2D;
|
|
13066
|
+
parentViewport?: SvgViewportSize;
|
|
13067
|
+
}
|
|
13068
|
+
/**
|
|
13069
|
+
* Compute exact SVG object bounds for one registry geometry leaf in an
|
|
13070
|
+
* arbitrary target coordinate system. Own authored transforms are not added;
|
|
13071
|
+
* callers pass the complete affine that maps local geometry into the target.
|
|
13072
|
+
*/
|
|
13073
|
+
declare function shapeObjectBoundsInSpace(shape: SerializedShape, toTarget: Affine2D, host?: ShapeObjectBoundsHost): BoundsResult;
|
|
13074
|
+
/**
|
|
13075
|
+
* Read-only snapshot adapter. `sceneTree` is document authority when present;
|
|
13076
|
+
* inline `state.children` is the maintained compatibility projection and the
|
|
13077
|
+
* fallback for older snapshots and unplaced hostile input.
|
|
13078
|
+
*/
|
|
13079
|
+
declare function snapshotBoundsView(snapshot: HistorySnapshot): DocumentBoundsView;
|
|
13080
|
+
interface EmbeddedSvgViewportOverride {
|
|
13081
|
+
width?: number;
|
|
13082
|
+
height?: number;
|
|
13083
|
+
}
|
|
13084
|
+
interface EmbeddedSvgTransformResult {
|
|
13085
|
+
matrix: Affine2D;
|
|
13086
|
+
attribute: string | null;
|
|
13087
|
+
pivotRequired: boolean;
|
|
13088
|
+
pivotResolved: boolean;
|
|
13089
|
+
viewport: ResolvedSvgViewport;
|
|
13090
|
+
}
|
|
13091
|
+
/** Resolve the transform outside an embedded SVG viewport. */
|
|
13092
|
+
declare function resolveEmbeddedSvgTransform(shape: SerializedShape, parentViewport?: SvgViewportSize, override?: EmbeddedSvgViewportOverride): EmbeddedSvgTransformResult;
|
|
13093
|
+
/** Resolve the authored viewport frame used by editor selection and resizing. */
|
|
13094
|
+
declare function resolveEmbeddedSvgViewportFrameBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
|
|
13095
|
+
interface ShapeReferenceTransformResult {
|
|
13096
|
+
matrix: Affine2D;
|
|
13097
|
+
attribute: string | null;
|
|
13098
|
+
pivotRequired: boolean;
|
|
13099
|
+
pivotResolved: boolean;
|
|
13100
|
+
diagnostics: readonly BoundsDiagnostic[];
|
|
13101
|
+
}
|
|
13102
|
+
interface SymbolInstanceTransformResult {
|
|
13103
|
+
matrix: Affine2D;
|
|
13104
|
+
attribute: string | null;
|
|
13105
|
+
pivotRequired: boolean;
|
|
13106
|
+
pivotResolved: boolean;
|
|
13107
|
+
diagnostics: readonly BoundsDiagnostic[];
|
|
13108
|
+
}
|
|
13109
|
+
/** Resolve one shape subtree by object or document id. */
|
|
13110
|
+
declare function resolveShapeObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
|
|
13111
|
+
/**
|
|
13112
|
+
* Resolve an element's object box in its own user coordinate system.
|
|
13113
|
+
*
|
|
13114
|
+
* The subject's authored transform is excluded while descendant transforms,
|
|
13115
|
+
* viewport mappings, references, and symbol placement remain authoritative.
|
|
13116
|
+
* This is the reference box CSS Transforms calls fill-box/content-box.
|
|
13117
|
+
*/
|
|
13118
|
+
declare function resolveShapeLocalObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: Pick<DocumentBoundsOptions, 'parentViewport'>, host?: DocumentBoundsHost): BoundsResult;
|
|
13119
|
+
/**
|
|
13120
|
+
* Resolve the use element's own transform for renderer parity.
|
|
13121
|
+
*
|
|
13122
|
+
* Canonical matrices need no geometry. Deprecated rotation/scale/skew
|
|
13123
|
+
* channels use the translated shadow subtree center, matching the bounds
|
|
13124
|
+
* walk instead of fabricating a pivot from non-authoritative width/height.
|
|
13125
|
+
*/
|
|
13126
|
+
declare function resolveShapeReferenceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): ShapeReferenceTransformResult;
|
|
13127
|
+
/**
|
|
13128
|
+
* Resolve the transform emitted on one symbol-instance use element. SVG 2
|
|
13129
|
+
* section 5.5.2 orders imported use transform, canonical or legacy instance
|
|
13130
|
+
* transform, and then the supplemental x/y translation into the shadow tree.
|
|
13131
|
+
*/
|
|
13132
|
+
declare function resolveSymbolInstanceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): SymbolInstanceTransformResult;
|
|
13133
|
+
/** Union every snapshot root in the requested target coordinate system. */
|
|
13134
|
+
declare function documentObjectBounds(view: DocumentBoundsView, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
|
|
13135
|
+
interface InlineContainerTransformResult {
|
|
13136
|
+
transform: ResolvedContainerTransform;
|
|
13137
|
+
contentBounds: BoundsResult | null;
|
|
13138
|
+
pivotRequired: boolean;
|
|
13139
|
+
pivotResolved: boolean;
|
|
13140
|
+
}
|
|
13141
|
+
/**
|
|
13142
|
+
* Resolve a serialized container's emitted transform from its inline content.
|
|
13143
|
+
* Renderers use this same local-content walk as analytic bounds so legacy
|
|
13144
|
+
* rotation/scale/skew channels cannot silently choose a different pivot.
|
|
13145
|
+
*/
|
|
13146
|
+
declare function resolveInlineContainerTransform(shape: SerializedShape, host?: DocumentBoundsHost): InlineContainerTransformResult;
|
|
13147
|
+
|
|
13148
|
+
/**
|
|
13149
|
+
* Symbol-instance resolution - the single definition of what a
|
|
13150
|
+
* `symbol-instance` shape points at.
|
|
13151
|
+
*
|
|
13152
|
+
* A `symbol-instance` renders as `<use href="#target">` (SVG 2 §5.6), and
|
|
13153
|
+
* the target is not always the library def's own id. Variants and
|
|
13154
|
+
* per-instance overrides have no representation in the library - a
|
|
13155
|
+
* `SymbolLibraryDef` carries every variant's shapes, but which one an
|
|
13156
|
+
* instance selects, and what its overrides do to them, is instance state.
|
|
13157
|
+
* The renderer therefore MATERIALIZES a `<symbol>` per referenced
|
|
13158
|
+
* (def, variant, override) combination under a synthetic id:
|
|
13159
|
+
*
|
|
13160
|
+
* - no variant, no overrides -> `<def id>` (the library def)
|
|
13161
|
+
* - variant `state=hover` -> `<def id>--state_hover`
|
|
13162
|
+
* - any overrides -> `<def id>--ovr-<instance id>`
|
|
13163
|
+
*
|
|
13164
|
+
* Two call sites depend on that mapping and MUST agree on it, or a `<use>`
|
|
13165
|
+
* points at a def that was never emitted:
|
|
13166
|
+
*
|
|
13167
|
+
* 1. `renderShape` (shape-renderers.ts) writes the `<use href>`.
|
|
13168
|
+
* 2. `renderSymbolDefs` (svg-renderer.ts) emits the `<symbol>` bodies.
|
|
13169
|
+
*
|
|
13170
|
+
* They agree because both go through this module. `targetId` and
|
|
13171
|
+
* `resolveShapes` are two halves of one decision - the `--ovr-` id is
|
|
13172
|
+
* exactly the case where overrides are applied, the `--<variant>` id
|
|
13173
|
+
* exactly the case where a variant array replaces `def.shapes` - so they
|
|
13174
|
+
* live together and are never re-derived elsewhere.
|
|
13175
|
+
*
|
|
13176
|
+
* Dependency-free apart from types, so both the shape dispatcher and the
|
|
13177
|
+
* document renderer can import it without an import cycle.
|
|
13178
|
+
*
|
|
13179
|
+
* @packageDocumentation
|
|
13180
|
+
*/
|
|
13181
|
+
|
|
13182
|
+
type SymbolResolutionDiagnosticCode = 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target';
|
|
13183
|
+
interface SymbolResolutionDiagnostic {
|
|
13184
|
+
code: SymbolResolutionDiagnosticCode;
|
|
13185
|
+
shapeId: string;
|
|
13186
|
+
message: string;
|
|
13187
|
+
}
|
|
13188
|
+
interface ResolvedSymbolInstanceContent {
|
|
13189
|
+
readonly shapes: readonly SerializedShape[];
|
|
13190
|
+
readonly requestedVariantKey: string;
|
|
13191
|
+
readonly effectiveVariantKey: string;
|
|
13192
|
+
readonly candidateTargetId: string;
|
|
13193
|
+
readonly materializationKey: string;
|
|
13194
|
+
readonly materialized: boolean;
|
|
13195
|
+
readonly diagnostics: readonly SymbolResolutionDiagnostic[];
|
|
13196
|
+
}
|
|
13197
|
+
/** Resolve variant selection and recursive immutable overrides once for every surface. */
|
|
13198
|
+
declare function resolveSymbolInstanceContent(def: SymbolLibraryDef, instance: SerializedShape): ResolvedSymbolInstanceContent;
|
|
13199
|
+
/**
|
|
13200
|
+
* The `<symbol>` id an instance's `<use href>` resolves to.
|
|
13201
|
+
*
|
|
13202
|
+
* Mirrors the editor-side `exportSymbolInstances` in
|
|
13203
|
+
* `apps/editor/src/canvas/svg-export-finalizer.ts` so an editor export and
|
|
13204
|
+
* a headless render of the same document target the same ids.
|
|
13205
|
+
*
|
|
13206
|
+
* `dedicated` forces the per-instance `--ovr-` id even without
|
|
13207
|
+
* overrides — the animated-export policy for instances driven by an
|
|
13208
|
+
* `instanceVariant` timeline track, whose injected variant-transition
|
|
13209
|
+
* animations must not bleed into sibling instances of the same def. The
|
|
13210
|
+
* editor's animated export materializes those dedicated defs and passes
|
|
13211
|
+
* the flag here so its `<use href>` retargeting and the def id agree.
|
|
13212
|
+
*/
|
|
13213
|
+
declare function symbolInstanceTargetId(instance: SerializedShape, dedicated?: boolean): string;
|
|
13214
|
+
/**
|
|
13215
|
+
* The shapes that make up the `<symbol>` body an instance resolves to:
|
|
13216
|
+
* the selected variant (falling back to `def.shapes`, the default
|
|
13217
|
+
* variant, when the key is absent or unknown) with the instance's
|
|
13218
|
+
* per-shape overrides merged on top.
|
|
13219
|
+
*
|
|
13220
|
+
* Overrides are keyed by INNER shape id and merge shallowly into that
|
|
13221
|
+
* shape's state, which is what keeps the inner ids - and therefore any
|
|
13222
|
+
* shape-derived def ids such as `filter-<id>` - stable across
|
|
13223
|
+
* materializations.
|
|
13224
|
+
*/
|
|
13225
|
+
declare function resolveSymbolInstanceShapes(def: SymbolLibraryDef, instance: SerializedShape): SerializedShape[];
|
|
13226
|
+
|
|
13227
|
+
type SymbolMaterializationDiagnosticCode = SymbolResolutionDiagnosticCode | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'symbol-cycle';
|
|
13228
|
+
interface SymbolMaterializationDiagnostic {
|
|
13229
|
+
readonly code: SymbolMaterializationDiagnosticCode;
|
|
13230
|
+
readonly shapeId: string;
|
|
13231
|
+
readonly message: string;
|
|
13232
|
+
}
|
|
13233
|
+
interface SymbolMaterialization {
|
|
13234
|
+
readonly materializationKey: string;
|
|
13235
|
+
readonly targetId: string;
|
|
13236
|
+
readonly candidateTargetId: string;
|
|
13237
|
+
readonly definition: SymbolLibraryDef;
|
|
13238
|
+
readonly shapes: readonly SerializedShape[];
|
|
13239
|
+
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
13240
|
+
readonly viewport: ResolvedSymbolViewport;
|
|
13241
|
+
}
|
|
13242
|
+
interface SymbolInstanceMaterialization {
|
|
13243
|
+
readonly targetId: string | null;
|
|
13244
|
+
readonly definition: SymbolLibraryDef | null;
|
|
13245
|
+
readonly materializationKey: string | null;
|
|
13246
|
+
/** Final occurrence-local materialization used by every render surface. */
|
|
13247
|
+
readonly materialization: SymbolMaterialization | null;
|
|
13248
|
+
readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
|
|
13249
|
+
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
13250
|
+
readonly viewport: ResolvedSymbolViewport | null;
|
|
13251
|
+
}
|
|
13252
|
+
interface SymbolMaterializationPlan {
|
|
13253
|
+
readonly materializations: readonly SymbolMaterialization[];
|
|
13254
|
+
readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
|
|
13255
|
+
resolve(instance: SerializedShape): SymbolInstanceMaterialization | undefined;
|
|
13256
|
+
}
|
|
13257
|
+
interface SymbolMaterializationPlanOptions {
|
|
13258
|
+
readonly reservedIds?: ReadonlySet<string>;
|
|
13259
|
+
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
13260
|
+
readonly viewportHost?: SymbolViewportHost;
|
|
13261
|
+
/**
|
|
13262
|
+
* Per-occurrence render policy supplied by a document surface.
|
|
13263
|
+
*
|
|
13264
|
+
* An `instanceVariant` animation starts from its first keyed state and
|
|
13265
|
+
* needs a dedicated target so injected animation never changes sibling
|
|
13266
|
+
* instances that otherwise share the same definition.
|
|
13267
|
+
*/
|
|
13268
|
+
readonly instancePolicy?: (instance: SerializedShape) => {
|
|
13269
|
+
readonly initialVariantKey?: string;
|
|
13270
|
+
readonly dedicated?: boolean;
|
|
13271
|
+
} | undefined;
|
|
13272
|
+
}
|
|
13273
|
+
/**
|
|
13274
|
+
* Build the complete SVG 2 section 5.5 shadow-tree materialization plan for
|
|
13275
|
+
* one document. Cycle identity is semantic definition + variant + override
|
|
13276
|
+
* content, so finite cross-variant recursion remains legal while an actual
|
|
13277
|
+
* repeated shadow root is pruned before markup emission.
|
|
13278
|
+
*/
|
|
13279
|
+
declare function buildSymbolMaterializationPlan(library: readonly LibraryDef[], roots: readonly SerializedShape[], options?: SymbolMaterializationPlanOptions): SymbolMaterializationPlan;
|
|
13280
|
+
|
|
13281
|
+
/**
|
|
13282
|
+
* Reachability walk over the shapes a rendered document actually paints.
|
|
13283
|
+
*
|
|
13284
|
+
* `<defs>` emission is reference-driven: a def is emitted only when
|
|
13285
|
+
* something in the rendered output points at it with `url(#id)`. Getting
|
|
13286
|
+
* that set right means walking more than the top-level shape array,
|
|
13287
|
+
* because two nesting mechanisms put `url(#…)` references into the output
|
|
13288
|
+
* without a top-level shape carrying them:
|
|
13289
|
+
*
|
|
13290
|
+
* 1. **Container children.** `<g>`, `<a>`, `<switch>` and nested `<svg>`
|
|
13291
|
+
* render `state.children` inline (see `renderContainerChildren` in
|
|
13292
|
+
* shape-renderers.ts), so a child's fill / filter / marker reference
|
|
13293
|
+
* is live in the document.
|
|
13294
|
+
* 2. **Library def contents.** A `<symbol>` or `<marker>` def emits its
|
|
13295
|
+
* inner shapes verbatim, so those shapes' references are live too -
|
|
13296
|
+
* SVG 2 §5.5 resolves them against the document `<defs>`, not against
|
|
13297
|
+
* any def-local scope.
|
|
13298
|
+
*
|
|
13299
|
+
* Both are transitive: a symbol's inner shape can be a group whose child
|
|
13300
|
+
* instantiates another symbol. Reachability is therefore a fixpoint, and
|
|
13301
|
+
* a symbol that (directly or indirectly) instantiates itself must not
|
|
13302
|
+
* spin - each def's contents are expanded at most once.
|
|
13303
|
+
*
|
|
13304
|
+
* This module is intentionally dependency-free apart from types so that
|
|
13305
|
+
* both `library-renderers.ts` (which emits the defs) and
|
|
13306
|
+
* `shape-renderers.ts` (which emits built-in `<marker>` defs) can share
|
|
13307
|
+
* one definition of "reachable" without an import cycle. The editor's
|
|
13308
|
+
* live `<defs>` reconciler (`MarkerManager`) shares it too, through
|
|
13309
|
+
* `forEachShapeInLibraryDefs` - which is what stops the canvas and the
|
|
13310
|
+
* exported file from disagreeing about which defs a document needs.
|
|
13311
|
+
*
|
|
13312
|
+
* @packageDocumentation
|
|
13313
|
+
*/
|
|
13314
|
+
|
|
13315
|
+
/**
|
|
13316
|
+
* Id → def lookup for the reachability walks.
|
|
13317
|
+
*
|
|
13318
|
+
* A caller that already owns a keyed store of its defs (the editor's
|
|
13319
|
+
* `LibraryRegistry` is exactly such a map) can hand it straight to the
|
|
13320
|
+
* walkers instead of paying to rebuild an index per call - which matters
|
|
13321
|
+
* because the editor runs `collectReferencedMarkerIds` on the animation
|
|
13322
|
+
* path.
|
|
13323
|
+
*/
|
|
13324
|
+
type LibraryIndex = ReadonlyMap<string, LibraryDef>;
|
|
13325
|
+
/** Accept either the array form or a prebuilt index. */
|
|
13326
|
+
type LibrarySource = readonly LibraryDef[] | LibraryIndex;
|
|
13327
|
+
/**
|
|
13328
|
+
* Call `visit` once for every shape whose rendered form can appear in the
|
|
13329
|
+
* document: each top-level shape, every container descendant, and the
|
|
13330
|
+
* inner shapes (plus symbol variants) of the `<symbol>` / `<marker>`
|
|
13331
|
+
* library defs those shapes reach.
|
|
13332
|
+
*
|
|
13333
|
+
* Visit order is deterministic and stable: top-level shapes in document
|
|
13334
|
+
* order first, then the transitive frontier discovered from them. Callers
|
|
13335
|
+
* whose output order depends on discovery order can rely on that - and on
|
|
13336
|
+
* the fact that the top-level prefix is exactly the pre-transitive walk.
|
|
13337
|
+
*
|
|
13338
|
+
* `visit` may be called more than once for the same shape only if the
|
|
13339
|
+
* document itself contains it more than once (e.g. two symbols sharing an
|
|
13340
|
+
* inner shape object); accumulating callers should be idempotent.
|
|
13341
|
+
*
|
|
13342
|
+
* @param shapes Top-level shapes of the rendered document.
|
|
13343
|
+
* @param library Library defs available for reference resolution. Pass an
|
|
13344
|
+
* empty array to walk containers only.
|
|
13345
|
+
* @param visit Callback invoked per reachable shape.
|
|
13346
|
+
*/
|
|
13347
|
+
declare function forEachReachableShape(shapes: readonly SerializedShape[], library: LibrarySource, visit: (shape: SerializedShape) => void): void;
|
|
13348
|
+
/**
|
|
13349
|
+
* Same walk, seeded from library def ids rather than from shapes: visits
|
|
13350
|
+
* the contents of each named `<symbol>` / `<marker>` def and everything
|
|
13351
|
+
* those contents transitively reach.
|
|
13352
|
+
*
|
|
13353
|
+
* This is the half of reachability that a LIVE editor cannot answer from
|
|
13354
|
+
* its shape registry. Symbol-instance content is materialized as
|
|
13355
|
+
* temporary shapes that never enter the registry or the scene graph, so
|
|
13356
|
+
* a document-side walk sees the `symbolId` but nothing inside it. Seeding
|
|
13357
|
+
* from the def ids the document reaches recovers exactly the missing
|
|
13358
|
+
* frontier, and - because it is the same engine the export collector runs
|
|
13359
|
+
* - recovers it with identical nesting, variant, and cycle semantics.
|
|
13360
|
+
*
|
|
13361
|
+
* Ids that are absent from `library`, or that name a def with no contents
|
|
13362
|
+
* (paint servers, filters), are skipped.
|
|
13363
|
+
*/
|
|
13364
|
+
declare function forEachShapeInLibraryDefs(rootDefIds: Iterable<string>, library: LibrarySource, visit: (shape: SerializedShape) => void): void;
|
|
13365
|
+
/**
|
|
13366
|
+
* Marker ids a single shape's state puts into the rendered output: the
|
|
13367
|
+
* three explicit `marker-*` refs, plus the built-in ids the legacy
|
|
13368
|
+
* `startEndpoint` / `endEndpoint` dropdowns resolve to (`Line` and
|
|
13369
|
+
* `Path` fold those into their painted refs - see
|
|
13370
|
+
* `endpointMarkerAttributes` in codegen/helpers.ts and
|
|
13371
|
+
* `Line.getEffectiveMarkerRefs()` in the editor).
|
|
13372
|
+
*
|
|
13373
|
+
* One definition, shared by the export collector and by the editor's live
|
|
13374
|
+
* `<defs>` reconciler, so the two cannot disagree about what a given
|
|
13375
|
+
* state means.
|
|
13376
|
+
*/
|
|
13377
|
+
declare function forEachMarkerRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, visit: (markerId: string) => void): void;
|
|
13378
|
+
/** The built-in `<marker>` id a legacy endpoint name resolves to. */
|
|
13379
|
+
declare function legacyEndpointMarkerId(endpoint: string): string;
|
|
13380
|
+
/**
|
|
13381
|
+
* Library def ids a single shape's state references: fill / stroke paint
|
|
13382
|
+
* servers, the filter chain, the marker refs, and the symbol it
|
|
13383
|
+
* instantiates.
|
|
13384
|
+
*
|
|
13385
|
+
* Mirrors the reference set `collectReferencedLibraryDefs` scans per
|
|
13386
|
+
* shape, including the legacy fallbacks - an inline `fillGradient`
|
|
13387
|
+
* payload with no `fillLibraryId` still names a def, and a populated
|
|
13388
|
+
* `filters` array with no `filterLibraryIds` names the shape-derived
|
|
13389
|
+
* `filter-<shapeId>`. It reports RAW ids and makes no library lookup, so
|
|
13390
|
+
* a caller can use it against a live document whose defs are stored
|
|
13391
|
+
* somewhere other than a `LibraryDef[]`.
|
|
13392
|
+
*
|
|
13393
|
+
* Deliberately NOT shared with `collectReferencedLibraryDefs` itself:
|
|
13394
|
+
* that function has to decide, per id, between emitting the library
|
|
13395
|
+
* entry and synthesizing a transient def from the inline payload, and
|
|
13396
|
+
* the order in which it resolves the two is observable in the emitted
|
|
13397
|
+
* `<defs>`. Keeping the two separate leaves that byte-order contract
|
|
13398
|
+
* untouched; that they agree on the reference SET is enforced by test
|
|
13399
|
+
* rather than by shared code.
|
|
13400
|
+
*/
|
|
13401
|
+
declare function forEachLibraryRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, shapeId: string, visit: (libraryId: string) => void): void;
|
|
13402
|
+
/**
|
|
13403
|
+
* Marker references found by walking a document, split the way
|
|
13404
|
+
* `renderBuiltinMarkerDefs` consumes them:
|
|
13405
|
+
* - `ids`: raw marker ids from `state.markerStart` / `markerMid` /
|
|
13406
|
+
* `markerEnd` - built-in (`mkr-builtin-arrow`, `line-marker-arrow`)
|
|
13407
|
+
* or user marker ids.
|
|
13408
|
+
* - `legacyEndpoints`: endpoint names from `state.startEndpoint` /
|
|
13409
|
+
* `endEndpoint` (e.g. `'arrow'`), which `Line` / `Path` emit as a
|
|
13410
|
+
* shortcut to built-in markers without explicit `marker-*` attrs.
|
|
13411
|
+
*/
|
|
13412
|
+
interface MarkerReferenceSets {
|
|
13413
|
+
ids: Set<string>;
|
|
13414
|
+
legacyEndpoints: Set<string>;
|
|
13415
|
+
}
|
|
13416
|
+
/**
|
|
13417
|
+
* Walk a document for marker references. Reachability, not just the top
|
|
13418
|
+
* level: container children render inline and `<symbol>` / `<marker>`
|
|
13419
|
+
* inner shapes emit verbatim, so a `marker-start="url(#line-marker-arrow)"`
|
|
13420
|
+
* written from inside a symbol needs its built-in def as much as a
|
|
13421
|
+
* top-level one does.
|
|
13422
|
+
*/
|
|
13423
|
+
declare function collectMarkerReferences(shapes: readonly SerializedShape[], library?: LibrarySource): MarkerReferenceSets;
|
|
13424
|
+
/**
|
|
13425
|
+
* Every `<marker>` id a rendered document needs a def for, as one flat
|
|
13426
|
+
* set: the raw `marker-*` refs plus the built-in ids the legacy endpoint
|
|
13427
|
+
* dropdowns resolve to.
|
|
13428
|
+
*
|
|
13429
|
+
* This is the reference answer to "which markers must be in `<defs>`?".
|
|
13430
|
+
* The editor's live reconciler computes the same set incrementally from
|
|
13431
|
+
* its model; that the two agree is what keeps canvas and export from
|
|
13432
|
+
* diverging.
|
|
13433
|
+
*/
|
|
13434
|
+
declare function collectReferencedMarkerIds(shapes: readonly SerializedShape[], library: LibrarySource): Set<string>;
|
|
13435
|
+
|
|
13436
|
+
type PresentationValueReader = (key: string) => unknown;
|
|
13437
|
+
interface PresentationSemanticContext {
|
|
13438
|
+
shapeId: string;
|
|
13439
|
+
includeAuthoredAttributes?: boolean;
|
|
13440
|
+
includeContainerPresentation?: boolean;
|
|
13441
|
+
retainCssAnimationDeclarations?: boolean;
|
|
13442
|
+
/**
|
|
13443
|
+
* The live editor projects resolved static stylesheet values inline so its
|
|
13444
|
+
* structural scaffolding cannot alter selector matching. Serialized SVG
|
|
13445
|
+
* renderers leave both stylesheet channels to the canonical stylesheet.
|
|
13446
|
+
*/
|
|
13447
|
+
projectStaticStylesheetValues?: boolean;
|
|
13448
|
+
}
|
|
13449
|
+
interface PresentationWrite {
|
|
13450
|
+
channel: 'attribute' | 'style';
|
|
13451
|
+
name: string;
|
|
13452
|
+
value: string | number | null;
|
|
13453
|
+
allowEmpty?: boolean;
|
|
13454
|
+
ifAbsent?: boolean;
|
|
13455
|
+
}
|
|
13456
|
+
interface PresentationSemanticEntry {
|
|
13457
|
+
id: string;
|
|
13458
|
+
keys: readonly string[];
|
|
13459
|
+
project: (read: PresentationValueReader, context: PresentationSemanticContext) => readonly PresentationWrite[];
|
|
13460
|
+
}
|
|
13461
|
+
/**
|
|
13462
|
+
* Ordered common-presentation semantics shared by headless rendering,
|
|
13463
|
+
* component code generation, and the editor's incremental apply layer.
|
|
13464
|
+
*
|
|
13465
|
+
* Order is part of the contract. The dash row follows linecap so dotted
|
|
13466
|
+
* style can make the final cap round, and unmodeled authored attributes
|
|
13467
|
+
* remain the final row so typed state keeps one deterministic owner.
|
|
13468
|
+
*/
|
|
13469
|
+
declare const PRESENTATION_SEMANTICS: readonly [{
|
|
13470
|
+
readonly id: "fill";
|
|
13471
|
+
readonly keys: readonly ["fillColor", "fillType", "fillGradient", "fillLibraryId", "inheritFill", "authoredFillPaint"];
|
|
13472
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13473
|
+
}, {
|
|
13474
|
+
readonly id: "element-opacity";
|
|
13475
|
+
readonly keys: readonly ["opacity", "preserveOpacity"];
|
|
13476
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13477
|
+
}, {
|
|
13478
|
+
readonly id: "fill-opacity";
|
|
13479
|
+
readonly keys: readonly ["fillOpacity", "preserveFillOpacity", "fillType", "fillGradient", "inheritFill"];
|
|
13480
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13481
|
+
}, {
|
|
13482
|
+
readonly id: "fill-rule";
|
|
13483
|
+
readonly keys: readonly ["fillRule"];
|
|
13484
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13485
|
+
}, {
|
|
13486
|
+
readonly id: "stroke";
|
|
13487
|
+
readonly keys: readonly ["borderColor", "strokeType", "strokeGradient", "strokeLibraryId", "inheritStroke", "authoredStrokePaint"];
|
|
13488
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13489
|
+
}, {
|
|
13490
|
+
readonly id: "stroke-width";
|
|
13491
|
+
readonly keys: readonly ["borderWidth"];
|
|
13492
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13493
|
+
}, {
|
|
13494
|
+
readonly id: "stroke-opacity";
|
|
13495
|
+
readonly keys: readonly ["strokeOpacity", "preserveStrokeOpacity", "strokeType", "strokeGradient", "inheritStroke"];
|
|
13496
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13497
|
+
}, {
|
|
13498
|
+
readonly id: "blend-mode";
|
|
13499
|
+
readonly keys: readonly ["blendMode"];
|
|
13500
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13501
|
+
}, {
|
|
13502
|
+
readonly id: "paint-order";
|
|
13503
|
+
readonly keys: readonly ["paintOrder"];
|
|
13504
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13505
|
+
}, {
|
|
13506
|
+
readonly id: "inline-style";
|
|
13507
|
+
readonly keys: readonly ["inlineStyle"];
|
|
13508
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13509
|
+
}, {
|
|
13510
|
+
readonly id: "markers";
|
|
13511
|
+
readonly keys: readonly ["markerStart", "markerMid", "markerEnd"];
|
|
13512
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13513
|
+
}, {
|
|
13514
|
+
readonly id: "stroke-linejoin";
|
|
13515
|
+
readonly keys: readonly ["strokeLinejoin"];
|
|
13516
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13517
|
+
}, {
|
|
13518
|
+
readonly id: "stroke-linecap";
|
|
13519
|
+
readonly keys: readonly ["strokeLinecap"];
|
|
13520
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13521
|
+
}, {
|
|
13522
|
+
readonly id: "stroke-miterlimit";
|
|
13523
|
+
readonly keys: readonly ["strokeMiterlimit"];
|
|
13524
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13525
|
+
}, {
|
|
13526
|
+
readonly id: "stroke-dasharray";
|
|
13527
|
+
readonly keys: readonly ["lineStyle", "dashLength", "gapLength", "strokeDasharray", "strokeLinecap"];
|
|
13528
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13529
|
+
}, {
|
|
13530
|
+
readonly id: "stroke-dashoffset";
|
|
13531
|
+
readonly keys: readonly ["dashOffset"];
|
|
13532
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13533
|
+
}, {
|
|
13534
|
+
readonly id: "shape-rendering";
|
|
13535
|
+
readonly keys: readonly ["shapeRendering"];
|
|
13536
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13537
|
+
}, {
|
|
13538
|
+
readonly id: "text-rendering";
|
|
13539
|
+
readonly keys: readonly ["textRendering"];
|
|
13540
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13541
|
+
}, {
|
|
13542
|
+
readonly id: "image-rendering";
|
|
13543
|
+
readonly keys: readonly ["imageRendering"];
|
|
13544
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13545
|
+
}, {
|
|
13546
|
+
readonly id: "color-rendering";
|
|
13547
|
+
readonly keys: readonly ["colorRendering"];
|
|
13548
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13549
|
+
}, {
|
|
13550
|
+
readonly id: "color-interpolation";
|
|
13551
|
+
readonly keys: readonly ["colorInterpolation"];
|
|
13552
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13553
|
+
}, {
|
|
13554
|
+
readonly id: "filter";
|
|
13555
|
+
readonly keys: readonly ["filters", "filterLibraryIds"];
|
|
13556
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13557
|
+
}, {
|
|
13558
|
+
readonly id: "system-language";
|
|
13559
|
+
readonly keys: readonly ["systemLanguage"];
|
|
13560
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13561
|
+
}, {
|
|
13562
|
+
readonly id: "required-extensions";
|
|
13563
|
+
readonly keys: readonly ["requiredExtensions"];
|
|
13564
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13565
|
+
}, {
|
|
13566
|
+
readonly id: "vector-effect";
|
|
13567
|
+
readonly keys: readonly ["vectorEffect"];
|
|
13568
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13569
|
+
}, {
|
|
13570
|
+
readonly id: "visibility";
|
|
13571
|
+
readonly keys: readonly ["visibility"];
|
|
13572
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13573
|
+
}, {
|
|
13574
|
+
readonly id: "display";
|
|
13575
|
+
readonly keys: readonly ["displayAttr"];
|
|
13576
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13577
|
+
}, {
|
|
13578
|
+
readonly id: "visible";
|
|
13579
|
+
readonly keys: readonly ["visible"];
|
|
13580
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13581
|
+
}, {
|
|
13582
|
+
readonly id: "path-length";
|
|
13583
|
+
readonly keys: readonly ["pathLength"];
|
|
13584
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13585
|
+
}, {
|
|
13586
|
+
readonly id: "transform-box";
|
|
13587
|
+
readonly keys: readonly ["transformBox"];
|
|
13588
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13589
|
+
}, {
|
|
13590
|
+
readonly id: "transform";
|
|
13591
|
+
readonly keys: readonly ["rotation", "transformMatrix", "translateX", "translateY", "skewX", "skewY", "scaleX", "scaleY", "customPivot", "rawTransform"];
|
|
13592
|
+
readonly project: () => never[];
|
|
13593
|
+
}, {
|
|
13594
|
+
readonly id: "locked";
|
|
13595
|
+
readonly keys: readonly ["locked"];
|
|
13596
|
+
readonly project: () => never[];
|
|
13597
|
+
}, {
|
|
13598
|
+
readonly id: "metadata";
|
|
13599
|
+
readonly keys: readonly ["metadata"];
|
|
13600
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13601
|
+
}, {
|
|
13602
|
+
readonly id: "css-clip-path";
|
|
13603
|
+
readonly keys: readonly ["cssClipPath"];
|
|
13604
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13605
|
+
}, {
|
|
13606
|
+
readonly id: "css-mask-properties";
|
|
13607
|
+
readonly keys: readonly ["cssMaskProperties"];
|
|
13608
|
+
readonly project: (read: PresentationValueReader) => PresentationWrite[];
|
|
13609
|
+
}, {
|
|
13610
|
+
readonly id: "container-presentation";
|
|
13611
|
+
readonly keys: readonly ["containerPresentation"];
|
|
13612
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13613
|
+
}, {
|
|
13614
|
+
readonly id: "authored-attributes";
|
|
13615
|
+
readonly keys: readonly ["authoredAttributes"];
|
|
13616
|
+
readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
|
|
13617
|
+
}];
|
|
13618
|
+
type PresentationSemanticId = (typeof PRESENTATION_SEMANTICS)[number]['id'];
|
|
13619
|
+
declare function projectPresentationEntry(entry: PresentationSemanticEntry, read: PresentationValueReader, context: PresentationSemanticContext): readonly PresentationWrite[];
|
|
13620
|
+
declare function projectPresentation(read: PresentationValueReader, context: PresentationSemanticContext): PresentationWrite[];
|
|
13621
|
+
declare function serializedPresentationReader(state: SerializedShapeState): PresentationValueReader;
|
|
13622
|
+
|
|
13623
|
+
type DefinitionAttribute = readonly [name: string, value: string | number];
|
|
13624
|
+
interface GradientStopEnvelope {
|
|
13625
|
+
attributes: readonly DefinitionAttribute[];
|
|
13516
13626
|
}
|
|
13517
|
-
interface
|
|
13518
|
-
|
|
13519
|
-
|
|
13520
|
-
|
|
13521
|
-
libraryDefinition?(id: string): LibraryDef | undefined;
|
|
13522
|
-
duplicateLibraryIds?(): ReadonlySet<string>;
|
|
13523
|
-
children(shape: SerializedShape): readonly SerializedShape[];
|
|
13627
|
+
interface GradientDefinitionEnvelope {
|
|
13628
|
+
element: 'linearGradient' | 'radialGradient';
|
|
13629
|
+
attributes: readonly DefinitionAttribute[];
|
|
13630
|
+
stops: readonly GradientStopEnvelope[];
|
|
13524
13631
|
}
|
|
13525
|
-
interface
|
|
13526
|
-
|
|
13527
|
-
|
|
13632
|
+
interface PatternDefinitionEnvelope {
|
|
13633
|
+
attributes: readonly DefinitionAttribute[];
|
|
13634
|
+
content: string;
|
|
13528
13635
|
}
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
|
|
13535
|
-
|
|
13536
|
-
|
|
13537
|
-
|
|
13538
|
-
|
|
13539
|
-
*/
|
|
13540
|
-
declare function snapshotBoundsView(snapshot: HistorySnapshot): DocumentBoundsView;
|
|
13541
|
-
interface EmbeddedSvgViewportOverride {
|
|
13542
|
-
width?: number;
|
|
13543
|
-
height?: number;
|
|
13636
|
+
type FilterColorInterpolation = 'auto' | 'sRGB' | 'linearRGB';
|
|
13637
|
+
type FilterUnits = 'userSpaceOnUse' | 'objectBoundingBox';
|
|
13638
|
+
interface FilterElementAttrs {
|
|
13639
|
+
colorInterpolation?: FilterColorInterpolation | null;
|
|
13640
|
+
filterUnits?: FilterUnits;
|
|
13641
|
+
primitiveUnits?: FilterUnits;
|
|
13642
|
+
x?: string;
|
|
13643
|
+
y?: string;
|
|
13644
|
+
width?: string;
|
|
13645
|
+
height?: string;
|
|
13544
13646
|
}
|
|
13545
|
-
interface
|
|
13546
|
-
|
|
13547
|
-
attribute: string | null;
|
|
13548
|
-
pivotRequired: boolean;
|
|
13549
|
-
pivotResolved: boolean;
|
|
13550
|
-
viewport: ResolvedSvgViewport;
|
|
13647
|
+
interface FilterEnvelopeBase {
|
|
13648
|
+
attributes: readonly DefinitionAttribute[];
|
|
13551
13649
|
}
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
|
|
13555
|
-
declare function resolveEmbeddedSvgViewportFrameBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
|
|
13556
|
-
interface ShapeReferenceTransformResult {
|
|
13557
|
-
matrix: Affine2D;
|
|
13558
|
-
attribute: string | null;
|
|
13559
|
-
pivotRequired: boolean;
|
|
13560
|
-
pivotResolved: boolean;
|
|
13561
|
-
diagnostics: readonly BoundsDiagnostic[];
|
|
13650
|
+
interface RawFilterEnvelope extends FilterEnvelopeBase {
|
|
13651
|
+
kind: 'raw';
|
|
13652
|
+
content: string;
|
|
13562
13653
|
}
|
|
13563
|
-
interface
|
|
13564
|
-
|
|
13565
|
-
|
|
13566
|
-
pivotRequired: boolean;
|
|
13567
|
-
pivotResolved: boolean;
|
|
13568
|
-
diagnostics: readonly BoundsDiagnostic[];
|
|
13654
|
+
interface PrimitiveChainFilterEnvelope extends FilterEnvelopeBase {
|
|
13655
|
+
kind: 'primitive-chain';
|
|
13656
|
+
chain: SvgPrimitiveChainFilter;
|
|
13569
13657
|
}
|
|
13570
|
-
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
*
|
|
13575
|
-
* The subject's authored transform is excluded while descendant transforms,
|
|
13576
|
-
* viewport mappings, references, and symbol placement remain authoritative.
|
|
13577
|
-
* This is the reference box CSS Transforms calls fill-box/content-box.
|
|
13578
|
-
*/
|
|
13579
|
-
declare function resolveShapeLocalObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: Pick<DocumentBoundsOptions, 'parentViewport'>, host?: DocumentBoundsHost): BoundsResult;
|
|
13580
|
-
/**
|
|
13581
|
-
* Resolve the use element's own transform for renderer parity.
|
|
13582
|
-
*
|
|
13583
|
-
* Canonical matrices need no geometry. Deprecated rotation/scale/skew
|
|
13584
|
-
* channels use the translated shadow subtree center, matching the bounds
|
|
13585
|
-
* walk instead of fabricating a pivot from non-authoritative width/height.
|
|
13586
|
-
*/
|
|
13587
|
-
declare function resolveShapeReferenceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): ShapeReferenceTransformResult;
|
|
13588
|
-
/**
|
|
13589
|
-
* Resolve the transform emitted on one symbol-instance use element. SVG 2
|
|
13590
|
-
* section 5.5.2 orders imported use transform, canonical or legacy instance
|
|
13591
|
-
* transform, and then the supplemental x/y translation into the shadow tree.
|
|
13592
|
-
*/
|
|
13593
|
-
declare function resolveSymbolInstanceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): SymbolInstanceTransformResult;
|
|
13594
|
-
/** Union every snapshot root in the requested target coordinate system. */
|
|
13595
|
-
declare function documentObjectBounds(view: DocumentBoundsView, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
|
|
13596
|
-
interface InlineContainerTransformResult {
|
|
13597
|
-
transform: ResolvedContainerTransform;
|
|
13598
|
-
contentBounds: BoundsResult | null;
|
|
13599
|
-
pivotRequired: boolean;
|
|
13600
|
-
pivotResolved: boolean;
|
|
13658
|
+
interface GeneratedFilterEnvelope extends FilterEnvelopeBase {
|
|
13659
|
+
kind: 'generated';
|
|
13660
|
+
filters: readonly ShapeFilter[];
|
|
13661
|
+
primitiveUnits: FilterUnits;
|
|
13601
13662
|
}
|
|
13663
|
+
type FilterDefinitionEnvelope = RawFilterEnvelope | PrimitiveChainFilterEnvelope | GeneratedFilterEnvelope;
|
|
13602
13664
|
/**
|
|
13603
|
-
*
|
|
13604
|
-
*
|
|
13605
|
-
*
|
|
13665
|
+
* Build the one portable pattern definition consumed by static rendering and
|
|
13666
|
+
* platform projections. SVG 2 section 14.3 keeps tile lengths on the pattern
|
|
13667
|
+
* resource, so valid source spellings remain authoritative over the numeric
|
|
13668
|
+
* editor projection.
|
|
13606
13669
|
*/
|
|
13607
|
-
declare function
|
|
13670
|
+
declare function patternDefinitionEnvelope(id: string, pattern: PatternFill): PatternDefinitionEnvelope;
|
|
13671
|
+
declare function linearGradientEnvelope(id: string, gradient: LinearGradient): GradientDefinitionEnvelope;
|
|
13672
|
+
declare function radialGradientEnvelope(id: string, gradient: RadialGradient): GradientDefinitionEnvelope;
|
|
13673
|
+
declare function filterChainExtendsBounds(filters: readonly ShapeFilter[]): boolean;
|
|
13674
|
+
declare function filterDefinitionEnvelope(filterId: string, filters: readonly ShapeFilter[], attrs?: FilterElementAttrs): FilterDefinitionEnvelope | null;
|
|
13608
13675
|
|
|
13609
13676
|
/**
|
|
13610
13677
|
* Connector routing — pure path-math for line shapes acting as connectors,
|
|
@@ -13733,6 +13800,20 @@ declare function renderForeignObject(shape: SerializedShape, ctx?: RenderShapeCo
|
|
|
13733
13800
|
* is optional and degrades to the context-free behavior when absent, so
|
|
13734
13801
|
* the per-shape renderers stay callable in isolation.
|
|
13735
13802
|
*/
|
|
13803
|
+
/**
|
|
13804
|
+
* Root-open-tag rewrites a planning stage applies to an already-rendered
|
|
13805
|
+
* shape. The two operations are kept distinct and named rather than folded
|
|
13806
|
+
* into one generic map, because they are not interchangeable: an attribute
|
|
13807
|
+
* the renderer owns is REPLACED, while inline style declarations are
|
|
13808
|
+
* APPENDED so the planner's contribution loses to nothing the shape itself
|
|
13809
|
+
* declared for a different property and wins the cascade against its own.
|
|
13810
|
+
*/
|
|
13811
|
+
interface RenderedRootOverrides {
|
|
13812
|
+
/** Attribute values that replace whatever the renderer emitted. */
|
|
13813
|
+
readonly replace?: ReadonlyMap<string, string>;
|
|
13814
|
+
/** Declarations appended to the element's existing inline `style`. */
|
|
13815
|
+
readonly appendStyle?: string;
|
|
13816
|
+
}
|
|
13736
13817
|
interface RenderShapeContext {
|
|
13737
13818
|
/** Keep native inline CSS animation assignments instead of normalized SMIL fallback. */
|
|
13738
13819
|
retainCssAnimationDeclarations?: boolean;
|
|
@@ -13808,6 +13889,21 @@ interface RenderShapeContext {
|
|
|
13808
13889
|
forcedElementIds?: ReadonlySet<string>;
|
|
13809
13890
|
/** Deterministic collision-free root element id allocated by the render plan. */
|
|
13810
13891
|
elementIdForShape?: (shape: SerializedShape) => string | undefined;
|
|
13892
|
+
/**
|
|
13893
|
+
* Root-attribute values that replace whatever the renderer emitted for the
|
|
13894
|
+
* same names, applied after authored passthrough and before animation
|
|
13895
|
+
* children.
|
|
13896
|
+
*
|
|
13897
|
+
* Ephemeral rendered-state input from a planning stage, in the same sense as
|
|
13898
|
+
* {@link renderClipMaskDefinitionShape}'s transform override: the serialized
|
|
13899
|
+
* shape remains the sole document authority, and the override exists because
|
|
13900
|
+
* the emitted frame is a function of the document PLUS a timeline. The
|
|
13901
|
+
* variant-transition planner uses it to rewrite the pre-SMIL base transform
|
|
13902
|
+
* of a polygon-family inner shape, which no combination of shape state can
|
|
13903
|
+
* spell (the kernel emits a simplified `translate(cx, cy) rotate(r)` frame
|
|
13904
|
+
* that the shape's own transform emission does not produce).
|
|
13905
|
+
*/
|
|
13906
|
+
rootAttributeOverridesForShape?: (shape: SerializedShape) => RenderedRootOverrides | undefined;
|
|
13811
13907
|
/** SMIL children owned by this exact serialized shape in the document tree. */
|
|
13812
13908
|
animationElementsForShape?: (shape: SerializedShape) => readonly string[] | undefined;
|
|
13813
13909
|
/** SMIL children targeting this text shape's canonical `<textPath>` sub-element. */
|
|
@@ -13838,6 +13934,24 @@ interface RenderShapeContext {
|
|
|
13838
13934
|
readonly siblingIndex: number;
|
|
13839
13935
|
readonly markup: string;
|
|
13840
13936
|
}[] | undefined;
|
|
13937
|
+
/**
|
|
13938
|
+
* What an `instanceVariant` transition adds to one EMITTED symbol
|
|
13939
|
+
* definition: inner content appended after the definition's own, and the
|
|
13940
|
+
* scope class the CSS encoding puts on the definition root.
|
|
13941
|
+
*
|
|
13942
|
+
* Keyed by emitted target id rather than definition id: dedicated
|
|
13943
|
+
* per-instance materializations share a definition but must not share the
|
|
13944
|
+
* content a track derives for one of them.
|
|
13945
|
+
*
|
|
13946
|
+
* The children arrive pre-rendered because they are addressed by a
|
|
13947
|
+
* synthesized inner id (`<id>--xf`) that is deliberately NOT a document
|
|
13948
|
+
* shape id, so they cannot travel as `SerializedShape`s through the
|
|
13949
|
+
* id-keyed content map {@link renderResolvedSymbolLibraryDef} builds.
|
|
13950
|
+
*/
|
|
13951
|
+
variantTransitionDefinitionContent?: (emittedId: string) => {
|
|
13952
|
+
readonly children: readonly string[];
|
|
13953
|
+
readonly scopeClass?: string;
|
|
13954
|
+
} | undefined;
|
|
13841
13955
|
}
|
|
13842
13956
|
/**
|
|
13843
13957
|
* SymbolInstance - a component instance, emitted as SVG 2 §5.6
|
|
@@ -13909,6 +14023,104 @@ declare function renderRadialGradient(id: string, g: RadialGradient, ctx?: Rende
|
|
|
13909
14023
|
*/
|
|
13910
14024
|
declare function renderBuiltinMarkerDefs(referenced: MarkerReferenceSets | SerializedShape[], library?: readonly LibraryDef[]): string;
|
|
13911
14025
|
|
|
14026
|
+
/**
|
|
14027
|
+
* Variant-transition render planning — the stage that turns an
|
|
14028
|
+
* `instanceVariant` timeline track into emitted document content.
|
|
14029
|
+
*
|
|
14030
|
+
* An `instanceVariant` track cycles a symbol instance through its
|
|
14031
|
+
* definition's variants. SVG has no such concept, so the track has to be
|
|
14032
|
+
* decomposed into concrete per-element animations against the dedicated
|
|
14033
|
+
* per-instance definition that {@link buildSymbolMaterializationPlan}
|
|
14034
|
+
* allocated for it. {@link ./variant-transition-kernels} owns every value in
|
|
14035
|
+
* that decomposition; this module is what places the result in the document.
|
|
14036
|
+
*
|
|
14037
|
+
* It exists because the decomposition used to happen only in the editor, as a
|
|
14038
|
+
* DOM pass over the assembled export. Core emitted the dedicated definition
|
|
14039
|
+
* and nothing inside it, so the CLI, the SDK and the GitHub Action rendered a
|
|
14040
|
+
* variant-animated document frozen on its first variant. The conformance loop
|
|
14041
|
+
* measured that as a 1.95% raster divergence at t=2s.
|
|
14042
|
+
*
|
|
14043
|
+
* Every other authoring-level track is already decomposed by the render plan:
|
|
14044
|
+
* `textPathMorph` into `<animate attributeName="d">` on a generated path def,
|
|
14045
|
+
* gradient stop tracks into `<animate>` on `<stop>`, motion into
|
|
14046
|
+
* `<animateMotion>` + `<mpath>`. `instanceVariant` was the exception.
|
|
14047
|
+
*
|
|
14048
|
+
* The output is four DOM-free channels consumed through
|
|
14049
|
+
* {@link RenderShapeContext} seams that already existed for definition-local
|
|
14050
|
+
* animation, plus the stylesheet and script bodies the two non-SMIL
|
|
14051
|
+
* encodings need. Nothing here locates an element: core BUILDS the symbol,
|
|
14052
|
+
* so every inner element's identity is known at construction time.
|
|
14053
|
+
*
|
|
14054
|
+
* @packageDocumentation
|
|
14055
|
+
*/
|
|
14056
|
+
|
|
14057
|
+
/** Which encoding an `instanceVariant` track is decomposed into. */
|
|
14058
|
+
type VariantTransitionTarget = 'smil' | 'css' | 'waapi';
|
|
14059
|
+
/** Inner content and root decoration a transition adds to one definition. */
|
|
14060
|
+
interface VariantTransitionDefinitionContent {
|
|
14061
|
+
readonly children: readonly string[];
|
|
14062
|
+
readonly scopeClass?: string;
|
|
14063
|
+
}
|
|
14064
|
+
interface VariantTransitionRenderPlan {
|
|
14065
|
+
/** Emitted target id → appended content and CSS scope class. */
|
|
14066
|
+
readonly definitionContent: ReadonlyMap<string, VariantTransitionDefinitionContent>;
|
|
14067
|
+
/** Emitted target id → inner shape id → SMIL children. */
|
|
14068
|
+
readonly innerAnimations: ReadonlyMap<string, ReadonlyMap<string, readonly string[]>>;
|
|
14069
|
+
/** Emitted target id → inner shape id → root-open-tag rewrites. */
|
|
14070
|
+
readonly innerRootOverrides: ReadonlyMap<string, ReadonlyMap<string, RenderedRootOverrides>>;
|
|
14071
|
+
/** Gradient definition id → stop index → SMIL children. */
|
|
14072
|
+
readonly gradientStopAnimations: ReadonlyMap<string, ReadonlyMap<number, readonly string[]>>;
|
|
14073
|
+
/** Gradient definition id → SMIL children on the definition root. */
|
|
14074
|
+
readonly gradientRootAnimations: ReadonlyMap<string, readonly string[]>;
|
|
14075
|
+
/** `@keyframes` rules for the CSS encoding. */
|
|
14076
|
+
readonly stylesheet: string | null;
|
|
14077
|
+
/** Self-contained runtime script for the WAAPI encoding. */
|
|
14078
|
+
readonly scriptBody: string | null;
|
|
14079
|
+
/**
|
|
14080
|
+
* Emitted symbol ids a stylesheet or script addresses BY NAME. Definition
|
|
14081
|
+
* deduplication renames collapsed ids, and it rewrites markup channels
|
|
14082
|
+
* only, so an id reached from a script would silently stop resolving.
|
|
14083
|
+
*/
|
|
14084
|
+
readonly addressedSymbolIds: ReadonlySet<string>;
|
|
14085
|
+
readonly isEmpty: boolean;
|
|
14086
|
+
}
|
|
14087
|
+
interface VariantTransitionPlanOptions {
|
|
14088
|
+
readonly snapshot: HistorySnapshot;
|
|
14089
|
+
readonly symbols: SymbolMaterializationPlan;
|
|
14090
|
+
readonly target: VariantTransitionTarget;
|
|
14091
|
+
/** The context the owning definition renders its own content with. */
|
|
14092
|
+
readonly shapeContext: RenderShapeContext | undefined;
|
|
14093
|
+
/** Root percentage basis, for the bounds view behind rotation pivots. */
|
|
14094
|
+
readonly parentViewport?: Readonly<SvgViewportSize>;
|
|
14095
|
+
/** Measured text bounds, for inner shapes with no analytic center. */
|
|
14096
|
+
readonly measureShapeTextBounds?: ShapeObjectBoundsHost['measureText'];
|
|
14097
|
+
}
|
|
14098
|
+
/**
|
|
14099
|
+
* Decompose every `instanceVariant` track in a snapshot into emitted content.
|
|
14100
|
+
*
|
|
14101
|
+
* Returns the empty plan when the document has no such track, so a document
|
|
14102
|
+
* without variant animation pays nothing and emits byte-identical output.
|
|
14103
|
+
*/
|
|
14104
|
+
declare function planVariantTransitions(options: VariantTransitionPlanOptions): VariantTransitionRenderPlan;
|
|
14105
|
+
/**
|
|
14106
|
+
* The CSS encoding's `@keyframes` rules as a document `<style>` element.
|
|
14107
|
+
*
|
|
14108
|
+
* The DOM encoder inserted this as the root's FIRST child, reasoning that the
|
|
14109
|
+
* keyframes had to be "defined before any element references them". CSS
|
|
14110
|
+
* Animations 1 §3 resolves an `animation-name` against the document's whole
|
|
14111
|
+
* set of `@keyframes` rules regardless of where they appear, so the rules
|
|
14112
|
+
* travel in the ordinary document stylesheet channel instead.
|
|
14113
|
+
*/
|
|
14114
|
+
declare function renderVariantTransitionStylesheet(stylesheet: string | null): string;
|
|
14115
|
+
/**
|
|
14116
|
+
* The WAAPI encoding's runtime as a document `<script>` element.
|
|
14117
|
+
*
|
|
14118
|
+
* Routed through the shared inline-body policy: the generated body contains a
|
|
14119
|
+
* bare `<` in its loop condition, so it has to be CDATA-wrapped or the
|
|
14120
|
+
* document is not well-formed XML.
|
|
14121
|
+
*/
|
|
14122
|
+
declare function renderVariantTransitionScript(scriptBody: string | null): string;
|
|
14123
|
+
|
|
13912
14124
|
/**
|
|
13913
14125
|
* Structured clip/mask group rendering for the headless renderer.
|
|
13914
14126
|
*
|
|
@@ -14098,6 +14310,24 @@ interface RenderPlanOptions {
|
|
|
14098
14310
|
* definition shared by untracked sibling instances.
|
|
14099
14311
|
*/
|
|
14100
14312
|
symbolInstanceInitialVariants?: ReadonlyMap<string, string>;
|
|
14313
|
+
/**
|
|
14314
|
+
* Which encoding an `instanceVariant` track is decomposed into.
|
|
14315
|
+
*
|
|
14316
|
+
* Defaults to `'smil'`, the only encoding that animates a standalone SVG
|
|
14317
|
+
* with no script and no host stylesheet, and the one every raster backend
|
|
14318
|
+
* can seek. `'css'` suits an SVG embedded in HTML; `'waapi'` suits a
|
|
14319
|
+
* consumer that wants to drive the animations from script.
|
|
14320
|
+
*/
|
|
14321
|
+
variantTransitionTarget?: VariantTransitionTarget;
|
|
14322
|
+
/**
|
|
14323
|
+
* Measured text bounds, used for the rotation pivot of a variant-animated
|
|
14324
|
+
* inner shape whose center is not analytic (text, containers).
|
|
14325
|
+
*
|
|
14326
|
+
* Distinct from {@link textMeasurementHost}, which measures advance widths
|
|
14327
|
+
* for line breaking. Without it those rotations are dropped and reported as
|
|
14328
|
+
* `unresolved-variant-transition-pivot`.
|
|
14329
|
+
*/
|
|
14330
|
+
measureShapeTextBounds?: ShapeObjectBoundsHost['measureText'];
|
|
14101
14331
|
}
|
|
14102
14332
|
/** Which root frame attributes to leave off the emitted `<svg>` tag. */
|
|
14103
14333
|
interface RenderFrameAttributeOmissions {
|
|
@@ -14256,14 +14486,6 @@ interface RenderPlan {
|
|
|
14256
14486
|
}
|
|
14257
14487
|
/** The canonical `<defs>` children concatenated in model order. */
|
|
14258
14488
|
declare function renderPlanDefsBody(defs: RenderPlanDefs): string;
|
|
14259
|
-
/**
|
|
14260
|
-
* Build the render plan for a snapshot.
|
|
14261
|
-
*
|
|
14262
|
-
* Pure with respect to output: the same snapshot and options always
|
|
14263
|
-
* produce the same plan. Problems found along the way (unsupported
|
|
14264
|
-
* shape types, dangling references) are reported through the ambient
|
|
14265
|
-
* diagnostics channel.
|
|
14266
|
-
*/
|
|
14267
14489
|
declare function buildRenderPlan(snapshot: HistorySnapshot, options?: RenderPlanOptions): RenderPlan;
|
|
14268
14490
|
/**
|
|
14269
14491
|
* Extract SVG path `d` data from a serialized shape for motion-path use.
|
|
@@ -18567,4 +18789,4 @@ interface RasterQualityReport {
|
|
|
18567
18789
|
*/
|
|
18568
18790
|
declare function compareImages(reference: RasterImage, candidate: RasterImage, opts?: CompareImagesOptions): RasterQualityReport;
|
|
18569
18791
|
|
|
18570
|
-
export { ANIMATION_MANAGER_INTERPOLATION_POLICY, type AdditiveAnimationValue, type Affine2D, type AffineTransformMatrix, type AggregateDocumentFieldKey, type AlphaMode, type AngleInterpolationPolicy, type AnimatablePropertyDescriptor, type AnimationCycleTrack, type AnimationDefinitionTarget, type AnimationKeyframe, type AnimationOperation, type AnimationTimeline, type AnimationTrack, type AnimationTrackTimeSample, type AnimationTrigger, type AnimationTriggerType, type AnyNodeProps, type AppearanceExpansion, type AppearanceExpansionDeps, type AppearanceFillLayer, type AppearanceLayer, type AppearanceLayerKind, type AppearancePaintValue, type AppearanceStrokeLayer, type AppearanceStyleLibraryDef, type AppearanceStyleSource, type AppliedIngestPlan, type ApplyIngestPlanOptions, type ArcCenterParameterization, type ArcParams, type AriaRole, Arrow, type ArrowNodeProps, Audio, type AuthoredGradientGeometry, type AuthoredLengthCoordinate, type AuthoredMarkerGeometry, type AuthoredPaintReference, type AuthoredPatternGeometry, type AuthoredTextCoordinate, type AuthoredTextPosition, type AuthoredUseGeometry, BASE_FILL_LAYER_ID, BASE_STROKE_LAYER_ID, BROWSER_SVG_EXTENSION_URIS, BUILTIN_MARKER_ID_MAP, type BaseFilter, type BaseFilterPrimitive, type BlackAndWhiteFilter, type BlurQuality, type BoundingBox, type BoundsDiagnostic, type BoundsDiagnosticCode, type BoundsRect, type BoundsResult, type BoundsStatus, type BrightnessFilter, type BuildForeignImportReportInput, type BuildSvgDestinationIdentityIndexOptions, type BuiltinShapeGeometryType, CANONICAL_NORMALIZATION_FAULT_POINTS, CC_NS, COLLAB_PROTOCOL_VERSION, COMMON_PROP_DEFAULTS, COMMON_TRANSFORM_NODE_DEFAULTS, CONNECTOR_LABEL_BASELINE_LIFT, CONNECTOR_LABEL_FONT_FAMILY, CONNECTOR_LABEL_FONT_SIZE, CSS_GENERIC_FAMILY_NAMES, CURRENT_SCHEMA_VERSION, CanonicalDocument, type CanonicalNormalizationFaultPoint, type CanonicalRootFramePolicy, type CanonicalSnapshotNormalizationOptions, type CanonicalSnapshotNormalizationResult, type ChannelPainterFilter, Circle, type CircleNodeProps, type CircleShapeGeometry, type ClipMaskDefinition, type ClipMaskGroupDeltaOperation, type ClipMaskOperation, type ClipMaskRenderPlan, type ClipMaskWrapDirective, Cloud, type CloudNodeProps, type CodeFormat, type CodegenOptions, type CollabClock, type CollaborationSnapshot, type CollaborationStamp, type CollaborationState, type ColorInterpolationPolicy, type CommonNodeProps, type CommonTransformNodeProps, type CompareImagesOptions, type ConnectionDirection, type ConnectionDirectionValue, type ConnectionPoint, type ConnectionPointValue, type ConnectorAnchorResolver, type ConnectorEndpointRefValue, type ConnectorLabelAnchor, type ConnectorRouteResult, type ConnectorRoutingModeValue, Container, type ContainerContentBounds, type ContainerNodeProps, ContainerShapeBuilder, type ContainerShapeGeometry, type ContainerTransformOwner, type ContouringDiscreteFilter, type ContouringTableFilter, type ContrastFilter, type CornerShapeValue, type CreateDocumentOptions, type CreateShapeOptions, Cross, type CrossNodeProps, type CrumpledPlasticFilter, type CssAnimationSourceGroup, type CssFunctionToken, type CssLocalUrlToken, type CssProjectedTransformChannel, type CssProjectedTransformStop, type CssTopLevelRange, type CssTransformBox, type CssTransformOrigin, type CssTransformOriginContext, type CssTransformProjection, type CssTransformProjectionStatus, type CssTransformStop, type CssTransformValueIssue, type CustomPatternDef, type CycleBehavior, type CylinderNodeProps, DC_NS, DEFAULT_CONNECTOR_CORNER_RADIUS, DEFAULT_CONNECTOR_LABEL_OFFSET, DEFAULT_CONNECTOR_LABEL_POSITION, DEFAULT_COORDINATE_PRECISION, DEFAULT_FONT_WEIGHT, DEFAULT_RICH_TEXT_STYLE, DOCUMENT_BYTE_KINDS, DOCUMENT_FIELDS, DOCUMENT_FIELD_LIVE_AUTHORITY, DOCUMENT_IMPORT_INTENTS, DOCUMENT_IMPORT_KINDS, DOCUMENT_INGEST_POLICIES, DOCUMENT_SECTION_ORDER, type DecodedSvgSource, type DecorationOutcome, type DeepReadonly, type DefinitionAttribute, type DefinitionAuthoredPlacement, type DefinitionPlacementIndex, type DefinitionPlacementScope, type DeltaEStats, type DescriptiveEmissionOptions, type DiamondNodeProps, type DiffuseLightingFilter, type DocumentBoundsHost, type DocumentBoundsOptions, type DocumentBoundsView, DocumentBuilder, type DocumentBuilderOptions, type DocumentByteKind, type DocumentDefinitionContainer, type DocumentExtension, type DocumentExtensionAttribute, type DocumentExtensionCharacterNode, type DocumentExtensionElementNode, type DocumentExtensionNode, type DocumentFieldAuthority, type DocumentFieldDescriptor, type DocumentFieldKey, type DocumentFieldRegistryGates, type DocumentMetadata, DocumentModel, type DocumentNodeProps, type DocumentReplacementHooks, type DocumentReplacementListener, type DocumentReplacementResult, type DocumentReplacementTransition, type DocumentResourceOperation, type DocumentScript, type DocumentSectionKey, type DocumentSectionListener, type DocumentSectionOrderGates, DocumentSession, type DocumentSessionView, type DocumentShapeNodeProps, type DocumentStyle, type DropShadowFilter, type DuotoneFilter, EASING_CURVES, EasingType, Ellipse, type EllipseNodeProps, type EllipseShapeGeometry, type EmbeddedPayloadRewriter, type EmbeddedPayloadSlotKind, type EmbeddedSvgShapeGeometry, type EmbeddedSvgTransformResult, type EmbeddedSvgViewportOverride, type EmbossFilter, type EnsureTextSpanRangeResult, type EvaluateSvgConditionalProcessingOptions, type ExpandedName, type ExportItemOperation, type Extent1D, type ExtractedVariables, FLOWCHART_GEOMETRY_DEFAULTS, type FeBlendPrimitive, type FeColorMatrixPrimitive, type FeComponentTransferPrimitive, type FeCompositePrimitive, type FeConvolveMatrixPrimitive, type FeDiffuseLightingPrimitive, type FeDisplacementMapPrimitive, type FeDropShadowPrimitive, type FeFloodPrimitive, type FeGaussianBlurPrimitive, type FeImagePrimitive, type FeMergePrimitive, type FeMorphologyPrimitive, type FeOffsetPrimitive, type FeSpecularLightingPrimitive, type FeTilePrimitive, type FeTurbulencePrimitive, type FieldPrecision, type FieldSerialization, type FillType, type FilmGrainFilter, type FilterBlendMode, type FilterChainGroup, type FilterDefinitionEnvelope, type FilterElementAttrs, type FilterLibraryDef, type FilterLightSource, type FilterPrimitive, type FilterPrimitiveType, type FilterType, type FlowchartBoxNodeProps, type FlowchartBoxParams, type FlowchartBoxType, type FontCoverageResult, type FontCoverageStatus, type FontFaceRequest, type FontVariantCssInput, type ForeignImportBucket, type ForeignImportContainer, type ForeignImportFontRequirement, type ForeignImportReport, type ForeignImportReportItem, type ForeignImportVocabulary, type ForeignObjectNodeProps, type FusableTrack, type FusableViewBoxTrack, GEOMETRY_TRACK_PROPERTIES, type GaussianBlurFilter, Gear, type GearNodeProps, type GenerateCodeResult, type GenerateSudokuOptions, type GeneratedFilterEnvelope, type GeneratedSudokuPuzzle, type GeneratedWordSearch, type GlowFilter, type GouacheFilter, type GradientDefinition, type GradientDefinitionEnvelope, type GradientGeometry, type GradientGeometryContext, type GradientLibraryDef, type GradientSpreadMethod, type GradientStop, type GradientStopEnvelope, type GradientTransformMatrix, type GradientUnits, type GraphChangeListener, type GrayscaleFilter, type GroupNodeProps, type GroupPresentationData, type Guide, type GuideDeltaOperation, HEADLESS_SVG_STYLE_ENVIRONMENT, Heart, type HeartNodeProps, type HistorySnapshot, type HueRotateFilter, Hyperlink, type HyperlinkNodeProps, IDENTITY_AFFINE, INGEST_APPLY_STAGES, INGEST_DIAGNOSTIC_CODES, INGEST_DOCUMENT_ROOT_IDENTITY, INGEST_FEATURES, INGEST_FEATURE_CAPABILITIES, INGEST_PLAN_VERSION, INGRESS_INTENTS, INLINE_CHILD_CONTAINER_TYPES, type ImageAttribution, type ImageNodeProps, ImageShape, type IndexedResource, IngestApplicationError, type IngestApplyContext, type IngestApplyStage, type IngestDiagnostic, type IngestDiagnosticCode, type IngestDiagnosticSeverity, type IngestDocumentFieldCandidates, type IngestExternalEffectValue, type IngestExternalFontDescriptorsValue, type IngestExternalFontSourceValue, type IngestFeature, type IngestFeatureCapability, type IngestFeatureCapabilityGates, type IngestFeatureIntentMatrix, type IngestFeatureStatus, type IngestFieldPolicy, type IngestFieldPolicyAction, type IngestFieldPolicyGates, type IngestFieldPolicyMatrix, type IngestNodeDecoration, type IngestNodeDecorations, type IngestPlan, type IngestPlanApplyAdapter, type IngestPlanValue, type IngestReferenceEdgeValue, type IngestResult, type IngestRootFrameValue, type IngestShapeCandidateValue, type IngestSource, type IngestSourceDescriptor, type IngestSourceElementDescriptor, type IngressIntent, type InkBlotFilter, type InlineContainerTransformResult, type InnerGlowFilter, type InnerShadowFilter, type InterpolationCharOffset, type InterpolationColor, type InterpolationGradient, type InterpolationGradientStop, type InterpolationPoint, type InterpolationSplinePoint, type InvertFilter, type JsonObject, type JsonPrimitive, type JsonValue, KNOWN_METADATA_PREFIXES, KNOWN_STATE_KEYS, type KeyedSerializedAnimationKeyframe, LAYER_PRESENTATION_IDS, LIBRARY_ASSEMBLY_KIND_ORDER, LIBRARY_EMIT_ORDER, LIBRARY_KINDS, type LibraryDef, type LibraryDefBase, type LibraryDefOfKind, type LibraryDefinitionIndex, type LibraryIndex, type LibraryKind, type LibrarySource, type LicenseType, type LightSource, Lightning, type LightningNodeProps, Line, type LineEndpointValue, type LineNodeProps, type LineShapeGeometry, type LinearEasingPoint, type LinearGradient, LinearGradientBuilder, type LinearGradientGeometry, type LinearGradientLibraryDef, type LinearGradientLibraryValue, type LiveInterpolationPolicy, type LoweredPathNodeTracks, MARKER_HEIGHT, MARKER_VIEWBOX, MARKER_WIDTH, MATHML_EXTENSION_URI, MAX_COORDINATE_PRECISION, MIGRATIONS, type MarkerDescriptor, type MarkerLibraryDef, type MarkerReferenceSets, type MaterializedIngestNode, type MatrixDecomposition2D, type Measurement, type MeasurementDeltaOperation, type MediaNodeProps, type MetadataDeltaOperation, type MetadataDescriptiveElement, type MigratableVersion, type Migration, type MorphologyFilter, type MorphologyOperator, type MotionBlurFilter, NAMESPACE_VOCABULARIES, NGon, type NGonNodeProps, NON_RENDERING_LIBRARY_KINDS, NON_WIRE_PROP_KEYS, NUMERIC_SHAPE_TRANSFORM_STATE_KEYS, type NamedResource, type NamespaceVocabulary, NestedSvg, type NodeChangeListener, type NodeFactoryMode, NodeSchemaRegistry, type NodeTypePropsMap, type NodeTypeSchema, type NoiseFilter, type OpMetadataPatch, type OpShapeState, type OpacityFilter, type Operation, type OperationValidationIssue, type OperationValidationResult, type OutlineFilter, type OutlinePosition, PAINT_SERVER_PASSTHROUGH_ATTR, PATH_DATA_TRACK_PROPERTIES, POLYGON_GEOMETRY_DEFAULTS, PRESENTATION_SEMANTICS, PUZZLE_DEFAULTS, type ParallelogramNodeProps, type ParseOptions, type ParsedCssAnimation, type ParsedPreserveAspectRatio, type ParsedSvgPathCommand, type ParsedSvgPathCommandType, type ParsedSvgViewBox, type ParsedTimingFunction, Path, type PathBoundsRect, PathCurveType, type PathNodeChannel, type PathNodeGeometry, type PathNodeProps, type PathPoint, PathPointType, type PathShapeGeometry, PatternBuilder, type PatternDefinitionEnvelope, type PatternElement, type PatternFill, type PatternLibraryDef, type PatternParams, type PatternSvgContentResult, type PatternType, type PixelateFilter, type PlanSnapshotExternalEffectsOptions, type PlanSvgAnimationsOptions, type PlanSvgClipMasksOptions, type PlanSvgConditionalProcessingOptions, type PlanSvgContainerHierarchyOptions, type PlanSvgExternalEffectsOptions, type PlanSvgFiltersOptions, type PlanSvgGradientsOptions, type PlanSvgImportOptions, type PlanSvgLeafGeometryOptions, type PlanSvgMarkersOptions, type PlanSvgMetadataOptions, type PlanSvgOccurrenceViewportsOptions, type PlanSvgPaintServerDefinitionsOptions, type PlanSvgPatternsOptions, type PlanSvgResourceDependenciesOptions, type PlanSvgScriptsOptions, type PlanSvgStyleCascadeOptions, type PlanSvgSymbolUsesOptions, type PlanSvgUseOccurrencesOptions, type Point, type PointLightFilter, type PolygonBaseNodeProps, Polyline, type PolylineNodeProps, type PolylineShapeGeometry, type PositioningRectShapeGeometry, type PresentationSemanticContext, type PresentationSemanticEntry, type PresentationSemanticId, type PresentationValueReader, type PresentationWrite, type PreserveAspectRatioAlign, type PreviousPlacement, type PrimitiveChainFilterEnvelope, type ProjectedTextLinePosition, type PropDef, type PropStamp, type PuzzleBounds, type PuzzleOptions, type PuzzlePiece, type PuzzleStyle, type PuzzleTabPattern, RDF_NS, RENDER_DIAGNOSTIC_CODES, RENDER_FEATURES, RENDER_FEATURE_CAPABILITIES, RENDER_TARGETS, RICH_TEXT_STYLE_KEYS, type RadialGradient, RadialGradientBuilder, type RadialGradientGeometry, type RadialGradientLibraryDef, type RadialGradientLibraryValue, type RasterImage, type RasterQualityReport, type RawFilterEnvelope, type RawSvgFilter, type Rect, Rectangle, type RectangleNodeProps, type RectangleShapeGeometry, type RejectedWordSearchWord, type RenderAnimationElementsOptions, type RenderCapability, type RenderCapabilityMatrix, type RenderCapabilityMatrixGates, type RenderDiagnostic, type RenderDiagnosticCode, type RenderDiagnosticSeverity, type RenderFeature, type RenderFeatureCapability, type RenderFeatureCapabilityGates, type RenderFeatureTargetMatrix, type RenderFinalizationOptions, type RenderFrameAttributeOmissions, type RenderOptions, type RenderPlan, type RenderPlanBodyEntry, type RenderPlanDefEntry, type RenderPlanDefKind, type RenderPlanDefinitionContainer, type RenderPlanDefs, type RenderPlanEnvelope, type RenderPlanFrame, type RenderPlanOptions, type RenderPlanShape, type RenderShapeContext, type RenderTarget, type RenderToSvgResult, type RenderedDefinitionAnimationElement, type ResolveSvgClipMaskContext, type ResolveSvgGradientGeometryContext, type ResolveSvgPatternTileContext, type ResolvedConnectorAnchor, type ResolvedConnectorEndpoints, type ResolvedContainerTransform, type ResolvedLibraryGradient, type ResolvedSvgPatternTile, type ResolvedSvgRectRadii, type ResolvedSvgViewport, type ResolvedSvgViewportFrame, type ResolvedSymbolDefinitionRender, type ResolvedSymbolInstanceContent, type ResolvedSymbolViewport, type ResolvedTextFragment, type ResolvedTextSpan, type ResolvedTextSpanChild, type ResolvedTextSpanProjection, type ResourceKey, type Rgba, type RichTextAlignmentBaseline, type RichTextDecoration, type RichTextFontWeight, type RichTextFormatRange, type RichTextLineSpan, type RichTextResolvedData, type RichTextResolvedLine, type RichTextResolvedSegment, type RichTextResolvedStyle, type RichTextRun, type RichTextRuns, type RichTextSegmentsInput, type RichTextStyleDelta, type RichTextTspanAttribute, type RiddledFilter, Ring, type RingNodeProps, type RootViewportFraming, type RoundEdgesFilter, SAXES_SVG_XML_PARSER_HOST, SCRIPT_ANIMATION_GENERATORS, SERIALIZED_SHAPE_STATE_KEYS, SHAPE_ENVELOPE_KEYS, SHAPE_GEOMETRY_DEFAULTS, SHAPE_TRANSFORM_STATE_KEYS, SVGSKETCH_NS, SVGSKETCH_PATH_EXTENSIONS, SVG_CONDITIONAL_PROCESSING_ATTRIBUTES, SVG_IMPORT_CAPABILITY_OWNERS, SVG_NAMESPACE, SVG_NS, SVG_PRESENTATION_PROPERTIES, SVG_WELL_KNOWN_NAMESPACE_URIS, type SaturateFilter, SceneGraph, SceneNode, type SceneTreeReplayHost, type ScriptAnimationCandidateScript, type ScriptAnimationGenerator, type ScriptAnimationSource, type SegmentCurveType, type SepiaFilter, type SerializedAnimationKeyframe, type SerializedAnimationTimeline, type SerializedAnimationTrack, type SerializedCharOffset, type SerializedClipMaskGroup, type SerializedColorGlyph, type SerializedColorGlyphLibrary, type SerializedExportItem, type SerializedGroup, type SerializedMarkerDef, type SerializedPaintServerDef, type SerializedSceneNodePlacement, type SerializedShape, type SerializedShapeState, type SerializedShapeStateKeyGates, type SerializedShapeTransformState, type SerializedSymbolDef, type SerializedVariantAxis, type SerializedViewbox, type SeverityOptions, type SeverityReport, ShapeBuilder, type ShapeEnvelopeKeyGates, type ShapeFilter, type ShapeGeometryDefaultsType, type ShapeGeometryDescriptor, type ShapeGeometryKernel, type ShapeGeometryRendererKey, type ShapeLibraryDefBase, type ShapeLocalObjectBoundsHost, type ShapeMetadata, type ShapeObjectBoundsHost, type ShapeOutlineCapability, ShapeReference, type ShapeReferenceGeometry, type ShapeReferenceNodeProps, type ShapeReferenceTransformResult, type ShapeTransformState, type ShapeTreeVisitor, type SharpenFilter, type SmilAnimationKeyframe, type SmilCalcMode, type SmilKeyframeAttributes, type SmilKeyframeData, type SmilTimingRelation, type SmilTimingTrack, type SmilValue, type SmilValueAttributes, type SmilValueType, type SmilViewBoxAxis, type SmilViewBoxQuartet, type SolveSudokuOptions, type SpecularLightingFilter, SpeechBubble, type SpeechBubbleNodeProps, Spiral, type SpiralNodeProps, type SpliceTextSpanTreeResult, type SplinePointInput, type SpotLightFilter, Square, type SquareNodeProps, Star, type StarNodeProps, type StepPosition, type StepsParams, type StringifyOptions, type StrokeType, type StructureChangeListener, type StyledTextContent, type StyledTextLine, type StyledTextSegment, type StyledTextSource, type SudokuDifficulty, type SudokuGrid, type SudokuRating, type SudokuValidationResult, type SvgAnimationPlan, type SvgAnimationTargetStatus, type SvgAnimationTimelineDefinitionTarget, type SvgAnimationTimelineProjectionHost, type SvgAnimationTimelineShapeBinding, type SvgAppliedResourceDeclaration, type SvgAuthoredAttributeClassification, type SvgAuthoredAttributePlan, type SvgAuthoredAttributeRecord, type SvgAuthoredDeclaration, type SvgClipMaskBinding, type SvgClipMaskBindingStatus, type SvgClipMaskDefinition, type SvgClipMaskDefinitionMutation, type SvgClipMaskGeometryPlacement, type SvgClipMaskObjectBounds, type SvgClipMaskPlan, type SvgClipMaskRegion, type SvgClipMaskRepresentation, type SvgClipMaskResolution, type SvgClipMaskStatus, type SvgClipMaskType, type SvgClipMaskUnits, type SvgConditionalProcessingCandidate, type SvgConditionalProcessingCondition, type SvgConditionalProcessingPlan, type SvgContainerHierarchy, type SvgContainerHierarchyNode, type SvgContainerHierarchyPlacement, type SvgContainerKind, type SvgCssAnimationCandidate, type SvgCssKeyframeDeclaration, type SvgCssKeyframeStopPlan, type SvgCssKeyframesPlan, type SvgCssSpecificity, type SvgDescriptiveElement, type SvgDestinationIdAllocator, type SvgDestinationIdAssignment, type SvgDestinationIdRequest, type SvgDestinationIdentityChannel, type SvgDestinationIdentityIndex, type SvgDestinationIdentityOwner, type SvgDocumentMetadataCandidate, type SvgElementMetadataCandidate, type SvgElementStylePlan, type SvgEmbeddedFrameCandidate, type SvgEmbeddedFrameState, type SvgExternalAssetCandidate, type SvgExternalAssetStatus, type SvgExternalEffectsPlan, type SvgExternalFontCandidate, type SvgFilterBinding, type SvgFilterBindingStatus, type SvgFilterCandidate, type SvgFilterCandidateStatus, type SvgFilterOperation, type SvgFilterOperationStatus, type SvgFilterPlan, type SvgFilterRegion, type SvgFramingRect, type SvgGradientCandidate, type SvgGradientFallback, type SvgGradientGeometryValue, type SvgGradientPaintBinding, type SvgGradientPlan, type SvgGradientStatus, type SvgGradientStopCandidate, type SvgGradientTransform, type SvgHtmlMetadataElement, type SvgImportCapabilityAuthority, type SvgImportCapabilityOwner, type SvgImportCapabilityOwnershipGates, SvgImportError, type SvgImportPlan, type SvgImportProjectionContext, type SvgIngestDiagnosticContext, type SvgLeafCanonicalType, type SvgLeafGeometryCandidate, type SvgLeafGeometryPlan, type SvgLeafGeometryStatus, type SvgLengthContext, type SvgLengthToken, type SvgLocalReferenceChannel, type SvgMarkerAnimationCandidate, type SvgMarkerAuthoredGeometry, type SvgMarkerCandidate, type SvgMarkerContentCandidate, type SvgMarkerPlan, type SvgMarkerStatus, type SvgMetadataPlan, type SvgNodeProps, type SvgOccurrenceViewportContext, type SvgOccurrenceViewportPlan, type SvgPaintServerDefinitionCandidate, type SvgPaintServerDefinitionPlan, type SvgParsedStyleAttribute, type SvgPathAffineMatrix, type SvgPathCommandType, type SvgPathExtensionCommandType, type SvgPathMetricPoint, type SvgPathMetrics, type SvgPathMetricsOptions, type SvgPathParseError, type SvgPathParseErrorCode, type SvgPathParseOptions, type SvgPathParseResult, type SvgPathParserExtensions, type SvgPatternCandidate, type SvgPatternContentOccurrence, type SvgPatternFallback, type SvgPatternPaintBinding, type SvgPatternPlan, type SvgPatternResourceCandidate, type SvgPatternStatus, type SvgPatternTransform, type SvgPatternValue, type SvgPlannedScript, type SvgPresentationAttributeApplicability, type SvgPrimitiveChainFilter, type SvgPropertySemantics, type SvgResourceDependencyClosure, type SvgResourceDependencyComponent, type SvgResourceDependencyEdge, type SvgResourceDependencyKind, type SvgResourceDependencyMaterialization, type SvgResourceDependencyPlan, type SvgResourceElementKind, type SvgResourceProperty, type SvgScriptCandidate, type SvgScriptPlan, type SvgScriptScope, type SvgSmilAnimationCandidate, type SvgSmilAnimationKind, type SvgSourceAttribute, type SvgSourceCharacterNode, SvgSourceDecodingError, type SvgSourceDocument, type SvgSourceElement, type SvgSourceElementIdPlan, type SvgSourceGeneratedIdPlan, type SvgSourceHref, type SvgSourceIdOccurrence, type SvgSourceIdentifierPlan, type SvgSourceIdentifierPlanOptions, type SvgSourceIndex, type SvgSourceLocalReference, type SvgSourceNode, type SvgSourceReferenceRewrite, type SvgSourceResourceIdPlan, type SvgSourceResourceKind, type SvgStyleCascadePlan, type SvgStyleDeclarationOrigin, type SvgStyleEnvironment, type SvgStyleRulePlan, type SvgStylesheetPlan, type SvgSymbolDefinitionCandidate, type SvgSymbolDefinitionKind, type SvgSymbolUseCandidate, type SvgSymbolUseGeometry, type SvgSymbolUsePlan, type SvgSymbolUseStatus, type SvgSymbolUseTransform, type SvgTextMetricsHost, type SvgTextSpanNodeCandidate, type SvgTextSpanTarget, type SvgTextSpanTreeCandidate, type SvgUnboundStylesheetResourceReference, type SvgUseDefinitionComponent, type SvgUseOccurrence, type SvgUseOccurrenceEdge, type SvgUseOccurrencePlan, type SvgUseOccurrenceRole, type SvgUseResolution, type SvgUseResolutionStatus, type SvgUseResourceCapability, type SvgUseResourcePolicy, type SvgUseResourceRoot, type SvgUseSourceResolution, type SvgUseSourceResolutionStatus, type SvgViewCandidate, type SvgViewState, type SvgViewportDiagnostic, type SvgViewportDimensions, type SvgViewportFrame, type SvgViewportSize, type SvgViewportStatus, type SvgXmlAttributeInput, type SvgXmlCharacterNodeInput, type SvgXmlElementInput, type SvgXmlNodeInput, type SvgXmlParserHost, SvgXmlParserHostError, type SvgXmlParserHostResult, type SvgXmlSourceSpan, type SvgatorPayload, type SvgatorProjectionHost, type SvgatorProjectionResult, Switch, type SwitchNodeProps, type SymbolInstanceGeometry, type SymbolInstanceMaterialization, type SymbolInstanceNodeProps, type SymbolInstanceTransformResult, type SymbolLengthContext, type SymbolLibraryDef, type SymbolMaterialization, type SymbolMaterializationDiagnostic, type SymbolMaterializationDiagnosticCode, type SymbolMaterializationPlan, type SymbolMaterializationPlanOptions, type SymbolResolutionDiagnostic, type SymbolResolutionDiagnosticCode, type SymbolViewportDiagnostic, type SymbolViewportDiagnosticCode, type SymbolViewportHost, TEXT_PATH_GENERATED_ID_PREFIX, TYPED_FIELD_PREDICATES, type TemplateVariable, type TemplateVariableMode, type TemplateVariableOperation, type TemplateVariableSource, type TemplateVariableType, type TerminatorNodeProps, Text, type TextFormatOperation, type TextLayoutCaret, type TextLayoutCaretDraft, TextLayoutEngine, type TextLayoutGlyph, type TextLayoutGlyphDraft, type TextLayoutLine, type TextLayoutMeasurementRequest, type TextLayoutPoint, type TextLayoutProduct, type TextLayoutProductDraft, type TextLayoutProductHost, type TextLayoutRect, type TextLayoutRequest, type TextLayoutResult, type TextLayoutSegment, type TextLayoutViewport, type TextLayoutVisualLine, type TextLinePosition, type TextMeasurementHost, type TextNodeProps, type TextObjectBoundsMeasurement, type TextPathReference, type TextShapeGeometry, type TextShapeInsideGeometry, type TextShapeSpan, type TextSpanAnimationTarget, type TextSpanNode, type TextSpanRotationProjection, type TextSpanTree, type TextSplice, Timeline, Track, type TransferFunc, type TransformFusionPlan, type TransformStateLike, type TrapezoidNodeProps, Triangle, type TriangleNodeProps, VARIANT_INTERPOLATION_POLICY, type ValidationError, type ValidationResult, type VariableMap, type VariantAnimationElementSpec, type VariantCssPlan, type VariantCssSymbolPlan, type VariantSmilInnerAction, type VariantSmilOp, type VariantSmilSymbolPlan, type VariantTransitionInput, type VariantTransitionInstanceView, type VariantTransitionTimelineLike, type VariantWaapiPlan, type VariantWaapiSymbolPlan, Video, View, type ViewBoxFusionPlan, type ViewNodeProps, type ViewShapeGeometry, type Viewbox, type VocabularyAttribute, type VocabularyAttributeSource, type VocabularyAttributes, type VocabularyClaim, type VocabularyProjection, WRAPPER_PRESENTATION_IDS, type WarpFilter, type WarpType, type WatercolorFilter, type WireAliasShapeStateFields, type WireOnlyShapeStateFields, type WordSearchAxes, type WordSearchCellPath, type WordSearchDirection, type WordSearchLintResult, type WordSearchOptions, type WordSearchPlacement, type WordSearchPrimitiveMask, XHTML_EXTENSION_URI, type XrayFilter, accumulateAnimationValue, addAnimationValues, addSmilPointsValues, affine, affineFromArray, affineToArray, almostEqualAffine, animationBackwardsFillTrack, animationCycleDuration, animationDefinitionTargetShapeId, animationTrackActiveEnd, animationTrackDocumentBegin, appearanceLayers, appendAppearanceLayer, applyAffineToPoint, applyAffineToVector, applyAppearanceStyle, applyClipMaskGroupDelta, applyClipMaskPlanToShapes, applyCssAnimationLonghandOverrides, applyGuideDeltaOp, applyIngestPlan, applyMeasurementDeltaOp, applyMetadataDeltaOp, applyOpToSnapshot, applyOpsInPlace, applyOpsToSnapshot, applyOpsToSnapshotWithAccepted, applyPathNodeValue, applyRichTextFormat, applyTextSplice, applyTextTransform, applyTimingFunctionToKeyframe, arcEndpointToCenter, areTracksTimingEquivalent, around, assembleLibraryDefs, assembleSvgFromPlan, assertIngestFeatureRegistry, assertIngestPolicyRegistry, assertNamespaceVocabularyRegistry, assertRasterImage, assertSvgImportCapabilityOwners, authoredPaintDeclarations, baseFillLayer, baseStrokeLayer, buildCompoundTransformValues, buildDefinitionPlacementIndex, buildForeignImportReport, buildFreshMetadataBlock, buildGuideDeltaOps, buildManagedChildren, buildManagedDescription, buildMeasurementDeltaOps, buildMetadataDeltaOps, buildRenderPlan, buildSmilKeyframeData, buildSmilKeyframes, buildSvgDestinationIdentityIndex, buildSvgIngestPlan, buildSymbolMaterializationPlan, buildViewBoxSmilKeyframeData, canonicalPolygonTransformString, canonicalTransformMatrix, canonicalTransformString, chainHasTargetedEffects, claimElementThroughVocabulary, classifyIngestDiagnostic, classifySvgExternalAssetUrl, clipMaskDefinitionFromGroup, clipMaskDefinitionsFromGroups, clipMaskGroupDefId, clipMaskGroupDefinitionId, clipMaskGroupIsRawBacked, clipMaskGroupWithDefinition, clipMaskOwnedDefIds, cloneTextSpanTree, collaborationResourceKey, collectDocumentEnvelopeLibraryReferenceIds, collectFontFacesFromPlan, collectFontFamiliesFromPlan, collectMarkerReferences, collectReferencedLibraryDefs, collectReferencedMarkerIds, collectSvgFragmentLibraryReferenceIds, collectUnknownDocumentFields, compareImages, compareOrderKeys, composeDecomposedTransformMatrix, compositeOver, computeArrowVertices, computeCloudPath, computeCrossVertices, computeDashArray, computeFlowchartBoxPath, computeGearPath, computeGearVertices, computeHeartPath, computeLightningVertices, computePolygonVertices, computeRectanglePath, computeRingPath, computeSpeechBubbleVertices, computeSpiralPath, computeSplinePath, computeStarVertices, connectorLabelAnchor, containerTransformNeedsContentPivot, convertGradientUnits, createDocument, createSceneNode, createShape, createSvgDestinationIdAllocator, createSvgPathMetrics, createTextLayoutKey, createTextLayoutProduct, createViewbox, createWordSearchPrimitiveMask, cssAnimationFillField, cssNamedColorToRgb, cubicBezierExtent1D, cubicBezierToEasingFields, customPatternDefToLibraryDef, declaredRichTextDeltaKeys, decodeCssEscapes, decodeSvgSourceBytes, decomposeAffine2D, decoratePlanNodes, decorateSnapshotShapes, dedupeFontFaces, defaultVariableMode, deltaE2000, deriveRichTextFormatRanges, deriveSegments, deriveTextSplice, derivedConnectionPoints, detachAppearanceStyle, documentObjectBounds, ellipticalArcBounds, emptyDocumentMetadata, ensureTextSpanRange, escXml, evaluateEasing, evaluateFontCoverage, evaluateKeyframeEasing, evaluateLinearEasing, evaluateParsedTimingFunction, evaluateSteps, evaluateSvgConditionalProcessing, expandAppearanceStack, extractVariables, filterAttr, filterChainExtendsBounds, filterChainGroupId, filterChainGroups, filterDefinitionEnvelope, filterReferenceValue, finalizeRenderPlan, findShapeById, fingerprintCssAnimationDocumentStyles, fingerprintCssAnimationInlineStyles, fingerprintCssAnimationTrack, fingerprintIngestSource, flattenShapeStateTree, flattenStateExtra, flattenUnknownDocumentFields, foldSchemaV2AncestorTransformIntoMatrix, fontFaceKey, forEachAppearanceLayerRef, forEachAppearanceStyleRef, forEachLibraryRefInState, forEachMarkerRefInState, forEachReachableShape, forEachShapeInLibraryDefs, formatCssFontFamilyList, formatOperationValidationIssues, formatSmilKeySpline, formatSmilKeyTime, freezeIngestPlan, freezeSiblingOrderKeys, generateCode, generateCodeWithDiagnostics, generateCssCode, generateD3Code, generateId, generatePatternSvgContent, generatePuzzlePieces, generateReactCode, generateSudokuPuzzle, generateSvgCode, generateVueCode, generateWordSearch, geometryDefinitionId, geometryState, getBuiltInMarkerDefs, getEasingCubicBezier, getEffectivePrecision, getIngestFeatureCapability, getIngestFieldPolicy, getKeyframeCubicBezier, getLicenseLabel, getLicenseUrl, getMarkerDescriptors, getPatternElements, getShapeGeometryKernel, getSmilAccumulate, getSmilAdditive, getSmilBeginValue, getSmilFillMode, getSmilMotionKeyPoints, getSmilRepeatCount, getSmilSetBeginValue, getSmilTrackDuration, getSvgCoordinateAttributePrecision, getSvgPropertySemantics, getSvgSourceAttribute, getSvgSourceHref, getWordSearchDirections, gradientStopPoint, gradientTransformAttribute, hasAnyTypedMetadataField, hasEmittableSmilSimpleDuration, hasOpaqueSvgAncestor, hasSvgSourceAttribute, importSvg, importSvgWithDiagnostics, indexLibraryDefinitions, inferSvgCoordinatePrecision, initialOrderKeys, injectClipMaskReference, inspectCssTransformValue, interpolateAngle, interpolateCharOffsetArray, interpolateColor, interpolateDasharrayLists, interpolateGradient, interpolateNumericArray, interpolatePathData, interpolatePlainObject, interpolatePointArray, interpolatePolylinePoints, interpolateShapeTrees, interpolateSplinePointArray, invertAffine, isColorValue, isConnectorLineState, isCssAnimationDeclarationName, isCssGenericFamilyName, isCssNamedColor, isDefaultKeyPoints, isDefaultKeyTimes, isDocumentImportIntent, isEntirelyUnembeddableFamilyList, isFiniteAffineArray, isGeometryTrackProperty, isGradientLike, isIdentityAffine, isIdentityLinearSplines, isIndefiniteSetTrack, isIndefiniteSmilSimpleDuration, isNumericArray, isPathDataTrackProperty, isPathNodeTrack, isReusablePatternTile, isSafeGradientRootAttributeName, isSafePatternRootAttributeName, isSetSequenceTrack, isSvgPresentationProperty, isTextPathGeneratedId, isUnembeddableFamilyName, isValidOrderKey, keyBetween, keysBetween, layerFilterTargets, layerPaints, layerState, layoutText, legacyEndpointMarkerId, lerpNumber, linearGradient, linearGradientEnvelope, lintWordSearchOptions, lowerPathNodeTracks, luma709, mapAnimationTrackTime, matchCubicBezierToPreset, materializeSceneTreeOrderKeys, matrixTransformPart, maxCollaborationTimestamp, mergeRichTextStyle, migrateSnapshot, migrateV11toV12, migrateV14toV15, migrateV15toV16, migrateV16toV17, migrateV17toV18, migrateV18toV19, migrateV6toV7, migrateViewboxSidecarToViews, motionPathD, moveResourceById, multiplyAffine, mutateSvgClipMaskDefinitionMarkup, namespaceVocabularies, namespaceVocabulary, needsAppearanceStack, nodeSchemas, normalizeClipMaskGroups, normalizePaintServerDef, normalizeRichTextRuns, normalizeRichTextStyle, normalizeRichTextStyleDelta, normalizeSmilPointsValue, normalizeSnapshotStructure, normalizeSnapshotToCanonicalDocument, orderSiblings, paintingLayers, parseColor, parseCssAnimationShorthand, parseCssTimingFunction, parseCssTransformOrigin, parseDocument, parseDocumentWithDiagnostics, parseFontFamilyList, parseInterpolationNumbers, parsePathNodeProperty, parsePreserveAspectRatio, parseSmilAdditive, parseSmilClockValue, parseSmilDuration, parseSmilFillField, parseSmilKeySplines, parseSmilKeyTimes, parseSmilRepeatSettings, parseSmilValues, parseSvgAbsoluteLength, parseSvgLength, parseSvgLengthList, parseSvgLengthToken, parseSvgPathData, parseSvgRootFrame, parseSvgSourceDocument, parseSvgStyleAttribute, parseSvgTransformList, parseSvgViewBox, parseSvgatorPayload, parseVariableArgs, parseWordSearchWords, partitionShapeStateTree, partitionStateExtra, partitionUnknownDocumentFields, pathCommandStructuresMatch, pathDataBounds, pathNodeTracksAreSuperseded, pattern, patternDefinitionEnvelope, patternLibraryDefToCustomPatternDef, patternTileSize, pickCssAnimationListItem, plainTextOf, plainTextStyle, planClipMaskGroups, planSnapshotExternalEffects, planSvgAnimations, planSvgAuthoredAttributes, planSvgClipMasks, planSvgConditionalProcessing, planSvgContainerHierarchy, planSvgDocumentExtensions, planSvgEmbeddedFrames, planSvgExternalEffects, planSvgFilters, planSvgGradients, planSvgImport, planSvgLeafGeometry, planSvgMarkers, planSvgMetadata, planSvgOccurrenceViewports, planSvgPaintServerDefinitions, planSvgPatterns, planSvgResourceDependencies, planSvgScripts, planSvgSourceIdentifiers, planSvgStyleCascade, planSvgSymbolUses, planSvgUseOccurrences, planSvgViews, planTransformFusion, planVariantTransitionsCss, planVariantTransitionsSmil, planVariantTransitionsWaapi, planViewBoxFusion, preferredSubsetsForText, premultiply, prepareSvgAuthorCssForLiveProjection, prepareSvgExternalAssetUrlForLiveProjection, prepareSvgMarkupForLiveProjection, prepareSvgXmlSource, preserveAspectRatioAlignFactor, projectClipMaskDefinitionAnimations, projectCssTransformStops, projectDefinitionAnimations, projectPresentation, projectPresentationEntry, projectSceneTreeOntoClipMaskGroups, projectSceneTreeOntoShapes, projectSvgAnimationPlan, projectSvgAnimationTimeline, projectSvgImportToIngestPlan, projectSvgImportToSnapshot, projectSvgSourceNodes, projectSvgatorAnimation, projectTextLinePosition, projectTextSpanRotations, promoteManagedDescription, promoteRebasedShapeUpdateClock, pruneAndWrapSubtree, quadraticBezierExtent1D, radialGradient, radialGradientEnvelope, rebaseRichTextFormatRanges, rebaseRichTextRuns, recognizeScriptAnimation, reflectCubicBezier, registerNamespaceVocabulary, registeredExtensionUris, registeredShapeGeometryTypes, removeResourceById, removeResourceByKey, removeResourceByName, removeTrackKeyframe, renderAnimationElements, renderBuiltinMarkerDefs, renderCircle, renderClipMaskDefinitionAnimationElements, renderClipMaskDefinitionShape, renderDefinitionAnimationElements, renderDescriptiveElements, renderDocumentAnimationElements, renderDocumentExtensionAttributes, renderDocumentExtensionNodes, renderDocumentExtensions, renderDocumentScripts, renderDocumentStyles, renderEllipse, renderFilterDefs, renderFilterElement, renderFilterLibraryDef, renderFilterPrimitive, renderFilterPrimitivesForType, renderFlowchartBox, renderForeignObject, renderGradientDefs, renderGradientStopAnimationElement, renderImage, renderLibraryDef, renderLibraryDefs, renderLine, renderLinearGradient, renderLinearGradientLibraryDef, renderMarkerLibraryDef, renderPaintServerDefs, renderPatternLibraryDef, renderPlanDefsBody, renderPolygonShape, renderPolyline, renderRadialGradient, renderRadialGradientLibraryDef, renderRectangle, renderReferencedLibraryDefs, renderResolvedSymbolDefinitionForest, renderResolvedSymbolDefinitionSubtree, renderResolvedSymbolLibraryDef, renderShape, renderShapeContextForLibrary, renderSpline, renderSvgPrimitiveChainFilter, renderSymbolInstance, renderSymbolLibraryDef, renderTemplateVariablesStyle, renderText, renderTextSpanAnimationElements, renderToSvg, renderToSvgWithDiagnostics, replaceClipMaskDefinition, replaceClipMaskGroupsInSceneTree, replaySceneTreePlacements, requiredDecimalPrecision, requiredSubsetsForText, resolveAppearanceStyle, resolveConnectorAnchorFromDocument, resolveConnectorEndpoints, resolveContainerTransform, resolveContainerTransformFromContentBounds, resolveCssAnimationEasingType, resolveEmbeddedSvgTransform, resolveEmbeddedSvgViewportFrameBounds, resolveFontStyle, resolveFontWeight, resolveGradientGeometry, resolveGradientLibraryDef, resolveInlineContainerTransform, resolveMetadataQName, resolvePasteWrapperViewportSize, resolvePathDAtTime, resolvePatternLibraryDef, resolveRichTextStyleAt, resolveRootViewportFraming, resolveShapeGeometry, resolveShapeLocalObjectBounds, resolveShapeObjectBounds, resolveShapeReferenceTransform, resolveStyledTextLines, resolveSvgGradientGeometry, resolveSvgLengthToken, resolveSvgPatternTile, resolveSvgQName, resolveSvgRectRadii, resolveSvgTextSpanTarget, resolveSvgViewport, resolveSymbolDefinitionForestRootIds, resolveSymbolInstanceContent, resolveSymbolInstanceShapes, resolveSymbolInstanceTransform, resolveSymbolViewport, resolveTextSpanProjection, rewriteDocumentEmbeddedPayloads, rewriteIdReferencesInMarkup, rewriteShapeStateEmbeddedPayloads, rewriteSvgResourceReferenceValue, richTextFontVariantCss, richTextLineSpans, richTextRunsFromState, richTextStyleDelta, richTextStyleDeltasEqual, richTextStylesEqual, richTextTspanAttributes, rootMetadataAttrs, rootPaintServerDefId, rotateAffine, roundCoord, roundMarkupCoordinates, roundNumberString, roundSerializedShape, roundSnapshot, routeConnector, runsFromSegments, sameSize, sampleAnimationTrackTime, sampleTextForSubsets, sanitizeRichTextFormatRanges, sanitizeXmlId, scaleAffine, scanCssFunctionTokens, scanCssLocalUrlTokens, senderCorrectionsForOp, serializeSvgPathData, serializedPathNodeGeometry, serializedPresentationReader, severity, shapeAppearanceLayers, shapeAppearanceStyle, shapeLocalObjectBounds, shapeLocalObjectCenter, shapeNeedsAppearanceExpansion, shapeObjectBoundsInSpace, shapeOutlineCapability, shouldRoundSvgCoordinateAttribute, skewXAffine, skewYAffine, smilKeyframeAttributes, snapshotBoundsView, sniffDocumentBytes, solveCubicBezier, solveSudoku, spliceTextSpanTree, splinePathBounds, splitAppearanceForStyle, splitCssAnimationList, splitCssTopLevel, splitCssTopLevelRanges, splitTopLevelElements, srgbToLab, ssimPlane, stringifyDocument, stripAnimationDeclarations, stripCssAnimationInlineStyle, subsetsForCodePoint, substituteString, substituteVariables, symbolDefinitionSemanticHash, symbolInstanceTargetId, synthesizeCssAnimationShorthand, templateVariablesCss, textPathGeneratedId, textSpanEffectiveRotations, textSpanIds, textSpanNodeById, textSpanRangeByIds, transformSplice, transformSvgPathData, translateAffine, translateSvgPathData, tryParseSvgTransformList, unmatchedDecorationDiagnostics, updateGradientLibraryDef, upsertResourceById, upsertResourceByKey, upsertResourceByName, upsertTrackKeyframe, validateDocumentOperations, validateOperation, validatePresenceOperation, validateSnapshot, validateSudokuPuzzle, verticesToPath, visitShapeTree, visitSnapshotShapeTrees, writeAppearanceLayers };
|
|
18792
|
+
export { ANIMATION_MANAGER_INTERPOLATION_POLICY, type AdditiveAnimationValue, type Affine2D, type AffineTransformMatrix, type AggregateDocumentFieldKey, type AlphaMode, type AngleInterpolationPolicy, type AnimatablePropertyDescriptor, type AnimationCycleTrack, type AnimationDefinitionTarget, type AnimationKeyframe, type AnimationOperation, type AnimationTimeline, type AnimationTrack, type AnimationTrackTimeSample, type AnimationTrigger, type AnimationTriggerType, type AnyNodeProps, type AppearanceExpansion, type AppearanceExpansionDeps, type AppearanceFillLayer, type AppearanceLayer, type AppearanceLayerKind, type AppearancePaintValue, type AppearanceStrokeLayer, type AppearanceStyleLibraryDef, type AppearanceStyleSource, type AppliedIngestPlan, type ApplyIngestPlanOptions, type ArcCenterParameterization, type ArcParams, type AriaRole, Arrow, type ArrowNodeProps, Audio, type AuthoredGradientGeometry, type AuthoredLengthCoordinate, type AuthoredMarkerGeometry, type AuthoredPaintReference, type AuthoredPatternGeometry, type AuthoredTextCoordinate, type AuthoredTextPosition, type AuthoredUseGeometry, BASE_FILL_LAYER_ID, BASE_STROKE_LAYER_ID, BROWSER_SVG_EXTENSION_URIS, BUILTIN_MARKER_ID_MAP, type BaseFilter, type BaseFilterPrimitive, type BlackAndWhiteFilter, type BlurQuality, type BoundingBox, type BoundsDiagnostic, type BoundsDiagnosticCode, type BoundsRect, type BoundsResult, type BoundsStatus, type BrightnessFilter, type BuildForeignImportReportInput, type BuildSvgDestinationIdentityIndexOptions, type BuiltinShapeGeometryType, CANONICAL_NORMALIZATION_FAULT_POINTS, CC_NS, COLLAB_PROTOCOL_VERSION, COMMON_PROP_DEFAULTS, COMMON_TRANSFORM_NODE_DEFAULTS, CONNECTOR_LABEL_BASELINE_LIFT, CONNECTOR_LABEL_FONT_FAMILY, CONNECTOR_LABEL_FONT_SIZE, CSS_GENERIC_FAMILY_NAMES, CURRENT_SCHEMA_VERSION, CanonicalDocument, type CanonicalNormalizationFaultPoint, type CanonicalRootFramePolicy, type CanonicalSnapshotNormalizationOptions, type CanonicalSnapshotNormalizationResult, type CatmullRomCubicSegment, type ChannelPainterFilter, Circle, type CircleNodeProps, type CircleShapeGeometry, type ClipMaskDefinition, type ClipMaskGroupDeltaOperation, type ClipMaskOperation, type ClipMaskRenderPlan, type ClipMaskWrapDirective, Cloud, type CloudNodeProps, type CodeFormat, type CodegenOptions, type CollabClock, type CollaborationSnapshot, type CollaborationStamp, type CollaborationState, type ColorInterpolationPolicy, type CommonNodeProps, type CommonTransformNodeProps, type CompareImagesOptions, type ConnectionDirection, type ConnectionDirectionValue, type ConnectionPoint, type ConnectionPointValue, type ConnectorAnchorResolver, type ConnectorEndpointRefValue, type ConnectorLabelAnchor, type ConnectorRouteResult, type ConnectorRoutingModeValue, Container, type ContainerContentBounds, type ContainerNodeProps, ContainerShapeBuilder, type ContainerShapeGeometry, type ContainerTransformOwner, type ContouringDiscreteFilter, type ContouringTableFilter, type ContrastFilter, type CornerShapeValue, type CreateDocumentOptions, type CreateShapeOptions, Cross, type CrossNodeProps, type CrumpledPlasticFilter, type CssAnimationSourceGroup, type CssFunctionToken, type CssLocalUrlToken, type CssProjectedTransformChannel, type CssProjectedTransformStop, type CssTopLevelRange, type CssTransformBox, type CssTransformOrigin, type CssTransformOriginContext, type CssTransformProjection, type CssTransformProjectionStatus, type CssTransformStop, type CssTransformValueIssue, type CustomPatternDef, type CycleBehavior, type CylinderNodeProps, DC_NS, DEFAULT_CONNECTOR_CORNER_RADIUS, DEFAULT_CONNECTOR_LABEL_OFFSET, DEFAULT_CONNECTOR_LABEL_POSITION, DEFAULT_COORDINATE_PRECISION, DEFAULT_FONT_WEIGHT, DEFAULT_RICH_TEXT_STYLE, DOCUMENT_BYTE_KINDS, DOCUMENT_FIELDS, DOCUMENT_FIELD_LIVE_AUTHORITY, DOCUMENT_IMPORT_INTENTS, DOCUMENT_IMPORT_KINDS, DOCUMENT_INGEST_POLICIES, DOCUMENT_SECTION_ORDER, type DecodedSvgSource, type DecorationOutcome, type DeepReadonly, type DefinitionAttribute, type DefinitionAuthoredPlacement, type DefinitionPlacementIndex, type DefinitionPlacementScope, type DeltaEStats, type DescriptiveEmissionOptions, type DiamondNodeProps, type DiffuseLightingFilter, type DocumentBoundsHost, type DocumentBoundsOptions, type DocumentBoundsView, DocumentBuilder, type DocumentBuilderOptions, type DocumentByteKind, type DocumentDefinitionContainer, type DocumentExtension, type DocumentExtensionAttribute, type DocumentExtensionCharacterNode, type DocumentExtensionElementNode, type DocumentExtensionNode, type DocumentFieldAuthority, type DocumentFieldDescriptor, type DocumentFieldKey, type DocumentFieldRegistryGates, type DocumentMetadata, DocumentModel, type DocumentNodeProps, type DocumentReplacementHooks, type DocumentReplacementListener, type DocumentReplacementResult, type DocumentReplacementTransition, type DocumentResourceOperation, type DocumentScript, type DocumentSectionKey, type DocumentSectionListener, type DocumentSectionOrderGates, DocumentSession, type DocumentSessionView, type DocumentShapeNodeProps, type DocumentStyle, type DropShadowFilter, type DuotoneFilter, EASING_CURVES, EasingType, Ellipse, type EllipseNodeProps, type EllipseShapeGeometry, type EmbeddedPayloadRewriter, type EmbeddedPayloadSlotKind, type EmbeddedSvgShapeGeometry, type EmbeddedSvgTransformResult, type EmbeddedSvgViewportOverride, type EmbossFilter, type EnsureTextSpanRangeResult, type EvaluateSvgConditionalProcessingOptions, type ExpandedName, type ExportItemOperation, type Extent1D, type ExtractedVariables, FLOWCHART_GEOMETRY_DEFAULTS, type FeBlendPrimitive, type FeColorMatrixPrimitive, type FeComponentTransferPrimitive, type FeCompositePrimitive, type FeConvolveMatrixPrimitive, type FeDiffuseLightingPrimitive, type FeDisplacementMapPrimitive, type FeDropShadowPrimitive, type FeFloodPrimitive, type FeGaussianBlurPrimitive, type FeImagePrimitive, type FeMergePrimitive, type FeMorphologyPrimitive, type FeOffsetPrimitive, type FeSpecularLightingPrimitive, type FeTilePrimitive, type FeTurbulencePrimitive, type FieldPrecision, type FieldSerialization, type FillType, type FilmGrainFilter, type FilterBlendMode, type FilterChainGroup, type FilterDefinitionEnvelope, type FilterElementAttrs, type FilterLibraryDef, type FilterLightSource, type FilterPrimitive, type FilterPrimitiveType, type FilterType, type FlowchartBoxNodeProps, type FlowchartBoxParams, type FlowchartBoxType, type FontCoverageResult, type FontCoverageStatus, type FontFaceRequest, type FontVariantCssInput, type ForeignImportBucket, type ForeignImportContainer, type ForeignImportFontRequirement, type ForeignImportReport, type ForeignImportReportItem, type ForeignImportVocabulary, type ForeignObjectNodeProps, type FusableTrack, type FusableViewBoxTrack, GEOMETRY_TRACK_PROPERTIES, type GaussianBlurFilter, Gear, type GearNodeProps, type GenerateCodeResult, type GenerateSudokuOptions, type GeneratedFilterEnvelope, type GeneratedSudokuPuzzle, type GeneratedWordSearch, type GlowFilter, type GouacheFilter, type GradientDefinition, type GradientDefinitionEnvelope, type GradientGeometry, type GradientGeometryContext, type GradientLibraryDef, type GradientSpreadMethod, type GradientStop, type GradientStopEnvelope, type GradientTransformMatrix, type GradientUnits, type GraphChangeListener, type GrayscaleFilter, type GroupNodeProps, type GroupPresentationData, type Guide, type GuideDeltaOperation, HEADLESS_SVG_STYLE_ENVIRONMENT, Heart, type HeartNodeProps, type HistorySnapshot, type HueRotateFilter, Hyperlink, type HyperlinkNodeProps, IDENTITY_AFFINE, INGEST_APPLY_STAGES, INGEST_DIAGNOSTIC_CODES, INGEST_DOCUMENT_ROOT_IDENTITY, INGEST_FEATURES, INGEST_FEATURE_CAPABILITIES, INGEST_PLAN_VERSION, INGRESS_INTENTS, INITIAL_ROOT_FONT_SIZE, INLINE_CHILD_CONTAINER_TYPES, type ImageAttribution, type ImageNodeProps, ImageShape, type IndexedResource, IngestApplicationError, type IngestApplyContext, type IngestApplyStage, type IngestDiagnostic, type IngestDiagnosticCode, type IngestDiagnosticSeverity, type IngestDocumentFieldCandidates, type IngestExternalEffectValue, type IngestExternalFontDescriptorsValue, type IngestExternalFontSourceValue, type IngestFeature, type IngestFeatureCapability, type IngestFeatureCapabilityGates, type IngestFeatureIntentMatrix, type IngestFeatureStatus, type IngestFieldPolicy, type IngestFieldPolicyAction, type IngestFieldPolicyGates, type IngestFieldPolicyMatrix, type IngestNodeDecoration, type IngestNodeDecorations, type IngestPlan, type IngestPlanApplyAdapter, type IngestPlanValue, type IngestReferenceEdgeValue, type IngestResult, type IngestRootFrameValue, type IngestShapeCandidateValue, type IngestSource, type IngestSourceDescriptor, type IngestSourceElementDescriptor, type IngressIntent, type InkBlotFilter, type InlineContainerTransformResult, type InnerGlowFilter, type InnerShadowFilter, type InterpolationCharOffset, type InterpolationColor, type InterpolationGradient, type InterpolationGradientStop, type InterpolationPoint, type InterpolationSplinePoint, type InvertFilter, type JsonObject, type JsonPrimitive, type JsonValue, KNOWN_METADATA_PREFIXES, KNOWN_STATE_KEYS, type KeyedSerializedAnimationKeyframe, LAYER_PRESENTATION_IDS, LIBRARY_ASSEMBLY_KIND_ORDER, LIBRARY_EMIT_ORDER, LIBRARY_KINDS, type LibraryDef, type LibraryDefBase, type LibraryDefOfKind, type LibraryDefinitionIndex, type LibraryIndex, type LibraryKind, type LibrarySource, type LicenseType, type LightSource, Lightning, type LightningNodeProps, Line, type LineEndpointValue, type LineNodeProps, type LineShapeGeometry, type LinearEasingPoint, type LinearGradient, LinearGradientBuilder, type LinearGradientGeometry, type LinearGradientLibraryDef, type LinearGradientLibraryValue, type LiveInterpolationPolicy, type LoweredPathNodeTracks, MARKER_HEIGHT, MARKER_VIEWBOX, MARKER_WIDTH, MATHML_EXTENSION_URI, MAX_COORDINATE_PRECISION, MIGRATIONS, type MarkerDescriptor, type MarkerLibraryDef, type MarkerReferenceSets, type MaterializedIngestNode, type MatrixDecomposition2D, type Measurement, type MeasurementDeltaOperation, type MediaNodeProps, type MetadataDeltaOperation, type MetadataDescriptiveElement, type MigratableVersion, type Migration, type MorphologyFilter, type MorphologyOperator, type MotionBlurFilter, NAMESPACE_VOCABULARIES, NGon, type NGonNodeProps, NON_RENDERING_LIBRARY_KINDS, NON_WIRE_PROP_KEYS, NUMERIC_SHAPE_TRANSFORM_STATE_KEYS, type NamedResource, type NamespaceVocabulary, NestedSvg, type NodeChangeListener, type NodeFactoryMode, NodeSchemaRegistry, type NodeTypePropsMap, type NodeTypeSchema, type NoiseFilter, type OpMetadataPatch, type OpShapeState, type OpacityFilter, type Operation, type OperationValidationIssue, type OperationValidationResult, type OutlineFilter, type OutlinePosition, PAINT_SERVER_PASSTHROUGH_ATTR, PATH_DATA_TRACK_PROPERTIES, POLYGON_GEOMETRY_DEFAULTS, PRESENTATION_SEMANTICS, PUZZLE_DEFAULTS, type ParallelogramNodeProps, type ParseOptions, type ParsedCssAnimation, type ParsedPreserveAspectRatio, type ParsedSvgPathCommand, type ParsedSvgPathCommandType, type ParsedSvgViewBox, type ParsedTimingFunction, Path, type PathBoundsRect, PathCurveType, type PathNodeChannel, type PathNodeGeometry, type PathNodeProps, type PathPoint, PathPointType, type PathShapeGeometry, PatternBuilder, type PatternDefinitionEnvelope, type PatternElement, type PatternFill, type PatternLibraryDef, type PatternParams, type PatternSvgContentResult, type PatternType, type PixelateFilter, type PlanSnapshotExternalEffectsOptions, type PlanSvgAnimationsOptions, type PlanSvgClipMasksOptions, type PlanSvgConditionalProcessingOptions, type PlanSvgContainerHierarchyOptions, type PlanSvgExternalEffectsOptions, type PlanSvgFiltersOptions, type PlanSvgGradientsOptions, type PlanSvgImportOptions, type PlanSvgLeafGeometryOptions, type PlanSvgMarkersOptions, type PlanSvgMetadataOptions, type PlanSvgOccurrenceViewportsOptions, type PlanSvgPaintServerDefinitionsOptions, type PlanSvgPatternsOptions, type PlanSvgResourceDependenciesOptions, type PlanSvgScriptsOptions, type PlanSvgStyleCascadeOptions, type PlanSvgSymbolUsesOptions, type PlanSvgUseOccurrencesOptions, type Point, type PointLightFilter, type PolygonBaseNodeProps, Polyline, type PolylineNodeProps, type PolylineShapeGeometry, type PositioningRectShapeGeometry, type PresentationSemanticContext, type PresentationSemanticEntry, type PresentationSemanticId, type PresentationValueReader, type PresentationWrite, type PreserveAspectRatioAlign, type PreviousPlacement, type PrimitiveChainFilterEnvelope, type ProjectedTextLinePosition, type PropDef, type PropStamp, type PuzzleBounds, type PuzzleOptions, type PuzzlePiece, type PuzzleStyle, type PuzzleTabPattern, RDF_NS, RENDER_DIAGNOSTIC_CODES, RENDER_FEATURES, RENDER_FEATURE_CAPABILITIES, RENDER_TARGETS, RICH_TEXT_STYLE_KEYS, type RadialGradient, RadialGradientBuilder, type RadialGradientGeometry, type RadialGradientLibraryDef, type RadialGradientLibraryValue, type RasterImage, type RasterQualityReport, type RawFilterEnvelope, type RawSvgFilter, type Rect, Rectangle, type RectangleNodeProps, type RectangleShapeGeometry, type RejectedWordSearchWord, type RenderAnimationElementsOptions, type RenderCapability, type RenderCapabilityMatrix, type RenderCapabilityMatrixGates, type RenderDiagnostic, type RenderDiagnosticCode, type RenderDiagnosticSeverity, type RenderFeature, type RenderFeatureCapability, type RenderFeatureCapabilityGates, type RenderFeatureTargetMatrix, type RenderFinalizationOptions, type RenderFrameAttributeOmissions, type RenderOptions, type RenderPlan, type RenderPlanBodyEntry, type RenderPlanDefEntry, type RenderPlanDefKind, type RenderPlanDefinitionContainer, type RenderPlanDefs, type RenderPlanEnvelope, type RenderPlanFrame, type RenderPlanOptions, type RenderPlanShape, type RenderShapeContext, type RenderTarget, type RenderToSvgResult, type RenderedDefinitionAnimationElement, type RenderedRootOverrides, type ResolveSvgClipMaskContext, type ResolveSvgGradientGeometryContext, type ResolveSvgPatternTileContext, type ResolvedConnectorAnchor, type ResolvedConnectorEndpoints, type ResolvedContainerTransform, type ResolvedLibraryGradient, type ResolvedSvgPatternTile, type ResolvedSvgRectRadii, type ResolvedSvgViewport, type ResolvedSvgViewportFrame, type ResolvedSymbolDefinitionRender, type ResolvedSymbolInstanceContent, type ResolvedSymbolViewport, type ResolvedTextFragment, type ResolvedTextSpan, type ResolvedTextSpanChild, type ResolvedTextSpanProjection, type ResourceKey, type Rgba, type RichTextAlignmentBaseline, type RichTextDecoration, type RichTextFontWeight, type RichTextFormatRange, type RichTextLineSpan, type RichTextResolvedData, type RichTextResolvedLine, type RichTextResolvedSegment, type RichTextResolvedStyle, type RichTextRun, type RichTextRuns, type RichTextSegmentsInput, type RichTextStyleDelta, type RichTextTspanAttribute, type RiddledFilter, Ring, type RingNodeProps, type RootViewportFraming, type RoundEdgesFilter, SAXES_SVG_XML_PARSER_HOST, SCRIPT_ANIMATION_GENERATORS, SERIALIZED_SHAPE_STATE_KEYS, SHAPE_ENVELOPE_KEYS, SHAPE_GEOMETRY_DEFAULTS, SHAPE_TRANSFORM_STATE_KEYS, SVGSKETCH_NS, SVGSKETCH_PATH_EXTENSIONS, SVG_CONDITIONAL_PROCESSING_ATTRIBUTES, SVG_IMPORT_CAPABILITY_OWNERS, SVG_NAMESPACE, SVG_NS, SVG_PRESENTATION_PROPERTIES, SVG_WELL_KNOWN_NAMESPACE_URIS, type SaturateFilter, SceneGraph, SceneNode, type SceneTreeReplayHost, type ScriptAnimationCandidateScript, type ScriptAnimationGenerator, type ScriptAnimationSource, type SegmentCurveType, type SepiaFilter, type SerializedAnimationKeyframe, type SerializedAnimationTimeline, type SerializedAnimationTrack, type SerializedCharOffset, type SerializedClipMaskGroup, type SerializedColorGlyph, type SerializedColorGlyphLibrary, type SerializedExportItem, type SerializedGroup, type SerializedMarkerDef, type SerializedPaintServerDef, type SerializedSceneNodePlacement, type SerializedShape, type SerializedShapeState, type SerializedShapeStateKeyGates, type SerializedShapeTransformState, type SerializedSymbolDef, type SerializedVariantAxis, type SerializedViewbox, type SeverityOptions, type SeverityReport, ShapeBuilder, type ShapeEnvelopeKeyGates, type ShapeFilter, type ShapeGeometryDefaultsType, type ShapeGeometryDescriptor, type ShapeGeometryKernel, type ShapeGeometryRendererKey, type ShapeLibraryDefBase, type ShapeLocalObjectBoundsHost, type ShapeMetadata, type ShapeObjectBoundsHost, type ShapeOutlineCapability, ShapeReference, type ShapeReferenceGeometry, type ShapeReferenceNodeProps, type ShapeReferenceTransformResult, type ShapeTransformState, type ShapeTreeVisitor, type SharpenFilter, type SmilAnimationKeyframe, type SmilCalcMode, type SmilKeyframeAttributes, type SmilKeyframeData, type SmilTimingRelation, type SmilTimingTrack, type SmilValue, type SmilValueAttributes, type SmilValueType, type SmilViewBoxAxis, type SmilViewBoxQuartet, type SolveSudokuOptions, type SpecularLightingFilter, SpeechBubble, type SpeechBubbleNodeProps, Spiral, type SpiralNodeProps, type SpliceTextSpanTreeResult, type SplinePointInput, type SpotLightFilter, Square, type SquareNodeProps, Star, type StarNodeProps, type StepPosition, type StepsParams, type StringifyOptions, type StrokeType, type StructureChangeListener, type StyledTextContent, type StyledTextLine, type StyledTextSegment, type StyledTextSource, type SudokuDifficulty, type SudokuGrid, type SudokuRating, type SudokuValidationResult, type SvgAnimationPlan, type SvgAnimationTargetStatus, type SvgAnimationTimelineDefinitionTarget, type SvgAnimationTimelineProjectionHost, type SvgAnimationTimelineShapeBinding, type SvgAppliedResourceDeclaration, type SvgAuthoredAttributeClassification, type SvgAuthoredAttributePlan, type SvgAuthoredAttributeRecord, type SvgAuthoredDeclaration, type SvgClipMaskBinding, type SvgClipMaskBindingStatus, type SvgClipMaskDefinition, type SvgClipMaskDefinitionMutation, type SvgClipMaskGeometryPlacement, type SvgClipMaskObjectBounds, type SvgClipMaskPlan, type SvgClipMaskRegion, type SvgClipMaskRepresentation, type SvgClipMaskResolution, type SvgClipMaskStatus, type SvgClipMaskType, type SvgClipMaskUnits, type SvgConditionalProcessingCandidate, type SvgConditionalProcessingCondition, type SvgConditionalProcessingPlan, type SvgContainerHierarchy, type SvgContainerHierarchyNode, type SvgContainerHierarchyPlacement, type SvgContainerKind, type SvgCssAnimationCandidate, type SvgCssKeyframeDeclaration, type SvgCssKeyframeStopPlan, type SvgCssKeyframesPlan, type SvgCssSpecificity, type SvgDescriptiveElement, type SvgDestinationIdAllocator, type SvgDestinationIdAssignment, type SvgDestinationIdRequest, type SvgDestinationIdentityChannel, type SvgDestinationIdentityIndex, type SvgDestinationIdentityOwner, type SvgDocumentMetadataCandidate, type SvgElementMetadataCandidate, type SvgElementStylePlan, type SvgEmbeddedFrameCandidate, type SvgEmbeddedFrameState, type SvgExternalAssetCandidate, type SvgExternalAssetStatus, type SvgExternalEffectsPlan, type SvgExternalFontCandidate, type SvgFilterBinding, type SvgFilterBindingStatus, type SvgFilterCandidate, type SvgFilterCandidateStatus, type SvgFilterOperation, type SvgFilterOperationStatus, type SvgFilterPlan, type SvgFilterRegion, type SvgFramingRect, type SvgGradientCandidate, type SvgGradientFallback, type SvgGradientGeometryValue, type SvgGradientPaintBinding, type SvgGradientPlan, type SvgGradientStatus, type SvgGradientStopCandidate, type SvgGradientTransform, type SvgHtmlMetadataElement, type SvgImportCapabilityAuthority, type SvgImportCapabilityOwner, type SvgImportCapabilityOwnershipGates, SvgImportError, type SvgImportPlan, type SvgImportProjectionContext, type SvgIngestDiagnosticContext, type SvgLeafCanonicalType, type SvgLeafGeometryCandidate, type SvgLeafGeometryPlan, type SvgLeafGeometryStatus, type SvgLengthContext, type SvgLengthToken, type SvgLocalReferenceChannel, type SvgMarkerAnimationCandidate, type SvgMarkerAuthoredGeometry, type SvgMarkerCandidate, type SvgMarkerContentCandidate, type SvgMarkerPlan, type SvgMarkerStatus, type SvgMetadataPlan, type SvgNodeProps, type SvgOccurrenceViewportContext, type SvgOccurrenceViewportPlan, type SvgPaintServerDefinitionCandidate, type SvgPaintServerDefinitionPlan, type SvgParsedStyleAttribute, type SvgPathAffineMatrix, type SvgPathCommandType, type SvgPathExtensionCommandType, type SvgPathMetricPoint, type SvgPathMetrics, type SvgPathMetricsOptions, type SvgPathParseError, type SvgPathParseErrorCode, type SvgPathParseOptions, type SvgPathParseResult, type SvgPathParserExtensions, type SvgPatternCandidate, type SvgPatternContentOccurrence, type SvgPatternFallback, type SvgPatternPaintBinding, type SvgPatternPlan, type SvgPatternResourceCandidate, type SvgPatternStatus, type SvgPatternTransform, type SvgPatternValue, type SvgPlannedScript, type SvgPresentationAttributeApplicability, type SvgPrimitiveChainFilter, type SvgPropertySemantics, type SvgResourceDependencyClosure, type SvgResourceDependencyComponent, type SvgResourceDependencyEdge, type SvgResourceDependencyKind, type SvgResourceDependencyMaterialization, type SvgResourceDependencyPlan, type SvgResourceElementKind, type SvgResourceProperty, type SvgScriptCandidate, type SvgScriptPlan, type SvgScriptScope, type SvgSmilAnimationCandidate, type SvgSmilAnimationKind, type SvgSourceAttribute, type SvgSourceCharacterNode, SvgSourceDecodingError, type SvgSourceDocument, type SvgSourceElement, type SvgSourceElementIdPlan, type SvgSourceGeneratedIdPlan, type SvgSourceHref, type SvgSourceIdOccurrence, type SvgSourceIdentifierPlan, type SvgSourceIdentifierPlanOptions, type SvgSourceIndex, type SvgSourceLocalReference, type SvgSourceNode, type SvgSourceReferenceRewrite, type SvgSourceResourceIdPlan, type SvgSourceResourceKind, type SvgStyleCascadePlan, type SvgStyleDeclarationOrigin, type SvgStyleEnvironment, type SvgStyleRulePlan, type SvgStylesheetPlan, type SvgSymbolDefinitionCandidate, type SvgSymbolDefinitionKind, type SvgSymbolUseCandidate, type SvgSymbolUseGeometry, type SvgSymbolUsePlan, type SvgSymbolUseStatus, type SvgSymbolUseTransform, type SvgTextMetricsHost, type SvgTextSpanNodeCandidate, type SvgTextSpanTarget, type SvgTextSpanTreeCandidate, type SvgUnboundStylesheetResourceReference, type SvgUseDefinitionComponent, type SvgUseOccurrence, type SvgUseOccurrenceEdge, type SvgUseOccurrencePlan, type SvgUseOccurrenceRole, type SvgUseResolution, type SvgUseResolutionStatus, type SvgUseResourceCapability, type SvgUseResourcePolicy, type SvgUseResourceRoot, type SvgUseSourceResolution, type SvgUseSourceResolutionStatus, type SvgViewCandidate, type SvgViewState, type SvgViewportDiagnostic, type SvgViewportDimensions, type SvgViewportFrame, type SvgViewportSize, type SvgViewportStatus, type SvgXmlAttributeInput, type SvgXmlCharacterNodeInput, type SvgXmlElementInput, type SvgXmlNodeInput, type SvgXmlParserHost, SvgXmlParserHostError, type SvgXmlParserHostResult, type SvgXmlSourceSpan, type SvgatorPayload, type SvgatorProjectionHost, type SvgatorProjectionResult, Switch, type SwitchNodeProps, type SymbolInstanceGeometry, type SymbolInstanceMaterialization, type SymbolInstanceNodeProps, type SymbolInstanceTransformResult, type SymbolLengthContext, type SymbolLibraryDef, type SymbolMaterialization, type SymbolMaterializationDiagnostic, type SymbolMaterializationDiagnosticCode, type SymbolMaterializationPlan, type SymbolMaterializationPlanOptions, type SymbolResolutionDiagnostic, type SymbolResolutionDiagnosticCode, type SymbolViewportDiagnostic, type SymbolViewportDiagnosticCode, type SymbolViewportHost, TEXT_PATH_GENERATED_ID_PREFIX, TYPED_FIELD_PREDICATES, type TemplateVariable, type TemplateVariableMode, type TemplateVariableOperation, type TemplateVariableSource, type TemplateVariableType, type TerminatorNodeProps, Text, type TextFormatOperation, type TextLayoutCaret, type TextLayoutCaretDraft, TextLayoutEngine, type TextLayoutGlyph, type TextLayoutGlyphDraft, type TextLayoutLine, type TextLayoutMeasurementRequest, type TextLayoutPoint, type TextLayoutProduct, type TextLayoutProductDraft, type TextLayoutProductHost, type TextLayoutRect, type TextLayoutRequest, type TextLayoutResult, type TextLayoutSegment, type TextLayoutViewport, type TextLayoutVisualLine, type TextLinePosition, type TextMeasurementHost, type TextNodeProps, type TextObjectBoundsMeasurement, type TextPathReference, type TextShapeGeometry, type TextShapeInsideGeometry, type TextShapeSpan, type TextSpanAnimationTarget, type TextSpanNode, type TextSpanRotationProjection, type TextSpanTree, type TextSplice, Timeline, Track, type TransferFunc, type TransformFusionPlan, type TransformStateLike, type TrapezoidNodeProps, Triangle, type TriangleNodeProps, VARIANT_INTERPOLATION_POLICY, type ValidationError, type ValidationResult, type VariableMap, type VariantAnimationElementSpec, type VariantCssPlan, type VariantCssSymbolPlan, type VariantSmilInnerAction, type VariantSmilOp, type VariantSmilSymbolPlan, type VariantTransitionDefinitionContent, type VariantTransitionInput, type VariantTransitionInstanceView, type VariantTransitionPlanOptions, type VariantTransitionRenderPlan, type VariantTransitionTarget, type VariantTransitionTimelineLike, type VariantWaapiPlan, type VariantWaapiSymbolPlan, Video, View, type ViewBoxFusionPlan, type ViewNodeProps, type ViewShapeGeometry, type Viewbox, type VocabularyAttribute, type VocabularyAttributeSource, type VocabularyAttributes, type VocabularyClaim, type VocabularyProjection, WRAPPER_PRESENTATION_IDS, type WarpFilter, type WarpType, type WatercolorFilter, type WireAliasShapeStateFields, type WireOnlyShapeStateFields, type WordSearchAxes, type WordSearchCellPath, type WordSearchDirection, type WordSearchLintResult, type WordSearchOptions, type WordSearchPlacement, type WordSearchPrimitiveMask, XHTML_EXTENSION_URI, type XrayFilter, accumulateAnimationValue, addAnimationValues, addSmilPointsValues, affine, affineFromArray, affineToArray, almostEqualAffine, animationBackwardsFillTrack, animationCycleDuration, animationDefinitionTargetShapeId, animationTrackActiveEnd, animationTrackDocumentBegin, appearanceLayers, appendAppearanceLayer, applyAffineToPoint, applyAffineToVector, applyAppearanceStyle, applyClipMaskGroupDelta, applyClipMaskPlanToShapes, applyCssAnimationLonghandOverrides, applyGuideDeltaOp, applyIngestPlan, applyMeasurementDeltaOp, applyMetadataDeltaOp, applyOpToSnapshot, applyOpsInPlace, applyOpsToSnapshot, applyOpsToSnapshotWithAccepted, applyPathNodeValue, applyRichTextFormat, applyTextSplice, applyTextTransform, applyTimingFunctionToKeyframe, arcEndpointToCenter, areTracksTimingEquivalent, around, assembleLibraryDefs, assembleSvgFromPlan, assertIngestFeatureRegistry, assertIngestPolicyRegistry, assertNamespaceVocabularyRegistry, assertRasterImage, assertSvgImportCapabilityOwners, authoredPaintDeclarations, baseFillLayer, baseStrokeLayer, buildCompoundTransformValues, buildDefinitionPlacementIndex, buildForeignImportReport, buildFreshMetadataBlock, buildGuideDeltaOps, buildManagedChildren, buildManagedDescription, buildMeasurementDeltaOps, buildMetadataDeltaOps, buildRenderPlan, buildSmilKeyframeData, buildSmilKeyframes, buildSvgDestinationIdentityIndex, buildSvgIngestPlan, buildSymbolMaterializationPlan, buildViewBoxSmilKeyframeData, canonicalPolygonTransformString, canonicalTransformMatrix, canonicalTransformString, chainHasTargetedEffects, claimElementThroughVocabulary, classifyIngestDiagnostic, classifySvgExternalAssetUrl, clipMaskDefinitionFromGroup, clipMaskDefinitionsFromGroups, clipMaskGroupDefId, clipMaskGroupDefinitionId, clipMaskGroupIsRawBacked, clipMaskGroupWithDefinition, clipMaskOwnedDefIds, cloneTextSpanTree, collaborationResourceKey, collectDocumentEnvelopeLibraryReferenceIds, collectFontFacesFromPlan, collectFontFamiliesFromPlan, collectMarkerReferences, collectReferencedLibraryDefs, collectReferencedMarkerIds, collectSvgFragmentLibraryReferenceIds, collectUnknownDocumentFields, compareImages, compareOrderKeys, composeDecomposedTransformMatrix, compositeOver, computeArrowVertices, computeCatmullRomSegments, computeCloudPath, computeCrossVertices, computeDashArray, computeFlowchartBoxPath, computeGearPath, computeGearVertices, computeHeartPath, computeLightningVertices, computePolygonVertices, computeRectanglePath, computeRingPath, computeSpeechBubbleVertices, computeSpiralPath, computeSplinePath, computeStarVertices, connectorLabelAnchor, containerTransformNeedsContentPivot, convertGradientUnits, createDocument, createSceneNode, createShape, createSvgDestinationIdAllocator, createSvgPathMetrics, createTextLayoutKey, createTextLayoutProduct, createViewbox, createWordSearchPrimitiveMask, cssAnimationFillField, cssNamedColorToRgb, cubicBezierExtent1D, cubicBezierToEasingFields, customPatternDefToLibraryDef, declaredRichTextDeltaKeys, decodeCssEscapes, decodeSvgSourceBytes, decomposeAffine2D, decoratePlanNodes, decorateSnapshotShapes, dedupeFontFaces, defaultVariableMode, deltaE2000, deriveRichTextFormatRanges, deriveSegments, deriveTextSplice, derivedConnectionPoints, detachAppearanceStyle, documentObjectBounds, ellipticalArcBounds, emptyDocumentMetadata, ensureTextSpanRange, escXml, evaluateEasing, evaluateFontCoverage, evaluateKeyframeEasing, evaluateLinearEasing, evaluateParsedTimingFunction, evaluateSteps, evaluateSvgConditionalProcessing, expandAppearanceStack, extractVariables, filterAttr, filterChainExtendsBounds, filterChainGroupId, filterChainGroups, filterDefinitionEnvelope, filterReferenceValue, finalizeRenderPlan, findShapeById, fingerprintCssAnimationDocumentStyles, fingerprintCssAnimationInlineStyles, fingerprintCssAnimationTrack, fingerprintIngestSource, flattenShapeStateTree, flattenStateExtra, flattenUnknownDocumentFields, foldSchemaV2AncestorTransformIntoMatrix, fontFaceKey, forEachAppearanceLayerRef, forEachAppearanceStyleRef, forEachLibraryRefInState, forEachMarkerRefInState, forEachReachableShape, forEachShapeInLibraryDefs, formatCssFontFamilyList, formatOperationValidationIssues, formatSmilKeySpline, formatSmilKeyTime, freezeIngestPlan, freezeSiblingOrderKeys, generateCode, generateCodeWithDiagnostics, generateCssCode, generateD3Code, generateId, generatePatternSvgContent, generatePuzzlePieces, generateReactCode, generateSudokuPuzzle, generateSvgCode, generateVueCode, generateWordSearch, geometryDefinitionId, geometryState, getBuiltInMarkerDefs, getEasingCubicBezier, getEffectivePrecision, getIngestFeatureCapability, getIngestFieldPolicy, getKeyframeCubicBezier, getLicenseLabel, getLicenseUrl, getMarkerDescriptors, getPatternElements, getShapeGeometryKernel, getSmilAccumulate, getSmilAdditive, getSmilBeginValue, getSmilFillMode, getSmilMotionKeyPoints, getSmilRepeatCount, getSmilSetBeginValue, getSmilTrackDuration, getSvgCoordinateAttributePrecision, getSvgPropertySemantics, getSvgSourceAttribute, getSvgSourceHref, getWordSearchDirections, gradientStopPoint, gradientTransformAttribute, hasAnyTypedMetadataField, hasEmittableSmilSimpleDuration, hasOpaqueSvgAncestor, hasSvgSourceAttribute, importSvg, importSvgWithDiagnostics, indexLibraryDefinitions, inferSvgCoordinatePrecision, initialOrderKeys, injectClipMaskReference, inspectCssTransformValue, interpolateAngle, interpolateCharOffsetArray, interpolateColor, interpolateDasharrayLists, interpolateGradient, interpolateNumericArray, interpolatePathData, interpolatePlainObject, interpolatePointArray, interpolatePolylinePoints, interpolateShapeTrees, interpolateSplinePointArray, invertAffine, isColorValue, isConnectorLineState, isCssAnimationDeclarationName, isCssGenericFamilyName, isCssNamedColor, isDefaultKeyPoints, isDefaultKeyTimes, isDocumentImportIntent, isEntirelyUnembeddableFamilyList, isFiniteAffineArray, isGeometryTrackProperty, isGradientLike, isIdentityAffine, isIdentityLinearSplines, isIndefiniteSetTrack, isIndefiniteSmilSimpleDuration, isNumericArray, isPathDataTrackProperty, isPathNodeTrack, isReusablePatternTile, isSafeGradientRootAttributeName, isSafePatternRootAttributeName, isSetSequenceTrack, isSvgPresentationProperty, isTextPathGeneratedId, isUnembeddableFamilyName, isValidOrderKey, keyBetween, keysBetween, layerFilterTargets, layerPaints, layerState, layoutText, legacyEndpointMarkerId, lerpNumber, linearGradient, linearGradientEnvelope, lintWordSearchOptions, lowerPathNodeTracks, luma709, mapAnimationTrackTime, matchCubicBezierToPreset, materializeSceneTreeOrderKeys, matrixTransformPart, maxCollaborationTimestamp, mergeRichTextStyle, migrateSnapshot, migrateV11toV12, migrateV14toV15, migrateV15toV16, migrateV16toV17, migrateV17toV18, migrateV18toV19, migrateV6toV7, migrateViewboxSidecarToViews, motionPathD, moveResourceById, multiplyAffine, mutateSvgClipMaskDefinitionMarkup, namespaceVocabularies, namespaceVocabulary, needsAppearanceStack, nodeSchemas, normalizeClipMaskGroups, normalizePaintServerDef, normalizeRichTextRuns, normalizeRichTextStyle, normalizeRichTextStyleDelta, normalizeSmilPointsValue, normalizeSnapshotStructure, normalizeSnapshotToCanonicalDocument, orderSiblings, paintingLayers, parseColor, parseCssAnimationShorthand, parseCssTimingFunction, parseCssTransformOrigin, parseDocument, parseDocumentWithDiagnostics, parseFontFamilyList, parseInterpolationNumbers, parsePathNodeProperty, parsePreserveAspectRatio, parseSmilAdditive, parseSmilClockValue, parseSmilDuration, parseSmilFillField, parseSmilKeySplines, parseSmilKeyTimes, parseSmilRepeatSettings, parseSmilValues, parseSvgAbsoluteLength, parseSvgLength, parseSvgLengthList, parseSvgLengthToken, parseSvgPathData, parseSvgRootFrame, parseSvgSourceDocument, parseSvgStyleAttribute, parseSvgTransformList, parseSvgViewBox, parseSvgatorPayload, parseVariableArgs, parseWordSearchWords, partitionShapeStateTree, partitionStateExtra, partitionUnknownDocumentFields, pathCommandStructuresMatch, pathDataBounds, pathNodeTracksAreSuperseded, pattern, patternDefinitionEnvelope, patternLibraryDefToCustomPatternDef, patternTileSize, pickCssAnimationListItem, plainTextOf, plainTextStyle, planClipMaskGroups, planSnapshotExternalEffects, planSvgAnimations, planSvgAuthoredAttributes, planSvgClipMasks, planSvgConditionalProcessing, planSvgContainerHierarchy, planSvgDocumentExtensions, planSvgEmbeddedFrames, planSvgExternalEffects, planSvgFilters, planSvgGradients, planSvgImport, planSvgLeafGeometry, planSvgMarkers, planSvgMetadata, planSvgOccurrenceViewports, planSvgPaintServerDefinitions, planSvgPatterns, planSvgResourceDependencies, planSvgScripts, planSvgSourceIdentifiers, planSvgStyleCascade, planSvgSymbolUses, planSvgUseOccurrences, planSvgViews, planTransformFusion, planVariantTransitions, planVariantTransitionsCss, planVariantTransitionsSmil, planVariantTransitionsWaapi, planViewBoxFusion, preferredSubsetsForText, premultiply, prepareSvgAuthorCssForLiveProjection, prepareSvgExternalAssetUrlForLiveProjection, prepareSvgMarkupForLiveProjection, prepareSvgXmlSource, preserveAspectRatioAlignFactor, projectClipMaskDefinitionAnimations, projectCssTransformStops, projectDefinitionAnimations, projectPresentation, projectPresentationEntry, projectSceneTreeOntoClipMaskGroups, projectSceneTreeOntoShapes, projectSvgAnimationPlan, projectSvgAnimationTimeline, projectSvgImportToIngestPlan, projectSvgImportToSnapshot, projectSvgSourceNodes, projectSvgatorAnimation, projectTextLinePosition, projectTextSpanRotations, promoteManagedDescription, promoteRebasedShapeUpdateClock, pruneAndWrapSubtree, quadraticBezierExtent1D, radialGradient, radialGradientEnvelope, rebaseRichTextFormatRanges, rebaseRichTextRuns, recognizeScriptAnimation, reflectCubicBezier, registerNamespaceVocabulary, registeredExtensionUris, registeredShapeGeometryTypes, removeResourceById, removeResourceByKey, removeResourceByName, removeTrackKeyframe, renderAnimationElements, renderBuiltinMarkerDefs, renderCircle, renderClipMaskDefinitionAnimationElements, renderClipMaskDefinitionShape, renderDefinitionAnimationElements, renderDescriptiveElements, renderDocumentAnimationElements, renderDocumentExtensionAttributes, renderDocumentExtensionNodes, renderDocumentExtensions, renderDocumentScripts, renderDocumentStyles, renderEllipse, renderFilterDefs, renderFilterElement, renderFilterLibraryDef, renderFilterPrimitive, renderFilterPrimitivesForType, renderFlowchartBox, renderForeignObject, renderGradientDefs, renderGradientStopAnimationElement, renderImage, renderLibraryDef, renderLibraryDefs, renderLine, renderLinearGradient, renderLinearGradientLibraryDef, renderMarkerLibraryDef, renderPaintServerDefs, renderPatternLibraryDef, renderPlanDefsBody, renderPolygonShape, renderPolyline, renderRadialGradient, renderRadialGradientLibraryDef, renderRectangle, renderReferencedLibraryDefs, renderResolvedSymbolDefinitionForest, renderResolvedSymbolDefinitionSubtree, renderResolvedSymbolLibraryDef, renderShape, renderShapeContextForLibrary, renderSpline, renderSvgPrimitiveChainFilter, renderSymbolInstance, renderSymbolLibraryDef, renderTemplateVariablesStyle, renderText, renderTextSpanAnimationElements, renderToSvg, renderToSvgWithDiagnostics, renderVariantTransitionScript, renderVariantTransitionStylesheet, replaceClipMaskDefinition, replaceClipMaskGroupsInSceneTree, replaySceneTreePlacements, requiredDecimalPrecision, requiredSubsetsForText, resolveAppearanceStyle, resolveConnectorAnchorFromDocument, resolveConnectorEndpoints, resolveContainerTransform, resolveContainerTransformFromContentBounds, resolveCssAnimationEasingType, resolveEmbeddedSvgTransform, resolveEmbeddedSvgViewportFrameBounds, resolveFontStyle, resolveFontWeight, resolveGradientGeometry, resolveGradientLibraryDef, resolveInlineContainerTransform, resolveMetadataQName, resolvePasteWrapperViewportSize, resolvePathDAtTime, resolvePatternLibraryDef, resolvePatternTile, resolveRichTextStyleAt, resolveRootViewportFraming, resolveShapeGeometry, resolveShapeLocalObjectBounds, resolveShapeObjectBounds, resolveShapeReferenceTransform, resolveStyledTextLines, resolveSvgGradientGeometry, resolveSvgLengthToken, resolveSvgPatternTile, resolveSvgQName, resolveSvgRectRadii, resolveSvgTextSpanTarget, resolveSvgViewport, resolveSymbolDefinitionForestRootIds, resolveSymbolInstanceContent, resolveSymbolInstanceShapes, resolveSymbolInstanceTransform, resolveSymbolViewport, resolveTextSpanProjection, rewriteDocumentEmbeddedPayloads, rewriteIdReferencesInMarkup, rewriteShapeStateEmbeddedPayloads, rewriteSvgResourceReferenceValue, richTextFontVariantCss, richTextLineSpans, richTextRunsFromState, richTextStyleDelta, richTextStyleDeltasEqual, richTextStylesEqual, richTextTspanAttributes, rootMetadataAttrs, rootPaintServerDefId, rotateAffine, roundCoord, roundMarkupCoordinates, roundNumberString, roundSerializedShape, roundSnapshot, routeConnector, runsFromSegments, sameSize, sampleAnimationTrackTime, sampleTextForSubsets, sanitizeRichTextFormatRanges, sanitizeXmlId, scaleAffine, scanCssFunctionTokens, scanCssLocalUrlTokens, senderCorrectionsForOp, serializeSvgPathData, serializedPathNodeGeometry, serializedPresentationReader, severity, shapeAppearanceLayers, shapeAppearanceStyle, shapeLocalObjectBounds, shapeLocalObjectCenter, shapeNeedsAppearanceExpansion, shapeObjectBoundsInSpace, shapeOutlineCapability, shouldRoundSvgCoordinateAttribute, skewXAffine, skewYAffine, smilKeyframeAttributes, snapshotBoundsView, sniffDocumentBytes, solveCubicBezier, solveSudoku, spliceTextSpanTree, splinePathBounds, splitAppearanceForStyle, splitCssAnimationList, splitCssTopLevel, splitCssTopLevelRanges, splitTopLevelElements, srgbToLab, ssimPlane, stringifyDocument, stripAnimationDeclarations, stripCssAnimationInlineStyle, subsetsForCodePoint, substituteString, substituteVariables, symbolDefinitionSemanticHash, symbolInstanceTargetId, synthesizeCssAnimationShorthand, templateVariablesCss, textPathGeneratedId, textSpanEffectiveRotations, textSpanIds, textSpanNodeById, textSpanRangeByIds, transformSplice, transformSvgPathData, translateAffine, translateSvgPathData, tryParseSvgTransformList, unmatchedDecorationDiagnostics, updateGradientLibraryDef, upsertResourceById, upsertResourceByKey, upsertResourceByName, upsertTrackKeyframe, validateDocumentOperations, validateOperation, validatePresenceOperation, validateSnapshot, validateSudokuPuzzle, verticesToPath, visitShapeTree, visitSnapshotShapeTrees, writeAppearanceLayers };
|