@pixodesk/svg-animator-core 1.0.40 → 1.0.41
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/README.md +58 -13
- package/dist/{internal-BZSJtt_h.d.ts → PxDocumentDiagnostic-COGEjBbg.d.cts} +74 -448
- package/dist/{internal-BZSJtt_h.d.cts → PxDocumentDiagnostic-COGEjBbg.d.ts} +74 -448
- package/dist/chunk-7ZO7PQKZ.min.js +1 -0
- package/dist/{chunk-PAE3NF2U.js → chunk-L6GJ6Y2M.js} +168 -567
- package/dist/chunk-L6GJ6Y2M.js.map +1 -0
- package/dist/index.cjs +206 -926
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -15
- package/dist/index.d.ts +15 -15
- package/dist/index.js +84 -175
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +1 -1
- package/dist/index.min.js +1 -1
- package/dist/internal.cjs +78 -78
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.d.cts +378 -1
- package/dist/internal.d.ts +378 -1
- package/dist/internal.js +413 -34
- package/dist/internal.js.map +1 -1
- package/dist/internal.min.cjs +1 -1
- package/dist/internal.min.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-PAE3NF2U.js.map +0 -1
- package/dist/chunk-WIVGJ5YO.min.js +0 -1
|
@@ -79,12 +79,12 @@ type PxInfer<S> = S extends PxSchema<infer T, any> ? T : never;
|
|
|
79
79
|
* Useful for strict property-access checking on types that have an open `[key: string]: any`.
|
|
80
80
|
*
|
|
81
81
|
* @example
|
|
82
|
-
* type Strict =
|
|
82
|
+
* type Strict = PxRemoveIndex<PxAnimatedSvgDocument>;
|
|
83
83
|
* Strict['animator'] // PxAnimatorConfig | undefined ✓
|
|
84
84
|
* Strict['anything'] // compile error ✓
|
|
85
85
|
* @public @advanced
|
|
86
86
|
*/
|
|
87
|
-
type
|
|
87
|
+
type PxRemoveIndex<T> = {
|
|
88
88
|
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
|
|
89
89
|
};
|
|
90
90
|
type UnionMembers<T extends ReadonlyArray<PxSchema<any, any>>> = {
|
|
@@ -208,7 +208,7 @@ declare const px: {
|
|
|
208
208
|
* The base can be the result of px.object() or px.openObject() — anything with a _shape property.
|
|
209
209
|
*
|
|
210
210
|
* @example
|
|
211
|
-
* const PxSvgNodeSchema = px.extendedObject(
|
|
211
|
+
* const PxSvgNodeSchema = px.extendedObject(PxNodeBaseSchema, { width: px.number().optional() });
|
|
212
212
|
*/
|
|
213
213
|
readonly extendedObject: <B extends AnyShape, E extends AnyShape>(base: {
|
|
214
214
|
readonly _shape: B;
|
|
@@ -230,9 +230,9 @@ declare const px: {
|
|
|
230
230
|
};
|
|
231
231
|
|
|
232
232
|
/** The wire key, under the animator config block. @public @advanced */
|
|
233
|
-
declare const
|
|
233
|
+
declare const PX_WIRE_VERSION_KEY = "version";
|
|
234
234
|
/** Parsed form. Compare these, NEVER the strings: `"1.10" < "1.9"` lexically. @public @advanced */
|
|
235
|
-
interface
|
|
235
|
+
interface PxWireVersion {
|
|
236
236
|
/** Generation. A change no conversion can bridge. */
|
|
237
237
|
readonly a: number;
|
|
238
238
|
/** Player schema revision within the generation. */
|
|
@@ -241,7 +241,7 @@ interface WireVersion {
|
|
|
241
241
|
readonly c: number;
|
|
242
242
|
}
|
|
243
243
|
/** How a file's version relates to a reader's. @public @advanced */
|
|
244
|
-
declare enum
|
|
244
|
+
declare enum PxWireVersionRelation {
|
|
245
245
|
/** No stamp — unknown provenance. Assume nothing, migrate nothing. */
|
|
246
246
|
unstamped = "unstamped",
|
|
247
247
|
same = "same",
|
|
@@ -255,19 +255,19 @@ declare enum WireVersionRelation {
|
|
|
255
255
|
/** `"1.2.3"` → `{a:1,b:2,c:3}`; a missing `c` is baseline 0. `undefined` when unparseable —
|
|
256
256
|
* treated exactly like an absent stamp, never as an error. * @public @advanced
|
|
257
257
|
*/
|
|
258
|
-
declare function parseWireVersion(raw: unknown):
|
|
258
|
+
declare function parseWireVersion(raw: unknown): PxWireVersion | undefined;
|
|
259
259
|
/** @public @advanced */
|
|
260
|
-
declare function formatWireVersion(v:
|
|
260
|
+
declare function formatWireVersion(v: PxWireVersion): string;
|
|
261
261
|
/** The version this PLAYER implements, parsed. `c` is 0: the player has no editor extension. @public @advanced */
|
|
262
|
-
declare const
|
|
262
|
+
declare const PX_WIRE_VERSION: PxWireVersion;
|
|
263
263
|
/** The version stamped on a document, or `undefined` when it carries none. @public @advanced */
|
|
264
|
-
declare function readWireVersion(doc: unknown):
|
|
264
|
+
declare function readWireVersion(doc: unknown): PxWireVersion | undefined;
|
|
265
265
|
/**
|
|
266
266
|
* How `file` relates to `mine`. `readerReadsEditorPart` separates the two readers: the EDITOR
|
|
267
267
|
* compares all three parts, the PLAYER compares only `a.b` and is blind to `c`.
|
|
268
268
|
* @public @advanced
|
|
269
269
|
*/
|
|
270
|
-
declare function compareWireVersion(file:
|
|
270
|
+
declare function compareWireVersion(file: PxWireVersion | undefined, mine: PxWireVersion, readerReadsEditorPart: boolean): PxWireVersionRelation;
|
|
271
271
|
/**
|
|
272
272
|
* What to TELL the user about a version gap — and only ever alongside unknown content actually
|
|
273
273
|
* met. `undefined` means the version explains nothing, so nothing is said.
|
|
@@ -277,9 +277,9 @@ declare function compareWireVersion(file: WireVersion | undefined, mine: WireVer
|
|
|
277
277
|
* so the worst case is a document missing a feature plus a sentence saying how to close the gap.
|
|
278
278
|
* @public @advanced
|
|
279
279
|
*/
|
|
280
|
-
declare function
|
|
280
|
+
declare function wireVersionAdvice(relation: PxWireVersionRelation, file: PxWireVersion | undefined, mine: PxWireVersion, isPlayer: boolean): string | undefined;
|
|
281
281
|
/** What a step DOES to documents — and therefore whether it needs conversion code. @public @advanced */
|
|
282
|
-
declare enum
|
|
282
|
+
declare enum PxWireStepKind {
|
|
283
283
|
/**
|
|
284
284
|
* Only OPTIONAL fields were added. An older reader ignores them; a newer reader finds them
|
|
285
285
|
* absent and defaults. Nothing to convert either way — but it must still be DECLARED, so
|
|
@@ -290,16 +290,16 @@ declare enum WireStepKind {
|
|
|
290
290
|
converted = "converted"
|
|
291
291
|
}
|
|
292
292
|
/** One `b` step of the player schema. @public @advanced */
|
|
293
|
-
interface
|
|
293
|
+
interface PxWireVersionStep {
|
|
294
294
|
/** The version this step converts FROM, e.g. `'1.1'`. */
|
|
295
295
|
readonly from: string;
|
|
296
296
|
/** …and TO. Must be the `from` of the next step, so the table is one unbroken chain. */
|
|
297
297
|
readonly to: string;
|
|
298
298
|
/** Why the format moved — the sentence a future reader needs, not a commit hash. */
|
|
299
299
|
readonly reason: string;
|
|
300
|
-
readonly kind:
|
|
300
|
+
readonly kind: PxWireStepKind;
|
|
301
301
|
/**
|
|
302
|
-
* Older → newer, MUTATING the document in place. Required for {@link
|
|
302
|
+
* Older → newer, MUTATING the document in place. Required for {@link PxWireStepKind.converted}.
|
|
303
303
|
* It may not touch `meta.*`: that subtree is the editor's, and its steps are the `c` part.
|
|
304
304
|
*/
|
|
305
305
|
readonly up?: (doc: Record<string, unknown>) => void;
|
|
@@ -307,19 +307,19 @@ interface WireVersionStep {
|
|
|
307
307
|
readonly down?: (doc: Record<string, unknown>) => void;
|
|
308
308
|
}
|
|
309
309
|
/** Where the chain starts: the first RELEASED player schema. Everything older is pre-release. @public @advanced */
|
|
310
|
-
declare const
|
|
310
|
+
declare const PX_WIRE_BASELINE_VERSION = "1.1";
|
|
311
311
|
/**
|
|
312
|
-
* Every `b` step from {@link
|
|
312
|
+
* Every `b` step from {@link PX_WIRE_BASELINE_VERSION} to {@link PX_WIRE_SCHEMA_VERSION}.
|
|
313
313
|
*
|
|
314
314
|
* EMPTY IS CORRECT TODAY: 1.1 is the baseline and nothing has moved since. It exists now because
|
|
315
|
-
* the guard spec keys off it — bump `
|
|
315
|
+
* the guard spec keys off it — bump `PX_WIRE_SCHEMA_VERSION` without adding the matching step
|
|
316
316
|
* and the suite fails naming the gap. That is the whole point: the last three renames shipped
|
|
317
317
|
* because nothing forced anyone to say they had happened.
|
|
318
318
|
* @public @advanced
|
|
319
319
|
*/
|
|
320
|
-
declare const
|
|
320
|
+
declare const PX_WIRE_STEPS: ReadonlyArray<PxWireVersionStep>;
|
|
321
321
|
/** What a conversion pass did, so a caller can report it. @public @advanced */
|
|
322
|
-
interface
|
|
322
|
+
interface PxWireConversionResult {
|
|
323
323
|
/**
|
|
324
324
|
* The document to read. A converted COPY when steps applied, otherwise the input itself,
|
|
325
325
|
* unchanged and identical by reference — the caller's object is never mutated, so a failed
|
|
@@ -327,26 +327,26 @@ interface PlayerConversionResult {
|
|
|
327
327
|
*/
|
|
328
328
|
readonly doc: unknown;
|
|
329
329
|
/** The version found on the file, if any. */
|
|
330
|
-
readonly from:
|
|
331
|
-
readonly relation:
|
|
330
|
+
readonly from: PxWireVersion | undefined;
|
|
331
|
+
readonly relation: PxWireVersionRelation;
|
|
332
332
|
/** The steps actually applied, oldest first. Empty when nothing was needed. */
|
|
333
|
-
readonly applied: ReadonlyArray<
|
|
333
|
+
readonly applied: ReadonlyArray<PxWireVersionStep>;
|
|
334
334
|
/** Set only when the version could not be honored — never a refusal to render. */
|
|
335
335
|
readonly advice?: string;
|
|
336
336
|
}
|
|
337
337
|
/** Which table to run, and what to bring the document up TO. @public @advanced */
|
|
338
|
-
interface
|
|
338
|
+
interface PxWireConversionOptions {
|
|
339
339
|
/** The step table — the player's, or the editor's `meta.*` one. */
|
|
340
|
-
readonly steps: ReadonlyArray<
|
|
340
|
+
readonly steps: ReadonlyArray<PxWireVersionStep>;
|
|
341
341
|
/** The version the document should end up at. */
|
|
342
|
-
readonly target:
|
|
342
|
+
readonly target: PxWireVersion;
|
|
343
343
|
/** `true` for the EDITOR (compares and stamps `c`), `false` for the PLAYER (blind to it). */
|
|
344
344
|
readonly readerReadsEditorPart: boolean;
|
|
345
345
|
}
|
|
346
346
|
/**
|
|
347
347
|
* THE STEP ENGINE — one implementation, two tables.
|
|
348
348
|
*
|
|
349
|
-
* The player runs it over `
|
|
349
|
+
* The player runs it over `PX_WIRE_STEPS`; the editor runs it a second time over its own
|
|
350
350
|
* `meta.*` table, on the document the player pass returned. Keeping it one function is what
|
|
351
351
|
* stops the two halves from drifting into two different ideas of what conversion means.
|
|
352
352
|
*
|
|
@@ -359,30 +359,30 @@ interface WireConversionConfig {
|
|
|
359
359
|
* converted one.
|
|
360
360
|
* @public @advanced
|
|
361
361
|
*/
|
|
362
|
-
declare function applyWireSteps(doc: unknown, cfg:
|
|
362
|
+
declare function applyWireSteps(doc: unknown, cfg: PxWireConversionOptions): PxWireConversionResult;
|
|
363
363
|
/**
|
|
364
364
|
* BRING A DOCUMENT UP TO THIS PLAYER'S SCHEMA — the `playerFixer` half of the pair.
|
|
365
|
-
* Runs {@link applyWireSteps} over {@link
|
|
365
|
+
* Runs {@link applyWireSteps} over {@link PX_WIRE_STEPS}, touching nothing under `meta.*`.
|
|
366
366
|
* @public @advanced
|
|
367
367
|
*/
|
|
368
|
-
declare function
|
|
368
|
+
declare function convertWireDocument(doc: unknown): PxWireConversionResult;
|
|
369
369
|
/**
|
|
370
370
|
* What an EXPLICIT down-conversion did. Unlike reading, this may refuse — it is an output the
|
|
371
371
|
* user asked for ("save for an older player"), and handing back a file that silently lacks what
|
|
372
372
|
* the older schema cannot say would be worse than saying no.
|
|
373
373
|
* @public @advanced
|
|
374
374
|
*/
|
|
375
|
-
type
|
|
375
|
+
type PxWireDowngradeResult = {
|
|
376
376
|
readonly ok: true;
|
|
377
377
|
readonly doc: unknown;
|
|
378
|
-
readonly applied: ReadonlyArray<
|
|
378
|
+
readonly applied: ReadonlyArray<PxWireVersionStep>;
|
|
379
379
|
} | {
|
|
380
380
|
readonly ok: false;
|
|
381
381
|
readonly reason: string;
|
|
382
|
-
readonly blocking: ReadonlyArray<
|
|
382
|
+
readonly blocking: ReadonlyArray<PxWireVersionStep>;
|
|
383
383
|
};
|
|
384
384
|
/** Down-convert through the PLAYER table only — `meta.*` is untouched, as on the way up. @public @advanced */
|
|
385
|
-
declare function
|
|
385
|
+
declare function downgradeWireDocument(doc: unknown, target: PxWireVersion): PxWireDowngradeResult;
|
|
386
386
|
|
|
387
387
|
/** WAAPI `fill` — which values apply outside the active period. @public */
|
|
388
388
|
declare const PxFillMode: {
|
|
@@ -479,7 +479,7 @@ type PxAlongPathMode = typeof PxAlongPathMode[keyof typeof PxAlongPathMode];
|
|
|
479
479
|
* platform's animation API (`native`), or write it from the player's own frame loop (`js`).
|
|
480
480
|
*
|
|
481
481
|
* This is the CORE set. Code that always knows which engine is running takes this (e.g.
|
|
482
|
-
* `
|
|
482
|
+
* `normalizeBindings`'s `engine` arg gates motion-along-path materialization).
|
|
483
483
|
* @public
|
|
484
484
|
*/
|
|
485
485
|
declare const PxTimelineEngine: {
|
|
@@ -496,25 +496,25 @@ type PxTimelineEngine = typeof PxTimelineEngine[keyof typeof PxTimelineEngine];
|
|
|
496
496
|
* drift: every engine is automatically an accepted value, and `auto` is visibly the one extra.
|
|
497
497
|
* @public
|
|
498
498
|
*/
|
|
499
|
-
declare const
|
|
499
|
+
declare const PxTimelineEngineSetting: {
|
|
500
500
|
readonly auto: "auto";
|
|
501
501
|
readonly native: "native";
|
|
502
502
|
readonly js: "js";
|
|
503
503
|
};
|
|
504
|
-
type
|
|
504
|
+
type PxTimelineEngineSetting = typeof PxTimelineEngineSetting[keyof typeof PxTimelineEngineSetting];
|
|
505
505
|
/** What a requested engine resolves to BEFORE the runtime probes support: `js` pins the frame
|
|
506
506
|
* loop, anything else starts at `native`. NOTE this is only the STARTING point — `auto` still
|
|
507
507
|
* falls back to `js` per document when the platform API declines an attribute, which happens at
|
|
508
508
|
* bind time (see `PxAnimatorBind`), not here. * @public @advanced
|
|
509
509
|
*/
|
|
510
|
-
declare function resolveTimelineEngine(engine:
|
|
510
|
+
declare function resolveTimelineEngine(engine: PxTimelineEngineSetting | undefined): PxTimelineEngine;
|
|
511
511
|
/** `native` is a demand, not a preference: no JS fallback when the platform API declines an attribute. @public @advanced */
|
|
512
|
-
declare function isNativeForced(engine:
|
|
512
|
+
declare function isNativeForced(engine: PxTimelineEngineSetting | undefined): boolean;
|
|
513
513
|
/** May the browser's ScrollTimeline/ViewTimeline drive a scroll/view timeline?
|
|
514
514
|
* `auto` tries it first (falling back to the player's own measurement), `native`
|
|
515
515
|
* asks for it, `js` never uses it. * @public @advanced
|
|
516
516
|
*/
|
|
517
|
-
declare function mayUseNativeScrollTimeline(engine:
|
|
517
|
+
declare function mayUseNativeScrollTimeline(engine: PxTimelineEngineSetting | undefined): boolean;
|
|
518
518
|
/**
|
|
519
519
|
* THE TRIGGER DEFAULTS — what a missing `trigger` field means. One table, declared by
|
|
520
520
|
* `PxTriggerSchema` and applied by {@link resolveTrigger}, which every player calls (the web's
|
|
@@ -695,7 +695,7 @@ declare const PxStrokeTrimSubPaths: {
|
|
|
695
695
|
};
|
|
696
696
|
type PxStrokeTrimSubPaths = typeof PxStrokeTrimSubPaths[keyof typeof PxStrokeTrimSubPaths];
|
|
697
697
|
/** @internal */
|
|
698
|
-
declare const
|
|
698
|
+
declare const PX_TEXT_CONTENT_ATTR = "textContent";
|
|
699
699
|
/** @public */
|
|
700
700
|
declare const PX_TRANSFORM_PART_KEYS: readonly ["translate", "rotate", "scale", "origin"];
|
|
701
701
|
/** Loose enums for `spreadMethod` / gradient `type` — kept on the wire as
|
|
@@ -718,7 +718,7 @@ declare const PxGradientType: {
|
|
|
718
718
|
};
|
|
719
719
|
type PxGradientType = typeof PxGradientType[keyof typeof PxGradientType];
|
|
720
720
|
/** @public @advanced */
|
|
721
|
-
declare function
|
|
721
|
+
declare function isPxDocument(doc: any): doc is PxAnimatedSvgDocument;
|
|
722
722
|
/**
|
|
723
723
|
* The animator config, at either of its TWO canonical addresses (S4).
|
|
724
724
|
*
|
|
@@ -747,7 +747,7 @@ declare function flattenAnimatorTimeline(cfg: PxAnimatorConfig): PxAnimatorConfi
|
|
|
747
747
|
*/
|
|
748
748
|
declare function nestAnimatorTimeline(cfg: PxAnimatorConfig): PxAnimatorConfig;
|
|
749
749
|
/** @public @advanced */
|
|
750
|
-
declare function
|
|
750
|
+
declare function getDefinitions(doc: PxAnimatedSvgDocument): PxDefinitions | undefined;
|
|
751
751
|
/** The bind-by-id document's `animator.bindings`, as written — `target` keeps its `#`. @public @advanced */
|
|
752
752
|
declare function getBindings(doc: PxAnimatedSvgDocument): PxBinding[] | undefined;
|
|
753
753
|
/** @public @advanced */
|
|
@@ -790,7 +790,7 @@ interface PxDiagnostic {
|
|
|
790
790
|
/**
|
|
791
791
|
* Where a player sends what it wants to say. Every field is optional.
|
|
792
792
|
*
|
|
793
|
-
* The SHARED base of every callbacks object (
|
|
793
|
+
* The SHARED base of every callbacks object (dev-docs/reviews/api-surface-review.md §26.1): `createDiagnostics` reads it directly,
|
|
794
794
|
* `PxEngineCallbacks` extends it with the playback lifecycle, `PxAnimatorCallbacks` adds `onStop`
|
|
795
795
|
* on top — so the four diagnostics fields are spelled once, here.
|
|
796
796
|
* @public
|
|
@@ -968,14 +968,14 @@ type PxNormalizedKeyframe = _PxNormalizedKeyframe;
|
|
|
968
968
|
*/
|
|
969
969
|
type PxAnyKeyframe = _PxKeyframe | _PxNormalizedKeyframe;
|
|
970
970
|
/** Value, whichever spelling. @internal */
|
|
971
|
-
declare const
|
|
971
|
+
declare const keyframeValue: (kf: PxAnyKeyframe) => any;
|
|
972
972
|
/** Easing — resolved on a normalized keyframe, possibly a NAME on a wire one. @internal */
|
|
973
|
-
declare const
|
|
973
|
+
declare const keyframeEasing: (kf: PxAnyKeyframe) => PxEasingOrRef | undefined;
|
|
974
974
|
/**
|
|
975
975
|
* A single animation keyframe defining the state at a specific point in time.
|
|
976
976
|
*
|
|
977
977
|
* Generic over the keyframe `value` type for callers that know the per-property
|
|
978
|
-
* value shape (e.g. `PxKeyframe<
|
|
978
|
+
* value shape (e.g. `PxKeyframe<PxVec2>` in the effect appliers). Defaults to
|
|
979
979
|
* `any`, matching the schema (`value` is stored as `px.any()` on the wire).
|
|
980
980
|
* @public
|
|
981
981
|
*/
|
|
@@ -1380,7 +1380,7 @@ declare const PxGlyphFontSchema: PxSchema<{
|
|
|
1380
1380
|
/** @public */
|
|
1381
1381
|
type PxGlyphFont = PxInfer<typeof PxGlyphFontSchema>;
|
|
1382
1382
|
/** @public @advanced */
|
|
1383
|
-
declare const
|
|
1383
|
+
declare const PxDefinitionsSchema: PxSchema<{} & {
|
|
1384
1384
|
easings?: Record<string, [number, number, number, number]> | undefined;
|
|
1385
1385
|
animations?: Record<string, Record<string, {} & {
|
|
1386
1386
|
value?: string | number | number[] | ({} & {
|
|
@@ -1474,7 +1474,7 @@ declare const PxDefsSchema: PxSchema<{} & {
|
|
|
1474
1474
|
};
|
|
1475
1475
|
};
|
|
1476
1476
|
/** Reusable definitions library for easings, animations and fonts. @public */
|
|
1477
|
-
type
|
|
1477
|
+
type PxDefinitions = PxInfer<typeof PxDefinitionsSchema>;
|
|
1478
1478
|
/** @public @advanced */
|
|
1479
1479
|
declare const PxScrollRangePointSchema: PxSchema<{} & {
|
|
1480
1480
|
phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
|
|
@@ -1633,8 +1633,8 @@ type PxTimeline = PxInfer<typeof PxTimelineSchema>;
|
|
|
1633
1633
|
interface _PxAnimatorConfig {
|
|
1634
1634
|
/** RUNTIME VIEW ONLY (not wire — the wire spells it `timeline.engine`, on every
|
|
1635
1635
|
* timeline type; same word both sides). How the animated attributes get updated;
|
|
1636
|
-
* see {@link
|
|
1637
|
-
engine?:
|
|
1636
|
+
* see {@link PxTimelineEngineSetting}. */
|
|
1637
|
+
engine?: PxTimelineEngineSetting;
|
|
1638
1638
|
/** RUNTIME VIEW ONLY (not wire — §2.8: the wire spells it `timeline.duration`).
|
|
1639
1639
|
* Total animation duration in milliseconds. */
|
|
1640
1640
|
duration?: number;
|
|
@@ -1671,7 +1671,7 @@ interface _PxAnimatorConfig {
|
|
|
1671
1671
|
/** Trigger configuration for when animation should start */
|
|
1672
1672
|
trigger?: PxTrigger;
|
|
1673
1673
|
/** Named easings, animations and embedded fonts — referenced by elements and bindings */
|
|
1674
|
-
definitions?:
|
|
1674
|
+
definitions?: PxDefinitions;
|
|
1675
1675
|
/**
|
|
1676
1676
|
* The bind-by-id document (a pre-rendered SVG + JS export, no `children`): the elements
|
|
1677
1677
|
* already exist as markup, so instead of carrying them again the document lists WHICH
|
|
@@ -1732,7 +1732,7 @@ declare const PxBindingSchema: PxSchema<{
|
|
|
1732
1732
|
/** @public */
|
|
1733
1733
|
type PxBinding = PxInfer<typeof PxBindingSchema>;
|
|
1734
1734
|
/**
|
|
1735
|
-
* RUNTIME VIEW ONLY (not wire) — a binding once `
|
|
1735
|
+
* RUNTIME VIEW ONLY (not wire) — a binding once `normalizeBindings` has resolved it: the
|
|
1736
1736
|
* bare DOM id and the merged, normalized animation. A self-contained document yields the same
|
|
1737
1737
|
* shape from every animated node, so the engines never see which kind of document they play.
|
|
1738
1738
|
* @internal
|
|
@@ -2036,7 +2036,7 @@ declare const PxAttrValueSchema: PxSchema<string | number | number[] | ({} & {
|
|
|
2036
2036
|
value: any;
|
|
2037
2037
|
} & {}), false>;
|
|
2038
2038
|
/** Fixed-length 2-number tuple. `[x, y]` for positions, `[sx, sy]` for scale, …. @public */
|
|
2039
|
-
type
|
|
2039
|
+
type PxVec2 = [number, number];
|
|
2040
2040
|
/**
|
|
2041
2041
|
* Animatable wire value — the ONE grammar for every animatable slot:
|
|
2042
2042
|
*
|
|
@@ -5717,7 +5717,7 @@ type PxEffects = PxInfer<typeof PxEffectsSchema>;
|
|
|
5717
5717
|
* Pass `strict: true` to also flag undeclared keys (useful in dev / tests).
|
|
5718
5718
|
* @public @advanced
|
|
5719
5719
|
*/
|
|
5720
|
-
declare function validateNodeEffects(root: PxNode,
|
|
5720
|
+
declare function validateNodeEffects(root: PxNode, options?: {
|
|
5721
5721
|
strict?: boolean;
|
|
5722
5722
|
}): Array<string>;
|
|
5723
5723
|
/**
|
|
@@ -5728,7 +5728,7 @@ declare function validateNodeEffects(root: PxNode, opts?: {
|
|
|
5728
5728
|
* for tooling, CI and agents that want a yes/no answer before shipping a document.
|
|
5729
5729
|
* @public
|
|
5730
5730
|
*/
|
|
5731
|
-
declare function validateDocument(doc: unknown,
|
|
5731
|
+
declare function validateDocument(doc: unknown, options?: {
|
|
5732
5732
|
strict?: boolean;
|
|
5733
5733
|
}): Array<string>;
|
|
5734
5734
|
/**
|
|
@@ -5740,7 +5740,7 @@ declare function validateDocument(doc: unknown, opts?: {
|
|
|
5740
5740
|
* `{ type:string, style?:…, [key:string]: string|number|PxPropertyAnimation }`
|
|
5741
5741
|
* @public @advanced
|
|
5742
5742
|
*/
|
|
5743
|
-
declare const
|
|
5743
|
+
declare const PxNodeBaseSchema: PxSchema<{
|
|
5744
5744
|
type: string;
|
|
5745
5745
|
} & {
|
|
5746
5746
|
domType?: string | undefined;
|
|
@@ -7927,7 +7927,7 @@ declare let PxNodeSchema: PxSchema<any>;
|
|
|
7927
7927
|
* Named properties take precedence over the index signature when accessed.
|
|
7928
7928
|
* @public
|
|
7929
7929
|
*/
|
|
7930
|
-
interface PxNode extends PxInfer<typeof
|
|
7930
|
+
interface PxNode extends PxInfer<typeof PxNodeBaseSchema> {
|
|
7931
7931
|
children?: PxNode[];
|
|
7932
7932
|
[camelCaseDomKey: string]: any;
|
|
7933
7933
|
}
|
|
@@ -7938,7 +7938,7 @@ interface PxNode extends PxInfer<typeof PxNodeBase> {
|
|
|
7938
7938
|
* `{ width?:number, height?:number, viewBox?:string, animator?:AnimatorConfig }`
|
|
7939
7939
|
* @public @advanced
|
|
7940
7940
|
*/
|
|
7941
|
-
declare const
|
|
7941
|
+
declare const PxSvgNodeRootSchema: PxSchema<{} & {
|
|
7942
7942
|
width?: string | number | undefined;
|
|
7943
7943
|
height?: string | number | undefined;
|
|
7944
7944
|
viewBox?: string | undefined;
|
|
@@ -8199,7 +8199,7 @@ declare const PxSvgNodeExtra: PxSchema<{} & {
|
|
|
8199
8199
|
* SVG-root fields.
|
|
8200
8200
|
* @public
|
|
8201
8201
|
*/
|
|
8202
|
-
interface PxSvgNode extends PxNode, Omit<PxInfer<typeof
|
|
8202
|
+
interface PxSvgNode extends PxNode, Omit<PxInfer<typeof PxSvgNodeRootSchema>, 'animator'> {
|
|
8203
8203
|
/** The RUNTIME-VIEW type, not the wire shape: in-memory documents may carry the
|
|
8204
8204
|
* flat playback fields (`flattenAnimatorTimeline` output, prop overrides in the
|
|
8205
8205
|
* RN/React wrappers), while `PxAnimatorConfigSchema` validates only the nested
|
|
@@ -10709,7 +10709,7 @@ type PxBezierPath = PxInfer<typeof PxBezierPathSchema>;
|
|
|
10709
10709
|
* React Native player to its own view handle. Defaults to `unknown`.
|
|
10710
10710
|
* @public
|
|
10711
10711
|
*/
|
|
10712
|
-
interface
|
|
10712
|
+
interface PxPlaybackApi<TRoot = unknown> {
|
|
10713
10713
|
isReady(): boolean;
|
|
10714
10714
|
/** Returns the root element for the animation (platform-specific type). */
|
|
10715
10715
|
getRootElement(): TRoot | null;
|
|
@@ -10740,7 +10740,7 @@ interface PxBasicAnimatorAPI<TRoot = unknown> {
|
|
|
10740
10740
|
* rather than one per engine.
|
|
10741
10741
|
* @public
|
|
10742
10742
|
*/
|
|
10743
|
-
interface
|
|
10743
|
+
interface PxAnimatorApi<TRoot = unknown> extends PxPlaybackApi<TRoot> {
|
|
10744
10744
|
/** Jumps to the end of the animation and holds the final state. */
|
|
10745
10745
|
finish(): void;
|
|
10746
10746
|
/**
|
|
@@ -10774,7 +10774,7 @@ interface PxAnimatorAPI<TRoot = unknown> extends PxBasicAnimatorAPI<TRoot> {
|
|
|
10774
10774
|
* `setPlaybackRate` comment had already lost "negative plays backwards".
|
|
10775
10775
|
* @public
|
|
10776
10776
|
*/
|
|
10777
|
-
type PxAnimatorHandle = Omit<
|
|
10777
|
+
type PxAnimatorHandle = Omit<PxAnimatorApi, 'isReady' | 'getRootElement' | 'destroy'>;
|
|
10778
10778
|
/** @public @advanced */
|
|
10779
10779
|
interface PxValidationResult {
|
|
10780
10780
|
valid: boolean;
|
|
@@ -10790,7 +10790,7 @@ interface PxValidationResult {
|
|
|
10790
10790
|
* this on OPEN, where a key from a newer version is worth a warning, never a refusal.
|
|
10791
10791
|
* @public @advanced
|
|
10792
10792
|
*/
|
|
10793
|
-
declare function
|
|
10793
|
+
declare function isValidPxDocument(doc: unknown): PxValidationResult;
|
|
10794
10794
|
|
|
10795
10795
|
/** @internal */
|
|
10796
10796
|
declare function generateUniqueId(): string;
|
|
@@ -10829,12 +10829,12 @@ declare function generateNewIds(doc: PxAnimatedSvgDocument): PxAnimatedSvgDocume
|
|
|
10829
10829
|
* refs on `href` / `src` / `mask` / `marker*`.
|
|
10830
10830
|
* @internal
|
|
10831
10831
|
*/
|
|
10832
|
-
declare const
|
|
10832
|
+
declare const PX_DISALLOWED_SVG_TAGS_LOWER: Set<string>;
|
|
10833
10833
|
/** CSS-only properties that are NOT SVG presentation attributes — the browser
|
|
10834
10834
|
* ignores them via `setAttribute`, so they must be applied through `element.style`.
|
|
10835
10835
|
* Keyed camelCase to match the normalized prop names (`element.style.mixBlendMode`). * @internal
|
|
10836
10836
|
*/
|
|
10837
|
-
declare const
|
|
10837
|
+
declare const PX_CSS_ONLY_STYLE_PROPS: Set<string>;
|
|
10838
10838
|
/**
|
|
10839
10839
|
* Returns the value to pass to `setAttribute`, or `undefined` to drop the
|
|
10840
10840
|
* attribute entirely. Dropping leaves the DOM clean — the caller skips
|
|
@@ -10855,14 +10855,14 @@ declare const CSS_ONLY_STYLE_PROPS: Set<string>;
|
|
|
10855
10855
|
*/
|
|
10856
10856
|
declare function sanitizeAttributeValue(name: string, value: any): any | undefined;
|
|
10857
10857
|
/** @public @advanced */
|
|
10858
|
-
declare function
|
|
10858
|
+
declare function toDomProps(props: Record<string, any>): Record<string, any>;
|
|
10859
10859
|
|
|
10860
10860
|
/**
|
|
10861
10861
|
* Time separation between a cycle's snap-back keyframe and the previous repetition's
|
|
10862
10862
|
* end, in ms.
|
|
10863
10863
|
*
|
|
10864
10864
|
* SINGLE SOURCE OF TRUTH — the editor imports this and converts to its own frame unit
|
|
10865
|
-
* (`TLoop.smallFrameShift =
|
|
10865
|
+
* (`TLoop.smallFrameShift = PX_LOOP_JUMP_SHIFT_MS / FRAME_DURATION_MS`), so the two sides
|
|
10866
10866
|
* cannot drift apart and materialize different keyframes (B7).
|
|
10867
10867
|
*
|
|
10868
10868
|
* 1ms, not one 10ms editor frame: a 10ms snap-back is long enough to read as a visible
|
|
@@ -10874,7 +10874,7 @@ declare function getNormalizedProps(props: Record<string, any>): Record<string,
|
|
|
10874
10874
|
* editor side keeps the fractional value and must not be re-clamped to a whole frame.
|
|
10875
10875
|
* @internal
|
|
10876
10876
|
*/
|
|
10877
|
-
declare const
|
|
10877
|
+
declare const PX_LOOP_JUMP_SHIFT_MS = 1;
|
|
10878
10878
|
/**
|
|
10879
10879
|
* Interpolates between two keyframe values based on property type.
|
|
10880
10880
|
* Returns the raw interpolated value (not a CSS string).
|
|
@@ -10914,7 +10914,7 @@ declare function mergeStaticTransformIntoAnimDef(animDef: PxAnimationDefinition,
|
|
|
10914
10914
|
* handling — see {@link PxTimelineEngine}.
|
|
10915
10915
|
* @public @advanced
|
|
10916
10916
|
*/
|
|
10917
|
-
declare function
|
|
10917
|
+
declare function normalizeBindings(doc: PxAnimatedSvgDocument, engine?: PxTimelineEngine): PxNormalizedBinding[];
|
|
10918
10918
|
/**
|
|
10919
10919
|
* Calculates interpolated attribute values for an animation definition.
|
|
10920
10920
|
* @param animDef The animation definition (with resolved refs and normalized times)
|
|
@@ -10954,13 +10954,13 @@ declare function materializeMotionPathInPropAnim(anim: PxPropertyAnimation, opts
|
|
|
10954
10954
|
/** Options accepted by {@link materializeAllInTree}. Mostly forwarded to the
|
|
10955
10955
|
* per-stage materializers; ordering is fixed (see module doc). * @internal
|
|
10956
10956
|
*/
|
|
10957
|
-
interface
|
|
10957
|
+
interface PxMaterializeAllOptions {
|
|
10958
10958
|
/** Knobs forwarded to `materializeMotionPathsInTree`. Only consulted for
|
|
10959
10959
|
* `engine === waapi` — frames-mode skips that stage entirely. */
|
|
10960
10960
|
motionPath?: MotionPathMaterializationOptions;
|
|
10961
10961
|
}
|
|
10962
10962
|
/** @public @advanced */
|
|
10963
|
-
declare function materializeAllInTree(doc: PxAnimatedSvgDocument, engine: PxTimelineEngine,
|
|
10963
|
+
declare function materializeAllInTree(doc: PxAnimatedSvgDocument, engine: PxTimelineEngine, options?: PxMaterializeAllOptions): PxAnimatedSvgDocument;
|
|
10964
10964
|
|
|
10965
10965
|
/**
|
|
10966
10966
|
* A document's schema findings. The pre-2026-09 FLAT animator spelling is NOT a category of its
|
|
@@ -10984,378 +10984,4 @@ declare function diagnoseDocument(doc: unknown): PxDocumentDiagnosis;
|
|
|
10984
10984
|
*/
|
|
10985
10985
|
declare function reportDocumentDiagnostics(doc: unknown, where: string): void;
|
|
10986
10986
|
|
|
10987
|
-
|
|
10988
|
-
type?: string;
|
|
10989
|
-
children?: Array<VmNode>;
|
|
10990
|
-
[attr: string]: any;
|
|
10991
|
-
}
|
|
10992
|
-
interface EffectDiff {
|
|
10993
|
-
time: number;
|
|
10994
|
-
onlyInA: Array<string>;
|
|
10995
|
-
onlyInB: Array<string>;
|
|
10996
|
-
}
|
|
10997
|
-
/**
|
|
10998
|
-
* Compares two trees "in effect" across all keyframe instants found in either.
|
|
10999
|
-
* Returns one entry per time where the painted-primitive multisets differ.
|
|
11000
|
-
* @internal
|
|
11001
|
-
*/
|
|
11002
|
-
declare function diffInEffect(a: VmNode, b: VmNode): Array<EffectDiff>;
|
|
11003
|
-
|
|
11004
|
-
/**
|
|
11005
|
-
* Element-creation factory — abstracts WHAT an "element" is so the same
|
|
11006
|
-
* geometry/layout code (e.g. the glyph text materializer) can emit plain wire
|
|
11007
|
-
* nodes here, or the editor's React / px elements when called from the editor.
|
|
11008
|
-
*
|
|
11009
|
-
* The signature intentionally mirrors the editor's `createPxElement(type,
|
|
11010
|
-
* props, children, fixReactKeysIfNeeded?)` so the editor's own factory drops in
|
|
11011
|
-
* unchanged.
|
|
11012
|
-
* @internal
|
|
11013
|
-
*/
|
|
11014
|
-
type PxCreateElement<E = any> = (type: string, props: {
|
|
11015
|
-
[k: string]: any;
|
|
11016
|
-
}, children?: Array<E> | E | null, fixReactKeysIfNeeded?: boolean) => E;
|
|
11017
|
-
|
|
11018
|
-
/** @internal */
|
|
11019
|
-
interface PathPoint {
|
|
11020
|
-
x: number;
|
|
11021
|
-
y: number;
|
|
11022
|
-
angle: number;
|
|
11023
|
-
}
|
|
11024
|
-
/** @internal */
|
|
11025
|
-
interface PathSampler {
|
|
11026
|
-
totalLength: number;
|
|
11027
|
-
/** True when the path loops back on itself (explicit `Z` or coincident ends) —
|
|
11028
|
-
* no open tip to run off, so overflow clamps/wraps rather than clipping. */
|
|
11029
|
-
closed: boolean;
|
|
11030
|
-
sampleAtDistance(dist: number): PathPoint;
|
|
11031
|
-
}
|
|
11032
|
-
/** @internal */
|
|
11033
|
-
declare function createPathSampler(d: string): PathSampler | null;
|
|
11034
|
-
|
|
11035
|
-
/**
|
|
11036
|
-
* Glyph text materializer — turns a `<text>`/`<tspan>` subtree into `<path>`
|
|
11037
|
-
* outlines from `definitions.fonts`, so the text renders with no external font.
|
|
11038
|
-
*
|
|
11039
|
-
* - HORIZONTAL ({@link materializeGlyphTextHorizontal}) — left-to-right by
|
|
11040
|
-
* advance width; honors font-size, text-anchor, letter/word-spacing,
|
|
11041
|
-
* per-tspan x/y/dx/dy, fill/stroke, nested tspans.
|
|
11042
|
-
* - ALONG-PATH ({@link materializeGlyphTextAlongPath}) — each glyph placed and
|
|
11043
|
-
* rotated to the referenced path's tangent. Static `startOffset` → glyphs
|
|
11044
|
-
* bake+merge; animated `startOffset` → per-glyph `<path>` with sampled
|
|
11045
|
-
* `animate.transform`. Text-level `x`/`dx` add distance ALONG the path (≈
|
|
11046
|
-
* startOffset) and `dy` shifts PERPENDICULAR — matching native `<textPath>`
|
|
11047
|
-
* (see {@link alongPathNodeOffsets}); `y` and per-tspan positioning are ignored
|
|
11048
|
-
* (a single run).
|
|
11049
|
-
*
|
|
11050
|
-
* Element creation goes through an injected {@link PxCreateElement} factory, so
|
|
11051
|
-
* the SAME layout produces plain wire nodes here (the effects pipeline) or the
|
|
11052
|
-
* editor's React/px elements when the editor calls it — see
|
|
11053
|
-
* {@link materializeGlyphText}.
|
|
11054
|
-
*
|
|
11055
|
-
* v1 scope (see svga.text.design.md): keyframe-interval easing is linear;
|
|
11056
|
-
* kerning/ligatures, per-tspan opacity, text-level animated fill are out of scope.
|
|
11057
|
-
*/
|
|
11058
|
-
|
|
11059
|
-
/** Inputs for a glyph materialization, decoupled from the effects `ApplyContext`
|
|
11060
|
-
* so the editor can call the materializer directly. * @internal
|
|
11061
|
-
*/
|
|
11062
|
-
interface GlyphMaterializeOpts<E = any> {
|
|
11063
|
-
/** Embedded glyph fonts, keyed by `font-family`. */
|
|
11064
|
-
glyphs: Record<string, PxGlyphFont>;
|
|
11065
|
-
/** Element factory — defaults to plain wire nodes ({@link jsonElementFactory}). */
|
|
11066
|
-
create?: PxCreateElement<E>;
|
|
11067
|
-
/** Optional diagnostics sink. */
|
|
11068
|
-
warnings?: Array<string>;
|
|
11069
|
-
}
|
|
11070
|
-
/** Per-CHARACTER advance box (local, pre-transform coords). `x,y` = the char's baseline start,
|
|
11071
|
-
* `width` = its advance, `ascent`/`fontSize` size its bbox. * @internal
|
|
11072
|
-
*/
|
|
11073
|
-
interface GlyphCharBox {
|
|
11074
|
-
x: number;
|
|
11075
|
-
y: number;
|
|
11076
|
-
width: number;
|
|
11077
|
-
ascent: number;
|
|
11078
|
-
fontSize: number;
|
|
11079
|
-
/** Along-path only: baseline END point (leading edge of the next char). Absent for
|
|
11080
|
-
* horizontal, where the end is `x + width` on the same baseline. */
|
|
11081
|
-
endX?: number;
|
|
11082
|
-
endY?: number;
|
|
11083
|
-
/** Along-path only: char rotation in DEGREES (path tangent; 0 = horizontal). */
|
|
11084
|
-
rotation?: number;
|
|
11085
|
-
}
|
|
11086
|
-
/** Optional along-path geometry for {@link layoutGlyphTextChars}: when given, chars are
|
|
11087
|
-
* placed + rotated along `pathD` (mirrors {@link materializeGlyphTextAlongPath}) at the
|
|
11088
|
-
* STATIC / frame-0 startOffset, so the editor caret follows the path. * @internal
|
|
11089
|
-
*/
|
|
11090
|
-
interface GlyphCharBoxAlongPath {
|
|
11091
|
-
pathD?: string;
|
|
11092
|
-
startOffset?: PxAnimatable<number>;
|
|
11093
|
-
textLength?: PxAnimatable<number>;
|
|
11094
|
-
pathOverflow?: string;
|
|
11095
|
-
}
|
|
11096
|
-
/** Per-character layout boxes for a glyph text, in reading/DOM order INCLUDING spaces
|
|
11097
|
-
* (a space has no glyph but advances the pen) AND one zero-width filler box per EMPTY
|
|
11098
|
-
* line — the editor's edit canvas renders a zero-width filler char for an empty line
|
|
11099
|
-
* (so the caret has something to measure), and DOM char indices must stay aligned.
|
|
11100
|
-
* HORIZONTAL by default — mirrors `materializeGlyphTextHorizontal`'s pen-walk exactly
|
|
11101
|
-
* (same x/y/dx/dy, spacing and text-anchor). When `opts.alongPath` is given, mirrors
|
|
11102
|
-
* `materializeGlyphTextAlongPath` (each char placed + rotated to the path tangent). So
|
|
11103
|
-
* an editor caret built from these lands on the rendered glyphs. Empty for a text with
|
|
11104
|
-
* no glyph font / unparsable path. * @internal
|
|
11105
|
-
*/
|
|
11106
|
-
declare function layoutGlyphTextChars(node: PxNode, opts: Pick<GlyphMaterializeOpts, 'glyphs' | 'warnings'> & {
|
|
11107
|
-
alongPath?: GlyphCharBoxAlongPath;
|
|
11108
|
-
}): Array<GlyphCharBox>;
|
|
11109
|
-
/** @internal */
|
|
11110
|
-
declare function materializeGlyphTextAlongPath<E = any>(node: PxNode, pathD: string | undefined, startOffset: PxAnimatable<number> | undefined, opts: GlyphMaterializeOpts<E>, textLength?: PxAnimatable<number>, pathOverflow?: string): E | null;
|
|
11111
|
-
/** Single entry the EDITOR calls: materializes a glyph `<text>` node into the
|
|
11112
|
-
* factory's element type, choosing along-path when `alongPath` is given. * @internal
|
|
11113
|
-
*/
|
|
11114
|
-
declare function materializeGlyphText<E = any>(node: PxNode, opts: GlyphMaterializeOpts<E> & {
|
|
11115
|
-
alongPath?: {
|
|
11116
|
-
pathD?: string;
|
|
11117
|
-
startOffset?: PxAnimatable<number>;
|
|
11118
|
-
textLength?: PxAnimatable<number>;
|
|
11119
|
-
pathOverflow?: string;
|
|
11120
|
-
};
|
|
11121
|
-
}): E | null;
|
|
11122
|
-
|
|
11123
|
-
/** Inputs for {@link extendedPathForBrowser}. `advance` = the text run-width used to
|
|
11124
|
-
* size the end extension (caller-measured; the player estimates it from the node,
|
|
11125
|
-
* the editor from its text model — browser fonts have no glyph metrics available). * @internal
|
|
11126
|
-
*/
|
|
11127
|
-
interface ExtendPathOpts {
|
|
11128
|
-
pathOverflow?: string;
|
|
11129
|
-
startOffset?: PxAnimatable<number>;
|
|
11130
|
-
textLength?: PxAnimatable<number>;
|
|
11131
|
-
advance?: number;
|
|
11132
|
-
}
|
|
11133
|
-
/** Result of {@link extendedPathForBrowser}: the (possibly) extended `d`, plus
|
|
11134
|
-
* `startShift` — the length of the prepended START lead-in. Because that lead-in
|
|
11135
|
-
* moves the `<textPath>` origin back by `startShift`, EVERY `startOffset` (all
|
|
11136
|
-
* keyframes) MUST be shifted by `+startShift` so the text lands where it would on
|
|
11137
|
-
* the un-extended path (`extend` only adds a tail, it must never move the text). * @internal
|
|
11138
|
-
*/
|
|
11139
|
-
interface ExtendedPath {
|
|
11140
|
-
d: string;
|
|
11141
|
-
startShift: number;
|
|
11142
|
-
}
|
|
11143
|
-
/** For `pathOverflow:'extend'` (browser-font): extend an OPEN path along its endpoint
|
|
11144
|
-
* tangents so the browser lays overflow glyphs onto the straight extension (matching
|
|
11145
|
-
* glyph-mode's tangent behavior) instead of dropping them. `'clip'`/closed paths are
|
|
11146
|
-
* returned unchanged (browser clips natively). Shared by the player's browser-font
|
|
11147
|
-
* applier and the editor's live/heavy `<textPath>` def generate (single source of truth).
|
|
11148
|
-
* Returns the extended `d` AND `startShift` — see {@link ExtendedPath}. * @internal
|
|
11149
|
-
*/
|
|
11150
|
-
declare function extendedPathForBrowser(pathD: string, opts: ExtendPathOpts): ExtendedPath;
|
|
11151
|
-
|
|
11152
|
-
/** Is this document scroll-driven? (`animator.timelineSource === 'scroll'`) @internal */
|
|
11153
|
-
declare function isScrollTimeline(config: PxAnimatorConfig | undefined): boolean;
|
|
11154
|
-
/**
|
|
11155
|
-
* The seek-space length (ms) a scroll progress of 1 maps to: duration × finite
|
|
11156
|
-
* iterations. `'infinite'` is meaningless on a finite progress timeline (see design doc
|
|
11157
|
-
* D4) — treated as 1 with the read-side warning left to the consumer.
|
|
11158
|
-
* @internal
|
|
11159
|
-
*/
|
|
11160
|
-
declare function scrollTotalDurationMs(config: PxAnimatorConfig | undefined): number;
|
|
11161
|
-
/**
|
|
11162
|
-
* A named phase's interval in `u`-space.
|
|
11163
|
-
*
|
|
11164
|
-
* `u` is the subject's "journey distance": with `sTop` = subject's leading edge in
|
|
11165
|
-
* scrollport coordinates, `u = vpSize − sTop` — 0 exactly when the subject is about to
|
|
11166
|
-
* enter (leading edge at the scrollport's trailing edge), growing as the user scrolls.
|
|
11167
|
-
* The `min`/`max` pairs make every formula valid BOTH for a subject smaller than the
|
|
11168
|
-
* scrollport and one larger than it (where "fully visible" flips to "covers the
|
|
11169
|
-
* scrollport") — the same case split CSS specifies for its named timeline ranges.
|
|
11170
|
-
* @internal
|
|
11171
|
-
*/
|
|
11172
|
-
declare function scrollPhaseInterval(phase: PxScrollPhase, subjectSize: number, scrollportSize: number): [number, number];
|
|
11173
|
-
/**
|
|
11174
|
-
* `kind: 'view'` progress ∈ [0, 1]: where the subject's journey sits within the
|
|
11175
|
-
* configured range.
|
|
11176
|
-
*
|
|
11177
|
-
* @param subjectStart subject's leading edge in scrollport coordinates
|
|
11178
|
-
* (`subjectRect.top − scrollportRect.top` on the resolved axis)
|
|
11179
|
-
* @param subjectSize subject size on the axis
|
|
11180
|
-
* @param scrollportSize scrollport size on the axis
|
|
11181
|
-
*
|
|
11182
|
-
* A degenerate/inverted range (uStart ≥ uEnd — e.g. zero-size subject with an `entry`
|
|
11183
|
-
* range) reports 1 once the point is passed, 0 before — never NaN.
|
|
11184
|
-
* @internal
|
|
11185
|
-
*/
|
|
11186
|
-
declare function scrollViewProgress(subjectStart: number, subjectSize: number, scrollportSize: number, range: PxScroll['range'] | undefined): number;
|
|
11187
|
-
/**
|
|
11188
|
-
* `kind: 'scroll'` progress ∈ [0, 1]: the scroller's offset ratio mapped through the
|
|
11189
|
-
* range (phases don't exist here — `fraction` is of the total scroll range).
|
|
11190
|
-
*
|
|
11191
|
-
* `maxOffset === 0` (nothing to scroll) reports 1, matching the CSS spec's rule that a
|
|
11192
|
-
* zero-length timeline is at 100%.
|
|
11193
|
-
* @internal
|
|
11194
|
-
*/
|
|
11195
|
-
declare function scrollOffsetProgress(offset: number, maxOffset: number, range: PxScroll['range'] | undefined): number;
|
|
11196
|
-
/**
|
|
11197
|
-
* Resolve a logical axis to a physical one. `block`/`inline` are writing-mode relative:
|
|
11198
|
-
* in horizontal writing (`horizontal-tb`, the default) block flows vertically; in
|
|
11199
|
-
* vertical writing modes it flows horizontally.
|
|
11200
|
-
* @internal
|
|
11201
|
-
*/
|
|
11202
|
-
declare function scrollResolveAxis(axis: PxScroll['axis'] | undefined, writingMode: string | undefined): 'x' | 'y';
|
|
11203
|
-
|
|
11204
|
-
/**
|
|
11205
|
-
* Converts a PxBezierPath to an SVG path string.
|
|
11206
|
-
* Control points (i, o) are treated as ABSOLUTE coordinates.
|
|
11207
|
-
* @param {PxBezierPath} path
|
|
11208
|
-
* @returns {string}
|
|
11209
|
-
*/
|
|
11210
|
-
/**
|
|
11211
|
-
* @param forceCurves Emit EVERY segment (incl. the closing one) as a cubic `C`, even when
|
|
11212
|
-
* its control points are degenerate (a straight line). Needed for keyframe values the
|
|
11213
|
-
* BROWSER interpolates (WAAPI / CSS `path()`): CSS only interpolates paths with
|
|
11214
|
-
* IDENTICAL command sequences, so an opportunistic `L` in one keyframe vs a `C` in the
|
|
11215
|
-
* next (e.g. a round-corner radius animating from 0) turns the whole animation
|
|
11216
|
-
* DISCRETE — it flips at 50% instead of morphing.
|
|
11217
|
-
* @internal
|
|
11218
|
-
*/
|
|
11219
|
-
declare function bezierToSvgPath(path: PxBezierPath, forceCurves?: boolean): string;
|
|
11220
|
-
/**
|
|
11221
|
-
* Creates a cubic-bezier easing function.
|
|
11222
|
-
* @param easing An array of four numbers [x1, y1, x2, y2] defining the bezier curve.
|
|
11223
|
-
* @returns A function that takes a progress value (0-1) and returns an eased value.
|
|
11224
|
-
* @internal
|
|
11225
|
-
*/
|
|
11226
|
-
declare function cubicBezier(easing: [number, number, number, number]): (x: number) => number;
|
|
11227
|
-
type Point2 = [number, number];
|
|
11228
|
-
/**
|
|
11229
|
-
* Splits a cubic bezier curve at parameter t using De Casteljau's algorithm.
|
|
11230
|
-
* Returns the left and right sub-curves as 4-point tuples.
|
|
11231
|
-
* @internal
|
|
11232
|
-
*/
|
|
11233
|
-
declare function subdivideCubicBezier(p0: Point2, p1: Point2, p2: Point2, p3: Point2, t: number): {
|
|
11234
|
-
left: [Point2, Point2, Point2, Point2];
|
|
11235
|
-
right: [Point2, Point2, Point2, Point2];
|
|
11236
|
-
};
|
|
11237
|
-
type Easing = [number, number, number, number];
|
|
11238
|
-
/**
|
|
11239
|
-
* Splits a CSS cubic-bezier easing [x1,y1,x2,y2] at a given x-axis fraction.
|
|
11240
|
-
* Each half is re-normalized to map [0,0]→[1,1].
|
|
11241
|
-
* Returns undefined for either half if the input is undefined (linear) or the split is degenerate.
|
|
11242
|
-
* @internal
|
|
11243
|
-
*/
|
|
11244
|
-
declare function splitEasing(easing: Easing | undefined, xFraction: number): {
|
|
11245
|
-
left: Easing | undefined;
|
|
11246
|
-
right: Easing | undefined;
|
|
11247
|
-
};
|
|
11248
|
-
/**
|
|
11249
|
-
* Reverses a cubic-bezier easing for backward playback.
|
|
11250
|
-
* [x1,y1,x2,y2] → [1-x2, 1-y2, 1-x1, 1-y1].
|
|
11251
|
-
* @internal
|
|
11252
|
-
*/
|
|
11253
|
-
declare function reverseEasing(easing: Easing | undefined): Easing | undefined;
|
|
11254
|
-
/**
|
|
11255
|
-
* Converts a color from a [r, g, b, a] array (where values are 0-1) to an rgba() or rgb() CSS string.
|
|
11256
|
-
* @param color The color array.
|
|
11257
|
-
* @internal
|
|
11258
|
-
*/
|
|
11259
|
-
declare function toRGBA(color: Array<number>): string;
|
|
11260
|
-
/** @internal */
|
|
11261
|
-
declare const COLOR_ATTR_NAMES: Set<string>;
|
|
11262
|
-
/** @internal */
|
|
11263
|
-
declare const TRANSFORM_FN_NAMES: Set<string>;
|
|
11264
|
-
/** @internal */
|
|
11265
|
-
declare const PCT_BASED_ATTR_NAMES: Set<string>;
|
|
11266
|
-
/**
|
|
11267
|
-
* Compose a `PxTransformParts` record into a single SVG/CSS transform string in
|
|
11268
|
-
* the canonical order:
|
|
11269
|
-
*
|
|
11270
|
-
* translate, translate(+origin), rotate, scale, translate(-origin)
|
|
11271
|
-
*
|
|
11272
|
-
* Each part is omitted when not present. `origin` becomes a `translate(+o)` /
|
|
11273
|
-
* `translate(-o)` pair surrounding the rotate/scale segment — the SVG-native
|
|
11274
|
-
* way to render a transform-origin pivot.
|
|
11275
|
-
*
|
|
11276
|
-
* @param parts the parts record (translate / rotate / scale / origin)
|
|
11277
|
-
* @param opts.withUnits when true (default), translates use `px` and rotate
|
|
11278
|
-
* uses `deg` — required for CSS / WebAnimations keyframes. When false, no
|
|
11279
|
-
* units are emitted — required for the SVG `transform` attribute.
|
|
11280
|
-
* @internal
|
|
11281
|
-
*/
|
|
11282
|
-
declare function composeTransformParts(parts: PxTransformParts | null | undefined, opts?: {
|
|
11283
|
-
withUnits?: boolean;
|
|
11284
|
-
}): string;
|
|
11285
|
-
/** @internal */
|
|
11286
|
-
declare const STYLE_ATTR_NAMES: Set<string>;
|
|
11287
|
-
/** @internal */
|
|
11288
|
-
declare const DEFAULT_DURATION_MS = 1000;
|
|
11289
|
-
/**
|
|
11290
|
-
* Converts a kebab-case string to camelCase.
|
|
11291
|
-
* @param kebab The kebab-case string.
|
|
11292
|
-
* @internal
|
|
11293
|
-
*/
|
|
11294
|
-
declare function kebabToCamelCaseWord(kebab: string): string;
|
|
11295
|
-
/**
|
|
11296
|
-
* Converts a camelCase string to kebab-case.
|
|
11297
|
-
* @param camel The camelCase string.
|
|
11298
|
-
* @internal
|
|
11299
|
-
*/
|
|
11300
|
-
declare function camelCaseToKebabWordIfNeeded(camel: string): string;
|
|
11301
|
-
/**
|
|
11302
|
-
* Clamps a number between a minimum and maximum value.
|
|
11303
|
-
* @param value The number to clamp.
|
|
11304
|
-
* @param min The minimum value.
|
|
11305
|
-
* @param max The maximum value.
|
|
11306
|
-
* @internal
|
|
11307
|
-
*/
|
|
11308
|
-
declare function clamp(value: number, min: number, max: number): number;
|
|
11309
|
-
|
|
11310
|
-
/** Every field identity `root` can carry, as canonical paths, sorted. @internal */
|
|
11311
|
-
declare function schemaFieldUniverse(root: PxSchema<any, any>): Array<string>;
|
|
11312
|
-
|
|
11313
|
-
/** One entry of the release log — what shipped, when, and what it changed. @internal */
|
|
11314
|
-
interface SchemaReleaseRecord {
|
|
11315
|
-
readonly version: string;
|
|
11316
|
-
/** ISO date, `YYYY-MM-DD`. */
|
|
11317
|
-
readonly date: string;
|
|
11318
|
-
/** The first release: nothing to compare it against. */
|
|
11319
|
-
readonly baseline?: boolean;
|
|
11320
|
-
readonly added: ReadonlyArray<string>;
|
|
11321
|
-
readonly removed: ReadonlyArray<string>;
|
|
11322
|
-
readonly note?: string;
|
|
11323
|
-
}
|
|
11324
|
-
/** Keys that appeared and keys that left between two inventories, each sorted. @internal */
|
|
11325
|
-
declare function diffFieldUniverse(previous: ReadonlyArray<string>, current: ReadonlyArray<string>): {
|
|
11326
|
-
added: Array<string>;
|
|
11327
|
-
removed: Array<string>;
|
|
11328
|
-
};
|
|
11329
|
-
/** What a release must do about the version. `refuse` set means: do not release as-is. @internal */
|
|
11330
|
-
interface SchemaReleasePlan {
|
|
11331
|
-
/** Did any key appear or leave since the last release? */
|
|
11332
|
-
readonly changed: boolean;
|
|
11333
|
-
/** Which kind of step the change requires — a removal is never additive. */
|
|
11334
|
-
readonly requiredKind?: WireStepKind;
|
|
11335
|
-
/** The version this release must carry. */
|
|
11336
|
-
readonly requiredVersion?: string;
|
|
11337
|
-
readonly refuse?: string;
|
|
11338
|
-
}
|
|
11339
|
-
/**
|
|
11340
|
-
* THE BUMP RULE. A key change requires `b + 1` and a step that explains it; no key change
|
|
11341
|
-
* requires nothing. The rule never picks the number by taste — the inventory diff does.
|
|
11342
|
-
* @internal
|
|
11343
|
-
*/
|
|
11344
|
-
declare function planSchemaRelease(p: {
|
|
11345
|
-
readonly added: ReadonlyArray<string>;
|
|
11346
|
-
readonly removed: ReadonlyArray<string>;
|
|
11347
|
-
/** `PX_PLAYER_SCHEMA_VERSION` — what the source says now. */
|
|
11348
|
-
readonly declared: string;
|
|
11349
|
-
/** The version of the last release record. */
|
|
11350
|
-
readonly lastReleased: string;
|
|
11351
|
-
readonly steps: ReadonlyArray<WireVersionStep>;
|
|
11352
|
-
}): SchemaReleasePlan;
|
|
11353
|
-
/**
|
|
11354
|
-
* Everything wrong with the release log, as sentences — empty when it is consistent. The log
|
|
11355
|
-
* must start at the baseline, move strictly forward, END at the version the source declares,
|
|
11356
|
-
* and every release after the baseline must have the step that explains it.
|
|
11357
|
-
* @internal
|
|
11358
|
-
*/
|
|
11359
|
-
declare function releaseLogProblems(releases: ReadonlyArray<SchemaReleaseRecord>, steps: ReadonlyArray<WireVersionStep>, declared: string, baseline: string): Array<string>;
|
|
11360
|
-
|
|
11361
|
-
export { PxFillMode as $, type PxBezierPath as A, BASELINE_PLAYER_VERSION as B, COLOR_ATTR_NAMES as C, DEFAULT_DURATION_MS as D, PxBezierPathSchema as E, type PxBinding as F, type GlyphCharBox as G, PxClipPathEffectSchema as H, PxCloneEffectSchema as I, PxCloneWithout as J, PxControlMode as K, LOOP_JUMP_SHIFT_MS as L, type MaterializeAllOptions as M, type PxControlProps as N, type PxCreateElement as O, type PxAnimatedSvgDocument as P, type PxDefs as Q, PxDefsSchema as R, type PxDiagnostic as S, PxDiagnosticKind as T, type PxDiagnostics as U, type PxDiagnosticsConfig as V, type PxEffects as W, PxEffectsSchema as X, type PxElementAnimation as Y, PxElementAnimationSchema as Z, PxFillGradientEffectSchema as _, type PxEngineCallbacks as a, TEXT_CONTENT_ATTR as a$, PxFinishAction as a0, type PxGlyph as a1, type PxGlyphFont as a2, PxGradientSpreadMethod as a3, PxGradientStopSchema as a4, PxGradientType as a5, type PxInfer as a6, type PxKeyframe as a7, PxKeyframeSchema as a8, PxKeyframeValueSchema as a9, PxScrollRangePointSchema as aA, PxScrollRangeSchema as aB, PxScrollSchema as aC, PxScrollSource as aD, PxStrokeTrimEffectSchema as aE, PxStrokeTrimSubPaths as aF, type PxSvgNode as aG, PxSvgNodeExtra as aH, PxTextEffectSchema as aI, PxTextPathEffectSchema as aJ, PxTextPathMethod as aK, PxTextPathSpacing as aL, type PxTimeline as aM, PxTimelineEngine as aN, PxTimelineEngineExtra as aO, PxTimelineSchema as aP, PxTransformByEffectSchema as aQ, type PxTransformParts as aR, PxTransformPartsSchema as aS, type PxTransformValue as aT, PxTransformValueSchema as aU, type PxTrigger as aV, PxTriggerSchema as aW, PxUnits as aX, type PxValidationContext as aY, type RemoveIndex as aZ, STYLE_ATTR_NAMES as a_, PxLengthAdjust as aa, type PxLoop as ab, PxLoopDirection as ac, PxLoopRepeatAt as ad, PxLoopSchema as ae, PxMaskType as af, PxMaskedByEffectSchema as ag, PxNodeBase as ah, PxNodeSchema as ai, type PxNormalizedKeyframe as aj, type PxNormalizedPropertyAnimation as ak, PxOutAction as al, PxPathOverflow as am, PxPinAlign as an, PxPlaybackDirection as ao, type PxPropertyAnimation as ap, PxPropertyAnimationSchema as aq, PxRepeaterEffectSchema as ar, PxRetimeEffectSchema as as, type PxSchema as at, type PxSchemaDesc as au, type PxScroll as av, PxScrollAxis as aw, PxScrollKind as ax, PxScrollPhase as ay, type PxScrollRangePoint as az, type PxAnimatorAPI as b, sanitizeAttributeValue as b$, TRANSFORM_FN_NAMES as b0, type Vec2 as b1, WIRE_VERSION_KEY as b2, type WireConversionConfig as b3, WireStepKind as b4, type WireVersion as b5, WireVersionRelation as b6, type WireVersionStep as b7, applyWireSteps as b8, bezierToSvgPath as b9, getNormalizedProps as bA, interpolateValue as bB, isNativeForced as bC, isPxElementFileFormat as bD, isPxElementFileFormatDeep as bE, isScrollTimeline as bF, kebabToCamelCaseWord as bG, kfEasing as bH, kfValue as bI, layoutGlyphTextChars as bJ, materializeAllInTree as bK, materializeGlyphText as bL, materializeGlyphTextAlongPath as bM, materializeMotionPathInPropAnim as bN, mayUseNativeScrollTimeline as bO, mergeStaticTransformIntoAnimDef as bP, nestAnimatorTimeline as bQ, parseWireVersion as bR, planSchemaRelease as bS, px as bT, readWireVersion as bU, releaseLogProblems as bV, reportDocumentDiagnostics as bW, resolveControlMode as bX, resolveTimelineEngine as bY, resolveTrigger as bZ, reverseEasing as b_, calcAnimationValues as ba, camelCaseToKebabWordIfNeeded as bb, clamp as bc, compareWireVersion as bd, composeTransformParts as be, controlModeTakesOverTrigger as bf, convertPlayerDocument as bg, createDiagnostics as bh, createPathSampler as bi, cubicBezier as bj, deepClone as bk, describeSchema as bl, diagnoseDocument as bm, diffFieldUniverse as bn, diffInEffect as bo, downgradePlayerDocument as bp, extendedPathForBrowser as bq, flattenAnimatorTimeline as br, formatWireVersion as bs, generateNewIds as bt, generateUniqueId as bu, getAnimatorConfig as bv, getBindings as bw, getChildren as bx, getDefs as by, getNormalizedBindings as bz, type PxAnimatorConfig as c, schemaFieldUniverse as c0, schemaKeys as c1, scrollOffsetProgress as c2, scrollPhaseInterval as c3, scrollResolveAxis as c4, scrollTotalDurationMs as c5, scrollViewProgress as c6, splitEasing as c7, subdivideCubicBezier as c8, toRGBA as c9, validateDocument as ca, validateNodeEffects as cb, versionAdvice as cc, PxStartOn as d, type PxNode as e, CSS_ONLY_STYLE_PROPS as f, DISALLOWED_SVG_TAGS_LOWER as g, PCT_BASED_ATTR_NAMES as h, PLAYER_WIRE_STEPS as i, PLAYER_WIRE_VERSION as j, PX_ANIM_ATTR_NAME as k, PX_ANIM_SRC_ATTR_NAME as l, PX_TRANSFORM_PART_KEYS as m, PX_TRIGGER_DEFAULTS as n, PX_UNKNOWN_KEY_ERROR as o, type PlayerConversionResult as p, PxAlongPathMode as q, type PxAnimatable as r, PxAnimatedSvgDocumentSchema as s, type PxAnimationDefinition as t, type PxAnimatorCallbacks as u, PxAnimatorConfigSchema as v, type PxAnimatorHandle as w, type PxAnyKeyframe as x, PxAttrValueSchema as y, type PxBasicAnimatorAPI as z };
|
|
10987
|
+
export { PxLoopSchema as $, type PxDefinitions as A, PxDefinitionsSchema as B, type PxDiagnostic as C, PxDiagnosticKind as D, type PxDiagnostics as E, type PxDiagnosticsConfig as F, type PxEffects as G, PxEffectsSchema as H, type PxElementAnimation as I, PxElementAnimationSchema as J, PxFillGradientEffectSchema as K, PxFillMode as L, PxFinishAction as M, type PxGlyph as N, type PxGlyphFont as O, type PxAnimatedSvgDocument as P, PxGradientSpreadMethod as Q, PxGradientStopSchema as R, PxGradientType as S, type PxInfer as T, type PxKeyframe as U, PxKeyframeSchema as V, PxKeyframeValueSchema as W, PxLengthAdjust as X, type PxLoop as Y, PxLoopDirection as Z, PxLoopRepeatAt as _, type PxEngineCallbacks as a, generateNewIds as a$, PxMaskType as a0, PxMaskedByEffectSchema as a1, PxNodeBaseSchema as a2, PxNodeSchema as a3, PxOutAction as a4, PxPathOverflow as a5, PxPinAlign as a6, type PxPlaybackApi as a7, PxPlaybackDirection as a8, type PxPropertyAnimation as a9, PxTimelineSchema as aA, PxTransformByEffectSchema as aB, type PxTransformParts as aC, PxTransformPartsSchema as aD, type PxTransformValue as aE, PxTransformValueSchema as aF, type PxTrigger as aG, PxTriggerSchema as aH, PxUnits as aI, type PxValidationContext as aJ, type PxVec2 as aK, type PxWireConversionOptions as aL, type PxWireConversionResult as aM, PxWireStepKind as aN, type PxWireVersion as aO, PxWireVersionRelation as aP, type PxWireVersionStep as aQ, applyWireSteps as aR, calcAnimationValues as aS, compareWireVersion as aT, controlModeTakesOverTrigger as aU, convertWireDocument as aV, describeSchema as aW, diagnoseDocument as aX, downgradeWireDocument as aY, flattenAnimatorTimeline as aZ, formatWireVersion as a_, PxPropertyAnimationSchema as aa, type PxRemoveIndex as ab, PxRepeaterEffectSchema as ac, PxRetimeEffectSchema as ad, type PxSchema as ae, type PxSchemaDesc as af, type PxScroll as ag, PxScrollAxis as ah, PxScrollKind as ai, PxScrollPhase as aj, type PxScrollRangePoint as ak, PxScrollRangePointSchema as al, PxScrollRangeSchema as am, PxScrollSchema as an, PxScrollSource as ao, PxStrokeTrimEffectSchema as ap, PxStrokeTrimSubPaths as aq, type PxSvgNode as ar, PxSvgNodeRootSchema as as, PxTextEffectSchema as at, PxTextPathEffectSchema as au, PxTextPathMethod as av, PxTextPathSpacing as aw, type PxTimeline as ax, PxTimelineEngine as ay, PxTimelineEngineSetting as az, type PxAnimatorApi as b, getAnimatorConfig as b0, getBindings as b1, getChildren as b2, getDefinitions as b3, isNativeForced as b4, isPxDocument as b5, isValidPxDocument as b6, materializeAllInTree as b7, mayUseNativeScrollTimeline as b8, nestAnimatorTimeline as b9, generateUniqueId as bA, interpolateValue as bB, keyframeEasing as bC, keyframeValue as bD, materializeMotionPathInPropAnim as bE, mergeStaticTransformIntoAnimDef as bF, reportDocumentDiagnostics as bG, sanitizeAttributeValue as bH, normalizeBindings as ba, parseWireVersion as bb, px as bc, readWireVersion as bd, resolveControlMode as be, resolveTimelineEngine as bf, resolveTrigger as bg, schemaKeys as bh, toDomProps as bi, validateDocument as bj, validateNodeEffects as bk, wireVersionAdvice as bl, type PxAnimatable as bm, PX_ANIM_ATTR_NAME as bn, PX_ANIM_SRC_ATTR_NAME as bo, PX_CSS_ONLY_STYLE_PROPS as bp, PX_DISALLOWED_SVG_TAGS_LOWER as bq, PX_LOOP_JUMP_SHIFT_MS as br, PX_TEXT_CONTENT_ATTR as bs, PX_UNKNOWN_KEY_ERROR as bt, type PxAnyKeyframe as bu, type PxMaterializeAllOptions as bv, type PxNormalizedKeyframe as bw, type PxNormalizedPropertyAnimation as bx, createDiagnostics as by, deepClone as bz, type PxAnimatorConfig as c, PxStartOn as d, type PxNode as e, PX_TRANSFORM_PART_KEYS as f, PX_TRIGGER_DEFAULTS as g, PX_WIRE_BASELINE_VERSION as h, PX_WIRE_STEPS as i, PX_WIRE_VERSION as j, PX_WIRE_VERSION_KEY as k, PxAlongPathMode as l, PxAnimatedSvgDocumentSchema as m, type PxAnimationDefinition as n, type PxAnimatorCallbacks as o, PxAnimatorConfigSchema as p, type PxAnimatorHandle as q, PxAttrValueSchema as r, type PxBezierPath as s, PxBezierPathSchema as t, type PxBinding as u, PxClipPathEffectSchema as v, PxCloneEffectSchema as w, PxCloneWithout as x, PxControlMode as y, type PxControlProps as z };
|