framer-motion
Version:
A simple and powerful JavaScript animation library
2 lines (1 loc) • 6.51 kB
JavaScript
import{jsxs as t,jsx as n}from"react/jsx-runtime";import{createContext as o,useContext as r,useMemo as e,Fragment as a,createElement as i,useRef as s,useCallback as u,useLayoutEffect as c,useEffect as l,useInsertionEffect as f,forwardRef as d}from"react";import{i as m,a as p,b as y,c as g,d as v,e as h,f as S,g as M,P as b,r as w,h as j,j as C,k as E,s as P,l as A,m as T,n as L,S as W,o as x,L as I,p as V}from"./size-rollup-dom-max-assets.js";const k=o({strict:!1}),O=o({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"}),D=o({});function R(t){const{initial:n,animate:o}=function(t,n){if(m(t)){const{initial:n,animate:o}=t;return{initial:!1===n||p(n)?n:void 0,animate:p(o)?o:void 0}}return!1!==t.inherit?n:{}}(t,r(D));return e(()=>({initial:n,animate:o}),[H(n),H(o)])}function H(t){return Array.isArray(t)?t.join(" "):t}const N=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function F(t,n,o){for(const r in n)y(n[r])||g(r,o)||(t[r]=n[r])}function B(t,n){const o={};return F(o,t.style||{},t),Object.assign(o,function({transformTemplate:t},n){return e(()=>{const o={style:{},transform:{},transformOrigin:{},vars:{}};return v(o,n,t),Object.assign({},o.vars,o.style)},[n])}(t,n)),o}function q(t,n){const o={},r=B(t,n);return t.drag&&!1!==t.dragListener&&(o.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=!0===t.drag?"none":"pan-"+("x"===t.drag?"y":"x")),void 0===t.tabIndex&&(t.onTap||t.onTapStart||t.whileTap)&&(o.tabIndex=0),o.style=r,o}const U=()=>({style:{},transform:{},transformOrigin:{},vars:{},attrs:{}});function $(t,n,o,r){const a=e(()=>{const o={style:{},transform:{},transformOrigin:{},vars:{},attrs:{}};return h(o,n,S(r),t.transformTemplate,t.style),{...o.attrs,style:{...o.style}}},[n]);if(t.style){const n={};F(n,t.style,t),a.style={...n,...a.style}}return a}const _=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function z(t){return t.startsWith("while")||t.startsWith("drag")&&"draggable"!==t||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||_.has(t)}let G=t=>!z(t);try{"function"==typeof(X=require("@emotion/is-prop-valid").default)&&(G=t=>t.startsWith("on")?!z(t):X(t))}catch{}var X;function Y(t,n,o,{latestValues:r},s,u=!1,c){const l=(c??M(t)?$:q)(n,r,s,t),f=function(t,n,o){const r={};for(const e in t)"values"===e&&"object"==typeof t.values||(G(e)||!0===o&&z(e)||!n&&!z(e)||t.draggable&&e.startsWith("onDrag"))&&(r[e]=t[e]);return r}(n,"string"==typeof t,u),d=t!==a?{...f,...l,ref:o}:{},{children:m}=n,p=e(()=>y(m)?m.get():m,[m]);return i(t,{...d,children:p})}function J(t,n,o,r){const e={},a=r(t,{});for(const t in a)e[t]=w(a[t]);let{initial:i,animate:s}=t;const u=m(t),c=j(t);n&&c&&!u&&!1!==t.inherit&&(void 0===i&&(i=n.initial),void 0===s&&(s=n.animate));let l=!!o&&!1===o.initial;l=l||!1===i;const f=l?s:i;if(f&&"boolean"!=typeof f&&!C(f)){const n=Array.isArray(f)?f:[f];for(let o=0;o<n.length;o++){const r=E(t,n[o]);if(r){const{transitionEnd:t,transition:n,...o}=r;for(const t in o){let n=o[t];if(Array.isArray(n)){n=n[l?n.length-1:0]}null!==n&&(e[t]=n)}for(const n in t)e[n]=t[n]}}}return e}const K=t=>(n,o)=>{const e=r(D),a=r(b),i=()=>function({scrapeMotionValuesFromProps:t,createRenderState:n},o,r,e){return{latestValues:J(o,r,e,t),renderState:n()}}(t,n,e,a);return o?i():function(t){const n=s(null);return null===n.current&&(n.current=t()),n.current}(i)},Q=K({scrapeMotionValuesFromProps:P,createRenderState:N}),Z=K({scrapeMotionValuesFromProps:A,createRenderState:U}),tt=Symbol.for("motionComponentSymbol");function nt(t,n){if("function"==typeof t)return t(n);T(t)&&(t.current=n)}function ot(t,n,o){const r=s(null);return u(e=>{if(e&&t.onMount&&t.onMount(e),n&&(e?n.mount(e):n.unmount()),o)if(e){const t=nt(o,e);"function"==typeof t&&(r.current=t)}else r.current?(r.current(),r.current=null):nt(o,e)},[n,t,o])}const rt=L?c:l;function et(t,n,o,e,a,i){const{visualElement:u}=r(D),c=r(k),d=r(b),m=r(O).reducedMotion,p=s(null);e=e||c.renderer,!p.current&&e&&(p.current=e(t,{visualState:n,parent:u,props:o,presenceContext:d,blockInitialAnimation:!!d&&!1===d.initial,reducedMotionConfig:m,isSVG:i}));const y=p.current,g=r(W);!y||y.projection||!a||"html"!==y.type&&"svg"!==y.type||function(t,n,o,r){const{layoutId:e,layout:a,drag:i,dragConstraints:s,layoutScroll:u,layoutRoot:c,layoutCrossfade:l}=n;t.projection=new o(t.latestValues,n["data-framer-portal-id"]?void 0:at(t.parent)),t.projection.setOptions({layoutId:e,layout:a,alwaysMeasureLayout:Boolean(i)||s&&T(s),visualElement:t,animationType:"string"==typeof a?a:"both",initialPromotionConfig:r,crossfade:l,layoutScroll:u,layoutRoot:c})}(p.current,o,a,g);const v=s(!1);f(()=>{y&&v.current&&y.update(o,d)});const h=o[x],S=s(Boolean(h)&&!window.MotionHandoffIsComplete?.(h)&&window.MotionHasOptimisedAnimation?.(h));return rt(()=>{y&&(v.current=!0,window.MotionIsMounted=!0,y.updateFeatures(),y.scheduleRenderMicrotask(),S.current&&y.animationState&&y.animationState.animateChanges())}),l(()=>{y&&(!S.current&&y.animationState&&y.animationState.animateChanges(),S.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(h)}),S.current=!1),y.enteringChildren=void 0)}),y}function at(t){if(t)return!1!==t.options.allowProjection?t.projection:at(t.parent)}function it(o,{forwardMotionProps:e=!1,type:a}={},i,s){const u=a?"svg"===a:M(o),c=u?Z:Q;function l(a,i){let l;const f={...r(O),...a,layoutId:st(a)},{isStatic:d}=f,m=R(a),p=c(a,d);if(!d&&L){r(k).strict;const t=function(t){const{drag:n,layout:o}=V;if(!n&&!o)return{};const r={...n,...o};return{MeasureLayout:n?.isEnabled(t)||o?.isEnabled(t)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}(f);l=t.MeasureLayout,m.visualElement=et(o,p,f,s,t.ProjectionNode,u)}return t(D.Provider,{value:m,children:[l&&m.visualElement?n(l,{visualElement:m.visualElement,...f}):null,Y(o,a,ot(p,m.visualElement,i),p,d,e,u)]})}l.displayName=`motion.${"string"==typeof o?o:`create(${o.displayName??o.name??""})`}`;const f=d(l);return f[tt]=o,f}function st({layoutId:t}){const n=r(I).id;return n&&void 0!==t?n+"-"+t:t}function ut(t,n){return it(t,n)}const ct=ut("div");export{ct as MotionDiv};