@ssgoi/core 7.1.3-beta.5 → 7.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/animation/animation.d.ts +21 -0
  2. package/dist/animation/animation.d.ts.map +1 -1
  3. package/dist/animation/host-animation.d.ts +28 -19
  4. package/dist/animation/host-animation.d.ts.map +1 -1
  5. package/dist/animation/multi-animation.d.ts +13 -2
  6. package/dist/animation/multi-animation.d.ts.map +1 -1
  7. package/dist/animation/web-animation.d.ts +69 -3
  8. package/dist/animation/web-animation.d.ts.map +1 -1
  9. package/dist/animation/web-presentation.d.ts +25 -0
  10. package/dist/animation/web-presentation.d.ts.map +1 -0
  11. package/dist/index.cjs +3 -3
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1206 -1184
  15. package/dist/internal.cjs +1 -1
  16. package/dist/internal.js +924 -631
  17. package/dist/{page-motion-MEazegOU.js → page-motion-CoPTk-Gd.js} +1 -1
  18. package/dist/{page-motion-DF3fFkOw.cjs → page-motion-Dhj3UfzO.cjs} +1 -1
  19. package/dist/provider-BLf6XeXT.js +291 -0
  20. package/dist/provider-JDtJ5Jzf.cjs +1 -0
  21. package/dist/retain-opacity-BFlsDhI7.cjs +1 -0
  22. package/dist/retain-opacity-Dvv9gi8-.js +1141 -0
  23. package/dist/runtime/index.d.ts +1 -0
  24. package/dist/runtime/index.d.ts.map +1 -1
  25. package/dist/runtime/motion-matching.d.ts +31 -0
  26. package/dist/runtime/motion-matching.d.ts.map +1 -0
  27. package/dist/runtime/timeline.d.ts +6 -2
  28. package/dist/runtime/timeline.d.ts.map +1 -1
  29. package/dist/runtime.cjs +1 -1
  30. package/dist/runtime.js +29 -25
  31. package/dist/ssgoi-transition/create-ssgoi-transition-context.d.ts.map +1 -1
  32. package/dist/transitions/blind/transition.d.ts.map +1 -1
  33. package/dist/transitions/crossfade.d.ts +1 -6
  34. package/dist/transitions/crossfade.d.ts.map +1 -1
  35. package/dist/transitions/film/transition.d.ts.map +1 -1
  36. package/dist/transitions/hero/in-place.d.ts +5 -2
  37. package/dist/transitions/hero/in-place.d.ts.map +1 -1
  38. package/dist/transitions/hero/provider/chrome/fade.d.ts.map +1 -1
  39. package/dist/transitions/hero/provider/chrome/static.d.ts.map +1 -1
  40. package/dist/transitions/hero/transition.d.ts.map +1 -1
  41. package/dist/transitions/hero/types.d.ts +2 -1
  42. package/dist/transitions/hero/types.d.ts.map +1 -1
  43. package/dist/transitions/shared-visibility.d.ts +2 -0
  44. package/dist/transitions/shared-visibility.d.ts.map +1 -0
  45. package/dist/transitions/sheet/transition.d.ts.map +1 -1
  46. package/dist/transitions/zoom/crossfade.d.ts.map +1 -1
  47. package/dist/transitions/zoom/provider/blur.d.ts.map +1 -1
  48. package/dist/transitions/zoom/transition.d.ts.map +1 -1
  49. package/dist/transitions/zoom/types.d.ts +2 -1
  50. package/dist/transitions/zoom/types.d.ts.map +1 -1
  51. package/dist/types/index.d.ts +4 -0
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/utils/index.d.ts +1 -0
  54. package/dist/utils/index.d.ts.map +1 -1
  55. package/dist/utils/retain-opacity.d.ts +7 -0
  56. package/dist/utils/retain-opacity.d.ts.map +1 -0
  57. package/package.json +1 -1
  58. package/dist/multi-animation-Du9W3ZS_.js +0 -503
  59. package/dist/multi-animation-hDUcfD7W.cjs +0 -1
  60. package/dist/provider-Cea0Pfm1.js +0 -232
  61. package/dist/provider-D9Q2URox.cjs +0 -1
