@pixodesk/svg-animator-core 1.0.26 → 1.0.28

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.cts CHANGED
@@ -1274,6 +1274,85 @@ declare const PxDefsSchema: PxSchema<{} & {
1274
1274
  };
1275
1275
  /** Reusable definitions library for easings, animations, and styles. */
1276
1276
  type PxDefs = PxInfer<typeof PxDefsSchema>;
1277
+ /** The subject's journey phases across the scrollport (see scroll-timeline.design.md §4
1278
+ * for the exact `u`-space intervals each phase maps to). */
1279
+ type PxScrollPhase = 'cover' | 'contain' | 'entry' | 'exit' | 'entry-crossing' | 'exit-crossing';
1280
+ declare const PxScrollRangePointSchema: PxSchema<{} & {
1281
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1282
+ fraction?: number | undefined;
1283
+ }, false> & {
1284
+ readonly _shape: {
1285
+ phase: PxSchema<"cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined, true>;
1286
+ fraction: PxSchema<number | undefined, true>;
1287
+ };
1288
+ };
1289
+ type PxScrollRangePoint = PxInfer<typeof PxScrollRangePointSchema>;
1290
+ /** The `range` sub-object — named so consumers can derive its keys. */
1291
+ declare const PxScrollRangeSchema: PxSchema<{} & {
1292
+ start?: ({} & {
1293
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1294
+ fraction?: number | undefined;
1295
+ }) | undefined;
1296
+ end?: ({} & {
1297
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1298
+ fraction?: number | undefined;
1299
+ }) | undefined;
1300
+ }, false> & {
1301
+ readonly _shape: {
1302
+ start: PxSchema<({} & {
1303
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1304
+ fraction?: number | undefined;
1305
+ }) | undefined, true>;
1306
+ end: PxSchema<({} & {
1307
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1308
+ fraction?: number | undefined;
1309
+ }) | undefined, true>;
1310
+ };
1311
+ };
1312
+ declare const PxScrollSchema: PxSchema<{} & {
1313
+ driver?: "custom" | "native" | undefined;
1314
+ kind?: "view" | "scroll" | undefined;
1315
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1316
+ source?: "nearest" | "root" | undefined;
1317
+ subject?: string | undefined;
1318
+ smoothing?: number | undefined;
1319
+ pin?: boolean | undefined;
1320
+ pinTop?: number | undefined;
1321
+ pinDistance?: number | undefined;
1322
+ range?: ({} & {
1323
+ start?: ({} & {
1324
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1325
+ fraction?: number | undefined;
1326
+ }) | undefined;
1327
+ end?: ({} & {
1328
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1329
+ fraction?: number | undefined;
1330
+ }) | undefined;
1331
+ }) | undefined;
1332
+ }, false> & {
1333
+ readonly _shape: {
1334
+ driver: PxSchema<"custom" | "native" | undefined, true>;
1335
+ kind: PxSchema<"view" | "scroll" | undefined, true>;
1336
+ axis: PxSchema<"x" | "y" | "block" | "inline" | undefined, true>;
1337
+ source: PxSchema<"nearest" | "root" | undefined, true>;
1338
+ subject: PxSchema<string | undefined, true>;
1339
+ smoothing: PxSchema<number | undefined, true>;
1340
+ pin: PxSchema<boolean | undefined, true>;
1341
+ pinTop: PxSchema<number | undefined, true>;
1342
+ pinDistance: PxSchema<number | undefined, true>;
1343
+ range: PxSchema<({} & {
1344
+ start?: ({} & {
1345
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1346
+ fraction?: number | undefined;
1347
+ }) | undefined;
1348
+ end?: ({} & {
1349
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1350
+ fraction?: number | undefined;
1351
+ }) | undefined;
1352
+ }) | undefined, true>;
1353
+ };
1354
+ };
1355
+ type PxScroll = PxInfer<typeof PxScrollSchema>;
1277
1356
  declare const PxAnimatorConfigSchema: PxSchema<{} & {
1278
1357
  mode?: "auto" | "waapi" | "frames" | undefined;
1279
1358
  duration?: number | undefined;
@@ -1557,6 +1636,27 @@ declare const PxAnimatorConfigSchema: PxSchema<{} & {
1557
1636
  autoOrient?: boolean | undefined;
1558
1637
  }>)[]> | undefined;
1559
1638
  timelineSource?: string | undefined;
1639
+ scroll?: ({} & {
1640
+ driver?: "custom" | "native" | undefined;
1641
+ kind?: "view" | "scroll" | undefined;
1642
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1643
+ source?: "nearest" | "root" | undefined;
1644
+ subject?: string | undefined;
1645
+ smoothing?: number | undefined;
1646
+ pin?: boolean | undefined;
1647
+ pinTop?: number | undefined;
1648
+ pinDistance?: number | undefined;
1649
+ range?: ({} & {
1650
+ start?: ({} & {
1651
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1652
+ fraction?: number | undefined;
1653
+ }) | undefined;
1654
+ end?: ({} & {
1655
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1656
+ fraction?: number | undefined;
1657
+ }) | undefined;
1658
+ }) | undefined;
1659
+ }) | undefined;
1560
1660
  debugInstName?: string | undefined;
1561
1661
  }, false> & {
1562
1662
  readonly _shape: {
@@ -1842,6 +1942,27 @@ declare const PxAnimatorConfigSchema: PxSchema<{} & {
1842
1942
  autoOrient?: boolean | undefined;
1843
1943
  }>)[]> | undefined, true>;
1844
1944
  timelineSource: PxSchema<string | undefined, true>;
1945
+ scroll: PxSchema<({} & {
1946
+ driver?: "custom" | "native" | undefined;
1947
+ kind?: "view" | "scroll" | undefined;
1948
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1949
+ source?: "nearest" | "root" | undefined;
1950
+ subject?: string | undefined;
1951
+ smoothing?: number | undefined;
1952
+ pin?: boolean | undefined;
1953
+ pinTop?: number | undefined;
1954
+ pinDistance?: number | undefined;
1955
+ range?: ({} & {
1956
+ start?: ({} & {
1957
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1958
+ fraction?: number | undefined;
1959
+ }) | undefined;
1960
+ end?: ({} & {
1961
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1962
+ fraction?: number | undefined;
1963
+ }) | undefined;
1964
+ }) | undefined;
1965
+ }) | undefined, true>;
1845
1966
  debugInstName: PxSchema<string | undefined, true>;
1846
1967
  };
