@pixodesk/svg-animator-web 1.0.44 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1 +1 @@
1
- import{PX_ANIM_ATTR_NAME as e,PX_ANIM_SRC_ATTR_NAME as n,PX_COLOR_ATTR_NAMES as t,PX_CSS_ONLY_STYLE_PROPS as r,PX_DEFAULT_DURATION_MS as o,PX_DISALLOWED_SVG_TAGS_LOWER as l,PX_PCT_BASED_ATTR_NAMES as i,PX_STYLE_ATTR_NAMES as s,PX_TEXT_CONTENT_ATTR as a,PX_TRANSFORM_FN_NAMES as u,PxAnimatorConfigSchema as c,PxDefinitionsSchema as d,PxDiagnosticCode as f,PxDiagnosticKind as m,PxMouseOutAction as v,PxNodeBaseSchema as h,PxScrollSchema as g,PxSvgNodeRootSchema as y,PxTimelineEngine as p,PxTimelineEngineSetting as b,PxTriggerSchema as w,PxTriggerStart as E,__objRest as A,__spreadProps as S,__spreadValues as P,applyAnimatorConfig as x,bezierToSvgPath as C,camelCaseToKebabWordIfNeeded as R,clamp as T,clampSeekMs as k,composeTransformParts as F,createAdapterAnimator as j,createDiagnostics as q,createVisibilityGate as L,cubicBezier as M,foldTimelineOverride as O,generateNewIds as N,getAnimatorConfig as z,getDefinitions as W,interpolateValue as B,isNativeForced as H,isPxDocument as D,isValidPlaybackRate as I,kebabToCamelCaseWord as G,keyframeEasing as U,keyframeValue as _,materializeAllInTree as K,mayUseNativeScrollTimeline as V,normalizeBindings as X,progressToTimeMs as Y,px as $,reportDocumentDiagnostics as J,resolveTimelineEngine as Q,resolveTrigger as Z,sanitizeAttributeValue as ee,seekCeilingMs as ne,splitEasing as te,timeToProgress as re,toDomProps as oe,toRGBA as le,validateDocument as ie,validateNodeEffects as se}from"./chunk-AROHP6GD.min.js";function ae(e){return"scroll"===(null==e?void 0:e.timelineSource)}function ue(e,n,t,r){var o;const[l,i]=function(e,n,t){const r=n,o=t;switch(e){case"cover":return[0,r+o];case"entry":return[0,Math.min(r,o)];case"contain":return[Math.min(r,o),Math.max(r,o)];case"exit":return[Math.max(r,o),r+o];case"entry-crossing":return[0,r];case"exit-crossing":return[o,r+o]}}(null!=(o=null==e?void 0:e.phase)?o:"cover",t,r);return l+("number"==typeof(null==e?void 0:e.fraction)?e.fraction:n)*(i-l)}var ce=Symbol.for("@pixodesk/svg-animator-web:animators"),de="__pixodeskAnimators";function fe(){const e=globalThis;let n=e[ce];if(!n){const t=new Set,r=new Set;n={animators:t,listeners:r,getAll:()=>Array.from(t),subscribe:e=>(r.add(e),()=>{r.delete(e)})},e[ce]=n,void 0===e[de]&&(e[de]=n)}return n}function me(){return fe().getAll()}function ve(e){return fe().subscribe(e)}function he(e,n){for(const t of fe().listeners)try{t(e,n)}catch(e){setTimeout(()=>{throw e},0)}}function ge(e,n,t){const r=null!=t?t:q(void 0,"[PxAnimator]"),o=[],l=()=>{for(const e of o.splice(0))e()},i=Z(n),s=e.getRootElement();if(!s)return r.warn(m.host,f.triggersNoRoot),l;let a=!1;const u=L(s,i,{isPlaying:()=>e.isPlaying(),play:()=>{a&&(a=!1,e.setPlaybackRate(1)),e.play()},pause:()=>e.pause(),cancel:()=>e.cancel()});switch(o.push(()=>u.dispose()),i.start){case E.load:{const e=()=>u.requestStart(!1);"complete"===document.readyState?e():(window.addEventListener("load",e,{once:!0}),o.push(()=>window.removeEventListener("load",e)));break}case E.mouseOver:{let n=!1;const t=()=>{n=!0,u.requestStart(!0)},r=()=>{n&&(()=>{switch(i.mouseOut){case v.pause:e.pause();break;case v.reset:e.cancel();break;case v.reverse:a=!0,e.setPlaybackRate(-1),e.play();case v.continue:}})()};s.addEventListener("mouseenter",t),s.addEventListener("mouseleave",r),o.push(()=>{s.removeEventListener("mouseenter",t),s.removeEventListener("mouseleave",r)});break}case E.click:{const n=()=>{e.isPlaying()?e.pause():u.requestStart(!0)};s.addEventListener("click",n),o.push(()=>s.removeEventListener("click",n));break}case E.none:}return l}function ye(e){return"#"+function(e){const n=globalThis.CSS;return"function"==typeof(null==n?void 0:n.escape)?n.escape(e):e.replace(/^([0-9])/,(e,n)=>"\\3"+n+" ").replace(/([^\w\-\\ ])/g,"\\$1")}(e)}function pe(e,n,t,r){var o;const l=z(e)||{},i=q(t,"[PxAnimator]");if(!r)if(e.id){const n=ye(e.id);(r=document.querySelector(n))||i.warn(m.host,f.noRootForSelector,n)}else i.warn(m.host,f.noRootElement);const a=j(e,n||function(e,n){const t=new Set,r=null!=n?n:q(void 0,"[PxAnimator]");return{isConnected:()=>!e||e.isConnected,setAttribute:(n,o,l)=>{o=R(o);const i=ye(n),a=(null==e?void 0:e.querySelectorAll(i))||document.querySelectorAll(i);0!==a.length||t.has(i)||(t.add(i),r.warn(m.host,f.setAttributeNoElement,i));for(let e=0;e<a.length;e++){const n=a[e],t="transform"===o&&"pattern"===n.tagName?"patternTransform":o;n.setAttribute(t,l),s.has(o)&&(n.style[o]=l)}}}}(r,i),t),u=S(P({},a),{getRootElement:()=>r||null});if(ae(l))l.trigger&&i.warn(m.usage,f.scrollTriggerIgnored);else{const e=ge(u,null!=(o=l.trigger)?o:{},i),n=u.destroy.bind(u);u.destroy=()=>{e(),n()}}return u}function be(e,n,r,o){let l=_(e);const s=U(e),a={offset:n,easing:s&&Array.isArray(s)?"cubic-bezier("+s.join(",")+")":void 0};let c,d=r;return t.has(r)&&Array.isArray(l)?c=le(l):"transform"!==r||null===l||"object"!=typeof l||Array.isArray(l)?u.has(r)?(Array.isArray(l)&&("translate"===r&&(l=l.map(e=>e+"px")),l=l.join(",")),"rotate"===r&&(l+="deg"),c=r+"("+l+")",d="transform"):c="d"===r?'path("'+(l&&"object"==typeof l&&Array.isArray(l.paths)?l.paths:[]).map(e=>C(e,!0)).join("")+'")':i.has(r)&&"number"==typeof l?100*l+"%":""+l:(c=F(l,{withUnits:!0}),d="transform"),CSS.supports(R(d),c)||o.add(d),d=G(d),a[d]=c,a}function we(e,n,t){var r,o,l,i,s;const a=[];for(let u=0;u<n.length;u++){const c=n[u],d=null!=(r=c.t)?r:0;if(d<0){const t=n[u+1];if(t&&(null!=(o=t.t)?o:0)>=0){const n=(0-d)/((null!=(l=t.t)?l:0)-d),r=c.e?M(c.e)(n):n,{right:o}=te(c.e,n);a.push({t:0,v:B(e,c.v,t.v,r),e:o})}continue}if(d>t){const r=n[u-1];if(r&&(null!=(i=r.t)?i:0)<=t){const n=null!=(s=r.t)?s:0,o=(t-n)/(d-n),l=r.e?M(r.e)(o):o,{left:i}=te(r.e,o);a.length>0&&(a[a.length-1]=S(P({},a[a.length-1]),{e:i})),a.push({t:t,v:B(e,r.v,c.v,l),e:void 0})}break}a.push(c)}return a}function Ee(e,n,t){var r;const o=new Map;for(const[l,i]of Object.entries(e)){const e=t.duration||1,s=we(l,i.keyframes||[],e),a=[];for(let t=0;t<s.length;t++){const o=s[t],i=be(o,T((null!=(r=o.t)?r:0)/e,0,1),l,n);0===t&&(i.offset||0)>0&&a.push(S(P({},i),{offset:0})),a.push(i)}a.length>0&&(a[a.length-1].offset||0)<1&&a.push(S(P({},a[a.length-1]),{offset:1})),a.length>0&&o.set(l,a)}return o}function Ae(e,n,t,r,o){var l,i;const s=z(e)||{},a=q(n,"[PxAnimator]");if(!t)if(e.id){const n=ye(e.id);(t=document.querySelector(n))||a.warn(m.host,f.noRootForSelector,n)}else a.warn(m.host,f.noRootElement);const u=X(e,p.native),c=[],d=s.iterations;let v;"number"==typeof d&&(v=d),"infinite"===d&&(v=1/0);const h=new Set;let g=!1,y=!1;(null==u?void 0:u.length)||a.warn(m.document,f.noBindings);for(const e of u||[]){const r=e.animate;if(!r||"object"!=typeof r||Array.isArray(r)){a.warn(m.document,f.unresolvedBinding,e);continue}const i=ye(e.id),u=(null==t?void 0:t.querySelectorAll(i))||document.querySelectorAll(i);0===u.length&&a.warn(m.host,f.noElementsForSelector,i);const d=Ee(r,h,s),p=s.delay&&s.delay>0?s.delay:void 0;let b;if(s.delay&&s.delay<0&&s.duration){const e=-s.delay;b=v===1/0?e%s.duration:Math.min(e,s.duration*(null!=v?v:1))}const w={duration:s.duration,delay:p,fill:null!=(l=s.fill)?l:"forwards",direction:s.direction,iterations:v};for(let e=0;e<u.length;e++){const t=u[e];for(const[,e]of d)if(e.length>0)try{const r=new KeyframeEffect(t,e,w),l=new Animation(r,o?o.timeline:document.timeline);if(o){const e=l;o.rangeStart&&(e.rangeStart=o.rangeStart),o.rangeEnd&&(e.rangeEnd=o.rangeEnd)}(null==n?void 0:n.onFinish)&&(l.onfinish=()=>{var e;g||(g=!0,null==(e=n.onFinish)||e.call(n))}),(null==n?void 0:n.onRemove)&&(l.onremove=()=>{var e;y||(y=!0,null==(e=n.onRemove)||e.call(n))}),void 0!==b&&(l.currentTime=b),c.push(l)}catch(e){a.warn(m.internal,f.animationBuildFailed,e)}}}if(!r&&h.size)return a.warn(m.platform,f.unsupportedAnimatedAttrs,[...h].join(", ")),null;const b={isReady:()=>!0,getRootElement:()=>t||null,isPlaying:()=>{var e;return"running"===(null==(e=c[0])?void 0:e.playState)},play:()=>{var e;g=!1,c.forEach(e=>e.play()),null==(e=null==n?void 0:n.onPlay)||e.call(n)},pause:()=>{var e;c.forEach(e=>e.pause()),null==(e=null==n?void 0:n.onPause)||e.call(n)},cancel:()=>{var e;g=!1,c.forEach(e=>e.cancel()),null==(e=null==n?void 0:n.onCancel)||e.call(n)},finish:()=>{var e;for(const n of c)try{(null==(e=n.effect)?void 0:e.getTiming().iterations)===1/0?(n.effect.updateTiming({iterations:1}),n.finish(),n.effect.updateTiming({iterations:1/0})):n.finish()}catch(e){n.cancel()}},setPlaybackRate:e=>I(e)?(c.forEach(n=>n.playbackRate=e),b):(a.warn(m.usage,f.rateRejected),b),getCurrentTime:()=>{var e,n;const t=null!=(n=null==(e=c[0])?void 0:e.currentTime)?n:null;return null!==t?+t:null},setCurrentTime:e=>{var n;const t=ne(null!=(n=s.duration)?n:0,null!=v?v:1),r=t>0?k(e,t):Math.max(0,e);g=!1,c.forEach(e=>{e.currentTime=r})},getCurrentProgress:()=>{var e;const n=b.getCurrentTime();return null===n?null:re(n,null!=(e=s.duration)?e:0,null!=v?v:1)},setCurrentProgress:e=>{var n;b.setCurrentTime(Y(e,null!=(n=s.duration)?n:0,null!=v?v:1))},destroy:()=>{var e;b.cancel(),c.splice(0,c.length),y||(y=!0,null==(e=null==n?void 0:n.onRemove)||e.call(n))}};if("scroll"===s.timelineSource)s.trigger&&a.warn(m.usage,f.scrollTriggerIgnored);else{const e=ge(b,null!=(i=s.trigger)?i:{},a),n=b.destroy.bind(b);b.destroy=()=>{e(),n()}}return o&&c.forEach(e=>e.play()),b}function Se(e,n,t){var r,o,l;const i="number"==typeof(null==e?void 0:e.fraction)?e.fraction:n,s=null==(o=null==(r=globalThis.CSS)?void 0:r.percent)?void 0:o.call(r,100*i);if(void 0!==s)return t?{rangeName:null!=(l=null==e?void 0:e.phase)?l:"cover",offset:s}:{offset:s}}function Pe(e,n){const t=document.body,r=document.documentElement;for(let o=e.parentElement;o;o=o.parentElement){if(o===t||o===r)return null;const e=getComputedStyle(o),l="y"===n?e.overflowY:e.overflowX;if("auto"===l||"scroll"===l||"hidden"===l||"overlay"===l)return o}return null}function xe(){return document.scrollingElement||document.documentElement}function Ce(e,n,t){var r,o;const l=null!=t?t:q(void 0,"[PxAnimator]"),i=null==n?void 0:n.trim();if(!i)return e;if("parent"===i){let n=null;for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){const e=getComputedStyle(t).position;"sticky"!==e&&"fixed"!==e||(n=t)}return null!=(o=null!=(r=null==n?void 0:n.parentElement)?r:e.parentElement)?o:e}if("scroller"===i)return Pe(e,"y")||Pe(e,"x")||xe();let s=null;try{s=document.querySelector(i)}catch(n){return l.warn(m.document,f.scrollSubjectInvalid,i),e}return s||(l.warn(m.host,f.scrollSubjectNoMatch,i),e)}function Re(e,n){const t=e;if(!(null==n?void 0:n.pin)||!t.style)return()=>{};const r=t.style,o=r.position,l=r.top;r.position="sticky";const i="center"===n.pinAlign?.5:"bottom"===n.pinAlign?1:0,s=()=>{var t;const o=null!=(t=n.pinOffset)?t:0;if(!i)return void(r.top=o+"px");const l=function(e){const n=Pe(e,"y");return n?n.clientHeight:document.documentElement.clientHeight}(e),s=e.getBoundingClientRect().height;r.top=Math.round((l-s)*i+o)+"px"};s();let a=null;const u=i?s:null;i&&(u&&window.addEventListener("resize",u),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(s),a.observe(e)));let c=null;const d=e.parentElement;return n.pinDistance&&n.pinDistance>0&&d&&(c=document.createElement("div"),c.setAttribute("data-px-pin",""),c.style.height=100*n.pinDistance+"vh",d.insertBefore(c,e),c.appendChild(e)),()=>{u&&window.removeEventListener("resize",u),null==a||a.disconnect(),r.position=o,r.top=l,(null==c?void 0:c.parentElement)&&(c.parentElement.insertBefore(e,c),c.remove())}}function Te(e,n,t){let r,o=n;e.resetOnFinish&&(o=S(P({},n),{onFinish:()=>{var e;null==(e=null==n?void 0:n.onFinish)||e.call(n),null==r||r.cancel()}}));const l=t(o);return r=l,e.debugGlobalName&&(window[e.debugGlobalName]=l),l}function ke(e,n,t){if(!e)return null;const o=e,{type:i,children:s,style:u}=o,c=A(o,["type","children","style"]),d=c.domType;void 0!==d&&delete c.domType;const v=W(e)||n,h=u;let g;if(s)for(const e of s){const n=ke(e,v,t);n&&(g||(g=[]),g.push(n))}const y=function(e,n,t,o,i,s){if(l.has(e.toLowerCase()))return(null!=s?s:q(void 0,"[PxAnimator]")).warn(m.document,f.blockedTag,e),null;const a=document.createElementNS("http://www.w3.org/2000/svg",e);for(const e in n){const t=ee(e,n[e]);void 0!==t&&(r.has(e)?a.style[e]=String(t):a.setAttribute(R(e),t))}if(t)for(const e in t)a.style[e]=String(t[e]);if(null==o?void 0:o.length)for(const e of o)a.appendChild(e);else i&&(a.textContent=i);return a}(i||"g",oe(c),h,g,c[a],t);return y&&void 0!==d&&y.setAttribute("type",d),y}function Fe(e){const{src:n,doc:t,container:r,resetTimeline:l}=e,i=function(e){return"adapter"in e}(e)?e.adapter:void 0,s=function(e){const{timeline:n,duration:t,delay:r,iterations:o,start:l}=e;return O(n,{duration:t,delay:r,iterations:o,start:l})}(e);let a;const u=function(e){const n=e=>{a&&he(e,a)};return S(P({},e),{onPlay:()=>{var t;null==(t=null==e?void 0:e.onPlay)||t.call(e),n("play")},onPause:()=>{var t;null==(t=null==e?void 0:e.onPause)||t.call(e),n("pause")},onCancel:()=>{var t;null==(t=null==e?void 0:e.onCancel)||t.call(e),n("cancel")},onFinish:()=>{var t;null==(t=null==e?void 0:e.onFinish)||t.call(e),n("finish")}})}(function(e){const{onPlay:n,onPause:t,onCancel:r,onFinish:o,onRemove:l,onStop:i,onWarn:s,onError:a,muteWarn:u,muteError:c}=null!=e?e:{},d=e=>e||i?()=>{null==e||e(),null==i||i()}:void 0;return{onPlay:n,onPause:d(t),onCancel:d(r),onFinish:d(o),onRemove:d(l),onWarn:s,onError:a,muteWarn:u,muteError:c}}(e));if(void 0!==t&&void 0!==n)throw new Error("createAnimator: provide either `src` or `doc`, not both");if(void 0===t&&void 0===n)throw new Error("createAnimator: either `src` or `doc` is required");let c=null,d=[],v=!1;const h=e=>{c?e(c):d&&d.push(e)},g=q(u,"[PxAnimator]"),y=(e,n,...t)=>{d=null,g.error(e,n,...t)},p=e=>{try{(e=>{c=e;const n=d;d=null,null==n||n.forEach(n=>n(e))})(function(e,n,t,r,l,i){const s=q(t,"[PxAnimator]"),a=se(e);for(const e of a)s.warn(m.document,f.effectsShape,e);if(J(e,"[PxAnimator] createAnimator"),void 0!==l||i){const n=x(e,null!=l?l:{},{resetTimeline:!!i});for(const e of n.warnings)s.warn(m.usage,f.timelineOverrideIgnored,e);e=n.doc}const u=z(e)||{},c=Q(u.engine);e=K(e,c);let d=null;if(r){e=N(e);const n="string"==typeof r?document.querySelector(r):r;n&&(d=ke(e,void 0,s),d&&n.replaceChildren(d))}const v=function(e,n,t,r){return function(e,n,t,r){const l=z(e)||{},i=q(t,"[PxAnimator]");return ae(l)?Te(l,t,t=>{var s;let a=()=>{};if(V(l.engine)&&r){a=Re(r,l.scroll);const n=function(e,n,t){var r,o,l,i;const s=null!=t?t:q(void 0,"[PxAnimator]");if(!n||!ae(n))return null;const a=n.scroll||{},u=null!=(r=a.kind)?r:"view";if(a.smoothing)return s.warn(m.platform,f.scrollSmoothingNeedsOwnDriver),null;const c=globalThis,d="view"===u,v=d?c.ViewTimeline:c.ScrollTimeline;if("function"!=typeof v)return null;const h=null!=(o=a.axis)?o:"block";let g;try{g=new v(d?{subject:Ce(e,a.subject,s),axis:h}:{source:"root"===a.source?xe():Pe(e,"y")||Pe(e,"x")||xe(),axis:h})}catch(e){return s.warn(m.platform,f.scrollNativeUnavailable,e),null}return{timeline:g,rangeStart:Se(null==(l=a.range)?void 0:l.start,0,d),rangeEnd:Se(null==(i=a.range)?void 0:i.end,1,d)}}(r,l,i);if(n){const o=Ae(e,t,r,H(l.engine),n);if(o){const e=o.destroy.bind(o);return o.destroy=()=>{a(),e()},o}}a(),a=()=>{}}const u=(l.engine!==b.js?Ae(e,t,r,H(l.engine)):null)||pe(e,n,t,r),c=(null==(s=u.getRootElement)?void 0:s.call(u))||r;if(c){a=Re(c,l.scroll);const e=("number"==typeof(null==(d=l)?void 0:d.duration)&&d.duration>0?d.duration:o)*("number"==typeof(null==d?void 0:d.iterations)&&d.iterations>0?d.iterations:1),n=function(e,n,t,r){var o,l;if(!n||!ae(n))return null;const i=null!=r?r:q(void 0,"[PxAnimator]"),s=n.scroll||{},a=null!=(o=s.kind)?o:"view",u=Ce(e,s.subject,i),c=Pe(e,"y")||Pe(e,"x"),d="scroll"===a&&"root"===s.source?xe():c||xe(),f=d===xe(),m=function(e,n){const t=null!=e?e:"block";if("x"===t||"y"===t)return t;const r=!!n&&n.startsWith("vertical");return"inline"===t?r?"y":"x":r?"x":"y"}(s.axis,getComputedStyle(d).writingMode),v=()=>{if("scroll"===a)return function(e,n,t){var r,o;const l=n>0?T(e/n,0,1):1,i="number"==typeof(null==(r=null==t?void 0:t.start)?void 0:r.fraction)?t.start.fraction:0,s="number"==typeof(null==(o=null==t?void 0:t.end)?void 0:o.fraction)?t.end.fraction:1;return s<=i?l>=s?1:0:T((l-i)/(s-i),0,1)}("y"===m?d.scrollTop:d.scrollLeft,"y"===m?d.scrollHeight-d.clientHeight:d.scrollWidth-d.clientWidth,s.range);const e=u.getBoundingClientRect();let n,t;if(f)n=0,t="y"===m?document.documentElement.clientHeight:document.documentElement.clientWidth;else{const e=d.getBoundingClientRect();n="y"===m?e.top:e.left,t="y"===m?d.clientHeight:d.clientWidth}return function(e,n,t,r){const o=t-e,l=ue(null==r?void 0:r.start,0,n,t),i=ue(null==r?void 0:r.end,1,n,t);return i<=l?o>=i?1:0:T((o-l)/(i-l),0,1)}(("y"===m?e.top:e.left)-n,"y"===m?e.height:e.width,t,s.range)},h=Math.max(0,null!=(l=s.smoothing)?l:0)/1e3;let g=!1,y=null,p=null,b=0,w=null;const E=()=>{w=null,g||(e=>{if(!h)return void t(e);if(null===y)return y=e,void t(e);if(null!==p)return;b=0;const n=e=>{if(p=null,g)return;const r=b?Math.min(.1,(e-b)/1e3):1/60;b=e;const o=v(),l=1-Math.exp(-r/h);y+=(o-y)*l,Math.abs(o-y)<.001&&(y=o),t(y),y!==o&&(p=requestAnimationFrame(n))};p=requestAnimationFrame(n)})(v())},A=()=>{g||null!==w||(w=requestAnimationFrame(E))},S=f?window:d;let P;S.addEventListener("scroll",A,{passive:!0}),window.addEventListener("resize",A,{passive:!0}),"undefined"!=typeof ResizeObserver&&(P=new ResizeObserver(A),P.observe(u),u!==e&&P.observe(e),f||P.observe(d));const x={destroy:()=>{g||(g=!0,S.removeEventListener("scroll",A),window.removeEventListener("resize",A),null==P||P.disconnect(),null!==w&&(cancelAnimationFrame(w),w=null),null!==p&&(cancelAnimationFrame(p),p=null))},refresh:()=>{g||(y=v(),t(y))}};return x.refresh(),x}(c,l,n=>u.setCurrentTime(n*e),i);if(n){const e=u.destroy.bind(u);u.destroy=()=>{n.destroy(),a(),e()}}}else i.warn(m.host,f.scrollNoRootToObserve);var d;return u}):Te(l,t,t=>l.engine===b.js?pe(e,n,t,r):Ae(e,t,r,H(l.engine))||pe(e,n,t,r))}(e,n,t,r)}(e,n,t,d);if(r&&d){const e=d,n=v.destroy.bind(v);v.destroy=()=>{n(),e.remove()}}return v}(e,i,u,r,s,l))}catch(e){const n=function(e){return e instanceof Error?e:new Error(String(e))}(e);y(m.internal,f.buildFailed,n)}};return a={isReady:()=>!!c,getRootElement:()=>c?c.getRootElement():null,isPlaying:()=>(null==c?void 0:c.isPlaying())||!1,play:()=>{h(e=>e.play())},pause:()=>{h(e=>e.pause())},cancel:()=>{h(e=>e.cancel())},finish:()=>{h(e=>e.finish())},setPlaybackRate:e=>{h(n=>n.setPlaybackRate(e))},getCurrentTime:()=>c?c.getCurrentTime():null,setCurrentTime:e=>{h(n=>n.setCurrentTime(e))},getCurrentProgress:()=>c?c.getCurrentProgress():null,setCurrentProgress:e=>{h(n=>n.setCurrentProgress(e))},destroy:()=>{v=!0,d=null,null==c||c.destroy()}},function(e){const n=fe();if(n.animators.has(e))return;n.animators.add(e),he("add",e);const t=e.destroy.bind(e);e.destroy=()=>{t(),n.animators.delete(e)&&he("remove",e)}}(a),void 0!==t?p(t):fetch(n).then(e=>e.json()).then(e=>{v||(D(e)?p(e):y(m.document,f.invalidDocumentAtSrc,n))}).catch(e=>{var t;y(m.host,f.loadFailed,n,null!=(t=null==e?void 0:e.message)?t:String(e))}),a}function je(t){const r=document.querySelectorAll("["+n+"]");for(let o=0;o<r.length;o++){const l=r[o];if(!l[e]){const r=l.getAttribute(n);r&&(l[e]=Fe(S(P({},t),{src:r,container:l})))}}}export{c as PxAnimatorConfigSchema,d as PxDefinitionsSchema,m as PxDiagnosticKind,h as PxNodeBaseSchema,g as PxScrollSchema,y as PxSvgNodeRootSchema,b as PxTimelineEngineSetting,w as PxTriggerSchema,j as createAdapterAnimator,Fe as createAnimator,N as generateNewIds,me as getAllAnimators,je as loadTagAnimators,ve as onAnimatorsChange,$ as px,ke as renderNode,ge as setupAnimationTriggers,oe as toDomProps,ie as validateDocument};
1
+ import{PX_ANIM_ATTR_NAME as e,PX_ANIM_SRC_ATTR_NAME as n,PX_COLOR_ATTR_NAMES as t,PX_CSS_ONLY_STYLE_PROPS as r,PX_DEFAULT_DURATION_MS as o,PX_DISALLOWED_SVG_TAGS_LOWER as l,PX_PCT_BASED_ATTR_NAMES as i,PX_STYLE_ATTR_NAMES as s,PX_TEXT_CONTENT_ATTR as a,PX_TRANSFORM_FN_NAMES as c,PxAnimatorConfigSchema as u,PxDefinitionsSchema as d,PxDiagnosticCode as f,PxDiagnosticKind as m,PxMouseOutAction as v,PxNodeBaseSchema as h,PxScrollSchema as g,PxSvgNodeRootSchema as y,PxTimelineEngine as p,PxTimelineEngineSetting as b,PxTriggerSchema as w,PxTriggerStart as E,__objRest as A,__spreadProps as S,__spreadValues as x,applyAnimatorConfig as P,bezierToSvgPath as C,camelCaseToKebabWordIfNeeded as R,clamp as T,clampSeekMs as k,composeTransformParts as j,createAdapterAnimator as F,createDiagnostics as q,createVisibilityGate as L,cubicBezier as O,foldTimelineOverride as M,generateNewIds as N,getAnimatorConfig as z,interpolateValue as W,isNativeForced as B,isPxDocument as D,isValidPlaybackRate as H,kebabToCamelCaseWord as I,keyframeEasing as G,keyframeValue as K,materializeAllInTree as U,mayUseNativeScrollTimeline as X,normalizeBindings as _,progressToTimeMs as Q,px as V,reportDocumentDiagnostics as Y,resolveTimelineEngine as Z,resolveTrigger as $,sanitizeAttributeValue as J,seekCeilingMs as ee,splitEasing as ne,timeToProgress as te,toDomProps as re,toRGBA as oe,validateDocument as le,validateNodeEffects as ie}from"./chunk-RQ5KZXDT.min.js";var se="domType";function ae(e,n,t){return e?ce(e,n,t,!0,0):null}function ce(e,n,t,o,i){const s=e,{type:c,children:u,style:d}=s,f=A(s,["type","children","style"]),v=c||"g";if(l.has(v.toLowerCase()))return(null!=t?t:q(void 0,"[PxAnimator]")).warn(m.document,1103,v),null;const h=f[se];void 0!==h&&delete f[se];const g={};let y;const p=re(f);for(const e of Object.keys(p)){const n=J(e,p[e]);void 0!==n&&(r.has(e)?(null!=y?y:y={})[e]=String(n):g["className"===e?"class":R(e)]=n)}if(void 0!==h&&(g.type=String(h)),d)for(const e of Object.keys(d))(null!=y?y:y={})[e]=String(d[e]);const b=[];u&&u.forEach((e,r)=>{const o=ce(e,n,t,!1,r);null!==o&&b.push(o)});const w=f[a],E=!b.length&&"string"==typeof w&&w?w:void 0;return n({tag:v,attrs:g,style:y,children:b,text:E,node:e,isRoot:o,index:i})}function ue(e){return"scroll"===(null==e?void 0:e.timelineSource)}function de(e,n,t,r){var o;const[l,i]=function(e,n,t){const r=n,o=t;switch(e){case"cover":return[0,r+o];case"entry":return[0,Math.min(r,o)];case"contain":return[Math.min(r,o),Math.max(r,o)];case"exit":return[Math.max(r,o),r+o];case"entry-crossing":return[0,r];case"exit-crossing":return[o,r+o]}}(null!=(o=null==e?void 0:e.phase)?o:"cover",t,r);return l+("number"==typeof(null==e?void 0:e.fraction)?e.fraction:n)*(i-l)}var fe=Symbol.for("@pixodesk/svg-animator-web:animators"),me="__pixodeskAnimators";function ve(){const e=globalThis;let n=e[fe];if(!n){const t=new Set,r=new Set;n={animators:t,listeners:r,getAll:()=>Array.from(t),subscribe:e=>(r.add(e),()=>{r.delete(e)})},e[fe]=n,void 0===e[me]&&(e[me]=n)}return n}function he(){return ve().getAll()}function ge(e){return ve().subscribe(e)}function ye(e,n){for(const t of ve().listeners)try{t(e,n)}catch(e){setTimeout(()=>{throw e},0)}}function pe(e,n,t){const r=null!=t?t:q(void 0,"[PxAnimator]"),o=[],l=()=>{for(const e of o.splice(0))e()},i=$(n),s=e.getRootElement();if(!s)return r.warn(m.host,f.triggersNoRoot),l;let a=!1;const c=L(s,i,{isPlaying:()=>e.isPlaying(),play:()=>{a&&(a=!1,e.setPlaybackRate(1)),e.play()},pause:()=>e.pause(),cancel:()=>e.cancel()});switch(o.push(()=>c.dispose()),i.start){case E.load:{const e=()=>c.requestStart(!1);"complete"===document.readyState?e():(window.addEventListener("load",e,{once:!0}),o.push(()=>window.removeEventListener("load",e)));break}case E.mouseOver:{let n=!1;const t=()=>{n=!0,c.requestStart(!0)},r=()=>{n&&(()=>{switch(i.mouseOut){case v.pause:e.pause();break;case v.reset:e.cancel();break;case v.reverse:a=!0,e.setPlaybackRate(-1),e.play();case v.continue:}})()};s.addEventListener("mouseenter",t),s.addEventListener("mouseleave",r),o.push(()=>{s.removeEventListener("mouseenter",t),s.removeEventListener("mouseleave",r)});break}case E.click:{const n=()=>{e.isPlaying()?e.pause():c.requestStart(!0)};s.addEventListener("click",n),o.push(()=>s.removeEventListener("click",n));break}case E.none:}return l}function be(e){return"#"+function(e){const n=globalThis.CSS;return"function"==typeof(null==n?void 0:n.escape)?n.escape(e):e.replace(/^([0-9])/,(e,n)=>"\\3"+n+" ").replace(/([^\w\-\\ ])/g,"\\$1")}(e)}function we(e,n,t,r){var o;const l=z(e)||{},i=q(t,"[PxAnimator]");if(!r)if(e.id){const n=be(e.id);(r=document.querySelector(n))||i.warn(m.host,f.noRootForSelector,n)}else i.warn(m.host,f.noRootElement);const a=F(e,n||function(e,n){const t=new Set,r=null!=n?n:q(void 0,"[PxAnimator]");return{isConnected:()=>!e||e.isConnected,setAttribute:(n,o,l)=>{o=R(o);const i=be(n),a=(null==e?void 0:e.querySelectorAll(i))||document.querySelectorAll(i);0!==a.length||t.has(i)||(t.add(i),r.warn(m.host,f.setAttributeNoElement,i));for(let e=0;e<a.length;e++){const n=a[e],t="transform"===o&&"pattern"===n.tagName?"patternTransform":o;n.setAttribute(t,l),s.has(o)&&(n.style[o]=l)}}}}(r,i),t),c=S(x({},a),{getRootElement:()=>r||null});if(ue(l))l.trigger&&i.warn(m.usage,f.scrollTriggerIgnored);else{const e=pe(c,null!=(o=l.trigger)?o:{},i),n=c.destroy.bind(c);c.destroy=()=>{e(),n()}}return c}function Ee(e,n,r,o){let l=K(e);const s=G(e),a={offset:n,easing:s&&Array.isArray(s)?"cubic-bezier("+s.join(",")+")":void 0};let u,d=r;return t.has(r)&&Array.isArray(l)?u=oe(l):"transform"!==r||null===l||"object"!=typeof l||Array.isArray(l)?c.has(r)?(Array.isArray(l)&&("translate"===r&&(l=l.map(e=>e+"px")),l=l.join(",")),"rotate"===r&&(l+="deg"),u=r+"("+l+")",d="transform"):u="d"===r?'path("'+(l&&"object"==typeof l&&Array.isArray(l.paths)?l.paths:[]).map(e=>C(e,!0)).join("")+'")':i.has(r)&&"number"==typeof l?100*l+"%":""+l:(u=j(l,{withUnits:!0}),d="transform"),CSS.supports(R(d),u)||o.add(d),d=I(d),a[d]=u,a}function Ae(e,n,t){var r,o,l,i,s;const a=[];for(let c=0;c<n.length;c++){const u=n[c],d=null!=(r=u.t)?r:0;if(d<0){const t=n[c+1];if(t&&(null!=(o=t.t)?o:0)>=0){const n=(0-d)/((null!=(l=t.t)?l:0)-d),r=u.e?O(u.e)(n):n,{right:o}=ne(u.e,n);a.push({t:0,v:W(e,u.v,t.v,r),e:o})}continue}if(d>t){const r=n[c-1];if(r&&(null!=(i=r.t)?i:0)<=t){const n=null!=(s=r.t)?s:0,o=(t-n)/(d-n),l=r.e?O(r.e)(o):o,{left:i}=ne(r.e,o);a.length>0&&(a[a.length-1]=S(x({},a[a.length-1]),{e:i})),a.push({t:t,v:W(e,r.v,u.v,l),e:void 0})}break}a.push(u)}return a}function Se(e,n,t){var r;const o=new Map;for(const[l,i]of Object.entries(e)){const e=t.duration||1,s=Ae(l,i.keyframes||[],e),a=[];for(let t=0;t<s.length;t++){const o=s[t],i=Ee(o,T((null!=(r=o.t)?r:0)/e,0,1),l,n);0===t&&(i.offset||0)>0&&a.push(S(x({},i),{offset:0})),a.push(i)}a.length>0&&(a[a.length-1].offset||0)<1&&a.push(S(x({},a[a.length-1]),{offset:1})),a.length>0&&o.set(l,a)}return o}function xe(e,n,t,r,o){var l,i;const s=z(e)||{},a=q(n,"[PxAnimator]");if(!t)if(e.id){const n=be(e.id);(t=document.querySelector(n))||a.warn(m.host,f.noRootForSelector,n)}else a.warn(m.host,f.noRootElement);const c=_(e,p.native),u=[],d=s.iterations;let v;"number"==typeof d&&(v=d),"infinite"===d&&(v=1/0);const h=new Set;let g=!1,y=!1;(null==c?void 0:c.length)||a.warn(m.document,f.noBindings);for(const e of c||[]){const r=e.animate;if(!r||"object"!=typeof r||Array.isArray(r)){a.warn(m.document,f.unresolvedBinding,e);continue}const i=be(e.id),c=(null==t?void 0:t.querySelectorAll(i))||document.querySelectorAll(i);0===c.length&&a.warn(m.host,f.noElementsForSelector,i);const d=Se(r,h,s),p=s.delay&&s.delay>0?s.delay:void 0;let b;if(s.delay&&s.delay<0&&s.duration){const e=-s.delay;b=v===1/0?e%s.duration:Math.min(e,s.duration*(null!=v?v:1))}const w={duration:s.duration,delay:p,fill:null!=(l=s.fill)?l:"forwards",direction:s.direction,iterations:v};for(let e=0;e<c.length;e++){const t=c[e];for(const[,e]of d)if(e.length>0)try{const r=new KeyframeEffect(t,e,w),l=new Animation(r,o?o.timeline:document.timeline);if(o){const e=l;o.rangeStart&&(e.rangeStart=o.rangeStart),o.rangeEnd&&(e.rangeEnd=o.rangeEnd)}(null==n?void 0:n.onFinish)&&(l.onfinish=()=>{var e;g||(g=!0,null==(e=n.onFinish)||e.call(n))}),(null==n?void 0:n.onRemove)&&(l.onremove=()=>{var e;y||(y=!0,null==(e=n.onRemove)||e.call(n))}),void 0!==b&&(l.currentTime=b),u.push(l)}catch(e){a.warn(m.internal,f.animationBuildFailed,e)}}}if(!r&&h.size)return a.warn(m.platform,f.unsupportedAnimatedAttrs,[...h].join(", ")),null;const b={isReady:()=>!0,getRootElement:()=>t||null,isPlaying:()=>{var e;return"running"===(null==(e=u[0])?void 0:e.playState)},play:()=>{var e;g=!1,u.forEach(e=>e.play()),null==(e=null==n?void 0:n.onPlay)||e.call(n)},pause:()=>{var e;u.forEach(e=>e.pause()),null==(e=null==n?void 0:n.onPause)||e.call(n)},cancel:()=>{var e;g=!1,u.forEach(e=>e.cancel()),null==(e=null==n?void 0:n.onCancel)||e.call(n)},finish:()=>{var e;for(const n of u)try{(null==(e=n.effect)?void 0:e.getTiming().iterations)===1/0?(n.effect.updateTiming({iterations:1}),n.finish(),n.effect.updateTiming({iterations:1/0})):n.finish()}catch(e){n.cancel()}},setPlaybackRate:e=>H(e)?(u.forEach(n=>n.playbackRate=e),b):(a.warn(m.usage,f.rateRejected),b),getCurrentTime:()=>{var e,n;const t=null!=(n=null==(e=u[0])?void 0:e.currentTime)?n:null;return null!==t?+t:null},setCurrentTime:e=>{var n;const t=ee(null!=(n=s.duration)?n:0,null!=v?v:1),r=t>0?k(e,t):Math.max(0,e);g=!1,u.forEach(e=>{e.currentTime=r})},getCurrentProgress:()=>{var e;const n=b.getCurrentTime();return null===n?null:te(n,null!=(e=s.duration)?e:0,null!=v?v:1)},setCurrentProgress:e=>{var n;b.setCurrentTime(Q(e,null!=(n=s.duration)?n:0,null!=v?v:1))},destroy:()=>{var e;b.cancel(),u.splice(0,u.length),y||(y=!0,null==(e=null==n?void 0:n.onRemove)||e.call(n))}};if("scroll"===s.timelineSource)s.trigger&&a.warn(m.usage,f.scrollTriggerIgnored);else{const e=pe(b,null!=(i=s.trigger)?i:{},a),n=b.destroy.bind(b);b.destroy=()=>{e(),n()}}return o&&u.forEach(e=>e.play()),b}function Pe(e,n,t){var r,o,l;const i="number"==typeof(null==e?void 0:e.fraction)?e.fraction:n,s=null==(o=null==(r=globalThis.CSS)?void 0:r.percent)?void 0:o.call(r,100*i);if(void 0!==s)return t?{rangeName:null!=(l=null==e?void 0:e.phase)?l:"cover",offset:s}:{offset:s}}function Ce(e,n){const t=document.body,r=document.documentElement;for(let o=e.parentElement;o;o=o.parentElement){if(o===t||o===r)return null;const e=getComputedStyle(o),l="y"===n?e.overflowY:e.overflowX;if("auto"===l||"scroll"===l||"hidden"===l||"overlay"===l)return o}return null}function Re(){return document.scrollingElement||document.documentElement}function Te(e,n,t){var r,o;const l=null!=t?t:q(void 0,"[PxAnimator]"),i=null==n?void 0:n.trim();if(!i)return e;if("parent"===i){let n=null;for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){const e=getComputedStyle(t).position;"sticky"!==e&&"fixed"!==e||(n=t)}return null!=(o=null!=(r=null==n?void 0:n.parentElement)?r:e.parentElement)?o:e}if("scroller"===i)return Ce(e,"y")||Ce(e,"x")||Re();let s=null;try{s=document.querySelector(i)}catch(n){return l.warn(m.document,f.scrollSubjectInvalid,i),e}return s||(l.warn(m.host,f.scrollSubjectNoMatch,i),e)}function ke(e,n){const t=e;if(!(null==n?void 0:n.pin)||!t.style)return()=>{};const r=t.style,o=r.position,l=r.top;r.position="sticky";const i="center"===n.pinAlign?.5:"bottom"===n.pinAlign?1:0,s=()=>{var t;const o=null!=(t=n.pinOffset)?t:0;if(!i)return void(r.top=o+"px");const l=function(e){const n=Ce(e,"y");return n?n.clientHeight:document.documentElement.clientHeight}(e),s=e.getBoundingClientRect().height;r.top=Math.round((l-s)*i+o)+"px"};s();let a=null;const c=i?s:null;i&&(c&&window.addEventListener("resize",c),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(s),a.observe(e)));let u=null;const d=e.parentElement;return n.pinDistance&&n.pinDistance>0&&d&&(u=document.createElement("div"),u.setAttribute("data-px-pin",""),u.style.height=100*n.pinDistance+"vh",d.insertBefore(u,e),u.appendChild(e)),()=>{c&&window.removeEventListener("resize",c),null==a||a.disconnect(),r.position=o,r.top=l,(null==u?void 0:u.parentElement)&&(u.parentElement.insertBefore(e,u),u.remove())}}function je(e,n,t){let r,o=n;e.resetOnFinish&&(o=S(x({},n),{onFinish:()=>{var e;null==(e=null==n?void 0:n.onFinish)||e.call(n),null==r||r.cancel()}}));const l=t(o);return r=l,e.debugGlobalName&&(window[e.debugGlobalName]=l),l}var Fe=({tag:e,attrs:n,style:t,children:r,text:o})=>{const l=document.createElementNS("http://www.w3.org/2000/svg",e);for(const e of Object.keys(n))l.setAttribute(e,n[e]);if(t){const e=l.style;for(const n of Object.keys(t))e[n]=t[n]}for(const e of r)l.appendChild(e);return void 0!==o&&(l.textContent=o),l};function qe(e,n,t){return ae(e,Fe,t)}function Le(e){return"adapter"in e||"rootElement"in e}function Oe(e){const{src:n,doc:t,container:r,resetTimeline:l}=e,i=Le(e)?e.adapter:void 0,s=Le(e)?e.rootElement:void 0,a=function(e){const{timeline:n,duration:t,delay:r,iterations:o,start:l}=e;return M(n,{duration:t,delay:r,iterations:o,start:l})}(e);let c;const u=function(e){const n=e=>{c&&ye(e,c)};return S(x({},e),{onPlay:()=>{var t;null==(t=null==e?void 0:e.onPlay)||t.call(e),n("play")},onPause:()=>{var t;null==(t=null==e?void 0:e.onPause)||t.call(e),n("pause")},onCancel:()=>{var t;null==(t=null==e?void 0:e.onCancel)||t.call(e),n("cancel")},onFinish:()=>{var t;null==(t=null==e?void 0:e.onFinish)||t.call(e),n("finish")}})}(function(e){const{onPlay:n,onPause:t,onCancel:r,onFinish:o,onRemove:l,onStop:i,onWarn:s,onError:a,muteWarn:c,muteError:u}=null!=e?e:{},d=e=>e||i?()=>{null==e||e(),null==i||i()}:void 0;return{onPlay:n,onPause:d(t),onCancel:d(r),onFinish:d(o),onRemove:d(l),onWarn:s,onError:a,muteWarn:c,muteError:u}}(e));if(void 0!==t&&void 0!==n)throw new Error("createAnimator: provide either `src` or `doc`, not both");if(void 0===t&&void 0===n)throw new Error("createAnimator: either `src` or `doc` is required");let d=null,v=[],h=!1;const g=e=>{d?e(d):v&&v.push(e)},y=q(u,"[PxAnimator]"),p=(e,n,...t)=>{v=null,y.error(e,n,...t)},w=e=>{try{(e=>{d=e;const n=v;v=null,null==n||n.forEach(n=>n(e))})(function(e,n,t,r,l,i,s){const a=q(t,"[PxAnimator]"),c=ie(e);for(const e of c)a.warn(m.document,f.effectsShape,e);if(Y(e,"[PxAnimator] createAnimator"),void 0!==l||i){const n=P(e,null!=l?l:{},{resetTimeline:!!i});for(const e of n.warnings)a.warn(m.usage,f.timelineOverrideIgnored,e);e=n.doc}const u=z(e)||{},d=Z(u.engine);e=U(e,d);let v=null;if(r){e=N(e);const n="string"==typeof r?document.querySelector(r):r;n&&(v=qe(e,0,a),v&&n.replaceChildren(v))}!v&&s&&(v=s);const h=function(e,n,t,r){return function(e,n,t,r){const l=z(e)||{},i=q(t,"[PxAnimator]");return ue(l)?je(l,t,t=>{var s;let a=()=>{};if(X(l.engine)&&r){a=ke(r,l.scroll);const n=function(e,n,t){var r,o,l,i;const s=null!=t?t:q(void 0,"[PxAnimator]");if(!n||!ue(n))return null;const a=n.scroll||{},c=null!=(r=a.kind)?r:"view";if(a.smoothing)return s.warn(m.platform,f.scrollSmoothingNeedsOwnDriver),null;const u=globalThis,d="view"===c,v=d?u.ViewTimeline:u.ScrollTimeline;if("function"!=typeof v)return null;const h=null!=(o=a.axis)?o:"block";let g;try{g=new v(d?{subject:Te(e,a.subject,s),axis:h}:{source:"root"===a.source?Re():Ce(e,"y")||Ce(e,"x")||Re(),axis:h})}catch(e){return s.warn(m.platform,f.scrollNativeUnavailable,e),null}return{timeline:g,rangeStart:Pe(null==(l=a.range)?void 0:l.start,0,d),rangeEnd:Pe(null==(i=a.range)?void 0:i.end,1,d)}}(r,l,i);if(n){const o=xe(e,t,r,B(l.engine),n);if(o){const e=o.destroy.bind(o);return o.destroy=()=>{a(),e()},o}}a(),a=()=>{}}const c=(l.engine!==b.js?xe(e,t,r,B(l.engine)):null)||we(e,n,t,r),u=(null==(s=c.getRootElement)?void 0:s.call(c))||r;if(u){a=ke(u,l.scroll);const e=("number"==typeof(null==(d=l)?void 0:d.duration)&&d.duration>0?d.duration:o)*("number"==typeof(null==d?void 0:d.iterations)&&d.iterations>0?d.iterations:1),n=function(e,n,t,r){var o,l;if(!n||!ue(n))return null;const i=null!=r?r:q(void 0,"[PxAnimator]"),s=n.scroll||{},a=null!=(o=s.kind)?o:"view",c=Te(e,s.subject,i),u=Ce(e,"y")||Ce(e,"x"),d="scroll"===a&&"root"===s.source?Re():u||Re(),f=d===Re(),m=function(e,n){const t=null!=e?e:"block";if("x"===t||"y"===t)return t;const r=!!n&&n.startsWith("vertical");return"inline"===t?r?"y":"x":r?"x":"y"}(s.axis,getComputedStyle(d).writingMode),v=()=>{if("scroll"===a)return function(e,n,t){var r,o;const l=n>0?T(e/n,0,1):1,i="number"==typeof(null==(r=null==t?void 0:t.start)?void 0:r.fraction)?t.start.fraction:0,s="number"==typeof(null==(o=null==t?void 0:t.end)?void 0:o.fraction)?t.end.fraction:1;return s<=i?l>=s?1:0:T((l-i)/(s-i),0,1)}("y"===m?d.scrollTop:d.scrollLeft,"y"===m?d.scrollHeight-d.clientHeight:d.scrollWidth-d.clientWidth,s.range);const e=c.getBoundingClientRect();let n,t;if(f)n=0,t="y"===m?document.documentElement.clientHeight:document.documentElement.clientWidth;else{const e=d.getBoundingClientRect();n="y"===m?e.top:e.left,t="y"===m?d.clientHeight:d.clientWidth}return function(e,n,t,r){const o=t-e,l=de(null==r?void 0:r.start,0,n,t),i=de(null==r?void 0:r.end,1,n,t);return i<=l?o>=i?1:0:T((o-l)/(i-l),0,1)}(("y"===m?e.top:e.left)-n,"y"===m?e.height:e.width,t,s.range)},h=Math.max(0,null!=(l=s.smoothing)?l:0)/1e3;let g=!1,y=null,p=null,b=0,w=null;const E=()=>{w=null,g||(e=>{if(!h)return void t(e);if(null===y)return y=e,void t(e);if(null!==p)return;b=0;const n=e=>{if(p=null,g)return;const r=b?Math.min(.1,(e-b)/1e3):1/60;b=e;const o=v(),l=1-Math.exp(-r/h);y+=(o-y)*l,Math.abs(o-y)<.001&&(y=o),t(y),y!==o&&(p=requestAnimationFrame(n))};p=requestAnimationFrame(n)})(v())},A=()=>{g||null!==w||(w=requestAnimationFrame(E))},S=f?window:d;let x;S.addEventListener("scroll",A,{passive:!0}),window.addEventListener("resize",A,{passive:!0}),"undefined"!=typeof ResizeObserver&&(x=new ResizeObserver(A),x.observe(c),c!==e&&x.observe(e),f||x.observe(d));const P={destroy:()=>{g||(g=!0,S.removeEventListener("scroll",A),window.removeEventListener("resize",A),null==x||x.disconnect(),null!==w&&(cancelAnimationFrame(w),w=null),null!==p&&(cancelAnimationFrame(p),p=null))},refresh:()=>{g||(y=v(),t(y))}};return P.refresh(),P}(u,l,n=>c.setCurrentTime(n*e),i);if(n){const e=c.destroy.bind(c);c.destroy=()=>{n.destroy(),a(),e()}}}else i.warn(m.host,f.scrollNoRootToObserve);var d;return c}):je(l,t,t=>l.engine===b.js?we(e,n,t,r):xe(e,t,r,B(l.engine))||we(e,n,t,r))}(e,n,t,r)}(e,n,t,v);if(r&&v){const e=v,n=h.destroy.bind(h);h.destroy=()=>{n(),e.remove()}}return h}(e,i,u,r,a,l,s))}catch(e){const n=function(e){return e instanceof Error?e:new Error(String(e))}(e);p(m.internal,f.buildFailed,n)}};return c={isReady:()=>!!d,getRootElement:()=>d?d.getRootElement():null,isPlaying:()=>(null==d?void 0:d.isPlaying())||!1,play:()=>{g(e=>e.play())},pause:()=>{g(e=>e.pause())},cancel:()=>{g(e=>e.cancel())},finish:()=>{g(e=>e.finish())},setPlaybackRate:e=>{g(n=>n.setPlaybackRate(e))},getCurrentTime:()=>d?d.getCurrentTime():null,setCurrentTime:e=>{g(n=>n.setCurrentTime(e))},getCurrentProgress:()=>d?d.getCurrentProgress():null,setCurrentProgress:e=>{g(n=>n.setCurrentProgress(e))},destroy:()=>{h=!0,v=null,null==d||d.destroy()}},function(e){const n=ve();if(n.animators.has(e))return;n.animators.add(e),ye("add",e);const t=e.destroy.bind(e);e.destroy=()=>{t(),n.animators.delete(e)&&ye("remove",e)}}(c),void 0!==t?w(t):fetch(n).then(e=>e.json()).then(e=>{h||(D(e)?w(e):p(m.document,f.invalidDocumentAtSrc,n))}).catch(e=>{var t;p(m.host,f.loadFailed,n,null!=(t=null==e?void 0:e.message)?t:String(e))}),c}function Me(t){const r=document.querySelectorAll("["+n+"]");for(let o=0;o<r.length;o++){const l=r[o];if(!l[e]){const r=l.getAttribute(n);r&&(l[e]=Oe(S(x({},t),{src:r,container:l})))}}}export{u as PxAnimatorConfigSchema,d as PxDefinitionsSchema,m as PxDiagnosticKind,h as PxNodeBaseSchema,g as PxScrollSchema,y as PxSvgNodeRootSchema,b as PxTimelineEngineSetting,w as PxTriggerSchema,F as createAdapterAnimator,Oe as createAnimator,N as generateNewIds,he as getAllAnimators,Me as loadTagAnimators,ge as onAnimatorsChange,V as px,qe as renderNode,pe as setupAnimationTriggers,re as toDomProps,le as validateDocument};
@@ -1596,6 +1596,38 @@ var PixodeskAnimator = (() => {
1596
1596
  return cubicBezier(flipped);
1597
1597
  }
1598
1598
 
1599
+ // ../svg-animator-core/src/animation/PxStaticTransformMerge.ts
1600
+ function mergeStaticTransformIntoAnimDef(animDef, staticTransform) {
1601
+ if (!animDef) return animDef;
1602
+ const staticParts = staticTransform && typeof staticTransform === "object" && !Array.isArray(staticTransform) ? staticTransform : parseTransformParts(staticTransform);
1603
+ if (!staticParts || !Object.keys(staticParts).length) return animDef;
1604
+ const mergeKfValue = (v) => v && typeof v === "object" && !Array.isArray(v) ? __spreadValues(__spreadValues({}, staticParts), v) : v;
1605
+ const transformAnim = animDef[TRANSFORM_ATTR];
1606
+ if (transformAnim && typeof transformAnim === "object") {
1607
+ const anim = transformAnim;
1608
+ if (Array.isArray(anim.keyframes)) {
1609
+ const out = __spreadProps(__spreadValues({}, anim), {
1610
+ keyframes: anim.keyframes.map((kf) => __spreadProps(__spreadValues({}, kf), { value: mergeKfValue(kf.value) }))
1611
+ });
1612
+ if (out.value !== void 0) out.value = mergeKfValue(out.value);
1613
+ return __spreadProps(__spreadValues({}, animDef), { transform: out });
1614
+ }
1615
+ return animDef;
1616
+ }
1617
+ const channels = Object.keys(animDef).filter((k) => PX_TRANSFORM_FN_NAMES.has(k));
1618
+ if (channels.length !== 1) return animDef;
1619
+ const ch = channels[0];
1620
+ const chAnim = animDef[ch];
1621
+ if (!chAnim || typeof chAnim !== "object" || !Array.isArray(chAnim.keyframes)) return animDef;
1622
+ const lifted = __spreadProps(__spreadValues({}, chAnim), {
1623
+ keyframes: chAnim.keyframes.map((kf) => __spreadProps(__spreadValues({}, kf), { value: __spreadProps(__spreadValues({}, staticParts), { [ch]: kf.value }) }))
1624
+ });
1625
+ if (lifted.value !== void 0) lifted.value = __spreadProps(__spreadValues({}, staticParts), { [ch]: lifted.value });
1626
+ const rest = __spreadValues({}, animDef);
1627
+ delete rest[ch];
1628
+ return __spreadProps(__spreadValues({}, rest), { transform: lifted });
1629
+ }
1630
+
1599
1631
  // ../svg-animator-core/src/materialize/PxMotionPath.ts
1600
1632
  function getKfTranslate(kf) {
1601
1633
  const v = keyframeValue(kf);
@@ -2357,36 +2389,6 @@ var PixodeskAnimator = (() => {
2357
2389
  function generateElementId() {
2358
2390
  return "_px_el_" + ++_elementIdCounter;
2359
2391
  }
2360
- function mergeStaticTransformIntoAnimDef(animDef, staticTransform) {
2361
- if (!animDef) return animDef;
2362
- const staticParts = staticTransform && typeof staticTransform === "object" && !Array.isArray(staticTransform) ? staticTransform : parseTransformParts(staticTransform);
2363
- if (!staticParts || !Object.keys(staticParts).length) return animDef;
2364
- const mergeKfValue = (v) => v && typeof v === "object" && !Array.isArray(v) ? __spreadValues(__spreadValues({}, staticParts), v) : v;
2365
- const transformAnim = animDef[TRANSFORM_ATTR];
2366
- if (transformAnim && typeof transformAnim === "object") {
2367
- const anim = transformAnim;
2368
- if (Array.isArray(anim.keyframes)) {
2369
- const out = __spreadProps(__spreadValues({}, anim), {
2370
- keyframes: anim.keyframes.map((kf) => __spreadProps(__spreadValues({}, kf), { value: mergeKfValue(kf.value) }))
2371
- });
2372
- if (out.value !== void 0) out.value = mergeKfValue(out.value);
2373
- return __spreadProps(__spreadValues({}, animDef), { transform: out });
2374
- }
2375
- return animDef;
2376
- }
2377
- const channels = Object.keys(animDef).filter((k) => PX_TRANSFORM_FN_NAMES.has(k));
2378
- if (channels.length !== 1) return animDef;
2379
- const ch = channels[0];
2380
- const chAnim = animDef[ch];
2381
- if (!chAnim || typeof chAnim !== "object" || !Array.isArray(chAnim.keyframes)) return animDef;
2382
- const lifted = __spreadProps(__spreadValues({}, chAnim), {
2383
- keyframes: chAnim.keyframes.map((kf) => __spreadProps(__spreadValues({}, kf), { value: __spreadProps(__spreadValues({}, staticParts), { [ch]: kf.value }) }))
2384
- });
2385
- if (lifted.value !== void 0) lifted.value = __spreadProps(__spreadValues({}, staticParts), { [ch]: lifted.value });
2386
- const rest = __spreadValues({}, animDef);
2387
- delete rest[ch];
2388
- return __spreadProps(__spreadValues({}, rest), { transform: lifted });
2389
- }
2390
2392
  function normalizeAnimationDefinition(animDef, duration, defs, engine = PxTimelineEngine.native) {
2391
2393
  const normalized = {};
2392
2394
  for (const [propName, propAnim] of Object.entries(animDef)) {