diff --git a/assets/index.7c4e1abc.js b/assets/index.c9033942.js similarity index 99% rename from assets/index.7c4e1abc.js rename to assets/index.c9033942.js index 0fd9a33..b0293fa 100644 --- a/assets/index.7c4e1abc.js +++ b/assets/index.c9033942.js @@ -37,4 +37,4 @@ Error generating stack: `+i.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Py=M.exports,Ey=Symbol.for("react.element"),by=Symbol.for("react.fragment"),My=Object.prototype.hasOwnProperty,Ny=Py.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ly={key:!0,ref:!0,__self:!0,__source:!0};function zp(e,t,n){var r,o={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(r in t)My.call(t,r)&&!Ly.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:Ey,type:e,key:i,ref:s,props:o,_owner:Ny.current}}Ai.Fragment=by;Ai.jsx=zp;Ai.jsxs=zp;(function(e){e.exports=Ai})(ja);const C=ja.exports.jsx,O=ja.exports.jsxs;function Op(e){return e.charAt(0).toUpperCase()+e.slice(1)}function vs(e){const t=new Date(Date.parse(e.date_added)),n=new Date(Date.now()-6048e5);return t>n}function Vy(e){return new Date(Date.parse(e.date_added)).toLocaleDateString("en-us",{timeZone:"UTC",day:"numeric",month:"short",year:"numeric"}).replaceAll("/","-")}function Dy({album:e,onClickFilter:t}){const[n,r]=M.exports.useState(!1);return O("div",{className:"album-card"+(vs(e)?" album-card-recent":""),onMouseOver:()=>r(!0),onMouseOut:()=>r(!1),children:[O("div",{className:"album-date-label"+(vs(e)?" album-date-label-new":""),children:[C("img",{className:"album-date-label-moon",src:"fullmoon.png"}),C("div",{className:"album-date-label-text",children:vs(e)&&!n?"NEW":Vy(e)})]}),O("div",{className:"album-info",children:[C("img",{src:e.image_url,className:"album-image",width:"200px"}),C("h2",{className:"album-title",children:e.title}),C("h3",{className:"album-artist",children:e.artist}),C("h4",{className:"album-year",children:e.year.split("-")[0]}),C("div",{className:"album-descriptors-list",children:e.descriptors.map(o=>C("button",{className:"album-descriptor",value:o,onClick:t,children:Op(o)},o))})]}),O("div",{className:"album-tracks",children:[O("div",{className:"album-tracks-text",children:[C("h4",{className:"album-tracks-header",children:"Favorite tracks:"}),C("ul",{className:"album-tracks-list",children:e.tracks.map(o=>C("li",{className:"album-track",children:o},o))})]}),C("div",{className:"album-link",children:e.album_url==""?C("img",{className:"spotify-logo no-spotify",src:"spotify.png"}):C("a",{href:e.album_url,target:"_blank",rel:"noopener noreferrer",children:C("img",{className:"spotify-logo",src:"spotify.png"})})})]})]})}const Ia=M.exports.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),zi=M.exports.createContext({});function Ry(){return M.exports.useContext(zi).visualElement}const Oi=M.exports.createContext(null),an=typeof document<"u",vc=an?M.exports.useLayoutEffect:M.exports.useEffect,Fp=M.exports.createContext({strict:!1});function Ay(e,t,n,r){const o=Ry(),i=M.exports.useContext(Fp),s=M.exports.useContext(Oi),l=M.exports.useContext(Ia).reducedMotion,a=M.exports.useRef();r=r||i.renderer,!a.current&&r&&(a.current=r(e,{visualState:t,parent:o,props:n,presenceId:s?s.id:void 0,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:l}));const u=a.current;return vc(()=>{u&&u.render()}),M.exports.useEffect(()=>{u&&u.animationState&&u.animationState.animateChanges()}),vc(()=>()=>u&&u.notify("Unmount"),[]),u}function _n(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function zy(e,t,n){return M.exports.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):_n(n)&&(n.current=r))},[t])}function Fr(e){return typeof e=="string"||Array.isArray(e)}function Fi(e){return typeof e=="object"&&typeof e.start=="function"}const Oy=["initial","animate","exit","whileHover","whileDrag","whileTap","whileFocus","whileInView"];function ji(e){return Fi(e.animate)||Oy.some(t=>Fr(e[t]))}function jp(e){return Boolean(ji(e)||e.variants)}function Fy(e,t){if(ji(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Fr(n)?n:void 0,animate:Fr(r)?r:void 0}}return e.inherit!==!1?t:{}}function jy(e){const{initial:t,animate:n}=Fy(e,M.exports.useContext(zi));return M.exports.useMemo(()=>({initial:t,animate:n}),[kc(t),kc(n)])}function kc(e){return Array.isArray(e)?e.join(" "):e}const nt=e=>({isEnabled:t=>e.some(n=>!!t[n])}),jr={measureLayout:nt(["layout","layoutId","drag"]),animation:nt(["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"]),exit:nt(["exit"]),drag:nt(["drag","dragControls"]),focus:nt(["whileFocus"]),hover:nt(["whileHover","onHoverStart","onHoverEnd"]),tap:nt(["whileTap","onTap","onTapStart","onTapCancel"]),pan:nt(["onPan","onPanStart","onPanSessionStart","onPanEnd"]),inView:nt(["whileInView","onViewportEnter","onViewportLeave"])};function Iy(e){for(const t in e)t==="projectionNodeConstructor"?jr.projectionNodeConstructor=e[t]:jr[t].Component=e[t]}function Ba(e){const t=M.exports.useRef(null);return t.current===null&&(t.current=e()),t.current}const hr={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let By=1;function Uy(){return Ba(()=>{if(hr.hasEverUpdated)return By++})}const Ip=M.exports.createContext({});class Hy extends Ql.Component{getSnapshotBeforeUpdate(){const{visualElement:t,props:n}=this.props;return t&&t.setProps(n),null}componentDidUpdate(){}render(){return this.props.children}}const Bp=M.exports.createContext({}),Wy=Symbol.for("motionComponentSymbol");function $y({preloadedFeatures:e,createVisualElement:t,projectionNodeConstructor:n,useRender:r,useVisualState:o,Component:i}){e&&Iy(e);function s(a,u){const c={...M.exports.useContext(Ia),...a,layoutId:Gy(a)},{isStatic:d}=c;let f=null;const y=jy(a),g=d?void 0:Uy(),k=o(a,d);if(!d&&an){y.visualElement=Ay(i,k,c,t);const x=M.exports.useContext(Fp).strict,m=M.exports.useContext(Bp);y.visualElement&&(f=y.visualElement.loadFeatures(c,x,e,g,n||jr.projectionNodeConstructor,m))}return O(Hy,{visualElement:y.visualElement,props:c,children:[f,C(zi.Provider,{value:y,children:r(i,a,g,zy(k,y.visualElement,u),k,d,y.visualElement)})]})}const l=M.exports.forwardRef(s);return l[Wy]=i,l}function Gy({layoutId:e}){const t=M.exports.useContext(Ip).id;return t&&e!==void 0?t+"-"+e:e}function Ky(e){function t(r,o={}){return $y(e(r,o))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,o)=>(n.has(o)||n.set(o,t(o)),n.get(o))})}const Qy=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","text","tspan","use","view"];function Ua(e){return typeof e!="string"||e.includes("-")?!1:!!(Qy.indexOf(e)>-1||/[A-Z]/.test(e))}const ai={};function Yy(e){Object.assign(ai,e)}const ui=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Wn=new Set(ui);function Up(e,{layout:t,layoutId:n}){return Wn.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!ai[e]||e==="opacity")}const et=e=>!!(e!=null&&e.getVelocity),Xy={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Zy=(e,t)=>ui.indexOf(e)-ui.indexOf(t);function Jy({transform:e,transformKeys:t},{enableHardwareAcceleration:n=!0,allowTransformNone:r=!0},o,i){let s="";t.sort(Zy);for(const l of t)s+=`${Xy[l]||l}(${e[l]}) `;return n&&!e.z&&(s+="translateZ(0)"),s=s.trim(),i?s=i(e,o?"":s):r&&o&&(s="none"),s}function Hp(e){return e.startsWith("--")}const qy=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Wp=(e,t)=>n=>Math.max(Math.min(n,t),e),mr=e=>e%1?Number(e.toFixed(5)):e,Ir=/(-)?([\d]*\.?[\d])+/g,Cl=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,eg=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Yr(e){return typeof e=="string"}const un={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},yr=Object.assign(Object.assign({},un),{transform:Wp(0,1)}),vo=Object.assign(Object.assign({},un),{default:1}),Xr=e=>({test:t=>Yr(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),gt=Xr("deg"),qe=Xr("%"),N=Xr("px"),tg=Xr("vh"),ng=Xr("vw"),wc=Object.assign(Object.assign({},qe),{parse:e=>qe.parse(e)/100,transform:e=>qe.transform(e*100)}),Ha=(e,t)=>n=>Boolean(Yr(n)&&eg.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),$p=(e,t,n)=>r=>{if(!Yr(r))return r;const[o,i,s,l]=r.match(Ir);return{[e]:parseFloat(o),[t]:parseFloat(i),[n]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}},Zt={test:Ha("hsl","hue"),parse:$p("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+qe.transform(mr(t))+", "+qe.transform(mr(n))+", "+mr(yr.transform(r))+")"},rg=Wp(0,255),ks=Object.assign(Object.assign({},un),{transform:e=>Math.round(rg(e))}),Tt={test:Ha("rgb","red"),parse:$p("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ks.transform(e)+", "+ks.transform(t)+", "+ks.transform(n)+", "+mr(yr.transform(r))+")"};function og(e){let t="",n="",r="",o="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),o=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),o=e.substr(4,1),t+=t,n+=n,r+=r,o+=o),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:o?parseInt(o,16)/255:1}}const Tl={test:Ha("#"),parse:og,transform:Tt.transform},pe={test:e=>Tt.test(e)||Tl.test(e)||Zt.test(e),parse:e=>Tt.test(e)?Tt.parse(e):Zt.test(e)?Zt.parse(e):Tl.parse(e),transform:e=>Yr(e)?e:e.hasOwnProperty("red")?Tt.transform(e):Zt.transform(e)},Gp="${c}",Kp="${n}";function ig(e){var t,n,r,o;return isNaN(e)&&Yr(e)&&((n=(t=e.match(Ir))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((o=(r=e.match(Cl))===null||r===void 0?void 0:r.length)!==null&&o!==void 0?o:0)>0}function Qp(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Cl);r&&(n=r.length,e=e.replace(Cl,Gp),t.push(...r.map(pe.parse)));const o=e.match(Ir);return o&&(e=e.replace(Ir,Kp),t.push(...o.map(un.parse))),{values:t,numColors:n,tokenised:e}}function Yp(e){return Qp(e).values}function Xp(e){const{values:t,numColors:n,tokenised:r}=Qp(e),o=t.length;return i=>{let s=r;for(let l=0;ltypeof e=="number"?0:e;function lg(e){const t=Yp(e);return Xp(e)(t.map(sg))}const ft={test:ig,parse:Yp,createTransformer:Xp,getAnimatableNone:lg},ag=new Set(["brightness","contrast","saturate","opacity"]);function ug(e){let[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ir)||[];if(!r)return e;const o=n.replace(r,"");let i=ag.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+o+")"}const cg=/([a-z-]*)\(.*?\)/g,Pl=Object.assign(Object.assign({},ft),{getAnimatableNone:e=>{const t=e.match(cg);return t?t.map(ug).join(" "):e}}),Sc={...un,transform:Math.round},Zp={borderWidth:N,borderTopWidth:N,borderRightWidth:N,borderBottomWidth:N,borderLeftWidth:N,borderRadius:N,radius:N,borderTopLeftRadius:N,borderTopRightRadius:N,borderBottomRightRadius:N,borderBottomLeftRadius:N,width:N,maxWidth:N,height:N,maxHeight:N,size:N,top:N,right:N,bottom:N,left:N,padding:N,paddingTop:N,paddingRight:N,paddingBottom:N,paddingLeft:N,margin:N,marginTop:N,marginRight:N,marginBottom:N,marginLeft:N,rotate:gt,rotateX:gt,rotateY:gt,rotateZ:gt,scale:vo,scaleX:vo,scaleY:vo,scaleZ:vo,skew:gt,skewX:gt,skewY:gt,distance:N,translateX:N,translateY:N,translateZ:N,x:N,y:N,z:N,perspective:N,transformPerspective:N,opacity:yr,originX:wc,originY:wc,originZ:N,zIndex:Sc,fillOpacity:yr,strokeOpacity:yr,numOctaves:Sc};function Wa(e,t,n,r){const{style:o,vars:i,transform:s,transformKeys:l,transformOrigin:a}=e;l.length=0;let u=!1,c=!1,d=!0;for(const f in t){const y=t[f];if(Hp(f)){i[f]=y;continue}const g=Zp[f],k=qy(y,g);if(Wn.has(f)){if(u=!0,s[f]=k,l.push(f),!d)continue;y!==(g.default||0)&&(d=!1)}else f.startsWith("origin")?(c=!0,a[f]=k):o[f]=k}if(t.transform||(u||r?o.transform=Jy(e,n,d,r):o.transform&&(o.transform="none")),c){const{originX:f="50%",originY:y="50%",originZ:g=0}=a;o.transformOrigin=`${f} ${y} ${g}`}}const $a=()=>({style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}});function Jp(e,t,n){for(const r in t)!et(t[r])&&!Up(r,n)&&(e[r]=t[r])}function dg({transformTemplate:e},t,n){return M.exports.useMemo(()=>{const r=$a();return Wa(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function fg(e,t,n){const r=e.style||{},o={};return Jp(o,r,e),Object.assign(o,dg(e,t,n)),e.transformValues?e.transformValues(o):o}function pg(e,t,n){const r={},o=fg(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),r.style=o,r}const hg=["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"],mg=["whileTap","onTap","onTapStart","onTapCancel"],yg=["onPan","onPanStart","onPanSessionStart","onPanEnd"],gg=["whileInView","onViewportEnter","onViewportLeave","viewport"],vg=new Set(["initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","layout","layoutId","layoutDependency","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","drag","dragControls","dragListener","dragConstraints","dragDirectionLock","dragSnapToOrigin","_dragX","_dragY","dragElastic","dragMomentum","dragPropagation","dragTransition","onHoverStart","onHoverEnd","layoutScroll",...gg,...mg,...hg,...yg]);function ci(e){return vg.has(e)}let qp=e=>!ci(e);function kg(e){!e||(qp=t=>t.startsWith("on")?!ci(t):e(t))}try{kg(require("@emotion/is-prop-valid").default)}catch{}function wg(e,t,n){const r={};for(const o in e)(qp(o)||n===!0&&ci(o)||!t&&!ci(o)||e.draggable&&o.startsWith("onDrag"))&&(r[o]=e[o]);return r}function xc(e,t,n){return typeof e=="string"?e:N.transform(t+n*e)}function Sg(e,t,n){const r=xc(t,e.x,e.width),o=xc(n,e.y,e.height);return`${r} ${o}`}const xg={offset:"stroke-dashoffset",array:"stroke-dasharray"},_g={offset:"strokeDashoffset",array:"strokeDasharray"};function Cg(e,t,n=1,r=0,o=!0){e.pathLength=1;const i=o?xg:_g;e[i.offset]=N.transform(-r);const s=N.transform(t),l=N.transform(n);e[i.array]=`${s} ${l}`}function Ga(e,{attrX:t,attrY:n,originX:r,originY:o,pathLength:i,pathSpacing:s=1,pathOffset:l=0,...a},u,c){Wa(e,a,u,c),e.attrs=e.style,e.style={};const{attrs:d,style:f,dimensions:y}=e;d.transform&&(y&&(f.transform=d.transform),delete d.transform),y&&(r!==void 0||o!==void 0||f.transform)&&(f.transformOrigin=Sg(y,r!==void 0?r:.5,o!==void 0?o:.5)),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),i!==void 0&&Cg(d,i,s,l,!1)}const eh=()=>({...$a(),attrs:{}});function Tg(e,t){const n=M.exports.useMemo(()=>{const r=eh();return Ga(r,t,{enableHardwareAcceleration:!1},e.transformTemplate),{...r.attrs,style:{...r.style}}},[t]);if(e.style){const r={};Jp(r,e.style,e),n.style={...r,...n.style}}return n}function Pg(e=!1){return(n,r,o,i,{latestValues:s},l)=>{const u=(Ua(n)?Tg:pg)(r,s,l),d={...wg(r,typeof n=="string",e),...u,ref:i};return o&&(d["data-projection-id"]=o),M.exports.createElement(n,d)}}const th=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function nh(e,{style:t,vars:n},r,o){Object.assign(e.style,t,o&&o.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const rh=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength"]);function oh(e,t,n,r){nh(e,t,void 0,r);for(const o in t.attrs)e.setAttribute(rh.has(o)?o:th(o),t.attrs[o])}function Ka(e){const{style:t}=e,n={};for(const r in t)(et(t[r])||Up(r,e))&&(n[r]=t[r]);return n}function ih(e){const t=Ka(e);for(const n in e)if(et(e[n])){const r=n==="x"||n==="y"?"attr"+n.toUpperCase():n;t[r]=e[n]}return t}function Qa(e,t,n,r={},o={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,o)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,o)),t}const Br=e=>Array.isArray(e),Eg=e=>Boolean(e&&typeof e=="object"&&e.mix&&e.toValue),sh=e=>Br(e)?e[e.length-1]||0:e;function Ao(e){const t=et(e)?e.get():e;return Eg(t)?t.toValue():t}function bg({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,o,i){const s={latestValues:Mg(r,o,i,e),renderState:t()};return n&&(s.mount=l=>n(r,l,s)),s}const lh=e=>(t,n)=>{const r=M.exports.useContext(zi),o=M.exports.useContext(Oi),i=()=>bg(e,t,r,o);return n?i():Ba(i)};function Mg(e,t,n,r){const o={},i=r(e);for(const f in i)o[f]=Ao(i[f]);let{initial:s,animate:l}=e;const a=ji(e),u=jp(e);t&&u&&!a&&e.inherit!==!1&&(s===void 0&&(s=t.initial),l===void 0&&(l=t.animate));let c=n?n.initial===!1:!1;c=c||s===!1;const d=c?l:s;return d&&typeof d!="boolean"&&!Fi(d)&&(Array.isArray(d)?d:[d]).forEach(y=>{const g=Qa(e,y);if(!g)return;const{transitionEnd:k,transition:x,...m}=g;for(const p in m){let h=m[p];if(Array.isArray(h)){const v=c?h.length-1:0;h=h[v]}h!==null&&(o[p]=h)}for(const p in k)o[p]=k[p]}),o}const Ng={useVisualState:lh({scrapeMotionValuesFromProps:ih,createRenderState:eh,onMount:(e,t,{renderState:n,latestValues:r})=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}Ga(n,r,{enableHardwareAcceleration:!1},e.transformTemplate),oh(t,n)}})},Lg={useVisualState:lh({scrapeMotionValuesFromProps:Ka,createRenderState:$a})};function Vg(e,{forwardMotionProps:t=!1},n,r,o){return{...Ua(e)?Ng:Lg,preloadedFeatures:n,useRender:Pg(t),createVisualElement:r,projectionNodeConstructor:o,Component:e}}var j;(function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.InView="whileInView",e.Exit="exit"})(j||(j={}));function Ii(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function El(e,t,n,r){M.exports.useEffect(()=>{const o=e.current;if(n&&o)return Ii(o,t,n,r)},[e,t,n,r])}function Dg({whileFocus:e,visualElement:t}){const{animationState:n}=t,r=()=>{n&&n.setActive(j.Focus,!0)},o=()=>{n&&n.setActive(j.Focus,!1)};El(t,"focus",e?r:void 0),El(t,"blur",e?o:void 0)}function ah(e){return typeof PointerEvent<"u"&&e instanceof PointerEvent?e.pointerType==="mouse":e instanceof MouseEvent}function uh(e){return!!e.touches}function Rg(e){return t=>{const n=t instanceof MouseEvent;(!n||n&&t.button===0)&&e(t)}}const Ag={pageX:0,pageY:0};function zg(e,t="page"){const r=e.touches[0]||e.changedTouches[0]||Ag;return{x:r[t+"X"],y:r[t+"Y"]}}function Og(e,t="page"){return{x:e[t+"X"],y:e[t+"Y"]}}function Ya(e,t="page"){return{point:uh(e)?zg(e,t):Og(e,t)}}const ch=(e,t=!1)=>{const n=r=>e(r,Ya(r));return t?Rg(n):n},Fg=()=>an&&window.onpointerdown===null,jg=()=>an&&window.ontouchstart===null,Ig=()=>an&&window.onmousedown===null,Bg={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},Ug={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function dh(e){return Fg()?e:jg()?Ug[e]:Ig()?Bg[e]:e}function Ln(e,t,n,r){return Ii(e,dh(t),ch(n,t==="pointerdown"),r)}function di(e,t,n,r){return El(e,dh(t),n&&ch(n,t==="pointerdown"),r)}function fh(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const _c=fh("dragHorizontal"),Cc=fh("dragVertical");function ph(e){let t=!1;if(e==="y")t=Cc();else if(e==="x")t=_c();else{const n=_c(),r=Cc();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function hh(){const e=ph(!0);return e?(e(),!1):!0}function Tc(e,t,n){return(r,o)=>{!ah(r)||hh()||(e.animationState&&e.animationState.setActive(j.Hover,t),n&&n(r,o))}}function Hg({onHoverStart:e,onHoverEnd:t,whileHover:n,visualElement:r}){di(r,"pointerenter",e||n?Tc(r,!0,e):void 0,{passive:!e}),di(r,"pointerleave",t||n?Tc(r,!1,t):void 0,{passive:!t})}const mh=(e,t)=>t?e===t?!0:mh(e,t.parentElement):!1;function yh(e){return M.exports.useEffect(()=>()=>e(),[])}function gh(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);oMath.min(Math.max(n,e),t),ws=.001,$g=.01,Pc=10,Gg=.05,Kg=1;function Qg({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let o,i;Wg(e<=Pc*1e3);let s=1-t;s=pi(Gg,Kg,s),e=pi($g,Pc,e/1e3),s<1?(o=u=>{const c=u*s,d=c*e,f=c-n,y=bl(u,s),g=Math.exp(-d);return ws-f/y*g},i=u=>{const d=u*s*e,f=d*n+n,y=Math.pow(s,2)*Math.pow(u,2)*e,g=Math.exp(-d),k=bl(Math.pow(u,2),s);return(-o(u)+ws>0?-1:1)*((f-y)*g)/k}):(o=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-ws+c*d},i=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const l=5/e,a=Xg(o,i,l);if(e=e*1e3,isNaN(a))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(a,2)*r;return{stiffness:u,damping:s*2*Math.sqrt(r*u),duration:e}}}const Yg=12;function Xg(e,t,n){let r=n;for(let o=1;oe[n]!==void 0)}function qg(e){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!Ec(e,Jg)&&Ec(e,Zg)){const n=Qg(e);t=Object.assign(Object.assign(Object.assign({},t),n),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function Xa(e){var{from:t=0,to:n=1,restSpeed:r=2,restDelta:o}=e,i=gh(e,["from","to","restSpeed","restDelta"]);const s={done:!1,value:t};let{stiffness:l,damping:a,mass:u,velocity:c,duration:d,isResolvedFromDuration:f}=qg(i),y=bc,g=bc;function k(){const x=c?-(c/1e3):0,m=n-t,p=a/(2*Math.sqrt(l*u)),h=Math.sqrt(l/u)/1e3;if(o===void 0&&(o=Math.min(Math.abs(n-t)/100,.4)),p<1){const v=bl(h,p);y=w=>{const _=Math.exp(-p*h*w);return n-_*((x+p*h*m)/v*Math.sin(v*w)+m*Math.cos(v*w))},g=w=>{const _=Math.exp(-p*h*w);return p*h*_*(Math.sin(v*w)*(x+p*h*m)/v+m*Math.cos(v*w))-_*(Math.cos(v*w)*(x+p*h*m)-v*m*Math.sin(v*w))}}else if(p===1)y=v=>n-Math.exp(-h*v)*(m+(x+h*m)*v);else{const v=h*Math.sqrt(p*p-1);y=w=>{const _=Math.exp(-p*h*w),T=Math.min(v*w,300);return n-_*((x+p*h*m)*Math.sinh(T)+v*m*Math.cosh(T))/v}}}return k(),{next:x=>{const m=y(x);if(f)s.done=x>=d;else{const p=g(x)*1e3,h=Math.abs(p)<=r,v=Math.abs(n-m)<=o;s.done=h&&v}return s.value=s.done?n:m,s},flipTarget:()=>{c=-c,[t,n]=[n,t],k()}}}Xa.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";const bc=e=>0,Ur=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Q=(e,t,n)=>-n*e+n*t+e;function Ss(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Mc({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let o=0,i=0,s=0;if(!t)o=i=s=n;else{const l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;o=Ss(a,l,e+1/3),i=Ss(a,l,e),s=Ss(a,l,e-1/3)}return{red:Math.round(o*255),green:Math.round(i*255),blue:Math.round(s*255),alpha:r}}const ev=(e,t,n)=>{const r=e*e,o=t*t;return Math.sqrt(Math.max(0,n*(o-r)+r))},tv=[Tl,Tt,Zt],Nc=e=>tv.find(t=>t.test(e)),vh=(e,t)=>{let n=Nc(e),r=Nc(t),o=n.parse(e),i=r.parse(t);n===Zt&&(o=Mc(o),n=Tt),r===Zt&&(i=Mc(i),r=Tt);const s=Object.assign({},o);return l=>{for(const a in s)a!=="alpha"&&(s[a]=ev(o[a],i[a],l));return s.alpha=Q(o.alpha,i.alpha,l),n.transform(s)}},Ml=e=>typeof e=="number",nv=(e,t)=>n=>t(e(n)),Bi=(...e)=>e.reduce(nv);function kh(e,t){return Ml(e)?n=>Q(e,t,n):pe.test(e)?vh(e,t):Sh(e,t)}const wh=(e,t)=>{const n=[...e],r=n.length,o=e.map((i,s)=>kh(i,t[s]));return i=>{for(let s=0;s{const n=Object.assign(Object.assign({},e),t),r={};for(const o in n)e[o]!==void 0&&t[o]!==void 0&&(r[o]=kh(e[o],t[o]));return o=>{for(const i in r)n[i]=r[i](o);return n}};function Lc(e){const t=ft.parse(e),n=t.length;let r=0,o=0,i=0;for(let s=0;s{const n=ft.createTransformer(t),r=Lc(e),o=Lc(t);return r.numHSL===o.numHSL&&r.numRGB===o.numRGB&&r.numNumbers>=o.numNumbers?Bi(wh(r.parsed,o.parsed),n):s=>`${s>0?t:e}`},ov=(e,t)=>n=>Q(e,t,n);function iv(e){if(typeof e=="number")return ov;if(typeof e=="string")return pe.test(e)?vh:Sh;if(Array.isArray(e))return wh;if(typeof e=="object")return rv}function sv(e,t,n){const r=[],o=n||iv(e[0]),i=e.length-1;for(let s=0;sn(Ur(e,t,r))}function av(e,t){const n=e.length,r=n-1;return o=>{let i=0,s=!1;if(o<=e[0]?s=!0:o>=e[r]&&(i=r-1,s=!0),!s){let a=1;for(;ao||a===r);a++);i=a-1}const l=Ur(e[i],e[i+1],o);return t[i](l)}}function xh(e,t,{clamp:n=!0,ease:r,mixer:o}={}){const i=e.length;fi(i===t.length),fi(!r||!Array.isArray(r)||r.length===i-1),e[0]>e[i-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const s=sv(t,r,o),l=i===2?lv(e,s):av(e,s);return n?a=>l(pi(e[0],e[i-1],a)):l}const Ui=e=>t=>1-e(1-t),Za=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,uv=e=>t=>Math.pow(t,e),_h=e=>t=>t*t*((e+1)*t-e),cv=e=>{const t=_h(e);return n=>(n*=2)<1?.5*t(n):.5*(2-Math.pow(2,-10*(n-1)))},Ch=1.525,dv=4/11,fv=8/11,pv=9/10,Ja=e=>e,qa=uv(2),hv=Ui(qa),Th=Za(qa),Ph=e=>1-Math.sin(Math.acos(e)),eu=Ui(Ph),mv=Za(eu),tu=_h(Ch),yv=Ui(tu),gv=Za(tu),vv=cv(Ch),kv=4356/361,wv=35442/1805,Sv=16061/1805,hi=e=>{if(e===1||e===0)return e;const t=e*e;return ee<.5?.5*(1-hi(1-e*2)):.5*hi(e*2-1)+.5;function Cv(e,t){return e.map(()=>t||Th).splice(0,e.length-1)}function Tv(e){const t=e.length;return e.map((n,r)=>r!==0?r/(t-1):0)}function Pv(e,t){return e.map(n=>n*t)}function zo({from:e=0,to:t=1,ease:n,offset:r,duration:o=300}){const i={done:!1,value:e},s=Array.isArray(t)?t:[e,t],l=Pv(r&&r.length===s.length?r:Tv(s),o);function a(){return xh(l,s,{ease:Array.isArray(n)?n:Cv(s,n)})}let u=a();return{next:c=>(i.value=u(c),i.done=c>=o,i),flipTarget:()=>{s.reverse(),u=a()}}}function Ev({velocity:e=0,from:t=0,power:n=.8,timeConstant:r=350,restDelta:o=.5,modifyTarget:i}){const s={done:!1,value:t};let l=n*e;const a=t+l,u=i===void 0?a:i(a);return u!==a&&(l=u-t),{next:c=>{const d=-l*Math.exp(-c/r);return s.done=!(d>o||d<-o),s.value=s.done?u:u+d,s},flipTarget:()=>{}}}const Vc={keyframes:zo,spring:Xa,decay:Ev};function bv(e){if(Array.isArray(e.to))return zo;if(Vc[e.type])return Vc[e.type];const t=new Set(Object.keys(e));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?zo:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?Xa:zo}const Eh=1/60*1e3,Mv=typeof performance<"u"?()=>performance.now():()=>Date.now(),bh=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(Mv()),Eh);function Nv(e){let t=[],n=[],r=0,o=!1,i=!1;const s=new WeakSet,l={schedule:(a,u=!1,c=!1)=>{const d=c&&o,f=d?t:n;return u&&s.add(a),f.indexOf(a)===-1&&(f.push(a),d&&o&&(r=t.length)),a},cancel:a=>{const u=n.indexOf(a);u!==-1&&n.splice(u,1),s.delete(a)},process:a=>{if(o){i=!0;return}if(o=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=Nv(()=>Hr=!0),e),{}),We=Zr.reduce((e,t)=>{const n=Hi[t];return e[t]=(r,o=!1,i=!1)=>(Hr||Dv(),n.schedule(r,o,i)),e},{}),Ot=Zr.reduce((e,t)=>(e[t]=Hi[t].cancel,e),{}),xs=Zr.reduce((e,t)=>(e[t]=()=>Hi[t].process(Vn),e),{}),Vv=e=>Hi[e].process(Vn),Mh=e=>{Hr=!1,Vn.delta=Nl?Eh:Math.max(Math.min(e-Vn.timestamp,Lv),1),Vn.timestamp=e,Ll=!0,Zr.forEach(Vv),Ll=!1,Hr&&(Nl=!1,bh(Mh))},Dv=()=>{Hr=!0,Nl=!0,Ll||bh(Mh)},mi=()=>Vn;function Nh(e,t,n=0){return e-t-n}function Rv(e,t,n=0,r=!0){return r?Nh(t+-e,t,n):t-(e-t)+n}function Av(e,t,n,r){return r?e>=t+n:e<=-n}const zv=e=>{const t=({delta:n})=>e(n);return{start:()=>We.update(t,!0),stop:()=>Ot.update(t)}};function Lh(e){var t,n,{from:r,autoplay:o=!0,driver:i=zv,elapsed:s=0,repeat:l=0,repeatType:a="loop",repeatDelay:u=0,onPlay:c,onStop:d,onComplete:f,onRepeat:y,onUpdate:g}=e,k=gh(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:x}=k,m,p=0,h=k.duration,v,w=!1,_=!0,T;const b=bv(k);!((n=(t=b).needsInterpolation)===null||n===void 0)&&n.call(t,r,x)&&(T=xh([0,100],[r,x],{clamp:!1}),r=0,x=100);const R=b(Object.assign(Object.assign({},k),{from:r,to:x}));function L(){p++,a==="reverse"?(_=p%2===0,s=Rv(s,h,u,_)):(s=Nh(s,h,u),a==="mirror"&&R.flipTarget()),w=!1,y&&y()}function ae(){m.stop(),f&&f()}function _e(ht){if(_||(ht=-ht),s+=ht,!w){const mt=R.next(Math.max(0,s));v=mt.value,T&&(v=T(v)),w=_?mt.done:s<=0}g==null||g(v),w&&(p===0&&(h!=null||(h=s)),p{d==null||d(),m.stop()}}}function Vh(e,t){return t?e*(1e3/t):0}function Ov({from:e=0,velocity:t=0,min:n,max:r,power:o=.8,timeConstant:i=750,bounceStiffness:s=500,bounceDamping:l=10,restDelta:a=1,modifyTarget:u,driver:c,onUpdate:d,onComplete:f,onStop:y}){let g;function k(h){return n!==void 0&&hr}function x(h){return n===void 0?r:r===void 0||Math.abs(n-h){var w;d==null||d(v),(w=h.onUpdate)===null||w===void 0||w.call(h,v)},onComplete:f,onStop:y}))}function p(h){m(Object.assign({type:"spring",stiffness:s,damping:l,restDelta:a},h))}if(k(e))p({from:e,velocity:t,to:x(e)});else{let h=o*t+e;typeof u<"u"&&(h=u(h));const v=x(h),w=v===n?-1:1;let _,T;const b=R=>{_=T,T=R,t=Vh(R-_,mi().delta),(w===1&&R>v||w===-1&&Rg==null?void 0:g.stop()}}const Vl=e=>e.hasOwnProperty("x")&&e.hasOwnProperty("y"),Dc=e=>Vl(e)&&e.hasOwnProperty("z"),ko=(e,t)=>Math.abs(e-t);function Fv(e,t){if(Ml(e)&&Ml(t))return ko(e,t);if(Vl(e)&&Vl(t)){const n=ko(e.x,t.x),r=ko(e.y,t.y),o=Dc(e)&&Dc(t)?ko(e.z,t.z):0;return Math.sqrt(Math.pow(n,2)+Math.pow(r,2)+Math.pow(o,2))}}const Dh=(e,t)=>1-3*t+3*e,Rh=(e,t)=>3*t-6*e,Ah=e=>3*e,yi=(e,t,n)=>((Dh(t,n)*e+Rh(t,n))*e+Ah(t))*e,zh=(e,t,n)=>3*Dh(t,n)*e*e+2*Rh(t,n)*e+Ah(t),jv=1e-7,Iv=10;function Bv(e,t,n,r,o){let i,s,l=0;do s=t+(n-t)/2,i=yi(s,r,o)-e,i>0?n=s:t=s;while(Math.abs(i)>jv&&++l=Hv?Wv(s,d,e,n):f===0?d:Bv(s,l,l+wo,e,n)}return s=>s===0||s===1?s:yi(i(s),t,r)}function Gv({onTap:e,onTapStart:t,onTapCancel:n,whileTap:r,visualElement:o}){const i=e||t||n||r,s=M.exports.useRef(!1),l=M.exports.useRef(null),a={passive:!(t||e||n||y)};function u(){l.current&&l.current(),l.current=null}function c(){return u(),s.current=!1,o.animationState&&o.animationState.setActive(j.Tap,!1),!hh()}function d(g,k){!c()||(mh(o.current,g.target)?e&&e(g,k):n&&n(g,k))}function f(g,k){!c()||n&&n(g,k)}function y(g,k){u(),!s.current&&(s.current=!0,l.current=Bi(Ln(window,"pointerup",d,a),Ln(window,"pointercancel",f,a)),o.animationState&&o.animationState.setActive(j.Tap,!0),t&&t(g,k))}di(o,"pointerdown",i?y:void 0,a),yh(u)}const Kv="production",Qv=typeof process>"u"||process.env===void 0?Kv:"production",Rc=new Set;function Yv(e,t,n){e||Rc.has(t)||(console.warn(t),n&&console.warn(n),Rc.add(t))}const Dl=new WeakMap,_s=new WeakMap,Xv=e=>{const t=Dl.get(e.target);t&&t(e)},Zv=e=>{e.forEach(Xv)};function Jv({root:e,...t}){const n=e||document;_s.has(n)||_s.set(n,{});const r=_s.get(n),o=JSON.stringify(t);return r[o]||(r[o]=new IntersectionObserver(Zv,{root:e,...t})),r[o]}function qv(e,t,n){const r=Jv(t);return Dl.set(e,n),r.observe(e),()=>{Dl.delete(e),r.unobserve(e)}}function e1({visualElement:e,whileInView:t,onViewportEnter:n,onViewportLeave:r,viewport:o={}}){const i=M.exports.useRef({hasEnteredView:!1,isInView:!1});let s=Boolean(t||n||r);o.once&&i.current.hasEnteredView&&(s=!1),(typeof IntersectionObserver>"u"?r1:n1)(s,i.current,e,o)}const t1={some:0,all:1};function n1(e,t,n,{root:r,margin:o,amount:i="some",once:s}){M.exports.useEffect(()=>{if(!e||!n.current)return;const l={root:r==null?void 0:r.current,rootMargin:o,threshold:typeof i=="number"?i:t1[i]},a=u=>{const{isIntersecting:c}=u;if(t.isInView===c||(t.isInView=c,s&&!c&&t.hasEnteredView))return;c&&(t.hasEnteredView=!0),n.animationState&&n.animationState.setActive(j.InView,c);const d=n.getProps(),f=c?d.onViewportEnter:d.onViewportLeave;f&&f(u)};return qv(n.current,l,a)},[e,r,o,i])}function r1(e,t,n,{fallback:r=!0}){M.exports.useEffect(()=>{!e||!r||(Qv!=="production"&&Yv(!1,"IntersectionObserver not available on this device. whileInView animations will trigger on mount."),requestAnimationFrame(()=>{t.hasEnteredView=!0;const{onViewportEnter:o}=n.getProps();o&&o(null),n.animationState&&n.animationState.setActive(j.InView,!0)}))},[e])}const Pt=e=>t=>(e(t),null),o1={inView:Pt(e1),tap:Pt(Gv),focus:Pt(Dg),hover:Pt(Hg)};function Oh(){const e=M.exports.useContext(Oi);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,o=M.exports.useId();return M.exports.useEffect(()=>r(o),[]),!t&&n?[!1,()=>n&&n(o)]:[!0]}function Fh(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;re*1e3,i1={linear:Ja,easeIn:qa,easeInOut:Th,easeOut:hv,circIn:Ph,circInOut:mv,circOut:eu,backIn:tu,backInOut:gv,backOut:yv,anticipate:vv,bounceIn:xv,bounceInOut:_v,bounceOut:hi},Ac=e=>{if(Array.isArray(e)){fi(e.length===4);const[t,n,r,o]=e;return $v(t,n,r,o)}else if(typeof e=="string")return i1[e];return e},s1=e=>Array.isArray(e)&&typeof e[0]!="number",zc=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&ft.test(t)&&!t.startsWith("url(")),Ht=()=>({type:"spring",stiffness:500,damping:25,restSpeed:10}),So=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Cs=()=>({type:"keyframes",ease:"linear",duration:.3}),l1=e=>({type:"keyframes",duration:.8,values:e}),Oc={x:Ht,y:Ht,z:Ht,rotate:Ht,rotateX:Ht,rotateY:Ht,rotateZ:Ht,scaleX:So,scaleY:So,scale:So,opacity:Cs,backgroundColor:Cs,color:Cs,default:So},a1=(e,t)=>{let n;return Br(t)?n=l1:n=Oc[e]||Oc.default,{to:t,...n(t)}},u1={...Zp,color:pe,backgroundColor:pe,outlineColor:pe,fill:pe,stroke:pe,borderColor:pe,borderTopColor:pe,borderRightColor:pe,borderBottomColor:pe,borderLeftColor:pe,filter:Pl,WebkitFilter:Pl},nu=e=>u1[e];function ru(e,t){var n;let r=nu(e);return r!==Pl&&(r=ft),(n=r.getAnimatableNone)===null||n===void 0?void 0:n.call(r,t)}const c1={current:!1};function jh(e,t){const n=performance.now(),r=({timestamp:o})=>{const i=o-n;i>=t&&(Ot.read(r),e(i-t))};return We.read(r,!0),()=>Ot.read(r)}function d1({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:o,repeat:i,repeatType:s,repeatDelay:l,from:a,...u}){return!!Object.keys(u).length}function f1({ease:e,times:t,yoyo:n,flip:r,loop:o,...i}){const s={...i};return t&&(s.offset=t),i.duration&&(s.duration=gi(i.duration)),i.repeatDelay&&(s.repeatDelay=gi(i.repeatDelay)),e&&(s.ease=s1(e)?e.map(Ac):Ac(e)),i.type==="tween"&&(s.type="keyframes"),(n||o||r)&&(n?s.repeatType="reverse":o?s.repeatType="loop":r&&(s.repeatType="mirror"),s.repeat=o||n||r||i.repeat),i.type!=="spring"&&(s.type="keyframes"),s}function p1(e,t){var n,r;return(r=(n=(ou(e,t)||{}).delay)!==null&&n!==void 0?n:e.delay)!==null&&r!==void 0?r:0}function h1(e){return Array.isArray(e.to)&&e.to[0]===null&&(e.to=[...e.to],e.to[0]=e.from),e}function m1(e,t,n){return Array.isArray(t.to)&&e.duration===void 0&&(e.duration=.8),h1(t),d1(e)||(e={...e,...a1(n,t.to)}),{...t,...f1(e)}}function y1(e,t,n,r,o){const i=ou(r,e)||{};let s=i.from!==void 0?i.from:t.get();const l=zc(e,n);s==="none"&&l&&typeof n=="string"?s=ru(e,n):Fc(s)&&typeof n=="string"?s=jc(n):!Array.isArray(n)&&Fc(n)&&typeof s=="string"&&(n=jc(s));const a=zc(e,s);function u(){const d={from:s,to:n,velocity:t.getVelocity(),onComplete:o,onUpdate:f=>t.set(f)};return i.type==="inertia"||i.type==="decay"?Ov({...d,...i}):Lh({...m1(i,d,e),onUpdate:f=>{d.onUpdate(f),i.onUpdate&&i.onUpdate(f)},onComplete:()=>{d.onComplete(),i.onComplete&&i.onComplete()}})}function c(){const d=sh(n);return t.set(d),o(),i.onUpdate&&i.onUpdate(d),i.onComplete&&i.onComplete(),{stop:()=>{}}}return!a||!l||i.type===!1?c:u}function Fc(e){return e===0||typeof e=="string"&&parseFloat(e)===0&&e.indexOf(" ")===-1}function jc(e){return typeof e=="number"?0:ru("",e)}function ou(e,t){return e[t]||e.default||e}function iu(e,t,n,r={}){return c1.current&&(r={type:!1}),t.start(o=>{let i;const s=y1(e,t,n,r,o),l=p1(r,e),a=()=>i=s();let u;return l?u=jh(a,gi(l)):a(),()=>{u&&u(),i&&i.stop()}})}const g1=e=>/^\-?\d*\.?\d+$/.test(e),v1=e=>/^0[^.\s]+$/.test(e);function su(e,t){e.indexOf(t)===-1&&e.push(t)}function lu(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class gr{constructor(){this.subscriptions=[]}add(t){return su(this.subscriptions,t),()=>lu(this.subscriptions,t)}notify(t,n,r){const o=this.subscriptions.length;if(!!o)if(o===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class w1{constructor(t){this.version="7.6.15",this.timeDelta=0,this.lastUpdated=0,this.updateSubscribers=new gr,this.velocityUpdateSubscribers=new gr,this.renderSubscribers=new gr,this.canTrackVelocity=!1,this.updateAndNotify=(n,r=!0)=>{this.prev=this.current,this.current=n;const{delta:o,timestamp:i}=mi();this.lastUpdated!==i&&(this.timeDelta=o,this.lastUpdated=i,We.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.updateSubscribers.notify(this.current),this.velocityUpdateSubscribers.getSize()&&this.velocityUpdateSubscribers.notify(this.getVelocity()),r&&this.renderSubscribers.notify(this.current)},this.scheduleVelocityCheck=()=>We.postRender(this.velocityCheck),this.velocityCheck=({timestamp:n})=>{n!==this.lastUpdated&&(this.prev=this.current,this.velocityUpdateSubscribers.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=k1(this.current)}onChange(t){return this.updateSubscribers.add(t)}clearListeners(){this.updateSubscribers.clear()}onRenderRequest(t){return t(this.get()),this.renderSubscribers.add(t)}attach(t){this.passiveEffect=t}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?Vh(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.stopAnimation=t(n)}).then(()=>this.clearAnimation())}stop(){this.stopAnimation&&this.stopAnimation(),this.clearAnimation()}isAnimating(){return!!this.stopAnimation}clearAnimation(){this.stopAnimation=null}destroy(){this.updateSubscribers.clear(),this.renderSubscribers.clear(),this.stop()}}function In(e){return new w1(e)}const Ih=e=>t=>t.test(e),S1={test:e=>e==="auto",parse:e=>e},Bh=[un,N,qe,gt,ng,tg,S1],qn=e=>Bh.find(Ih(e)),x1=[...Bh,pe,ft],_1=e=>x1.find(Ih(e));function C1(e){const t={};return e.values.forEach((n,r)=>t[r]=n.get()),t}function T1(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Wi(e,t,n){const r=e.getProps();return Qa(r,t,n!==void 0?n:r.custom,C1(e),T1(e))}function P1(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,In(n))}function E1(e,t){const n=Wi(e,t);let{transitionEnd:r={},transition:o={},...i}=n?e.makeTargetAnimatable(n,!1):{};i={...i,...r};for(const s in i){const l=sh(i[s]);P1(e,s,l)}}function b1(e,t,n){var r,o;const i=Object.keys(t).filter(l=>!e.hasValue(l)),s=i.length;if(!!s)for(let l=0;lRl(e,i,n));r=Promise.all(o)}else if(typeof t=="string")r=Rl(e,t,n);else{const o=typeof t=="function"?Wi(e,t,n.custom):t;r=Uh(e,o,n)}return r.then(()=>e.notify("AnimationComplete",t))}function Rl(e,t,n={}){var r;const o=Wi(e,t,n.custom);let{transition:i=e.getDefaultTransition()||{}}=o||{};n.transitionOverride&&(i=n.transitionOverride);const s=o?()=>Uh(e,o,n):()=>Promise.resolve(),l=!((r=e.variantChildren)===null||r===void 0)&&r.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:d,staggerDirection:f}=i;return V1(e,t,c+u,d,f,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[u,c]=a==="beforeChildren"?[s,l]:[l,s];return u().then(c)}else return Promise.all([s(),l(n.delay)])}function Uh(e,t,{delay:n=0,transitionOverride:r,type:o}={}){var i;let{transition:s=e.getDefaultTransition(),transitionEnd:l,...a}=e.makeTargetAnimatable(t);const u=e.getValue("willChange");r&&(s=r);const c=[],d=o&&((i=e.animationState)===null||i===void 0?void 0:i.getState()[o]);for(const f in a){const y=e.getValue(f),g=a[f];if(!y||g===void 0||d&&R1(d,f))continue;let k={delay:n,...s};e.shouldReduceMotion&&Wn.has(f)&&(k={...k,type:!1,delay:0});let x=iu(f,y,g,k);vi(u)&&(u.add(f),x=x.then(()=>u.remove(f))),c.push(x)}return Promise.all(c).then(()=>{l&&E1(e,l)})}function V1(e,t,n=0,r=0,o=1,i){const s=[],l=(e.variantChildren.size-1)*r,a=o===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(D1).forEach((u,c)=>{s.push(Rl(u,t,{...i,delay:n+a(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(s)}function D1(e,t){return e.sortNodePosition(t)}function R1({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}const au=[j.Animate,j.InView,j.Focus,j.Hover,j.Tap,j.Drag,j.Exit],A1=[...au].reverse(),z1=au.length;function O1(e){return t=>Promise.all(t.map(({animation:n,options:r})=>L1(e,n,r)))}function F1(e){let t=O1(e);const n=I1();let r=!0;const o=(a,u)=>{const c=Wi(e,u);if(c){const{transition:d,transitionEnd:f,...y}=c;a={...a,...y,...f}}return a};function i(a){t=a(e)}function s(a,u){var c;const d=e.getProps(),f=e.getVariantContext(!0)||{},y=[],g=new Set;let k={},x=1/0;for(let p=0;px&&_;const ae=Array.isArray(w)?w:[w];let _e=ae.reduce(o,{});T===!1&&(_e={});const{prevResolvedValues:Ge={}}=v,ht={...Ge,..._e},mt=J=>{L=!0,g.delete(J),v.needsAnimating[J]=!0};for(const J in ht){const tt=_e[J],P=Ge[J];k.hasOwnProperty(J)||(tt!==P?Br(tt)&&Br(P)?!Fh(tt,P)||R?mt(J):v.protectedKeys[J]=!0:tt!==void 0?mt(J):g.add(J):tt!==void 0&&g.has(J)?mt(J):v.protectedKeys[J]=!0)}v.prevProp=w,v.prevResolvedValues=_e,v.isActive&&(k={...k,..._e}),r&&e.blockInitialAnimation&&(L=!1),L&&!b&&y.push(...ae.map(J=>({animation:J,options:{type:h,...a}})))}if(g.size){const p={};g.forEach(h=>{const v=e.getBaseTarget(h);v!==void 0&&(p[h]=v)}),y.push({animation:p})}let m=Boolean(y.length);return r&&d.initial===!1&&!e.manuallyAnimateOnMount&&(m=!1),r=!1,m?t(y):Promise.resolve()}function l(a,u,c){var d;if(n[a].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(y=>{var g;return(g=y.animationState)===null||g===void 0?void 0:g.setActive(a,u)}),n[a].isActive=u;const f=s(c,a);for(const y in n)n[y].protectedKeys={};return f}return{animateChanges:s,setActive:l,setAnimateFunction:i,getState:()=>n}}function j1(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Fh(t,e):!1}function Wt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function I1(){return{[j.Animate]:Wt(!0),[j.InView]:Wt(),[j.Hover]:Wt(),[j.Tap]:Wt(),[j.Drag]:Wt(),[j.Focus]:Wt(),[j.Exit]:Wt()}}const B1={animation:Pt(({visualElement:e,animate:t})=>{e.animationState||(e.animationState=F1(e)),Fi(t)&&M.exports.useEffect(()=>t.subscribe(e),[t])}),exit:Pt(e=>{const{custom:t,visualElement:n}=e,[r,o]=Oh(),i=M.exports.useContext(Oi);M.exports.useEffect(()=>{n.isPresent=r;const s=n.animationState&&n.animationState.setActive(j.Exit,!r,{custom:i&&i.custom||t});s&&!r&&s.then(o)},[r])})};class Hh{constructor(t,n,{transformPagePoint:r}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=Ps(this.lastMoveEventInfo,this.history),c=this.startEvent!==null,d=Fv(u.offset,{x:0,y:0})>=3;if(!c&&!d)return;const{point:f}=u,{timestamp:y}=mi();this.history.push({...f,timestamp:y});const{onStart:g,onMove:k}=this.handlers;c||(g&&g(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),k&&k(this.lastMoveEvent,u)},this.handlePointerMove=(u,c)=>{if(this.lastMoveEvent=u,this.lastMoveEventInfo=Ts(c,this.transformPagePoint),ah(u)&&u.buttons===0){this.handlePointerUp(u,c);return}We.update(this.updatePoint,!0)},this.handlePointerUp=(u,c)=>{this.end();const{onEnd:d,onSessionEnd:f}=this.handlers,y=Ps(Ts(c,this.transformPagePoint),this.history);this.startEvent&&d&&d(u,y),f&&f(u,y)},uh(t)&&t.touches.length>1)return;this.handlers=n,this.transformPagePoint=r;const o=Ya(t),i=Ts(o,this.transformPagePoint),{point:s}=i,{timestamp:l}=mi();this.history=[{...s,timestamp:l}];const{onSessionStart:a}=n;a&&a(t,Ps(i,this.history)),this.removeListeners=Bi(Ln(window,"pointermove",this.handlePointerMove),Ln(window,"pointerup",this.handlePointerUp),Ln(window,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Ot.update(this.updatePoint)}}function Ts(e,t){return t?{point:t(e.point)}:e}function Ic(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ps({point:e},t){return{point:e,delta:Ic(e,Wh(t)),offset:Ic(e,U1(t)),velocity:H1(t,.1)}}function U1(e){return e[0]}function Wh(e){return e[e.length-1]}function H1(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const o=Wh(e);for(;n>=0&&(r=e[n],!(o.timestamp-r.timestamp>gi(t)));)n--;if(!r)return{x:0,y:0};const i=(o.timestamp-r.timestamp)/1e3;if(i===0)return{x:0,y:0};const s={x:(o.x-r.x)/i,y:(o.y-r.y)/i};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function be(e){return e.max-e.min}function Al(e,t=0,n=.01){return Math.abs(e-t)<=n}function Bc(e,t,n,r=.5){e.origin=r,e.originPoint=Q(t.min,t.max,e.origin),e.scale=be(n)/be(t),(Al(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=Q(n.min,n.max,e.origin)-e.originPoint,(Al(e.translate)||isNaN(e.translate))&&(e.translate=0)}function vr(e,t,n,r){Bc(e.x,t.x,n.x,r==null?void 0:r.originX),Bc(e.y,t.y,n.y,r==null?void 0:r.originY)}function Uc(e,t,n){e.min=n.min+t.min,e.max=e.min+be(t)}function W1(e,t,n){Uc(e.x,t.x,n.x),Uc(e.y,t.y,n.y)}function Hc(e,t,n){e.min=t.min-n.min,e.max=e.min+be(t)}function kr(e,t,n){Hc(e.x,t.x,n.x),Hc(e.y,t.y,n.y)}function $1(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Q(n,e,r.max):Math.min(e,n)),e}function Wc(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function G1(e,{top:t,left:n,bottom:r,right:o}){return{x:Wc(e.x,n,o),y:Wc(e.y,t,r)}}function $c(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Ur(t.min,t.max-r,e.min):r>o&&(n=Ur(e.min,e.max-o,t.min)),pi(0,1,n)}function Y1(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const zl=.35;function X1(e=zl){return e===!1?e=0:e===!0&&(e=zl),{x:Gc(e,"left","right"),y:Gc(e,"top","bottom")}}function Gc(e,t,n){return{min:Kc(e,t),max:Kc(e,n)}}function Kc(e,t){var n;return typeof e=="number"?e:(n=e[t])!==null&&n!==void 0?n:0}const Qc=()=>({translate:0,scale:1,origin:0,originPoint:0}),wr=()=>({x:Qc(),y:Qc()}),Yc=()=>({min:0,max:0}),q=()=>({x:Yc(),y:Yc()});function Ye(e){return[e("x"),e("y")]}function $h({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Z1({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function J1(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Es(e){return e===void 0||e===1}function Ol({scale:e,scaleX:t,scaleY:n}){return!Es(e)||!Es(t)||!Es(n)}function Kt(e){return Ol(e)||Gh(e)||e.z||e.rotate||e.rotateX||e.rotateY}function Gh(e){return Xc(e.x)||Xc(e.y)}function Xc(e){return e&&e!=="0%"}function ki(e,t,n){const r=e-n,o=t*r;return n+o}function Zc(e,t,n,r,o){return o!==void 0&&(e=ki(e,o,r)),ki(e,n,r)+t}function Fl(e,t=0,n=1,r,o){e.min=Zc(e.min,t,n,r,o),e.max=Zc(e.max,t,n,r,o)}function Kh(e,{x:t,y:n}){Fl(e.x,t.translate,t.scale,t.originPoint),Fl(e.y,n.translate,n.scale,n.originPoint)}function q1(e,t,n,r=!1){var o,i;const s=n.length;if(!s)return;t.x=t.y=1;let l,a;for(let u=0;u1.0000000000001||e<.999999999999?e:1}function wt(e,t){e.min=e.min+t,e.max=e.max+t}function qc(e,t,[n,r,o]){const i=t[o]!==void 0?t[o]:.5,s=Q(e.min,e.max,i);Fl(e,t[n],t[r],s,t.scale)}const e2=["x","scaleX","originX"],t2=["y","scaleY","originY"];function Cn(e,t){qc(e.x,t,e2),qc(e.y,t,t2)}function Qh(e,t){return $h(J1(e.getBoundingClientRect(),t))}function n2(e,t,n){const r=Qh(e,n),{scroll:o}=t;return o&&(wt(r.x,o.offset.x),wt(r.y,o.offset.y)),r}const r2=new WeakMap;class o2{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=q(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){if(this.visualElement.isPresent===!1)return;const r=l=>{this.stopAnimation(),n&&this.snapToCursor(Ya(l,"page").point)},o=(l,a)=>{var u;const{drag:c,dragPropagation:d,onDragStart:f}=this.getProps();c&&!d&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=ph(c),!this.openGlobalLock)||(this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ye(y=>{var g,k;let x=this.getAxisMotionValue(y).get()||0;if(qe.test(x)){const m=(k=(g=this.visualElement.projection)===null||g===void 0?void 0:g.layout)===null||k===void 0?void 0:k.layoutBox[y];m&&(x=be(m)*(parseFloat(x)/100))}this.originPoint[y]=x}),f==null||f(l,a),(u=this.visualElement.animationState)===null||u===void 0||u.setActive(j.Drag,!0))},i=(l,a)=>{const{dragPropagation:u,dragDirectionLock:c,onDirectionLock:d,onDrag:f}=this.getProps();if(!u&&!this.openGlobalLock)return;const{offset:y}=a;if(c&&this.currentDirection===null){this.currentDirection=i2(y),this.currentDirection!==null&&(d==null||d(this.currentDirection));return}this.updateAxis("x",a.point,y),this.updateAxis("y",a.point,y),this.visualElement.render(),f==null||f(l,a)},s=(l,a)=>this.stop(l,a);this.panSession=new Hh(t,{onSessionStart:r,onStart:o,onMove:i,onSessionEnd:s},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:o}=n;this.startAnimation(o);const{onDragEnd:i}=this.getProps();i==null||i(t,n)}cancel(){var t,n;this.isDragging=!1,this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!1),(t=this.panSession)===null||t===void 0||t.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),(n=this.visualElement.animationState)===null||n===void 0||n.setActive(j.Drag,!1)}updateAxis(t,n,r){const{drag:o}=this.getProps();if(!r||!xo(t,o,this.currentDirection))return;const i=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=$1(s,this.constraints[t],this.elastic[t])),i.set(s)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),{layout:r}=this.visualElement.projection||{},o=this.constraints;t&&_n(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=G1(r.layoutBox,t):this.constraints=!1,this.elastic=X1(n),o!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Ye(i=>{this.getAxisMotionValue(i)&&(this.constraints[i]=Y1(r.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!_n(t))return!1;const r=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const i=n2(r,o.root,this.visualElement.getTransformPagePoint());let s=K1(o.layout.layoutBox,i);if(n){const l=n(Z1(s));this.hasMutatedConstraints=!!l,l&&(s=$h(l))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:o,dragTransition:i,dragSnapToOrigin:s,onDragTransitionEnd:l}=this.getProps(),a=this.constraints||{},u=Ye(c=>{var d;if(!xo(c,n,this.currentDirection))return;let f=(d=a==null?void 0:a[c])!==null&&d!==void 0?d:{};s&&(f={min:0,max:0});const y=o?200:1e6,g=o?40:1e7,k={type:"inertia",velocity:r?t[c]:0,bounceStiffness:y,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(c,k)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return iu(t,r,0,n)}stopAnimation(){Ye(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){var n,r;const o="_drag"+t.toUpperCase(),i=this.visualElement.getProps()[o];return i||this.visualElement.getValue(t,(r=(n=this.visualElement.getProps().initial)===null||n===void 0?void 0:n[t])!==null&&r!==void 0?r:0)}snapToCursor(t){Ye(n=>{const{drag:r}=this.getProps();if(!xo(n,r,this.currentDirection))return;const{projection:o}=this.visualElement,i=this.getAxisMotionValue(n);if(o&&o.layout){const{min:s,max:l}=o.layout.layoutBox[n];i.set(t[n]-Q(s,l,.5))}})}scalePositionWithinConstraints(){var t;if(!this.visualElement.current)return;const{drag:n,dragConstraints:r}=this.getProps(),{projection:o}=this.visualElement;if(!_n(r)||!o||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Ye(l=>{const a=this.getAxisMotionValue(l);if(a){const u=a.get();i[l]=Q1({min:u,max:u},this.constraints[l])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",(t=o.root)===null||t===void 0||t.updateScroll(),o.updateLayout(),this.resolveConstraints(),Ye(l=>{if(!xo(l,n,null))return;const a=this.getAxisMotionValue(l),{min:u,max:c}=this.constraints[l];a.set(Q(u,c,i[l]))})}addListeners(){var t;if(!this.visualElement.current)return;r2.set(this.visualElement,this);const n=this.visualElement.current,r=Ln(n,"pointerdown",u=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(u)}),o=()=>{const{dragConstraints:u}=this.getProps();_n(u)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",o);i&&!i.layout&&((t=i.root)===null||t===void 0||t.updateScroll(),i.updateLayout()),o();const l=Ii(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:u,hasLayoutChanged:c})=>{this.isDragging&&c&&(Ye(d=>{const f=this.getAxisMotionValue(d);!f||(this.originPoint[d]+=u[d].translate,f.set(f.get()+u[d].translate))}),this.visualElement.render())});return()=>{l(),r(),s(),a==null||a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:o=!1,dragConstraints:i=!1,dragElastic:s=zl,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:o,dragConstraints:i,dragElastic:s,dragMomentum:l}}}function xo(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function i2(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}function s2(e){const{dragControls:t,visualElement:n}=e,r=Ba(()=>new o2(n));M.exports.useEffect(()=>t&&t.subscribe(r),[r,t]),M.exports.useEffect(()=>r.addListeners(),[r])}function l2({onPan:e,onPanStart:t,onPanEnd:n,onPanSessionStart:r,visualElement:o}){const i=e||t||n||r,s=M.exports.useRef(null),{transformPagePoint:l}=M.exports.useContext(Ia),a={onSessionStart:r,onStart:t,onMove:e,onEnd:(c,d)=>{s.current=null,n&&n(c,d)}};M.exports.useEffect(()=>{s.current!==null&&s.current.updateHandlers(a)});function u(c){s.current=new Hh(c,a,{transformPagePoint:l})}di(o,"pointerdown",i&&u),yh(()=>s.current&&s.current.end())}const a2={pan:Pt(l2),drag:Pt(s2)};function jl(e){return typeof e=="string"&&e.startsWith("var(--")}const Yh=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function u2(e){const t=Yh.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function Il(e,t,n=1){const[r,o]=u2(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);return i?i.trim():jl(o)?Il(o,t,n+1):o}function c2(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(o=>{const i=o.get();if(!jl(i))return;const s=Il(i,r);s&&o.set(s)});for(const o in t){const i=t[o];if(!jl(i))continue;const s=Il(i,r);!s||(t[o]=s,n&&n[o]===void 0&&(n[o]=i))}return{target:t,transitionEnd:n}}const d2=new Set(["width","height","top","left","right","bottom","x","y"]),Xh=e=>d2.has(e),f2=e=>Object.keys(e).some(Xh),Zh=(e,t)=>{e.set(t,!1),e.set(t)},ed=e=>e===un||e===N;var td;(function(e){e.width="width",e.height="height",e.left="left",e.right="right",e.top="top",e.bottom="bottom"})(td||(td={}));const nd=(e,t)=>parseFloat(e.split(", ")[t]),rd=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const o=r.match(/^matrix3d\((.+)\)$/);if(o)return nd(o[1],t);{const i=r.match(/^matrix\((.+)\)$/);return i?nd(i[1],e):0}},p2=new Set(["x","y","z"]),h2=ui.filter(e=>!p2.has(e));function m2(e){const t=[];return h2.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const od={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rd(4,13),y:rd(5,14)},y2=(e,t,n)=>{const r=t.measureViewportBox(),o=t.current,i=getComputedStyle(o),{display:s}=i,l={};s==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{l[u]=od[u](r,i)}),t.render();const a=t.measureViewportBox();return n.forEach(u=>{const c=t.getValue(u);Zh(c,l[u]),e[u]=od[u](a,i)}),e},g2=(e,t,n={},r={})=>{t={...t},r={...r};const o=Object.keys(t).filter(Xh);let i=[],s=!1;const l=[];if(o.forEach(a=>{const u=e.getValue(a);if(!e.hasValue(a))return;let c=n[a],d=qn(c);const f=t[a];let y;if(Br(f)){const g=f.length,k=f[0]===null?1:0;c=f[k],d=qn(c);for(let x=k;x=0?window.pageYOffset:null,u=y2(t,e,l);return i.length&&i.forEach(([c,d])=>{e.getValue(c).set(d)}),e.render(),an&&a!==null&&window.scrollTo({top:a}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function v2(e,t,n,r){return f2(t)?g2(e,t,n,r):{target:t,transitionEnd:r}}const k2=(e,t,n,r)=>{const o=c2(e,t,r);return t=o.target,r=o.transitionEnd,v2(e,t,n,r)},Bl={current:null},Jh={current:!1};function w2(){if(Jh.current=!0,!!an)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Bl.current=e.matches;e.addListener(t),t()}else Bl.current=!1}function S2(e,t,n){const{willChange:r}=t;for(const o in t){const i=t[o],s=n[o];if(et(i))e.addValue(o,i),vi(r)&&r.add(o);else if(et(s))e.addValue(o,In(i)),vi(r)&&r.remove(o);else if(s!==i)if(e.hasValue(o)){const l=e.getValue(o);!l.hasAnimated&&l.set(i)}else{const l=e.getStaticValue(o);e.addValue(o,In(l!==void 0?l:i))}}for(const o in n)t[o]===void 0&&e.removeValue(o);return t}const qh=Object.keys(jr),x2=qh.length,id=["AnimationStart","AnimationComplete","Update","Unmount","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class _2{constructor({parent:t,props:n,reducedMotionConfig:r,visualState:o},i={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.isPresent=!0,this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{!this.current||(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>We.render(this.render,!1,!0);const{latestValues:s,renderState:l}=o;this.latestValues=s,this.baseTarget={...s},this.initialValues=n.initial?{...s}:{},this.renderState=l,this.parent=t,this.props=n,this.depth=t?t.depth+1:0,this.reducedMotionConfig=r,this.options=i,this.isControllingVariants=ji(n),this.isVariantNode=jp(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(t&&t.current);const{willChange:a,...u}=this.scrapeMotionValuesFromProps(n);for(const c in u){const d=u[c];s[c]!==void 0&&et(d)&&(d.set(s[c],!1),vi(a)&&a.add(c))}}scrapeMotionValuesFromProps(t){return{}}mount(t){var n;this.current=t,this.projection&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=(n=this.parent)===null||n===void 0?void 0:n.addVariantChild(this)),this.values.forEach((r,o)=>this.bindToMotionValue(o,r)),Jh.current||w2(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Bl.current,this.parent&&this.parent.children.add(this),this.setProps(this.props)}unmount(){var t,n,r;(t=this.projection)===null||t===void 0||t.unmount(),Ot.update(this.notifyUpdate),Ot.render(this.render),this.valueSubscriptions.forEach(o=>o()),(n=this.removeFromVariantTree)===null||n===void 0||n.call(this),(r=this.parent)===null||r===void 0||r.children.delete(this);for(const o in this.events)this.events[o].clear();this.current=null}bindToMotionValue(t,n){const r=Wn.has(t),o=n.onChange(s=>{this.latestValues[t]=s,this.props.onUpdate&&We.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.onRenderRequest(this.scheduleRender);this.valueSubscriptions.set(t,()=>{o(),i()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures(t,n,r,o,i,s){const l=[];for(let a=0;athis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:s,layoutScroll:f})}return l}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):q()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}setProps(t){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.props=t;for(let n=0;nr.variantChildren.delete(t)}addValue(t,n){this.hasValue(t)&&this.removeValue(t),this.values.set(t,n),this.latestValues[t]=n.get(),this.bindToMotionValue(t,n)}removeValue(t){var n;this.values.delete(t),(n=this.valueSubscriptions.get(t))===null||n===void 0||n(),this.valueSubscriptions.delete(t),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=In(n),this.addValue(t,r)),r}readValue(t){return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,o=typeof r=="string"||typeof r=="object"?(n=Qa(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&o!==void 0)return o;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!et(i)?i:this.initialValues[t]!==void 0&&o===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new gr),this.events[t].add(n)}notify(t,...n){var r;(r=this.events[t])===null||r===void 0||r.notify(...n)}}const em=["initial",...au],C2=em.length;class tm extends _2{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){var r;return(r=t.style)===null||r===void 0?void 0:r[n]}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:o},i){let s=N1(r,t||{},this);if(o&&(n&&(n=o(n)),r&&(r=o(r)),s&&(s=o(s))),i){b1(this,r,s);const l=k2(this,r,s,n);n=l.transitionEnd,r=l.target}return{transition:t,transitionEnd:n,...r}}}function T2(e){return window.getComputedStyle(e)}class P2 extends tm{readValueFromInstance(t,n){if(Wn.has(n)){const r=nu(n);return r&&r.default||0}else{const r=T2(t),o=(Hp(n)?r.getPropertyValue(n):r[n])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Qh(t,n)}build(t,n,r,o){Wa(t,n,r,o.transformTemplate)}scrapeMotionValuesFromProps(t){return Ka(t)}renderInstance(t,n,r,o){nh(t,n,r,o)}}class E2 extends tm{getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){var r;return Wn.has(n)?((r=nu(n))===null||r===void 0?void 0:r.default)||0:(n=rh.has(n)?n:th(n),t.getAttribute(n))}measureInstanceViewportBox(){return q()}scrapeMotionValuesFromProps(t){return ih(t)}build(t,n,r,o){Ga(t,n,r,o.transformTemplate)}renderInstance(t,n,r,o){oh(t,n,r,o)}}const b2=(e,t)=>Ua(e)?new E2(t,{enableHardwareAcceleration:!1}):new P2(t,{enableHardwareAcceleration:!0});function sd(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const er={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(N.test(e))e=parseFloat(e);else return e;const n=sd(e,t.target.x),r=sd(e,t.target.y);return`${n}% ${r}%`}},ld="_$css",M2={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,o=e.includes("var("),i=[];o&&(e=e.replace(Yh,y=>(i.push(y),ld)));const s=ft.parse(e);if(s.length>5)return r;const l=ft.createTransformer(e),a=typeof s[0]!="number"?1:0,u=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=u,s[1+a]/=c;const d=Q(u,c,.5);typeof s[2+a]=="number"&&(s[2+a]/=d),typeof s[3+a]=="number"&&(s[3+a]/=d);let f=l(s);if(o){let y=0;f=f.replace(ld,()=>{const g=i[y];return y++,g})}return f}};class N2 extends Ql.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:o}=this.props,{projection:i}=t;Yy(V2),i&&(n.group&&n.group.add(i),r&&r.register&&o&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),hr.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:o,isPresent:i}=this.props,s=r.projection;return s&&(s.isPresent=i,o||t.layoutDependency!==n||n===void 0?s.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?s.promote():s.relegate()||We.postRender(()=>{var l;!((l=s.getStack())===null||l===void 0)&&l.members.length||this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),!t.currentAnimation&&t.isLead()&&this.safeToRemove())}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:o}=t;o&&(o.scheduleCheckAfterUnmount(),n!=null&&n.group&&n.group.remove(o),r!=null&&r.deregister&&r.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t==null||t()}render(){return null}}function L2(e){const[t,n]=Oh(),r=M.exports.useContext(Ip);return C(N2,{...e,layoutGroup:r,switchLayoutGroup:M.exports.useContext(Bp),isPresent:t,safeToRemove:n})}const V2={borderRadius:{...er,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:er,borderTopRightRadius:er,borderBottomLeftRadius:er,borderBottomRightRadius:er,boxShadow:M2},D2={measureLayout:L2};function R2(e,t,n={}){const r=et(e)?e:In(e);return iu("",r,t,n),{stop:()=>r.stop(),isAnimating:()=>r.isAnimating()}}const nm=["TopLeft","TopRight","BottomLeft","BottomRight"],A2=nm.length,ad=e=>typeof e=="string"?parseFloat(e):e,ud=e=>typeof e=="number"||N.test(e);function z2(e,t,n,r,o,i){var s,l,a,u;o?(e.opacity=Q(0,(s=n.opacity)!==null&&s!==void 0?s:1,O2(r)),e.opacityExit=Q((l=t.opacity)!==null&&l!==void 0?l:1,0,F2(r))):i&&(e.opacity=Q((a=t.opacity)!==null&&a!==void 0?a:1,(u=n.opacity)!==null&&u!==void 0?u:1,r));for(let c=0;crt?1:n(Ur(e,t,r))}function dd(e,t){e.min=t.min,e.max=t.max}function Fe(e,t){dd(e.x,t.x),dd(e.y,t.y)}function fd(e,t,n,r,o){return e-=t,e=ki(e,1/n,r),o!==void 0&&(e=ki(e,1/o,r)),e}function j2(e,t=0,n=1,r=.5,o,i=e,s=e){if(qe.test(t)&&(t=parseFloat(t),t=Q(s.min,s.max,t/100)-s.min),typeof t!="number")return;let l=Q(i.min,i.max,r);e===i&&(l-=t),e.min=fd(e.min,t,n,l,o),e.max=fd(e.max,t,n,l,o)}function pd(e,t,[n,r,o],i,s){j2(e,t[n],t[r],t[o],t.scale,i,s)}const I2=["x","scaleX","originX"],B2=["y","scaleY","originY"];function hd(e,t,n,r){pd(e.x,t,I2,n==null?void 0:n.x,r==null?void 0:r.x),pd(e.y,t,B2,n==null?void 0:n.y,r==null?void 0:r.y)}function md(e){return e.translate===0&&e.scale===1}function om(e){return md(e.x)&&md(e.y)}function im(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function yd(e){return be(e.x)/be(e.y)}class U2{constructor(){this.members=[]}add(t){su(this.members,t),t.scheduleRender()}remove(t){if(lu(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(o=>t===o);if(n===0)return!1;let r;for(let o=n;o>=0;o--){const i=this.members[o];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){var r;const o=this.lead;if(t!==o&&(this.prevLead=o,this.lead=t,t.show(),o)){o.instance&&o.scheduleRender(),t.scheduleRender(),t.resumeFrom=o,n&&(t.resumeFrom.preserveOpacity=!0),o.snapshot&&(t.snapshot=o.snapshot,t.snapshot.latestValues=o.animationValues||o.latestValues),!((r=t.root)===null||r===void 0)&&r.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(t=>{var n,r,o,i,s;(r=(n=t.options).onExitComplete)===null||r===void 0||r.call(n),(s=(o=t.resumingFrom)===null||o===void 0?void 0:(i=o.options).onExitComplete)===null||s===void 0||s.call(i)})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function gd(e,t,n){let r="";const o=e.x.translate/t.x,i=e.y.translate/t.y;if((o||i)&&(r=`translate3d(${o}px, ${i}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:a,rotateX:u,rotateY:c}=n;a&&(r+=`rotate(${a}deg) `),u&&(r+=`rotateX(${u}deg) `),c&&(r+=`rotateY(${c}deg) `)}const s=e.x.scale*t.x,l=e.y.scale*t.y;return(s!==1||l!==1)&&(r+=`scale(${s}, ${l})`),r||"none"}const H2=(e,t)=>e.depth-t.depth;class W2{constructor(){this.children=[],this.isDirty=!1}add(t){su(this.children,t),this.isDirty=!0}remove(t){lu(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(H2),this.isDirty=!1,this.children.forEach(t)}}const vd=["","X","Y","Z"],kd=1e3;let $2=0;function sm({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:o}){return class{constructor(s,l={},a=t==null?void 0:t()){this.id=$2++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isTransformDirty=!1,this.isProjectionDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.nodes.forEach(Q2),this.nodes.forEach(Z2),this.nodes.forEach(J2)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.elementId=s,this.latestValues=l,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0,s&&this.root.registerPotentialNode(s,this);for(let u=0;uthis.root.updateBlockedByResize=!1;e(s,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=jh(y,250),hr.hasAnimatedSinceResize&&(hr.hasAnimatedSinceResize=!1,this.nodes.forEach(Sd))})}u&&this.root.registerSharedNode(u,this),this.options.animate!==!1&&d&&(u||c)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:y,hasRelativeTargetChanged:g,layout:k})=>{var x,m,p,h,v;if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=(m=(x=this.options.transition)!==null&&x!==void 0?x:d.getDefaultTransition())!==null&&m!==void 0?m:rk,{onLayoutAnimationStart:_,onLayoutAnimationComplete:T}=d.getProps(),b=!this.targetLayout||!im(this.targetLayout,k)||g,R=!y&&g;if(((p=this.resumeFrom)===null||p===void 0?void 0:p.instance)||R||y&&(b||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,R);const L={...ou(w,"layout"),onPlay:_,onComplete:T};d.shouldReduceMotion&&(L.delay=0,L.type=!1),this.startAnimation(L)}else!y&&this.animationProgress===0&&Sd(this),this.isLead()&&((v=(h=this.options).onExitComplete)===null||v===void 0||v.call(h));this.targetLayout=k})}unmount(){var s,l;this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this),(s=this.getStack())===null||s===void 0||s.remove(this),(l=this.parent)===null||l===void 0||l.children.delete(this),this.instance=void 0,Ot.preRender(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){var s;return this.isAnimationBlocked||((s=this.parent)===null||s===void 0?void 0:s.isTreeAnimationBlocked())||!1}startUpdate(){var s;this.isUpdateBlocked()||(this.isUpdating=!0,(s=this.nodes)===null||s===void 0||s.forEach(q2),this.animationId++)}willUpdate(s=!0){var l,a,u;if(this.root.isUpdateBlocked()){(a=(l=this.options).onExitComplete)===null||a===void 0||a.call(l);return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let y=0;y{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){var s;if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a{var h;const v=p/1e3;xd(y.x,s.x,v),xd(y.y,s.y,v),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&((h=this.relativeParent)===null||h===void 0?void 0:h.layout)&&(kr(g,this.layout.layoutBox,this.relativeParent.layout.layoutBox),tk(this.relativeTarget,this.relativeTargetOrigin,g,v)),k&&(this.animationValues=f,z2(f,d,this.latestValues,v,m,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=v},this.mixTargetDelta(0)}startAnimation(s){var l,a;this.notifyListeners("animationStart"),(l=this.currentAnimation)===null||l===void 0||l.stop(),this.resumingFrom&&((a=this.resumingFrom.currentAnimation)===null||a===void 0||a.stop()),this.pendingAnimation&&(Ot.update(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=We.update(()=>{hr.hasAnimatedSinceResize=!0,this.currentAnimation=R2(0,kd,{...s,onUpdate:u=>{var c;this.mixTargetDelta(u),(c=s.onUpdate)===null||c===void 0||c.call(s,u)},onComplete:()=>{var u;(u=s.onComplete)===null||u===void 0||u.call(s),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){var s;this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0),(s=this.getStack())===null||s===void 0||s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){var s;this.currentAnimation&&((s=this.mixTargetDelta)===null||s===void 0||s.call(this,kd),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:l,target:a,layout:u,latestValues:c}=s;if(!(!l||!a||!u)){if(this!==s&&this.layout&&u&&lm(this.options.animationType,this.layout.layoutBox,u.layoutBox)){a=this.target||q();const d=be(this.layout.layoutBox.x);a.x.min=s.target.x.min,a.x.max=a.x.min+d;const f=be(this.layout.layoutBox.y);a.y.min=s.target.y.min,a.y.max=a.y.min+f}Fe(l,a),Cn(l,c),vr(this.projectionDeltaWithTransform,this.layoutCorrected,l,c)}}registerSharedNode(s,l){var a,u,c;this.sharedNodes.has(s)||this.sharedNodes.set(s,new U2),this.sharedNodes.get(s).add(l),l.promote({transition:(a=l.options.initialPromotionConfig)===null||a===void 0?void 0:a.transition,preserveFollowOpacity:(c=(u=l.options.initialPromotionConfig)===null||u===void 0?void 0:u.shouldPreserveFollowOpacity)===null||c===void 0?void 0:c.call(u,l)})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var s;const{layoutId:l}=this.options;return l?((s=this.getStack())===null||s===void 0?void 0:s.lead)||this:this}getPrevLead(){var s;const{layoutId:l}=this.options;return l?(s=this.getStack())===null||s===void 0?void 0:s.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:l,preserveFollowOpacity:a}={}){const u=this.getStack();u&&u.promote(this,a),s&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetRotation(){const{visualElement:s}=this.options;if(!s)return;let l=!1;const{latestValues:a}=s;if((a.rotate||a.rotateX||a.rotateY||a.rotateZ)&&(l=!0),!l)return;const u={};for(let c=0;c{var l;return(l=s.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(wd),this.root.sharedNodes.clear()}}}function G2(e){e.updateLayout()}function K2(e){var t,n,r;const o=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&o&&e.hasListeners("didUpdate")){const{layoutBox:i,measuredBox:s}=e.layout,{animationType:l}=e.options,a=o.source!==e.layout.source;l==="size"?Ye(y=>{const g=a?o.measuredBox[y]:o.layoutBox[y],k=be(g);g.min=i[y].min,g.max=g.min+k}):lm(l,o.layoutBox,i)&&Ye(y=>{const g=a?o.measuredBox[y]:o.layoutBox[y],k=be(i[y]);g.max=g.min+k});const u=wr();vr(u,i,o.layoutBox);const c=wr();a?vr(c,e.applyTransform(s,!0),o.measuredBox):vr(c,i,o.layoutBox);const d=!om(u);let f=!1;if(!e.resumeFrom){const y=e.getClosestProjectingParent();if(y&&!y.resumeFrom){const{snapshot:g,layout:k}=y;if(g&&k){const x=q();kr(x,o.layoutBox,g.layoutBox);const m=q();kr(m,i,k.layoutBox),im(x,m)||(f=!0)}}}e.notifyListeners("didUpdate",{layout:i,snapshot:o,delta:c,layoutDelta:u,hasLayoutChanged:d,hasRelativeTargetChanged:f})}else e.isLead()&&((r=(n=e.options).onExitComplete)===null||r===void 0||r.call(n));e.options.transition=void 0}function Q2(e){e.isProjectionDirty||(e.isProjectionDirty=Boolean(e.parent&&e.parent.isProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=Boolean(e.parent&&e.parent.isTransformDirty))}function Y2(e){e.clearSnapshot()}function wd(e){e.clearMeasurements()}function X2(e){const{visualElement:t}=e.options;t!=null&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Sd(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0}function Z2(e){e.resolveTargetDelta()}function J2(e){e.calcProjection()}function q2(e){e.resetRotation()}function ek(e){e.removeLeadSnapshot()}function xd(e,t,n){e.translate=Q(t.translate,0,n),e.scale=Q(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function _d(e,t,n,r){e.min=Q(t.min,n.min,r),e.max=Q(t.max,n.max,r)}function tk(e,t,n,r){_d(e.x,t.x,n.x,r),_d(e.y,t.y,n.y,r)}function nk(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const rk={duration:.45,ease:[.4,0,.1,1]};function ok(e,t){let n=e.root;for(let i=e.path.length-1;i>=0;i--)if(Boolean(e.path[i].instance)){n=e.path[i];break}const o=(n&&n!==e.root?n.instance:document).querySelector(`[data-projection-id="${t}"]`);o&&e.mount(o,!0)}function Cd(e){e.min=Math.round(e.min),e.max=Math.round(e.max)}function ik(e){Cd(e.x),Cd(e.y)}function lm(e,t,n){return e==="position"||e==="preserve-aspect"&&!Al(yd(t),yd(n),.2)}const sk=sm({attachResizeListener:(e,t)=>Ii(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bs={current:void 0},lk=sm({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bs.current){const e=new sk(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),bs.current=e}return bs.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>Boolean(window.getComputedStyle(e).position==="fixed")}),ak={...B1,...o1,...a2,...D2},uk=Ky((e,t)=>Vg(e,t,ak,b2,lk));function ck({albums:e,onClickFilter:t}){return C("div",{className:"album-grid",children:e.map(n=>C(uk.div,{layout:!0,className:"album-card-wrapper",children:C(Dy,{album:n,onClickFilter:t})},n.title))})}const Ms=[{title:"Aja",artist:"Steely Dan",year:"1977",descriptors:["jazzy","funky","breezy"],tracks:["Black Cow","Home at Last"],album_url:"https://open.spotify.com/album/5Zxv8bCtxjz11jjypNdkEa",image_url:"https://i.scdn.co/image/ab67616d0000b273e5dd0952c693529017743e39",date_added:"2020-02-24"},{title:"Rubber Soul",artist:"The Beatles",year:"1965",descriptors:["folk","rock","groovy"],tracks:["You Won't See Me","The Word"],album_url:"https://open.spotify.com/album/50o7kf2wLwVmOTVYJOTplm",image_url:"https://i.scdn.co/image/ab67616d0000b273ed801e58a9ababdea6ac7ce4",date_added:"2020-02-25"},{title:"Time",artist:"Louis Cole",year:"2018",descriptors:["funky","jazzy","groovy"],tracks:["Weird Part of the Night","Things"],album_url:"https://open.spotify.com/album/2p8VeG5r2aadenxHViCibr",image_url:"https://i.scdn.co/image/ab67616d0000b2730f670bf8867870b2557d84eb",date_added:"2020-02-26"},{title:"Geography",artist:"Tom Misch",year:"2018",descriptors:["funky","soulful","groovy"],tracks:["It Runs Through Me","Disco Yes"],album_url:"https://open.spotify.com/album/0hDnsNkxpMDZrpBlGjldtW",image_url:"https://i.scdn.co/image/ab67616d0000b273abe203531eac29d17260966f",date_added:"2020-02-27"},{title:"The Low End Theory",artist:"A Tribe Called Quest",year:"1991",descriptors:["hip hop","jazzy","funky"],tracks:["Butter","Jazz (We've Got)"],album_url:"https://open.spotify.com/album/1p12OAWwudgMqfMzjMvl2a",image_url:"https://i.scdn.co/image/ab67616d0000b273f38c6b37a21334e22005b1f7",date_added:"2020-02-28"},{title:"Origin",artist:"Jordan Rakei",year:"2019",descriptors:["soulful","groovy","funky"],tracks:["Rolling into One","You & Me"],album_url:"https://open.spotify.com/album/6vlatUhYlcoUkMfNIvmtLE",image_url:"https://i.scdn.co/image/ab67616d0000b273c7c5ade66c94fe02018deaa8",date_added:"2020-02-28"},{title:"Sgt. Pepper's Lonely Hearts Club Band",artist:"The Beatles",year:"1967",descriptors:["rock","psychedelic","eclectic"],tracks:["Getting Better","When I'm Sixty Four"],album_url:"https://open.spotify.com/album/6QaVfG1pHYl1z15ZxkvVDW",image_url:"https://i.scdn.co/image/ab67616d0000b27334ef8f7d06cf2fc2146f420a",date_added:"2020-03-01"},{title:"The Beautiful Game",artist:"Vulfpeck",year:"2016",descriptors:["funky","disco","poppy"],tracks:["Animal Spirits","1 for 1, DiMaggio"],album_url:"https://open.spotify.com/album/7sRNEe2FCkTYhrEimChdkC",image_url:"https://i.scdn.co/image/ab67616d0000b273fc6e5f2e6a7dd1ce3e83a897",date_added:"2020-03-03"},{title:"Little Ghost",artist:"Moonchild",year:"2019",descriptors:["neo soul","jazzy","groovy"],tracks:["Wise Women","Money"],album_url:"https://open.spotify.com/album/1X9OLhwnm7q3WK7DTL32hz",image_url:"https://i.scdn.co/image/ab67616d0000b2733112ee1d011c1765ec281f87",date_added:"2020-03-03"},{title:"The Royal Scam",artist:"Steely Dan",year:"1976",descriptors:["jazzy","rock","funky"],tracks:["The Fez","Green Earrings"],album_url:"https://open.spotify.com/album/1Sur33x6g7tvdd9GQnHhhu",image_url:"https://i.scdn.co/image/ab67616d0000b2736ac9fc028a8ba4c13b34a784",date_added:"2020-03-07"},{title:"Drunk",artist:"Thundercat",year:"2017",descriptors:["funky","jazzy","psychedelic"],tracks:["Tokyo","Friend Zone"],album_url:"https://open.spotify.com/album/7vHBQDqwzB7uDvoE5bncMM",image_url:"https://i.scdn.co/image/ab67616d0000b27385c5e6c686ced3e43bae2748",date_added:"2020-03-07"},{title:"Ventura",artist:"Anderson .Paak",year:"2019",descriptors:["R&B","hip hop","funky"],tracks:["Winners Circle","King James"],album_url:"https://open.spotify.com/album/0YF8PfcGbsKg5IaFyPnlyY",image_url:"https://i.scdn.co/image/ab67616d0000b2733d5b8fe604275dfab677bd0d",date_added:"2020-03-08"},{title:"<|\xBA_\xBA|>",artist:"Caravan Palace",year:"2015",descriptors:["electroswing","jazzy","groovy"],tracks:["Wonderland","Russian"],album_url:"https://open.spotify.com/album/4DrZfbV5FB2Hwzpq6rwArp",image_url:"https://i.scdn.co/image/ab67616d0000b273d260ec7b7ace5ca6bd69c86a",date_added:"2020-03-11"},{title:"Kind of Blue",artist:"Miles Davis",year:"1959",descriptors:["jazz","soulful","mellow"],tracks:["So What","All Blues"],album_url:"https://open.spotify.com/album/4sb0eMpDn3upAFfyi4q2rw",image_url:"https://i.scdn.co/image/ab67616d0000b2730ebc17239b6b18ba88cfb8ca",date_added:"2020-03-12"},{title:"Bonito Generation",artist:"Kero Kero Bonito",year:"2016",descriptors:["groovy","bouncy","poppy"],tracks:["Try Me","Trampoline"],album_url:"https://open.spotify.com/album/5vDVFuzV8aAIymXSkpyJoe",image_url:"https://i.scdn.co/image/ab67616d0000b273d1d67dd51d64db70f4b5636a",date_added:"2020-03-19"},{title:"Sylva",artist:"Snarky Puppy & Metropole Orkest",year:"2015",descriptors:["jazzy","orchestral","epic"],tracks:["Flight","Atchafalaya"],album_url:"https://open.spotify.com/album/5hptBuBwjb6Z11tV5bM9Oa",image_url:"https://i.scdn.co/image/ab67616d0000b273d191b3bcffb6d342838b48f1",date_added:"2020-03-21"},{title:"Voodoo",artist:"D'Angelo",year:"2000",descriptors:["neo soul","stanky","funky"],tracks:["Chicken Grease","The Root"],album_url:"https://open.spotify.com/album/2lO9yuuIDgBpSJzxTh3ai8",image_url:"https://i.scdn.co/image/ab67616d0000b2732b3dc336a7a69293c25d9ade",date_added:"2020-03-28"},{title:"Head Hunters",artist:"Herbie Hancock",year:"1973",descriptors:["jazz","funky","groovy"],tracks:["Watermelon Man","Sly"],album_url:"https://open.spotify.com/album/5fmIolILp5NAtNYiRPjhzA",image_url:"https://i.scdn.co/image/ab67616d0000b2736b75d57d2d070c0c4afb3f9a",date_added:"2020-03-29"},{title:"Scratch & Sniff",artist:"Jazz Spastiks",year:"2017",descriptors:["sampledelia","jazzy","hip hop"],tracks:["Bananas (Unzip a Banana)","Bubblegum (Bubble, Bubble, Bubble, Bubble, Pop)"],album_url:"https://open.spotify.com/album/18iKwIbXxwkaHoa6b4WVOs",image_url:"https://i.scdn.co/image/ab67616d0000b2737937f3acc7e610f6fa0704c8",date_added:"2020-04-01"},{title:"Innervisions",artist:"Stevie Wonder",year:"1973",descriptors:["funky","jazzy","soulful"],tracks:["Too High","Don't You Worry 'Bout A Thing"],album_url:"https://open.spotify.com/album/5jgI8Eminx9MmLBontDWq8",image_url:"https://i.scdn.co/image/ab67616d0000b273ea8ab1a548312b79ac955266",date_added:"2020-04-02"},{title:"Look Sharp!",artist:"Joe Jackson",year:"1979",descriptors:["rock","punk","funky"],tracks:["Sunday Papers","Look Sharp!"],album_url:"https://open.spotify.com/album/6Bt6KjNfoCp6UbYVFGH4FH",image_url:"https://i.scdn.co/image/ab67616d0000b2735f40be7506754451d1e61e16",date_added:"2020-04-02"},{title:"The Nightfly",artist:"Donald Fagen",year:"1982",descriptors:["jazzy","breezy","funky"],tracks:["Green Flower Street","New Frontier"],album_url:"https://open.spotify.com/album/5cOS6szqlcoqmiSoVTqqe8",image_url:"https://i.scdn.co/image/ab67616d0000b2739c3be4e1c786475f9489529f",date_added:"2020-04-03"},{title:"Djesse Vol.\xA02",artist:"Jacob Collier",year:"2019",descriptors:["folk","jazzy","eclectic"],tracks:["Feel","It Don't Matter"],album_url:"https://open.spotify.com/album/3zNi5dCpkbm4zv7h1vGOMy",image_url:"https://i.scdn.co/image/ab67616d0000b27354de35ac4fc5d8ed1ec1d956",date_added:"2020-04-06"},{title:"Baduizm",artist:"Erykah Badu",year:"1997",descriptors:["neo soul","stanky","funky"],tracks:["On & On","Other Side of the Game"],album_url:"https://open.spotify.com/album/3qr4pTBWEU1SVf01j6RAx3",image_url:"https://i.scdn.co/image/ab67616d0000b2739968770f3f0e45aa99b2ac29",date_added:"2020-04-11"},{title:"What Kinda Music",artist:"Tom Misch & Yussef Dayes",year:"2020-04-24",descriptors:["funky","groovy","ethereal"],tracks:["Nightrider","Last 100"],album_url:"https://open.spotify.com/album/6iOCv7oGL5sGi2aVnRz2BI",image_url:"https://i.scdn.co/image/ab67616d0000b273bd93bbf0c3df5e0242b84831",date_added:"2020-04-23"},{title:"Dopamine",artist:"B\xD8RNS",year:"2015",descriptors:["indie pop","electronic","groovy"],tracks:["Dug My Heart","Holy Ghost"],album_url:"https://open.spotify.com/album/17l7MIu0Jh0tdgK7or9ovw",image_url:"https://i.scdn.co/image/ab67616d0000b273cc2cf912462d8ae4ef856434",date_added:"2020-04-24"},{title:"Djesse Vol.\xA03",artist:"Jacob Collier",year:"2020-08-14",descriptors:["R&B","funky","glitchy"],tracks:["All I Need","Sleeping On My Dreams"],album_url:"https://open.spotify.com/album/33cj3kzLqVOg9zvy69Wrc8",image_url:"https://i.scdn.co/image/ab67616d0000b27334de228d223a20a8a5d1f465",date_added:"2020-08-13"},{title:"Straight Outta Compton",artist:"N.W.A.",year:"1988",descriptors:["hip hop","gangsta rap","funky"],tracks:["Parental Discretion Iz Advised","I Ain't Tha 1"],album_url:"https://open.spotify.com/album/0Y7qkJVZ06tS2GUCDptzyW",image_url:"https://i.scdn.co/image/ab67616d0000b273c79a70e8167cc1a4fab83781",date_added:"2020-09-30"},{title:"Mama's Gun",artist:"Erykah Badu",year:"2000",descriptors:["neo soul","funky","jazzy"],tracks:["My Life","Orange Moon"],album_url:"https://open.spotify.com/album/3cADvHRdKniF9ELCn1zbGH",image_url:"https://i.scdn.co/image/ab67616d0000b2730d934cb462fae5a26f829efb",date_added:"2020-10-20"},{title:"Jungle Run",artist:"Nubiyan Twist",year:"2019",descriptors:["Afro-jazz","funky","electronic"],tracks:["Tell It To Me Slowly","Permission"],album_url:"https://open.spotify.com/album/5pdHXtWKSUUEeWDKvz2qN8",image_url:"https://i.scdn.co/image/ab67616d0000b27366fd192abf67d5b59a366e01",date_added:"2020-10-26"},{title:"Mos Def & Talib Kweli Are Black Star",artist:"Black Star",year:"1998",descriptors:["hip hop","funky","groovy"],tracks:["Definition","Respiration"],album_url:"https://open.spotify.com/album/6GRzmk9UGL7odxprOPop1Q",image_url:"https://i.scdn.co/image/ab67616d0000b273e3f907e70bc502a263ee1bc0",date_added:"2020-10-30"},{title:"Madvillainy",artist:"Madvillain",year:"2004",descriptors:["hip hop","jazzy","wonky"],tracks:["Meat Grinder","Figaro"],album_url:"https://open.spotify.com/album/19bQiwEKhXUBJWY6oV3KZk",image_url:"https://i.scdn.co/image/ab67616d0000b27374dc897ea75402db37ef239a",date_added:"2020-12-07"},{title:"Glass Houses",artist:"Billy Joel",year:"1980",descriptors:["rock","new wave","punk"],tracks:["Sometimes a Fantasy","All for Leyna"],album_url:"https://open.spotify.com/album/5sztejERqpktXEdemlUvU5",image_url:"https://i.scdn.co/image/ab67616d0000b27322d5199692d318c28d6c7d9b",date_added:"2020-12-30"},{title:"The Mouse & The Mask",artist:"DANGERDOOM",year:"2005",descriptors:["hip hop","funky","sampledelia"],tracks:["El Chupa Nibre","Crosshairs"],album_url:"https://open.spotify.com/album/6TgkNOiJxeSkVVbXV720B1",image_url:"https://i.scdn.co/image/ab67616d0000b2736c3fb85147fcf2972923cf2d",date_added:"2021-02-10"},{title:"MM\u2026FOOD",artist:"MF DOOM",year:"2004",descriptors:["hip hop","groovy","goofy"],tracks:["Kon Queso","Vomitspit"],album_url:"https://open.spotify.com/album/1UcS2nqUhxrZjrBZ3tHk2N",image_url:"https://i.scdn.co/image/ab67616d0000b27352f194d02c39909d1b284799",date_added:"2021-02-21"},{title:"The Miseducation of Lauryn Hill",artist:"Ms. Lauryn Hill",year:"1998",descriptors:["neo soul","hip hop","funky"],tracks:["Doo Wop (That Thing)","Final Hour"],album_url:"https://open.spotify.com/album/1BZoqf8Zje5nGdwZhOjAtD",image_url:"https://i.scdn.co/image/ab67616d0000b273e08b1250db5f75643f1508c9",date_added:"2021-02-22"},{title:"Paul's Boutique",artist:"Beastie Boys",year:"1989",descriptors:["hip hop","funky","sampledelia"],tracks:["Egg Man","Shadrach"],album_url:"https://open.spotify.com/album/1kmyirVya5fRxdjsPFDM05",image_url:"https://i.scdn.co/image/ab67616d0000b2732288f4cd4bf3a8764624a0d2",date_added:"2021-02-25"},{title:"Discovery",artist:"Daft Punk",year:"2001",descriptors:["house","funky","disco"],tracks:["Harder, Better, Faster, Stronger","Short Circuit"],album_url:"https://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc",image_url:"https://i.scdn.co/image/ab67616d0000b273b33d46dfa2635a47eebf63b2",date_added:"2021-02-27"},{title:"Like Water for Chocolate",artist:"Common",year:"2000",descriptors:["hip hop","stanky","jazzy"],tracks:["Dooinit","A Film Called (PIMP)"],album_url:"https://open.spotify.com/album/0ZSwTSaR9VUe3uYsXNQgub",image_url:"https://i.scdn.co/image/ab67616d0000b273e42803c3943b6b0b5481caeb",date_added:"2021-03-07"},{title:"Giant Steps",artist:"John Coltrane",year:"1960",descriptors:["jazz","post-bop","virtuosic"],tracks:["Giant Steps","Naima"],album_url:"https://open.spotify.com/album/7MBQWjukLxXZYvQ8vzEH7t",image_url:"https://i.scdn.co/image/ab67616d0000b273073aecd10185e5a5fd88eb90",date_added:"2021-03-21"},{title:"here's some stuff",artist:"Sam Greenfield",year:"2021-03-26",descriptors:["funky","jazzy","poppy"],tracks:["banana song","in love"],album_url:"https://open.spotify.com/album/5ytiqsycU74gUxmBhPbiMW",image_url:"https://i.scdn.co/image/ab67616d0000b2739b202863610675544f36418e",date_added:"2021-03-25"},{title:"3 Feet High and Rising",artist:"De La Soul",year:"1989",descriptors:["hip hop","sampledelia","jazzy"],tracks:["Eye Know","Say No Go"],album_url:"https://open.spotify.com/album/4ORoATQVXNVVYIT6x03pXL",image_url:"https://i.scdn.co/image/ab67616d0000b273746a58f993e1c331ca60c2e3",date_added:"2021-04-04"},{title:"Sweet Side",artist:"Raquel Rodriguez",year:"2021-04-23",descriptors:["R&B","neo soul","funky"],tracks:["Leave Me Behind","Last Night"],album_url:"https://open.spotify.com/album/24PaFeFq25xoO8jPCRkn0H",image_url:"https://i.scdn.co/image/ab67616d0000b2739c4784358798a4ecfe8cffb8",date_added:"2021-04-23"},{title:"Train of Thought",artist:"Reflection Eternal",year:"2000",descriptors:["hip hop","groovy","funky"],tracks:["This Means You","Ghetto Afterlife"],album_url:"https://open.spotify.com/album/2PbWFmysd3j9MEacjjhozx",image_url:"https://i.scdn.co/image/ab67616d0000b2736fa0f3b2dc48e99f891e085f",date_added:"2021-05-09"},{title:"Bones",artist:"Michael Mayo",year:"2021-06-04",descriptors:["jazzy","groovy","lush"],tracks:["Another Love","About Your Love"],album_url:"https://open.spotify.com/album/70RkyEuMjhRnbTQe1Md7os",image_url:"https://i.scdn.co/image/ab67616d0000b273cd1237e194c0eec599dc574d",date_added:"2021-06-04"},{title:"So Many Me",artist:"Michael League",year:"2021-06-25",descriptors:["groovy","ethereal","worldbeat"],tracks:["Sentinel Species","Since You've Been By"],album_url:"https://open.spotify.com/album/75nnmWLSBEkQMVdVsgbR7b",image_url:"https://i.scdn.co/image/ab67616d0000b273196e9f39ad150b1689794fef",date_added:"2021-06-25"},{title:"Cold Water Burning Skin",artist:"Fieh",year:"2019",descriptors:["neo soul","groovy","funky"],tracks:["Flower","Glu"],album_url:"https://open.spotify.com/album/4zCMoqM8j13NpyyllWKg5n",image_url:"https://i.scdn.co/image/ab67616d0000b273a3110f01fbdd88585f8eca79",date_added:"2021-08-09"},{title:"AOR",artist:"Ed Motta",year:"2013",descriptors:["jazzy","funky","breezy"],tracks:["Simple Guy","1978 (Leave the Radio On)"],album_url:"https://open.spotify.com/album/0BrDRK9uECp5uj06u4B9AM",image_url:"https://i.scdn.co/image/ab67616d0000b2737518fd95a03f2d814fe15108",date_added:"2021-08-10"},{title:"Mixtape",artist:"Bobbing",year:"2020-07-10",descriptors:["funky","electronic","wonky"],tracks:["What Went Weird","Tous Les Jours"],album_url:"https://open.spotify.com/album/6eI1jzNYFmvtOuVbS6KuCg",image_url:"https://i.scdn.co/image/ab67616d0000b273cdbeced3ea25b29f520ac031",date_added:"2021-09-29"},{title:"Tako Tsubo",artist:"L'Imp\xE9ratrice",year:"2021-03-26",descriptors:["funky","disco","groovy"],tracks:["Fou","Peur des filles"],album_url:"https://open.spotify.com/album/7gE23KRzNbXeB6nZmQVqa3",image_url:"https://i.scdn.co/image/ab67616d0000b273389ffd99d51037a6f0a256f5",date_added:"2021-10-19"},{title:"Vampire Weekend",artist:"Vampire Weekend",year:"2008",descriptors:["indie rock","groovy","Afrobeat"],tracks:["Oxford Comma","Cape Cod Kwassa Kwassa"],album_url:"https://open.spotify.com/album/7n8NJkGKAl2np1bXiRn0CY",image_url:"https://i.scdn.co/image/ab67616d0000b273eabfe5d94aad05cb6485444b",date_added:"2021-10-20"},{title:"Juno",artist:"Remi Wolf",year:"2021-10-15",descriptors:["poppy","funky","mucky"],tracks:["wyd","Grumpy Old Man"],album_url:"https://open.spotify.com/album/7tJ8Wtej161vR0uCbGDiDR",image_url:"https://i.scdn.co/image/ab67616d0000b27316a6cb93e32bf2ae66b1f5b2",date_added:"2021-10-28"},{title:"Settle",artist:"Disclosure",year:"2013",descriptors:["house","groovy","funky"],tracks:["When a Fire Starts to Burn","Stimulation"],album_url:"https://open.spotify.com/album/1lM5IfaqcIsXd6UCV3aDSs",image_url:"https://i.scdn.co/image/ab67616d0000b2737d9cf15a27f29ffc8ef01e8d",date_added:"2021-12-28"},{title:"The Party Album!",artist:"Vengaboys",year:"1999",descriptors:["Eurodance","electronic","groovy"],tracks:["Up & Down","The Vengabeat"],album_url:"https://open.spotify.com/album/2hy9sLDt7IVAvJRGVdzZnx",image_url:"https://i.scdn.co/image/ab67616d0000b27350fcab12b2e2e0ee0019ac53",date_added:"2022-01-15"},{title:"Heartbreak Hits",artist:"Theo Katzman",year:"2017",descriptors:["rock","funky","folk"],tracks:["Crappy Love Song","Plain Jane Heroin"],album_url:"https://open.spotify.com/album/04QktcTXcS9qQTp7Q22Z3I",image_url:"https://i.scdn.co/image/ab67616d0000b273466c8f59de182f7c1533c40c",date_added:"2022-02-24"},{title:"Greatest Hits, Vol.\xA03",artist:"Jacob Mann Big Band",year:"2022-04-01",descriptors:["jazzy","funky","playful"],tracks:["The Soy Lentman Show","Flight Screen Solitaire"],album_url:"https://open.spotify.com/album/6EwsXTcCiDJHUD66K3AErt",image_url:"https://i.scdn.co/image/ab67616d0000b273859572495f9566a5373bd24e",date_added:"2022-03-05"},{title:"Evergreen",artist:"Crackazat",year:"2022-05-13",descriptors:["house","groovy","jazzy"],tracks:["Everybody Talks About It","Evergreen"],album_url:"https://open.spotify.com/album/5UZEbCGUa6z4zPt05wxOz3",image_url:"https://i.scdn.co/image/ab67616d0000b273ad2a62d49143a3c773c3057a",date_added:"2022-05-13"},{title:"Haven",artist:"Svaneborg Kardyb",year:"2020-10-23",descriptors:["jazzy","ethereal","mellow"],tracks:["D\xE6mningen","Bluesen"],album_url:"https://open.spotify.com/album/1a7WanJ8OXUHZsbIlJZLDb",image_url:"https://i.scdn.co/image/ab67616d0000b273ed43b3bb175993ccec8bf34a",date_added:"2022-06-09"},{title:"Robson Jorge e Lincoln Olivetti",artist:"Robson Jorge & Lincoln Olivetti",year:"1982",descriptors:["jazzy","disco","Latin"],tracks:["Jorgea Corisco","Pret-\xC0-Porter"],album_url:"https://open.spotify.com/album/23YsJH4l99KmP9OLXIwsaM",image_url:"https://i.scdn.co/image/ab67616d0000b273ed1f3036cc677458e335e0e0",date_added:"2022-07-27"},{title:"NOT TiGHT",artist:"DOMi & JD Beck",year:"2022-07-29",descriptors:["jazzy","groovy","tight"],tracks:["U DON'T HAVE TO ROB ME","SNiFF"],album_url:"https://open.spotify.com/album/6cXQ0dxd2pWCTFhZ8RIg2j",image_url:"https://i.scdn.co/image/ab67616d0000b2738569040f689c3249eeb04345",date_added:"2022-07-29"},{title:"Remain in Light",artist:"Talking Heads",year:"1980",descriptors:["funky","Afrobeat","new wave"],tracks:["Crosseyed and Painless","Once in a Lifetime"],album_url:"https://open.spotify.com/album/3AQgdwMNCiN7awXch5fAaG",image_url:"https://i.scdn.co/image/ab67616d0000b273e56fa8c916dc6ce419dcf557",date_added:"2022-09-18"},{title:"Black on Both Sides",artist:"Mos Def",year:"1999",descriptors:["hip hop","soulful","funky"],tracks:["Do It Now","Mathematics"],album_url:"https://open.spotify.com/album/5gK2l2LgWY0BA4p9uy27z6",image_url:"https://i.scdn.co/image/ab67616d0000b27389b56f56323925d57b38944d",date_added:"2022-09-22"},{title:"Sound of Silver",artist:"LCD Soundsystem",year:"2007",descriptors:["electronic","groovy","punk"],tracks:["Time to Get Away","Sound of Silver"],album_url:"https://open.spotify.com/album/1R8kkopLT4IAxzMMkjic6X",image_url:"https://i.scdn.co/image/ab67616d0000b273e6272ad26e7a55bc342a6dd0",date_added:"2022-09-23"},{title:"Illmatic",artist:"Nas",year:"1994",descriptors:["hip hop","groovy","jazzy"],tracks:["The World is Yours","It Ain't Hard to Tell"],album_url:"https://open.spotify.com/album/3kEtdS2pH6hKcMU9Wioob1",image_url:"https://i.scdn.co/image/ab67616d0000b273045fc920ecf4f8094888ec26",date_added:"2022-09-26"},{title:"You've Come a Long Way, Baby",artist:"Fatboy Slim",year:"1998",descriptors:["big beat","electronic","groovy"],tracks:["The Rockafeller Skank","Gangster Trippin"],album_url:"https://open.spotify.com/album/7G7cCHgQKbDD6zvwDQZyJu",image_url:"https://i.scdn.co/image/ab67616d0000b27332922d86fcf090a1a6d4deb0",date_added:"2022-10-03"},{title:"To Pimp a Butterfly",artist:"Kendrick Lamar",year:"2015",descriptors:["hip hop","jazzy","soulful"],tracks:["King Kunta","How Much A Dollar Cost"],album_url:"https://open.spotify.com/album/7ycBtnsMtyVbbwTfJwRjSP",image_url:"https://i.scdn.co/image/ab67616d0000b273cdb645498cd3d8a2db4d05e1",date_added:"2022-10-12"},{title:"The Optimist",artist:"Ryan Porter",year:"2018",descriptors:["jazz","groovy","swaggy"],tracks:["The Instrumental Hip-Hoppa","D\xE9j\xE0 Vu"],album_url:"https://open.spotify.com/album/35CoSVQixx2IqOQyirFhbW",image_url:"https://i.scdn.co/image/ab67616d0000b273dd72d0c3bccc648cb9d27c0f",date_added:"2022-10-14"},{title:"Quality Over Opinion",artist:"Louis Cole",year:"2022-10-14",descriptors:["funky","mellow","raw"],tracks:["I'm Tight","Don't Care"],album_url:"https://open.spotify.com/album/57Xg6JumEnG5i5MBzJVdT7",image_url:"https://i.scdn.co/image/ab67616d0000b2737bed62fe63257e9edfe3bcb4",date_added:"2022-10-14"},{title:"Things Fall Apart",artist:"The Roots",year:"1999",descriptors:["hip hop","funky","stanky"],tracks:["The Next Movement","Don't See Us"],album_url:"https://open.spotify.com/album/0qbl8aNaCUOvX8HGsZYLfh",image_url:"https://i.scdn.co/image/ab67616d0000b273bac8015c7e47644fb86e27e2",date_added:"2022-10-24"},{title:"Speaking in Tongues",artist:"Talking Heads",year:"1983",descriptors:["new wave","funky","groovy"],tracks:["Making Flippy Floppy","Moon Rocks"],album_url:"https://open.spotify.com/album/4sLCQxMRfn3gAHrBNZtbTH",image_url:"https://i.scdn.co/image/ab67616d0000b273e35e2e2a4bfa8a30a78fc532",date_added:"2022-11-03"},{title:"Syro",artist:"Aphex Twin",year:"2014",descriptors:["electronic","groovy","glitchy"],tracks:["minipops 67","CIRCLONT14"],album_url:"https://open.spotify.com/album/6oRuinkJdTge4hpTuClEF8",image_url:"https://i.scdn.co/image/ab67616d0000b2738b68d772e75d4f280cea0ef0",date_added:"2022-11-10"},{title:"Oh No! It's Devo",artist:"Devo",year:"1982",descriptors:["new wave","groovy","synth pop"],tracks:["Time Out For Fun","Big Mess"],album_url:"https://open.spotify.com/album/7MGYfjJpx6XsA2B2VhtZ6S",image_url:"https://i.scdn.co/image/ab67616d0000b273c4622741b387073c76bbe553",date_added:"2022-12-12"},{title:"Blazing Arrow",artist:"Blackalicious",year:"2002",descriptors:["hip hop","funky","jazzy"],tracks:["Green Light: Now Begin","Make You Feel That Way"],album_url:"https://open.spotify.com/album/0DyXkWHnFMIJSuHfLgNfcc",image_url:"https://i.scdn.co/image/ab67616d0000b2738c8df6078836c1dd3df5a19a",date_added:"2022-12-13"},{title:"106",artist:"Jacob Mann",year:"2020-08-28",descriptors:["jazzy","electronic","minimal"],tracks:["Ziti","Barstow"],album_url:"https://open.spotify.com/album/7IsKUm4ZolGXJUKqrAejU8",image_url:"https://i.scdn.co/image/ab67616d0000b273b4a4725f48e95f983d06f384",date_added:"2022-12-14"},{title:"The State of Things",artist:"Quentin Angus",year:"2022-03-18",descriptors:["jazz","mellow","groovy"],tracks:["Broken Bones","New York Muster"],album_url:"https://open.spotify.com/album/3Fi2Gv0IRBHzuYQSBqxknc",image_url:"https://i.scdn.co/image/ab67616d0000b273a4702b44420110273f3d95ee",date_added:"2022-12-19"},{title:"Crisis & Opportunity, Vol.\xA02 - Peaks",artist:"Myele Manzanza",year:"2021-11-19",descriptors:["jazz","groovy","electronic"],tracks:["The People's Changes","A Night in Berlin"],album_url:"https://open.spotify.com/album/6eBaDGLTxVhEZPEdTnSYCS",image_url:"https://i.scdn.co/image/ab67616d0000b273d75a52827f4a8ab7fd5a5131",date_added:"2022-12-22"},{title:"Too Much to Ask",artist:"Cheekface",year:"2022-08-02",descriptors:["punk","groovy","goofy"],tracks:["Pledge Drive","Featured Singer"],album_url:"https://open.spotify.com/album/233GvGeKMsNHQgGvclrhC6",image_url:"https://i.scdn.co/image/ab67616d0000b27391c428cd2ffa886adefb29ff",date_added:"2022-12-23"},{title:"Below the Heavens",artist:"Blu & Exile",year:"2007",descriptors:["hip hop","jazzy","soulful"],tracks:["Juice n' Dranks","Dancing in the Rain"],album_url:"https://open.spotify.com/album/2OnNdRdzqs0Xe6VU2uGdPe",image_url:"https://i.scdn.co/image/ab67616d0000b273a1e2527fab9bcd9826e06cd4",date_added:"2022-12-27"},{title:"Ruby Vroom",artist:"Soul Coughing",year:"1994",descriptors:["alt rock","jazzy","hip hop"],tracks:["Casiotone Nation","Down to This"],album_url:"https://open.spotify.com/album/6JHowYqtDso2k1ji5H7vUy",image_url:"https://i.scdn.co/image/ab67616d0000b273c189f0df7d6fe7d4bf23dde9",date_added:"2022-12-28"},{title:"Donuts",artist:"J Dilla",year:"2006",descriptors:["sampledelia","wonky","soulful"],tracks:["Lightworks","Two Can Win"],album_url:"https://open.spotify.com/album/5fMlysqhFE0itGn4KezMBW",image_url:"https://i.scdn.co/image/ab67616d0000b27383bb78285449998bb974da45",date_added:"2023-01-15"},{title:"Raise!",artist:"Earth, Wind & Fire",year:"1981",descriptors:["funky","jazzy","disco"],tracks:["You Are a Winner","The Changing Times"],album_url:"https://open.spotify.com/album/1hj1SYbJYdXloRiSjsCLXg",image_url:"https://i.scdn.co/image/ab67616d0000b273b30c8b93cef6fa26f8a7f17a",date_added:"2023-02-08"},{title:"Tourist History",artist:"Two Door Cinema Club",year:"2010",descriptors:["indie pop","groovy","punk"],tracks:["Cigarettes in the Theatre","You're Not Stubborn"],album_url:"https://open.spotify.com/album/0wNjC8d3ve2L2yaomEWUsa",image_url:"https://i.scdn.co/image/ab67616d0000b273585f3d70dce678a5978a0941",date_added:"2023-02-23"},{title:"Suzuki",artist:"Tosca",year:"2000",descriptors:["trip hop","ambient","electronic"],tracks:["Suzuki","Boss on the Boat"],album_url:"https://open.spotify.com/album/3mMCQiZaRbwPhn1I3vdFRP",image_url:"https://i.scdn.co/image/ab67616d0000b273253a1b35c8c2995bebe300af",date_added:"2023-03-01"},{title:"De La Soul Is Dead",artist:"De La Soul",year:"1991",descriptors:["hip hop","funky","jazzy"],tracks:["Pease Porridge","Ring Ring Ring (Ha Ha Hey)"],album_url:"https://open.spotify.com/album/5F3GEttPPR58Gg15BKUsTd",image_url:"https://i.scdn.co/image/ab67616d0000b273ee3e86f9a12e311701f5fcda",date_added:"2023-03-03"},{title:"Buhloone Mindstate",artist:"De La Soul",year:"1993",descriptors:["hip hop","jazzy","funky"],tracks:["En Focus","I Am I Be"],album_url:"https://open.spotify.com/album/4ajtfXfaqumfNlJDTVjhOd",image_url:"https://i.scdn.co/image/ab67616d0000b273425d6882cbb8165986ca7c40",date_added:"2023-03-05"},{title:"Prima Edizione",artist:"Todd Edwards",year:"1999",descriptors:["UK garage","house","funky"],tracks:["Steal U're Heart","Can't Live Without U"],album_url:"https://open.spotify.com/album/6SRbCAQ1zu2r47Bi771rAs",image_url:"primaedizione.jpg",date_added:"2023-03-10"},{title:"Choose Your Weapon",artist:"Hiatus Kaiyote",year:"2015",descriptors:["neo soul","jazzy","wonky"],tracks:["Jekyll","Atari"],album_url:"https://open.spotify.com/album/3qzmmmRmVBiOuMvrerfW4z",image_url:"https://i.scdn.co/image/ab67616d0000b27365c29c4a590e9e9b03467c5a",date_added:"2023-04-11"},{title:"Your Drunken Soundtrack",artist:"Max Ox",year:"2014",descriptors:["jazzy","electronic","wonky"],tracks:["Plan D","Penguin Time"],album_url:"https://open.spotify.com/album/2blEyPKFkaAQx21ErYycYL",image_url:"https://i.scdn.co/image/ab67616d0000b27330551568434dca592278c7f3",date_added:"2023-04-12"},{title:"SCARING THE HOES",artist:"JPEGMAFIA & Danny Brown",year:"2023-03-24",descriptors:["hip hop","wonky","sampledelia"],tracks:["Fentanyl Tester","Burfict!"],album_url:"https://open.spotify.com/album/3u20OXh03DjCUzbf8XcGTq",image_url:"https://i.scdn.co/image/ab67616d0000b2738cf4c85912fdeb106707fb4c",date_added:"2023-04-24"},{title:"Spaces and Places",artist:"Kerri Chandler",year:"2022-09-26",descriptors:["house","dance","electronic"],tracks:["Hurry Up [Ministry of Sound]","The Piano Thing (Live)"],album_url:"https://open.spotify.com/album/4Q4G4hrAms9J3mYmofZlrT",image_url:"https://i.scdn.co/image/ab67616d0000b273f671d00f5ca7c99fa6ccfb84",date_added:"2023-05-05"},{title:"Gaucho",artist:"Steely Dan",year:"1980",descriptors:["jazzy","breezy","rock"],tracks:["Glamour Profession","Time Out of Mind"],album_url:"https://open.spotify.com/album/5fIBtKHWGjbjK9C4i1Z11L",image_url:"https://i.scdn.co/image/ab67616d0000b273412d0a3ed734b885c1fed05d",date_added:"2023-05-09"},{title:"No. 1 in Heaven",artist:"Sparks",year:"1979",descriptors:["disco","new wave","synth pop"],tracks:["Academy Award Performance","The Number One Song in Heaven"],album_url:"https://open.spotify.com/album/1WwkwSVwh9clBkan9ElU0e",image_url:"https://i.scdn.co/image/ab67616d0000b273d74bc7e553de4198693dd824",date_added:"2023-05-26"},{title:"KNOWER FOREVER",artist:"KNOWER",year:"2023-06-02",descriptors:["funky","jazzy","groovy"],tracks:["Nightmare","It Will Get Real"],album_url:"https://open.spotify.com/album/4HLzhoSO67xRwfZa1T343L",image_url:"https://i.scdn.co/image/ab67616d0000b273256ce041df8dfa894046afd7",date_added:"2023-06-02"},{title:"Acabou Chorare",artist:"Novos Baianos",year:"1972",descriptors:["samba","rock","jazzy"],tracks:["Brasil Pandeiro","Um Bilhete Pra Didi"],album_url:"https://open.spotify.com/album/5pIlMNPZh4D9iJSoCfMzGi",image_url:"https://i.scdn.co/image/ab67616d0000b27327968fcceb7e9541fb2c9d76",date_added:"2023-06-08"},{title:"Everything Harmony",artist:"The Lemon Twigs",year:"2023-05-05",descriptors:["rock","poppy","lush"],tracks:["In My Head","Any Time of Day"],album_url:"https://open.spotify.com/album/5X0MAnUVN7eEZyO1LjprIk",image_url:"https://i.scdn.co/image/ab67616d0000b273ab764b74918b0adf45fce723",date_added:"2023-07-06"},{title:"The Loveliest Time",artist:"Carly Rae Jepsen",year:"2023-07-28",descriptors:["sophisti-pop","electronic","funky"],tracks:["Aeroplanes","Shy Boy"],album_url:"https://open.spotify.com/album/4bRYGKmKOkXvKL1QBf0cGk",image_url:"https://i.scdn.co/image/ab67616d0000b273521ccb4f47088d061f26aa4d",date_added:"2023-08-28"},{title:"From Langley Park to Memphis",artist:"Prefab Sprout",year:"1988",descriptors:["sophisti-pop","jazzy","new wave"],tracks:["Cars and Girls","Knock on Wood"],album_url:"https://open.spotify.com/album/4yhZQGEEogCoJ0SZ9RTUrv",image_url:"https://i.scdn.co/image/ab67616d0000b2734f4b73eb515a95c06f83dea3",date_added:"2023-08-29"},{title:"Previs\xE3o do Tempo",artist:"Marcos Valle",year:"1973",descriptors:["jazzy","funky","samba"],tracks:["Mentira (Chega de Mentira)","Os Ossos do Bar\xE3o"],album_url:"https://open.spotify.com/album/4SrPTE9sLJTE8mpeWFUhRL",image_url:"https://i.scdn.co/image/ab67616d0000b27306f9cb95fb276b0d7c8296d7",date_added:"2023-09-24"},{title:"Flaming Swords",artist:"Fievel Is Glauque",year:"2022-11-25",descriptors:["jazzy","chaotic","mellow"],tracks:["Little Bad Miracle","Wrong Item"],album_url:"https://open.spotify.com/album/2lbjS63tQsEA9z8QA7wp3A",image_url:"https://i.scdn.co/image/ab67616d0000b2738cd133e8ca70da1bf89e4f67",date_added:"2023-11-05"},{title:"Equinox",artist:"S\xE9rgio Mendes & Brasil\xA0'66",year:"1967",descriptors:["bossa nova","jazzy","breezy"],tracks:["Watch What Happens","Bim-Bom"],album_url:"https://open.spotify.com/album/1UfK3QoiNfZL5A6JqvxUeT",image_url:"https://i.scdn.co/image/ab67616d0000b273d7d2d3371edf998daacc3d4c",date_added:"2023-12-14"},{title:"Heaven or Las Vegas",artist:"Cocteau Twins",year:"1990",descriptors:["dream pop","groovy","ethereal"],tracks:["Pitch the Baby","Wolf in the Breast"],album_url:"https://open.spotify.com/album/5lEphbceIgaK1XxWeSrC9E",image_url:"https://i.scdn.co/image/ab67616d0000b2735d2fdd1564ccab97e60c656f",date_added:"2024-01-25"},{title:"Suntub",artist:"ML Buch",year:"2023-10-27",descriptors:["ethereal","synthetic","rock"],tracks:["Fleshless hand","Well bucket"],album_url:"https://open.spotify.com/album/6IjtDhIvMy3I8xORtWAVax",image_url:"https://i.scdn.co/image/ab67616d0000b27386a8513fec7563a8a6584c84",date_added:"2024-03-18"}];var Ul=(e=>(e[e.RecentlyAdded=0]="RecentlyAdded",e[e.OldestToNewest=1]="OldestToNewest",e[e.NewestToOldest=2]="NewestToOldest",e[e.AlbumName=3]="AlbumName",e[e.ArtistName=4]="ArtistName",e[e.Random=5]="Random",e))(Ul||{});function Td(e,t){var n=["a","an","the"],r=new RegExp("^(?:("+n.join("|")+") )(.*)$"),o=function(i,s,l){return l+", "+s};return e=e.toLowerCase().replace(r,o),t=t.toLowerCase().replace(r,o),e.localeCompare(t)}function dk(e){let t=e.length,n;for(;t!=0;)n=Math.floor(Math.random()*t),t--,[e[t],e[n]]=[e[n],e[t]];return e}function Ns(e,t){switch(t){case 0:return e.sort((n,r)=>r.date_added.localeCompare(n.date_added));case 1:return e.sort((n,r)=>n.year.localeCompare(r.year));case 2:return e.sort((n,r)=>r.year.localeCompare(n.year));case 3:return e.sort((n,r)=>Td(n.title,r.title));case 4:return e.sort((n,r)=>Td(n.artist,r.artist));case 5:return dk(e)}}const Hl="All";function fk(e){let t={};for(let r of e)for(let o of r.descriptors)o in t?t[o]+=1:t[o]=1;let n=[];for(let r of Object.keys(t))n.push({name:r,count:t[r]});return n.push({name:Hl,count:e.length}),n.sort((r,o)=>r.name.localeCompare(o.name)),n.sort((r,o)=>o.count-r.count),n}function pk({changeSort:e,changeFilter:t,currentFilter:n,filterList:r}){return O("div",{className:"album-sorter",children:[O("div",{className:"sort-by",children:[C("label",{htmlFor:"album-sorter-select",className:"nice-select-label",children:"Sort by:"}),O("select",{id:"album-sorter-select",className:"nice-select",onChange:s=>{e(parseInt(s.target.value))},defaultValue:"0",children:[C("option",{value:0,children:"Recently added"}),C("option",{value:2,children:"Newest to oldest"}),C("option",{value:1,children:"Oldest to newest"}),C("option",{value:3,children:"Album name"}),C("option",{value:4,children:"Artist name"}),C("option",{value:5,children:"Random"})]})]}),O("div",{className:"filter-by",children:[C("label",{htmlFor:"album-filterer-select",className:"nice-select-label",children:"Filter by:"}),C("select",{id:"album-filterer-select",className:"nice-select",onChange:s=>{t(s.target.value)},value:n,children:r.map(s=>O("option",{value:s.name,children:[Op(s.name)," (",s.count,")"]},s.name))})]})]})}function hk(){return O("div",{className:"header",children:[O("div",{className:"moon-image-wrapper",children:[C("div",{className:"rotator-wrapper moon-wrapper",children:C("div",{className:"rotator moon-rotator",children:C("img",{src:"fullmoon.svg",className:"full-moon-emoji"})})}),C("div",{className:"rotator-wrapper moonburst-wrapper moonburst-dark-wrapper",children:C("div",{className:"rotator",children:C("img",{src:"moonburst-dark.svg",className:"moonburst moonburst-dark"})})}),C("div",{className:"rotator-wrapper moonburst-wrapper moonburst-bright-wrapper",children:C("div",{className:"rotator",children:C("img",{src:"moonburst-bright.svg",className:"moonburst moonburst-bright"})})}),C("svg",{className:"header-title-svg",children:C("g",{children:C("clipPath",{id:"title-clip",children:O("text",{x:"0",y:"0",dy:"0",className:"title-text",children:[O("tspan",{x:"0",dy:"-1em",className:"header-title",dominantBaseline:"central",children:["Full"," "]}),O("tspan",{x:"0",dy:"1em",className:"header-title",dominantBaseline:"central",children:["Moon"," "]}),C("tspan",{x:"0",dy:"1em",className:"header-title",dominantBaseline:"central",children:"Albums"})]})})})})]}),O("div",{className:"header-description",children:[O("p",{children:["I listen to a lot of music. Since 2020, I've been keeping track of every album I listen to and rating each one with a"," ",C("strong",{children:"moon emoji"}),":"]}),O("ul",{className:"moon-rating-list",children:[O("li",{className:"moon-rating",children:[C("img",{src:"crescent.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Crescent"}),C("span",{children:"Okay, at least I finished it"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"halfmoon.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Half Moon"}),C("span",{children:"Pretty good, mostly enjoyable"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"gibbous.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Gibbous"}),C("span",{children:"Great, overall enjoyable"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"fullmoon.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Full Moon"}),C("span",{children:"All bangers, no skips"})]})]})]}),O("p",{children:["After rating ",C("strong",{children:"1,800+"})," albums, these are the only ones that slap from start to finish, the ones I keep coming back to, the ones that earned themselves a"," ",C("strong",{children:"Full Moon"}),"."," ",O("a",{className:"learn-more",href:"https://aaronson.org/blog/full-moon-albums",rel:"noreferrer noopener",target:"_blank",children:["learn\xA0more\xA0",C("span",{className:"learn-more-arrow",children:"\u2192"})]})]})]}),C("div",{className:"down-arrow-wrapper",children:C("a",{href:"#albums",className:"down-arrow",children:C("span",{className:"down-arrow-text",children:"\u2193"})})})]})}function mk(){return O("div",{className:"app-footer-text",children:["\xA9 ",new Date().getFullYear()," ",C("a",{href:"https://aaronson.org",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Adam Aaronson"})," \xB7 ",C("a",{href:"https://github.com/adamaaronson/full-moon-albums",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"GitHub"})," \xB7 ",C("a",{href:"https://twitter.com/aaaronson",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Twitter"})," \xB7 ",C("a",{href:"https://aaronson.org/blog/full-moon-albums",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Learn more"})]})}function yk(){const[e,t]=M.exports.useState(Ns(Ms,Ul.RecentlyAdded)),[n]=M.exports.useState(Ms),[r,o]=M.exports.useState(Ul.RecentlyAdded),[i,s]=M.exports.useState(Hl),[l]=M.exports.useState(fk(Ms)),a=d=>{o(d);const f=Ns(e,d);t([...f])},u=d=>{s(d);let f=n;d!==Hl&&(f=n.filter(g=>g.descriptors.includes(d))),f=Ns(f,r),t([...f]);const y=document.getElementById("albums");y&&y.scrollIntoView()};return O("div",{className:"app",children:[C("div",{className:"pattern"}),C("section",{className:"app-hero",children:C(hk,{})}),O("main",{className:"app-body",id:"albums",children:[C(pk,{changeSort:a,changeFilter:u,currentFilter:i,filterList:l}),C(ck,{albums:e,onClickFilter:d=>{u(d.target.value)}})]}),C("footer",{className:"app-footer",children:C(mk,{})})]})}Ls.createRoot(document.getElementById("root")).render(C(Ql.StrictMode,{children:C(yk,{})})); + */var Py=M.exports,Ey=Symbol.for("react.element"),by=Symbol.for("react.fragment"),My=Object.prototype.hasOwnProperty,Ny=Py.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ly={key:!0,ref:!0,__self:!0,__source:!0};function zp(e,t,n){var r,o={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(r in t)My.call(t,r)&&!Ly.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:Ey,type:e,key:i,ref:s,props:o,_owner:Ny.current}}Ai.Fragment=by;Ai.jsx=zp;Ai.jsxs=zp;(function(e){e.exports=Ai})(ja);const C=ja.exports.jsx,O=ja.exports.jsxs;function Op(e){return e.charAt(0).toUpperCase()+e.slice(1)}function vs(e){const t=new Date(Date.parse(e.date_added)),n=new Date(Date.now()-6048e5);return t>n}function Vy(e){return new Date(Date.parse(e.date_added)).toLocaleDateString("en-us",{timeZone:"UTC",day:"numeric",month:"short",year:"numeric"}).replaceAll("/","-")}function Dy({album:e,onClickFilter:t}){const[n,r]=M.exports.useState(!1);return O("div",{className:"album-card"+(vs(e)?" album-card-recent":""),onMouseOver:()=>r(!0),onMouseOut:()=>r(!1),children:[O("div",{className:"album-date-label"+(vs(e)?" album-date-label-new":""),children:[C("img",{className:"album-date-label-moon",src:"fullmoon.png"}),C("div",{className:"album-date-label-text",children:vs(e)&&!n?"NEW":Vy(e)})]}),O("div",{className:"album-info",children:[C("img",{src:e.image_url,className:"album-image",width:"200px"}),C("h2",{className:"album-title",children:e.title}),C("h3",{className:"album-artist",children:e.artist}),C("h4",{className:"album-year",children:e.year.split("-")[0]}),C("div",{className:"album-descriptors-list",children:e.descriptors.map(o=>C("button",{className:"album-descriptor",value:o,onClick:t,children:Op(o)},o))})]}),O("div",{className:"album-tracks",children:[O("div",{className:"album-tracks-text",children:[C("h4",{className:"album-tracks-header",children:"Favorite tracks:"}),C("ul",{className:"album-tracks-list",children:e.tracks.map(o=>C("li",{className:"album-track",children:o},o))})]}),C("div",{className:"album-link",children:e.album_url==""?C("img",{className:"spotify-logo no-spotify",src:"spotify.png"}):C("a",{href:e.album_url,target:"_blank",rel:"noopener noreferrer",children:C("img",{className:"spotify-logo",src:"spotify.png"})})})]})]})}const Ia=M.exports.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),zi=M.exports.createContext({});function Ry(){return M.exports.useContext(zi).visualElement}const Oi=M.exports.createContext(null),an=typeof document<"u",vc=an?M.exports.useLayoutEffect:M.exports.useEffect,Fp=M.exports.createContext({strict:!1});function Ay(e,t,n,r){const o=Ry(),i=M.exports.useContext(Fp),s=M.exports.useContext(Oi),l=M.exports.useContext(Ia).reducedMotion,a=M.exports.useRef();r=r||i.renderer,!a.current&&r&&(a.current=r(e,{visualState:t,parent:o,props:n,presenceId:s?s.id:void 0,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:l}));const u=a.current;return vc(()=>{u&&u.render()}),M.exports.useEffect(()=>{u&&u.animationState&&u.animationState.animateChanges()}),vc(()=>()=>u&&u.notify("Unmount"),[]),u}function _n(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function zy(e,t,n){return M.exports.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):_n(n)&&(n.current=r))},[t])}function Fr(e){return typeof e=="string"||Array.isArray(e)}function Fi(e){return typeof e=="object"&&typeof e.start=="function"}const Oy=["initial","animate","exit","whileHover","whileDrag","whileTap","whileFocus","whileInView"];function ji(e){return Fi(e.animate)||Oy.some(t=>Fr(e[t]))}function jp(e){return Boolean(ji(e)||e.variants)}function Fy(e,t){if(ji(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Fr(n)?n:void 0,animate:Fr(r)?r:void 0}}return e.inherit!==!1?t:{}}function jy(e){const{initial:t,animate:n}=Fy(e,M.exports.useContext(zi));return M.exports.useMemo(()=>({initial:t,animate:n}),[kc(t),kc(n)])}function kc(e){return Array.isArray(e)?e.join(" "):e}const nt=e=>({isEnabled:t=>e.some(n=>!!t[n])}),jr={measureLayout:nt(["layout","layoutId","drag"]),animation:nt(["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"]),exit:nt(["exit"]),drag:nt(["drag","dragControls"]),focus:nt(["whileFocus"]),hover:nt(["whileHover","onHoverStart","onHoverEnd"]),tap:nt(["whileTap","onTap","onTapStart","onTapCancel"]),pan:nt(["onPan","onPanStart","onPanSessionStart","onPanEnd"]),inView:nt(["whileInView","onViewportEnter","onViewportLeave"])};function Iy(e){for(const t in e)t==="projectionNodeConstructor"?jr.projectionNodeConstructor=e[t]:jr[t].Component=e[t]}function Ba(e){const t=M.exports.useRef(null);return t.current===null&&(t.current=e()),t.current}const hr={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let By=1;function Uy(){return Ba(()=>{if(hr.hasEverUpdated)return By++})}const Ip=M.exports.createContext({});class Hy extends Ql.Component{getSnapshotBeforeUpdate(){const{visualElement:t,props:n}=this.props;return t&&t.setProps(n),null}componentDidUpdate(){}render(){return this.props.children}}const Bp=M.exports.createContext({}),Wy=Symbol.for("motionComponentSymbol");function $y({preloadedFeatures:e,createVisualElement:t,projectionNodeConstructor:n,useRender:r,useVisualState:o,Component:i}){e&&Iy(e);function s(a,u){const c={...M.exports.useContext(Ia),...a,layoutId:Gy(a)},{isStatic:d}=c;let f=null;const y=jy(a),g=d?void 0:Uy(),k=o(a,d);if(!d&&an){y.visualElement=Ay(i,k,c,t);const x=M.exports.useContext(Fp).strict,m=M.exports.useContext(Bp);y.visualElement&&(f=y.visualElement.loadFeatures(c,x,e,g,n||jr.projectionNodeConstructor,m))}return O(Hy,{visualElement:y.visualElement,props:c,children:[f,C(zi.Provider,{value:y,children:r(i,a,g,zy(k,y.visualElement,u),k,d,y.visualElement)})]})}const l=M.exports.forwardRef(s);return l[Wy]=i,l}function Gy({layoutId:e}){const t=M.exports.useContext(Ip).id;return t&&e!==void 0?t+"-"+e:e}function Ky(e){function t(r,o={}){return $y(e(r,o))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,o)=>(n.has(o)||n.set(o,t(o)),n.get(o))})}const Qy=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","text","tspan","use","view"];function Ua(e){return typeof e!="string"||e.includes("-")?!1:!!(Qy.indexOf(e)>-1||/[A-Z]/.test(e))}const ai={};function Yy(e){Object.assign(ai,e)}const ui=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Wn=new Set(ui);function Up(e,{layout:t,layoutId:n}){return Wn.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!ai[e]||e==="opacity")}const et=e=>!!(e!=null&&e.getVelocity),Xy={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Zy=(e,t)=>ui.indexOf(e)-ui.indexOf(t);function Jy({transform:e,transformKeys:t},{enableHardwareAcceleration:n=!0,allowTransformNone:r=!0},o,i){let s="";t.sort(Zy);for(const l of t)s+=`${Xy[l]||l}(${e[l]}) `;return n&&!e.z&&(s+="translateZ(0)"),s=s.trim(),i?s=i(e,o?"":s):r&&o&&(s="none"),s}function Hp(e){return e.startsWith("--")}const qy=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Wp=(e,t)=>n=>Math.max(Math.min(n,t),e),mr=e=>e%1?Number(e.toFixed(5)):e,Ir=/(-)?([\d]*\.?[\d])+/g,Cl=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,eg=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Yr(e){return typeof e=="string"}const un={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},yr=Object.assign(Object.assign({},un),{transform:Wp(0,1)}),vo=Object.assign(Object.assign({},un),{default:1}),Xr=e=>({test:t=>Yr(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),gt=Xr("deg"),qe=Xr("%"),N=Xr("px"),tg=Xr("vh"),ng=Xr("vw"),wc=Object.assign(Object.assign({},qe),{parse:e=>qe.parse(e)/100,transform:e=>qe.transform(e*100)}),Ha=(e,t)=>n=>Boolean(Yr(n)&&eg.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),$p=(e,t,n)=>r=>{if(!Yr(r))return r;const[o,i,s,l]=r.match(Ir);return{[e]:parseFloat(o),[t]:parseFloat(i),[n]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}},Zt={test:Ha("hsl","hue"),parse:$p("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+qe.transform(mr(t))+", "+qe.transform(mr(n))+", "+mr(yr.transform(r))+")"},rg=Wp(0,255),ks=Object.assign(Object.assign({},un),{transform:e=>Math.round(rg(e))}),Tt={test:Ha("rgb","red"),parse:$p("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ks.transform(e)+", "+ks.transform(t)+", "+ks.transform(n)+", "+mr(yr.transform(r))+")"};function og(e){let t="",n="",r="",o="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),o=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),o=e.substr(4,1),t+=t,n+=n,r+=r,o+=o),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:o?parseInt(o,16)/255:1}}const Tl={test:Ha("#"),parse:og,transform:Tt.transform},pe={test:e=>Tt.test(e)||Tl.test(e)||Zt.test(e),parse:e=>Tt.test(e)?Tt.parse(e):Zt.test(e)?Zt.parse(e):Tl.parse(e),transform:e=>Yr(e)?e:e.hasOwnProperty("red")?Tt.transform(e):Zt.transform(e)},Gp="${c}",Kp="${n}";function ig(e){var t,n,r,o;return isNaN(e)&&Yr(e)&&((n=(t=e.match(Ir))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((o=(r=e.match(Cl))===null||r===void 0?void 0:r.length)!==null&&o!==void 0?o:0)>0}function Qp(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Cl);r&&(n=r.length,e=e.replace(Cl,Gp),t.push(...r.map(pe.parse)));const o=e.match(Ir);return o&&(e=e.replace(Ir,Kp),t.push(...o.map(un.parse))),{values:t,numColors:n,tokenised:e}}function Yp(e){return Qp(e).values}function Xp(e){const{values:t,numColors:n,tokenised:r}=Qp(e),o=t.length;return i=>{let s=r;for(let l=0;ltypeof e=="number"?0:e;function lg(e){const t=Yp(e);return Xp(e)(t.map(sg))}const ft={test:ig,parse:Yp,createTransformer:Xp,getAnimatableNone:lg},ag=new Set(["brightness","contrast","saturate","opacity"]);function ug(e){let[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ir)||[];if(!r)return e;const o=n.replace(r,"");let i=ag.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+o+")"}const cg=/([a-z-]*)\(.*?\)/g,Pl=Object.assign(Object.assign({},ft),{getAnimatableNone:e=>{const t=e.match(cg);return t?t.map(ug).join(" "):e}}),Sc={...un,transform:Math.round},Zp={borderWidth:N,borderTopWidth:N,borderRightWidth:N,borderBottomWidth:N,borderLeftWidth:N,borderRadius:N,radius:N,borderTopLeftRadius:N,borderTopRightRadius:N,borderBottomRightRadius:N,borderBottomLeftRadius:N,width:N,maxWidth:N,height:N,maxHeight:N,size:N,top:N,right:N,bottom:N,left:N,padding:N,paddingTop:N,paddingRight:N,paddingBottom:N,paddingLeft:N,margin:N,marginTop:N,marginRight:N,marginBottom:N,marginLeft:N,rotate:gt,rotateX:gt,rotateY:gt,rotateZ:gt,scale:vo,scaleX:vo,scaleY:vo,scaleZ:vo,skew:gt,skewX:gt,skewY:gt,distance:N,translateX:N,translateY:N,translateZ:N,x:N,y:N,z:N,perspective:N,transformPerspective:N,opacity:yr,originX:wc,originY:wc,originZ:N,zIndex:Sc,fillOpacity:yr,strokeOpacity:yr,numOctaves:Sc};function Wa(e,t,n,r){const{style:o,vars:i,transform:s,transformKeys:l,transformOrigin:a}=e;l.length=0;let u=!1,c=!1,d=!0;for(const f in t){const y=t[f];if(Hp(f)){i[f]=y;continue}const g=Zp[f],k=qy(y,g);if(Wn.has(f)){if(u=!0,s[f]=k,l.push(f),!d)continue;y!==(g.default||0)&&(d=!1)}else f.startsWith("origin")?(c=!0,a[f]=k):o[f]=k}if(t.transform||(u||r?o.transform=Jy(e,n,d,r):o.transform&&(o.transform="none")),c){const{originX:f="50%",originY:y="50%",originZ:g=0}=a;o.transformOrigin=`${f} ${y} ${g}`}}const $a=()=>({style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}});function Jp(e,t,n){for(const r in t)!et(t[r])&&!Up(r,n)&&(e[r]=t[r])}function dg({transformTemplate:e},t,n){return M.exports.useMemo(()=>{const r=$a();return Wa(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function fg(e,t,n){const r=e.style||{},o={};return Jp(o,r,e),Object.assign(o,dg(e,t,n)),e.transformValues?e.transformValues(o):o}function pg(e,t,n){const r={},o=fg(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),r.style=o,r}const hg=["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"],mg=["whileTap","onTap","onTapStart","onTapCancel"],yg=["onPan","onPanStart","onPanSessionStart","onPanEnd"],gg=["whileInView","onViewportEnter","onViewportLeave","viewport"],vg=new Set(["initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","layout","layoutId","layoutDependency","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","drag","dragControls","dragListener","dragConstraints","dragDirectionLock","dragSnapToOrigin","_dragX","_dragY","dragElastic","dragMomentum","dragPropagation","dragTransition","onHoverStart","onHoverEnd","layoutScroll",...gg,...mg,...hg,...yg]);function ci(e){return vg.has(e)}let qp=e=>!ci(e);function kg(e){!e||(qp=t=>t.startsWith("on")?!ci(t):e(t))}try{kg(require("@emotion/is-prop-valid").default)}catch{}function wg(e,t,n){const r={};for(const o in e)(qp(o)||n===!0&&ci(o)||!t&&!ci(o)||e.draggable&&o.startsWith("onDrag"))&&(r[o]=e[o]);return r}function xc(e,t,n){return typeof e=="string"?e:N.transform(t+n*e)}function Sg(e,t,n){const r=xc(t,e.x,e.width),o=xc(n,e.y,e.height);return`${r} ${o}`}const xg={offset:"stroke-dashoffset",array:"stroke-dasharray"},_g={offset:"strokeDashoffset",array:"strokeDasharray"};function Cg(e,t,n=1,r=0,o=!0){e.pathLength=1;const i=o?xg:_g;e[i.offset]=N.transform(-r);const s=N.transform(t),l=N.transform(n);e[i.array]=`${s} ${l}`}function Ga(e,{attrX:t,attrY:n,originX:r,originY:o,pathLength:i,pathSpacing:s=1,pathOffset:l=0,...a},u,c){Wa(e,a,u,c),e.attrs=e.style,e.style={};const{attrs:d,style:f,dimensions:y}=e;d.transform&&(y&&(f.transform=d.transform),delete d.transform),y&&(r!==void 0||o!==void 0||f.transform)&&(f.transformOrigin=Sg(y,r!==void 0?r:.5,o!==void 0?o:.5)),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),i!==void 0&&Cg(d,i,s,l,!1)}const eh=()=>({...$a(),attrs:{}});function Tg(e,t){const n=M.exports.useMemo(()=>{const r=eh();return Ga(r,t,{enableHardwareAcceleration:!1},e.transformTemplate),{...r.attrs,style:{...r.style}}},[t]);if(e.style){const r={};Jp(r,e.style,e),n.style={...r,...n.style}}return n}function Pg(e=!1){return(n,r,o,i,{latestValues:s},l)=>{const u=(Ua(n)?Tg:pg)(r,s,l),d={...wg(r,typeof n=="string",e),...u,ref:i};return o&&(d["data-projection-id"]=o),M.exports.createElement(n,d)}}const th=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function nh(e,{style:t,vars:n},r,o){Object.assign(e.style,t,o&&o.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const rh=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength"]);function oh(e,t,n,r){nh(e,t,void 0,r);for(const o in t.attrs)e.setAttribute(rh.has(o)?o:th(o),t.attrs[o])}function Ka(e){const{style:t}=e,n={};for(const r in t)(et(t[r])||Up(r,e))&&(n[r]=t[r]);return n}function ih(e){const t=Ka(e);for(const n in e)if(et(e[n])){const r=n==="x"||n==="y"?"attr"+n.toUpperCase():n;t[r]=e[n]}return t}function Qa(e,t,n,r={},o={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,o)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,o)),t}const Br=e=>Array.isArray(e),Eg=e=>Boolean(e&&typeof e=="object"&&e.mix&&e.toValue),sh=e=>Br(e)?e[e.length-1]||0:e;function Ao(e){const t=et(e)?e.get():e;return Eg(t)?t.toValue():t}function bg({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,o,i){const s={latestValues:Mg(r,o,i,e),renderState:t()};return n&&(s.mount=l=>n(r,l,s)),s}const lh=e=>(t,n)=>{const r=M.exports.useContext(zi),o=M.exports.useContext(Oi),i=()=>bg(e,t,r,o);return n?i():Ba(i)};function Mg(e,t,n,r){const o={},i=r(e);for(const f in i)o[f]=Ao(i[f]);let{initial:s,animate:l}=e;const a=ji(e),u=jp(e);t&&u&&!a&&e.inherit!==!1&&(s===void 0&&(s=t.initial),l===void 0&&(l=t.animate));let c=n?n.initial===!1:!1;c=c||s===!1;const d=c?l:s;return d&&typeof d!="boolean"&&!Fi(d)&&(Array.isArray(d)?d:[d]).forEach(y=>{const g=Qa(e,y);if(!g)return;const{transitionEnd:k,transition:x,...m}=g;for(const p in m){let h=m[p];if(Array.isArray(h)){const v=c?h.length-1:0;h=h[v]}h!==null&&(o[p]=h)}for(const p in k)o[p]=k[p]}),o}const Ng={useVisualState:lh({scrapeMotionValuesFromProps:ih,createRenderState:eh,onMount:(e,t,{renderState:n,latestValues:r})=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}Ga(n,r,{enableHardwareAcceleration:!1},e.transformTemplate),oh(t,n)}})},Lg={useVisualState:lh({scrapeMotionValuesFromProps:Ka,createRenderState:$a})};function Vg(e,{forwardMotionProps:t=!1},n,r,o){return{...Ua(e)?Ng:Lg,preloadedFeatures:n,useRender:Pg(t),createVisualElement:r,projectionNodeConstructor:o,Component:e}}var j;(function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.InView="whileInView",e.Exit="exit"})(j||(j={}));function Ii(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function El(e,t,n,r){M.exports.useEffect(()=>{const o=e.current;if(n&&o)return Ii(o,t,n,r)},[e,t,n,r])}function Dg({whileFocus:e,visualElement:t}){const{animationState:n}=t,r=()=>{n&&n.setActive(j.Focus,!0)},o=()=>{n&&n.setActive(j.Focus,!1)};El(t,"focus",e?r:void 0),El(t,"blur",e?o:void 0)}function ah(e){return typeof PointerEvent<"u"&&e instanceof PointerEvent?e.pointerType==="mouse":e instanceof MouseEvent}function uh(e){return!!e.touches}function Rg(e){return t=>{const n=t instanceof MouseEvent;(!n||n&&t.button===0)&&e(t)}}const Ag={pageX:0,pageY:0};function zg(e,t="page"){const r=e.touches[0]||e.changedTouches[0]||Ag;return{x:r[t+"X"],y:r[t+"Y"]}}function Og(e,t="page"){return{x:e[t+"X"],y:e[t+"Y"]}}function Ya(e,t="page"){return{point:uh(e)?zg(e,t):Og(e,t)}}const ch=(e,t=!1)=>{const n=r=>e(r,Ya(r));return t?Rg(n):n},Fg=()=>an&&window.onpointerdown===null,jg=()=>an&&window.ontouchstart===null,Ig=()=>an&&window.onmousedown===null,Bg={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},Ug={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function dh(e){return Fg()?e:jg()?Ug[e]:Ig()?Bg[e]:e}function Ln(e,t,n,r){return Ii(e,dh(t),ch(n,t==="pointerdown"),r)}function di(e,t,n,r){return El(e,dh(t),n&&ch(n,t==="pointerdown"),r)}function fh(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const _c=fh("dragHorizontal"),Cc=fh("dragVertical");function ph(e){let t=!1;if(e==="y")t=Cc();else if(e==="x")t=_c();else{const n=_c(),r=Cc();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function hh(){const e=ph(!0);return e?(e(),!1):!0}function Tc(e,t,n){return(r,o)=>{!ah(r)||hh()||(e.animationState&&e.animationState.setActive(j.Hover,t),n&&n(r,o))}}function Hg({onHoverStart:e,onHoverEnd:t,whileHover:n,visualElement:r}){di(r,"pointerenter",e||n?Tc(r,!0,e):void 0,{passive:!e}),di(r,"pointerleave",t||n?Tc(r,!1,t):void 0,{passive:!t})}const mh=(e,t)=>t?e===t?!0:mh(e,t.parentElement):!1;function yh(e){return M.exports.useEffect(()=>()=>e(),[])}function gh(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);oMath.min(Math.max(n,e),t),ws=.001,$g=.01,Pc=10,Gg=.05,Kg=1;function Qg({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let o,i;Wg(e<=Pc*1e3);let s=1-t;s=pi(Gg,Kg,s),e=pi($g,Pc,e/1e3),s<1?(o=u=>{const c=u*s,d=c*e,f=c-n,y=bl(u,s),g=Math.exp(-d);return ws-f/y*g},i=u=>{const d=u*s*e,f=d*n+n,y=Math.pow(s,2)*Math.pow(u,2)*e,g=Math.exp(-d),k=bl(Math.pow(u,2),s);return(-o(u)+ws>0?-1:1)*((f-y)*g)/k}):(o=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-ws+c*d},i=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const l=5/e,a=Xg(o,i,l);if(e=e*1e3,isNaN(a))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(a,2)*r;return{stiffness:u,damping:s*2*Math.sqrt(r*u),duration:e}}}const Yg=12;function Xg(e,t,n){let r=n;for(let o=1;oe[n]!==void 0)}function qg(e){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!Ec(e,Jg)&&Ec(e,Zg)){const n=Qg(e);t=Object.assign(Object.assign(Object.assign({},t),n),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function Xa(e){var{from:t=0,to:n=1,restSpeed:r=2,restDelta:o}=e,i=gh(e,["from","to","restSpeed","restDelta"]);const s={done:!1,value:t};let{stiffness:l,damping:a,mass:u,velocity:c,duration:d,isResolvedFromDuration:f}=qg(i),y=bc,g=bc;function k(){const x=c?-(c/1e3):0,m=n-t,p=a/(2*Math.sqrt(l*u)),h=Math.sqrt(l/u)/1e3;if(o===void 0&&(o=Math.min(Math.abs(n-t)/100,.4)),p<1){const v=bl(h,p);y=w=>{const _=Math.exp(-p*h*w);return n-_*((x+p*h*m)/v*Math.sin(v*w)+m*Math.cos(v*w))},g=w=>{const _=Math.exp(-p*h*w);return p*h*_*(Math.sin(v*w)*(x+p*h*m)/v+m*Math.cos(v*w))-_*(Math.cos(v*w)*(x+p*h*m)-v*m*Math.sin(v*w))}}else if(p===1)y=v=>n-Math.exp(-h*v)*(m+(x+h*m)*v);else{const v=h*Math.sqrt(p*p-1);y=w=>{const _=Math.exp(-p*h*w),T=Math.min(v*w,300);return n-_*((x+p*h*m)*Math.sinh(T)+v*m*Math.cosh(T))/v}}}return k(),{next:x=>{const m=y(x);if(f)s.done=x>=d;else{const p=g(x)*1e3,h=Math.abs(p)<=r,v=Math.abs(n-m)<=o;s.done=h&&v}return s.value=s.done?n:m,s},flipTarget:()=>{c=-c,[t,n]=[n,t],k()}}}Xa.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";const bc=e=>0,Ur=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Q=(e,t,n)=>-n*e+n*t+e;function Ss(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Mc({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let o=0,i=0,s=0;if(!t)o=i=s=n;else{const l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;o=Ss(a,l,e+1/3),i=Ss(a,l,e),s=Ss(a,l,e-1/3)}return{red:Math.round(o*255),green:Math.round(i*255),blue:Math.round(s*255),alpha:r}}const ev=(e,t,n)=>{const r=e*e,o=t*t;return Math.sqrt(Math.max(0,n*(o-r)+r))},tv=[Tl,Tt,Zt],Nc=e=>tv.find(t=>t.test(e)),vh=(e,t)=>{let n=Nc(e),r=Nc(t),o=n.parse(e),i=r.parse(t);n===Zt&&(o=Mc(o),n=Tt),r===Zt&&(i=Mc(i),r=Tt);const s=Object.assign({},o);return l=>{for(const a in s)a!=="alpha"&&(s[a]=ev(o[a],i[a],l));return s.alpha=Q(o.alpha,i.alpha,l),n.transform(s)}},Ml=e=>typeof e=="number",nv=(e,t)=>n=>t(e(n)),Bi=(...e)=>e.reduce(nv);function kh(e,t){return Ml(e)?n=>Q(e,t,n):pe.test(e)?vh(e,t):Sh(e,t)}const wh=(e,t)=>{const n=[...e],r=n.length,o=e.map((i,s)=>kh(i,t[s]));return i=>{for(let s=0;s{const n=Object.assign(Object.assign({},e),t),r={};for(const o in n)e[o]!==void 0&&t[o]!==void 0&&(r[o]=kh(e[o],t[o]));return o=>{for(const i in r)n[i]=r[i](o);return n}};function Lc(e){const t=ft.parse(e),n=t.length;let r=0,o=0,i=0;for(let s=0;s{const n=ft.createTransformer(t),r=Lc(e),o=Lc(t);return r.numHSL===o.numHSL&&r.numRGB===o.numRGB&&r.numNumbers>=o.numNumbers?Bi(wh(r.parsed,o.parsed),n):s=>`${s>0?t:e}`},ov=(e,t)=>n=>Q(e,t,n);function iv(e){if(typeof e=="number")return ov;if(typeof e=="string")return pe.test(e)?vh:Sh;if(Array.isArray(e))return wh;if(typeof e=="object")return rv}function sv(e,t,n){const r=[],o=n||iv(e[0]),i=e.length-1;for(let s=0;sn(Ur(e,t,r))}function av(e,t){const n=e.length,r=n-1;return o=>{let i=0,s=!1;if(o<=e[0]?s=!0:o>=e[r]&&(i=r-1,s=!0),!s){let a=1;for(;ao||a===r);a++);i=a-1}const l=Ur(e[i],e[i+1],o);return t[i](l)}}function xh(e,t,{clamp:n=!0,ease:r,mixer:o}={}){const i=e.length;fi(i===t.length),fi(!r||!Array.isArray(r)||r.length===i-1),e[0]>e[i-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const s=sv(t,r,o),l=i===2?lv(e,s):av(e,s);return n?a=>l(pi(e[0],e[i-1],a)):l}const Ui=e=>t=>1-e(1-t),Za=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,uv=e=>t=>Math.pow(t,e),_h=e=>t=>t*t*((e+1)*t-e),cv=e=>{const t=_h(e);return n=>(n*=2)<1?.5*t(n):.5*(2-Math.pow(2,-10*(n-1)))},Ch=1.525,dv=4/11,fv=8/11,pv=9/10,Ja=e=>e,qa=uv(2),hv=Ui(qa),Th=Za(qa),Ph=e=>1-Math.sin(Math.acos(e)),eu=Ui(Ph),mv=Za(eu),tu=_h(Ch),yv=Ui(tu),gv=Za(tu),vv=cv(Ch),kv=4356/361,wv=35442/1805,Sv=16061/1805,hi=e=>{if(e===1||e===0)return e;const t=e*e;return ee<.5?.5*(1-hi(1-e*2)):.5*hi(e*2-1)+.5;function Cv(e,t){return e.map(()=>t||Th).splice(0,e.length-1)}function Tv(e){const t=e.length;return e.map((n,r)=>r!==0?r/(t-1):0)}function Pv(e,t){return e.map(n=>n*t)}function zo({from:e=0,to:t=1,ease:n,offset:r,duration:o=300}){const i={done:!1,value:e},s=Array.isArray(t)?t:[e,t],l=Pv(r&&r.length===s.length?r:Tv(s),o);function a(){return xh(l,s,{ease:Array.isArray(n)?n:Cv(s,n)})}let u=a();return{next:c=>(i.value=u(c),i.done=c>=o,i),flipTarget:()=>{s.reverse(),u=a()}}}function Ev({velocity:e=0,from:t=0,power:n=.8,timeConstant:r=350,restDelta:o=.5,modifyTarget:i}){const s={done:!1,value:t};let l=n*e;const a=t+l,u=i===void 0?a:i(a);return u!==a&&(l=u-t),{next:c=>{const d=-l*Math.exp(-c/r);return s.done=!(d>o||d<-o),s.value=s.done?u:u+d,s},flipTarget:()=>{}}}const Vc={keyframes:zo,spring:Xa,decay:Ev};function bv(e){if(Array.isArray(e.to))return zo;if(Vc[e.type])return Vc[e.type];const t=new Set(Object.keys(e));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?zo:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?Xa:zo}const Eh=1/60*1e3,Mv=typeof performance<"u"?()=>performance.now():()=>Date.now(),bh=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(Mv()),Eh);function Nv(e){let t=[],n=[],r=0,o=!1,i=!1;const s=new WeakSet,l={schedule:(a,u=!1,c=!1)=>{const d=c&&o,f=d?t:n;return u&&s.add(a),f.indexOf(a)===-1&&(f.push(a),d&&o&&(r=t.length)),a},cancel:a=>{const u=n.indexOf(a);u!==-1&&n.splice(u,1),s.delete(a)},process:a=>{if(o){i=!0;return}if(o=!0,[t,n]=[n,t],n.length=0,r=t.length,r)for(let u=0;u(e[t]=Nv(()=>Hr=!0),e),{}),We=Zr.reduce((e,t)=>{const n=Hi[t];return e[t]=(r,o=!1,i=!1)=>(Hr||Dv(),n.schedule(r,o,i)),e},{}),Ot=Zr.reduce((e,t)=>(e[t]=Hi[t].cancel,e),{}),xs=Zr.reduce((e,t)=>(e[t]=()=>Hi[t].process(Vn),e),{}),Vv=e=>Hi[e].process(Vn),Mh=e=>{Hr=!1,Vn.delta=Nl?Eh:Math.max(Math.min(e-Vn.timestamp,Lv),1),Vn.timestamp=e,Ll=!0,Zr.forEach(Vv),Ll=!1,Hr&&(Nl=!1,bh(Mh))},Dv=()=>{Hr=!0,Nl=!0,Ll||bh(Mh)},mi=()=>Vn;function Nh(e,t,n=0){return e-t-n}function Rv(e,t,n=0,r=!0){return r?Nh(t+-e,t,n):t-(e-t)+n}function Av(e,t,n,r){return r?e>=t+n:e<=-n}const zv=e=>{const t=({delta:n})=>e(n);return{start:()=>We.update(t,!0),stop:()=>Ot.update(t)}};function Lh(e){var t,n,{from:r,autoplay:o=!0,driver:i=zv,elapsed:s=0,repeat:l=0,repeatType:a="loop",repeatDelay:u=0,onPlay:c,onStop:d,onComplete:f,onRepeat:y,onUpdate:g}=e,k=gh(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:x}=k,m,p=0,h=k.duration,v,w=!1,_=!0,T;const b=bv(k);!((n=(t=b).needsInterpolation)===null||n===void 0)&&n.call(t,r,x)&&(T=xh([0,100],[r,x],{clamp:!1}),r=0,x=100);const R=b(Object.assign(Object.assign({},k),{from:r,to:x}));function L(){p++,a==="reverse"?(_=p%2===0,s=Rv(s,h,u,_)):(s=Nh(s,h,u),a==="mirror"&&R.flipTarget()),w=!1,y&&y()}function ae(){m.stop(),f&&f()}function _e(ht){if(_||(ht=-ht),s+=ht,!w){const mt=R.next(Math.max(0,s));v=mt.value,T&&(v=T(v)),w=_?mt.done:s<=0}g==null||g(v),w&&(p===0&&(h!=null||(h=s)),p{d==null||d(),m.stop()}}}function Vh(e,t){return t?e*(1e3/t):0}function Ov({from:e=0,velocity:t=0,min:n,max:r,power:o=.8,timeConstant:i=750,bounceStiffness:s=500,bounceDamping:l=10,restDelta:a=1,modifyTarget:u,driver:c,onUpdate:d,onComplete:f,onStop:y}){let g;function k(h){return n!==void 0&&hr}function x(h){return n===void 0?r:r===void 0||Math.abs(n-h){var w;d==null||d(v),(w=h.onUpdate)===null||w===void 0||w.call(h,v)},onComplete:f,onStop:y}))}function p(h){m(Object.assign({type:"spring",stiffness:s,damping:l,restDelta:a},h))}if(k(e))p({from:e,velocity:t,to:x(e)});else{let h=o*t+e;typeof u<"u"&&(h=u(h));const v=x(h),w=v===n?-1:1;let _,T;const b=R=>{_=T,T=R,t=Vh(R-_,mi().delta),(w===1&&R>v||w===-1&&Rg==null?void 0:g.stop()}}const Vl=e=>e.hasOwnProperty("x")&&e.hasOwnProperty("y"),Dc=e=>Vl(e)&&e.hasOwnProperty("z"),ko=(e,t)=>Math.abs(e-t);function Fv(e,t){if(Ml(e)&&Ml(t))return ko(e,t);if(Vl(e)&&Vl(t)){const n=ko(e.x,t.x),r=ko(e.y,t.y),o=Dc(e)&&Dc(t)?ko(e.z,t.z):0;return Math.sqrt(Math.pow(n,2)+Math.pow(r,2)+Math.pow(o,2))}}const Dh=(e,t)=>1-3*t+3*e,Rh=(e,t)=>3*t-6*e,Ah=e=>3*e,yi=(e,t,n)=>((Dh(t,n)*e+Rh(t,n))*e+Ah(t))*e,zh=(e,t,n)=>3*Dh(t,n)*e*e+2*Rh(t,n)*e+Ah(t),jv=1e-7,Iv=10;function Bv(e,t,n,r,o){let i,s,l=0;do s=t+(n-t)/2,i=yi(s,r,o)-e,i>0?n=s:t=s;while(Math.abs(i)>jv&&++l=Hv?Wv(s,d,e,n):f===0?d:Bv(s,l,l+wo,e,n)}return s=>s===0||s===1?s:yi(i(s),t,r)}function Gv({onTap:e,onTapStart:t,onTapCancel:n,whileTap:r,visualElement:o}){const i=e||t||n||r,s=M.exports.useRef(!1),l=M.exports.useRef(null),a={passive:!(t||e||n||y)};function u(){l.current&&l.current(),l.current=null}function c(){return u(),s.current=!1,o.animationState&&o.animationState.setActive(j.Tap,!1),!hh()}function d(g,k){!c()||(mh(o.current,g.target)?e&&e(g,k):n&&n(g,k))}function f(g,k){!c()||n&&n(g,k)}function y(g,k){u(),!s.current&&(s.current=!0,l.current=Bi(Ln(window,"pointerup",d,a),Ln(window,"pointercancel",f,a)),o.animationState&&o.animationState.setActive(j.Tap,!0),t&&t(g,k))}di(o,"pointerdown",i?y:void 0,a),yh(u)}const Kv="production",Qv=typeof process>"u"||process.env===void 0?Kv:"production",Rc=new Set;function Yv(e,t,n){e||Rc.has(t)||(console.warn(t),n&&console.warn(n),Rc.add(t))}const Dl=new WeakMap,_s=new WeakMap,Xv=e=>{const t=Dl.get(e.target);t&&t(e)},Zv=e=>{e.forEach(Xv)};function Jv({root:e,...t}){const n=e||document;_s.has(n)||_s.set(n,{});const r=_s.get(n),o=JSON.stringify(t);return r[o]||(r[o]=new IntersectionObserver(Zv,{root:e,...t})),r[o]}function qv(e,t,n){const r=Jv(t);return Dl.set(e,n),r.observe(e),()=>{Dl.delete(e),r.unobserve(e)}}function e1({visualElement:e,whileInView:t,onViewportEnter:n,onViewportLeave:r,viewport:o={}}){const i=M.exports.useRef({hasEnteredView:!1,isInView:!1});let s=Boolean(t||n||r);o.once&&i.current.hasEnteredView&&(s=!1),(typeof IntersectionObserver>"u"?r1:n1)(s,i.current,e,o)}const t1={some:0,all:1};function n1(e,t,n,{root:r,margin:o,amount:i="some",once:s}){M.exports.useEffect(()=>{if(!e||!n.current)return;const l={root:r==null?void 0:r.current,rootMargin:o,threshold:typeof i=="number"?i:t1[i]},a=u=>{const{isIntersecting:c}=u;if(t.isInView===c||(t.isInView=c,s&&!c&&t.hasEnteredView))return;c&&(t.hasEnteredView=!0),n.animationState&&n.animationState.setActive(j.InView,c);const d=n.getProps(),f=c?d.onViewportEnter:d.onViewportLeave;f&&f(u)};return qv(n.current,l,a)},[e,r,o,i])}function r1(e,t,n,{fallback:r=!0}){M.exports.useEffect(()=>{!e||!r||(Qv!=="production"&&Yv(!1,"IntersectionObserver not available on this device. whileInView animations will trigger on mount."),requestAnimationFrame(()=>{t.hasEnteredView=!0;const{onViewportEnter:o}=n.getProps();o&&o(null),n.animationState&&n.animationState.setActive(j.InView,!0)}))},[e])}const Pt=e=>t=>(e(t),null),o1={inView:Pt(e1),tap:Pt(Gv),focus:Pt(Dg),hover:Pt(Hg)};function Oh(){const e=M.exports.useContext(Oi);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,o=M.exports.useId();return M.exports.useEffect(()=>r(o),[]),!t&&n?[!1,()=>n&&n(o)]:[!0]}function Fh(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;re*1e3,i1={linear:Ja,easeIn:qa,easeInOut:Th,easeOut:hv,circIn:Ph,circInOut:mv,circOut:eu,backIn:tu,backInOut:gv,backOut:yv,anticipate:vv,bounceIn:xv,bounceInOut:_v,bounceOut:hi},Ac=e=>{if(Array.isArray(e)){fi(e.length===4);const[t,n,r,o]=e;return $v(t,n,r,o)}else if(typeof e=="string")return i1[e];return e},s1=e=>Array.isArray(e)&&typeof e[0]!="number",zc=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&ft.test(t)&&!t.startsWith("url(")),Ht=()=>({type:"spring",stiffness:500,damping:25,restSpeed:10}),So=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Cs=()=>({type:"keyframes",ease:"linear",duration:.3}),l1=e=>({type:"keyframes",duration:.8,values:e}),Oc={x:Ht,y:Ht,z:Ht,rotate:Ht,rotateX:Ht,rotateY:Ht,rotateZ:Ht,scaleX:So,scaleY:So,scale:So,opacity:Cs,backgroundColor:Cs,color:Cs,default:So},a1=(e,t)=>{let n;return Br(t)?n=l1:n=Oc[e]||Oc.default,{to:t,...n(t)}},u1={...Zp,color:pe,backgroundColor:pe,outlineColor:pe,fill:pe,stroke:pe,borderColor:pe,borderTopColor:pe,borderRightColor:pe,borderBottomColor:pe,borderLeftColor:pe,filter:Pl,WebkitFilter:Pl},nu=e=>u1[e];function ru(e,t){var n;let r=nu(e);return r!==Pl&&(r=ft),(n=r.getAnimatableNone)===null||n===void 0?void 0:n.call(r,t)}const c1={current:!1};function jh(e,t){const n=performance.now(),r=({timestamp:o})=>{const i=o-n;i>=t&&(Ot.read(r),e(i-t))};return We.read(r,!0),()=>Ot.read(r)}function d1({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:o,repeat:i,repeatType:s,repeatDelay:l,from:a,...u}){return!!Object.keys(u).length}function f1({ease:e,times:t,yoyo:n,flip:r,loop:o,...i}){const s={...i};return t&&(s.offset=t),i.duration&&(s.duration=gi(i.duration)),i.repeatDelay&&(s.repeatDelay=gi(i.repeatDelay)),e&&(s.ease=s1(e)?e.map(Ac):Ac(e)),i.type==="tween"&&(s.type="keyframes"),(n||o||r)&&(n?s.repeatType="reverse":o?s.repeatType="loop":r&&(s.repeatType="mirror"),s.repeat=o||n||r||i.repeat),i.type!=="spring"&&(s.type="keyframes"),s}function p1(e,t){var n,r;return(r=(n=(ou(e,t)||{}).delay)!==null&&n!==void 0?n:e.delay)!==null&&r!==void 0?r:0}function h1(e){return Array.isArray(e.to)&&e.to[0]===null&&(e.to=[...e.to],e.to[0]=e.from),e}function m1(e,t,n){return Array.isArray(t.to)&&e.duration===void 0&&(e.duration=.8),h1(t),d1(e)||(e={...e,...a1(n,t.to)}),{...t,...f1(e)}}function y1(e,t,n,r,o){const i=ou(r,e)||{};let s=i.from!==void 0?i.from:t.get();const l=zc(e,n);s==="none"&&l&&typeof n=="string"?s=ru(e,n):Fc(s)&&typeof n=="string"?s=jc(n):!Array.isArray(n)&&Fc(n)&&typeof s=="string"&&(n=jc(s));const a=zc(e,s);function u(){const d={from:s,to:n,velocity:t.getVelocity(),onComplete:o,onUpdate:f=>t.set(f)};return i.type==="inertia"||i.type==="decay"?Ov({...d,...i}):Lh({...m1(i,d,e),onUpdate:f=>{d.onUpdate(f),i.onUpdate&&i.onUpdate(f)},onComplete:()=>{d.onComplete(),i.onComplete&&i.onComplete()}})}function c(){const d=sh(n);return t.set(d),o(),i.onUpdate&&i.onUpdate(d),i.onComplete&&i.onComplete(),{stop:()=>{}}}return!a||!l||i.type===!1?c:u}function Fc(e){return e===0||typeof e=="string"&&parseFloat(e)===0&&e.indexOf(" ")===-1}function jc(e){return typeof e=="number"?0:ru("",e)}function ou(e,t){return e[t]||e.default||e}function iu(e,t,n,r={}){return c1.current&&(r={type:!1}),t.start(o=>{let i;const s=y1(e,t,n,r,o),l=p1(r,e),a=()=>i=s();let u;return l?u=jh(a,gi(l)):a(),()=>{u&&u(),i&&i.stop()}})}const g1=e=>/^\-?\d*\.?\d+$/.test(e),v1=e=>/^0[^.\s]+$/.test(e);function su(e,t){e.indexOf(t)===-1&&e.push(t)}function lu(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class gr{constructor(){this.subscriptions=[]}add(t){return su(this.subscriptions,t),()=>lu(this.subscriptions,t)}notify(t,n,r){const o=this.subscriptions.length;if(!!o)if(o===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class w1{constructor(t){this.version="7.6.15",this.timeDelta=0,this.lastUpdated=0,this.updateSubscribers=new gr,this.velocityUpdateSubscribers=new gr,this.renderSubscribers=new gr,this.canTrackVelocity=!1,this.updateAndNotify=(n,r=!0)=>{this.prev=this.current,this.current=n;const{delta:o,timestamp:i}=mi();this.lastUpdated!==i&&(this.timeDelta=o,this.lastUpdated=i,We.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.updateSubscribers.notify(this.current),this.velocityUpdateSubscribers.getSize()&&this.velocityUpdateSubscribers.notify(this.getVelocity()),r&&this.renderSubscribers.notify(this.current)},this.scheduleVelocityCheck=()=>We.postRender(this.velocityCheck),this.velocityCheck=({timestamp:n})=>{n!==this.lastUpdated&&(this.prev=this.current,this.velocityUpdateSubscribers.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=k1(this.current)}onChange(t){return this.updateSubscribers.add(t)}clearListeners(){this.updateSubscribers.clear()}onRenderRequest(t){return t(this.get()),this.renderSubscribers.add(t)}attach(t){this.passiveEffect=t}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?Vh(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.stopAnimation=t(n)}).then(()=>this.clearAnimation())}stop(){this.stopAnimation&&this.stopAnimation(),this.clearAnimation()}isAnimating(){return!!this.stopAnimation}clearAnimation(){this.stopAnimation=null}destroy(){this.updateSubscribers.clear(),this.renderSubscribers.clear(),this.stop()}}function In(e){return new w1(e)}const Ih=e=>t=>t.test(e),S1={test:e=>e==="auto",parse:e=>e},Bh=[un,N,qe,gt,ng,tg,S1],qn=e=>Bh.find(Ih(e)),x1=[...Bh,pe,ft],_1=e=>x1.find(Ih(e));function C1(e){const t={};return e.values.forEach((n,r)=>t[r]=n.get()),t}function T1(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Wi(e,t,n){const r=e.getProps();return Qa(r,t,n!==void 0?n:r.custom,C1(e),T1(e))}function P1(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,In(n))}function E1(e,t){const n=Wi(e,t);let{transitionEnd:r={},transition:o={},...i}=n?e.makeTargetAnimatable(n,!1):{};i={...i,...r};for(const s in i){const l=sh(i[s]);P1(e,s,l)}}function b1(e,t,n){var r,o;const i=Object.keys(t).filter(l=>!e.hasValue(l)),s=i.length;if(!!s)for(let l=0;lRl(e,i,n));r=Promise.all(o)}else if(typeof t=="string")r=Rl(e,t,n);else{const o=typeof t=="function"?Wi(e,t,n.custom):t;r=Uh(e,o,n)}return r.then(()=>e.notify("AnimationComplete",t))}function Rl(e,t,n={}){var r;const o=Wi(e,t,n.custom);let{transition:i=e.getDefaultTransition()||{}}=o||{};n.transitionOverride&&(i=n.transitionOverride);const s=o?()=>Uh(e,o,n):()=>Promise.resolve(),l=!((r=e.variantChildren)===null||r===void 0)&&r.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:d,staggerDirection:f}=i;return V1(e,t,c+u,d,f,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[u,c]=a==="beforeChildren"?[s,l]:[l,s];return u().then(c)}else return Promise.all([s(),l(n.delay)])}function Uh(e,t,{delay:n=0,transitionOverride:r,type:o}={}){var i;let{transition:s=e.getDefaultTransition(),transitionEnd:l,...a}=e.makeTargetAnimatable(t);const u=e.getValue("willChange");r&&(s=r);const c=[],d=o&&((i=e.animationState)===null||i===void 0?void 0:i.getState()[o]);for(const f in a){const y=e.getValue(f),g=a[f];if(!y||g===void 0||d&&R1(d,f))continue;let k={delay:n,...s};e.shouldReduceMotion&&Wn.has(f)&&(k={...k,type:!1,delay:0});let x=iu(f,y,g,k);vi(u)&&(u.add(f),x=x.then(()=>u.remove(f))),c.push(x)}return Promise.all(c).then(()=>{l&&E1(e,l)})}function V1(e,t,n=0,r=0,o=1,i){const s=[],l=(e.variantChildren.size-1)*r,a=o===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(D1).forEach((u,c)=>{s.push(Rl(u,t,{...i,delay:n+a(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(s)}function D1(e,t){return e.sortNodePosition(t)}function R1({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}const au=[j.Animate,j.InView,j.Focus,j.Hover,j.Tap,j.Drag,j.Exit],A1=[...au].reverse(),z1=au.length;function O1(e){return t=>Promise.all(t.map(({animation:n,options:r})=>L1(e,n,r)))}function F1(e){let t=O1(e);const n=I1();let r=!0;const o=(a,u)=>{const c=Wi(e,u);if(c){const{transition:d,transitionEnd:f,...y}=c;a={...a,...y,...f}}return a};function i(a){t=a(e)}function s(a,u){var c;const d=e.getProps(),f=e.getVariantContext(!0)||{},y=[],g=new Set;let k={},x=1/0;for(let p=0;px&&_;const ae=Array.isArray(w)?w:[w];let _e=ae.reduce(o,{});T===!1&&(_e={});const{prevResolvedValues:Ge={}}=v,ht={...Ge,..._e},mt=J=>{L=!0,g.delete(J),v.needsAnimating[J]=!0};for(const J in ht){const tt=_e[J],P=Ge[J];k.hasOwnProperty(J)||(tt!==P?Br(tt)&&Br(P)?!Fh(tt,P)||R?mt(J):v.protectedKeys[J]=!0:tt!==void 0?mt(J):g.add(J):tt!==void 0&&g.has(J)?mt(J):v.protectedKeys[J]=!0)}v.prevProp=w,v.prevResolvedValues=_e,v.isActive&&(k={...k,..._e}),r&&e.blockInitialAnimation&&(L=!1),L&&!b&&y.push(...ae.map(J=>({animation:J,options:{type:h,...a}})))}if(g.size){const p={};g.forEach(h=>{const v=e.getBaseTarget(h);v!==void 0&&(p[h]=v)}),y.push({animation:p})}let m=Boolean(y.length);return r&&d.initial===!1&&!e.manuallyAnimateOnMount&&(m=!1),r=!1,m?t(y):Promise.resolve()}function l(a,u,c){var d;if(n[a].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(y=>{var g;return(g=y.animationState)===null||g===void 0?void 0:g.setActive(a,u)}),n[a].isActive=u;const f=s(c,a);for(const y in n)n[y].protectedKeys={};return f}return{animateChanges:s,setActive:l,setAnimateFunction:i,getState:()=>n}}function j1(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Fh(t,e):!1}function Wt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function I1(){return{[j.Animate]:Wt(!0),[j.InView]:Wt(),[j.Hover]:Wt(),[j.Tap]:Wt(),[j.Drag]:Wt(),[j.Focus]:Wt(),[j.Exit]:Wt()}}const B1={animation:Pt(({visualElement:e,animate:t})=>{e.animationState||(e.animationState=F1(e)),Fi(t)&&M.exports.useEffect(()=>t.subscribe(e),[t])}),exit:Pt(e=>{const{custom:t,visualElement:n}=e,[r,o]=Oh(),i=M.exports.useContext(Oi);M.exports.useEffect(()=>{n.isPresent=r;const s=n.animationState&&n.animationState.setActive(j.Exit,!r,{custom:i&&i.custom||t});s&&!r&&s.then(o)},[r])})};class Hh{constructor(t,n,{transformPagePoint:r}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=Ps(this.lastMoveEventInfo,this.history),c=this.startEvent!==null,d=Fv(u.offset,{x:0,y:0})>=3;if(!c&&!d)return;const{point:f}=u,{timestamp:y}=mi();this.history.push({...f,timestamp:y});const{onStart:g,onMove:k}=this.handlers;c||(g&&g(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),k&&k(this.lastMoveEvent,u)},this.handlePointerMove=(u,c)=>{if(this.lastMoveEvent=u,this.lastMoveEventInfo=Ts(c,this.transformPagePoint),ah(u)&&u.buttons===0){this.handlePointerUp(u,c);return}We.update(this.updatePoint,!0)},this.handlePointerUp=(u,c)=>{this.end();const{onEnd:d,onSessionEnd:f}=this.handlers,y=Ps(Ts(c,this.transformPagePoint),this.history);this.startEvent&&d&&d(u,y),f&&f(u,y)},uh(t)&&t.touches.length>1)return;this.handlers=n,this.transformPagePoint=r;const o=Ya(t),i=Ts(o,this.transformPagePoint),{point:s}=i,{timestamp:l}=mi();this.history=[{...s,timestamp:l}];const{onSessionStart:a}=n;a&&a(t,Ps(i,this.history)),this.removeListeners=Bi(Ln(window,"pointermove",this.handlePointerMove),Ln(window,"pointerup",this.handlePointerUp),Ln(window,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Ot.update(this.updatePoint)}}function Ts(e,t){return t?{point:t(e.point)}:e}function Ic(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ps({point:e},t){return{point:e,delta:Ic(e,Wh(t)),offset:Ic(e,U1(t)),velocity:H1(t,.1)}}function U1(e){return e[0]}function Wh(e){return e[e.length-1]}function H1(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const o=Wh(e);for(;n>=0&&(r=e[n],!(o.timestamp-r.timestamp>gi(t)));)n--;if(!r)return{x:0,y:0};const i=(o.timestamp-r.timestamp)/1e3;if(i===0)return{x:0,y:0};const s={x:(o.x-r.x)/i,y:(o.y-r.y)/i};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function be(e){return e.max-e.min}function Al(e,t=0,n=.01){return Math.abs(e-t)<=n}function Bc(e,t,n,r=.5){e.origin=r,e.originPoint=Q(t.min,t.max,e.origin),e.scale=be(n)/be(t),(Al(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=Q(n.min,n.max,e.origin)-e.originPoint,(Al(e.translate)||isNaN(e.translate))&&(e.translate=0)}function vr(e,t,n,r){Bc(e.x,t.x,n.x,r==null?void 0:r.originX),Bc(e.y,t.y,n.y,r==null?void 0:r.originY)}function Uc(e,t,n){e.min=n.min+t.min,e.max=e.min+be(t)}function W1(e,t,n){Uc(e.x,t.x,n.x),Uc(e.y,t.y,n.y)}function Hc(e,t,n){e.min=t.min-n.min,e.max=e.min+be(t)}function kr(e,t,n){Hc(e.x,t.x,n.x),Hc(e.y,t.y,n.y)}function $1(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Q(n,e,r.max):Math.min(e,n)),e}function Wc(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function G1(e,{top:t,left:n,bottom:r,right:o}){return{x:Wc(e.x,n,o),y:Wc(e.y,t,r)}}function $c(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Ur(t.min,t.max-r,e.min):r>o&&(n=Ur(e.min,e.max-o,t.min)),pi(0,1,n)}function Y1(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const zl=.35;function X1(e=zl){return e===!1?e=0:e===!0&&(e=zl),{x:Gc(e,"left","right"),y:Gc(e,"top","bottom")}}function Gc(e,t,n){return{min:Kc(e,t),max:Kc(e,n)}}function Kc(e,t){var n;return typeof e=="number"?e:(n=e[t])!==null&&n!==void 0?n:0}const Qc=()=>({translate:0,scale:1,origin:0,originPoint:0}),wr=()=>({x:Qc(),y:Qc()}),Yc=()=>({min:0,max:0}),q=()=>({x:Yc(),y:Yc()});function Ye(e){return[e("x"),e("y")]}function $h({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Z1({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function J1(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Es(e){return e===void 0||e===1}function Ol({scale:e,scaleX:t,scaleY:n}){return!Es(e)||!Es(t)||!Es(n)}function Kt(e){return Ol(e)||Gh(e)||e.z||e.rotate||e.rotateX||e.rotateY}function Gh(e){return Xc(e.x)||Xc(e.y)}function Xc(e){return e&&e!=="0%"}function ki(e,t,n){const r=e-n,o=t*r;return n+o}function Zc(e,t,n,r,o){return o!==void 0&&(e=ki(e,o,r)),ki(e,n,r)+t}function Fl(e,t=0,n=1,r,o){e.min=Zc(e.min,t,n,r,o),e.max=Zc(e.max,t,n,r,o)}function Kh(e,{x:t,y:n}){Fl(e.x,t.translate,t.scale,t.originPoint),Fl(e.y,n.translate,n.scale,n.originPoint)}function q1(e,t,n,r=!1){var o,i;const s=n.length;if(!s)return;t.x=t.y=1;let l,a;for(let u=0;u1.0000000000001||e<.999999999999?e:1}function wt(e,t){e.min=e.min+t,e.max=e.max+t}function qc(e,t,[n,r,o]){const i=t[o]!==void 0?t[o]:.5,s=Q(e.min,e.max,i);Fl(e,t[n],t[r],s,t.scale)}const e2=["x","scaleX","originX"],t2=["y","scaleY","originY"];function Cn(e,t){qc(e.x,t,e2),qc(e.y,t,t2)}function Qh(e,t){return $h(J1(e.getBoundingClientRect(),t))}function n2(e,t,n){const r=Qh(e,n),{scroll:o}=t;return o&&(wt(r.x,o.offset.x),wt(r.y,o.offset.y)),r}const r2=new WeakMap;class o2{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=q(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){if(this.visualElement.isPresent===!1)return;const r=l=>{this.stopAnimation(),n&&this.snapToCursor(Ya(l,"page").point)},o=(l,a)=>{var u;const{drag:c,dragPropagation:d,onDragStart:f}=this.getProps();c&&!d&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=ph(c),!this.openGlobalLock)||(this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ye(y=>{var g,k;let x=this.getAxisMotionValue(y).get()||0;if(qe.test(x)){const m=(k=(g=this.visualElement.projection)===null||g===void 0?void 0:g.layout)===null||k===void 0?void 0:k.layoutBox[y];m&&(x=be(m)*(parseFloat(x)/100))}this.originPoint[y]=x}),f==null||f(l,a),(u=this.visualElement.animationState)===null||u===void 0||u.setActive(j.Drag,!0))},i=(l,a)=>{const{dragPropagation:u,dragDirectionLock:c,onDirectionLock:d,onDrag:f}=this.getProps();if(!u&&!this.openGlobalLock)return;const{offset:y}=a;if(c&&this.currentDirection===null){this.currentDirection=i2(y),this.currentDirection!==null&&(d==null||d(this.currentDirection));return}this.updateAxis("x",a.point,y),this.updateAxis("y",a.point,y),this.visualElement.render(),f==null||f(l,a)},s=(l,a)=>this.stop(l,a);this.panSession=new Hh(t,{onSessionStart:r,onStart:o,onMove:i,onSessionEnd:s},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:o}=n;this.startAnimation(o);const{onDragEnd:i}=this.getProps();i==null||i(t,n)}cancel(){var t,n;this.isDragging=!1,this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!1),(t=this.panSession)===null||t===void 0||t.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),(n=this.visualElement.animationState)===null||n===void 0||n.setActive(j.Drag,!1)}updateAxis(t,n,r){const{drag:o}=this.getProps();if(!r||!xo(t,o,this.currentDirection))return;const i=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=$1(s,this.constraints[t],this.elastic[t])),i.set(s)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),{layout:r}=this.visualElement.projection||{},o=this.constraints;t&&_n(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=G1(r.layoutBox,t):this.constraints=!1,this.elastic=X1(n),o!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Ye(i=>{this.getAxisMotionValue(i)&&(this.constraints[i]=Y1(r.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!_n(t))return!1;const r=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const i=n2(r,o.root,this.visualElement.getTransformPagePoint());let s=K1(o.layout.layoutBox,i);if(n){const l=n(Z1(s));this.hasMutatedConstraints=!!l,l&&(s=$h(l))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:o,dragTransition:i,dragSnapToOrigin:s,onDragTransitionEnd:l}=this.getProps(),a=this.constraints||{},u=Ye(c=>{var d;if(!xo(c,n,this.currentDirection))return;let f=(d=a==null?void 0:a[c])!==null&&d!==void 0?d:{};s&&(f={min:0,max:0});const y=o?200:1e6,g=o?40:1e7,k={type:"inertia",velocity:r?t[c]:0,bounceStiffness:y,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(c,k)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return iu(t,r,0,n)}stopAnimation(){Ye(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){var n,r;const o="_drag"+t.toUpperCase(),i=this.visualElement.getProps()[o];return i||this.visualElement.getValue(t,(r=(n=this.visualElement.getProps().initial)===null||n===void 0?void 0:n[t])!==null&&r!==void 0?r:0)}snapToCursor(t){Ye(n=>{const{drag:r}=this.getProps();if(!xo(n,r,this.currentDirection))return;const{projection:o}=this.visualElement,i=this.getAxisMotionValue(n);if(o&&o.layout){const{min:s,max:l}=o.layout.layoutBox[n];i.set(t[n]-Q(s,l,.5))}})}scalePositionWithinConstraints(){var t;if(!this.visualElement.current)return;const{drag:n,dragConstraints:r}=this.getProps(),{projection:o}=this.visualElement;if(!_n(r)||!o||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Ye(l=>{const a=this.getAxisMotionValue(l);if(a){const u=a.get();i[l]=Q1({min:u,max:u},this.constraints[l])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",(t=o.root)===null||t===void 0||t.updateScroll(),o.updateLayout(),this.resolveConstraints(),Ye(l=>{if(!xo(l,n,null))return;const a=this.getAxisMotionValue(l),{min:u,max:c}=this.constraints[l];a.set(Q(u,c,i[l]))})}addListeners(){var t;if(!this.visualElement.current)return;r2.set(this.visualElement,this);const n=this.visualElement.current,r=Ln(n,"pointerdown",u=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(u)}),o=()=>{const{dragConstraints:u}=this.getProps();_n(u)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",o);i&&!i.layout&&((t=i.root)===null||t===void 0||t.updateScroll(),i.updateLayout()),o();const l=Ii(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:u,hasLayoutChanged:c})=>{this.isDragging&&c&&(Ye(d=>{const f=this.getAxisMotionValue(d);!f||(this.originPoint[d]+=u[d].translate,f.set(f.get()+u[d].translate))}),this.visualElement.render())});return()=>{l(),r(),s(),a==null||a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:o=!1,dragConstraints:i=!1,dragElastic:s=zl,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:o,dragConstraints:i,dragElastic:s,dragMomentum:l}}}function xo(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function i2(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}function s2(e){const{dragControls:t,visualElement:n}=e,r=Ba(()=>new o2(n));M.exports.useEffect(()=>t&&t.subscribe(r),[r,t]),M.exports.useEffect(()=>r.addListeners(),[r])}function l2({onPan:e,onPanStart:t,onPanEnd:n,onPanSessionStart:r,visualElement:o}){const i=e||t||n||r,s=M.exports.useRef(null),{transformPagePoint:l}=M.exports.useContext(Ia),a={onSessionStart:r,onStart:t,onMove:e,onEnd:(c,d)=>{s.current=null,n&&n(c,d)}};M.exports.useEffect(()=>{s.current!==null&&s.current.updateHandlers(a)});function u(c){s.current=new Hh(c,a,{transformPagePoint:l})}di(o,"pointerdown",i&&u),yh(()=>s.current&&s.current.end())}const a2={pan:Pt(l2),drag:Pt(s2)};function jl(e){return typeof e=="string"&&e.startsWith("var(--")}const Yh=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function u2(e){const t=Yh.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function Il(e,t,n=1){const[r,o]=u2(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);return i?i.trim():jl(o)?Il(o,t,n+1):o}function c2(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(o=>{const i=o.get();if(!jl(i))return;const s=Il(i,r);s&&o.set(s)});for(const o in t){const i=t[o];if(!jl(i))continue;const s=Il(i,r);!s||(t[o]=s,n&&n[o]===void 0&&(n[o]=i))}return{target:t,transitionEnd:n}}const d2=new Set(["width","height","top","left","right","bottom","x","y"]),Xh=e=>d2.has(e),f2=e=>Object.keys(e).some(Xh),Zh=(e,t)=>{e.set(t,!1),e.set(t)},ed=e=>e===un||e===N;var td;(function(e){e.width="width",e.height="height",e.left="left",e.right="right",e.top="top",e.bottom="bottom"})(td||(td={}));const nd=(e,t)=>parseFloat(e.split(", ")[t]),rd=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const o=r.match(/^matrix3d\((.+)\)$/);if(o)return nd(o[1],t);{const i=r.match(/^matrix\((.+)\)$/);return i?nd(i[1],e):0}},p2=new Set(["x","y","z"]),h2=ui.filter(e=>!p2.has(e));function m2(e){const t=[];return h2.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const od={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rd(4,13),y:rd(5,14)},y2=(e,t,n)=>{const r=t.measureViewportBox(),o=t.current,i=getComputedStyle(o),{display:s}=i,l={};s==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{l[u]=od[u](r,i)}),t.render();const a=t.measureViewportBox();return n.forEach(u=>{const c=t.getValue(u);Zh(c,l[u]),e[u]=od[u](a,i)}),e},g2=(e,t,n={},r={})=>{t={...t},r={...r};const o=Object.keys(t).filter(Xh);let i=[],s=!1;const l=[];if(o.forEach(a=>{const u=e.getValue(a);if(!e.hasValue(a))return;let c=n[a],d=qn(c);const f=t[a];let y;if(Br(f)){const g=f.length,k=f[0]===null?1:0;c=f[k],d=qn(c);for(let x=k;x=0?window.pageYOffset:null,u=y2(t,e,l);return i.length&&i.forEach(([c,d])=>{e.getValue(c).set(d)}),e.render(),an&&a!==null&&window.scrollTo({top:a}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function v2(e,t,n,r){return f2(t)?g2(e,t,n,r):{target:t,transitionEnd:r}}const k2=(e,t,n,r)=>{const o=c2(e,t,r);return t=o.target,r=o.transitionEnd,v2(e,t,n,r)},Bl={current:null},Jh={current:!1};function w2(){if(Jh.current=!0,!!an)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Bl.current=e.matches;e.addListener(t),t()}else Bl.current=!1}function S2(e,t,n){const{willChange:r}=t;for(const o in t){const i=t[o],s=n[o];if(et(i))e.addValue(o,i),vi(r)&&r.add(o);else if(et(s))e.addValue(o,In(i)),vi(r)&&r.remove(o);else if(s!==i)if(e.hasValue(o)){const l=e.getValue(o);!l.hasAnimated&&l.set(i)}else{const l=e.getStaticValue(o);e.addValue(o,In(l!==void 0?l:i))}}for(const o in n)t[o]===void 0&&e.removeValue(o);return t}const qh=Object.keys(jr),x2=qh.length,id=["AnimationStart","AnimationComplete","Update","Unmount","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class _2{constructor({parent:t,props:n,reducedMotionConfig:r,visualState:o},i={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.isPresent=!0,this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{!this.current||(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>We.render(this.render,!1,!0);const{latestValues:s,renderState:l}=o;this.latestValues=s,this.baseTarget={...s},this.initialValues=n.initial?{...s}:{},this.renderState=l,this.parent=t,this.props=n,this.depth=t?t.depth+1:0,this.reducedMotionConfig=r,this.options=i,this.isControllingVariants=ji(n),this.isVariantNode=jp(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(t&&t.current);const{willChange:a,...u}=this.scrapeMotionValuesFromProps(n);for(const c in u){const d=u[c];s[c]!==void 0&&et(d)&&(d.set(s[c],!1),vi(a)&&a.add(c))}}scrapeMotionValuesFromProps(t){return{}}mount(t){var n;this.current=t,this.projection&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=(n=this.parent)===null||n===void 0?void 0:n.addVariantChild(this)),this.values.forEach((r,o)=>this.bindToMotionValue(o,r)),Jh.current||w2(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Bl.current,this.parent&&this.parent.children.add(this),this.setProps(this.props)}unmount(){var t,n,r;(t=this.projection)===null||t===void 0||t.unmount(),Ot.update(this.notifyUpdate),Ot.render(this.render),this.valueSubscriptions.forEach(o=>o()),(n=this.removeFromVariantTree)===null||n===void 0||n.call(this),(r=this.parent)===null||r===void 0||r.children.delete(this);for(const o in this.events)this.events[o].clear();this.current=null}bindToMotionValue(t,n){const r=Wn.has(t),o=n.onChange(s=>{this.latestValues[t]=s,this.props.onUpdate&&We.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.onRenderRequest(this.scheduleRender);this.valueSubscriptions.set(t,()=>{o(),i()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures(t,n,r,o,i,s){const l=[];for(let a=0;athis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:s,layoutScroll:f})}return l}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):q()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}setProps(t){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.props=t;for(let n=0;nr.variantChildren.delete(t)}addValue(t,n){this.hasValue(t)&&this.removeValue(t),this.values.set(t,n),this.latestValues[t]=n.get(),this.bindToMotionValue(t,n)}removeValue(t){var n;this.values.delete(t),(n=this.valueSubscriptions.get(t))===null||n===void 0||n(),this.valueSubscriptions.delete(t),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=In(n),this.addValue(t,r)),r}readValue(t){return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,o=typeof r=="string"||typeof r=="object"?(n=Qa(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&o!==void 0)return o;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!et(i)?i:this.initialValues[t]!==void 0&&o===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new gr),this.events[t].add(n)}notify(t,...n){var r;(r=this.events[t])===null||r===void 0||r.notify(...n)}}const em=["initial",...au],C2=em.length;class tm extends _2{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){var r;return(r=t.style)===null||r===void 0?void 0:r[n]}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:o},i){let s=N1(r,t||{},this);if(o&&(n&&(n=o(n)),r&&(r=o(r)),s&&(s=o(s))),i){b1(this,r,s);const l=k2(this,r,s,n);n=l.transitionEnd,r=l.target}return{transition:t,transitionEnd:n,...r}}}function T2(e){return window.getComputedStyle(e)}class P2 extends tm{readValueFromInstance(t,n){if(Wn.has(n)){const r=nu(n);return r&&r.default||0}else{const r=T2(t),o=(Hp(n)?r.getPropertyValue(n):r[n])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Qh(t,n)}build(t,n,r,o){Wa(t,n,r,o.transformTemplate)}scrapeMotionValuesFromProps(t){return Ka(t)}renderInstance(t,n,r,o){nh(t,n,r,o)}}class E2 extends tm{getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){var r;return Wn.has(n)?((r=nu(n))===null||r===void 0?void 0:r.default)||0:(n=rh.has(n)?n:th(n),t.getAttribute(n))}measureInstanceViewportBox(){return q()}scrapeMotionValuesFromProps(t){return ih(t)}build(t,n,r,o){Ga(t,n,r,o.transformTemplate)}renderInstance(t,n,r,o){oh(t,n,r,o)}}const b2=(e,t)=>Ua(e)?new E2(t,{enableHardwareAcceleration:!1}):new P2(t,{enableHardwareAcceleration:!0});function sd(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const er={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(N.test(e))e=parseFloat(e);else return e;const n=sd(e,t.target.x),r=sd(e,t.target.y);return`${n}% ${r}%`}},ld="_$css",M2={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,o=e.includes("var("),i=[];o&&(e=e.replace(Yh,y=>(i.push(y),ld)));const s=ft.parse(e);if(s.length>5)return r;const l=ft.createTransformer(e),a=typeof s[0]!="number"?1:0,u=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=u,s[1+a]/=c;const d=Q(u,c,.5);typeof s[2+a]=="number"&&(s[2+a]/=d),typeof s[3+a]=="number"&&(s[3+a]/=d);let f=l(s);if(o){let y=0;f=f.replace(ld,()=>{const g=i[y];return y++,g})}return f}};class N2 extends Ql.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:o}=this.props,{projection:i}=t;Yy(V2),i&&(n.group&&n.group.add(i),r&&r.register&&o&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),hr.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:o,isPresent:i}=this.props,s=r.projection;return s&&(s.isPresent=i,o||t.layoutDependency!==n||n===void 0?s.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?s.promote():s.relegate()||We.postRender(()=>{var l;!((l=s.getStack())===null||l===void 0)&&l.members.length||this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),!t.currentAnimation&&t.isLead()&&this.safeToRemove())}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:o}=t;o&&(o.scheduleCheckAfterUnmount(),n!=null&&n.group&&n.group.remove(o),r!=null&&r.deregister&&r.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t==null||t()}render(){return null}}function L2(e){const[t,n]=Oh(),r=M.exports.useContext(Ip);return C(N2,{...e,layoutGroup:r,switchLayoutGroup:M.exports.useContext(Bp),isPresent:t,safeToRemove:n})}const V2={borderRadius:{...er,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:er,borderTopRightRadius:er,borderBottomLeftRadius:er,borderBottomRightRadius:er,boxShadow:M2},D2={measureLayout:L2};function R2(e,t,n={}){const r=et(e)?e:In(e);return iu("",r,t,n),{stop:()=>r.stop(),isAnimating:()=>r.isAnimating()}}const nm=["TopLeft","TopRight","BottomLeft","BottomRight"],A2=nm.length,ad=e=>typeof e=="string"?parseFloat(e):e,ud=e=>typeof e=="number"||N.test(e);function z2(e,t,n,r,o,i){var s,l,a,u;o?(e.opacity=Q(0,(s=n.opacity)!==null&&s!==void 0?s:1,O2(r)),e.opacityExit=Q((l=t.opacity)!==null&&l!==void 0?l:1,0,F2(r))):i&&(e.opacity=Q((a=t.opacity)!==null&&a!==void 0?a:1,(u=n.opacity)!==null&&u!==void 0?u:1,r));for(let c=0;crt?1:n(Ur(e,t,r))}function dd(e,t){e.min=t.min,e.max=t.max}function Fe(e,t){dd(e.x,t.x),dd(e.y,t.y)}function fd(e,t,n,r,o){return e-=t,e=ki(e,1/n,r),o!==void 0&&(e=ki(e,1/o,r)),e}function j2(e,t=0,n=1,r=.5,o,i=e,s=e){if(qe.test(t)&&(t=parseFloat(t),t=Q(s.min,s.max,t/100)-s.min),typeof t!="number")return;let l=Q(i.min,i.max,r);e===i&&(l-=t),e.min=fd(e.min,t,n,l,o),e.max=fd(e.max,t,n,l,o)}function pd(e,t,[n,r,o],i,s){j2(e,t[n],t[r],t[o],t.scale,i,s)}const I2=["x","scaleX","originX"],B2=["y","scaleY","originY"];function hd(e,t,n,r){pd(e.x,t,I2,n==null?void 0:n.x,r==null?void 0:r.x),pd(e.y,t,B2,n==null?void 0:n.y,r==null?void 0:r.y)}function md(e){return e.translate===0&&e.scale===1}function om(e){return md(e.x)&&md(e.y)}function im(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function yd(e){return be(e.x)/be(e.y)}class U2{constructor(){this.members=[]}add(t){su(this.members,t),t.scheduleRender()}remove(t){if(lu(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(o=>t===o);if(n===0)return!1;let r;for(let o=n;o>=0;o--){const i=this.members[o];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){var r;const o=this.lead;if(t!==o&&(this.prevLead=o,this.lead=t,t.show(),o)){o.instance&&o.scheduleRender(),t.scheduleRender(),t.resumeFrom=o,n&&(t.resumeFrom.preserveOpacity=!0),o.snapshot&&(t.snapshot=o.snapshot,t.snapshot.latestValues=o.animationValues||o.latestValues),!((r=t.root)===null||r===void 0)&&r.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(t=>{var n,r,o,i,s;(r=(n=t.options).onExitComplete)===null||r===void 0||r.call(n),(s=(o=t.resumingFrom)===null||o===void 0?void 0:(i=o.options).onExitComplete)===null||s===void 0||s.call(i)})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function gd(e,t,n){let r="";const o=e.x.translate/t.x,i=e.y.translate/t.y;if((o||i)&&(r=`translate3d(${o}px, ${i}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:a,rotateX:u,rotateY:c}=n;a&&(r+=`rotate(${a}deg) `),u&&(r+=`rotateX(${u}deg) `),c&&(r+=`rotateY(${c}deg) `)}const s=e.x.scale*t.x,l=e.y.scale*t.y;return(s!==1||l!==1)&&(r+=`scale(${s}, ${l})`),r||"none"}const H2=(e,t)=>e.depth-t.depth;class W2{constructor(){this.children=[],this.isDirty=!1}add(t){su(this.children,t),this.isDirty=!0}remove(t){lu(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(H2),this.isDirty=!1,this.children.forEach(t)}}const vd=["","X","Y","Z"],kd=1e3;let $2=0;function sm({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:o}){return class{constructor(s,l={},a=t==null?void 0:t()){this.id=$2++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isTransformDirty=!1,this.isProjectionDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.nodes.forEach(Q2),this.nodes.forEach(Z2),this.nodes.forEach(J2)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.elementId=s,this.latestValues=l,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0,s&&this.root.registerPotentialNode(s,this);for(let u=0;uthis.root.updateBlockedByResize=!1;e(s,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=jh(y,250),hr.hasAnimatedSinceResize&&(hr.hasAnimatedSinceResize=!1,this.nodes.forEach(Sd))})}u&&this.root.registerSharedNode(u,this),this.options.animate!==!1&&d&&(u||c)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:y,hasRelativeTargetChanged:g,layout:k})=>{var x,m,p,h,v;if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=(m=(x=this.options.transition)!==null&&x!==void 0?x:d.getDefaultTransition())!==null&&m!==void 0?m:rk,{onLayoutAnimationStart:_,onLayoutAnimationComplete:T}=d.getProps(),b=!this.targetLayout||!im(this.targetLayout,k)||g,R=!y&&g;if(((p=this.resumeFrom)===null||p===void 0?void 0:p.instance)||R||y&&(b||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,R);const L={...ou(w,"layout"),onPlay:_,onComplete:T};d.shouldReduceMotion&&(L.delay=0,L.type=!1),this.startAnimation(L)}else!y&&this.animationProgress===0&&Sd(this),this.isLead()&&((v=(h=this.options).onExitComplete)===null||v===void 0||v.call(h));this.targetLayout=k})}unmount(){var s,l;this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this),(s=this.getStack())===null||s===void 0||s.remove(this),(l=this.parent)===null||l===void 0||l.children.delete(this),this.instance=void 0,Ot.preRender(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){var s;return this.isAnimationBlocked||((s=this.parent)===null||s===void 0?void 0:s.isTreeAnimationBlocked())||!1}startUpdate(){var s;this.isUpdateBlocked()||(this.isUpdating=!0,(s=this.nodes)===null||s===void 0||s.forEach(q2),this.animationId++)}willUpdate(s=!0){var l,a,u;if(this.root.isUpdateBlocked()){(a=(l=this.options).onExitComplete)===null||a===void 0||a.call(l);return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let y=0;y{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){var s;if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a{var h;const v=p/1e3;xd(y.x,s.x,v),xd(y.y,s.y,v),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&((h=this.relativeParent)===null||h===void 0?void 0:h.layout)&&(kr(g,this.layout.layoutBox,this.relativeParent.layout.layoutBox),tk(this.relativeTarget,this.relativeTargetOrigin,g,v)),k&&(this.animationValues=f,z2(f,d,this.latestValues,v,m,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=v},this.mixTargetDelta(0)}startAnimation(s){var l,a;this.notifyListeners("animationStart"),(l=this.currentAnimation)===null||l===void 0||l.stop(),this.resumingFrom&&((a=this.resumingFrom.currentAnimation)===null||a===void 0||a.stop()),this.pendingAnimation&&(Ot.update(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=We.update(()=>{hr.hasAnimatedSinceResize=!0,this.currentAnimation=R2(0,kd,{...s,onUpdate:u=>{var c;this.mixTargetDelta(u),(c=s.onUpdate)===null||c===void 0||c.call(s,u)},onComplete:()=>{var u;(u=s.onComplete)===null||u===void 0||u.call(s),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){var s;this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0),(s=this.getStack())===null||s===void 0||s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){var s;this.currentAnimation&&((s=this.mixTargetDelta)===null||s===void 0||s.call(this,kd),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:l,target:a,layout:u,latestValues:c}=s;if(!(!l||!a||!u)){if(this!==s&&this.layout&&u&&lm(this.options.animationType,this.layout.layoutBox,u.layoutBox)){a=this.target||q();const d=be(this.layout.layoutBox.x);a.x.min=s.target.x.min,a.x.max=a.x.min+d;const f=be(this.layout.layoutBox.y);a.y.min=s.target.y.min,a.y.max=a.y.min+f}Fe(l,a),Cn(l,c),vr(this.projectionDeltaWithTransform,this.layoutCorrected,l,c)}}registerSharedNode(s,l){var a,u,c;this.sharedNodes.has(s)||this.sharedNodes.set(s,new U2),this.sharedNodes.get(s).add(l),l.promote({transition:(a=l.options.initialPromotionConfig)===null||a===void 0?void 0:a.transition,preserveFollowOpacity:(c=(u=l.options.initialPromotionConfig)===null||u===void 0?void 0:u.shouldPreserveFollowOpacity)===null||c===void 0?void 0:c.call(u,l)})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var s;const{layoutId:l}=this.options;return l?((s=this.getStack())===null||s===void 0?void 0:s.lead)||this:this}getPrevLead(){var s;const{layoutId:l}=this.options;return l?(s=this.getStack())===null||s===void 0?void 0:s.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:l,preserveFollowOpacity:a}={}){const u=this.getStack();u&&u.promote(this,a),s&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetRotation(){const{visualElement:s}=this.options;if(!s)return;let l=!1;const{latestValues:a}=s;if((a.rotate||a.rotateX||a.rotateY||a.rotateZ)&&(l=!0),!l)return;const u={};for(let c=0;c{var l;return(l=s.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(wd),this.root.sharedNodes.clear()}}}function G2(e){e.updateLayout()}function K2(e){var t,n,r;const o=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&o&&e.hasListeners("didUpdate")){const{layoutBox:i,measuredBox:s}=e.layout,{animationType:l}=e.options,a=o.source!==e.layout.source;l==="size"?Ye(y=>{const g=a?o.measuredBox[y]:o.layoutBox[y],k=be(g);g.min=i[y].min,g.max=g.min+k}):lm(l,o.layoutBox,i)&&Ye(y=>{const g=a?o.measuredBox[y]:o.layoutBox[y],k=be(i[y]);g.max=g.min+k});const u=wr();vr(u,i,o.layoutBox);const c=wr();a?vr(c,e.applyTransform(s,!0),o.measuredBox):vr(c,i,o.layoutBox);const d=!om(u);let f=!1;if(!e.resumeFrom){const y=e.getClosestProjectingParent();if(y&&!y.resumeFrom){const{snapshot:g,layout:k}=y;if(g&&k){const x=q();kr(x,o.layoutBox,g.layoutBox);const m=q();kr(m,i,k.layoutBox),im(x,m)||(f=!0)}}}e.notifyListeners("didUpdate",{layout:i,snapshot:o,delta:c,layoutDelta:u,hasLayoutChanged:d,hasRelativeTargetChanged:f})}else e.isLead()&&((r=(n=e.options).onExitComplete)===null||r===void 0||r.call(n));e.options.transition=void 0}function Q2(e){e.isProjectionDirty||(e.isProjectionDirty=Boolean(e.parent&&e.parent.isProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=Boolean(e.parent&&e.parent.isTransformDirty))}function Y2(e){e.clearSnapshot()}function wd(e){e.clearMeasurements()}function X2(e){const{visualElement:t}=e.options;t!=null&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Sd(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0}function Z2(e){e.resolveTargetDelta()}function J2(e){e.calcProjection()}function q2(e){e.resetRotation()}function ek(e){e.removeLeadSnapshot()}function xd(e,t,n){e.translate=Q(t.translate,0,n),e.scale=Q(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function _d(e,t,n,r){e.min=Q(t.min,n.min,r),e.max=Q(t.max,n.max,r)}function tk(e,t,n,r){_d(e.x,t.x,n.x,r),_d(e.y,t.y,n.y,r)}function nk(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const rk={duration:.45,ease:[.4,0,.1,1]};function ok(e,t){let n=e.root;for(let i=e.path.length-1;i>=0;i--)if(Boolean(e.path[i].instance)){n=e.path[i];break}const o=(n&&n!==e.root?n.instance:document).querySelector(`[data-projection-id="${t}"]`);o&&e.mount(o,!0)}function Cd(e){e.min=Math.round(e.min),e.max=Math.round(e.max)}function ik(e){Cd(e.x),Cd(e.y)}function lm(e,t,n){return e==="position"||e==="preserve-aspect"&&!Al(yd(t),yd(n),.2)}const sk=sm({attachResizeListener:(e,t)=>Ii(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bs={current:void 0},lk=sm({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bs.current){const e=new sk(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),bs.current=e}return bs.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>Boolean(window.getComputedStyle(e).position==="fixed")}),ak={...B1,...o1,...a2,...D2},uk=Ky((e,t)=>Vg(e,t,ak,b2,lk));function ck({albums:e,onClickFilter:t}){return C("div",{className:"album-grid",children:e.map(n=>C(uk.div,{layout:!0,className:"album-card-wrapper",children:C(Dy,{album:n,onClickFilter:t})},n.title))})}const Ms=[{title:"Aja",artist:"Steely Dan",year:"1977",descriptors:["jazzy","funky","breezy"],tracks:["Black Cow","Home at Last"],album_url:"https://open.spotify.com/album/5Zxv8bCtxjz11jjypNdkEa",image_url:"https://i.scdn.co/image/ab67616d0000b273e5dd0952c693529017743e39",date_added:"2020-02-24"},{title:"Rubber Soul",artist:"The Beatles",year:"1965",descriptors:["folk","rock","groovy"],tracks:["You Won't See Me","The Word"],album_url:"https://open.spotify.com/album/50o7kf2wLwVmOTVYJOTplm",image_url:"https://i.scdn.co/image/ab67616d0000b273ed801e58a9ababdea6ac7ce4",date_added:"2020-02-25"},{title:"Time",artist:"Louis Cole",year:"2018",descriptors:["funky","jazzy","groovy"],tracks:["Weird Part of the Night","Things"],album_url:"https://open.spotify.com/album/2p8VeG5r2aadenxHViCibr",image_url:"https://i.scdn.co/image/ab67616d0000b2730f670bf8867870b2557d84eb",date_added:"2020-02-26"},{title:"Geography",artist:"Tom Misch",year:"2018",descriptors:["funky","soulful","groovy"],tracks:["It Runs Through Me","Disco Yes"],album_url:"https://open.spotify.com/album/0hDnsNkxpMDZrpBlGjldtW",image_url:"https://i.scdn.co/image/ab67616d0000b273abe203531eac29d17260966f",date_added:"2020-02-27"},{title:"The Low End Theory",artist:"A Tribe Called Quest",year:"1991",descriptors:["hip hop","jazzy","funky"],tracks:["Butter","Jazz (We've Got)"],album_url:"https://open.spotify.com/album/1p12OAWwudgMqfMzjMvl2a",image_url:"https://i.scdn.co/image/ab67616d0000b273f38c6b37a21334e22005b1f7",date_added:"2020-02-28"},{title:"Origin",artist:"Jordan Rakei",year:"2019",descriptors:["soulful","groovy","funky"],tracks:["Rolling into One","You & Me"],album_url:"https://open.spotify.com/album/6vlatUhYlcoUkMfNIvmtLE",image_url:"https://i.scdn.co/image/ab67616d0000b273c7c5ade66c94fe02018deaa8",date_added:"2020-02-28"},{title:"Sgt. Pepper's Lonely Hearts Club Band",artist:"The Beatles",year:"1967",descriptors:["rock","psychedelic","eclectic"],tracks:["Getting Better","When I'm Sixty Four"],album_url:"https://open.spotify.com/album/6QaVfG1pHYl1z15ZxkvVDW",image_url:"https://i.scdn.co/image/ab67616d0000b27334ef8f7d06cf2fc2146f420a",date_added:"2020-03-01"},{title:"The Beautiful Game",artist:"Vulfpeck",year:"2016",descriptors:["funky","disco","poppy"],tracks:["Animal Spirits","1 for 1, DiMaggio"],album_url:"https://open.spotify.com/album/7sRNEe2FCkTYhrEimChdkC",image_url:"https://i.scdn.co/image/ab67616d0000b273fc6e5f2e6a7dd1ce3e83a897",date_added:"2020-03-03"},{title:"Little Ghost",artist:"Moonchild",year:"2019",descriptors:["neo soul","jazzy","groovy"],tracks:["Wise Women","Money"],album_url:"https://open.spotify.com/album/1X9OLhwnm7q3WK7DTL32hz",image_url:"https://i.scdn.co/image/ab67616d0000b2733112ee1d011c1765ec281f87",date_added:"2020-03-03"},{title:"The Royal Scam",artist:"Steely Dan",year:"1976",descriptors:["jazzy","rock","funky"],tracks:["The Fez","Green Earrings"],album_url:"https://open.spotify.com/album/1Sur33x6g7tvdd9GQnHhhu",image_url:"https://i.scdn.co/image/ab67616d0000b2736ac9fc028a8ba4c13b34a784",date_added:"2020-03-07"},{title:"Drunk",artist:"Thundercat",year:"2017",descriptors:["funky","jazzy","psychedelic"],tracks:["Tokyo","Friend Zone"],album_url:"https://open.spotify.com/album/7vHBQDqwzB7uDvoE5bncMM",image_url:"https://i.scdn.co/image/ab67616d0000b27385c5e6c686ced3e43bae2748",date_added:"2020-03-07"},{title:"Ventura",artist:"Anderson .Paak",year:"2019",descriptors:["R&B","hip hop","funky"],tracks:["Winners Circle","King James"],album_url:"https://open.spotify.com/album/0YF8PfcGbsKg5IaFyPnlyY",image_url:"https://i.scdn.co/image/ab67616d0000b2733d5b8fe604275dfab677bd0d",date_added:"2020-03-08"},{title:"<|\xBA_\xBA|>",artist:"Caravan Palace",year:"2015",descriptors:["electroswing","jazzy","groovy"],tracks:["Wonderland","Russian"],album_url:"https://open.spotify.com/album/4DrZfbV5FB2Hwzpq6rwArp",image_url:"https://i.scdn.co/image/ab67616d0000b273d260ec7b7ace5ca6bd69c86a",date_added:"2020-03-11"},{title:"Kind of Blue",artist:"Miles Davis",year:"1959",descriptors:["jazz","soulful","mellow"],tracks:["So What","All Blues"],album_url:"https://open.spotify.com/album/4sb0eMpDn3upAFfyi4q2rw",image_url:"https://i.scdn.co/image/ab67616d0000b2730ebc17239b6b18ba88cfb8ca",date_added:"2020-03-12"},{title:"Bonito Generation",artist:"Kero Kero Bonito",year:"2016",descriptors:["groovy","bouncy","poppy"],tracks:["Try Me","Trampoline"],album_url:"https://open.spotify.com/album/5vDVFuzV8aAIymXSkpyJoe",image_url:"https://i.scdn.co/image/ab67616d0000b273d1d67dd51d64db70f4b5636a",date_added:"2020-03-19"},{title:"Sylva",artist:"Snarky Puppy & Metropole Orkest",year:"2015",descriptors:["jazzy","orchestral","epic"],tracks:["Flight","Atchafalaya"],album_url:"https://open.spotify.com/album/5hptBuBwjb6Z11tV5bM9Oa",image_url:"https://i.scdn.co/image/ab67616d0000b273d191b3bcffb6d342838b48f1",date_added:"2020-03-21"},{title:"Voodoo",artist:"D'Angelo",year:"2000",descriptors:["neo soul","stanky","funky"],tracks:["Chicken Grease","The Root"],album_url:"https://open.spotify.com/album/2lO9yuuIDgBpSJzxTh3ai8",image_url:"https://i.scdn.co/image/ab67616d0000b2732b3dc336a7a69293c25d9ade",date_added:"2020-03-28"},{title:"Head Hunters",artist:"Herbie Hancock",year:"1973",descriptors:["jazz","funky","groovy"],tracks:["Watermelon Man","Sly"],album_url:"https://open.spotify.com/album/5fmIolILp5NAtNYiRPjhzA",image_url:"https://i.scdn.co/image/ab67616d0000b2736b75d57d2d070c0c4afb3f9a",date_added:"2020-03-29"},{title:"Scratch & Sniff",artist:"Jazz Spastiks",year:"2017",descriptors:["sampledelia","jazzy","hip hop"],tracks:["Bananas (Unzip a Banana)","Bubblegum (Bubble, Bubble, Bubble, Bubble, Pop)"],album_url:"https://open.spotify.com/album/18iKwIbXxwkaHoa6b4WVOs",image_url:"https://i.scdn.co/image/ab67616d0000b2737937f3acc7e610f6fa0704c8",date_added:"2020-04-01"},{title:"Innervisions",artist:"Stevie Wonder",year:"1973",descriptors:["funky","jazzy","soulful"],tracks:["Too High","Don't You Worry 'Bout A Thing"],album_url:"https://open.spotify.com/album/5jgI8Eminx9MmLBontDWq8",image_url:"https://i.scdn.co/image/ab67616d0000b273ea8ab1a548312b79ac955266",date_added:"2020-04-02"},{title:"Look Sharp!",artist:"Joe Jackson",year:"1979",descriptors:["rock","punk","funky"],tracks:["Sunday Papers","Look Sharp!"],album_url:"https://open.spotify.com/album/6Bt6KjNfoCp6UbYVFGH4FH",image_url:"https://i.scdn.co/image/ab67616d0000b2735f40be7506754451d1e61e16",date_added:"2020-04-02"},{title:"The Nightfly",artist:"Donald Fagen",year:"1982",descriptors:["jazzy","breezy","funky"],tracks:["Green Flower Street","New Frontier"],album_url:"https://open.spotify.com/album/5cOS6szqlcoqmiSoVTqqe8",image_url:"https://i.scdn.co/image/ab67616d0000b2739c3be4e1c786475f9489529f",date_added:"2020-04-03"},{title:"Djesse Vol.\xA02",artist:"Jacob Collier",year:"2019",descriptors:["folk","jazzy","eclectic"],tracks:["Feel","It Don't Matter"],album_url:"https://open.spotify.com/album/3zNi5dCpkbm4zv7h1vGOMy",image_url:"https://i.scdn.co/image/ab67616d0000b27354de35ac4fc5d8ed1ec1d956",date_added:"2020-04-06"},{title:"Baduizm",artist:"Erykah Badu",year:"1997",descriptors:["neo soul","stanky","funky"],tracks:["On & On","Other Side of the Game"],album_url:"https://open.spotify.com/album/3qr4pTBWEU1SVf01j6RAx3",image_url:"https://i.scdn.co/image/ab67616d0000b2739968770f3f0e45aa99b2ac29",date_added:"2020-04-11"},{title:"What Kinda Music",artist:"Tom Misch & Yussef Dayes",year:"2020-04-24",descriptors:["funky","groovy","ethereal"],tracks:["Nightrider","Last 100"],album_url:"https://open.spotify.com/album/6iOCv7oGL5sGi2aVnRz2BI",image_url:"https://i.scdn.co/image/ab67616d0000b273bd93bbf0c3df5e0242b84831",date_added:"2020-04-23"},{title:"Dopamine",artist:"B\xD8RNS",year:"2015",descriptors:["indie pop","electronic","groovy"],tracks:["Dug My Heart","Holy Ghost"],album_url:"https://open.spotify.com/album/17l7MIu0Jh0tdgK7or9ovw",image_url:"https://i.scdn.co/image/ab67616d0000b273cc2cf912462d8ae4ef856434",date_added:"2020-04-24"},{title:"Djesse Vol.\xA03",artist:"Jacob Collier",year:"2020-08-14",descriptors:["R&B","funky","glitchy"],tracks:["All I Need","Sleeping On My Dreams"],album_url:"https://open.spotify.com/album/33cj3kzLqVOg9zvy69Wrc8",image_url:"https://i.scdn.co/image/ab67616d0000b27334de228d223a20a8a5d1f465",date_added:"2020-08-13"},{title:"Straight Outta Compton",artist:"N.W.A.",year:"1988",descriptors:["hip hop","gangsta rap","funky"],tracks:["Parental Discretion Iz Advised","I Ain't Tha 1"],album_url:"https://open.spotify.com/album/0Y7qkJVZ06tS2GUCDptzyW",image_url:"https://i.scdn.co/image/ab67616d0000b273c79a70e8167cc1a4fab83781",date_added:"2020-09-30"},{title:"Mama's Gun",artist:"Erykah Badu",year:"2000",descriptors:["neo soul","funky","jazzy"],tracks:["My Life","Orange Moon"],album_url:"https://open.spotify.com/album/3cADvHRdKniF9ELCn1zbGH",image_url:"https://i.scdn.co/image/ab67616d0000b2730d934cb462fae5a26f829efb",date_added:"2020-10-20"},{title:"Jungle Run",artist:"Nubiyan Twist",year:"2019",descriptors:["Afro-jazz","funky","electronic"],tracks:["Tell It To Me Slowly","Permission"],album_url:"https://open.spotify.com/album/5pdHXtWKSUUEeWDKvz2qN8",image_url:"https://i.scdn.co/image/ab67616d0000b27366fd192abf67d5b59a366e01",date_added:"2020-10-26"},{title:"Mos Def & Talib Kweli Are Black Star",artist:"Black Star",year:"1998",descriptors:["hip hop","funky","groovy"],tracks:["Definition","Respiration"],album_url:"https://open.spotify.com/album/6GRzmk9UGL7odxprOPop1Q",image_url:"https://i.scdn.co/image/ab67616d0000b273e3f907e70bc502a263ee1bc0",date_added:"2020-10-30"},{title:"Madvillainy",artist:"Madvillain",year:"2004",descriptors:["hip hop","jazzy","wonky"],tracks:["Meat Grinder","Figaro"],album_url:"https://open.spotify.com/album/19bQiwEKhXUBJWY6oV3KZk",image_url:"https://i.scdn.co/image/ab67616d0000b27374dc897ea75402db37ef239a",date_added:"2020-12-07"},{title:"Glass Houses",artist:"Billy Joel",year:"1980",descriptors:["rock","new wave","punk"],tracks:["Sometimes a Fantasy","All for Leyna"],album_url:"https://open.spotify.com/album/5sztejERqpktXEdemlUvU5",image_url:"https://i.scdn.co/image/ab67616d0000b27322d5199692d318c28d6c7d9b",date_added:"2020-12-30"},{title:"The Mouse & The Mask",artist:"DANGERDOOM",year:"2005",descriptors:["hip hop","funky","sampledelia"],tracks:["El Chupa Nibre","Crosshairs"],album_url:"https://open.spotify.com/album/6TgkNOiJxeSkVVbXV720B1",image_url:"https://i.scdn.co/image/ab67616d0000b2736c3fb85147fcf2972923cf2d",date_added:"2021-02-10"},{title:"MM\u2026FOOD",artist:"MF DOOM",year:"2004",descriptors:["hip hop","groovy","goofy"],tracks:["Kon Queso","Vomitspit"],album_url:"https://open.spotify.com/album/1UcS2nqUhxrZjrBZ3tHk2N",image_url:"https://i.scdn.co/image/ab67616d0000b27352f194d02c39909d1b284799",date_added:"2021-02-21"},{title:"The Miseducation of Lauryn Hill",artist:"Ms. Lauryn Hill",year:"1998",descriptors:["neo soul","hip hop","funky"],tracks:["Doo Wop (That Thing)","Final Hour"],album_url:"https://open.spotify.com/album/1BZoqf8Zje5nGdwZhOjAtD",image_url:"https://i.scdn.co/image/ab67616d0000b273e08b1250db5f75643f1508c9",date_added:"2021-02-22"},{title:"Paul's Boutique",artist:"Beastie Boys",year:"1989",descriptors:["hip hop","funky","sampledelia"],tracks:["Egg Man","Shadrach"],album_url:"https://open.spotify.com/album/1kmyirVya5fRxdjsPFDM05",image_url:"https://i.scdn.co/image/ab67616d0000b2732288f4cd4bf3a8764624a0d2",date_added:"2021-02-25"},{title:"Discovery",artist:"Daft Punk",year:"2001",descriptors:["house","funky","disco"],tracks:["Harder, Better, Faster, Stronger","Short Circuit"],album_url:"https://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc",image_url:"https://i.scdn.co/image/ab67616d0000b273b33d46dfa2635a47eebf63b2",date_added:"2021-02-27"},{title:"Like Water for Chocolate",artist:"Common",year:"2000",descriptors:["hip hop","stanky","jazzy"],tracks:["Dooinit","A Film Called (PIMP)"],album_url:"https://open.spotify.com/album/0ZSwTSaR9VUe3uYsXNQgub",image_url:"https://i.scdn.co/image/ab67616d0000b273e42803c3943b6b0b5481caeb",date_added:"2021-03-07"},{title:"Giant Steps",artist:"John Coltrane",year:"1960",descriptors:["jazz","post-bop","virtuosic"],tracks:["Giant Steps","Naima"],album_url:"https://open.spotify.com/album/7MBQWjukLxXZYvQ8vzEH7t",image_url:"https://i.scdn.co/image/ab67616d0000b273073aecd10185e5a5fd88eb90",date_added:"2021-03-21"},{title:"here's some stuff",artist:"Sam Greenfield",year:"2021-03-26",descriptors:["funky","jazzy","poppy"],tracks:["banana song","in love"],album_url:"https://open.spotify.com/album/5ytiqsycU74gUxmBhPbiMW",image_url:"https://i.scdn.co/image/ab67616d0000b2739b202863610675544f36418e",date_added:"2021-03-25"},{title:"3 Feet High and Rising",artist:"De La Soul",year:"1989",descriptors:["hip hop","sampledelia","jazzy"],tracks:["Eye Know","Say No Go"],album_url:"https://open.spotify.com/album/4ORoATQVXNVVYIT6x03pXL",image_url:"https://i.scdn.co/image/ab67616d0000b273746a58f993e1c331ca60c2e3",date_added:"2021-04-04"},{title:"Sweet Side",artist:"Raquel Rodriguez",year:"2021-04-23",descriptors:["R&B","neo soul","funky"],tracks:["Leave Me Behind","Last Night"],album_url:"https://open.spotify.com/album/24PaFeFq25xoO8jPCRkn0H",image_url:"https://i.scdn.co/image/ab67616d0000b2739c4784358798a4ecfe8cffb8",date_added:"2021-04-23"},{title:"Train of Thought",artist:"Reflection Eternal",year:"2000",descriptors:["hip hop","groovy","funky"],tracks:["This Means You","Ghetto Afterlife"],album_url:"https://open.spotify.com/album/2PbWFmysd3j9MEacjjhozx",image_url:"https://i.scdn.co/image/ab67616d0000b2736fa0f3b2dc48e99f891e085f",date_added:"2021-05-09"},{title:"Bones",artist:"Michael Mayo",year:"2021-06-04",descriptors:["jazzy","groovy","lush"],tracks:["Another Love","About Your Love"],album_url:"https://open.spotify.com/album/70RkyEuMjhRnbTQe1Md7os",image_url:"https://i.scdn.co/image/ab67616d0000b273cd1237e194c0eec599dc574d",date_added:"2021-06-04"},{title:"So Many Me",artist:"Michael League",year:"2021-06-25",descriptors:["groovy","ethereal","worldbeat"],tracks:["Sentinel Species","Since You've Been By"],album_url:"https://open.spotify.com/album/75nnmWLSBEkQMVdVsgbR7b",image_url:"https://i.scdn.co/image/ab67616d0000b273196e9f39ad150b1689794fef",date_added:"2021-06-25"},{title:"Cold Water Burning Skin",artist:"Fieh",year:"2019",descriptors:["neo soul","groovy","funky"],tracks:["Flower","Glu"],album_url:"https://open.spotify.com/album/4zCMoqM8j13NpyyllWKg5n",image_url:"https://i.scdn.co/image/ab67616d0000b273a3110f01fbdd88585f8eca79",date_added:"2021-08-09"},{title:"AOR",artist:"Ed Motta",year:"2013",descriptors:["jazzy","funky","breezy"],tracks:["Simple Guy","1978 (Leave the Radio On)"],album_url:"https://open.spotify.com/album/0BrDRK9uECp5uj06u4B9AM",image_url:"https://i.scdn.co/image/ab67616d0000b2737518fd95a03f2d814fe15108",date_added:"2021-08-10"},{title:"Mixtape",artist:"Bobbing",year:"2020-07-10",descriptors:["funky","electronic","wonky"],tracks:["What Went Weird","Tous Les Jours"],album_url:"https://open.spotify.com/album/6eI1jzNYFmvtOuVbS6KuCg",image_url:"https://i.scdn.co/image/ab67616d0000b273cdbeced3ea25b29f520ac031",date_added:"2021-09-29"},{title:"Tako Tsubo",artist:"L'Imp\xE9ratrice",year:"2021-03-26",descriptors:["funky","disco","groovy"],tracks:["Fou","Peur des filles"],album_url:"https://open.spotify.com/album/7gE23KRzNbXeB6nZmQVqa3",image_url:"https://i.scdn.co/image/ab67616d0000b273389ffd99d51037a6f0a256f5",date_added:"2021-10-19"},{title:"Vampire Weekend",artist:"Vampire Weekend",year:"2008",descriptors:["indie rock","groovy","Afrobeat"],tracks:["Oxford Comma","Cape Cod Kwassa Kwassa"],album_url:"https://open.spotify.com/album/7n8NJkGKAl2np1bXiRn0CY",image_url:"https://i.scdn.co/image/ab67616d0000b273eabfe5d94aad05cb6485444b",date_added:"2021-10-20"},{title:"Juno",artist:"Remi Wolf",year:"2021-10-15",descriptors:["poppy","funky","mucky"],tracks:["wyd","Grumpy Old Man"],album_url:"https://open.spotify.com/album/7tJ8Wtej161vR0uCbGDiDR",image_url:"https://i.scdn.co/image/ab67616d0000b27316a6cb93e32bf2ae66b1f5b2",date_added:"2021-10-28"},{title:"Settle",artist:"Disclosure",year:"2013",descriptors:["house","groovy","funky"],tracks:["When a Fire Starts to Burn","Stimulation"],album_url:"https://open.spotify.com/album/1lM5IfaqcIsXd6UCV3aDSs",image_url:"https://i.scdn.co/image/ab67616d0000b2737d9cf15a27f29ffc8ef01e8d",date_added:"2021-12-28"},{title:"The Party Album!",artist:"Vengaboys",year:"1999",descriptors:["Eurodance","electronic","groovy"],tracks:["Up & Down","The Vengabeat"],album_url:"https://open.spotify.com/album/2hy9sLDt7IVAvJRGVdzZnx",image_url:"https://i.scdn.co/image/ab67616d0000b27350fcab12b2e2e0ee0019ac53",date_added:"2022-01-15"},{title:"Heartbreak Hits",artist:"Theo Katzman",year:"2017",descriptors:["rock","funky","folk"],tracks:["Crappy Love Song","Plain Jane Heroin"],album_url:"https://open.spotify.com/album/04QktcTXcS9qQTp7Q22Z3I",image_url:"https://i.scdn.co/image/ab67616d0000b273466c8f59de182f7c1533c40c",date_added:"2022-02-24"},{title:"Greatest Hits, Vol.\xA03",artist:"Jacob Mann Big Band",year:"2022-04-01",descriptors:["jazzy","funky","playful"],tracks:["The Soy Lentman Show","Flight Screen Solitaire"],album_url:"https://open.spotify.com/album/6EwsXTcCiDJHUD66K3AErt",image_url:"https://i.scdn.co/image/ab67616d0000b273859572495f9566a5373bd24e",date_added:"2022-03-05"},{title:"Evergreen",artist:"Crackazat",year:"2022-05-13",descriptors:["house","groovy","jazzy"],tracks:["Everybody Talks About It","Evergreen"],album_url:"https://open.spotify.com/album/5UZEbCGUa6z4zPt05wxOz3",image_url:"https://i.scdn.co/image/ab67616d0000b273ad2a62d49143a3c773c3057a",date_added:"2022-05-13"},{title:"Haven",artist:"Svaneborg Kardyb",year:"2020-10-23",descriptors:["jazzy","ethereal","mellow"],tracks:["D\xE6mningen","Bluesen"],album_url:"https://open.spotify.com/album/1a7WanJ8OXUHZsbIlJZLDb",image_url:"https://i.scdn.co/image/ab67616d0000b273ed43b3bb175993ccec8bf34a",date_added:"2022-06-09"},{title:"Robson Jorge e Lincoln Olivetti",artist:"Robson Jorge & Lincoln Olivetti",year:"1982",descriptors:["jazzy","disco","Latin"],tracks:["Jorgea Corisco","Pret-\xC0-Porter"],album_url:"https://open.spotify.com/album/23YsJH4l99KmP9OLXIwsaM",image_url:"https://i.scdn.co/image/ab67616d0000b273ed1f3036cc677458e335e0e0",date_added:"2022-07-27"},{title:"NOT TiGHT",artist:"DOMi & JD Beck",year:"2022-07-29",descriptors:["jazzy","groovy","tight"],tracks:["U DON'T HAVE TO ROB ME","SNiFF"],album_url:"https://open.spotify.com/album/6cXQ0dxd2pWCTFhZ8RIg2j",image_url:"https://i.scdn.co/image/ab67616d0000b2738569040f689c3249eeb04345",date_added:"2022-07-29"},{title:"Remain in Light",artist:"Talking Heads",year:"1980",descriptors:["funky","Afrobeat","new wave"],tracks:["Crosseyed and Painless","Once in a Lifetime"],album_url:"https://open.spotify.com/album/3AQgdwMNCiN7awXch5fAaG",image_url:"https://i.scdn.co/image/ab67616d0000b273e56fa8c916dc6ce419dcf557",date_added:"2022-09-18"},{title:"Black on Both Sides",artist:"Mos Def",year:"1999",descriptors:["hip hop","soulful","funky"],tracks:["Do It Now","Mathematics"],album_url:"https://open.spotify.com/album/5gK2l2LgWY0BA4p9uy27z6",image_url:"https://i.scdn.co/image/ab67616d0000b27389b56f56323925d57b38944d",date_added:"2022-09-22"},{title:"Sound of Silver",artist:"LCD Soundsystem",year:"2007",descriptors:["electronic","groovy","punk"],tracks:["Time to Get Away","Sound of Silver"],album_url:"https://open.spotify.com/album/1R8kkopLT4IAxzMMkjic6X",image_url:"https://i.scdn.co/image/ab67616d0000b273e6272ad26e7a55bc342a6dd0",date_added:"2022-09-23"},{title:"Illmatic",artist:"Nas",year:"1994",descriptors:["hip hop","groovy","jazzy"],tracks:["The World is Yours","It Ain't Hard to Tell"],album_url:"https://open.spotify.com/album/3kEtdS2pH6hKcMU9Wioob1",image_url:"https://i.scdn.co/image/ab67616d0000b273045fc920ecf4f8094888ec26",date_added:"2022-09-26"},{title:"You've Come a Long Way, Baby",artist:"Fatboy Slim",year:"1998",descriptors:["big beat","electronic","groovy"],tracks:["The Rockafeller Skank","Gangster Trippin"],album_url:"https://open.spotify.com/album/7G7cCHgQKbDD6zvwDQZyJu",image_url:"https://i.scdn.co/image/ab67616d0000b27332922d86fcf090a1a6d4deb0",date_added:"2022-10-03"},{title:"To Pimp a Butterfly",artist:"Kendrick Lamar",year:"2015",descriptors:["hip hop","jazzy","soulful"],tracks:["King Kunta","How Much A Dollar Cost"],album_url:"https://open.spotify.com/album/7ycBtnsMtyVbbwTfJwRjSP",image_url:"https://i.scdn.co/image/ab67616d0000b273cdb645498cd3d8a2db4d05e1",date_added:"2022-10-12"},{title:"The Optimist",artist:"Ryan Porter",year:"2018",descriptors:["jazz","groovy","swaggy"],tracks:["The Instrumental Hip-Hoppa","D\xE9j\xE0 Vu"],album_url:"https://open.spotify.com/album/35CoSVQixx2IqOQyirFhbW",image_url:"https://i.scdn.co/image/ab67616d0000b273dd72d0c3bccc648cb9d27c0f",date_added:"2022-10-14"},{title:"Quality Over Opinion",artist:"Louis Cole",year:"2022-10-14",descriptors:["funky","mellow","raw"],tracks:["I'm Tight","Don't Care"],album_url:"https://open.spotify.com/album/57Xg6JumEnG5i5MBzJVdT7",image_url:"https://i.scdn.co/image/ab67616d0000b2737bed62fe63257e9edfe3bcb4",date_added:"2022-10-14"},{title:"Things Fall Apart",artist:"The Roots",year:"1999",descriptors:["hip hop","funky","stanky"],tracks:["The Next Movement","Don't See Us"],album_url:"https://open.spotify.com/album/0qbl8aNaCUOvX8HGsZYLfh",image_url:"https://i.scdn.co/image/ab67616d0000b273bac8015c7e47644fb86e27e2",date_added:"2022-10-24"},{title:"Speaking in Tongues",artist:"Talking Heads",year:"1983",descriptors:["new wave","funky","groovy"],tracks:["Making Flippy Floppy","Moon Rocks"],album_url:"https://open.spotify.com/album/4sLCQxMRfn3gAHrBNZtbTH",image_url:"https://i.scdn.co/image/ab67616d0000b273e35e2e2a4bfa8a30a78fc532",date_added:"2022-11-03"},{title:"Syro",artist:"Aphex Twin",year:"2014",descriptors:["electronic","groovy","glitchy"],tracks:["minipops 67","CIRCLONT14"],album_url:"https://open.spotify.com/album/6oRuinkJdTge4hpTuClEF8",image_url:"https://i.scdn.co/image/ab67616d0000b2738b68d772e75d4f280cea0ef0",date_added:"2022-11-10"},{title:"Oh No! It's Devo",artist:"Devo",year:"1982",descriptors:["new wave","groovy","synth pop"],tracks:["Time Out For Fun","Big Mess"],album_url:"https://open.spotify.com/album/7MGYfjJpx6XsA2B2VhtZ6S",image_url:"https://i.scdn.co/image/ab67616d0000b273c4622741b387073c76bbe553",date_added:"2022-12-12"},{title:"Blazing Arrow",artist:"Blackalicious",year:"2002",descriptors:["hip hop","funky","jazzy"],tracks:["Green Light: Now Begin","Make You Feel That Way"],album_url:"https://open.spotify.com/album/0DyXkWHnFMIJSuHfLgNfcc",image_url:"https://i.scdn.co/image/ab67616d0000b2738c8df6078836c1dd3df5a19a",date_added:"2022-12-13"},{title:"106",artist:"Jacob Mann",year:"2020-08-28",descriptors:["jazzy","electronic","minimal"],tracks:["Ziti","Barstow"],album_url:"https://open.spotify.com/album/7IsKUm4ZolGXJUKqrAejU8",image_url:"https://i.scdn.co/image/ab67616d0000b273b4a4725f48e95f983d06f384",date_added:"2022-12-14"},{title:"The State of Things",artist:"Quentin Angus",year:"2022-03-18",descriptors:["jazz","mellow","groovy"],tracks:["Broken Bones","New York Muster"],album_url:"https://open.spotify.com/album/3Fi2Gv0IRBHzuYQSBqxknc",image_url:"https://i.scdn.co/image/ab67616d0000b273a4702b44420110273f3d95ee",date_added:"2022-12-19"},{title:"Crisis & Opportunity, Vol.\xA02 - Peaks",artist:"Myele Manzanza",year:"2021-11-19",descriptors:["jazz","groovy","electronic"],tracks:["The People's Changes","A Night in Berlin"],album_url:"https://open.spotify.com/album/6eBaDGLTxVhEZPEdTnSYCS",image_url:"https://i.scdn.co/image/ab67616d0000b273d75a52827f4a8ab7fd5a5131",date_added:"2022-12-22"},{title:"Too Much to Ask",artist:"Cheekface",year:"2022-08-02",descriptors:["punk","groovy","goofy"],tracks:["Pledge Drive","Featured Singer"],album_url:"https://open.spotify.com/album/233GvGeKMsNHQgGvclrhC6",image_url:"https://i.scdn.co/image/ab67616d0000b27391c428cd2ffa886adefb29ff",date_added:"2022-12-23"},{title:"Below the Heavens",artist:"Blu & Exile",year:"2007",descriptors:["hip hop","jazzy","soulful"],tracks:["Juice n' Dranks","Dancing in the Rain"],album_url:"https://open.spotify.com/album/2OnNdRdzqs0Xe6VU2uGdPe",image_url:"https://i.scdn.co/image/ab67616d0000b273a1e2527fab9bcd9826e06cd4",date_added:"2022-12-27"},{title:"Ruby Vroom",artist:"Soul Coughing",year:"1994",descriptors:["alt rock","jazzy","hip hop"],tracks:["Casiotone Nation","Down to This"],album_url:"https://open.spotify.com/album/6JHowYqtDso2k1ji5H7vUy",image_url:"https://i.scdn.co/image/ab67616d0000b273c189f0df7d6fe7d4bf23dde9",date_added:"2022-12-28"},{title:"Donuts",artist:"J Dilla",year:"2006",descriptors:["sampledelia","wonky","soulful"],tracks:["Lightworks","Two Can Win"],album_url:"https://open.spotify.com/album/5fMlysqhFE0itGn4KezMBW",image_url:"https://i.scdn.co/image/ab67616d0000b27383bb78285449998bb974da45",date_added:"2023-01-15"},{title:"Raise!",artist:"Earth, Wind & Fire",year:"1981",descriptors:["funky","jazzy","disco"],tracks:["You Are a Winner","The Changing Times"],album_url:"https://open.spotify.com/album/1hj1SYbJYdXloRiSjsCLXg",image_url:"https://i.scdn.co/image/ab67616d0000b273b30c8b93cef6fa26f8a7f17a",date_added:"2023-02-08"},{title:"Tourist History",artist:"Two Door Cinema Club",year:"2010",descriptors:["indie pop","groovy","punk"],tracks:["Cigarettes in the Theatre","You're Not Stubborn"],album_url:"https://open.spotify.com/album/0wNjC8d3ve2L2yaomEWUsa",image_url:"https://i.scdn.co/image/ab67616d0000b273585f3d70dce678a5978a0941",date_added:"2023-02-23"},{title:"Suzuki",artist:"Tosca",year:"2000",descriptors:["trip hop","ambient","electronic"],tracks:["Suzuki","Boss on the Boat"],album_url:"https://open.spotify.com/album/3mMCQiZaRbwPhn1I3vdFRP",image_url:"https://i.scdn.co/image/ab67616d0000b273253a1b35c8c2995bebe300af",date_added:"2023-03-01"},{title:"De La Soul Is Dead",artist:"De La Soul",year:"1991",descriptors:["hip hop","funky","jazzy"],tracks:["Pease Porridge","Ring Ring Ring (Ha Ha Hey)"],album_url:"https://open.spotify.com/album/5F3GEttPPR58Gg15BKUsTd",image_url:"https://i.scdn.co/image/ab67616d0000b273ee3e86f9a12e311701f5fcda",date_added:"2023-03-03"},{title:"Buhloone Mindstate",artist:"De La Soul",year:"1993",descriptors:["hip hop","jazzy","funky"],tracks:["En Focus","I Am I Be"],album_url:"https://open.spotify.com/album/4ajtfXfaqumfNlJDTVjhOd",image_url:"https://i.scdn.co/image/ab67616d0000b273425d6882cbb8165986ca7c40",date_added:"2023-03-05"},{title:"Prima Edizione",artist:"Todd Edwards",year:"1999",descriptors:["UK garage","house","funky"],tracks:["Steal U're Heart","Can't Live Without U"],album_url:"https://open.spotify.com/album/6SRbCAQ1zu2r47Bi771rAs",image_url:"primaedizione.jpg",date_added:"2023-03-10"},{title:"Choose Your Weapon",artist:"Hiatus Kaiyote",year:"2015",descriptors:["neo soul","jazzy","wonky"],tracks:["Jekyll","Atari"],album_url:"https://open.spotify.com/album/3qzmmmRmVBiOuMvrerfW4z",image_url:"https://i.scdn.co/image/ab67616d0000b27365c29c4a590e9e9b03467c5a",date_added:"2023-04-11"},{title:"Your Drunken Soundtrack",artist:"Max Ox",year:"2014",descriptors:["jazzy","electronic","wonky"],tracks:["Plan D","Penguin Time"],album_url:"https://open.spotify.com/album/2blEyPKFkaAQx21ErYycYL",image_url:"https://i.scdn.co/image/ab67616d0000b27330551568434dca592278c7f3",date_added:"2023-04-12"},{title:"SCARING THE HOES",artist:"JPEGMAFIA & Danny Brown",year:"2023-03-24",descriptors:["hip hop","wonky","sampledelia"],tracks:["Fentanyl Tester","Burfict!"],album_url:"https://open.spotify.com/album/3u20OXh03DjCUzbf8XcGTq",image_url:"https://i.scdn.co/image/ab67616d0000b2738cf4c85912fdeb106707fb4c",date_added:"2023-04-24"},{title:"Spaces and Places",artist:"Kerri Chandler",year:"2022-09-26",descriptors:["house","dance","electronic"],tracks:["Hurry Up [Ministry of Sound]","The Piano Thing (Live)"],album_url:"https://open.spotify.com/album/4Q4G4hrAms9J3mYmofZlrT",image_url:"https://i.scdn.co/image/ab67616d0000b273f671d00f5ca7c99fa6ccfb84",date_added:"2023-05-05"},{title:"Gaucho",artist:"Steely Dan",year:"1980",descriptors:["jazzy","breezy","rock"],tracks:["Glamour Profession","Time Out of Mind"],album_url:"https://open.spotify.com/album/5fIBtKHWGjbjK9C4i1Z11L",image_url:"https://i.scdn.co/image/ab67616d0000b273412d0a3ed734b885c1fed05d",date_added:"2023-05-09"},{title:"No. 1 in Heaven",artist:"Sparks",year:"1979",descriptors:["disco","new wave","synth pop"],tracks:["Academy Award Performance","The Number One Song in Heaven"],album_url:"https://open.spotify.com/album/1WwkwSVwh9clBkan9ElU0e",image_url:"https://i.scdn.co/image/ab67616d0000b273d74bc7e553de4198693dd824",date_added:"2023-05-26"},{title:"KNOWER FOREVER",artist:"KNOWER",year:"2023-06-02",descriptors:["funky","jazzy","groovy"],tracks:["Nightmare","It Will Get Real"],album_url:"https://open.spotify.com/album/4HLzhoSO67xRwfZa1T343L",image_url:"https://i.scdn.co/image/ab67616d0000b273256ce041df8dfa894046afd7",date_added:"2023-06-02"},{title:"Acabou Chorare",artist:"Novos Baianos",year:"1972",descriptors:["samba","rock","jazzy"],tracks:["Brasil Pandeiro","Um Bilhete Pra Didi"],album_url:"https://open.spotify.com/album/5pIlMNPZh4D9iJSoCfMzGi",image_url:"https://i.scdn.co/image/ab67616d0000b27327968fcceb7e9541fb2c9d76",date_added:"2023-06-08"},{title:"Everything Harmony",artist:"The Lemon Twigs",year:"2023-05-05",descriptors:["rock","poppy","lush"],tracks:["In My Head","Any Time of Day"],album_url:"https://open.spotify.com/album/5X0MAnUVN7eEZyO1LjprIk",image_url:"https://i.scdn.co/image/ab67616d0000b273ab764b74918b0adf45fce723",date_added:"2023-07-06"},{title:"The Loveliest Time",artist:"Carly Rae Jepsen",year:"2023-07-28",descriptors:["sophisti-pop","electronic","funky"],tracks:["Aeroplanes","Shy Boy"],album_url:"https://open.spotify.com/album/4bRYGKmKOkXvKL1QBf0cGk",image_url:"https://i.scdn.co/image/ab67616d0000b273521ccb4f47088d061f26aa4d",date_added:"2023-08-28"},{title:"From Langley Park to Memphis",artist:"Prefab Sprout",year:"1988",descriptors:["sophisti-pop","jazzy","new wave"],tracks:["Cars and Girls","Knock on Wood"],album_url:"https://open.spotify.com/album/4yhZQGEEogCoJ0SZ9RTUrv",image_url:"https://i.scdn.co/image/ab67616d0000b2734f4b73eb515a95c06f83dea3",date_added:"2023-08-29"},{title:"Previs\xE3o do Tempo",artist:"Marcos Valle",year:"1973",descriptors:["jazzy","funky","samba"],tracks:["Mentira (Chega de Mentira)","Os Ossos do Bar\xE3o"],album_url:"https://open.spotify.com/album/4SrPTE9sLJTE8mpeWFUhRL",image_url:"https://i.scdn.co/image/ab67616d0000b27306f9cb95fb276b0d7c8296d7",date_added:"2023-09-24"},{title:"Flaming Swords",artist:"Fievel Is Glauque",year:"2022-11-25",descriptors:["jazzy","chaotic","mellow"],tracks:["Little Bad Miracle","Wrong Item"],album_url:"https://open.spotify.com/album/2lbjS63tQsEA9z8QA7wp3A",image_url:"https://i.scdn.co/image/ab67616d0000b2738cd133e8ca70da1bf89e4f67",date_added:"2023-11-05"},{title:"Equinox",artist:"S\xE9rgio Mendes & Brasil\xA0'66",year:"1967",descriptors:["bossa nova","jazzy","breezy"],tracks:["Watch What Happens","Bim-Bom"],album_url:"https://open.spotify.com/album/1UfK3QoiNfZL5A6JqvxUeT",image_url:"https://i.scdn.co/image/ab67616d0000b273d7d2d3371edf998daacc3d4c",date_added:"2023-12-14"},{title:"Heaven or Las Vegas",artist:"Cocteau Twins",year:"1990",descriptors:["dream pop","groovy","ethereal"],tracks:["Pitch the Baby","Wolf in the Breast"],album_url:"https://open.spotify.com/album/5lEphbceIgaK1XxWeSrC9E",image_url:"https://i.scdn.co/image/ab67616d0000b2735d2fdd1564ccab97e60c656f",date_added:"2024-01-25"},{title:"Suntub",artist:"ML Buch",year:"2023-10-27",descriptors:["ethereal","synthetic","rock"],tracks:["Fleshless hand","Well bucket"],album_url:"https://open.spotify.com/album/6IjtDhIvMy3I8xORtWAVax",image_url:"https://i.scdn.co/image/ab67616d0000b27386a8513fec7563a8a6584c84",date_added:"2024-03-18"}];var Ul=(e=>(e[e.RecentlyAdded=0]="RecentlyAdded",e[e.OldestToNewest=1]="OldestToNewest",e[e.NewestToOldest=2]="NewestToOldest",e[e.AlbumName=3]="AlbumName",e[e.ArtistName=4]="ArtistName",e[e.Random=5]="Random",e))(Ul||{});function Td(e,t){var n=["a","an","the"],r=new RegExp("^(?:("+n.join("|")+") )(.*)$"),o=function(i,s,l){return l+", "+s};return e=e.toLowerCase().replace(r,o),t=t.toLowerCase().replace(r,o),e.localeCompare(t)}function dk(e){let t=e.length,n;for(;t!=0;)n=Math.floor(Math.random()*t),t--,[e[t],e[n]]=[e[n],e[t]];return e}function Ns(e,t){switch(t){case 0:return e.sort((n,r)=>r.date_added.localeCompare(n.date_added));case 1:return e.sort((n,r)=>n.year.localeCompare(r.year));case 2:return e.sort((n,r)=>r.year.localeCompare(n.year));case 3:return e.sort((n,r)=>Td(n.title,r.title));case 4:return e.sort((n,r)=>Td(n.artist,r.artist));case 5:return dk(e)}}const Hl="All";function fk(e){let t={};for(let r of e)for(let o of r.descriptors)o in t?t[o]+=1:t[o]=1;let n=[];for(let r of Object.keys(t))n.push({name:r,count:t[r]});return n.push({name:Hl,count:e.length}),n.sort((r,o)=>r.name.localeCompare(o.name)),n.sort((r,o)=>o.count-r.count),n}function pk({changeSort:e,changeFilter:t,currentFilter:n,filterList:r}){return O("div",{className:"album-sorter",children:[O("div",{className:"sort-by",children:[C("label",{htmlFor:"album-sorter-select",className:"nice-select-label",children:"Sort by:"}),O("select",{id:"album-sorter-select",className:"nice-select",onChange:s=>{e(parseInt(s.target.value))},defaultValue:"0",children:[C("option",{value:0,children:"Recently added"}),C("option",{value:2,children:"Newest to oldest"}),C("option",{value:1,children:"Oldest to newest"}),C("option",{value:3,children:"Album name"}),C("option",{value:4,children:"Artist name"}),C("option",{value:5,children:"Random"})]})]}),O("div",{className:"filter-by",children:[C("label",{htmlFor:"album-filterer-select",className:"nice-select-label",children:"Filter by:"}),C("select",{id:"album-filterer-select",className:"nice-select",onChange:s=>{t(s.target.value)},value:n,children:r.map(s=>O("option",{value:s.name,children:[Op(s.name)," (",s.count,")"]},s.name))})]})]})}function hk(){return O("div",{className:"header",children:[O("div",{className:"moon-image-wrapper",children:[C("div",{className:"rotator-wrapper moon-wrapper",children:C("div",{className:"rotator moon-rotator",children:C("img",{src:"fullmoon.svg",className:"full-moon-emoji"})})}),C("div",{className:"rotator-wrapper moonburst-wrapper moonburst-dark-wrapper",children:C("div",{className:"rotator",children:C("img",{src:"moonburst-dark.svg",className:"moonburst moonburst-dark"})})}),C("div",{className:"rotator-wrapper moonburst-wrapper moonburst-bright-wrapper",children:C("div",{className:"rotator",children:C("img",{src:"moonburst-bright.svg",className:"moonburst moonburst-bright"})})}),C("svg",{className:"header-title-svg",children:C("g",{children:C("clipPath",{id:"title-clip",children:O("text",{x:"0",y:"0",dy:"0",className:"title-text",children:[O("tspan",{x:"0",dy:"-1em",className:"header-title",dominantBaseline:"central",children:["Full"," "]}),O("tspan",{x:"0",dy:"1em",className:"header-title",dominantBaseline:"central",children:["Moon"," "]}),C("tspan",{x:"0",dy:"1em",className:"header-title",dominantBaseline:"central",children:"Albums"})]})})})})]}),O("div",{className:"header-description",children:[O("p",{children:["I listen to a lot of music. Since 2020, I've been keeping track of every album I listen to and rating each one with a"," ",C("strong",{children:"moon emoji"}),":"]}),O("ul",{className:"moon-rating-list",children:[O("li",{className:"moon-rating",children:[C("img",{src:"crescent.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Crescent"}),C("span",{children:"Okay, at least I finished it"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"halfmoon.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Half Moon"}),C("span",{children:"Pretty good, mostly enjoyable"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"gibbous.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Gibbous"}),C("span",{children:"Great, overall enjoyable"})]})]}),O("li",{className:"moon-rating",children:[C("img",{src:"fullmoon.png",className:"moon-rating-image"}),O("div",{className:"moon-rating-text",children:[C("strong",{children:"Full Moon"}),C("span",{children:"All bangers, no skips"})]})]})]}),O("p",{children:["After rating ",C("strong",{children:"1,900+"})," albums, these are the only ones that slap from start to finish, the ones I keep coming back to, the ones that earned themselves a"," ",C("strong",{children:"Full Moon"}),"."," ",O("a",{className:"learn-more",href:"https://aaronson.org/blog/full-moon-albums",rel:"noreferrer noopener",target:"_blank",children:["learn\xA0more\xA0",C("span",{className:"learn-more-arrow",children:"\u2192"})]})]})]}),C("div",{className:"down-arrow-wrapper",children:C("a",{href:"#albums",className:"down-arrow",children:C("span",{className:"down-arrow-text",children:"\u2193"})})})]})}function mk(){return O("div",{className:"app-footer-text",children:["\xA9 ",new Date().getFullYear()," ",C("a",{href:"https://aaronson.org",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Adam Aaronson"})," \xB7 ",C("a",{href:"https://github.com/adamaaronson/full-moon-albums",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"GitHub"})," \xB7 ",C("a",{href:"https://twitter.com/aaaronson",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Twitter"})," \xB7 ",C("a",{href:"https://aaronson.org/blog/full-moon-albums",rel:"noreferrer noopener",target:"_blank",className:"hover-blue",children:"Learn more"})]})}function yk(){const[e,t]=M.exports.useState(Ns(Ms,Ul.RecentlyAdded)),[n]=M.exports.useState(Ms),[r,o]=M.exports.useState(Ul.RecentlyAdded),[i,s]=M.exports.useState(Hl),[l]=M.exports.useState(fk(Ms)),a=d=>{o(d);const f=Ns(e,d);t([...f])},u=d=>{s(d);let f=n;d!==Hl&&(f=n.filter(g=>g.descriptors.includes(d))),f=Ns(f,r),t([...f]);const y=document.getElementById("albums");y&&y.scrollIntoView()};return O("div",{className:"app",children:[C("div",{className:"pattern"}),C("section",{className:"app-hero",children:C(hk,{})}),O("main",{className:"app-body",id:"albums",children:[C(pk,{changeSort:a,changeFilter:u,currentFilter:i,filterList:l}),C(ck,{albums:e,onClickFilter:d=>{u(d.target.value)}})]}),C("footer",{className:"app-footer",children:C(mk,{})})]})}Ls.createRoot(document.getElementById("root")).render(C(Ql.StrictMode,{children:C(yk,{})})); diff --git a/index.html b/index.html index f16a70d..869a0b1 100644 --- a/index.html +++ b/index.html @@ -20,7 +20,7 @@ - +