1847
1968
  };
@@ -17654,6 +17775,27 @@ declare const PxSvgNodeExtra: PxSchema<{} & {
17654
17775
  autoOrient?: boolean | undefined;
17655
17776
  }>)[]> | undefined;
17656
17777
  timelineSource?: string | undefined;
17778
+ scroll?: ({} & {
17779
+ driver?: "custom" | "native" | undefined;
17780
+ kind?: "view" | "scroll" | undefined;
17781
+ axis?: "x" | "y" | "block" | "inline" | undefined;
17782
+ source?: "nearest" | "root" | undefined;
17783
+ subject?: string | undefined;
17784
+ smoothing?: number | undefined;
17785
+ pin?: boolean | undefined;
17786
+ pinTop?: number | undefined;
17787
+ pinDistance?: number | undefined;
17788
+ range?: ({} & {
17789
+ start?: ({} & {
17790
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
17791
+ fraction?: number | undefined;
17792
+ }) | undefined;
17793
+ end?: ({} & {
17794
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
17795
+ fraction?: number | undefined;
17796
+ }) | undefined;
17797
+ }) | undefined;
17798
+ }) | undefined;
17657
17799
  debugInstName?: string | undefined;
17658
17800
  }) | undefined;
17659
17801
  }, false> & {
@@ -17944,6 +18086,27 @@ declare const PxSvgNodeExtra: PxSchema<{} & {
17944
18086
  autoOrient?: boolean | undefined;
17945
18087
  }>)[]> | undefined;
17946
18088
  timelineSource?: string | undefined;
18089
+ scroll?: ({} & {
18090
+ driver?: "custom" | "native" | undefined;
18091
+ kind?: "view" | "scroll" | undefined;
18092
+ axis?: "x" | "y" | "block" | "inline" | undefined;
18093
+ source?: "nearest" | "root" | undefined;
18094
+ subject?: string | undefined;
18095
+ smoothing?: number | undefined;
18096
+ pin?: boolean | undefined;
18097
+ pinTop?: number | undefined;
18098
+ pinDistance?: number | undefined;
18099
+ range?: ({} & {
18100
+ start?: ({} & {
18101
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18102
+ fraction?: number | undefined;
18103
+ }) | undefined;
18104
+ end?: ({} & {
18105
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18106
+ fraction?: number | undefined;
18107
+ }) | undefined;
18108
+ }) | undefined;
18109
+ }) | undefined;
17947
18110
  debugInstName?: string | undefined;
17948
18111
  }) | undefined, true>;
17949
18112
  };
@@ -18253,6 +18416,27 @@ declare const PxAnimatedSvgDocumentSchema: PxSchema<{
18253
18416
  autoOrient?: boolean | undefined;
18254
18417
  }>)[]> | undefined;
18255
18418
  timelineSource?: string | undefined;
18419
+ scroll?: ({} & {
18420
+ driver?: "custom" | "native" | undefined;
18421
+ kind?: "view" | "scroll" | undefined;
18422
+ axis?: "x" | "y" | "block" | "inline" | undefined;
18423
+ source?: "nearest" | "root" | undefined;
18424
+ subject?: string | undefined;
18425
+ smoothing?: number | undefined;
18426
+ pin?: boolean | undefined;
18427
+ pinTop?: number | undefined;
18428
+ pinDistance?: number | undefined;
18429
+ range?: ({} & {
18430
+ start?: ({} & {
18431
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18432
+ fraction?: number | undefined;
18433
+ }) | undefined;
18434
+ end?: ({} & {
18435
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18436
+ fraction?: number | undefined;
18437
+ }) | undefined;
18438
+ }) | undefined;
18439
+ }) | undefined;
18256
18440
  debugInstName?: string | undefined;
18257
18441
  }) | undefined;
18258
18442
  id?: string | undefined;
@@ -21222,6 +21406,27 @@ declare const PxAnimatedSvgDocumentSchema: PxSchema<{
21222
21406
  autoOrient?: boolean | undefined;
21223
21407
  }>)[]> | undefined;
21224
21408
  timelineSource?: string | undefined;
21409
+ scroll?: ({} & {
21410
+ driver?: "custom" | "native" | undefined;
21411
+ kind?: "view" | "scroll" | undefined;
21412
+ axis?: "x" | "y" | "block" | "inline" | undefined;
21413
+ source?: "nearest" | "root" | undefined;
21414
+ subject?: string | undefined;
21415
+ smoothing?: number | undefined;
21416
+ pin?: boolean | undefined;
21417
+ pinTop?: number | undefined;
21418
+ pinDistance?: number | undefined;
21419
+ range?: ({} & {
21420
+ start?: ({} & {
21421
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
21422
+ fraction?: number | undefined;
21423
+ }) | undefined;
21424
+ end?: ({} & {
21425
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
21426
+ fraction?: number | undefined;
21427
+ }) | undefined;
21428
+ }) | undefined;
21429
+ }) | undefined;
21225
21430
  debugInstName?: string | undefined;
21226
21431
  }) | undefined, true>;
21227
21432
  id: PxSchema<string | undefined, true>;