@@ -1,6 +1,13 @@
1
1
  import { Animation as RuntimeAnimation } from '../runtime/animation';
2
2
  import { StyleObject } from '../runtime/motion-state';
3
+ import { WebAnimation } from './web-animation';
3
4
  import { Integrator } from './integrator/types';
5
+ export interface AnimationDisposal {
6
+ reason: "finished" | "interrupted" | "disposed";
7
+ /** Cleanup may touch a persistent target only while this execution owns it. */
8
+ owns: (element: HTMLElement) => boolean;
9
+ }
10
+ export declare const finishedDisposal: AnimationDisposal;
4
11
  /** A start dependency between siblings in the same composite. */
5
12
  export interface AnimationStart<TTarget = HTMLElement, TStyle = StyleObject> {
6
13
  after: Animation<TTarget, TStyle>;
@@ -16,6 +23,20 @@ export interface AnimationPatch<TTarget = HTMLElement, TStyle = StyleObject> {
16
23
  /** Web-compatible default; platform-neutral consumers use @ssgoi/core/runtime. */
17
24
  export declare abstract class Animation<TTarget = HTMLElement, TStyle = StyleObject> extends RuntimeAnimation<TTarget, TStyle> {
18
25
  private _startCondition;
26
+ /** Resource cleanup is separate from successfully reaching the authored goal. */
27
+ onDispose?: (context: AnimationDisposal) => void;
28
+ /** A composite retains child resources until all participating motion settles. */
29
+ deferDisposal: boolean;
30
+ /** Custom wrappers can expose their web tracks without host type checks. */
31
+ getMotionTracks(): readonly WebAnimation[];
32
+ /** Validate authored scheduling before a host transfers ownership. */
33
+ validate(): void;
34
+ /** Opaque custom drivers retain the explicit legacy finish-on-interrupt fallback. */
35
+ get supportsInterruption(): boolean;
36
+ /** Invalidate execution without disposing its retained resources. */
37
+ stop(): void;
38
+ /** Stop without seeking to an endpoint. Built-in drivers override this. */
39
+ cancel(context: AnimationDisposal): void;
19
40
  /** Scheduling metadata read by the parent immediately before playback. */
20
41
  get startCondition(): Readonly<AnimationStart<TTarget, TStyle>> | undefined;
21
42
  /** Retune this animation before playback; omitted values stay unchanged. */
@@ -1 +1 @@
1
- {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,iEAAiE;AACjE,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW;IACzE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,2EAA2E;IAC3E,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW;IACzE,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,kFAAkF;AAClF,8BAAsB,SAAS,CAC7B,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,WAAW,CACpB,SAAQ,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC;IACzC,OAAO,CAAC,eAAe,CAA8C;IAErE,0EAA0E;IAC1E,IAAI,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAE1E;IAED,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAyBjD,+EAA+E;IAC/E,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;CAGvD"}
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IAChD,+EAA+E;IAC/E,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,gBAAgB,EAAE,iBAG9B,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW;IACzE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,2EAA2E;IAC3E,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW;IACzE,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,kFAAkF;AAClF,8BAAsB,SAAS,CAC7B,OAAO,GAAG,WAAW,EACrB,MAAM,GAAG,WAAW,CACpB,SAAQ,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC;IACzC,OAAO,CAAC,eAAe,CAA8C;IAErE,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,kFAAkF;IAClF,aAAa,UAAS;IAEtB,4EAA4E;IAC5E,eAAe,IAAI,SAAS,YAAY,EAAE;IAI1C,sEAAsE;IACtE,QAAQ,IAAI,IAAI;IAEhB,qFAAqF;IACrF,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,qEAAqE;IACrE,IAAI,IAAI,IAAI;IAIZ,2EAA2E;IAC3E,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAKxC,0EAA0E;IAC1E,IAAI,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAE1E;IAED,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAyBjD,+EAA+E;IAC/E,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;CAGvD"}
@@ -1,30 +1,40 @@
1
1
  import { Pose, Timeline } from '../types/index.ts';
2
- import { Animation } from './animation';
3
- /**
4
- * Long-lived container that owns the playback state of a `<Ssgoi>` context
5
- * across many transitions. Each new transition's Animation is handed in via
6
- * `attach()`, which:
7
- *
8
- * 1. Samples the live pose of the prior child and feeds it to the new one
9
- * via `matchInto` so motion is continuous.
10
- * 2. Completes the prior child so its `onComplete` cleanups fire.
11
- * 3. Carries over the host's playbackRate and play/pause/reverse state.
12
- * 4. Hooks the child's `onComplete` / `onUpdate` to drive the host's own
13
- * listeners (used by dev tools).
14
- *
15
- * The host is also a valid `Animation` itself — its lifecycle methods delegate
16
- * to the active child while preserving state when no child is attached.
17
- */
2
+ import { Animation, AnimationDisposal } from './animation';
3
+ export interface HandoffEvent {
4
+ kind: "element" | "key" | "enter" | "ambiguous" | "release" | "fallback";
5
+ target?: HTMLElement;
6
+ key?: string;
7
+ channels?: readonly string[];
8
+ fallback?: "crossfade" | "finish";
9
+ }
10
+ export interface HostAttachOptions {
11
+ /** Presence is independent of tracks: blind/static hero can leave pages unanimated. */
12
+ targets?: readonly HTMLElement[];
13
+ }
14
+ /** A transition scope owns live presentation, replaceable choreography, and retirement. */
18
15
  export declare class HostAnimation extends Animation {
19
16
  private child;
17
+ private run;
18
+ private retiring;
19
+ private owners;
20
+ private epoch;
21
+ private prepared;
20
22
  private _state;
21
23
  private _settled;
22
24
  private listeners;
23
- attach(next: Animation): void;
25
+ onHandoff?: (events: readonly HandoffEvent[]) => void;
26
+ /** Called before effect prepare mutates reused elements or measures anchors. */
27
+ prepareHandoff(): void;
28
+ attach(next: Animation, options?: HostAttachOptions): void;
29
+ private sceneSnapshots;
30
+ private disposal;
31
+ private retire;
32
+ private disposeRetiring;
24
33
  play(): void;
25
34
  reverse(): void;
26
35
  pause(): void;
27
36
  complete(): void;
37
+ cancel(context: AnimationDisposal): void;
28
38
  get isAnimating(): boolean;
29
39
  get isPaused(): boolean;
30
40
  get isComplete(): boolean;
@@ -36,9 +46,8 @@ export declare class HostAnimation extends Animation {
36
46
  getPose(): Pose[];
37
47
  getTimeline(): Timeline[];
38
48
  matchInto(poses: Pose[]): void;
39
- /** Currently attached child, or null when nothing is playing. */
40
49
  get activeChild(): Animation | null;
41
- /** Subscribe to host state changes. Returns an unsubscribe fn. */
50
+ get retiringCount(): number;
42
51
  subscribe(fn: () => void): () => void;
43
52
  private notify;
44
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/host-animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAyB;IAE1C,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IA4C7B,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;IAOf,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,IAAI;IAKhB,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIrD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAI5B;IAED,OAAO,IAAI,IAAI,EAAE;IAGjB,WAAW,IAAI,QAAQ,EAAE;IAGzB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAI9B,iEAAiE;IACjE,IAAI,WAAW,IAAI,SAAS,GAAG,IAAI,CAElC;IAED,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAOrC,OAAO,CAAC,MAAM;CAGf"}
1
+ {"version":3,"file":"host-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/host-animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiBhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;CACnC;AACD,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAClC;AAMD,2FAA2F;AAC3F,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAyB;IAC1C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAC;IAEtD,gFAAgF;IAChF,cAAc,IAAI,IAAI;IAQtB,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAuL9D,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,MAAM;IA4Fd,OAAO,CAAC,eAAe;IAUvB,IAAI,IAAI,IAAI;IAQZ,OAAO,IAAI,IAAI;IAMf,KAAK,IAAI,IAAI;IAOb,QAAQ,IAAI,IAAI;IAMhB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAWxC,IAAI,WAAW,IAAI,OAAO,CAKzB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAGrD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAM5B;IACD,OAAO,IAAI,IAAI,EAAE;IAGjB,WAAW,IAAI,QAAQ,EAAE;IAGzB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAG9B,IAAI,WAAW,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAI,aAAa,IAAI,MAAM,CAE1B;IACD,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAMrC,OAAO,CAAC,MAAM;CAGf"}
@@ -1,5 +1,5 @@
1
1
  import { PhysicsOptions, Pose, Timeline } from '../types/index.ts';
2
- import { Animation, AnimationPatch } from './animation';
2
+ import { Animation, AnimationPatch, AnimationDisposal } from './animation';
3
3
  import { Integrator } from './integrator';
4
4
  import { WebAnimation } from './web-animation';
5
5
  export interface TrackPatch {
@@ -40,6 +40,11 @@ export declare class MultiAnimation<Name extends string = string> extends Animat
40
40
  private runId;
41
41
  private pendingComplete;
42
42
  private running;
43
+ private disposed;
44
+ private settled;
45
+ private startedChildren;
46
+ private lastMethod;
47
+ private pausedRun;
43
48
  private pendingStartObservers;
44
49
  constructor(children: readonly Animation[] | Record<Name, Animation>, opts?: MultiAnimationOptions);
45
50
  /** Child animations in play order. */
@@ -52,6 +57,8 @@ export declare class MultiAnimation<Name extends string = string> extends Animat
52
57
  set startAt(value: number[]);
53
58
  /** Every `WebAnimation` in this composite, nested composites included. */
54
59
  tracks(): WebAnimation[];
60
+ getMotionTracks(): readonly WebAnimation[];
61
+ validate(): void;
55
62
  /** Select a registered child, which may itself be a composite. */
56
63
  select(name: Name): Animation;
57
64
  set(patch: AnimationPatch): this;
@@ -63,10 +70,14 @@ export declare class MultiAnimation<Name extends string = string> extends Animat
63
70
  reverse(): void;
64
71
  pause(): void;
65
72
  complete(): void;
73
+ get supportsInterruption(): boolean;
74
+ stop(): void;
75
+ cancel(context: AnimationDisposal): void;
76
+ private disposeResources;
66
77
  get progress(): number;
67
78
  getPose(): Pose[];
68
79
  getTimeline(): Timeline[];
69
- matchInto(_poses: Pose[]): void;
80
+ matchInto(poses: Pose[]): void;
70
81
  get isAnimating(): boolean;
71
82
  get isPaused(): boolean;
72
83
  get isComplete(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"multi-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/multi-animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,UAAU,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;CAC1C;AAQD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,qBAAqB,CAAyB;gBAGpD,QAAQ,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EACxD,IAAI,GAAE,qBAA0B;IA4BlC,sCAAsC;IACtC,IAAI,QAAQ,IAAI,SAAS,SAAS,EAAE,CAEnC;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAE1B;IAED,0EAA0E;IAC1E,MAAM,IAAI,YAAY,EAAE;IASxB,kEAAkE;IAClE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;IAM7B,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAChC,2DAA2D;IAC3D,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAYxC,yEAAyE;IACzE,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIrD,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,IAAI;IAIf,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,IAAI;IAQhB,IAAI,QAAQ,IAAI,MAAM,CAKrB;IAED,OAAO,IAAI,IAAI,EAAE;IAIjB,WAAW,IAAI,QAAQ,EAAE;IAIzB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;IAO/B,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,QAAQ,IAAI,OAAO,CAKtB;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAG5B;IAID,OAAO,CAAC,QAAQ;IA6DhB,OAAO,CAAC,iBAAiB;IA2CzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,cAAc;IAQtB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAMvD"}
1
+ {"version":3,"file":"multi-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/multi-animation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,27 @@
1
1
  import { Pose, StyleObject, Timeline } from '../types/index.ts';
2
2
  import { Integrator } from './integrator';
3
- import { Animation } from './animation';
3
+ import { Animation, AnimationDisposal } from './animation';
4
+ import { MotionSnapshot } from '../runtime/motion-matching';
5
+ import { PresentationCodec } from './web-presentation';
6
+ export interface WebMotionOptions {
7
+ /** Semantic identity, scoped by HostAnimation; never inferred from array position. */
8
+ key?: string;
9
+ role?: string;
10
+ space?: unknown;
11
+ lifetime?: "persistent" | "temporary";
12
+ codec?: PresentationCodec;
13
+ /** Time allowed for the old path's residual to disappear, in milliseconds. */
14
+ handoffDuration?: number;
15
+ /** Default for disappearing targets is a short fade. */
16
+ release?: "fade" | "remove" | ((snapshot: MotionSnapshot<HTMLElement>) => WebAnimation);
17
+ /** Opaque/incompatible CSS can crossfade a frozen copy, or explicitly finish. */
18
+ fallback?: "crossfade" | "finish";
19
+ }
20
+ export interface WebMotionSnapshot extends MotionSnapshot<HTMLElement> {
21
+ displayStyle: StyleObject;
22
+ inlineStyle: string;
23
+ frame?: PresentationCodec["frame"];
24
+ }
4
25
  export interface WebAnimationOptions {
5
26
  element: HTMLElement;
6
27
  integrator: Integrator;
@@ -17,6 +38,8 @@ export interface WebAnimationOptions {
17
38
  * identity so user overrides can address tracks by role.
18
39
  */
19
40
  label?: string;
41
+ motion?: WebMotionOptions;
42
+ onDispose?: (context: AnimationDisposal) => void;
20
43
  }
21
44
  /**
22
45
  * Single-element animation driven by an Integrator simulation, played through
@@ -38,8 +61,8 @@ export interface WebAnimationOptions {
38
61
  * using WAAPI's `currentTime`, so browser setup latency is not counted as
39
62
  * animation progress.
40
63
  *
41
- * Identity for motion matching is the DOM element itself — when a previous
42
- * animation's pose is handed in via `matchInto`, we look up by element.
64
+ * Scalar matchInto is a legacy, same-coordinate operation. Host handoff uses
65
+ * scoped target identities and typed presentation channels instead.
43
66
  */
44
67
  export declare class WebAnimation extends Animation {
45
68
  private readonly _element;
@@ -51,6 +74,10 @@ export declare class WebAnimation extends Animation {
51
74
  private upperBound;
52
75
  private currentValue;
53
76
  private currentVelocity;
77
+ private solverState;
78
+ private solverTarget;
79
+ private presentationTime;
80
+ private renderedStyles;
54
81
  private frames;
55
82
  private waapi;
56
83
  private runId;
@@ -63,6 +90,18 @@ export declare class WebAnimation extends Animation {
63
90
  private paused;
64
91
  private settled;
65
92
  private reversing;
93
+ private disposed;
94
+ private readonly legacyCompletionCleanup;
95
+ readonly motion: WebMotionOptions;
96
+ private codec;
97
+ private adopted;
98
+ private presentationFrames;
99
+ private hold;
100
+ private fallbackCopy;
101
+ private fallbackChannels;
102
+ private fallbackMode;
103
+ get handoffFallbackMode(): "crossfade" | "finish" | undefined;
104
+ get handoffFallbacks(): readonly string[];
66
105
  constructor(opts: WebAnimationOptions);
67
106
  /** The DOM node this track drives. */
68
107
  get element(): HTMLElement;
@@ -78,6 +117,26 @@ export declare class WebAnimation extends Animation {
78
117
  reverse(): void;
79
118
  pause(): void;
80
119
  complete(): void;
120
+ validate(): void;
121
+ getMotionTracks(): readonly WebAnimation[];
122
+ get supportsInterruption(): boolean;
123
+ stop(): void;
124
+ cancel(context: AnimationDisposal): void;
125
+ private disposeResources;
126
+ private finish;
127
+ get motionIdentity(): {
128
+ target: HTMLElement;
129
+ key: string | undefined;
130
+ role: string | undefined;
131
+ space: unknown;
132
+ lifetime: "persistent" | "temporary" | undefined;
133
+ };
134
+ /** Final output, including any earlier residual, is the next handoff's source. */
135
+ getMotionSnapshot(): WebMotionSnapshot;
136
+ adopt(snapshot: MotionSnapshot<HTMLElement>): void;
137
+ /** Presentation channels of frame `index`, corrected when a handoff applied. */
138
+ private channelsAt;
139
+ private samplePresentation;
81
140
  /**
82
141
  * Drop the WAAPI forwards-fill after the run has settled, letting inline
83
142
  * styles govern the resting visual. Call only from `onComplete` (the run is
@@ -98,6 +157,13 @@ export declare class WebAnimation extends Animation {
98
157
  getTimeline(): Timeline[];
99
158
  matchInto(poses: Pose[]): void;
100
159
  private runToward;
160
+ /**
161
+ * Bake the residual correction into the keyframes: each authored frame is
162
+ * decoded through the codec, offset by the decaying residual, and encoded
163
+ * back. `presentationFrames` records the corrected output so a later
164
+ * interruption samples what is actually displayed.
165
+ */
166
+ private bridgeKeyframes;
101
167
  private clearWaapi;
102
168
  private captureLiveState;
103
169
  private startWhenReady;
@@ -1 +1 @@
1
- {"version":3,"file":"web-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/web-animation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-animation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/web-animation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { StyleObject } from '../runtime/motion-state';
2
+ import { MotionChannel } from '../runtime/motion-matching';
3
+ export interface PresentationCodec {
4
+ readonly frame?: {
5
+ left: number;
6
+ top: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ /** Codecs must use stable schemas and physical units across effects. */
11
+ read(style: StyleObject): Record<string, MotionChannel>;
12
+ write(channels: Readonly<Record<string, MotionChannel>>): StyleObject;
13
+ }
14
+ type Matrix = [number, number, number, number, number, number];
15
+ /** Normalize the 2D transform vocabulary used by page/shared-media effects. */
16
+ export declare function readTransform(value: string, width: number, height: number): Matrix | null;
17
+ /**
18
+ * A planar homography maps a normalized element box into viewport coordinates.
19
+ * Affine translation/rotation/scale/shear and perspective are separate channels:
20
+ * this preserves rotation instead of linearly collapsing a rotation matrix.
21
+ * 3D surfaces are supported as projected planes, not arbitrary 3D scenes.
22
+ */
23
+ export declare function createWebPresentationCodec(element: HTMLElement): PresentationCodec;
24
+ export {};
25
+ //# sourceMappingURL=web-presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-presentation.d.ts","sourceRoot":"","sources":["../../src/lib/animation/web-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxD,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,WAAW,CAAC;CACvE;AAED,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAyB/D,+EAA+E;AAC/E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAkDf;AAiFD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,GACnB,iBAAiB,CA+InB"}