@infinityfx/lively 4.0.4 → 4.0.6

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 (96) hide show
  1. package/.rollup.cache/F/projects/code/lively/dist/animatable.js +147 -0
  2. package/.rollup.cache/F/projects/code/lively/dist/animatable.js.map +1 -0
  3. package/.rollup.cache/F/projects/code/lively/dist/animate.js +26 -0
  4. package/.rollup.cache/F/projects/code/lively/dist/animate.js.map +1 -0
  5. package/.rollup.cache/F/projects/code/lively/dist/core/action.js +28 -0
  6. package/.rollup.cache/F/projects/code/lively/dist/core/action.js.map +1 -0
  7. package/.rollup.cache/F/projects/code/lively/dist/core/cache.js +55 -0
  8. package/.rollup.cache/F/projects/code/lively/dist/core/cache.js.map +1 -0
  9. package/.rollup.cache/F/projects/code/lively/dist/core/clip.js +71 -0
  10. package/.rollup.cache/F/projects/code/lively/dist/core/clip.js.map +1 -0
  11. package/.rollup.cache/F/projects/code/lively/dist/core/link.js +39 -0
  12. package/.rollup.cache/F/projects/code/lively/dist/core/link.js.map +1 -0
  13. package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js +107 -0
  14. package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js.map +1 -0
  15. package/.rollup.cache/F/projects/code/lively/dist/core/track.js +147 -0
  16. package/.rollup.cache/F/projects/code/lively/dist/core/track.js.map +1 -0
  17. package/.rollup.cache/F/projects/code/lively/dist/core/utils.js +95 -0
  18. package/.rollup.cache/F/projects/code/lively/dist/core/utils.js.map +1 -0
  19. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js +63 -0
  20. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js.map +1 -0
  21. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js +7 -0
  22. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js.map +1 -0
  23. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js +15 -0
  24. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js.map +1 -0
  25. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js +14 -0
  26. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js.map +1 -0
  27. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js +21 -0
  28. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js.map +1 -0
  29. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js +37 -0
  30. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js.map +1 -0
  31. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js +15 -0
  32. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js.map +1 -0
  33. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js +27 -0
  34. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js.map +1 -0
  35. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js +26 -0
  36. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js.map +1 -0
  37. package/.rollup.cache/F/projects/code/lively/dist/hooks.js +11 -0
  38. package/.rollup.cache/F/projects/code/lively/dist/hooks.js.map +1 -0
  39. package/.rollup.cache/F/projects/code/lively/dist/index.js +4 -0
  40. package/.rollup.cache/F/projects/code/lively/dist/index.js.map +1 -0
  41. package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js +209 -0
  42. package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js.map +1 -0
  43. package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js +48 -0
  44. package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js.map +1 -0
  45. package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js +21 -0
  46. package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js.map +1 -0
  47. package/.rollup.cache/F/projects/code/lively/dist/layout.js +5 -0
  48. package/.rollup.cache/F/projects/code/lively/dist/layout.js.map +1 -0
  49. package/.rollup.cache/F/projects/code/lively/dist/tsconfig.tsbuildinfo +1 -0
  50. package/.rollup.cache/F/projects/code/lively/dist/types/animatable.d.ts +112 -0
  51. package/.rollup.cache/F/projects/code/lively/dist/types/animate.d.ts +19 -0
  52. package/.rollup.cache/F/projects/code/lively/dist/types/core/action.d.ts +15 -0
  53. package/.rollup.cache/F/projects/code/lively/dist/types/core/cache.d.ts +23 -0
  54. package/.rollup.cache/F/projects/code/lively/dist/types/core/clip.d.ts +52 -0
  55. package/.rollup.cache/F/projects/code/lively/dist/types/core/link.d.ts +14 -0
  56. package/.rollup.cache/F/projects/code/lively/dist/types/core/timeline.d.ts +41 -0
  57. package/.rollup.cache/F/projects/code/lively/dist/types/core/track.d.ts +32 -0
  58. package/.rollup.cache/F/projects/code/lively/dist/types/core/utils.d.ts +39 -0
  59. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-audio.d.ts +7 -0
  60. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-link.d.ts +1 -0
  61. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-path.d.ts +1 -0
  62. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-reduced-motion.d.ts +1 -0
  63. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-scroll.d.ts +9 -0
  64. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-spring.d.ts +6 -0
  65. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-trigger.d.ts +4 -0
  66. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-viewport.d.ts +2 -0
  67. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-visible.d.ts +6 -0
  68. package/.rollup.cache/F/projects/code/lively/dist/types/hooks.d.ts +10 -0
  69. package/.rollup.cache/F/projects/code/lively/dist/types/index.d.ts +3 -0
  70. package/.rollup.cache/F/projects/code/lively/dist/types/layout/layout-group.d.ts +16 -0
  71. package/.rollup.cache/F/projects/code/lively/dist/types/layout/morph.d.ts +24 -0
  72. package/.rollup.cache/F/projects/code/lively/dist/types/layout/typable.d.ts +11 -0
  73. package/.rollup.cache/F/projects/code/lively/dist/types/layout.d.ts +4 -0
  74. package/dist/animatable.js +1 -1
  75. package/dist/animate.js +1 -1
  76. package/dist/core/action.js +1 -1
  77. package/dist/core/action.js.map +1 -1
  78. package/dist/core/cache.js +1 -1
  79. package/dist/core/cache.js.map +1 -1
  80. package/dist/core/clip.js +1 -1
  81. package/dist/core/clip.js.map +1 -1
  82. package/dist/core/timeline.js +1 -1
  83. package/dist/core/timeline.js.map +1 -1
  84. package/dist/core/track.js +1 -1
  85. package/dist/core/track.js.map +1 -1
  86. package/dist/core/utils.js +1 -1
  87. package/dist/core/utils.js.map +1 -1
  88. package/dist/hooks/use-audio.js +1 -1
  89. package/dist/hooks/use-scroll.js +1 -1
  90. package/dist/layout/layout-group.js +1 -1
  91. package/dist/layout/morph.js +1 -1
  92. package/dist/layout/typable.js +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -0
  94. package/dist/types/core/utils.d.ts +1 -0
  95. package/package.json +1 -1
  96. package/tsconfig.json +4 -2