@@ -23979,6 +24184,53 @@ interface PxValidationResult {
23979
24184
  */
23980
24185
  declare function isPxElementFileFormatDeep(fileJson: any): PxValidationResult;
23981
24186
 
24187
+ /** Is this document scroll-driven? (`animator.timelineSource === 'scroll'`) */
24188
+ declare function isScrollTimeline(config: PxAnimatorConfig | undefined): boolean;
24189
+ /**
24190
+ * The seek-space length (ms) a scroll progress of 1 maps to: duration × finite
24191
+ * iterations. `'infinite'` is meaningless on a finite progress timeline (see design doc
24192
+ * D4) — treated as 1 with the read-side warning left to the consumer.
24193
+ */
24194
+ declare function scrollTotalDurationMs(config: PxAnimatorConfig | undefined): number;
24195
+ /**
24196
+ * A named phase's interval in `u`-space.
24197
+ *
24198
+ * `u` is the subject's "journey distance": with `sTop` = subject's leading edge in
24199
+ * scrollport coordinates, `u = vpSize − sTop` — 0 exactly when the subject is about to
24200
+ * enter (leading edge at the scrollport's trailing edge), growing as the user scrolls.
24201
+ * The `min`/`max` pairs make every formula valid BOTH for a subject smaller than the
24202
+ * scrollport and one larger than it (where "fully visible" flips to "covers the
24203
+ * scrollport") — the same case split CSS specifies for its named timeline ranges.
24204
+ */
24205
+ declare function scrollPhaseInterval(phase: PxScrollPhase, subjectSize: number, scrollportSize: number): [number, number];
24206
+ /**
24207
+ * `kind: 'view'` progress ∈ [0, 1]: where the subject's journey sits within the
24208
+ * configured range.
24209
+ *
24210
+ * @param subjectStart subject's leading edge in scrollport coordinates
24211
+ * (`subjectRect.top − scrollportRect.top` on the resolved axis)
24212
+ * @param subjectSize subject size on the axis
24213
+ * @param scrollportSize scrollport size on the axis
24214
+ *
24215
+ * A degenerate/inverted range (uStart ≥ uEnd — e.g. zero-size subject with an `entry`
24216
+ * range) reports 1 once the point is passed, 0 before — never NaN.
24217
+ */
24218
+ declare function scrollViewProgress(subjectStart: number, subjectSize: number, scrollportSize: number, range: PxScroll['range'] | undefined): number;
24219
+ /**
24220
+ * `kind: 'scroll'` progress ∈ [0, 1]: the scroller's offset ratio mapped through the
24221
+ * range (phases don't exist here — `fraction` is of the total scroll range).
24222
+ *
24223
+ * `maxOffset === 0` (nothing to scroll) reports 1, matching the CSS spec's rule that a
24224
+ * zero-length timeline is at 100%.
24225
+ */
24226
+ declare function scrollOffsetProgress(offset: number, maxOffset: number, range: PxScroll['range'] | undefined): number;
24227
+ /**
24228
+ * Resolve a logical axis to a physical one. `block`/`inline` are writing-mode relative:
24229
+ * in horizontal writing (`horizontal-tb`, the default) block flows vertically; in
24230
+ * vertical writing modes it flows horizontally.
24231
+ */
24232
+ declare function scrollResolveAxis(axis: PxScroll['axis'] | undefined, writingMode: string | undefined): 'x' | 'y';
24233
+
23982
24234
  /**
23983
24235
  * Converts a PxBezierPath to an SVG path string.
23984
24236
  * Control points (i, o) are treated as ABSOLUTE coordinates.
@@ -24486,4 +24738,4 @@ interface EffectDiff {
24486
24738
  */
24487
24739
  declare function diffInEffect(a: VmNode, b: VmNode): Array<EffectDiff>;
24488
24740
 
24489
- export { type ApplyResult, COLOUR_ATTR_NAMES, CSS_ONLY_STYLE_PROPS, DEFAULT_DURATION_MS, DISALLOWED_SVG_TAGS_LOWER, type ExtendPathOpts, type ExtendedPath, type FillMode, type GlyphCharBox, type GlyphCharBoxAlongPath, type GlyphMaterialiseOpts, INTERNAL_ATTRS, type JsMode, type KeysMatch, LOOP_JUMP_SHIFT_MS, type MaterialiseAllOptions, type MotionPathMaterialisationOptions, type MotionPathSample, type OutAction, PCT_BASED_ATTR_NAMES, PX_ANIM_ATTR_NAME, PX_ANIM_SRC_ATTR_NAME, PX_TRANSFORM_PART_KEYS, type PathPoint, type PathSampler, type PlaybackDirection, type PxAnimatable, type PxAnimatedSvgDocument, PxAnimatedSvgDocumentSchema, type PxAnimationDefinition, PxAnimationDefinitionSchema, type PxAnimatorAPI, type PxAnimatorCallbacksConfig, type PxAnimatorConfig, PxAnimatorConfigSchema, PxAnimatorEngine, PxAnimatorMode, type PxAttrValue, PxAttrValueSchema, type PxBasicAnimatorAPI, type PxBezierPath, PxBezierPathSchema, type PxBinding, PxBindingSchema, type PxCloneEffect, PxCloneEffectSchema, type PxCreateElement, type PxDefs, PxDefsSchema, PxEasingOrRefSchema, type PxEffects, PxEffectsSchema, type PxElementAnimation, PxElementAnimationSchema, type PxFillGradientEffect, PxFillGradientEffectSchema, type PxGlyph, type PxGlyphFont, PxGradientSpreadMethod, type PxGradientStop, PxGradientStopSchema, PxGradientType, PxGradientUnits, type PxInfer, type PxKeyframe, PxKeyframeSchema, PxKeyframeValueSchema, type PxLoop, PxLoopExtend, PxLoopSchema, type PxMaskedByEffect, PxMaskedByEffectSchema, type PxNode, PxNodeBase, PxNodeSchema, type PxPlatformAdapter, type PxPropertyAnimation, PxPropertyAnimationSchema, type PxRepeaterEffect, PxRepeaterEffectSchema, type PxRetimeEffect, PxRetimeEffectSchema, type PxSchema, type PxSchemaDesc, type PxStrokeGradientEffect, PxStrokeGradientEffectSchema, type PxSvgNode, PxSvgNodeExtra, PxTextEffectSchema, type PxTextPathEffect, PxTextPathEffectSchema, type PxTransformByEffect, PxTransformByEffectSchema, type PxTransformPartKey, type PxTransformParts, PxTransformPartsSchema, type PxTransformValue, PxTransformValueSchema, type PxTrigger, PxTriggerSchema, type PxTrimPathEffect, PxTrimPathEffectSchema, PxTrimSubPaths, type PxValidationContext, type PxValidationResult, type RemoveIndex, STYLE_ATTR_NAMES, type StartOn, TEXT_ATTR, TEXT_CONTENT_ATTR, TRANSFORM_FN_NAMES, type Vec2, applyPlayerEffects, bezierToSvgPath, calcAnimationValues, camelCaseToKebabWordIfNeeded, clamp, collectSampleTimes, composeTransformParts, createBasicFrameLoopAnimator, createPathSampler, cubicBezier, deepClone, describeSchema, diffInEffect, evaluateMotionPathSegment, extendedPathForBrowser, generateNewIds, generateUniqueId, getAnimatorConfig, getBindings, getChildren, getDefs, getNormalisedBindings, getNormalizedProps, interpolateBeziers, interpolateValue, isPxElementFileFormat, isPxElementFileFormatDeep, jsonElementFactory, kebabToCamelCaseWord, layoutGlyphTextChars, materialiseAllInTree, materialiseAnimatedUseInstances, materialiseGlyphText, materialiseGlyphTextAlongPath, materialiseGlyphTextHorizontal, materialiseInternalLoopsInPropAnim, materialiseInternalLoopsInTree, materialiseMotionPathInPropAnim, materialiseMotionPathsInTree, propAnimIsMotionPath, px, resolveStyle, reverseEasing, sanitiseAttributeValue, schemaKeys, shiftAnimatable, splitEasing, subdivideCubicBezier, toRGBA, validateNodeEffects, visualModelAt };
24741
+ export { type ApplyResult, COLOUR_ATTR_NAMES, CSS_ONLY_STYLE_PROPS, DEFAULT_DURATION_MS, DISALLOWED_SVG_TAGS_LOWER, type ExtendPathOpts, type ExtendedPath, type FillMode, type GlyphCharBox, type GlyphCharBoxAlongPath, type GlyphMaterialiseOpts, INTERNAL_ATTRS, type JsMode, type KeysMatch, LOOP_JUMP_SHIFT_MS, type MaterialiseAllOptions, type MotionPathMaterialisationOptions, type MotionPathSample, type OutAction, PCT_BASED_ATTR_NAMES, PX_ANIM_ATTR_NAME, PX_ANIM_SRC_ATTR_NAME, PX_TRANSFORM_PART_KEYS, type PathPoint, type PathSampler, type PlaybackDirection, type PxAnimatable, type PxAnimatedSvgDocument, PxAnimatedSvgDocumentSchema, type PxAnimationDefinition, PxAnimationDefinitionSchema, type PxAnimatorAPI, type PxAnimatorCallbacksConfig, type PxAnimatorConfig, PxAnimatorConfigSchema, PxAnimatorEngine, PxAnimatorMode, type PxAttrValue, PxAttrValueSchema, type PxBasicAnimatorAPI, type PxBezierPath, PxBezierPathSchema, type PxBinding, PxBindingSchema, type PxCloneEffect, PxCloneEffectSchema, type PxCreateElement, type PxDefs, PxDefsSchema, PxEasingOrRefSchema, type PxEffects, PxEffectsSchema, type PxElementAnimation, PxElementAnimationSchema, type PxFillGradientEffect, PxFillGradientEffectSchema, type PxGlyph, type PxGlyphFont, PxGradientSpreadMethod, type PxGradientStop, PxGradientStopSchema, PxGradientType, PxGradientUnits, type PxInfer, type PxKeyframe, PxKeyframeSchema, PxKeyframeValueSchema, type PxLoop, PxLoopExtend, PxLoopSchema, type PxMaskedByEffect, PxMaskedByEffectSchema, type PxNode, PxNodeBase, PxNodeSchema, type PxPlatformAdapter, type PxPropertyAnimation, PxPropertyAnimationSchema, type PxRepeaterEffect, PxRepeaterEffectSchema, type PxRetimeEffect, PxRetimeEffectSchema, type PxSchema, type PxSchemaDesc, type PxScroll, type PxScrollPhase, type PxScrollRangePoint, PxScrollRangePointSchema, PxScrollRangeSchema, PxScrollSchema, type PxStrokeGradientEffect, PxStrokeGradientEffectSchema, type PxSvgNode, PxSvgNodeExtra, PxTextEffectSchema, type PxTextPathEffect, PxTextPathEffectSchema, type PxTransformByEffect, PxTransformByEffectSchema, type PxTransformPartKey, type PxTransformParts, PxTransformPartsSchema, type PxTransformValue, PxTransformValueSchema, type PxTrigger, PxTriggerSchema, type PxTrimPathEffect, PxTrimPathEffectSchema, PxTrimSubPaths, type PxValidationContext, type PxValidationResult, type RemoveIndex, STYLE_ATTR_NAMES, type StartOn, TEXT_ATTR, TEXT_CONTENT_ATTR, TRANSFORM_FN_NAMES, type Vec2, applyPlayerEffects, bezierToSvgPath, calcAnimationValues, camelCaseToKebabWordIfNeeded, clamp, collectSampleTimes, composeTransformParts, createBasicFrameLoopAnimator, createPathSampler, cubicBezier, deepClone, describeSchema, diffInEffect, evaluateMotionPathSegment, extendedPathForBrowser, generateNewIds, generateUniqueId, getAnimatorConfig, getBindings, getChildren, getDefs, getNormalisedBindings, getNormalizedProps, interpolateBeziers, interpolateValue, isPxElementFileFormat, isPxElementFileFormatDeep, isScrollTimeline, jsonElementFactory, kebabToCamelCaseWord, layoutGlyphTextChars, materialiseAllInTree, materialiseAnimatedUseInstances, materialiseGlyphText, materialiseGlyphTextAlongPath, materialiseGlyphTextHorizontal, materialiseInternalLoopsInPropAnim, materialiseInternalLoopsInTree, materialiseMotionPathInPropAnim, materialiseMotionPathsInTree, propAnimIsMotionPath, px, resolveStyle, reverseEasing, sanitiseAttributeValue, schemaKeys, scrollOffsetProgress, scrollPhaseInterval, scrollResolveAxis, scrollTotalDurationMs, scrollViewProgress, shiftAnimatable, splitEasing, subdivideCubicBezier, toRGBA, validateNodeEffects, visualModelAt };
package/dist/index.d.ts CHANGED
@@ -1274,6 +1274,85 @@ declare const PxDefsSchema: PxSchema<{} & {
1274
1274
  };
1275
1275
  /** Reusable definitions library for easings, animations, and styles. */
1276
1276
  type PxDefs = PxInfer<typeof PxDefsSchema>;
1277
+ /** The subject's journey phases across the scrollport (see scroll-timeline.design.md §4
1278
+ * for the exact `u`-space intervals each phase maps to). */
1279
+ type PxScrollPhase = 'cover' | 'contain' | 'entry' | 'exit' | 'entry-crossing' | 'exit-crossing';
1280
+ declare const PxScrollRangePointSchema: PxSchema<{} & {
1281
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1282
+ fraction?: number | undefined;
1283
+ }, false> & {
1284
+ readonly _shape: {
1285
+ phase: PxSchema<"cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined, true>;
1286
+ fraction: PxSchema<number | undefined, true>;
1287
+ };
1288
+ };
1289
+ type PxScrollRangePoint = PxInfer<typeof PxScrollRangePointSchema>;
1290
+ /** The `range` sub-object — named so consumers can derive its keys. */
1291
+ declare const PxScrollRangeSchema: PxSchema<{} & {
1292
+ start?: ({} & {
1293
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1294
+ fraction?: number | undefined;
1295
+ }) | undefined;
1296
+ end?: ({} & {
1297
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1298
+ fraction?: number | undefined;
1299
+ }) | undefined;
1300
+ }, false> & {
1301
+ readonly _shape: {
1302
+ start: PxSchema<({} & {
1303
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1304
+ fraction?: number | undefined;
1305
+ }) | undefined, true>;
1306
+ end: PxSchema<({} & {
1307
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1308
+ fraction?: number | undefined;
1309
+ }) | undefined, true>;
1310
+ };
1311
+ };
1312
+ declare const PxScrollSchema: PxSchema<{} & {
1313
+ driver?: "custom" | "native" | undefined;
1314
+ kind?: "view" | "scroll" | undefined;
1315
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1316
+ source?: "nearest" | "root" | undefined;
1317
+ subject?: string | undefined;
1318
+ smoothing?: number | undefined;
1319
+ pin?: boolean | undefined;
1320
+ pinTop?: number | undefined;
1321
+ pinDistance?: number | undefined;
1322
+ range?: ({} & {
1323
+ start?: ({} & {
1324
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1325
+ fraction?: number | undefined;
1326
+ }) | undefined;
1327
+ end?: ({} & {
1328
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1329
+ fraction?: number | undefined;
1330
+ }) | undefined;
1331
+ }) | undefined;
1332
+ }, false> & {
1333
+ readonly _shape: {
1334
+ driver: PxSchema<"custom" | "native" | undefined, true>;
1335
+ kind: PxSchema<"view" | "scroll" | undefined, true>;
1336
+ axis: PxSchema<"x" | "y" | "block" | "inline" | undefined, true>;
1337
+ source: PxSchema<"nearest" | "root" | undefined, true>;
1338
+ subject: PxSchema<string | undefined, true>;
1339
+ smoothing: PxSchema<number | undefined, true>;
1340
+ pin: PxSchema<boolean | undefined, true>;
1341
+ pinTop: PxSchema<number | undefined, true>;
1342
+ pinDistance: PxSchema<number | undefined, true>;
1343
+ range: PxSchema<({} & {
1344
+ start?: ({} & {
1345
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1346
+ fraction?: number | undefined;
1347
+ }) | undefined;
1348
+ end?: ({} & {
1349
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1350
+ fraction?: number | undefined;
1351
+ }) | undefined;
1352
+ }) | undefined, true>;
1353
+ };
1354
+ };
1355
+ type PxScroll = PxInfer<typeof PxScrollSchema>;
1277
1356
  declare const PxAnimatorConfigSchema: PxSchema<{} & {
1278
1357
  mode?: "auto" | "waapi" | "frames" | undefined;
1279
1358
  duration?: number | undefined;
@@ -1557,6 +1636,27 @@ declare const PxAnimatorConfigSchema: PxSchema<{} & {
1557
1636
  autoOrient?: boolean | undefined;
1558
1637
  }>)[]> | undefined;
1559
1638
  timelineSource?: string | undefined;
1639
+ scroll?: ({} & {
1640
+ driver?: "custom" | "native" | undefined;
1641
+ kind?: "view" | "scroll" | undefined;
1642
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1643
+ source?: "nearest" | "root" | undefined;
1644
+ subject?: string | undefined;
1645
+ smoothing?: number | undefined;
1646
+ pin?: boolean | undefined;
1647
+ pinTop?: number | undefined;
1648
+ pinDistance?: number | undefined;
1649
+ range?: ({} & {
1650
+ start?: ({} & {
1651
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1652
+ fraction?: number | undefined;
1653
+ }) | undefined;
1654
+ end?: ({} & {
1655
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1656
+ fraction?: number | undefined;
1657
+ }) | undefined;
1658
+ }) | undefined;
1659
+ }) | undefined;
1560
1660
  debugInstName?: string | undefined;
1561
1661
  }, false> & {
1562
1662
  readonly _shape: {
@@ -1842,6 +1942,27 @@ declare const PxAnimatorConfigSchema: PxSchema<{} & {
1842
1942
  autoOrient?: boolean | undefined;
1843
1943
  }>)[]> | undefined, true>;
1844
1944
  timelineSource: PxSchema<string | undefined, true>;
1945
+ scroll: PxSchema<({} & {
1946
+ driver?: "custom" | "native" | undefined;
1947
+ kind?: "view" | "scroll" | undefined;
1948
+ axis?: "x" | "y" | "block" | "inline" | undefined;
1949
+ source?: "nearest" | "root" | undefined;
1950
+ subject?: string | undefined;
1951
+ smoothing?: number | undefined;
1952
+ pin?: boolean | undefined;
1953
+ pinTop?: number | undefined;
1954
+ pinDistance?: number | undefined;
1955
+ range?: ({} & {
1956
+ start?: ({} & {
1957
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1958
+ fraction?: number | undefined;
1959
+ }) | undefined;
1960
+ end?: ({} & {
1961
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
1962
+ fraction?: number | undefined;
1963
+ }) | undefined;
1964
+ }) | undefined;
1965
+ }) | undefined, true>;
1845
1966
  debugInstName: PxSchema<string | undefined, true>;
1846
1967
  };
