@infinityfx/lively 4.0.0-alpha.3 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 t.duration+t.delay+this.stagger*Math.max(Math.min(this.staggerLimit,this.tracks.size-1),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)}}link(i){if(!(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({})}}this.step()}}unlink(){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 t.duration+t.delay+this.stagger*Math.max(Math.min(this.staggerLimit,this.tracks.size-1),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)}}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(){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};
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","duration","delay","Math","max","min","size","receiver","prop","link","config","value","merge","composite","Clip","Object","assign","play","apply","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":"yIAQc,MAAOA,EAcjB,WAAAC,EAAYC,QAAEA,EAAU,GAAGC,aAAEA,EAAe,GAAEC,OAAEA,GAAS,EAAIC,SAAEA,EAAQC,WAAEA,IAZzEC,KAAKC,MAAW,EAKhBD,KAAME,QAAY,EAClBF,KAAAG,OAAqC,IAAIC,EACzCJ,KAAKK,MAAW,EAChBL,KAAMM,OAAmB,GACzBN,KAAOO,SAAY,EAIfP,KAAKL,QAAUA,EACfK,KAAKJ,aAAeA,EAAe,EACnCI,KAAKH,OAASA,EACdG,KAAKF,SAAWA,EAChBE,KAAKD,WAAaA,CACrB,CAED,IAAAS,GACIC,qBAAqBT,KAAKK,OAErBL,KAAKE,QAAQF,KAAKG,OAAOO,MAAMC,SAAQ,CAACC,EAAOC,IAAMD,EAAMJ,KAAKK,KAErEb,KAAKK,MAAQS,sBAAsBd,KAAKQ,KAAKO,KAAKf,MACrD,CAED,IAAAgB,CAAKC,GACD,OAAOA,EAAKC,SAAWD,EAAKE,MAAQnB,KAAKL,QAAUyB,KAAKC,IAAID,KAAKE,IAAItB,KAAKJ,aAAcI,KAAKG,OAAOoB,KAAO,GAAI,EAClH,CAEO,QAAAC,CAASC,EAAcC,EAAiBC,GAC5C,IAAI3B,KAAKE,OAET,IAAK,IAAIW,EAAI,EAAGA,EAAIb,KAAKG,OAAOoB,KAAMV,IAAK,CACvC,MAAMD,EAAQZ,KAAKG,OAAOO,MAAMG,GAC5Be,EAAQF,EAAKb,GAEbc,EAAOT,UACPW,EAAMF,EAAQ,CAAEG,UAAW,aAE3B,IAAIC,EAAUC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAN,GAAQ,CAAAF,CAACA,GAAOG,KAASM,KAAKtB,EAAO,CAAA,IAEnDA,EAAMuB,MAAMV,EAAMG,EAEzB,CACJ,CAED,IAAAF,CAAKT,GACD,KAAIjB,KAAKM,OAAO8B,SAAWnB,GAAQA,aAAgBc,GAAnD,CAEA,IAAK,IAAIN,KAAQR,EAAM,CACnB,MAAMS,EAAOT,EAAKQ,GAElB,GAAIY,EAAOX,GAAO,CACd,MAAMF,EAAWxB,KAAKwB,SAAST,KAAKf,KAAMyB,EAAMC,GAChDA,EAAKY,UAAUd,GACfxB,KAAKM,OAAOiC,MAAK,IAAMb,EAAKc,YAAYhB,KAExCA,EAAS,CAAE,EACd,CACJ,CAEDxB,KAAKQ,MAd2D,CAenE,CAED,MAAAiC,GACIzC,KAAKM,OAAOK,SAAQ6B,GAAeA,MACnCxC,KAAKM,OAAS,EACjB,CAED,UAAAoC,CAAWC,EAA4BC,EAA6B,IAEhE,IAAK,IAAI/B,EAAI,EAAGA,EAAIb,KAAKG,OAAOoB,KAAMV,IAElCb,KAAKG,OAAOO,MAAMG,GAAG6B,WAAWC,aAAA,EAAAA,EAAMxC,OAAOO,MAAMG,GAAI+B,EAE9D,CAED,MAAAC,CAAOC,GACH,IAAKA,aAAmBC,aAAeD,aAAmBE,cAAgBhD,KAAKG,OAAO8C,IAAIH,GAAU,CAChG,MAAMlC,EAAQ,IAAIsC,EAAMJ,EAAS9C,KAAKH,OAAQG,KAAKF,UACnDE,KAAKG,OAAOgD,IAAIL,EAASlC,GAErBZ,KAAKO,SAASP,KAAKD,WAAWY,SAAQM,GAAQA,EAAKiB,KAAKtB,EAAO,CAAE,IACxE,CACJ,CAED,GAAAwC,CAAInC,GAAYoC,UAAEA,GAAY,EAAKvB,UAAEA,EAASwB,QAAEA,EAAOnC,MAAEA,EAAQ,EAACoC,OAAEA,IAChE,IAAW3C,EAAPC,EAAI,EAER,KAAOD,EAAQZ,KAAKG,OAAOO,MAAMG,IACxBD,EAAMkC,QAAQU,aAKfH,GAAWzC,EAAM6C,QAErBxC,EAAKiB,KAAKtB,EAAO,CACbO,MAAOA,EAAQC,KAAKE,IAAIT,EAAGb,KAAKJ,eAAiBI,KAAKL,QAAU,EAAIsB,EAAKC,SAAWlB,KAAKG,OAAOoB,KAAO,GAAKH,KAAKsC,IAAI1D,KAAKL,SAC1HmC,YACAwB,UACAC,WAGJ1C,KAbIb,KAAKG,OAAOwD,OAAO/C,EAAMkC,QAepC,CAED,KAAAc,CAAMhC,GACF,IAAK,MAAMhB,KAASZ,KAAKG,OAAOO,MAAOE,EAAMgD,MAAMhC,GAEnD5B,KAAKE,OAAS0B,CACjB,CAED,KAAAiC,GACI,IAAK,MAAMjD,KAASZ,KAAKG,OAAOO,MAAOE,EAAMiD,MAAMC,QACtD"}
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","duration","delay","Math","max","min","size","receiver","prop","link","config","value","merge","composite","Clip","Object","assign","play","apply","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,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as r}from"react/jsx-runtime";import{useRef as t,useState as n,useEffect as e,Children as i,isValidElement as o}from"react";import u from"../animatable.js";import c from"../hooks/use-mount-effect.js";function f(r,t={}){return i.forEach(r,(r=>{var n;if(!o(r))return;const e=null===(n=r.type)||void 0===n?void 0:n.displayName;"Animatable"!==e&&"Animate"!==e||!("id"in r.props)||(t[r.props.id]=!0),f(r.props.children,t)})),t}function l(r,t){const n=typeof r,e=typeof t;if(n!==e)return!1;if(o(r))return!(!o(t)||r.key!==t.key)&&l(r.props,t.props);if(Array.isArray(r)){if(!Array.isArray(t)||r.length!==t.length)return!1;for(let n=0;n<r.length;n++)if(!l(r[n],t[n]))return!1;return!0}if("object"===n&&null!==r&&null!==t){const n=Object.keys(r),e=Object.keys(t);if(n.length!==e.length)return!1;if(!n.length)return r.toString()===t.toString();for(let i=0;i<n.length;i++)if(!(n[i]in t)||!l(r[n[i]],t[e[i]]))return!1;return!0}return"function"===n&&n===e||r===t}function a(r,t){try{return l(r,t)}catch(r){return!1}}function s({children:i,transition:o}){const l=t(null),s=t(f(i)),[m,p]=n(i);return e((()=>{if(!l.current||a(m,i))return;let r=0,t=f(i);for(const n of l.current.children)n.current&&!n.current.manual&&n.current.id in s.current&&!(n.current.id in t)&&(r=Math.max(n.current.trigger("unmount"),r));s.current=t,setTimeout((()=>p(i)),1e3*r)}),[i]),c((()=>{var r;if(l.current)for(const t of l.current.children)(null===(r=t.current)||void 0===r?void 0:r.timeline.mounted)&&t.current.adaptive&&t.current.timeline.transition(void 0,o)}),[m]),r(u,{ref:l,cachable:[],passthrough:!0,children:m})}export{s as default};
2
+ import{jsx as r}from"react/jsx-runtime";import{useRef as t,useState as n,useEffect as e,Children as i,isValidElement as o}from"react";import u from"../animatable.js";import c from"../hooks/use-mount-effect.js";function f(r,t={}){return i.forEach(r,(r=>{var n;if(!o(r))return;const e=null===(n=r.type)||void 0===n?void 0:n.name;"Animatable"!==e&&"Animate"!==e||!("id"in r.props)||(t[r.props.id]=!0),f(r.props.children,t)})),t}function l(r,t){const n=typeof r,e=typeof t;if(n!==e)return!1;if(o(r))return!(!o(t)||r.key!==t.key)&&l(r.props,t.props);if(Array.isArray(r)){if(!Array.isArray(t)||r.length!==t.length)return!1;for(let n=0;n<r.length;n++)if(!l(r[n],t[n]))return!1;return!0}if("object"===n&&null!==r&&null!==t){const n=Object.keys(r),e=Object.keys(t);if(n.length!==e.length)return!1;if(!n.length)return r.toString()===t.toString();for(let i=0;i<n.length;i++)if(!(n[i]in t)||!l(r[n[i]],t[e[i]]))return!1;return!0}return"function"===n&&n===e||r===t}function a(r,t){try{return l(r,t)}catch(r){return!1}}function s({children:i,transition:o}){const l=t(null),s=t(f(i)),[m,p]=n(i);return e((()=>{if(!l.current||a(m,i))return;let r=0,t=f(i);for(const n of l.current.children)n.current&&!n.current.manual&&n.current.id in s.current&&!(n.current.id in t)&&(r=Math.max(n.current.trigger("unmount"),r));s.current=t,setTimeout((()=>p(i)),1e3*r)}),[i]),c((()=>{var r;if(l.current)for(const t of l.current.children)(null===(r=t.current)||void 0===r?void 0:r.timeline.mounted)&&t.current.adaptive&&t.current.timeline.transition(void 0,o)}),[m]),r(u,{ref:l,cachable:[],passthrough:!0,children:m})}export{s as default};
3
3
  //# sourceMappingURL=layout-group.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinityfx/lively",
3
- "version": "4.0.0-alpha.3",
3
+ "version": "4.0.0-beta.0",
4
4
  "type": "module",
5
5
  "description": "Feature complete, lightweight react animation library.",
6
6
  "main": "dist/index.js",