@@ -0,0 +1,41 @@
1
+ import { CachableKey } from "./cache";
2
+ import Clip, { ClipProperties, CompositeType } from "./clip";
3
+ import Track, { TransitionOptions } from "./track";
4
+ import { IndexedMap } from "./utils";
5
+ export type PlayOptions = {
6
+ composite?: CompositeType;
7
+ immediate?: boolean;
8
+ reverse?: boolean;
9
+ delay?: number;
10
+ commit?: boolean;
11
+ };
12
+ export default class Timeline {
13
+ index: number;
14
+ stagger: number;
15
+ staggerLimit: number;
16
+ deform: boolean;
17
+ cachable?: CachableKey[];
18
+ paused: boolean;
19
+ tracks: IndexedMap<Element, Track>;
20
+ frame: number;
21
+ linked: (() => void)[];
22
+ mounted: boolean;
23
+ mountClips: Clip[];
24
+ constructor({ stagger, staggerLimit, deform, cachable, mountClips }: {
25
+ stagger?: number;
26
+ staggerLimit?: number;
27
+ deform?: boolean;
28
+ cachable?: CachableKey[];
29
+ mountClips: Clip[];
30
+ });
31
+ step(): void;
32
+ time(clip: Clip): number;
33
+ private receiver;
34
+ link(clip?: ClipProperties | Clip): void;
35
+ unlink(): void;
36
+ transition(from: Timeline | undefined, options?: TransitionOptions): void;
37
+ insert(element: any): void;
38
+ add(clip: Clip, { immediate, composite, reverse, delay, commit }: PlayOptions): void;
39
+ pause(value: boolean): void;
40
+ cache(): void;
41
+ }
@@ -0,0 +1,32 @@
1
+ import type Action from "./action";
2
+ import { CachableKey, StyleCache } from "./cache";
3
+ import type { Easing } from "./clip";
4
+ export type TransitionOptions = {
5
+ duration?: number;
6
+ easing?: Easing;
7
+ reverse?: boolean;
8
+ };
9
+ export default class Track {
10
+ element: HTMLElement | SVGElement;
11
+ deform: boolean;
12
+ playing: number;
13
+ active: Action[];
14
+ queue: Action[];
15
+ cache: StyleCache;
16
+ paused: boolean;
17
+ scale: [number, number];
18
+ corrected: {
19
+ borderRadius: string;
20
+ boxShadow: string;
21
+ };
22
+ constructor(element: HTMLElement | SVGElement, deform: boolean, cachable?: CachableKey[]);
23
+ push(action: Action): void;
24
+ next(): void;
25
+ clear(partial?: boolean): void;
26
+ pause(value: boolean): void;
27
+ step(index: number): void;
28
+ transition(previous: Track | undefined, options: TransitionOptions): void;
29
+ apply(prop: string, val: any): void;
30
+ decomposeScale(): [number, number];
31
+ correct(): void;
32
+ }
@@ -0,0 +1,39 @@
1
+ import type { AnimatableKeyframe } from "./clip";
2
+ import type Track from "./track";
3
+ type SharedKeys<T, P> = keyof Omit<T | P, keyof (Omit<T, keyof P> & Omit<P, keyof T>)>;
4
+ type MergedMaps<T, P> = T & P & {
5
+ [K in SharedKeys<T, P>]: MergedPair<T[K], P[K]>;
6
+ };
7
+ type MergedPair<T, P> = [T, P] extends [{
8
+ [key: string]: unknown;
9
+ }, {
10
+ [key: string]: unknown;
11
+ }] ? MergedMaps<T, P> : T & P;
12
+ type Merged<T extends [...any]> = T extends [infer L, ...infer R] ? MergedPair<L, Merged<R>> : unknown;
13
+ export declare function merge<T extends {
14
+ [key: string]: any;
15
+ }[]>(...objects: T): Merged<T>;
16
+ export declare function pick<T extends {
17
+ [key: string]: any;
18
+ }, K extends keyof T>(map: T, keys: K[]): { [key in K]: T[K]; };
19
+ export declare function combineRefs(...refs: (React.Ref<any> | undefined)[]): (el: any) => void;
20
+ export declare const limitSmallestQuantity: (val: number, e: number) => number;
21
+ export declare const lengthToOffset: (val: any) => number;
22
+ export declare class IndexedMap<K, V> extends Map<K, V> {
23
+ stack: V[];
24
+ set(key: K, value: V): this;
25
+ delete(key: K): boolean;
26
+ }
27
+ type AnimatableObjectProperty = {
28
+ value?: string | number;
29
+ after?: string | number;
30
+ offset: number;
31
+ };
32
+ export declare function distributeAnimatableKeyframes(prop: string, keyframes: AnimatableObjectProperty[], map?: {
33
+ [key: number]: Keyframe;
34
+ }): {
35
+ [key: number]: Keyframe;
36
+ };
37
+ export declare function normalizeAnimatableKeyframes(keyframes: (AnimatableKeyframe | undefined)[]): boolean;
38
+ export declare function createDynamic(prop: string, keyframes: Keyframe[], easing: string): (this: Track, t: number) => string;
39
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Link } from "../core/link";
2
+ export default function useAudio({ bands, minFrequency, maxFrequency, smoothing }?: {
3
+ bands?: number | undefined;
4
+ minFrequency?: number | undefined;
5
+ maxFrequency?: number | undefined;
6
+ smoothing?: number | undefined;
7
+ }): [React.RefObject<HTMLAudioElement | null>, Link<number[]>];
@@ -0,0 +1 @@
1
+ export default function useLink<T = any>(initial: T): import("../core/link").Link<T>;
@@ -0,0 +1 @@
1
+ export default function usePath<T extends SVGGeometryElement = any>(): [React.Ref<T>, (transform: (value: [number, number], index: number) => any) => (progress: number, index: number) => any];
@@ -0,0 +1 @@
1
+ export default function useReducedMotion(): boolean;
@@ -0,0 +1,9 @@
1
+ export default function useScroll<T extends HTMLElement>({ restore, target }?: {
2
+ restore?: number;
3
+ target?: React.RefObject<T>;
4
+ }): import("../core/link").Link<{
5
+ x: number;
6
+ y: number;
7
+ top: number;
8
+ left: number;
9
+ }>;
@@ -0,0 +1,6 @@
1
+ export default function useSpring<T extends number | number[]>(initial: T, { stiffness, damping, mass, restThreshold }?: {
2
+ stiffness?: number | undefined;
3
+ damping?: number | undefined;
4
+ mass?: number | undefined;
5
+ restThreshold?: number | undefined;
6
+ }): import("../core/link").Link<T>;
@@ -0,0 +1,4 @@
1
+ export type Trigger = (() => void) & {
2
+ called: number;
3
+ };
4
+ export default function useTrigger(): Trigger;
@@ -0,0 +1,2 @@
1
+ import { Link } from "../core/link";
2
+ export default function useViewport<T extends Element = any>(threshold?: number): [React.Ref<T>, Link<[number, number]>];
@@ -0,0 +1,6 @@
1
+ import { Trigger } from "./use-trigger";
2
+ export default function useVisible<T extends Element = any>({ enter, exit, threshold }?: {
3
+ enter?: boolean | number;
4
+ exit?: boolean | number;
5
+ threshold?: number;
6
+ }): [React.Ref<T>, Trigger, Trigger];
@@ -0,0 +1,10 @@
1
+ import useLink from "./hooks/use-link";
2
+ import useTrigger from "./hooks/use-trigger";
3
+ import useReducedMotion from "./hooks/use-reduced-motion";
4
+ import useScroll from "./hooks/use-scroll";
5
+ import usePath from "./hooks/use-path";
6
+ import useViewport from "./hooks/use-viewport";
7
+ import useVisible from "./hooks/use-visible";
8
+ import useAudio from "./hooks/use-audio";
9
+ import useSpring from "./hooks/use-spring";
10
+ export { useLink, useTrigger, useReducedMotion, useScroll, usePath, useViewport, useVisible, useAudio, useSpring };
@@ -0,0 +1,3 @@
1
+ import Animatable from "./animatable";
2
+ import Animate from "./animate";
3
+ export { Animatable, Animate };
@@ -0,0 +1,16 @@
1
+ import type { TransitionOptions } from "../core/track";
2
+ /**
3
+ * Animate layout changes or unmounts.
4
+ *
5
+ * @see {@link https://lively.infinityfx.dev/docs/components/layout-group}
6
+ */
7
+ export default function LayoutGroup({ children, transition, initialMount }: {
8
+ children: React.ReactNode;
9
+ transition?: Omit<TransitionOptions, 'reverse'>;
10
+ /**
11
+ * Whether to play mount mount animations on first render
12
+ *
13
+ * @default true
14
+ */
15
+ initialMount?: boolean;
16
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { AnimatableProps } from "../animatable";
2
+ import Timeline from "../core/timeline";
3
+ import { TransitionOptions } from "../core/track";
4
+ export declare const Groups: {
5
+ [key: string]: Map<Timeline, {
6
+ state: 'mounted' | 'unmounted' | 'collected';
7
+ }>;
8
+ };
9
+ /**
10
+ * Peform layout morphs between components when one mounts and unmount.
11
+ *
12
+ * @see {@link https://lively.infinityfx.dev/docs/components/morph}
13
+ */
14
+ declare function Morph({ children, group, transition, ...props }: {
15
+ /**
16
+ * Global identifier, components with the same group will morph between eachother.
17
+ */
18
+ group: string;
19
+ transition?: Omit<TransitionOptions, 'reverse'>;
20
+ } & AnimatableProps): import("react/jsx-runtime").JSX.Element;
21
+ declare namespace Morph {
22
+ var isLively: boolean;
23
+ }
24
+ export default Morph;
@@ -0,0 +1,11 @@
1
+ import { AnimatableProps } from "../animatable";
2
+ /**
3
+ * Wrap around text to animate it.
4
+ *
5
+ * @see {@link https://lively.infinityfx.dev/docs/components/typable}
6
+ */
7
+ declare function Typable({ children, stagger, staggerLimit, ...props }: AnimatableProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace Typable {
9
+ var isLively: boolean;
10
+ }
11
+ export default Typable;
@@ -0,0 +1,4 @@
1
+ import LayoutGroup from "./layout/layout-group";
2
+ import Morph from "./layout/morph";
3
+ import Typable from "./layout/typable";
4
+ export { LayoutGroup, Morph, Typable };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{__rest as e}from"tslib";import{jsx as n}from"react/jsx-runtime";import{createContext as r,useRef as t,use as i,useMemo as a,useCallback as o,useImperativeHandle as s,useEffect as u,useLayoutEffect as l,Children as c,isValidElement as d,cloneElement as m}from"react";import p from"./core/clip.js";import f from"./core/timeline.js";import{merge as h,pick as v,combineRefs as g}from"./core/utils.js";const y=r(null);function b(r){const b=t(null),j=t([]),x=i(y),w=r.inherit&&x?h({},r,v(x,["group","animations","triggers","animate","initial","stagger","staggerLimit","deform","disabled","paused"])):r,{id:O="",inherit:L,triggers:k=[],disabled:E,adaptive:z=!1,manual:A=!1,paused:C}=w,M=void 0!==r.order?r.order:(L&&(null==x?void 0:x.index)||-1)+1,D=t([]),T=a((()=>{const e={animate:p.from(w.animate,w.initial)};for(const n in w.animations)e[n]=p.from(w.animations[n],w.initial);return e}),[]),V=t(new f(Object.assign(Object.assign({},w),{mountClips:k.reduce(((e,{name:n,on:r})=>("mount"===r&&e.push(T[n||"animate"]),e)),[])}))),q=o(((e,n={},t=1)=>{var i;const a=T[e];if(E||L&&t<2)return 0;h(n,{reverse:null==a?void 0:a.reverse});let o=0,s=n.delay||0,u=a?V.current.time(a):0;for(const r of j.current)(null===(i=r.current)||void 0===i?void 0:i.inherit)&&(o=Math.max(r.current.play(e,h({delay:s+u},n),t+1),o));const l=(n.reverse?o:s)*(M/t+1/t);return a&&V.current.add(a,h({delay:l},n)),r.onAnimationEnd&&setTimeout(r.onAnimationEnd.bind({},e),1e3*(u+l)),u+l}),[E,L,M]);function B(n,r={}){let t=0;for(let i of k){const{name:a,on:o}=i,s=e(i,["name","on"]);o===n&&(t=Math.max(q(a||"animate",h(s,r)),t))}return t}return s(g(b,r.ref),(()=>({play:q,trigger:B,timeline:V.current,children:j.current,inherit:L,adaptive:z,group:w.group,id:O})),[k]),u((()=>V.current.pause(!(!C&&!E))),[C,E]),u((()=>{for(let n=0;n<k.length;n++){let r=k[n],{name:t,on:i}=r,a=e(r,["name","on"]);if("string"==typeof i)continue;const o="boolean"==typeof i?i:i.called,s=D.current[n];void 0!==s&&o&&o!==s&&q(t||"animate",a),D.current[n]=o}}),[k]),l((()=>{const e=()=>V.current.cache();return V.current.link(w.animate),window.addEventListener("resize",e),null==x||x.add(b),document.fonts.ready.then((()=>{A||V.current.mounted||B("mount"),V.current.mounted=!0})),()=>{window.removeEventListener("resize",e),V.current.unlink(),null==x||x.remove(b)}}),[]),n(y,{value:Object.assign(Object.assign({},r.passthrough?x:Object.assign({index:M},w)),{add:e=>{r.passthrough&&(null==x||x.add(e)),j.current.includes(e)||j.current.push(e)},remove:e=>{r.passthrough&&(null==x||x.remove(e));const n=j.current.indexOf(e)||-1;n>=0&&j.current.splice(n,1)}}),children:c.map(r.children,(e=>d(e)?m(e,{ref:g((e=>V.current.insert(e)),e.props.ref),pathLength:1,style:h({backfaceVisibility:"hidden",willChange:"transform"},e.props.style,T.animate.initial,{strokeDasharray:1}),"data-lively-offset-boundary":!(!["x","y"].some((e=>{var n;return null===(n=r.cachable)||void 0===n?void 0:n.includes(e)}))&&void 0!==r.cachable)||void 0}):e))})}b.isLively=!0;export{y as AnimatableContext,b as default};
2
+ import{jsx as e}from"react/jsx-runtime";import{createContext as r,useRef as n,use as t,useMemo as i,useCallback as a,useImperativeHandle as o,useEffect as s,useLayoutEffect as u,Children as c,isValidElement as d,cloneElement as m}from"react";import l from"./core/clip.js";import p from"./core/timeline.js";import{merge as f,pick as h,combineRefs as g}from"./core/utils.js";const v=r(null);function y(r){const y=n(null),b=n([]),x=t(v),w=r.inherit&&x?f({},r,h(x,["group","animations","triggers","animate","initial","stagger","staggerLimit","deform","disabled","paused"])):r,{id:L="",inherit:j,triggers:k=[],disabled:E,adaptive:z=!1,manual:A=!1,paused:C}=w,M=void 0!==r.order?r.order:(j&&x?.index||-1)+1,D=n([]),O=i((()=>{const e={animate:l.from(w.animate,w.initial)};for(const r in w.animations)e[r]=l.from(w.animations[r],w.initial);return e}),[]),T=n(new p({...w,mountClips:k.reduce(((e,{name:r,on:n})=>("mount"===n&&e.push(O[r||"animate"]),e)),[])})),V=a(((e,n={},t=1)=>{const i=O[e];if(E||j&&t<2)return 0;f(n,{reverse:i?.reverse});let a=0,o=n.delay||0,s=i?T.current.time(i):0;for(const r of b.current)r.current?.inherit&&(a=Math.max(r.current.play(e,f({delay:o+s},n),t+1),a));const u=(n.reverse?a:o)*(M/t+1/t);return i&&T.current.add(i,f({delay:u},n)),r.onAnimationEnd&&setTimeout(r.onAnimationEnd.bind({},e),1e3*(s+u)),s+u}),[E,j,M]);function q(e,r={}){let n=0;for(const{name:t,on:i,...a}of k)i===e&&(n=Math.max(V(t||"animate",f(a,r)),n));return n}return o(g(y,r.ref),(()=>({play:V,trigger:q,timeline:T.current,children:b.current,inherit:j,adaptive:z,group:w.group,id:L})),[k]),s((()=>T.current.pause(!(!C&&!E))),[C,E]),s((()=>{for(let e=0;e<k.length;e++){let{name:r,on:n,...t}=k[e];if("string"==typeof n)continue;const i="boolean"==typeof n?n:n.called,a=D.current[e];void 0!==a&&i&&i!==a&&V(r||"animate",t),D.current[e]=i}}),[k]),u((()=>{const e=()=>T.current.cache();return T.current.link(w.animate),window.addEventListener("resize",e),x?.add(y),document.fonts.ready.then((()=>{A||T.current.mounted||q("mount"),T.current.mounted=!0})),()=>{window.removeEventListener("resize",e),T.current.unlink(),x?.remove(y)}}),[]),e(v,{value:{...r.passthrough?x:{index:M,...w},add:e=>{r.passthrough&&x?.add(e),b.current.includes(e)||b.current.push(e)},remove:e=>{r.passthrough&&x?.remove(e);const n=b.current.indexOf(e)||-1;n>=0&&b.current.splice(n,1)}},children:c.map(r.children,(e=>d(e)?m(e,{ref:g((e=>T.current.insert(e)),e.props.ref),pathLength:1,style:f({backfaceVisibility:"hidden",willChange:"transform"},e.props.style,O.animate.initial,{strokeDasharray:1}),"data-lively-offset-boundary":!(!["x","y"].some((e=>r.cachable?.includes(e)))&&void 0!==r.cachable)||void 0}):e))})}y.isLively=!0;export{v as AnimatableContext,y as default};
3
3
  //# sourceMappingURL=animatable.js.map
package/dist/animate.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{__rest as i}from"tslib";import{jsx as r,Fragment as t}from"react/jsx-runtime";import{Children as e,isValidElement as n,cloneElement as a}from"react";import o from"./animatable.js";function l(l){var{children:m,animations:p=[{translate:["0px 16px","0px 0px"],opacity:[0,1],duration:.35}],levels:s=2}=l,c=i(l,["children","animations","levels"]);return r(t,{children:function i(t,l=s){let m,f=s-l;for(;!(m=p[f])&&f>=0;)f--;return l<1||e.count(t)<1?t:r(o,Object.assign({},c,{animate:m,inherit:l<s||c.inherit,children:e.map(t,(r=>n(r)?a(r,{},i(r.props.children,l-1)):r))}))}(m)})}l.isLively=!0;export{l as default};
2
+ import{jsx as r,Fragment as t}from"react/jsx-runtime";import{Children as i,isValidElement as e,cloneElement as n}from"react";import a from"./animatable.js";function o({children:o,animations:p=[{translate:["0px 16px","0px 0px"],opacity:[0,1],duration:.35}],levels:l=2,...m}){return r(t,{children:function t(o,c=l){let s,u=l-c;for(;!(s=p[u])&&u>=0;)u--;return c<1||i.count(o)<1?o:r(a,{...m,animate:s,inherit:c<l||m.inherit,children:i.map(o,(r=>e(r)?n(r,{},t(r.props.children,c-1)):r))})}(o)})}o.isLively=!0;export{o as default};
3
3
  //# sourceMappingURL=animate.js.map
@@ -1,2 +1,2 @@
1
- class i{constructor(i,t,s,n={}){this.commit=!0,this.onfinish=null,this.composite=s.composite,s.composite="combine"===s.composite?"accumulate":"replace",this.animation=i.element.animate(t,s),this.dynamic=n,this.track=i,this.animation.onfinish=this.finish.bind(this)}finish(){var i;try{this.commit&&this.animation.commitStyles()}catch(i){}this.animation.cancel(),null===(i=this.onfinish)||void 0===i||i.call(this)}step(i){var t,s;const n=(null===(t=this.animation.effect)||void 0===t?void 0:t.getComputedTiming().progress)||0;for(const t in this.dynamic)this.track.apply(t,null===(s=this.dynamic[t])||void 0===s?void 0:s.call(this.track,n,i))}}export{i as default};
1
+ class i{constructor(i,t,s,n={}){this.commit=!0,this.onfinish=null,this.composite=s.composite,s.composite="combine"===s.composite?"accumulate":"replace",this.animation=i.element.animate(t,s),this.dynamic=n,this.track=i,this.animation.onfinish=this.finish.bind(this)}finish(){try{this.commit&&this.animation.commitStyles()}catch(i){}this.animation.cancel(),this.onfinish?.()}step(i){const t=this.animation.effect?.getComputedTiming().progress||0;for(const s in this.dynamic)this.track.apply(s,this.dynamic[s]?.call(this.track,t,i))}}export{i as default};
2
2
  //# sourceMappingURL=action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../src/core/action.ts"],"sourcesContent":[null],"names":["Action","constructor","track","keyframes","config","dynamic","this","commit","onfinish","composite","animation","element","animate","finish","bind","commitStyles","ex","cancel","_a","call","step","index","progress","effect","getComputedTiming","prop","apply","_b"],"mappings":"AAGc,MAAOA,EASjB,WAAAC,CAAYC,EAAcC,EAAkDC,EAAqFC,EAA6B,CAAA,GAN9LC,KAAMC,QAAY,EAIlBD,KAAQE,SAAwB,KAG5BF,KAAKG,UAAYL,EAAOK,UACvBL,EAAeK,UAAiC,YAArBL,EAAOK,UAA0B,aAAe,UAC5EH,KAAKI,UAAYR,EAAMS,QAAQC,QAAQT,EAAWC,GAClDE,KAAKD,QAAUA,EACfC,KAAKJ,MAAQA,EAEbI,KAAKI,UAAUF,SAAWF,KAAKO,OAAOC,KAAKR,KAC9C,CAED,MAAAO,SACI,IACQP,KAAKC,QAAQD,KAAKI,UAAUK,cACnC,CAAC,MAAOC,GAAM,CACfV,KAAKI,UAAUO,SAEF,QAAbC,EAAAZ,KAAKE,gBAAQ,IAAAU,GAAAA,EAAAC,KAAAb,KAChB,CAED,IAAAc,CAAKC,WACD,MAAMC,WAAWJ,EAAAZ,KAAKI,UAAUa,6BAAQC,oBAAoBF,WAAY,EAExE,IAAK,MAAMG,KAAQnB,KAAKD,QACpBC,KAAKJ,MAAMwB,MAAMD,EAAqD,QAA/CE,EAAArB,KAAKD,QAAQoB,UAAkC,IAAAE,OAAA,EAAAA,EAAAR,KAAKb,KAAKJ,MAAOoB,EAAUD,GAExG"}
1
+ {"version":3,"file":"action.js","sources":["../../src/core/action.ts"],"sourcesContent":[null],"names":["Action","constructor","track","keyframes","config","dynamic","this","commit","onfinish","composite","animation","element","animate","finish","bind","commitStyles","ex","cancel","step","index","progress","effect","getComputedTiming","prop","apply","call"],"mappings":"AAGc,MAAOA,EASjB,WAAAC,CAAYC,EAAcC,EAAkDC,EAAqFC,EAA6B,CAAA,GAN9LC,KAAMC,QAAY,EAIlBD,KAAQE,SAAwB,KAG5BF,KAAKG,UAAYL,EAAOK,UACvBL,EAAeK,UAAiC,YAArBL,EAAOK,UAA0B,aAAe,UAC5EH,KAAKI,UAAYR,EAAMS,QAAQC,QAAQT,EAAWC,GAClDE,KAAKD,QAAUA,EACfC,KAAKJ,MAAQA,EAEbI,KAAKI,UAAUF,SAAWF,KAAKO,OAAOC,KAAKR,KAC9C,CAED,MAAAO,GACI,IACQP,KAAKC,QAAQD,KAAKI,UAAUK,cACnC,CAAC,MAAOC,GAAM,CACfV,KAAKI,UAAUO,SAEfX,KAAKE,YACR,CAED,IAAAU,CAAKC,GACD,MAAMC,EAAWd,KAAKI,UAAUW,QAAQC,oBAAoBF,UAAY,EAExE,IAAK,MAAMG,KAAQjB,KAAKD,QACpBC,KAAKJ,MAAMsB,MAAMD,EAAMjB,KAAKD,QAAQkB,IAAkCE,KAAKnB,KAAKJ,MAAOkB,EAAUD,GAExG"}
@@ -1,2 +1,2 @@
1
- import e from"./clip.js";class t{constructor(e,t=["x","y","sx","sy","borderRadius","backgroundColor","color","rotate"]){this.element=e,this.include=t.map((e=>"strokeLength"===e?"strokeDashoffset":e)),this.computed=getComputedStyle(e),this.data=this.read()}read(){const e={};for(const t of this.include)e[t]=this.computed[t];if(this.element instanceof SVGElement)return e;e.sx=this.element.offsetWidth,e.sy=this.element.offsetHeight,e.x=e.sx/2,e.y=e.sy/2;let t=this.element;for(;t&&(e.x+=t.offsetLeft,e.y+=t.offsetTop,t=t.offsetParent,!(null==t?void 0:t.dataset.livelyOffsetBoundary)););return e}update(){this.data=this.read()}difference(t=this.data,{duration:s=.5,easing:o="ease",reverse:i=!1}){const a=this.read(),r=[[1,1],[1,1]],n=[["0px","0px"],["0px","0px"]],c={duration:s,easing:o,reverse:i,composite:"combine"},d=Object.assign(Object.assign({},c),{composite:"override"});for(const e of this.include)switch(e){case"x":case"y":n[0]["x"==e?0:1]=t[e]-a[e]+"px";break;case"sx":case"sy":r[0]["sx"==e?0:1]=0===a[e]?1:t[e]/a[e];break;default:d[e]=[t[e],a[e]]}return c.scale=r.map((e=>e.join(" "))),c.translate=n.map((e=>e.join(" "))),[new e(c),new e(d)]}}export{t as StyleCache};
1
+ import e from"./clip.js";class t{constructor(e,t=["x","y","sx","sy","borderRadius","backgroundColor","color","rotate"]){this.element=e,this.include=t.map((e=>"strokeLength"===e?"strokeDashoffset":e)),this.computed=getComputedStyle(e),this.data=this.read()}read(){const e={};for(const t of this.include)e[t]=this.computed[t];if(this.element instanceof SVGElement)return e;e.sx=this.element.offsetWidth,e.sy=this.element.offsetHeight,e.x=e.sx/2,e.y=e.sy/2;let t=this.element;for(;t&&(e.x+=t.offsetLeft,e.y+=t.offsetTop,t=t.offsetParent,!t?.dataset.livelyOffsetBoundary););return e}update(){this.data=this.read()}difference(t=this.data,{duration:s=.5,easing:o="ease",reverse:r=!1}){const a=this.read(),i=[[1,1],[1,1]],n=[["0px","0px"],["0px","0px"]],c={duration:s,easing:o,reverse:r,composite:"combine"},f={...c,composite:"override"};for(const e of this.include)switch(e){case"x":case"y":n[0]["x"==e?0:1]=t[e]-a[e]+"px";break;case"sx":case"sy":i[0]["sx"==e?0:1]=0===a[e]?1:t[e]/a[e];break;default:f[e]=[t[e],a[e]]}return c.scale=i.map((e=>e.join(" "))),c.translate=n.map((e=>e.join(" "))),[new e(c),new e(f)]}}export{t as StyleCache};
2
2
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sources":["../../src/core/cache.ts"],"sourcesContent":[null],"names":["StyleCache","constructor","element","include","this","map","key","computed","getComputedStyle","data","read","prop","SVGElement","sx","offsetWidth","sy","offsetHeight","x","y","parent","offsetLeft","offsetTop","offsetParent","dataset","livelyOffsetBoundary","update","difference","from","duration","easing","reverse","to","scale","translate","keyframes1","composite","keyframes2","Object","assign","val","join","Clip"],"mappings":"+BAeaA,EAOT,WAAAC,CAAYC,EAAmCC,EAAyB,CAAC,IAAK,IAAK,KAAM,KAAM,eAAgB,kBAAmB,QAAS,WACvIC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAAQE,KAAIC,GAAe,iBAARA,EAAyB,mBAAqBA,IAChFF,KAAKG,SAAWC,iBAAiBN,GACjCE,KAAKK,KAAOL,KAAKM,MACpB,CAED,IAAAA,GACI,MAAMD,EAAO,CAAA,EAGb,IAAK,MAAME,KAAQP,KAAKD,QAASM,EAAKE,GAAQP,KAAKG,SAASI,GAE5D,GAAIP,KAAKF,mBAAmBU,WAAY,OAAOH,EAC/CA,EAAKI,GAAKT,KAAKF,QAAQY,YACvBL,EAAKM,GAAKX,KAAKF,QAAQc,aACvBP,EAAKQ,EAAIR,EAAKI,GAAK,EACnBJ,EAAKS,EAAIT,EAAKM,GAAK,EAEnB,IAAII,EAA6Bf,KAAKF,QACtC,KAAOiB,IACHV,EAAKQ,GAAKE,EAAOC,WACjBX,EAAKS,GAAKC,EAAOE,UAEjBF,EAASA,EAAOG,eACZH,aAAM,EAANA,EAAQI,QAAQC,yBAGxB,OAAOf,CACV,CAED,MAAAgB,GACIrB,KAAKK,KAAOL,KAAKM,MACpB,CAED,UAAAgB,CAAWC,EAAkBvB,KAAKK,MAAMmB,SAAEA,EAAW,GAAGC,OAAEA,EAAS,OAAMC,QAAEA,GAAU,IACjF,MAAMC,EAAK3B,KAAKM,OAEVsB,EAAQ,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IACvBC,EAAY,CAAC,CAAC,MAAO,OAAQ,CAAC,MAAO,QACnCC,EAA6B,CAAEN,WAAUC,SAAQC,UAASK,UAAW,WACvEC,EAAkCC,OAAAC,OAAAD,OAAAC,OAAA,GAAAJ,IAAYC,UAAW,aAE7D,IAAK,MAAM7B,KAAOF,KAAKD,QACnB,OAAQG,GACJ,IAAK,IACL,IAAK,IACD2B,EAAU,GAAU,KAAP3B,EAAa,EAAI,GAAKqB,EAAKrB,GAAOyB,EAAGzB,GAAO,KACzD,MACJ,IAAK,KACL,IAAK,KACD0B,EAAM,GAAU,MAAP1B,EAAc,EAAI,GAAiB,IAAZyB,EAAGzB,GAAa,EAAIqB,EAAKrB,GAAOyB,EAAGzB,GACnE,MACJ,QAAS8B,EAAW9B,GAAO,CAACqB,EAAKrB,GAAeyB,EAAGzB,IAO3D,OAHA4B,EAAWF,MAAQA,EAAM3B,KAAIkC,GAAOA,EAAIC,KAAK,OAC7CN,EAAWD,UAAYA,EAAU5B,KAAIkC,GAAOA,EAAIC,KAAK,OAE9C,CAAC,IAAIC,EAAKP,GAAa,IAAIO,EAAKL,GAC1C"}
1
+ {"version":3,"file":"cache.js","sources":["../../src/core/cache.ts"],"sourcesContent":[null],"names":["StyleCache","constructor","element","include","this","map","key","computed","getComputedStyle","data","read","prop","SVGElement","sx","offsetWidth","sy","offsetHeight","x","y","parent","offsetLeft","offsetTop","offsetParent","dataset","livelyOffsetBoundary","update","difference","from","duration","easing","reverse","to","scale","translate","keyframes1","composite","keyframes2","val","join","Clip"],"mappings":"+BAeaA,EAOT,WAAAC,CAAYC,EAAmCC,EAAyB,CAAC,IAAK,IAAK,KAAM,KAAM,eAAgB,kBAAmB,QAAS,WACvIC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAAQE,KAAIC,GAAe,iBAARA,EAAyB,mBAAqBA,IAChFF,KAAKG,SAAWC,iBAAiBN,GACjCE,KAAKK,KAAOL,KAAKM,MACpB,CAED,IAAAA,GACI,MAAMD,EAAO,CAAA,EAGb,IAAK,MAAME,KAAQP,KAAKD,QAASM,EAAKE,GAAQP,KAAKG,SAASI,GAE5D,GAAIP,KAAKF,mBAAmBU,WAAY,OAAOH,EAC/CA,EAAKI,GAAKT,KAAKF,QAAQY,YACvBL,EAAKM,GAAKX,KAAKF,QAAQc,aACvBP,EAAKQ,EAAIR,EAAKI,GAAK,EACnBJ,EAAKS,EAAIT,EAAKM,GAAK,EAEnB,IAAII,EAA6Bf,KAAKF,QACtC,KAAOiB,IACHV,EAAKQ,GAAKE,EAAOC,WACjBX,EAAKS,GAAKC,EAAOE,UAEjBF,EAASA,EAAOG,cACZH,GAAQI,QAAQC,wBAGxB,OAAOf,CACV,CAED,MAAAgB,GACIrB,KAAKK,KAAOL,KAAKM,MACpB,CAED,UAAAgB,CAAWC,EAAkBvB,KAAKK,MAAMmB,SAAEA,EAAW,GAAGC,OAAEA,EAAS,OAAMC,QAAEA,GAAU,IACjF,MAAMC,EAAK3B,KAAKM,OAEVsB,EAAQ,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IACvBC,EAAY,CAAC,CAAC,MAAO,OAAQ,CAAC,MAAO,QACnCC,EAA6B,CAAEN,WAAUC,SAAQC,UAASK,UAAW,WACvEC,EAA6B,IAAKF,EAAYC,UAAW,YAE7D,IAAK,MAAM7B,KAAOF,KAAKD,QACnB,OAAQG,GACJ,IAAK,IACL,IAAK,IACD2B,EAAU,GAAU,KAAP3B,EAAa,EAAI,GAAKqB,EAAKrB,GAAOyB,EAAGzB,GAAO,KACzD,MACJ,IAAK,KACL,IAAK,KACD0B,EAAM,GAAU,MAAP1B,EAAc,EAAI,GAAiB,IAAZyB,EAAGzB,GAAa,EAAIqB,EAAKrB,GAAOyB,EAAGzB,GACnE,MACJ,QAAS8B,EAAW9B,GAAO,CAACqB,EAAKrB,GAAeyB,EAAGzB,IAO3D,OAHA4B,EAAWF,MAAQA,EAAM3B,KAAIgC,GAAOA,EAAIC,KAAK,OAC7CJ,EAAWD,UAAYA,EAAU5B,KAAIgC,GAAOA,EAAIC,KAAK,OAE9C,CAAC,IAAIC,EAAKL,GAAa,IAAIK,EAAKH,GAC1C"}
package/dist/core/clip.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__rest as t}from"tslib";import e from"./action.js";import{isLink as i}from"./link.js";import{normalizeAnimatableKeyframes as s,createDynamic as r,distributeAnimatableKeyframes as a,merge as n}from"./utils.js";class o{constructor(e,o){var{duration:h=1,delay:l=0,repeat:m=1,alternate:c=!1,easing:d="ease",reverse:y=!1,composite:p="none"}=e,f=t(e,["duration","delay","repeat","alternate","easing","reverse","composite"]);void 0===o&&(o={}),this.dynamic={};const u={};for(let t in f){let e=f[t],n=o[t];if(e instanceof Function){i(e)||(this.dynamic[t]=e);continue}const h=Array.isArray(e)?e:[e];h.length<2&&void 0!==n&&h.unshift(n),null===h[0]&&(void 0!==n?h[0]=n:h.splice(0,1)),s(h)&&("borderRadius"!==t?a(t,h,u):this.dynamic[t]=r(t,Object.values(a(t,h)),d))}this.keyframes=Object.values(u),this.initial=n({},o,this.keyframes.length?this.keyframes[0]:{}),delete this.initial.offset,this.isEmpty=!this.keyframes.length&&!Object.keys(this.dynamic).length,this.duration=this.isEmpty?0:h,this.delay=l,this.repeat=m,this.alternate=c,this.easing=d,this.reverse=y,this.composite=p}static from(t,e){return t instanceof o?t:new o(t||{},e)}unique(t){const e=new o({});for(const i in this)this.hasOwnProperty(i)&&(e[i]=i in t?t[i]:this[i]);return e}play(t,{composite:i=this.composite,reverse:s=this.reverse,commit:r=!0,delay:a=0}){if(this.isEmpty)return;const n=new e(t,this.keyframes,{duration:1e3*this.duration,delay:1e3*(a+this.delay),iterations:this.repeat,direction:this.alternate?s?"alternate-reverse":"alternate":s?"reverse":"normal",fill:"both",easing:this.easing,composite:i},this.dynamic);n.commit=r,t.push(n)}}export{o as default};
1
+ import t from"./action.js";import{isLink as e}from"./link.js";import{normalizeAnimatableKeyframes as i,createDynamic as s,distributeAnimatableKeyframes as n,merge as r}from"./utils.js";class a{constructor({duration:t=1,delay:a=0,repeat:o=1,alternate:h=!1,easing:l="ease",reverse:c=!1,composite:m="none",...y},d={}){this.dynamic={};const f={};for(let t in y){let r=y[t],a=d[t];if(r instanceof Function){e(r)||(this.dynamic[t]=r);continue}const o=Array.isArray(r)?r:[r];o.length<2&&void 0!==a&&o.unshift(a),null===o[0]&&(void 0!==a?o[0]=a:o.splice(0,1)),i(o)&&("borderRadius"!==t?n(t,o,f):this.dynamic[t]=s(t,Object.values(n(t,o)),l))}this.keyframes=Object.values(f),this.initial=r({},d,this.keyframes.length?this.keyframes[0]:{}),delete this.initial.offset,this.isEmpty=!this.keyframes.length&&!Object.keys(this.dynamic).length,this.duration=this.isEmpty?0:t,this.delay=a,this.repeat=o,this.alternate=h,this.easing=l,this.reverse=c,this.composite=m}static from(t,e){return t instanceof a?t:new a(t||{},e)}unique(t){const e=new a({});for(const i in this)this.hasOwnProperty(i)&&(e[i]=i in t?t[i]:this[i]);return e}play(e,{composite:i=this.composite,reverse:s=this.reverse,commit:n=!0,delay:r=0}){if(this.isEmpty)return;const a=new t(e,this.keyframes,{duration:1e3*this.duration,delay:1e3*(r+this.delay),iterations:this.repeat,direction:this.alternate?s?"alternate-reverse":"alternate":s?"reverse":"normal",fill:"both",easing:this.easing,composite:i},this.dynamic);a.commit=n,e.push(a)}}export{a as default};
2
2
  //# sourceMappingURL=clip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clip.js","sources":["../../src/core/clip.ts"],"sourcesContent":[null],"names":["Clip","constructor","_a","initial","duration","delay","repeat","alternate","easing","reverse","composite","properties","__rest","this","dynamic","keyframes","prop","val","init","Function","isLink","arr","Array","isArray","length","undefined","unshift","splice","normalizeAnimatableKeyframes","distributeAnimatableKeyframes","createDynamic","Object","values","merge","offset","isEmpty","keys","from","data","unique","config","clip","key","hasOwnProperty","play","track","commit","action","Action","iterations","direction","fill","push"],"mappings":"wNAoCc,MAAOA,EAcjB,WAAAC,CAAYC,EAAiJC,GAAjJ,IAAAC,SAAEA,EAAW,EAACC,MAAEA,EAAQ,EAACC,OAAEA,EAAS,EAACC,UAAEA,GAAY,EAAKC,OAAEA,EAAS,OAAMC,QAAEA,GAAU,EAAKC,UAAEA,EAAY,QAAuCR,EAA5BS,EAAUC,EAAAV,EAA7H,+EAAiJ,IAAAC,IAAAA,EAAgC,CAAA,GAV7LU,KAAOC,QAAsB,GAWzB,MAAMC,EAEF,CAAA,EAEJ,IAAK,IAAIC,KAAQL,EAAY,CACzB,IAAIM,EAAMN,EAAWK,GAAwBE,EAAOf,EAAQa,GAE5D,GAAIC,aAAeE,SAAU,CACpBC,EAAOH,KAAMJ,KAAKC,QAAQE,GAAyBC,GACxD,QACH,CAED,MAAMI,EAAMC,MAAMC,QAAQN,GAAOA,EAAM,CAACA,GAEpCI,EAAIG,OAAS,QAAcC,IAATP,GAAoBG,EAAIK,QAAQR,GACvC,OAAXG,EAAI,UAAsBI,IAATP,EAAqBG,EAAI,GAAKH,EAAOG,EAAIM,OAAO,EAAG,IAEnEC,EAA6BP,KAErB,iBAATL,EAKJa,EAA8Bb,EAAMK,EAAYN,GAJ5CF,KAAKC,QAAQE,GAAQc,EAAcd,EAAMe,OAAOC,OAAOH,EAA8Bb,EAAMK,IAAcb,GAKhH,CAEDK,KAAKE,UAAYgB,OAAOC,OAAOjB,GAC/BF,KAAKV,QAAU8B,EAAM,CAAE,EAAE9B,EAASU,KAAKE,UAAUS,OAAUX,KAAKE,UAAU,GAAa,CAAE,UAElFF,KAAKV,QAAQ+B,OACpBrB,KAAKsB,SAAWtB,KAAKE,UAAUS,SAAWO,OAAOK,KAAKvB,KAAKC,SAASU,OACpEX,KAAKT,SAAWS,KAAKsB,QAAU,EAAI/B,EACnCS,KAAKR,MAAQA,EACbQ,KAAKP,OAASA,EACdO,KAAKN,UAAYA,EACjBM,KAAKL,OAASA,EACdK,KAAKJ,QAAUA,EACfI,KAAKH,UAAYA,CACpB,CAED,WAAO2B,CAAKC,EAA8BnC,GACtC,OAAOmC,aAAgBtC,EAAOsC,EAAO,IAAItC,EAAKsC,GAAQ,CAAA,EAAInC,EAC7D,CAED,MAAAoC,CAAOC,GACH,MAAMC,EAAO,IAAIzC,EAAK,CAAA,GAEtB,IAAK,MAAM0C,KAAO7B,KACVA,KAAK8B,eAAeD,KACnBD,EAAaC,GAAOA,KAAOF,EAASA,EAAOE,GAAgB7B,KAAK6B,IAIzE,OAAOD,CACV,CAED,IAAAG,CAAKC,GAAcnC,UAAEA,EAAYG,KAAKH,UAASD,QAAEA,EAAUI,KAAKJ,QAAOqC,OAAEA,GAAS,EAAIzC,MAAEA,EAAQ,IAC5F,GAAIQ,KAAKsB,QAAS,OAElB,MAAMY,EAAS,IAAIC,EAAOH,EAAOhC,KAAKE,UAAW,CAC7CX,SAA0B,IAAhBS,KAAKT,SACfC,MAA8B,KAAtBA,EAAQQ,KAAKR,OACrB4C,WAAYpC,KAAKP,OACjB4C,UAAWrC,KAAKN,UACXE,EAAU,oBAAsB,YAChCA,EAAU,UAAY,SAC3B0C,KAAM,OACN3C,OAAQK,KAAKL,OACbE,aACDG,KAAKC,SAERiC,EAAOD,OAASA,EAEhBD,EAAMO,KAAKL,EACd"}
1
+ {"version":3,"file":"clip.js","sources":["../../src/core/clip.ts"],"sourcesContent":[null],"names":["Clip","constructor","duration","delay","repeat","alternate","easing","reverse","composite","properties","initial","this","dynamic","keyframes","prop","val","init","Function","isLink","arr","Array","isArray","length","undefined","unshift","splice","normalizeAnimatableKeyframes","distributeAnimatableKeyframes","createDynamic","Object","values","merge","offset","isEmpty","keys","from","data","unique","config","clip","key","hasOwnProperty","play","track","commit","action","Action","iterations","direction","fill","push"],"mappings":"yLAoCc,MAAOA,EAcjB,WAAAC,EAAYC,SAAEA,EAAW,EAACC,MAAEA,EAAQ,EAACC,OAAEA,EAAS,EAACC,UAAEA,GAAY,EAAKC,OAAEA,EAAS,OAAMC,QAAEA,GAAU,EAAKC,UAAEA,EAAY,UAAWC,GAA8BC,EAA8B,IAV3LC,KAAOC,QAAsB,GAWzB,MAAMC,EAEF,CAAA,EAEJ,IAAK,IAAIC,KAAQL,EAAY,CACzB,IAAIM,EAAMN,EAAWK,GAAwBE,EAAON,EAAQI,GAE5D,GAAIC,aAAeE,SAAU,CACpBC,EAAOH,KAAMJ,KAAKC,QAAQE,GAAyBC,GACxD,QACH,CAED,MAAMI,EAAMC,MAAMC,QAAQN,GAAOA,EAAM,CAACA,GAEpCI,EAAIG,OAAS,QAAcC,IAATP,GAAoBG,EAAIK,QAAQR,GACvC,OAAXG,EAAI,UAAsBI,IAATP,EAAqBG,EAAI,GAAKH,EAAOG,EAAIM,OAAO,EAAG,IAEnEC,EAA6BP,KAErB,iBAATL,EAKJa,EAA8Bb,EAAMK,EAAYN,GAJ5CF,KAAKC,QAAQE,GAAQc,EAAcd,EAAMe,OAAOC,OAAOH,EAA8Bb,EAAMK,IAAcb,GAKhH,CAEDK,KAAKE,UAAYgB,OAAOC,OAAOjB,GAC/BF,KAAKD,QAAUqB,EAAM,CAAE,EAAErB,EAASC,KAAKE,UAAUS,OAAUX,KAAKE,UAAU,GAAa,CAAE,UAElFF,KAAKD,QAAQsB,OACpBrB,KAAKsB,SAAWtB,KAAKE,UAAUS,SAAWO,OAAOK,KAAKvB,KAAKC,SAASU,OACpEX,KAAKT,SAAWS,KAAKsB,QAAU,EAAI/B,EACnCS,KAAKR,MAAQA,EACbQ,KAAKP,OAASA,EACdO,KAAKN,UAAYA,EACjBM,KAAKL,OAASA,EACdK,KAAKJ,QAAUA,EACfI,KAAKH,UAAYA,CACpB,CAED,WAAO2B,CAAKC,EAA8B1B,GACtC,OAAO0B,aAAgBpC,EAAOoC,EAAO,IAAIpC,EAAKoC,GAAQ,CAAA,EAAI1B,EAC7D,CAED,MAAA2B,CAAOC,GACH,MAAMC,EAAO,IAAIvC,EAAK,CAAA,GAEtB,IAAK,MAAMwC,KAAO7B,KACVA,KAAK8B,eAAeD,KACnBD,EAAaC,GAAOA,KAAOF,EAASA,EAAOE,GAAgB7B,KAAK6B,IAIzE,OAAOD,CACV,CAED,IAAAG,CAAKC,GAAcnC,UAAEA,EAAYG,KAAKH,UAASD,QAAEA,EAAUI,KAAKJ,QAAOqC,OAAEA,GAAS,EAAIzC,MAAEA,EAAQ,IAC5F,GAAIQ,KAAKsB,QAAS,OAElB,MAAMY,EAAS,IAAIC,EAAOH,EAAOhC,KAAKE,UAAW,CAC7CX,SAA0B,IAAhBS,KAAKT,SACfC,MAA8B,KAAtBA,EAAQQ,KAAKR,OACrB4C,WAAYpC,KAAKP,OACjB4C,UAAWrC,KAAKN,UACXE,EAAU,oBAAsB,YAChCA,EAAU,UAAY,SAC3B0C,KAAM,OACN3C,OAAQK,KAAKL,OACbE,aACDG,KAAKC,SAERiC,EAAOD,OAASA,EAEhBD,EAAMO,KAAKL,EACd"}
@@ -1,2 +1,2 @@
1
- import t from"./clip.js";import{isLink as s}from"./link.js";import i from"./track.js";import{IndexedMap as e,merge as a}from"./utils.js";class r{constructor({stagger:t=.1,staggerLimit:s=10,deform:i=!0,cachable:a,mountClips:r}){this.index=0,this.paused=!1,this.tracks=new e,this.frame=0,this.linked=[],this.mounted=!1,this.stagger=t,this.staggerLimit=s-1,this.deform=i,this.cachable=a,this.mountClips=r}step(){cancelAnimationFrame(this.frame),this.paused||this.tracks.stack.forEach(((t,s)=>t.step(s))),this.frame=requestAnimationFrame(this.step.bind(this))}time(t){return this.tracks.size?t.duration+t.delay+this.stagger*Math.max(Math.min(this.staggerLimit,this.tracks.size-1),0):0}receiver(s,i,e){if(!this.paused)for(let r=0;r<this.tracks.size;r++){const c=this.tracks.stack[r],h=i(r);e.duration?(a(e,{composite:"override"}),new t(Object.assign(Object.assign({},e),{[s]:h})).play(c,{})):(c.apply(s,h),c.correct())}}link(i){if(this.step(),!(this.linked.length||!i||i instanceof t))for(let t in i){const e=i[t];if(s(e)){const s=this.receiver.bind(this,t,e);e.subscribe(s),this.linked.push((()=>e.unsubscribe(s))),s({})}}}unlink(){cancelAnimationFrame(this.frame),this.linked.forEach((t=>t())),this.linked=[]}transition(t,s={}){for(let i=0;i<this.tracks.size;i++)this.tracks.stack[i].transition(null==t?void 0:t.tracks.stack[i],s)}insert(t){if((t instanceof HTMLElement||t instanceof SVGElement)&&!this.tracks.has(t)){const s=new i(t,this.deform,this.cachable);this.tracks.set(t,s),this.mounted&&this.mountClips.forEach((t=>t.play(s,{})))}}add(t,{immediate:s=!1,composite:i,reverse:e,delay:a=0,commit:r}){let c,h=0;for(;c=this.tracks.stack[h];)c.element.isConnected?(s&&c.clear(),t.play(c,{delay:a+Math.min(h,this.staggerLimit)*(this.stagger<0?t.duration/this.tracks.size:1)*Math.abs(this.stagger),composite:i,reverse:e,commit:r}),h++):this.tracks.delete(c.element)}pause(t){for(const s of this.tracks.stack)s.pause(t);this.paused=t}cache(){for(const t of this.tracks.stack)t.cache.update()}}export{r as default};
1
+ import t from"./clip.js";import{isLink as s}from"./link.js";import i from"./track.js";import{IndexedMap as e,merge as a}from"./utils.js";class r{constructor({stagger:t=.1,staggerLimit:s=10,deform:i=!0,cachable:a,mountClips:r}){this.index=0,this.paused=!1,this.tracks=new e,this.frame=0,this.linked=[],this.mounted=!1,this.stagger=t,this.staggerLimit=s-1,this.deform=i,this.cachable=a,this.mountClips=r}step(){cancelAnimationFrame(this.frame),this.paused||this.tracks.stack.forEach(((t,s)=>t.step(s))),this.frame=requestAnimationFrame(this.step.bind(this))}time(t){return this.tracks.size?t.duration+t.delay+this.stagger*Math.max(Math.min(this.staggerLimit,this.tracks.size-1),0):0}receiver(s,i,e){if(!this.paused)for(let r=0;r<this.tracks.size;r++){const c=this.tracks.stack[r],h=i(r);e.duration?(a(e,{composite:"override"}),new t({...e,[s]:h}).play(c,{})):requestAnimationFrame((()=>{c.apply(s,h),c.correct()}))}}link(i){if(this.step(),!(this.linked.length||!i||i instanceof t))for(let t in i){const e=i[t];if(s(e)){const s=this.receiver.bind(this,t,e);e.subscribe(s),this.linked.push((()=>e.unsubscribe(s))),s({})}}}unlink(){cancelAnimationFrame(this.frame),this.linked.forEach((t=>t())),this.linked=[]}transition(t,s={}){for(let i=0;i<this.tracks.size;i++)this.tracks.stack[i].transition(t?.tracks.stack[i],s)}insert(t){if((t instanceof HTMLElement||t instanceof SVGElement)&&!this.tracks.has(t)){const s=new i(t,this.deform,this.cachable);this.tracks.set(t,s),this.mounted&&this.mountClips.forEach((t=>t.play(s,{})))}}add(t,{immediate:s=!1,composite:i,reverse:e,delay:a=0,commit:r}){let c,h=0;for(;c=this.tracks.stack[h];)c.element.isConnected?(s&&c.clear(),t.play(c,{delay:a+Math.min(h,this.staggerLimit)*(this.stagger<0?t.duration/this.tracks.size:1)*Math.abs(this.stagger),composite:i,reverse:e,commit:r}),h++):this.tracks.delete(c.element)}pause(t){for(const s of this.tracks.stack)s.pause(t);this.paused=t}cache(){for(const t of this.tracks.stack)t.cache.update()}}export{r as default};
2
2
  //# sourceMappingURL=timeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","sources":["../../src/core/timeline.ts"],"sourcesContent":[null],"names":["Timeline","constructor","stagger","staggerLimit","deform","cachable","mountClips","this","index","paused","tracks","IndexedMap","frame","linked","mounted","step","cancelAnimationFrame","stack","forEach","track","i","requestAnimationFrame","bind","time","clip","size","duration","delay","Math","max","min","receiver","prop","link","config","value","merge","composite","Clip","Object","assign","play","apply","correct","length","isLink","subscribe","push","unsubscribe","unlink","transition","from","options","insert","element","HTMLElement","SVGElement","has","Track","set","add","immediate","reverse","commit","isConnected","clear","abs","delete","pause","cache","update"],"mappings":"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"}
1
+ {"version":3,"file":"timeline.js","sources":["../../src/core/timeline.ts"],"sourcesContent":[null],"names":["Timeline","constructor","stagger","staggerLimit","deform","cachable","mountClips","this","index","paused","tracks","IndexedMap","frame","linked","mounted","step","cancelAnimationFrame","stack","forEach","track","i","requestAnimationFrame","bind","time","clip","size","duration","delay","Math","max","min","receiver","prop","link","config","value","merge","composite","Clip","play","apply","correct","length","isLink","subscribe","push","unsubscribe","unlink","transition","from","options","insert","element","HTMLElement","SVGElement","has","Track","set","add","immediate","reverse","commit","isConnected","clear","abs","delete","pause","cache","update"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{StyleCache as t}from"./cache.js";import{lengthToOffset as e}from"./utils.js";class s{constructor(e,s,i){this.playing=0,this.active=[],this.queue=[],this.paused=!1,this.scale=[1,1],this.corrected={borderRadius:"",boxShadow:""},this.element=e,this.deform=s,this.cache=new t(e,i)}push(t){t.onfinish=this.next.bind(this),this.playing&&"none"===t.composite?(this.queue.push(t),t.animation.pause()):(this.active.push(t),"none"===t.composite&&this.playing++,this.paused&&t.animation.pause())}next(){this.cache.update(),--this.playing>0||(this.active=this.queue.length?this.queue.splice(0,1):[],this.playing=this.active.length,this.pause(!1))}clear(t){this.active.forEach((e=>{e.onfinish=null;try{t?e.commit||"combine"===e.composite||e.animation.cancel():e.animation.finish()}catch(t){e.animation.cancel()}})),t||(this.active=[],this.queue=[],this.playing=0),this.deform||(this.element.style.borderRadius="",this.element.style.boxShadow="",this.corrected.borderRadius=this.cache.data.borderRadius=this.cache.computed.borderRadius,this.corrected.boxShadow=this.cache.data.boxShadow=this.cache.computed.boxShadow,this.scale=[1,1])}pause(t){for(const e of this.active)e.animation[t?"pause":"play"]();this.paused=t}step(t){for(const e of this.active)e.step(t);!this.paused&&this.active.length&&this.correct()}transition(t,e){this.clear(!0);const s=this.cache.difference(null==t?void 0:t.cache.data,e);this.cache.update(),null==t||t.clear(),null==t||t.cache.update(),s.forEach((t=>t.play(this,{commit:!1})))}apply(t,s){const i="strokeLength"===t;this.element.style[i?"strokeDashoffset":t]=i?e(s):s}decomposeScale(){const[t,e]=this.cache.computed.scale.split(" ");let s=Math.max(parseFloat(t)||1,1e-5);/%$/.test(t)&&(s/=100);let i=e?Math.max(parseFloat(e)||1,1e-5):s;return/%$/.test(e)&&(i/=100),[s,i]}correct(){if(this.deform)return;const t=this.cache.computed,e=t.borderRadius.split(/\s*\/\s*/);e.length<2&&(e[1]=e[0]);const s=t.boxShadow.split(/(?<=px),\s?/),[i,a]=s[0].split(/(?<=\))\s/),o=t.borderRadius!==this.corrected.borderRadius?[1,1]:this.scale,h=t.boxShadow!==this.corrected.boxShadow?[1,1]:this.scale,[c,r]=this.scale=this.decomposeScale();if(this.element.style.borderRadius=e.map(((t,e)=>t.split(" ").map((t=>{var s;return parseFloat(t)*o[e]/this.scale[e]+((null===(s=t.match(/[^\d\.]+$/))||void 0===s?void 0:s[0])||"px")})).join(" "))).join("/"),this.corrected.borderRadius=t.borderRadius,a){const e=a.split(" ").map(parseFloat),s=+(c<r),o=s?r:c,l=Math.max(...h),n=new Array(3).fill([e[0]*h[0]/c,e[1]*h[1]/r,e[2]*l/o,e[3]*l/o]);n[1][0]-=s?1/c:0,n[1][1]-=s?0:1/r,n[2][0]+=s?1/c:0,n[2][1]+=s?0:1/r,this.element.style.boxShadow=n.map((t=>`${i} ${t.map((t=>`${t}px`)).join(" ")}`)).join(", "),this.corrected.boxShadow=t.boxShadow}for(let t=0;t<this.element.children.length;t++){const e=this.element.children[t],s=e.offsetLeft,i=e.offsetTop,a=e.offsetWidth,o=e.offsetHeight,[h,l]=getComputedStyle(e).translate.split(" ").map(parseFloat);e.style.transform=`translate(${-h||0}px, ${-l||0}px) scale(${1/c}, ${1/r}) translate(${s*(1-c)+a/2*(1-c)+(h||0)}px, ${i*(1-r)+o/2*(1-r)+(l||0)}px)`}}}export{s as default};
1
+ import{StyleCache as t}from"./cache.js";import{lengthToOffset as e,limitSmallestQuantity as s}from"./utils.js";class i{constructor(e,s,i){this.playing=0,this.active=[],this.queue=[],this.paused=!1,this.scale=[1,1],this.corrected={borderRadius:"",boxShadow:""},this.element=e,this.deform=s,this.cache=new t(e,i)}push(t){t.onfinish=this.next.bind(this),this.playing&&"none"===t.composite?(this.queue.push(t),t.animation.pause()):(this.active.push(t),"none"===t.composite&&this.playing++,this.paused&&t.animation.pause())}next(){this.cache.update(),--this.playing>0||(this.active=this.queue.length?this.queue.splice(0,1):[],this.playing=this.active.length,this.pause(!1),this.playing||this.correct())}clear(t){this.active.forEach((e=>{e.onfinish=null;try{t?e.commit||"combine"===e.composite||e.animation.cancel():e.animation.finish()}catch(t){e.animation.cancel()}})),t||(this.active=[],this.queue=[],this.playing=0),this.deform||(this.element.style.borderRadius="",this.element.style.boxShadow="",this.corrected.borderRadius=this.cache.data.borderRadius=this.cache.computed.borderRadius,this.corrected.boxShadow=this.cache.data.boxShadow=this.cache.computed.boxShadow,this.scale=[1,1])}pause(t){for(const e of this.active)e.animation[t?"pause":"play"]();this.paused=t}step(t){for(const e of this.active)e.step(t);!this.paused&&this.active.length&&this.correct()}transition(t,e){this.clear(!0);const s=this.cache.difference(t?.cache.data,e);this.cache.update(),t?.clear(),t?.cache.update(),s.forEach((t=>t.play(this,{commit:!1})))}apply(t,s){const i="strokeLength"===t;this.element.style[i?"strokeDashoffset":t]=i?e(s):s}decomposeScale(){const[t,e]=this.cache.computed.scale.split(" ");let i=parseFloat(t),a=e?parseFloat(e):i;return isNaN(i)&&(i=1),isNaN(a)&&(a=1),/%$/.test(t)&&(i/=100),/%$/.test(e)&&(a/=100),[s(i,1e-4),s(a,1e-4)]}correct(){if(this.deform)return;const t=this.cache.computed,e=t.borderRadius.split(/\s*\/\s*/);e.length<2&&(e[1]=e[0]);const s=t.boxShadow.split(/(?<=px),\s?/),[i,a]=s[0].split(/(?<=\))\s/),o=t.borderRadius!==this.corrected.borderRadius?[1,1]:this.scale,h=t.boxShadow!==this.corrected.boxShadow?[1,1]:this.scale,[c,r]=this.scale=this.decomposeScale();if(this.element.style.borderRadius=e.map(((t,e)=>t.split(" ").map((t=>parseFloat(t)*o[e]/this.scale[e]+(t.match(/[^\d\.]+$/)?.[0]||"px"))).join(" "))).join("/"),this.corrected.borderRadius=t.borderRadius,a){const e=a.split(" ").map(parseFloat),s=+(c<r),o=s?r:c,n=Math.max(...h),l=new Array(3).fill([e[0]*h[0]/c,e[1]*h[1]/r,e[2]*n/o,e[3]*n/o]);l[1][0]-=s?1/c:0,l[1][1]-=s?0:1/r,l[2][0]+=s?1/c:0,l[2][1]+=s?0:1/r,this.element.style.boxShadow=l.map((t=>`${i} ${t.map((t=>`${t}px`)).join(" ")}`)).join(", "),this.corrected.boxShadow=t.boxShadow}for(let t=0;t<this.element.children.length;t++){const e=this.element.children[t],s=e.offsetLeft,i=e.offsetTop,a=e.offsetWidth,o=e.offsetHeight,[h,n]=getComputedStyle(e).translate.split(" ").map(parseFloat);e.style.transform=`translate(${-h||0}px, ${-n||0}px) scale(${1/c}, ${1/r}) translate(${s*(1-c)+a/2*(1-c)+(h||0)}px, ${i*(1-r)+o/2*(1-r)+(n||0)}px)`}}}export{i as default};
2
2
  //# sourceMappingURL=track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sources":["../../src/core/track.ts"],"sourcesContent":[null],"names":["Track","constructor","element","deform","cachable","this","playing","active","queue","paused","scale","corrected","borderRadius","boxShadow","cache","StyleCache","push","action","onfinish","next","bind","composite","animation","pause","update","length","splice","clear","partial","forEach","commit","cancel","finish","ex","style","data","computed","value","step","index","correct","transition","previous","options","clips","difference","clip","play","apply","prop","val","isStroke","lengthToOffset","decomposeScale","xString","yString","split","x","Math","max","parseFloat","test","y","radii","shadows","color","shadow","previousRadiusScale","previousShadowScale","map","axis","i","radius","_a","match","join","props","ms","pms","Array","fill","children","child","l","offsetLeft","t","offsetTop","w","offsetWidth","h","offsetHeight","tx","ty","getComputedStyle","translate","transform"],"mappings":"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"}
1
+ {"version":3,"file":"track.js","sources":["../../src/core/track.ts"],"sourcesContent":[null],"names":["Track","constructor","element","deform","cachable","this","playing","active","queue","paused","scale","corrected","borderRadius","boxShadow","cache","StyleCache","push","action","onfinish","next","bind","composite","animation","pause","update","length","splice","correct","clear","partial","forEach","commit","cancel","finish","ex","style","data","computed","value","step","index","transition","previous","options","clips","difference","clip","play","apply","prop","val","isStroke","lengthToOffset","decomposeScale","xString","yString","split","x","parseFloat","y","isNaN","test","limitSmallestQuantity","radii","shadows","color","shadow","previousRadiusScale","previousShadowScale","map","axis","i","radius","match","join","props","ms","pms","Math","max","Array","fill","children","child","l","offsetLeft","t","offsetTop","w","offsetWidth","h","offsetHeight","tx","ty","getComputedStyle","translate","transform"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- function t(...t){for(let e=1;e<t.length;e++)for(const n in t[e])n in t[0]&&void 0!==t[0][n]||(t[0][n]=t[e][n]);return t[0]}function e(t,e){const n={};for(const o of e)n[o]=t[o];return n}function n(...t){return e=>{t.forEach((t=>{t&&"current"in t&&(t.current=e),t instanceof Function&&t(e)}))}}const o=t=>1-parseFloat(t.toString());class r extends Map{constructor(){super(...arguments),this.stack=[]}set(t,e){return this.stack.push(e),super.set(t,e)}delete(t){const e=this.stack.indexOf(this.get(t));return e>=0&&this.stack.splice(e,1),super.delete(t)}}function s(t,e,n={}){const r=(e,r)=>{const s=1e4*e,i="strokeLength"===t;s in n||(n[s]={offset:e}),n[s][i?"strokeDashoffset":t]=i?o(r):r};for(let t=0;t<e.length;t++){let{offset:n,value:o,after:s}=e[t];void 0!==o&&(void 0!==s&&1===n&&(n-=1e-4),r(n,o)),void 0!==s&&(n=Math.min(n+1e-4,1),r(n,s))}return n}function i(t){let e,n=0;for(let o=0;o<t.length;o++){let r=t[o],s=t.length<2?1:Math.round(o/(t.length-1)*1e4)/1e4;0===o&&(e=r),r&&"object"==typeof r?"offset"in r||(r.offset=s):(r===e&&n++,t[o]={offset:s,value:null!==r?r:void 0})}return n<2||n!==t.length}function c(t,e,n){return function(o){const r=this.element.animate(e,{duration:1e3,fill:"forwards",easing:n});r.currentTime=1e3*o;const s=getComputedStyle(this.element)[t];return r.cancel(),s}}export{r as IndexedMap,n as combineRefs,c as createDynamic,s as distributeAnimatableKeyframes,o as lengthToOffset,t as merge,i as normalizeAnimatableKeyframes,e as pick};
1
+ function t(...t){for(let e=1;e<t.length;e++)for(const n in t[e])n in t[0]&&void 0!==t[0][n]||(t[0][n]=t[e][n]);return t[0]}function e(t,e){const n={};for(const o of e)n[o]=t[o];return n}function n(...t){return e=>{t.forEach((t=>{t&&"current"in t&&(t.current=e),t instanceof Function&&t(e)}))}}const o=(t,e)=>(Math.sign(t)||1)*Math.max(Math.abs(t),e),s=t=>1-parseFloat(t.toString());class r extends Map{constructor(){super(...arguments),this.stack=[]}set(t,e){return this.stack.push(e),super.set(t,e)}delete(t){const e=this.stack.indexOf(this.get(t));return e>=0&&this.stack.splice(e,1),super.delete(t)}}function i(t,e,n={}){const o=(e,o)=>{const r=1e4*e,i="strokeLength"===t;r in n||(n[r]={offset:e}),n[r][i?"strokeDashoffset":t]=i?s(o):o};for(let t=0;t<e.length;t++){let{offset:n,value:s,after:r}=e[t];void 0!==s&&(void 0!==r&&1===n&&(n-=1e-4),o(n,s)),void 0!==r&&(n=Math.min(n+1e-4,1),o(n,r))}return n}function c(t){let e,n=0;for(let o=0;o<t.length;o++){let s=t[o],r=t.length<2?1:Math.round(o/(t.length-1)*1e4)/1e4;0===o&&(e=s),s&&"object"==typeof s?"offset"in s||(s.offset=r):(s===e&&n++,t[o]={offset:r,value:null!==s?s:void 0})}return n<2||n!==t.length}function f(t,e,n){return function(o){const s=this.element.animate(e,{duration:1e3,fill:"forwards",easing:n});s.currentTime=1e3*o;const r=getComputedStyle(this.element)[t];return s.cancel(),r}}export{r as IndexedMap,n as combineRefs,f as createDynamic,i as distributeAnimatableKeyframes,s as lengthToOffset,o as limitSmallestQuantity,t as merge,c as normalizeAnimatableKeyframes,e as pick};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/core/utils.ts"],"sourcesContent":[null],"names":["merge","objects","i","length","key","undefined","pick","map","keys","picked","combineRefs","refs","el","forEach","ref","current","Function","lengthToOffset","val","parseFloat","toString","IndexedMap","Map","constructor","this","stack","set","value","push","super","indexOf","get","splice","delete","distributeAnimatableKeyframes","prop","keyframes","offset","isStroke","after","Math","min","normalizeAnimatableKeyframes","match","equal","keyframe","round","createDynamic","easing","t","animation","element","animate","duration","fill","currentTime","getComputedStyle","cancel"],"mappings":"AAWgB,SAAAA,KAA8CC,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,OAAQD,IAChC,IAAK,MAAME,KAAOH,EAAQC,GAClBE,KAAOH,EAAQ,SAA0BI,IAApBJ,EAAQ,GAAGG,KAEpCH,EAAQ,GAAGG,GAAOH,EAAQC,GAAGE,IAIrC,OAAOH,EAAQ,EACnB,CAEgB,SAAAK,EAA2DC,EAAQC,GAC/E,MAAMC,EAAS,CAAA,EAEf,IAAK,MAAML,KAAOI,EAAMC,EAAOL,GAAOG,EAAIH,GAE1C,OAAOK,CACX,CAEgB,SAAAC,KAAeC,GAC3B,OAAQC,IACJD,EAAKE,SAAQC,IACLA,GAAO,YAAaA,IAAMA,EAA6BC,QAAUH,GACjEE,aAAeE,UAAUF,EAAIF,EAAG,GACtC,CAEV,CAEa,MAAAK,EAAkBC,GAAa,EAAIC,WAAWD,EAAIE,YAEzD,MAAOC,UAAyBC,IAAtC,WAAAC,uBAEIC,KAAKC,MAAQ,EAehB,CAbG,GAAAC,CAAItB,EAAQuB,GAGR,OAFAH,KAAKC,MAAMG,KAAKD,GAETE,MAAMH,IAAItB,EAAKuB,EACzB,CAED,OAAOvB,GACH,MAAMF,EAAIsB,KAAKC,MAAMK,QAAQN,KAAKO,IAAI3B,IAGtC,OAFIF,GAAK,GAAGsB,KAAKC,MAAMO,OAAO9B,EAAG,GAE1B2B,MAAMI,OAAO7B,EACvB,EAMC,SAAU8B,EAA8BC,EAAcC,EAAuC7B,EAAoC,CAAA,GACnI,MAAMmB,EAAM,CAACW,EAAgBV,KACzB,MAAMvB,EAAe,IAATiC,EACRC,EAAoB,iBAATH,EAET/B,KAAOG,IAAMA,EAAIH,GAAO,CAAEiC,WAEhC9B,EAAIH,GAAKkC,EAAW,mBAAqBH,GAAQG,EAAWrB,EAAeU,GAASA,CAAK,EAG7F,IAAK,IAAIzB,EAAI,EAAGA,EAAIkC,EAAUjC,OAAQD,IAAK,CACvC,IAAImC,OAAEA,EAAMV,MAAEA,EAAKY,MAAEA,GAAUH,EAAUlC,QAE3BG,IAAVsB,SACctB,IAAVkC,GAAkC,IAAXF,IAAcA,GAAkB,MAC3DX,EAAIW,EAAQV,SAEFtB,IAAVkC,IACAF,EAASG,KAAKC,IAAIJ,EAAS,KAAQ,GACnCX,EAAIW,EAAQE,GAEnB,CAED,OAAOhC,CACX,CAEM,SAAUmC,EAA6BN,GACzC,IAAeO,EAAXC,EAAQ,EAEZ,IAAK,IAAI1C,EAAI,EAAGA,EAAIkC,EAAUjC,OAAQD,IAAK,CACvC,IAAI2C,EAAWT,EAAUlC,GACrBmC,EAASD,EAAUjC,OAAS,EAAI,EAAIqC,KAAKM,MAAM5C,GAAKkC,EAAUjC,OAAS,GAAK,KAAS,IAC/E,IAAND,IAASyC,EAAQE,GAEjBA,GAAgC,iBAAbA,EACb,WAAYA,IAAWA,EAASR,OAASA,IAE3CQ,IAAaF,GAAOC,IACxBR,EAAUlC,GAAK,CAAEmC,SAAQV,MAAoB,OAAbkB,EAAoBA,OAAWxC,GAEtE,CAED,OAAOuC,EAAQ,GAAKA,IAAUR,EAAUjC,MAC5C,UAGgB4C,EAAcZ,EAAcC,EAAuBY,GAC/D,OAAO,SAAuBC,GAC1B,MAAMC,EAAY1B,KAAK2B,QAAQC,QAAQhB,EAAW,CAAEiB,SAAU,IAAMC,KAAM,WAAYN,WACtFE,EAAUK,YAAc,IAAON,EAE/B,MAAMtB,EAAQ6B,iBAAiBhC,KAAK2B,SAAShB,GAI7C,OAFAe,EAAUO,SAEH9B,CACX,CACJ"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/core/utils.ts"],"sourcesContent":[null],"names":["merge","objects","i","length","key","undefined","pick","map","keys","picked","combineRefs","refs","el","forEach","ref","current","Function","limitSmallestQuantity","val","e","Math","sign","max","abs","lengthToOffset","parseFloat","toString","IndexedMap","Map","constructor","this","stack","set","value","push","super","indexOf","get","splice","delete","distributeAnimatableKeyframes","prop","keyframes","offset","isStroke","after","min","normalizeAnimatableKeyframes","match","equal","keyframe","round","createDynamic","easing","t","animation","element","animate","duration","fill","currentTime","getComputedStyle","cancel"],"mappings":"AAWgB,SAAAA,KAA8CC,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,OAAQD,IAChC,IAAK,MAAME,KAAOH,EAAQC,GAClBE,KAAOH,EAAQ,SAA0BI,IAApBJ,EAAQ,GAAGG,KAEpCH,EAAQ,GAAGG,GAAOH,EAAQC,GAAGE,IAIrC,OAAOH,EAAQ,EACnB,CAEgB,SAAAK,EAA2DC,EAAQC,GAC/E,MAAMC,EAAS,CAAA,EAEf,IAAK,MAAML,KAAOI,EAAMC,EAAOL,GAAOG,EAAIH,GAE1C,OAAOK,CACX,CAEgB,SAAAC,KAAeC,GAC3B,OAAQC,IACJD,EAAKE,SAAQC,IACLA,GAAO,YAAaA,IAAMA,EAA6BC,QAAUH,GACjEE,aAAeE,UAAUF,EAAIF,EAAG,GACtC,CAEV,CAEO,MAAMK,EAAwB,CAACC,EAAaC,KAAeC,KAAKC,KAAKH,IAAQ,GAAKE,KAAKE,IAAIF,KAAKG,IAAIL,GAAMC,GAEpGK,EAAkBN,GAAa,EAAIO,WAAWP,EAAIQ,YAEzD,MAAOC,UAAyBC,IAAtC,WAAAC,uBAEIC,KAAKC,MAAQ,EAehB,CAbG,GAAAC,CAAI5B,EAAQ6B,GAGR,OAFAH,KAAKC,MAAMG,KAAKD,GAETE,MAAMH,IAAI5B,EAAK6B,EACzB,CAED,OAAO7B,GACH,MAAMF,EAAI4B,KAAKC,MAAMK,QAAQN,KAAKO,IAAIjC,IAGtC,OAFIF,GAAK,GAAG4B,KAAKC,MAAMO,OAAOpC,EAAG,GAE1BiC,MAAMI,OAAOnC,EACvB,EAMC,SAAUoC,EAA8BC,EAAcC,EAAuCnC,EAAoC,CAAA,GACnI,MAAMyB,EAAM,CAACW,EAAgBV,KACzB,MAAM7B,EAAe,IAATuC,EACRC,EAAoB,iBAATH,EAETrC,KAAOG,IAAMA,EAAIH,GAAO,CAAEuC,WAEhCpC,EAAIH,GAAKwC,EAAW,mBAAqBH,GAAQG,EAAWpB,EAAeS,GAASA,CAAK,EAG7F,IAAK,IAAI/B,EAAI,EAAGA,EAAIwC,EAAUvC,OAAQD,IAAK,CACvC,IAAIyC,OAAEA,EAAMV,MAAEA,EAAKY,MAAEA,GAAUH,EAAUxC,QAE3BG,IAAV4B,SACc5B,IAAVwC,GAAkC,IAAXF,IAAcA,GAAkB,MAC3DX,EAAIW,EAAQV,SAEF5B,IAAVwC,IACAF,EAASvB,KAAK0B,IAAIH,EAAS,KAAQ,GACnCX,EAAIW,EAAQE,GAEnB,CAED,OAAOtC,CACX,CAEM,SAAUwC,EAA6BL,GACzC,IAAeM,EAAXC,EAAQ,EAEZ,IAAK,IAAI/C,EAAI,EAAGA,EAAIwC,EAAUvC,OAAQD,IAAK,CACvC,IAAIgD,EAAWR,EAAUxC,GACrByC,EAASD,EAAUvC,OAAS,EAAI,EAAIiB,KAAK+B,MAAMjD,GAAKwC,EAAUvC,OAAS,GAAK,KAAS,IAC/E,IAAND,IAAS8C,EAAQE,GAEjBA,GAAgC,iBAAbA,EACb,WAAYA,IAAWA,EAASP,OAASA,IAE3CO,IAAaF,GAAOC,IACxBP,EAAUxC,GAAK,CAAEyC,SAAQV,MAAoB,OAAbiB,EAAoBA,OAAW7C,GAEtE,CAED,OAAO4C,EAAQ,GAAKA,IAAUP,EAAUvC,MAC5C,UAGgBiD,EAAcX,EAAcC,EAAuBW,GAC/D,OAAO,SAAuBC,GAC1B,MAAMC,EAAYzB,KAAK0B,QAAQC,QAAQf,EAAW,CAAEgB,SAAU,IAAMC,KAAM,WAAYN,WACtFE,EAAUK,YAAc,IAAON,EAE/B,MAAMrB,EAAQ4B,iBAAiB/B,KAAK0B,SAASf,GAI7C,OAFAc,EAAUO,SAEH7B,CACX,CACJ"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{useRef as e,useEffect as n}from"react";import t from"./use-link.js";let r;function o({bands:o=8,minFrequency:a=100,maxFrequency:c=2e3,smoothing:i=.7}={}){const u=e(new Float32Array(1024)),s=e(void 0),l=e(void 0),d=e(null),m=t(new Array(8).fill(0));let f;function v(){if(!s.current)return;s.current.getFloatFrequencyData(u.current);const e=m(),n=Math.floor(a/24e3*1024),t=Math.floor(c/24e3*1024);for(let r=0;r<o;r++){const a=n+(t-n)/o*r,c=Math.floor(a),i=Math.ceil(a),s=a-c,l=u.current[c]*(1-s)+u.current[i]*s;e[r]=Math.max(0,(100+l)/70)}m.set(e),f=requestAnimationFrame(v)}function y(){"suspended"===r.state&&r.resume(),f=requestAnimationFrame(v)}function p(){cancelAnimationFrame(f),m.set(new Array(o).fill(0),{duration:.3})}return n((()=>{const e=d.current;if(e)return r||(r=new AudioContext),s.current||(s.current=new AnalyserNode(r,{fftSize:2048,smoothingTimeConstant:i})),l.current||(l.current=r.createMediaElementSource(e)),s.current.connect(r.destination),l.current.connect(s.current),e.addEventListener("play",y),e.addEventListener("pause",p),e.addEventListener("ended",p),()=>{var n,t;null===(n=s.current)||void 0===n||n.disconnect(),null===(t=l.current)||void 0===t||t.disconnect(),e.removeEventListener("play",y),e.removeEventListener("pause",p),e.removeEventListener("ended",p)}}),[]),[d,m]}export{o as default};
2
+ import{useRef as e,useEffect as n}from"react";import t from"./use-link.js";let r;function o({bands:o=8,minFrequency:c=100,maxFrequency:a=2e3,smoothing:i=.7}={}){const u=e(new Float32Array(1024)),s=e(void 0),d=e(void 0),l=e(null),m=t(new Array(8).fill(0));let f;function v(){if(!s.current)return;s.current.getFloatFrequencyData(u.current);const e=m(),n=Math.floor(c/24e3*1024),t=Math.floor(a/24e3*1024);for(let r=0;r<o;r++){const c=n+(t-n)/o*r,a=Math.floor(c),i=Math.ceil(c),s=c-a,d=u.current[a]*(1-s)+u.current[i]*s;e[r]=Math.max(0,(100+d)/70)}m.set(e),f=requestAnimationFrame(v)}function y(){"suspended"===r.state&&r.resume(),f=requestAnimationFrame(v)}function p(){cancelAnimationFrame(f),m.set(new Array(o).fill(0),{duration:.3})}return n((()=>{const e=l.current;if(e)return r||(r=new AudioContext),s.current||(s.current=new AnalyserNode(r,{fftSize:2048,smoothingTimeConstant:i})),d.current||(d.current=r.createMediaElementSource(e)),s.current.connect(r.destination),d.current.connect(s.current),e.addEventListener("play",y),e.addEventListener("pause",p),e.addEventListener("ended",p),()=>{s.current?.disconnect(),d.current?.disconnect(),e.removeEventListener("play",y),e.removeEventListener("pause",p),e.removeEventListener("ended",p)}}),[]),[l,m]}export{o as default};
3
3
  //# sourceMappingURL=use-audio.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{useLayoutEffect as t}from"react";import e from"./use-link.js";function r({restore:r=0,target:o}={}){const n=e({x:0,y:0,top:0,left:0});return t((()=>{const t=(null==o?void 0:o.current)?o.current:window;function e(t){const e=(null==o?void 0:o.current)||document.documentElement,r=e.scrollLeft,l=r/(e.scrollWidth-e.clientWidth||1),c=e.scrollTop,i=c/(e.scrollHeight-e.clientHeight||1);n.set({x:l,y:i,top:c,left:r},{duration:t})}e(r);const l=()=>e();return t.addEventListener("scroll",l),()=>t.removeEventListener("scroll",l)}),[o]),n}export{r as default};
2
+ import{useLayoutEffect as t}from"react";import e from"./use-link.js";function r({restore:r=0,target:o}={}){const n=e({x:0,y:0,top:0,left:0});return t((()=>{const t=o?.current?o.current:window;function e(t){const e=o?.current||document.documentElement,r=e.scrollLeft,c=r/(e.scrollWidth-e.clientWidth||1),l=e.scrollTop,s=l/(e.scrollHeight-e.clientHeight||1);n.set({x:c,y:s,top:l,left:r},{duration:t})}e(r);const c=()=>e();return t.addEventListener("scroll",c),()=>t.removeEventListener("scroll",c)}),[o]),n}export{r as default};
3
3
  //# sourceMappingURL=use-scroll.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as n,useLayoutEffect as t,Children as i,isValidElement as o,cloneElement as c}from"react";import u from"../animatable.js";import{Groups as s}from"./morph.js";function d(e,r,n=[]){const t="nodes"in e?e.nodes:e;for(let e=0;e<t.length;e++){const i=[...n,e];let o=r(t[e],i);if(o||(o=d(t[e].nodes,r,i)),o)return o}}function l(e,r){return d(e,((e,n)=>{if(e.key===r)return n}))||null}function a(e,r){let n=e[r[0]];for(let e=1;e<r.length&&n;e++)n=n.nodes[r[e]];return n}function m(e,r,n,t){var i;const o=r[r.length-1],c=r.length>1?null===(i=a(e,r.slice(0,-1)))||void 0===i?void 0:i.nodes:e;c&&(t?c.splice(o,n,t):c.splice(o,n))}function p({tree:e,nodes:r,mounting:n,partialIndex:t=[],keys:u=new Set,parent:s=["",0]}){return i.forEach(r,((r,i)=>{const d=o(r),f=d&&(Array.isArray(r.props.children)||o(r.props.children)),h=d&&r.type.isLively&&"id"in r.props,y=d&&(!r.type.isLively||r.props.traverseLayout),v=[...t,i],g=f&&!r.type.isLively?c(r,void 0,[]):r,[k,x]=s,j=h?r.props.id:`$l.${k?k+".":""}${v.slice(-x).join("")}`,w=l(e,j),E=w?a(e,w):void 0;E&&(h||E.key.startsWith("$l."))?(w&&w.join("")!==v.join("")&&(m(e,w,1),m(e,v,0,E)),E.node=g):n.set(j,{node:g,index:v}),f&&y&&p({tree:e,nodes:r.props.children,mounting:n,partialIndex:v,keys:u,parent:h?[j,1]:x?[k,x+1]:void 0}),u.add(j)})),u}function f(e){const r=e.map((e=>o(e.node)?e.nodes.length?c(e.node,{key:e.key},f(e.nodes)):c(e.node,{key:e.key}):e.node));return r.length>1?r:r[0]}function h({children:i,transition:o,initialMount:c=!0}){var a;const h=r(!c),y=r(null),[v,g]=n({}),k=r([]),x=r(new Map),j=r(void 0),w=r(0),E=r(new Set),L=p({tree:k.current,nodes:i,mounting:x.current});if(x.current.forEach(((e,r)=>{L.has(r)||x.current.delete(r)})),d(k.current,(e=>{L.has(e.key)||E.current.add(e.key)})),E.current.size&&y.current){for(const e of y.current.children){const r=null===(a=e.current)||void 0===a?void 0:a.id,n=E.current.has(r);if(e.current)if(n&&L.has(r))E.current.delete(r),e.current.trigger("mount",{immediate:!0}),e.current.timeline.mounted=!0;else if(n&&e.current.timeline.mounted){const r=Date.now()+1e3*e.current.trigger("unmount",{immediate:!0});if(w.current=Math.max(w.current,r),e.current.group){const r=s[e.current.group].get(e.current.timeline);r&&(r.state="unmounted")}e.current.timeline.mounted=!1}}const e=w.current-Date.now();clearTimeout(j.current);const r=(e=!0)=>{E.current.forEach((e=>{const r=l(k.current,e);r&&m(k.current,r,1)})),E.current.clear(),e&&g({})};e>0?j.current=setTimeout(r,e):r(!1)}return!E.current.size&&x.current.size&&(x.current.forEach((({node:e,index:r},n)=>{m(k.current,r,0,{key:n,node:e,nodes:[]})})),x.current.clear()),t((()=>{var e;if(!y.current)return;let r,n=y.current.children.slice();for(;r=n.pop();)h.current&&r.current&&(r.current.timeline.mounted=!0),(null===(e=r.current)||void 0===e?void 0:e.id)&&r.current.timeline.mounted&&r.current.adaptive&&null!==l(k.current,r.current.id)&&(r.current.timeline.transition(void 0,o),n.push(...r.current.children));h.current=!1})),e(u,{ref:y,passthrough:!0,cachable:[],children:f(k.current)})}export{h as default};
2
+ import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as n,useLayoutEffect as t,Children as i,isValidElement as o,cloneElement as c}from"react";import u from"../animatable.js";import{Groups as s}from"./morph.js";function d(e,r,n=[]){const t="nodes"in e?e.nodes:e;for(let e=0;e<t.length;e++){const i=[...n,e];let o=r(t[e],i);if(o||(o=d(t[e].nodes,r,i)),o)return o}}function l(e,r){return d(e,((e,n)=>{if(e.key===r)return n}))||null}function a(e,r){let n=e[r[0]];for(let e=1;e<r.length&&n;e++)n=n.nodes[r[e]];return n}function m(e,r,n,t){const i=r[r.length-1],o=r.length>1?a(e,r.slice(0,-1))?.nodes:e;o&&(t?o.splice(i,n,t):o.splice(i,n))}function p({tree:e,nodes:r,mounting:n,partialIndex:t=[],keys:u=new Set,parent:s=["",0]}){return i.forEach(r,((r,i)=>{const d=o(r),f=d&&(Array.isArray(r.props.children)||o(r.props.children)),h=d&&r.type.isLively&&"id"in r.props,y=f&&(!r.type.isLively||r.props.traverseLayout),g=[...t,i],k=f&&!r.type.isLively?c(r,void 0,[]):r,[v,x]=s,j=h?r.props.id:`$l.${v?v+".":""}${g.slice(-x).join("")}`,w=l(e,j),E=w?a(e,w):void 0;E&&(h||E.key.startsWith("$l."))?(w&&w.join("")!==g.join("")&&(m(e,w,1),m(e,g,0,E)),E.node=k):n.set(j,{node:k,index:g}),y&&p({tree:e,nodes:r.props.children,mounting:n,partialIndex:g,keys:u,parent:h?[j,1]:x?[v,x+1]:void 0}),u.add(j)})),u}function f(e){const r=e.map((e=>o(e.node)?e.nodes.length?c(e.node,{key:e.key},f(e.nodes)):c(e.node,{key:e.key}):e.node));return r.length>1?r:r[0]}function h({children:i,transition:o,initialMount:c=!0}){const a=r(!c),h=r(null),[y,g]=n({}),k=r([]),v=r(new Map),x=r(void 0),j=r(0),w=r(new Set),E=p({tree:k.current,nodes:i,mounting:v.current});if(v.current.forEach(((e,r)=>{E.has(r)||v.current.delete(r)})),d(k.current,(e=>{E.has(e.key)||w.current.add(e.key)})),w.current.size&&h.current){for(const e of h.current.children){const r=e.current?.id,n=w.current.has(r);if(e.current)if(n&&E.has(r))w.current.delete(r),e.current.trigger("mount",{immediate:!0}),e.current.timeline.mounted=!0;else if(n&&e.current.timeline.mounted){const r=Date.now()+1e3*e.current.trigger("unmount",{immediate:!0});if(j.current=Math.max(j.current,r),e.current.group){const r=s[e.current.group].get(e.current.timeline);r&&(r.state="unmounted")}e.current.timeline.mounted=!1}}const e=j.current-Date.now();clearTimeout(x.current);const r=(e=!0)=>{w.current.forEach((e=>{const r=l(k.current,e);r&&m(k.current,r,1)})),w.current.clear(),e&&g({})};e>0?x.current=setTimeout(r,e):r(!1)}return!w.current.size&&v.current.size&&(v.current.forEach((({node:e,index:r},n)=>{m(k.current,r,0,{key:n,node:e,nodes:[]})})),v.current.clear()),t((()=>{if(!h.current)return;let e,r=h.current.children.slice();for(;e=r.pop();)a.current&&e.current&&(e.current.timeline.mounted=!0),e.current?.id&&e.current.timeline.mounted&&e.current.adaptive&&null!==l(k.current,e.current.id)&&(e.current.timeline.transition(void 0,o),r.push(...e.current.children));a.current=!1})),e(u,{ref:h,passthrough:!0,cachable:[],children:f(k.current)})}export{h as default};
3
3
  //# sourceMappingURL=layout-group.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{__rest as t}from"tslib";import{jsx as e}from"react/jsx-runtime";import{use as r,useRef as n,useLayoutEffect as o}from"react";import i,{AnimatableContext as u}from"../animatable.js";import{combineRefs as s}from"../core/utils.js";const a={};function m(m){var{children:l,group:c,transition:d}=m,f=t(m,["children","group","transition"]);const p=r(u),g=(null==p?void 0:p.group)?`${p.group}.${c}`:c;g in a||(a[g]=new Map);const v=n(null);return o((()=>{var t,e;const r=null===(t=v.current)||void 0===t?void 0:t.timeline;if(!r)return;if(a[g].has(r)){a[g].get(r).state="mounted"}else a[g].set(r,{state:"mounted"});const n=Array.from(a[g].entries()).find((([t,e])=>"unmounted"===e.state));return n&&!r.mounted?(r.transition(n[0],d),n[1].state="collected"):r.mounted||null===(e=v.current)||void 0===e||e.trigger("mount"),r.mounted=!0,()=>{const t=a[g].get(r);t.state="unmounted",setTimeout((()=>t.state="collected"),1)}}),[]),e(i,Object.assign({},f,{group:g,manual:!0,ref:s(v,f.ref),children:l}))}m.isLively=!0;export{a as Groups,m as default};
2
+ import{jsx as t}from"react/jsx-runtime";import{use as e,useRef as r,useLayoutEffect as n}from"react";import o,{AnimatableContext as u}from"../animatable.js";import{combineRefs as i}from"../core/utils.js";const s={};function m({children:m,group:a,transition:c,...l}){const d=e(u),f=d?.group?`${d.group}.${a}`:a;f in s||(s[f]=new Map);const p=r(null);return n((()=>{const t=p.current?.timeline;if(!t)return;if(s[f].has(t)){s[f].get(t).state="mounted"}else s[f].set(t,{state:"mounted"});const e=Array.from(s[f].entries()).find((([t,e])=>"unmounted"===e.state));return e&&!t.mounted?(t.transition(e[0],c),e[1].state="collected"):t.mounted||p.current?.trigger("mount"),t.mounted=!0,()=>{const e=s[f].get(t);e.state="unmounted",setTimeout((()=>e.state="collected"),1)}}),[]),t(o,{...l,group:f,manual:!0,ref:i(p,l.ref),children:m})}m.isLively=!0;export{s as Groups,m as default};
3
3
  //# sourceMappingURL=morph.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{__rest as r}from"tslib";import{jsx as t}from"react/jsx-runtime";import{Children as e}from"react";import i from"../animatable.js";function a(a){var{children:m,stagger:s=1,staggerLimit:g=Number.MAX_VALUE}=a,n=r(a,["children","stagger","staggerLimit"]);return t(i,Object.assign({},n,{stagger:-1*s,staggerLimit:g,children:e.map(m,(r=>"string"!=typeof r&&"number"!=typeof r?r:r.toString().split("").map((r=>t("span",{style:{whiteSpace:" "===r?"pre-wrap":void 0},children:r})))))}))}a.isLively=!0;export{a as default};
2
+ import{jsx as r}from"react/jsx-runtime";import{Children as t}from"react";import e from"../animatable.js";function i({children:i,stagger:a=1,staggerLimit:m=Number.MAX_VALUE,...p}){return r(e,{...p,stagger:-1*a,staggerLimit:m,children:t.map(i,(t=>"string"!=typeof t&&"number"!=typeof t?t:t.toString().split("").map((t=>r("span",{style:{whiteSpace:" "===t?"pre-wrap":void 0},children:t})))))})}i.isLively=!0;export{i as default};
3
3
  //# sourceMappingURL=typable.js.map