1847
1968
  };
@@ -17654,6 +17775,27 @@ declare const PxSvgNodeExtra: PxSchema<{} & {
17654
17775
  autoOrient?: boolean | undefined;
17655
17776
  }>)[]> | undefined;
17656
17777
  timelineSource?: string | undefined;
17778
+ scroll?: ({} & {
17779
+ driver?: "custom" | "native" | undefined;
17780
+ kind?: "view" | "scroll" | undefined;
17781
+ axis?: "x" | "y" | "block" | "inline" | undefined;
17782
+ source?: "nearest" | "root" | undefined;
17783
+ subject?: string | undefined;
17784
+ smoothing?: number | undefined;
17785
+ pin?: boolean | undefined;
17786
+ pinTop?: number | undefined;
17787
+ pinDistance?: number | undefined;
17788
+ range?: ({} & {
17789
+ start?: ({} & {
17790
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
17791
+ fraction?: number | undefined;
17792
+ }) | undefined;
17793
+ end?: ({} & {
17794
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
17795
+ fraction?: number | undefined;
17796
+ }) | undefined;
17797
+ }) | undefined;
17798
+ }) | undefined;
17657
17799
  debugInstName?: string | undefined;
17658
17800
  }) | undefined;
17659
17801
  }, false> & {
@@ -17944,6 +18086,27 @@ declare const PxSvgNodeExtra: PxSchema<{} & {
17944
18086
  autoOrient?: boolean | undefined;
17945
18087
  }>)[]> | undefined;
17946
18088
  timelineSource?: string | undefined;
18089
+ scroll?: ({} & {
18090
+ driver?: "custom" | "native" | undefined;
18091
+ kind?: "view" | "scroll" | undefined;
18092
+ axis?: "x" | "y" | "block" | "inline" | undefined;
18093
+ source?: "nearest" | "root" | undefined;
18094
+ subject?: string | undefined;
18095
+ smoothing?: number | undefined;
18096
+ pin?: boolean | undefined;
18097
+ pinTop?: number | undefined;
18098
+ pinDistance?: number | undefined;
18099
+ range?: ({} & {
18100
+ start?: ({} & {
18101
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18102
+ fraction?: number | undefined;
18103
+ }) | undefined;
18104
+ end?: ({} & {
18105
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18106
+ fraction?: number | undefined;
18107
+ }) | undefined;
18108
+ }) | undefined;
18109
+ }) | undefined;
17947
18110
  debugInstName?: string | undefined;
17948
18111
  }) | undefined, true>;
17949
18112
  };
@@ -18253,6 +18416,27 @@ declare const PxAnimatedSvgDocumentSchema: PxSchema<{
18253
18416
  autoOrient?: boolean | undefined;
18254
18417
  }>)[]> | undefined;
18255
18418
  timelineSource?: string | undefined;
18419
+ scroll?: ({} & {
18420
+ driver?: "custom" | "native" | undefined;
18421
+ kind?: "view" | "scroll" | undefined;
18422
+ axis?: "x" | "y" | "block" | "inline" | undefined;
18423
+ source?: "nearest" | "root" | undefined;
18424
+ subject?: string | undefined;
18425
+ smoothing?: number | undefined;
18426
+ pin?: boolean | undefined;
18427
+ pinTop?: number | undefined;
18428
+ pinDistance?: number | undefined;
18429
+ range?: ({} & {
18430
+ start?: ({} & {
18431
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18432
+ fraction?: number | undefined;
18433
+ }) | undefined;
18434
+ end?: ({} & {
18435
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
18436
+ fraction?: number | undefined;
18437
+ }) | undefined;
18438
+ }) | undefined;
18439
+ }) | undefined;
18256
18440
  debugInstName?: string | undefined;
18257
18441
  }) | undefined;
18258
18442
  id?: string | undefined;
@@ -21222,6 +21406,27 @@ declare const PxAnimatedSvgDocumentSchema: PxSchema<{
21222
21406
  autoOrient?: boolean | undefined;
21223
21407
  }>)[]> | undefined;
21224
21408
  timelineSource?: string | undefined;
21409
+ scroll?: ({} & {
21410
+ driver?: "custom" | "native" | undefined;
21411
+ kind?: "view" | "scroll" | undefined;
21412
+ axis?: "x" | "y" | "block" | "inline" | undefined;
21413
+ source?: "nearest" | "root" | undefined;
21414
+ subject?: string | undefined;
21415
+ smoothing?: number | undefined;
21416
+ pin?: boolean | undefined;
21417
+ pinTop?: number | undefined;
21418
+ pinDistance?: number | undefined;
21419
+ range?: ({} & {
21420
+ start?: ({} & {
21421
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
21422
+ fraction?: number | undefined;
21423
+ }) | undefined;
21424
+ end?: ({} & {
21425
+ phase?: "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing" | undefined;
21426
+ fraction?: number | undefined;
21427
+ }) | undefined;
21428
+ }) | undefined;
21429
+ }) | undefined;
21225
21430
  debugInstName?: string | undefined;
21226
21431
  }) | undefined, true>;
21227
21432
  id: PxSchema<string | undefined, true>;
@@ -23979,6 +24184,53 @@ interface PxValidationResult {
23979
24184
  */
23980
24185
  declare function isPxElementFileFormatDeep(fileJson: any): PxValidationResult;
23981
24186
 
24187
+ /** Is this document scroll-driven? (`animator.timelineSource === 'scroll'`) */
24188
+ declare function isScrollTimeline(config: PxAnimatorConfig | undefined): boolean;
24189
+ /**
24190
+ * The seek-space length (ms) a scroll progress of 1 maps to: duration × finite
24191
+ * iterations. `'infinite'` is meaningless on a finite progress timeline (see design doc
24192
+ * D4) — treated as 1 with the read-side warning left to the consumer.
24193
+ */
24194
+ declare function scrollTotalDurationMs(config: PxAnimatorConfig | undefined): number;
24195
+ /**
24196
+ * A named phase's interval in `u`-space.
24197
+ *
24198
+ * `u` is the subject's "journey distance": with `sTop` = subject's leading edge in
24199
+ * scrollport coordinates, `u = vpSize − sTop` — 0 exactly when the subject is about to
24200
+ * enter (leading edge at the scrollport's trailing edge), growing as the user scrolls.
24201
+ * The `min`/`max` pairs make every formula valid BOTH for a subject smaller than the
24202
+ * scrollport and one larger than it (where "fully visible" flips to "covers the
24203
+ * scrollport") — the same case split CSS specifies for its named timeline ranges.
24204
+ */
24205
+ declare function scrollPhaseInterval(phase: PxScrollPhase, subjectSize: number, scrollportSize: number): [number, number];
24206
+ /**
24207
+ * `kind: 'view'` progress ∈ [0, 1]: where the subject's journey sits within the
24208
+ * configured range.
24209
+ *
24210
+ * @param subjectStart subject's leading edge in scrollport coordinates
24211
+ * (`subjectRect.top − scrollportRect.top` on the resolved axis)
24212
+ * @param subjectSize subject size on the axis
24213
+ * @param scrollportSize scrollport size on the axis
24214
+ *
24215
+ * A degenerate/inverted range (uStart ≥ uEnd — e.g. zero-size subject with an `entry`
24216
+ * range) reports 1 once the point is passed, 0 before — never NaN.
24217
+ */
24218
+ declare function scrollViewProgress(subjectStart: number, subjectSize: number, scrollportSize: number, range: PxScroll['range'] | undefined): number;
24219
+ /**
24220
+ * `kind: 'scroll'` progress ∈ [0, 1]: the scroller's offset ratio mapped through the
24221
+ * range (phases don't exist here — `fraction` is of the total scroll range).
24222
+ *
24223
+ * `maxOffset === 0` (nothing to scroll) reports 1, matching the CSS spec's rule that a
24224
+ * zero-length timeline is at 100%.
24225
+ */
24226
+ declare function scrollOffsetProgress(offset: number, maxOffset: number, range: PxScroll['range'] | undefined): number;
24227
+ /**
24228
+ * Resolve a logical axis to a physical one. `block`/`inline` are writing-mode relative:
24229
+ * in horizontal writing (`horizontal-tb`, the default) block flows vertically; in
24230
+ * vertical writing modes it flows horizontally.
24231
+ */
24232
+ declare function scrollResolveAxis(axis: PxScroll['axis'] | undefined, writingMode: string | undefined): 'x' | 'y';
24233
+
23982
24234
  /**
23983
24235
  * Converts a PxBezierPath to an SVG path string.
23984
24236
  * Control points (i, o) are treated as ABSOLUTE coordinates.
@@ -24486,4 +24738,4 @@ interface EffectDiff {
24486
24738
  */
24487
24739
  declare function diffInEffect(a: VmNode, b: VmNode): Array<EffectDiff>;
24488
24740
 
24489
- export { type ApplyResult, COLOUR_ATTR_NAMES, CSS_ONLY_STYLE_PROPS, DEFAULT_DURATION_MS, DISALLOWED_SVG_TAGS_LOWER, type ExtendPathOpts, type ExtendedPath, type FillMode, type GlyphCharBox, type GlyphCharBoxAlongPath, type GlyphMaterialiseOpts, INTERNAL_ATTRS, type JsMode, type KeysMatch, LOOP_JUMP_SHIFT_MS, type MaterialiseAllOptions, type MotionPathMaterialisationOptions, type MotionPathSample, type OutAction, PCT_BASED_ATTR_NAMES, PX_ANIM_ATTR_NAME, PX_ANIM_SRC_ATTR_NAME, PX_TRANSFORM_PART_KEYS, type PathPoint, type PathSampler, type PlaybackDirection, type PxAnimatable, type PxAnimatedSvgDocument, PxAnimatedSvgDocumentSchema, type PxAnimationDefinition, PxAnimationDefinitionSchema, type PxAnimatorAPI, type PxAnimatorCallbacksConfig, type PxAnimatorConfig, PxAnimatorConfigSchema, PxAnimatorEngine, PxAnimatorMode, type PxAttrValue, PxAttrValueSchema, type PxBasicAnimatorAPI, type PxBezierPath, PxBezierPathSchema, type PxBinding, PxBindingSchema, type PxCloneEffect, PxCloneEffectSchema, type PxCreateElement, type PxDefs, PxDefsSchema, PxEasingOrRefSchema, type PxEffects, PxEffectsSchema, type PxElementAnimation, PxElementAnimationSchema, type PxFillGradientEffect, PxFillGradientEffectSchema, type PxGlyph, type PxGlyphFont, PxGradientSpreadMethod, type PxGradientStop, PxGradientStopSchema, PxGradientType, PxGradientUnits, type PxInfer, type PxKeyframe, PxKeyframeSchema, PxKeyframeValueSchema, type PxLoop, PxLoopExtend, PxLoopSchema, type PxMaskedByEffect, PxMaskedByEffectSchema, type PxNode, PxNodeBase, PxNodeSchema, type PxPlatformAdapter, type PxPropertyAnimation, PxPropertyAnimationSchema, type PxRepeaterEffect, PxRepeaterEffectSchema, type PxRetimeEffect, PxRetimeEffectSchema, type PxSchema, type PxSchemaDesc, type PxStrokeGradientEffect, PxStrokeGradientEffectSchema, type PxSvgNode, PxSvgNodeExtra, PxTextEffectSchema, type PxTextPathEffect, PxTextPathEffectSchema, type PxTransformByEffect, PxTransformByEffectSchema, type PxTransformPartKey, type PxTransformParts, PxTransformPartsSchema, type PxTransformValue, PxTransformValueSchema, type PxTrigger, PxTriggerSchema, type PxTrimPathEffect, PxTrimPathEffectSchema, PxTrimSubPaths, type PxValidationContext, type PxValidationResult, type RemoveIndex, STYLE_ATTR_NAMES, type StartOn, TEXT_ATTR, TEXT_CONTENT_ATTR, TRANSFORM_FN_NAMES, type Vec2, applyPlayerEffects, bezierToSvgPath, calcAnimationValues, camelCaseToKebabWordIfNeeded, clamp, collectSampleTimes, composeTransformParts, createBasicFrameLoopAnimator, createPathSampler, cubicBezier, deepClone, describeSchema, diffInEffect, evaluateMotionPathSegment, extendedPathForBrowser, generateNewIds, generateUniqueId, getAnimatorConfig, getBindings, getChildren, getDefs, getNormalisedBindings, getNormalizedProps, interpolateBeziers, interpolateValue, isPxElementFileFormat, isPxElementFileFormatDeep, jsonElementFactory, kebabToCamelCaseWord, layoutGlyphTextChars, materialiseAllInTree, materialiseAnimatedUseInstances, materialiseGlyphText, materialiseGlyphTextAlongPath, materialiseGlyphTextHorizontal, materialiseInternalLoopsInPropAnim, materialiseInternalLoopsInTree, materialiseMotionPathInPropAnim, materialiseMotionPathsInTree, propAnimIsMotionPath, px, resolveStyle, reverseEasing, sanitiseAttributeValue, schemaKeys, shiftAnimatable, splitEasing, subdivideCubicBezier, toRGBA, validateNodeEffects, visualModelAt };
24741
+ export { type ApplyResult, COLOUR_ATTR_NAMES, CSS_ONLY_STYLE_PROPS, DEFAULT_DURATION_MS, DISALLOWED_SVG_TAGS_LOWER, type ExtendPathOpts, type ExtendedPath, type FillMode, type GlyphCharBox, type GlyphCharBoxAlongPath, type GlyphMaterialiseOpts, INTERNAL_ATTRS, type JsMode, type KeysMatch, LOOP_JUMP_SHIFT_MS, type MaterialiseAllOptions, type MotionPathMaterialisationOptions, type MotionPathSample, type OutAction, PCT_BASED_ATTR_NAMES, PX_ANIM_ATTR_NAME, PX_ANIM_SRC_ATTR_NAME, PX_TRANSFORM_PART_KEYS, type PathPoint, type PathSampler, type PlaybackDirection, type PxAnimatable, type PxAnimatedSvgDocument, PxAnimatedSvgDocumentSchema, type PxAnimationDefinition, PxAnimationDefinitionSchema, type PxAnimatorAPI, type PxAnimatorCallbacksConfig, type PxAnimatorConfig, PxAnimatorConfigSchema, PxAnimatorEngine, PxAnimatorMode, type PxAttrValue, PxAttrValueSchema, type PxBasicAnimatorAPI, type PxBezierPath, PxBezierPathSchema, type PxBinding, PxBindingSchema, type PxCloneEffect, PxCloneEffectSchema, type PxCreateElement, type PxDefs, PxDefsSchema, PxEasingOrRefSchema, type PxEffects, PxEffectsSchema, type PxElementAnimation, PxElementAnimationSchema, type PxFillGradientEffect, PxFillGradientEffectSchema, type PxGlyph, type PxGlyphFont, PxGradientSpreadMethod, type PxGradientStop, PxGradientStopSchema, PxGradientType, PxGradientUnits, type PxInfer, type PxKeyframe, PxKeyframeSchema, PxKeyframeValueSchema, type PxLoop, PxLoopExtend, PxLoopSchema, type PxMaskedByEffect, PxMaskedByEffectSchema, type PxNode, PxNodeBase, PxNodeSchema, type PxPlatformAdapter, type PxPropertyAnimation, PxPropertyAnimationSchema, type PxRepeaterEffect, PxRepeaterEffectSchema, type PxRetimeEffect, PxRetimeEffectSchema, type PxSchema, type PxSchemaDesc, type PxScroll, type PxScrollPhase, type PxScrollRangePoint, PxScrollRangePointSchema, PxScrollRangeSchema, PxScrollSchema, type PxStrokeGradientEffect, PxStrokeGradientEffectSchema, type PxSvgNode, PxSvgNodeExtra, PxTextEffectSchema, type PxTextPathEffect, PxTextPathEffectSchema, type PxTransformByEffect, PxTransformByEffectSchema, type PxTransformPartKey, type PxTransformParts, PxTransformPartsSchema, type PxTransformValue, PxTransformValueSchema, type PxTrigger, PxTriggerSchema, type PxTrimPathEffect, PxTrimPathEffectSchema, PxTrimSubPaths, type PxValidationContext, type PxValidationResult, type RemoveIndex, STYLE_ATTR_NAMES, type StartOn, TEXT_ATTR, TEXT_CONTENT_ATTR, TRANSFORM_FN_NAMES, type Vec2, applyPlayerEffects, bezierToSvgPath, calcAnimationValues, camelCaseToKebabWordIfNeeded, clamp, collectSampleTimes, composeTransformParts, createBasicFrameLoopAnimator, createPathSampler, cubicBezier, deepClone, describeSchema, diffInEffect, evaluateMotionPathSegment, extendedPathForBrowser, generateNewIds, generateUniqueId, getAnimatorConfig, getBindings, getChildren, getDefs, getNormalisedBindings, getNormalizedProps, interpolateBeziers, interpolateValue, isPxElementFileFormat, isPxElementFileFormatDeep, isScrollTimeline, jsonElementFactory, kebabToCamelCaseWord, layoutGlyphTextChars, materialiseAllInTree, materialiseAnimatedUseInstances, materialiseGlyphText, materialiseGlyphTextAlongPath, materialiseGlyphTextHorizontal, materialiseInternalLoopsInPropAnim, materialiseInternalLoopsInTree, materialiseMotionPathInPropAnim, materialiseMotionPathsInTree, propAnimIsMotionPath, px, resolveStyle, reverseEasing, sanitiseAttributeValue, schemaKeys, scrollOffsetProgress, scrollPhaseInterval, scrollResolveAxis, scrollTotalDurationMs, scrollViewProgress, shiftAnimatable, splitEasing, subdivideCubicBezier, toRGBA, validateNodeEffects, visualModelAt };