1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";let t,i,s;var n,r=e.i(43476),a=e.i(71645);let o=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],l=new Set([...o,"pathRotation"]),c=(e,t,i)=>i>t?t:i<e?e:i,d={test:e=>"number"==typeof e,parse:parseFloat,transform:e=>e},u={...d,transform:e=>c(0,1,e)},h={...d,default:1},p=e=>Math.round(1e5*e)/1e5,m=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,f=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,g=(e,t)=>i=>!!("string"==typeof i&&f.test(i)&&i.startsWith(e)||t&&null!=i&&Object.prototype.hasOwnProperty.call(i,t)),x=(e,t,i)=>s=>{if("string"!=typeof s)return s;let[n,r,a,o]=s.match(m);return{[e]:parseFloat(n),[t]:parseFloat(r),[i]:parseFloat(a),alpha:void 0!==o?parseFloat(o):1}},v={...d,transform:e=>Math.round(c(0,255,e))},y={test:g("rgb","red"),parse:x("red","green","blue"),transform:({red:e,green:t,blue:i,alpha:s=1})=>"rgba("+v.transform(e)+", "+v.transform(t)+", "+v.transform(i)+", "+p(u.transform(s))+")"},b={test:g("#"),parse:function(e){let t="",i="",s="",n="";return e.length>5?(t=e.substring(1,3),i=e.substring(3,5),s=e.substring(5,7),n=e.substring(7,9)):(t=e.substring(1,2),i=e.substring(2,3),s=e.substring(3,4),n=e.substring(4,5),t+=t,i+=i,s+=s,n+=n),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:n?parseInt(n,16)/255:1}},transform:y.transform},w=e=>({test:t=>"string"==typeof t&&t.endsWith(e)&&1===t.split(" ").length,parse:parseFloat,transform:t=>`${t}${e}`}),k=w("deg"),j=w("%"),S=w("px"),P=w("vh"),A=w("vw"),z={...j,parse:e=>j.parse(e)/100,transform:e=>j.transform(100*e)},T={test:g("hsl","hue"),parse:x("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:i,alpha:s=1})=>"hsla("+Math.round(e)+", "+j.transform(p(t))+", "+j.transform(p(i))+", "+p(u.transform(s))+")"},N={test:e=>y.test(e)||b.test(e)||T.test(e),parse:e=>y.test(e)?y.parse(e):T.test(e)?T.parse(e):b.parse(e),transform:e=>"string"==typeof e?e:e.hasOwnProperty("red")?y.transform(e):T.transform(e),getAnimatableNone:e=>{let t=N.parse(e);return t.alpha=0,N.transform(t)}},C=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,M="number",E="color",D=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function V(e){let t=e.toString(),i=[],s={color:[],number:[],var:[]},n=[],r=0,a=t.replace(D,e=>(N.test(e)?(s.color.push(r),n.push(E),i.push(N.parse(e))):e.startsWith("var(")?(s.var.push(r),n.push("var"),i.push(e)):(s.number.push(r),n.push(M),i.push(parseFloat(e))),++r,"${}")).split("${}");return{values:i,split:a,indexes:s,types:n}}function R({split:e,types:t}){let i=e.length;return s=>{let n="";for(let r=0;r<i;r++)if(n+=e[r],void 0!==s[r]){let e=t[r];e===M?n+=p(s[r]):e===E?n+=N.transform(s[r]):n+=s[r]}return n}}let L={test:function(e){return isNaN(e)&&"string"==typeof e&&(e.match(m)?.length||0)+(e.match(C)?.length||0)>0},parse:function(e){return V(e).values},createTransformer:function(e){return R(V(e))},getAnimatableNone:function(e){let t=V(e);return R(t)(t.values.map((e,i)=>((e,t)=>"number"==typeof e?t?.trim().endsWith("/")?e:0:"number"==typeof e?0:N.test(e)?N.getAnimatableNone(e):e)(e,t.split[i])))}},O=new Set(["brightness","contrast","saturate","opacity"]);function I(e){let[t,i]=e.slice(0,-1).split("(");if("drop-shadow"===t)return e;let[s]=i.match(m)||[];if(!s)return e;let n=i.replace(s,""),r=+!!O.has(t);return s!==i&&(r*=100),t+"("+r+n+")"}let $=/\b([a-z-]*)\(.*?\)/gu,B={...L,getAnimatableNone:e=>{let t=e.match($);return t?t.map(I).join(" "):e}},F={...L,getAnimatableNone:e=>{let t=L.parse(e);return L.createTransformer(e)(t.map(e=>"number"==typeof e?0:"object"==typeof e?{...e,alpha:1}:e))}},H={...d,transform:Math.round},U={borderWidth:S,borderTopWidth:S,borderRightWidth:S,borderBottomWidth:S,borderLeftWidth:S,borderRadius:S,borderTopLeftRadius:S,borderTopRightRadius:S,borderBottomRightRadius:S,borderBottomLeftRadius:S,width:S,maxWidth:S,height:S,maxHeight:S,top:S,right:S,bottom:S,left:S,inset:S,insetBlock:S,insetBlockStart:S,insetBlockEnd:S,insetInline:S,insetInlineStart:S,insetInlineEnd:S,padding:S,paddingTop:S,paddingRight:S,paddingBottom:S,paddingLeft:S,paddingBlock:S,paddingBlockStart:S,paddingBlockEnd:S,paddingInline:S,paddingInlineStart:S,paddingInlineEnd:S,margin:S,marginTop:S,marginRight:S,marginBottom:S,marginLeft:S,marginBlock:S,marginBlockStart:S,marginBlockEnd:S,marginInline:S,marginInlineStart:S,marginInlineEnd:S,fontSize:S,backgroundPositionX:S,backgroundPositionY:S,rotate:k,pathRotation:k,rotateX:k,rotateY:k,rotateZ:k,scale:h,scaleX:h,scaleY:h,scaleZ:h,skew:k,skewX:k,skewY:k,distance:S,translateX:S,translateY:S,translateZ:S,x:S,y:S,z:S,perspective:S,transformPerspective:S,opacity:u,originX:z,originY:z,originZ:S,zIndex:H,fillOpacity:u,strokeOpacity:u,numOctaves:H},_={...U,color:N,backgroundColor:N,outlineColor:N,fill:N,stroke:N,borderColor:N,borderTopColor:N,borderRightColor:N,borderBottomColor:N,borderLeftColor:N,filter:B,WebkitFilter:B,mask:F,WebkitMask:F},W=e=>_[e],G=()=>({translate:0,scale:1,origin:0,originPoint:0}),K=()=>({x:G(),y:G()}),q=()=>({min:0,max:0}),X=()=>({x:q(),y:q()}),Y=e=>!!(e&&e.getVelocity),J=new Set(["width","height","top","left","right","bottom",...o]),Z=e=>t=>t.test(e),Q=[d,S,j,k,A,P,{test:e=>"auto"===e,parse:e=>e}],ee=e=>Q.find(Z(e));var et=e.i(47167);let ei=()=>{},es=()=>{};et.default;let en=e=>t=>"string"==typeof t&&t.startsWith(e),er=en("--"),ea=en("var(--"),eo=e=>!!ea(e)&&el.test(e.split("/*")[0].trim()),el=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function ec(e){return"string"==typeof e&&e.split("/*")[0].includes("var(--")}let ed=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,eu=e=>180*e/Math.PI,eh=e=>em(eu(Math.atan2(e[1],e[0]))),ep={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:eh,rotateZ:eh,skewX:e=>
1eu(Math.atan(e[1])),skewY:e=>eu(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},em=e=>((e%=360)<0&&(e+=360),e),ef=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),eg=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),ex={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:ef,scaleY:eg,scale:e=>(ef(e)+eg(e))/2,rotateX:e=>em(eu(Math.atan2(e[6],e[5]))),rotateY:e=>em(eu(Math.atan2(-e[2],e[0]))),rotateZ:eh,rotate:eh,skewX:e=>eu(Math.atan(e[4])),skewY:e=>eu(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function ev(e){return+!!e.includes("scale")}function ey(e,t){let i,s;if(!e||"none"===e)return ev(t);let n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(n)i=ex,s=n;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=ep,s=t}if(!s)return ev(t);let r=i[t],a=s[1].split(",").map(eb);return"function"==typeof r?r(a):a[r]}function eb(e){return parseFloat(e.trim())}let ew=e=>e===d||e===S,ek=new Set(["x","y","z"]),ej=o.filter(e=>!ek.has(e)),eS={width:({x:e},{paddingLeft:t="0",paddingRight:i="0",boxSizing:s})=>{let n=e.max-e.min;return"border-box"===s?n:n-parseFloat(t)-parseFloat(i)},height:({y:e},{paddingTop:t="0",paddingBottom:i="0",boxSizing:s})=>{let n=e.max-e.min;return"border-box"===s?n:n-parseFloat(t)-parseFloat(i)},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:(e,{transform:t})=>ey(t,"x"),y:(e,{transform:t})=>ey(t,"y")};eS.translateX=eS.x,eS.translateY=eS.y;let eP=e=>e,eA={},ez=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function eT(e,t){let i=!1,s=!0,n={delta:0,timestamp:0,isProcessing:!1},r=()=>i=!0,a=ez.reduce((e,i)=>(e[i]=function(e,t){let i=new Set,s=new Set,n=!1,r=!1,a=new WeakSet,o={delta:0,timestamp:0,isProcessing:!1},l=0;function c(t){a.has(t)&&(d.schedule(t),e()),l++,t(o)}let d={schedule:(e,t=!1,r=!1)=>{let o=r&&n?i:s;return t&&a.add(e),o.add(e),e},cancel:e=>{s.delete(e),a.delete(e)},process:e=>{if(o=e,n){r=!0;return}n=!0;let a=i;i=s,s=a,i.forEach(c),t,l=0,i.clear(),n=!1,r&&(r=!1,d.process(e))}};return d}(r,t?i:void 0),e),{}),{setup:o,read:l,resolveKeyframes:c,preUpdate:d,update:u,preRender:h,render:p,postRender:m}=a,f=()=>{let r=eA.useManualTiming,a=r?n.timestamp:performance.now();i=!1,r||(n.delta=s?1e3/60:Math.max(Math.min(a-n.timestamp,40),1)),n.timestamp=a,n.isProcessing=!0,o.process(n),l.process(n),c.process(n),d.process(n),u.process(n),h.process(n),p.process(n),m.process(n),n.isProcessing=!1,i&&t&&(s=!1,e(f))};return{schedule:ez.reduce((t,r)=>{let o=a[r];return t[r]=(t,r=!1,a=!1)=>(!i&&(i=!0,s=!0,n.isProcessing||e(f)),o.schedule(t,r,a)),t},{}),cancel:e=>{for(let t=0;t<ez.length;t++)a[ez[t]].cancel(e)},state:n,steps:a}}let{schedule:eN,cancel:eC,state:eM,steps:eE}=eT("u">typeof requestAnimationFrame?requestAnimationFrame:eP,!0),eD=new Set,eV=!1,eR=!1,eL=!1;function eO(){if(eR){let e=Array.from(eD).filter(e=>e.needsMeasurement),t=new Set(e.map(e=>e.element)),i=new Map;t.forEach(e=>{let t,s=(t=[],ej.forEach(i=>{let s=e.getValue(i);void 0!==s&&(t.push([i,s.get()]),s.set(+!!i.startsWith("scale")))}),t);s.length&&(i.set(e,s),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=i.get(e);t&&t.forEach(([t,i])=>{e.getValue(t)?.set(i)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{void 0!==e.suspendedScrollY&&window.scrollTo(0,e.suspendedScrollY)})}eR=!1,eV=!1,eD.forEach(e=>e.complete(eL)),eD.clear()}function eI(){eD.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(eR=!0)})}class e${constructor(e,t,i,s,n,r=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=i,this.motionValue=s,this.element=n,this.isAsync=r}scheduleResolve(){this.state="scheduled",this.isAsync?(eD.add(this),eV||(eV=!0,eN.read(eI),eN.resolveKeyframes(eO))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:i,motionValue:s}=this;if(null===e[0]){let n=s?.get(),r=e[e.length-1];if(void 0!==n)e[0]=n;else if(i&&t){let s=i.readValue(t,r);null!=s&&(e[0]=s)}void 0===e[0]&&(e[0]=r),s&&void 0===n&&s.set(e[0])}for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),eD.delete(this)}cancel(){"scheduled"===this.state&&(eD.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}let eB=new Set([B,F]);function eF(e,t){let i=W(e);return eB.has(i)||(i=L),i.getAnimatableNone?i.getAnimatableNone(t):void 0}
1let eH=new Set(["auto","none","0"]);class eU extends e${constructor(e,t,i,s,n){super(e,t,i,s,n,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:i}=this;if(!t||!t.current)return;super.readKeyframes();for(let i=0;i<e.length;i++){let s=e[i];if("string"==typeof s&&eo(s=s.trim())){let n=function e(t,i,s=1){es(s<=4,`Max CSS variable fallback depth detected in property "${t}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[n,r]=function(e){let t=ed.exec(e);if(!t)return[,];let[,i,s,n]=t;return[`--${i??s}`,n]}(t);if(!n)return;let a=window.getComputedStyle(i).getPropertyValue(n);if(a){let e=a.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e)?parseFloat(e):e}return eo(r)?e(r,i,s+1):r}(s,t.current);void 0!==n&&(e[i]=n),i===e.length-1&&(this.finalKeyframe=s)}}if(this.resolveNoneKeyframes(),!J.has(i)||2!==e.length)return;let[s,n]=e,r=ee(s),a=ee(n);if(ec(s)!==ec(n)&&eS[i]){this.needsMeasurement=!0;return}if(r!==a)if(ew(r)&&ew(a))for(let t=0;t<e.length;t++){let i=e[t];"string"==typeof i&&(e[t]=parseFloat(i))}else eS[i]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,i=[];for(let t=0;t<e.length;t++)(null===e[t]||function(e){if("number"==typeof e)return 0===e;if(null===e)return!0;return"none"===e||"0"===e||/^0[^.\s]+$/u.test(e)}(e[t]))&&i.push(t);i.length&&function(e,t,i){let s,n=0;for(;n<e.length&&!s;){let t=e[n];"string"==typeof t&&!eH.has(t)&&V(t).values.length&&(s=e[n]),n++}if(s&&i)for(let n of t)e[n]=eF(i,s)}(e,i,t)}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:i}=this;if(!e||!e.current)return;"height"===i&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=eS[i](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;let s=t[t.length-1];void 0!==s&&e.getValue(i,s).jump(s,!1)}measureEndState(){let{element:e,name:t,unresolvedKeyframes:i}=this;if(!e||!e.current)return;let s=e.getValue(t);s&&s.jump(this.measuredOrigin,!1);let n=i.length-1,r=i[n];i[n]=eS[t](e.measureViewportBox(),window.getComputedStyle(e.current)),null!==r&&void 0===this.finalKeyframe&&(this.finalKeyframe=r),this.removedTransforms?.length&&this.removedTransforms.forEac
1h(([t,i])=>{e.getValue(t).set(i)}),this.resolveNoneKeyframes()}}let e_=e=>1e3*e;function eW(e,t){-1===e.indexOf(t)&&e.push(t)}function eG(e,t){let i=e.indexOf(t);i>-1&&e.splice(i,1)}class eK{constructor(){this.subscriptions=[]}add(e){return eW(this.subscriptions,e),()=>eG(this.subscriptions,e)}notify(e,t,i){let s=this.subscriptions.length;if(s)if(1===s)this.subscriptions[0](e,t,i);else for(let n=0;n<s;n++){let s=this.subscriptions[n];s&&s(e,t,i)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function eq(e,t,i){t.startsWith("--")?e.style.setProperty(t,i):e.style[t]=i}function eX(e){let t;return()=>(void 0===t&&(t=e()),t)}let eY={};function eJ(e,t){let i=eX(e);return()=>eY[t]??i()}let eZ=eJ(()=>void 0!==window.ScrollTimeline,"scrollTimeline"),eQ=e=>null!==e;function e0(e,{repeat:t,repeatType:i="loop"},s,n=1){let r=e.filter(eQ),a=n<0||t&&"loop"!==i&&t%2==1?0:r.length-1;return a&&void 0!==s?s:r[a]}class e1{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}}let e2={layout:0,mainThread:0,waapi:0},e3=e=>Array.isArray(e)&&"number"==typeof e[0],e4=eJ(()=>{try{document.createElement("div").animate({opacity:0}
1,{easing:"linear(0, 1)"})}catch(e){return!1}return!0},"linearEasing"),e5=(e,t,i=10)=>{let s="",n=Math.max(Math.round(t/i),2);for(let t=0;t<n;t++)s+=Math.round(1e4*e(t/(n-1)))/1e4+", ";return`linear(${s.substring(0,s.length-2)})`},e6=([e,t,i,s])=>`cubic-bezier(${e}, ${t}, ${i}, ${s})`,e8={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:e6([0,.65,.55,1]),circOut:e6([.55,0,1,.45]),backIn:e6([.31,.01,.66,-.59]),backOut:e6([.33,1.53,.69,.99])};function e7(e){return"function"==typeof e&&"applyToOptions"in e}class e9 extends e1{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:t,name:i,keyframes:s,pseudoElement:n,allowFlatten:r=!1,finalKeyframe:a,onComplete:o}=e;this.isPseudoElement=!!n,this.allowFlatten=r,this.options=e,es("string"!=typeof e.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:e,...t}){return e7(e)&&e4()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}(e);this.animation=function(e,t,i,{delay:s=0,duration:n=300,repeat:r=0,repeatType:a="loop",ease:o="easeOut",times:l}={},c){let d={[t]:i};l&&(d.offset=l);let u=function e(t,i){if(t)return"function"==typeof t?e4()?e5(t,i):"ease-out":e3(t)?e6(t):Array.isArray(t)?t.map(t=>e(t,i)||e8.easeOut):e8[t]}(o,n);Array.isArray(u)&&(d.easing=u);let h={delay:s,duration:n,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:r+1,direction:"reverse"===a?"alternate":"normal"};c&&(h.pseudoElement=c);let p=e.animate(d,h);return p}(t,i,s,l,n),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!n){let e=e0(s,this.options,a,this.speed);this.updateMotionValue&&this.updateMotionValue(e),eq(t,i,e),this.animation.cancel()}o?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(e){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;"idle"!==e&&"finished"!==e&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+e/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(e){let t=null!==this.finishedTime;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=e_(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:t,rangeEnd:i,observe:s}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&eZ())?(this.animation.timeline=e,t&&(this.animation.rangeStart=t),i&&(this.animation.rangeEnd=i),eP):s(this)}}let te=new Set(["opacity","clipPath","filter","transform"]),{schedule:tt}=eT(queueMicrotask,!1);function ti(){t=void 0}let ts={now:()=>(void 0===t&&ts.set(eM.isProcessing||eA.useManualTiming?eM.timestamp:performance.now()),t),set:e=>{t=e,queueMicrotask(ti)}},tn=(e,t)=>t?1e3/t*e:0,tr;class ta{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=ts.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=ts.now(),null===this.canTrackVelocity&&void 0!==e&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,t){this.events[e]||(this.events[e]=new eK);let i=this.events[e].add(t);return"change"===e?()=>{i(),eN.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,i){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-i}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return tr&&tr.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=ts.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||e-this.updatedAt>30)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,30);return tn(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function to(e,t){return new ta(e,t)}let tl=[...Q,N,L],tc=new WeakMap;function td(e){return null!==e&&"object"==typeof e&&"function"==typeof e.start}function tu(e){return"string"==typeof e||Array.isArray(e)}let th=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tp=["initial",...th];function tm(e){return td(e.animate)||tp.some(t=>tu(e[t]))}function tf(e){return!!(tm(e)||e.variants)}let tg={current:null},tx={current:!1},tv="u">typeof window;function ty(e){let t=[{},{}];
1return e?.values.forEach((e,i)=>{t[0][i]=e.get(),t[1][i]=e.getVelocity()}),t}function tb(e,t,i,s){if("function"==typeof t){let[n,r]=ty(s);t=t(void 0!==i?i:e.custom,n,r)}if("string"==typeof t&&(t=e.variants&&e.variants[t]),"function"==typeof t){let[n,r]=ty(s);t=t(void 0!==i?i:e.custom,n,r)}return t}let tw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],tk={};class tj{scrapeMotionValuesFromProps(e,t,i){return{}}constructor({parent:e,props:t,presenceContext:i,reducedMotionConfig:s,skipAnimations:n,blockInitialAnimation:r,visualState:a},o={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=e$,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,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.renderScheduledAt=0,this.scheduleRender=()=>{let e=ts.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,eN.render(this.render,!1,!0))};const{latestValues:l,renderState:c}=a;this.latestValues=l,this.baseTarget={...l},this.initialValues=t.initial?{...l}:{},this.renderState=c,this.parent=e,this.props=t,this.presenceContext=i,this.depth=e?e.depth+1:0,this.reducedMotionConfig=s,this.skipAnimationsConfig=n,this.options=o,this.blockInitialAnimation=!!r,this.isControllingVariants=tm(t),this.isVariantNode=tf(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:d,...u}=this.scrapeMotionValuesFromProps(t,{},this);for(const e in u){const t=u[e];void 0!==l[e]&&Y(t)&&t.set(l[e])}}mount(e){if(this.hasBeenMounted)for(let e in this.initialValues)this.values.get(e)?.jump(this.initialValues[e]),this.latestValues[e]=this.initialValues[e];this.current=e,tc.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(tx.current||function(){if(tx.current=!0,tv)if(window.matchMedia){let e=window.matchMedia("(prefers-reduced-motion)"),t=()=>tg.current=e.matches;e.addEventListener("change",t),t()}else tg.current=!1}(),this.shouldReduceMotion=tg.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){for(let e in this.projection&&this.projection.unmount(),eC(this.notifyUpdate),eC(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){let i;if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),t.accelerate&&te.has(e)&&this.current instanceof HTMLElement){let{factory:i,keyframes:s,times:n,ease:r,duration:a}=t.accelerate,o=new e9({element:this.current,name:e,keyframes:s,times:n,ease:r,duration:e_(a)}),l=i(o);this.valueSubscriptions.set(e,()=>{l(),o.cancel()});return}let s=l.has(e);s&&this.onBindTransform&&this.onBindTransform();let n=t.on("change",t=>{this.latestValues[e]=t,this.props.onUpdate&&eN.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});"u">typeof window&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{n(),i&&i()})}sortNodePosition(e){return this.current&&this.sortInstanceNodePosition&&this.type===e.type?this.sortInstanceNodePosition(this.current,e.current):0}updateFeatures(){let e="animation";for(e in tk){let t=tk[e];if(!t)continue;let{isEnabled:i,Feature:s}=t;if(!this.features[e]&&s&&i(this.props)&&(this.features[e]=new s(this)),this.features[e]){let t=this.features[e];
1t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):X()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<tw.length;t++){let i=tw[t];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);let s=e["on"+i];s&&(this.propEventSubscriptions[i]=this.on(i,s))}this.prevMotionValues=function(e,t,i){for(let s in t){let n=t[s],r=i[s];if(Y(n))e.addValue(s,n);else if(Y(r))e.addValue(s,to(n,{owner:e}));else if(r!==n)if(e.hasValue(s)){let t=e.getValue(s);!0===t.liveStyle?t.jump(n):t.hasAnimated||t.set(n)}else{let t=e.getStaticValue(s);e.addValue(s,to(void 0!==t?t:n,{owner:e}))}}for(let s in i)void 0===t[s]&&e.removeValue(s);return t}(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){let t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){let i=this.values.get(e);t!==i&&(i&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let i=this.values.get(e);return void 0===i&&void 0!==t&&(i=to(null===t?void 0:t,{owner:this}),this.addValue(e,i)),i}readValue(e,t){let i=void 0===this.latestValues[e]&&this.current?this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options):this.latestValues[e];if(null!=i){let s,n;if("string"==typeof i&&(s=i,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(s)||(n=i,/^0[^.\s]+$/u.test(n))))i=parseFloat(i);else{let s;s=i,!tl.find(Z(s))&&L.test(t)&&(i=eF(e,t))}this.setBaseTarget(e,Y(i)?i.get():i)}return Y(i)?i.get():i}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){let t,{initial:i}=this.props;if("string"==typeof i||"object"==typeof i){let s=tb(this.props,i,this.presenceContext?.custom);s&&(t=s[e])}if(i&&void 0!==t)return t;let s=this.getBaseTargetFromProps(this.props,e);return void 0===s||Y(s)?void 0!==this.initialValues[e]&&void 0===t?void 0:this.baseTarget[e]:s}on(e,t){return this.events[e]||(this.events[e]=new eK),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){tt.render(this.render)}}class tS extends tj{constructor(){super(...arguments),this.KeyframeResolver=eU}sortInstanceNodePosition(e,t){return 2&e.compareDocumentPosition(t)?1:-1}getBaseTargetFromProps(e,t){let i=e.style;return i?i[t]:void 0}removeValueFromRenderState(e,{vars:t,style:i}){delete t[e],delete i[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;Y(e)&&(this.childSubscription=e.on("change",e=>{this.current&&(this.current.textContent=`${e}`)}))}}function tP(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}let tA=(e,t)=>t&&"number"==typeof e?t.transform(e):e,tz={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},tT=o.length;function tN(e,t,i){let{style:s,vars:n,transformOrigin:r}=e,a=!1,c=!1;for(let e in t){let i=t[e];if(l.has(e)){a=!0;continue}if(er(e)){n[e]=i;continue}{let t=tA(i,U[e]);e.startsWith("origin")?(c=!0,r[e]=t):s[e]=t}}if(!t.transform&&(a||i?s.transform=function(e,t,i){let s="",n=!0;for(let r=0;r<tT;r++){let a=o[r],l=e[a];if(void 0===l)continue;let c=!0;if("number"==typeof l)c=l===+!!a.startsWith("scale");else{let e=parseFloat(l);c=a.startsWith("scale")?1===e:0===e}if(!c||i){let e=tA(l,U[a]);if(!c){n=!1;let t=tz[a]||a;s+=`${t}(${e}) `}i&&(t[a]=e)}}let r=e.pathRotation;return r&&(n=!1,s+=`rotate(${tA(r,U.pathRotation)}) `),s=s.trim(),i?s=i(t,n?"":s):n&&(s="none"),s}(t,e.transform,i):s.transform&&(s.transform="none")),c){let{originX:e="50%",originY:t="50%",originZ:i=0}=r;s.transformOrigin=`${e} ${t} ${i}`}}let tC={offset:"stroke-dashoffset",array:"stroke-dasharray"},tM={offset:"strokeDashoffset",array:"strokeDasharray"},tE=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function tD(e,{attrX:t,attrY:i,attrScale:s,pathLength:n,pathSpacing:r=1,pathOffset:a=0,...o}
1,l,c,d){if(tN(e,o,c),l){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:u,style:h}=e;for(let e of(u.transform&&(h.transform=u.transform,delete u.transform),(h.transform||u.transformOrigin)&&(h.transformOrigin=u.transformOrigin??"50% 50%",delete u.transformOrigin),h.transform&&(h.transformBox=d?.transformBox??"fill-box",delete u.transformBox),tE))void 0!==u[e]&&(h[e]=u[e],delete u[e]);void 0!==t&&(u.x=t),void 0!==i&&(u.y=i),void 0!==s&&(u.scale=s),void 0!==n&&function(e,t,i=1,s=0,n=!0){e.pathLength=1;let r=n?tC:tM;e[r.offset]=`${-s}`,e[r.array]=`${t} ${i}`}(u,n,r,a,!1)}let tV=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),tR=e=>"string"==typeof e&&"svg"===e.toLowerCase();function tL(e,{style:t,vars:i},s,n){let r,a=e.style;for(r in t)a[r]=t[r];for(r in n?.applyProjectionStyles(a,s),i)a.setProperty(r,i[r])}function tO(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}let tI={correct:(e,t)=>{if(!t.target)return e;if("string"==typeof e)if(!S.test(e))return e;else e=parseFloat(e);let i=tO(e,t.target.x),s=tO(e,t.target.y);return`${i}% ${s}%`}},t$=(e,t,i)=>e+(t-e)*i,tB={borderRadius:{...tI,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:tI,borderTopRightRadius:tI,borderBottomLeftRadius:tI,borderBottomRightRadius:tI,boxShadow:{correct:(e,{treeScale:t,projectionDelta:i})=>{let s=L.parse(e);if(s.length>5)return e;let n=L.createTransformer(e),r=+("number"!=typeof s[0]),a=i.x.scale*t.x,o=i.y.scale*t.y;s[0+r]/=a,s[1+r]/=o;let l=t$(a,o,.5);return"number"==typeof s[2+r]&&(s[2+r]/=l),"number"==typeof s[3+r]&&(s[3+r]/=l),n(s)}}};function tF(e,{layout:t,layoutId:i}){return l.has(e)||e.startsWith("origin")||(t||void 0!==i)&&(!!tB[e]||"opacity"===e)}function tH(e,t,i){let s=e.style,n=t?.style,r={};if(!s)return r;for(let t in s)(Y(s[t])||n&&Y(n[t])||tF(t,e)||i?.getValue(t)?.liveStyle!==void 0)&&(r[t]=s[t]);return r}function tU(e,t,i){let s=tH(e,t,i);for(let i in e)(Y(e[i])||Y(t[i]))&&(s[-1!==o.indexOf(i)?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i]=e[i]);return s}class t_ extends tS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=X}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(l.has(t)){let e=W(t);return e&&e.default||0}return t=tV.has(t)?t:tP(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,i){return tU(e,t,i)}build(e,t,i){tD(e,t,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(e,t,i,s){for(let i in tL(e,t,void 0,s),t.attrs)e.setAttribute(tV.has(i)?i:tP(i),t.attrs[i])}mount(e){this.isSVGTag=tR(e.tagName),super.mount(e)}}function tW({top:e,left:t,right:i,bottom:s}){return{x:{min:t,max:i},y:{min:e,max:s}}}function tG(e){return void 0===e||1===e}function tK({scale:e,scaleX:t,scaleY:i}){return!tG(e)||!tG(t)||!tG(i)}function tq(e){return tK(e)||tX(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function tX(e){var t,i;return(t=e.x)&&"0%"!==t||(i=e.y)&&"0%"!==i}function tY(e,t,i,s,n){return void 0!==n&&(e=s+n*(e-s)),s+i*(e-s)+t}function tJ(e,t=0,i=1,s,n){e.min=tY(e.min,t,i,s,n),e.max=tY(e.max,t,i,s,n)}function tZ(e,{x:t,y:i}){tJ(e.x,t.translate,t.scale,t.originPoint),tJ(e.y,i.translate,i.scale,i.originPoint)}function tQ(e,t){e.min+=t,e.max+=t}function t0(e,t,i,s,n=.5){let r=t$(e.min,e.max,n);tJ(e,t,i,r,s)}function t1(e,t){return"string"==typeof e?parseFloat(e)/100*(t.max-t.min):e}function t2(e,t,i){let s=i??e;t0(e.x,t1(t.x,s.x),t.scaleX,t.scale,t.originX),t0(e.y,t1(t.y,s.y),t.scaleY,t.scale,t.originY)}function t3(e,t){return tW(function(e,t){if(!t)return e;let i=t({x:e.left,y:e.top}),s=t({x:e.right,y:e.bottom});return{top:i.y,left:i.x,bottom:s.y,right:s.x}}(e.getBoundingClientRect(),t))}class t4 extends tS{constructor(){super(...arguments),this.type="html",this.renderInstance=tL}readValueFromInstance(e,t){if(l.has(t))return this.projection?.isProjecting?ev(t):((e,t)=>{let{transform:i="none"}=getComputedStyle(e);return ey(i,t)})(e,t);{let i=window.getComputedStyle(e),s=(er(t)?i.getPropertyValue(t):i[t])||0;return"string"==typeof s?s.trim():s}}measureInstanceViewportBox(e,{transformPagePoint:t}){return t3(e,t)}build(e,t,i){tN(e,t,i.transformTemplate)}scrapeMotionValuesFromProps(e,t,i){return tH(e,t,i)}}let t5=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function t6(e){if("string"!=typeof e||e.includes("-"));else if(t5.indexOf(e)>-1||/[A-Z]/u.test(e))return!0;return!1}let t8=(0,a.createContext)({}),t7=(0,a.createContext)({strict:!1}),t9=(0,a.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),ie=(0,a.createContext)({});function it(e){return Array.isArray(e)?e.join(" "):e}let ii=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function is(e,t,i){for(let s in t)Y(t[s])||tF(s,i)||(e[s]=t[s])}let ir=()=>({...ii(),attrs:{}}),ia=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function io(e){return e.startsWith("while")||e.startsWith("drag")&&"draggable"!==e||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||ia.has(e)}let il=e=>!io(e);try{n=(()=>{let e=Error("Cannot find module '@emotion/is-prop-valid'");throw e.code="MODULE_NOT_FOUND",e})().default,"function"==typeof n&&(il=e=>e.startsWith("on")?!io(e):n(e))}catch{}function ic(e){return Y(e)?e.get():e}let id=(0,a.createContext)(null);function iu(e){let t=(0,a.useRef)(null);return null===t.current&&(t.current=e()),t.current}let ih=e=>(t,i)=>{let s=(0,a.useContext)(ie),n=(0,a.useContext)(id),r=()=>(function({scrapeMotionValuesFromProps:e,createRenderState:t},i,s,n){return{latestValues:function(e,t,i,s){let n={},r=s(e,{});for(let e in r)n[e]=ic(r[e]);let{initial:a,animate:o}=e,l=tm(e),c=tf(e);t&&c&&!l&&!1!==e.inherit&&(void 0===a&&(a=t.initial),void 0===o&&(o=t.animate));let d=!!i&&!1===i.initial,u=(d=d||!1===a)?o:a;if(u&&"boolean"!=typeof u&&!td(u)){let t=Array.isArray(u)?u:[u];for(let i=0;i<t.length;i++){let s=tb(e,t[i]);if(s){let{transitionEnd:e,transition:t,...i}=s;for(let e in i){let t=i[e];if(Array.isArray(t)){let e=d?t.length-1:0;t=t[e]}null!==t&&(n[e]=t)}for(let t in e)n[t]=e[t]}}}return n}(i,s,n,e),renderState:t()}})(e,t,s,n);return i?r():iu(r)},ip=ih({scrapeMotionValuesFromProps:tH,createRenderState:ii}),im=ih({scrapeMotionValuesFromProps:tU,createRenderState:ir}),ig={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},ix=!1;function iv(){return!function(){if(ix)return;let e={};for(let t in ig)e[t]={isEnabled:e=>ig[t].some(t=>!!e[t])};tk=e,ix=!0}(),tk}let iy=Symbol.for("motionComponentSymbol"),ib="data-"+tP("framerAppearId"),iw=(0,a.createContext)({});function ik(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}let ij="u">typeof window?a.useLayoutEffect:a.useEffect;function iS(e,{forwardMotionProps:t=!1,type:i}={},s,n){s&&function(e){let t=iv();for(let i in e)t[i]={...t[i],...e[i]};tk=t}(s);let o=i?"svg"===i:t6(e),l=o?im:ip;function c(i,s){var c;let d,u,h,p={...(0,a.useContext)(t9),...i,layoutId:function({layoutId:e}){let t=(0,a.useContext)(t8).id;return t&&void 0!==e?t+"-"+e:e}(i)},{isStatic:m}=p,f=function(e){let{initial:t,animate:i}=function(e,t){if(tm(e)){let{initial:t,animate:i}=e;return{initial:!1===t||tu(t)?t:void 0,animate:tu(i)?i:void 0}}return!1!==e.inherit?t:{}}(e,(0,a.useContext)(ie));return(0,a.useMemo)(()=>({initial:t,animate:i}),[it(t),it(i)])}(i),g=l(i,m);if(!m&&"u">typeof window){(0,a.useContext)(t7).strict;let t=function(e){let{drag:t,layout:i}=iv();if(!t&&!i)return{};let s={...t,...i};return{MeasureLayout:t?.isEnabled(e)||i?.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}
1(p);d=t.MeasureLayout,f.visualElement=function(e,t,i,s,n,r){let{visualElement:o}=(0,a.useContext)(ie),l=(0,a.useContext)(t7),c=(0,a.useContext)(id),d=(0,a.useContext)(t9),u=d.reducedMotion,h=d.skipAnimations,p=(0,a.useRef)(null),m=(0,a.useRef)(!1);s=s||l.renderer,!p.current&&s&&(p.current=s(e,{visualState:t,parent:o,props:i,presenceContext:c,blockInitialAnimation:!!c&&!1===c.initial,reducedMotionConfig:u,skipAnimations:h,isSVG:r}),m.current&&p.current&&(p.current.manuallyAnimateOnMount=!0));let f=p.current,g=(0,a.useContext)(iw);f&&!f.projection&&n&&("html"===f.type||"svg"===f.type)&&function(e,t,i,s){let{layoutId:n,layout:r,drag:a,dragConstraints:o,layoutScroll:l,layoutRoot:c,layoutAnchor:d,layoutCrossfade:u}=t;e.projection=new i(e.latestValues,t["data-framer-portal-id"]?void 0:function e(t){if(t)return!1!==t.options.allowProjection?t.projection:e(t.parent)}(e.parent)),e.projection.setOptions({layoutId:n,layout:r,alwaysMeasureLayout:!!a||o&&ik(o),visualElement:e,animationType:"string"==typeof r?r:"both",initialPromotionConfig:s,crossfade:u,layoutScroll:l,layoutRoot:c,layoutAnchor:d})}(p.current,i,n,g);let x=(0,a.useRef)(!1);(0,a.useInsertionEffect)(()=>{f&&x.current&&f.update(i,c)});let v=i[ib],y=(0,a.useRef)(!!v&&"u">typeof window&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return ij(()=>{m.current=!0,f&&(x.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),f.scheduleRenderMicrotask(),y.current&&f.animationState&&f.animationState.animateChanges())}),(0,a.useEffect)(()=>{f&&(!y.current&&f.animationState&&f.animationState.animateChanges(),y.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),y.current=!1),f.enteringChildren=void 0)}),f}(e,g,p,n,t.ProjectionNode,o)}return(0,r.jsxs)(ie.Provider,{value:f,children:[d&&f.visualElement?(0,r.jsx)(d,{visualElement:f.visualElement,...p}):null,function(e,t,i,{latestValues:s},n,r=!1,o){let l=(o??t6(e)?function(e,t,i,s){let n=(0,a.useMemo)(()=>{let i=ir();return tD(i,t,tR(s),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[t]);if(e.style){let t={};is(t,e.style,e),n.style={...t,...n.style}}return n}:function(e,t){let i,s,n={},r=(i=e.style||{},is(s={},i,e),Object.assign(s,function({transformTemplate:e},t){return(0,a.useMemo)(()=>{let i=ii();return tN(i,t,e),Object.assign({},i.vars,i.style)},[t])}(e,t)),s);return e.drag&&!1!==e.dragListener&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=!0===e.drag?"none":`pan-${"x"===e.drag?"y":"x"}`),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n})(t,s,n,e),c=function(e,t,i){let s={};for(let n in e)("values"!==n||"object"!=typeof e.values)&&!Y(e[n])&&(il(n)||!0===i&&io(n)||!t&&!io(n)||e.draggable&&n.startsWith("onDrag"))&&(s[n]=e[n]);return s}(t,"string"==typeof e,r),d=e!==a.Fragment?{...c,...l,ref:i}:{},{children:u}=t,h=(0,a.useMemo)(()=>Y(u)?u.get():u,[u]);return(0,a.createElement)(e,{...d,children:h})}(e,i,(c=f.visualElement,u=(0,a.useRef)(s),(0,a.useInsertionEffect)(()=>{u.current=s}),h=(0,a.useRef)(null),(0,a.useCallback)(e=>{e&&g.onMount?.(e),c&&(e?c.mount(e):c.unmount());let t=u.current;if("function"==typeof t)if(e){let i=t(e);"function"==typeof i&&(h.current=i)}else h.current?(h.current(),h.current=null):t(e);else t&&(t.current=e)},[c])),g,m,t,o)]})}c.displayName=`motion.${"string"==typeof e?e:`create(${e.displayName??e.name??""})`}`;let d=(0,a.forwardRef)(c);return d[iy]=e,d}class iP{constructor(e){this.isMounted=!1,this.node=e}update(){}}function iA(e,t,i){let s=e.getProps();return tb(s,t,void 0!==i?i:s.custom,e)}function iz(e,t){if(e?.inherit&&t){let{inherit:i,...s}=e;return{...t,...s}}return e}function iT(e,t){let i=e?.[t]??e?.default??e;return i!==e?iz(i,e):i}let iN=e=>Array.isArray(e);function iC(e,t){let i=e.getValue("willChange");if(Y(i)&&i.add)return i.add(t);if(!i&&eA.WillChange){let i=new eA.WillChange("auto");e.addValue("willChange",i),i.add(t)}}let iM=(...e)=>e.reduce((e,t)=>i=>t(e(i)));function iE(e,t,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?e+(t-e)*6*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}function iD(e,t){return i=>i>0?t:e}let iV=(e,t,i)=>{let s=e*e,n=i*(t*t-s)+s;return n<0?0:Math.sqrt(n)},iR=[b,y,T];function iL(e){let t=iR.find(t=>t.test(e));if(ei(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!t)return!1;let i=t.parse(e);return t===T&&(i=function({hue:e,saturation:t,lightness:i,alpha:s}){e/=360,i/=100;let n=0,r=0,a=0;if(t/=100){let s=i<.5?i*(1+t):i+t-i*t,o=2*i-s;n=iE(o,s,e+1/3),r=iE(o,s,e),a=iE(o,s,e-1/3)}else n=r=a=i;return{red:Math.round(255*n),green:Math.round(255*r),blue:Math.round(255*a),alpha:s}}(i)),i}let iO=(e,t)=>
1{let i=iL(e),s=iL(t);if(!i||!s)return iD(e,t);let n={...i};return e=>(n.red=iV(i.red,s.red,e),n.green=iV(i.green,s.green,e),n.blue=iV(i.blue,s.blue,e),n.alpha=t$(i.alpha,s.alpha,e),y.transform(n))},iI=new Set(["none","hidden"]);function i$(e,t){return i=>t$(e,t,i)}function iB(e){return"number"==typeof e?i$:"string"==typeof e?eo(e)?iD:N.test(e)?iO:iU:Array.isArray(e)?iF:"object"==typeof e?N.test(e)?iO:iH:iD}function iF(e,t){let i=[...e],s=i.length,n=e.map((e,i)=>iB(e)(e,t[i]));return e=>{for(let t=0;t<s;t++)i[t]=n[t](e);return i}}function iH(e,t){let i={...e,...t},s={};for(let n in i)void 0!==e[n]&&void 0!==t[n]&&(s[n]=iB(e[n])(e[n],t[n]));return e=>{for(let t in s)i[t]=s[t](e);return i}}let iU=(e,t)=>{let i=L.createTransformer(t),s=V(e),n=V(t);if(!(s.indexes.var.length===n.indexes.var.length&&s.indexes.color.length===n.indexes.color.length&&s.indexes.number.length>=n.indexes.number.length))return ei(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),iD(e,t);if(iI.has(e)&&!n.values.length||iI.has(t)&&!s.values.length)return iI.has(e)?i=>i<=0?e:t:i=>i>=1?t:e;return iM(iF(function(e,t){let i=[],s={color:0,var:0,number:0};for(let n=0;n<t.values.length;n++){let r=t.types[n],a=e.indexes[r][s[r]],o=e.values[a]??0;i[n]=o,s[r]++}return i}(s,n),n.values),i)};function i_(e,t,i){return"number"==typeof e&&"number"==typeof t&&"number"==typeof i?t$(e,t,i):iB(e)(e,t)}let iW=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>eN.update(t,e),stop:()=>eC(t),now:()=>eM.isProcessing?eM.timestamp:ts.now()}};function iG(e){let t=0,i=e.next(t);for(;!i.done&&t<2e4;)t+=50,i=e.next(t);return t>=2e4?1/0:t}let iK=.01,iq=2,iX=.005,iY=.5;function iJ(e,t){return e*Math.sqrt(1-t*t)}let iZ=["duration","bounce"],iQ=["stiffness","damping","mass"];function i0(e,t){return t.some(t=>void 0!==e[t])}function i1(e=.3,t=.3){let i,s,n,r,a,o,l="object"!=typeof e?{visualDuration:e,keyframes:[0,1],bounce:t}:e,{restSpeed:d,restDelta:u}=l,h=l.keyframes[0],p=l.keyframes[l.keyframes.length-1],m={done:!1,value:h},{stiffness:f,damping:g,mass:x,duration:v,velocity:y,isResolvedFromDuration:b}=function(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!i0(e,iQ)&&i0(e,iZ))if(t.velocity=0,e.visualDuration){let i=2*Math.PI/(1.2*e.visualDuration),s=i*i,n=2*c(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:1,stiffness:s,damping:n}}else{let i=function({duration:e=800,bounce:t=.3,velocity:i=0,mass:s=1}){let n,r;ei(e<=e_(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let a=1-t;a=c(.05,1,a),e=c(.01,10,e/1e3),a<1?(n=t=>{let s=t*a,n=s*e;return .001-(s-i)/iJ(t,a)*Math.exp(-n)},r=t=>{let s=t*a*e,r=Math.pow(a,2)*Math.pow(t,2)*e,o=Math.exp(-s),l=iJ(Math.pow(t,2),a);return(s*i+i-r)*o*(-n(t)+.001>0?-1:1)/l}):(n=t=>-.001+Math.exp(-t*e)*((t-i)*e+1),r=t=>e*e*(i-t)*Math.exp(-t*e));let o=function(e,t,i){let s=i;for(let i=1;i<12;i++)s-=e(s)/t(s);return s}(n,r,5/e);if(e=e_(e),isNaN(o))return{stiffness:100,damping:10,duration:e};{let t=Math.pow(o,2)*s;return{stiffness:t,damping:2*a*Math.sqrt(s*t),duration:e}}}({...e,velocity:0});(t={...t,...i,mass:1}).isResolvedFromDuration=!0}return t}({...l,velocity:-((l.velocity||0)/1e3)}),w=y||0,k=g/(2*Math.sqrt(f*x)),j=p-h,S=Math.sqrt(f/x)/1e3,P=5>Math.abs(j);if(d||(d=P?iK:iq),u||(u=P?iX:iY),k<1)n=iJ(S,k),r=(w+k*S*j)/n,i=e=>p-Math.exp(-k*S*e)*(r*Math.sin(n*e)+j*Math.cos(n*e)),a=k*S*r+j*n,o=k*S*j-r*n,s=e=>Math.exp(-k*S*e)*(a*Math.sin(n*e)+o*Math.cos(n*e));else if(1===k){i=e=>p-Math.exp(-S*e)*(j+(w+S*j)*e);let e=w+S*j;s=t=>Math.exp(-S*t)*(S*e*t-w)}else{let e=S*Math.sqrt(k*k-1);i=t=>{let i=Math.exp(-k*S*t),s=Math.min(e*t,300);return p-i*((w+k*S*j)*Math.sinh(s)+e*j*Math.cosh(s))/e};let t=(w+k*S*j)/e,n=k*S*t-j*e,r=k*S*j-t*e;s=t=>{let i=Math.exp(-k*S*t),s=Math.min(e*t,300);return i*(n*Math.sinh(s)+r*Math.cosh(s))}}let A={calculatedDuration:b&&v||null,velocity:e=>e_(s(e)),next:e=>{if(!b&&k<1){let t=Math.exp(-k*S*e),i=Math.sin(n*e),s=Math.cos(n*e),l=p-t*(r*i+j*s);return m.done=Math.abs(e_(t*(a*i+o*s)))<=d&&Math.abs(p-l)<=u,m.value=m.done?p:l,m}let t=i(e);return b?m.done=e>=v:m.done=Math.abs(e_(s(e)))<=d&&Math.abs(p-t)<=u,m.value=m.done?p:t,m},toString:()=>{let e=Math.min(iG(A),2e4),t=e5(t=>A.next(e*t).value,e,30);return e+"ms "+t},toTransition:()=>{}};return A}function i2(e,t,i){let s=Math.max(t-5,0);return tn(i-e(s),t-s)}function i3({keyframes:e,velocity:t=0,power:i=.8,timeConstant:s=325,bounceDamping:n=10,bounceStiffness:r=500,modifyTarget:a,min:o,max:l,restDelta:c=.5,restSpeed:d}){let u,h,p=e[0],m={done:!1,value:p},f=i*t,g=p+f,x=void 0===a?g:a(g);x!==g&&(f=x-p);let v=e=>-f*Math.exp(-e/s),y=e=>x+v(e),b=e=>{let t=v(e),i=y(e);m.done=Math.abs(t)<=c,m.value=m.done?x:i},w=e=>{let t;if(t=m.value,void 0!==o&&t<o||void 0!==l&&t>l){var i;u=e,h=i1({keyframes:[m.value,(i=m.value,void 0===o?l:void 0===l||Math.abs(o-i)<Math.abs(l-i)?o:l)],velocity:i2(y,e,m.value),damping:n,stiffness:r,restDelta:c,restSpeed:d})}};return w(0),{calculatedDuration:null,next:e=>{let t=!1;
1return(h||void 0!==u||(t=!0,b(e),w(e)),void 0!==u&&e>=u)?h.next(e-u):(t||b(e),m)}}}i1.applyToOptions=e=>{let t=function(e,t=100,i){let s=i({...e,keyframes:[0,t]}),n=Math.min(iG(s),2e4);return{type:"keyframes",ease:e=>s.next(n*e).value/t,duration:n/1e3}}(e,100,i1);return e.ease=t.ease,e.duration=e_(t.duration),e.type="keyframes",e};let i4=(e,t,i)=>(((1-3*i+3*t)*e+(3*i-6*t))*e+3*t)*e;function i5(e,t,i,s){return e===t&&i===s?eP:n=>0===n||1===n?n:i4(function(e,t,i,s,n){let r,a,o=0;do(r=i4(a=t+(i-t)/2,s,n)-e)>0?i=a:t=a;while(Math.abs(r)>1e-7&&++o<12)return a}(n,0,1,e,i),t,s)}let i6=i5(.42,0,1,1),i8=i5(0,0,.58,1),i7=i5(.42,0,.58,1),i9=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,se=e=>t=>1-e(1-t),st=i5(.33,1.53,.69,.99),si=se(st),ss=i9(si),sn=e=>e>=1?1:(e*=2)<1?.5*si(e):.5*(2-Math.pow(2,-10*(e-1))),sr=e=>1-Math.sin(Math.acos(e)),sa=se(sr),so=i9(sr),sl={linear:eP,easeIn:i6,easeInOut:i7,easeOut:i8,circIn:sr,circInOut:so,circOut:sa,backIn:si,backInOut:ss,backOut:st,anticipate:sn},sc=e=>{if(e3(e)){es(4===e.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[t,i,s,n]=e;return i5(t,i,s,n)}return"string"==typeof e?(es(void 0!==sl[e],`Invalid easing type '${e}'`,"invalid-easing-type"),sl[e]):e},sd=(e,t,i)=>{let s=t-e;return s?(i-e)/s:1};function su({duration:e=300,keyframes:t,times:i,ease:s="easeInOut"}){var n;let r,a=Array.isArray(s)&&"number"!=typeof s[0]?s.map(sc):sc(s),o={done:!1,value:t[0]},l=function(e,t,{clamp:i=!0,ease:s,mixer:n}={}){let r=e.length;if(es(r===t.length,"Both input and output ranges must be the same length","range-length"),1===r)return()=>t[0];if(2===r&&t[0]===t[1])return()=>t[1];let a=e[0]===e[1];e[0]>e[r-1]&&(e=[...e].reverse(),t=[...t].reverse());let o=function(e,t,i){let s=[],n=i||eA.mix||i_,r=e.length-1;for(let i=0;i<r;i++){let r=n(e[i],e[i+1]);t&&(r=iM(Array.isArray(t)?t[i]||eP:t,r)),s.push(r)}return s}(t,s,n),l=o.length,d=i=>{if(a&&i<e[0])return t[0];let s=0;if(l>1)for(;s<e.length-2&&!(i<e[s+1]);s++);let n=sd(e[s],e[s+1],i);return o[s](n)};return i?t=>d(c(e[0],e[r-1],t)):d}((n=i&&i.length===t.length?i:(!function(e,t){let i=e[e.length-1];for(let s=1;s<=t;s++){let n=sd(0,t,s);e.push(t$(i,1,n))}}(r=[0],t.length-1),r),n.map(t=>t*e)),t,{ease:Array.isArray(a)?a:t.map(()=>a||i7).splice(0,t.length-1)});return{calculatedDuration:e,next:t=>(o.value=l(t),o.done=t>=e,o)}}let sh={decay:i3,inertia:i3,tween:su,keyframes:su,spring:i1};function sp(e){"string"==typeof e.type&&(e.type=sh[e.type])}let sm=e=>e/100;class sf extends e1{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==ts.now()&&this.tick(ts.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},e2.mainThread++,this.options=e,this.initAnimation(),this.play(),!1===e.autoplay&&this.pause()}initAnimation(){let{options:e}=this;sp(e);let{type:t=su,repeat:i=0,repeatDelay:s=0,repeatType:n,velocity:r=0}=e,{keyframes:a}=e,o=t||su;o!==su&&"number"!=typeof a[0]&&(this.mixKeyframes=iM(sm,i_(a[0],a[1])),a=[0,100]);let l=o({...e,keyframes:a});"mirror"===n&&(this.mirroredGenerator=o({...e,keyframes:[...a].reverse(),velocity:-r})),null===l.calculatedDuration&&(l.calculatedDuration=iG(l));let{calculatedDuration:c}=l;this.calculatedDuration=c,this.resolvedDuration=c+s,this.totalDuration=this.resolvedDuration*(i+1)-s,this.generator=l}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=t}tick(e,t=!1){let i,{generator:s,totalDuration:n,mixKeyframes:r,mirroredGenerator:a,resolvedDuration:o,calculatedDuration:l}=this;if(null===this.startTime)return s.next(0);let{delay:d=0,keyframes:u,repeat:h,repeatType:p,repeatDelay:m,type:f,onUpdate:g,finalKeyframe:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-n/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let v=this.currentTime-d*(this.playbackSpeed>=0?1:-1),y=this.playbackSpeed>=0?v<0:v>n;this.currentTime=Math.max(v,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=n);let b=this.currentTime,w=s;if(h){let e=Math.min(this.currentTime,n)/o,t=Math.floor(e),i=e%1;!i&&e>=1&&(i=1),1===i&&t--,(t=Math.min(t,h+1))%2&&("reverse"===p?(i=1-i,m&&(i-=m/o)):"mirror"===p&&(w=a)),b=c(0,1,i)*o}y?(this.delayState.value=u[0],i=this.delayState):i=w.next(b),r&&!y&&(i.value=r(i.value));let{done:k}=i;y||null===l||(k=this.playbackSpeed>=0?this.currentTime>=n:this.currentTime<=0);let j=null===this.holdTime&&("finished"===this.state||"running"===this.state&&k);return j&&f!==i3&&(i.value=e0(u,this.options,x,this.speed)),g&&g(i.value),j&&this.finish(),i}then(e,t){return this.finished.then(e,t)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+e/1e3}get time(){return this.currentTime/1e3}set time(e){e=e_(e),this.currentTime=e,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){let e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);let t=this.generator.next(e).value;return i2(e=>this.generator.next(e).value,e,t)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(ts.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:e=iW,startTime:t}=this.options;this.driver||(this.driver=e(e=>this.tick(e))),this.options.onPlay?.();let i=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=i):null!==this.holdTime?this.startTime=i-this.holdTime:this.startTime||(this.startTime=t??i),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ts.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,e2.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}let sg={anticipate:sn,backInOut:ss,circInOut:so};class sx extends e9{constructor(e){!function(e){"string"==typeof e.ease&&e.ease in sg&&(e.ease=sg[e.ease])}(e),sp(e),super(e),void 0!==e.startTime&&!1!==e.autoplay&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){let{motionValue:t,onUpdate:i,onComplete:s,element:n,...r}=this.options;if(!t)return;if(void 0!==e)return void t.set(e);let a=new sf({...r,autoplay:!1}),o=Math.max(10,ts.now()-this.startTime),l=c(0,10,o-10),d=a.sample(o).value,{name:u}=this.options;n&&u&&eq(n,u,d),t.setWithVelocity(a.sample(Math.max(0,o-l)).value,d,l),a.stop()}}let sv=(e,t)=>"zIndex"!==t&&!!("number"==typeof e||Array.isArray(e)||"string"==typeof e&&(L.test(e)||"0"===e)&&!e.startsWith("url("));function sy(e){e.duration=0,e.type="keyframes"}let sb=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/,sw=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),sk=eX(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class sj extends e1{constructor({autoplay:e=!0,delay:t=0,type:i="keyframes",repeat:s=0,repeatDelay:n=0,repeatType:r="loop",keyframes:a,name:o,motionValue:l,element:c,...d}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ts.now();const u={autoplay:e,delay:t,type:i,repeat:s,repeatDelay:n,repeatType:r,name:o,motionValue:l,element:c,...d},h=c?.KeyframeResolver||e$;this.keyframeResolver=new h(a,(e,t,i)=>this.onKeyframesResolved(e,t,u,!i),o,l,c),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,i,s){let n;this.keyframeResolver=void 0;let{name:r,type:a,velocity:o,delay:l,isHandoff:c,onUpdate:d}=i;this.resolvedAt=ts.now();let u=!0;!function(e,t,i,s){let n=e[0];if(null===n)return!1;if("display"===t||"visibility"===t)return!0;let r=e[e.length-1],a=sv(n,t),o=sv(r,t);return ei(a===o,`You are trying to animate ${t} from "${n}" to "${r}". "${a?r:n}" is not an animatable value.`,"value-not-animatable"),!!a&&!!o&&(function(e){let t=e[0];if(1===e.length)return!0;for(let i=0;i<e.length;i++)if(e[i]!==t)return!0}(e)||("spring"===i||e7(i))&&s)}(e,r,a,o)&&(u=!1,(eA.instantAnimations||!l)&&d?.(e0(e,i,t)),e[0]=e[e.length-1],sy(i),i.repeat=0);let h={startTime:s?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:t,...i,keyframes:e},p=u&&!c&&function(e){let{motionValue:t,name:i,repeatDelay:s,repeatType:n,damping:r,type:a,keyframes:o}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;
1let{onUpdate:l,transformTemplate:c}=t.owner.getProps();return sk()&&i&&(te.has(i)||sw.has(i)&&function(e){for(let t=0;t<e.length;t++)if("string"==typeof e[t]&&sb.test(e[t]))return!0;return!1}(o))&&("transform"!==i||!c)&&!l&&!s&&"mirror"!==n&&0!==r&&"inertia"!==a}(h),m=h.motionValue?.owner?.current;if(p)try{n=new sx({...h,element:m})}catch{n=new sf(h)}else n=new sf(h);n.finished.then(()=>{this.notifyFinished()}).catch(eP),this.pendingTimeline&&(this.stopTimeline=n.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=n}get finished(){return this._animation?this.animation.finished:this._finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),eL=!0,eI(),eO(),eL=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let sS={type:"spring",stiffness:500,damping:25,restSpeed:10},sP={type:"keyframes",duration:.8},sA={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},sz=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]),sT=(e,t,i,s={},n,r)=>a=>{let o=iT(s,e)||{},c=o.delay||s.delay||0,{elapsed:d=0}=s;d-=e_(c);let u={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:t.getVelocity(),...o,delay:-d,onUpdate:e=>{t.set(e),o.onUpdate&&o.onUpdate(e)},onComplete:()=>{a(),o.onComplete&&o.onComplete()},name:e,motionValue:t,element:r?void 0:n};!function(e){for(let t in e)if(!sz.has(t))return!0;return!1}(o)&&Object.assign(u,((e,{keyframes:t})=>t.length>2?sP:l.has(e)?e.startsWith("scale")?{type:"spring",stiffness:550,damping:0===t[1]?2*Math.sqrt(550):30,restSpeed:10}:sS:sA)(e,u)),u.duration&&(u.duration=e_(u.duration)),u.repeatDelay&&(u.repeatDelay=e_(u.repeatDelay)),void 0!==u.from&&(u.keyframes[0]=u.from);let h=!1;if(!1!==u.type&&(0!==u.duration||u.repeatDelay)||(sy(u),0===u.delay&&(h=!0)),(eA.instantAnimations||eA.skipAnimations||n?.shouldSkipAnimations||o.skipAnimations)&&(h=!0,sy(u),u.delay=0),u.allowFlatten=!o.type&&!o.ease,h&&!r&&void 0!==t.get()){let e=e0(u.keyframes,o);if(void 0!==e)return void eN.update(()=>{u.onUpdate(e),u.onComplete()})}return o.isSync?new sf(u):new sj(u)};function sN(e,t,{delay:i=0,transitionOverride:s,type:n}={}){let{transition:r,transitionEnd:a,...o}=t,l=e.getDefaultTransition();r=r?iz(r,l):l;let c=r?.reduceMotion,d=r?.skipAnimations;s&&(r=s);let u=[],h=n&&e.animationState&&e.animationState.getState()[n],p=r?.path;for(let t in p&&p.animateVisualElement(e,o,r,i,u),o){let s=e.getValue(t,e.latestValues[t]??null),n=o[t];if(void 0===n||h&&function({protectedKeys:e,needsAnimating:t},i){let s=e.hasOwnProperty(i)&&!0!==t[i];return t[i]=!1,s}(h,t))continue;let a={delay:i,...iT(r||{},t)};d&&(a.skipAnimations=!0);let l=s.get();if(void 0!==l&&!s.isAnimating()&&!Array.isArray(n)&&n===l&&!a.velocity){eN.update(()=>s.set(n));continue}let p=!1;if(window.MotionHandoffAnimation){let i=e.props[ib];if(i){let e=window.MotionHandoffAnimation(i,t,eN);null!==e&&(a.startTime=e,p=!0)}}iC(e,t);let m=c??e.shouldReduceMotion;s.start(sT(t,s,n,m&&J.has(t)?{type:!1}:a,e,p));let f=s.animation;f&&u.push(f)}if(a){let t=()=>eN.update(()=>{a&&function(e,t){let{transitionEnd:i={},transition:s={},...n}=iA(e,t)||{};for(let t in n={...n,...i}){var r;let i=iN(r=n[t])?r[r.length-1]||0:r;e.hasValue(t)?e.getValue(t).set(i):e.addValue(t,to(i))}}(e,a)});u.length?Promise.all(u).then(t):t()}return u}function sC(e,t,i,s=0,n=1){let r=Array.from(e).sort((e,t)=>
1e.sortNodePosition(t)).indexOf(t),a=e.size,o=(a-1)*s;return"function"==typeof i?i(r,a):1===n?r*s:o-r*s}function sM(e,t,i={}){let s=iA(e,t,"exit"===i.type?e.presenceContext?.custom:void 0),{transition:n=e.getDefaultTransition()||{}}=s||{};i.transitionOverride&&(n=i.transitionOverride);let r=s?()=>Promise.all(sN(e,s,i)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(s=0)=>{let{delayChildren:r=0,staggerChildren:a,staggerDirection:o}=n;return function(e,t,i=0,s=0,n=0,r=1,a){let o=[];for(let l of e.variantChildren)l.notify("AnimationStart",t),o.push(sM(l,t,{...a,delay:i+("function"==typeof s?0:s)+sC(e.variantChildren,l,s,n,r)}).then(()=>l.notify("AnimationComplete",t)));return Promise.all(o)}(e,t,s,r,a,o,i)}:()=>Promise.resolve(),{when:o}=n;if(!o)return Promise.all([r(),a(i.delay)]);{let[e,t]="beforeChildren"===o?[r,a]:[a,r];return e().then(()=>t())}}let sE=tp.length;function sD(e,t){if(!Array.isArray(t))return!1;let i=t.length;if(i!==e.length)return!1;for(let s=0;s<i;s++)if(t[s]!==e[s])return!1;return!0}let sV=[...th].reverse(),sR=th.length;function sL(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function sO(){return{animate:sL(!0),whileInView:sL(),whileHover:sL(),whileTap:sL(),whileDrag:sL(),whileFocus:sL(),exit:sL()}}let sI=0;function s$(e){return[e("x"),e("y")]}function sB(e,t,i,s={passive:!0}){return e.addEventListener(t,i,s),()=>e.removeEventListener(t,i)}let sF={x:!1,y:!1};function sH(e){return e.max-e.min}function sU(e,t,i,s=.5){e.origin=s,e.originPoint=t$(t.min,t.max,e.origin),e.scale=sH(i)/sH(t),e.translate=t$(i.min,i.max,e.origin)-e.originPoint,(e.scale>=.9999&&e.scale<=1.0001||isNaN(e.scale))&&(e.scale=1),(e.translate>=-.01&&e.translate<=.01||isNaN(e.translate))&&(e.translate=0)}function s_(e,t,i,s){sU(e.x,t.x,i.x,s?s.originX:void 0),sU(e.y,t.y,i.y,s?s.originY:void 0)}function sW(e,t,i,s=0){e.min=(s?t$(i.min,i.max,s):i.min)+t.min,e.max=e.min+sH(t)}function sG(e,t,i,s=0){let n=s?t$(i.min,i.max,s):i.min;e.min=t.min-n,e.max=e.min+sH(t)}function sK(e,t,i,s){sG(e.x,t.x,i.x,s?.x),sG(e.y,t.y,i.y,s?.y)}let sq=e=>"object"==typeof e&&null!==e;function sX(e){return sq(e)&&"ownerSVGElement"in e}function sY(e,t,i){if(null==e)return[];if(e instanceof EventTarget)return[e];if("string"==typeof e){let s=document;t&&(s=t.current);let n=i?.[e]??s.querySelectorAll(e);return n?Array.from(n):[]}return Array.from(e).filter(e=>null!=e)}let sJ=new WeakMap,sZ=(e,t,i)=>(s,n)=>n&&n[0]?n[0][e+"Size"]:sX(s)&&"getBBox"in s?s.getBBox()[t]:s[i],sQ=sZ("inline","width","offsetWidth"),s0=sZ("block","height","offsetHeight");function s1({target:e,borderBoxSize:t}){sJ.get(e)?.forEach(i=>{i(e,{get width(){return sQ(e,t)},get height(){return s0(e,t)}})})}function s2(e){e.forEach(s1)}let s3=new Set;function s4(e,t){let n;return"function"==typeof e?(s3.add(e),s||(s=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};s3.forEach(t=>t(e))},window.addEventListener("resize",s)),()=>{s3.delete(e),s3.size||"function"!=typeof s||(window.removeEventListener("resize",s),s=void 0)}):(!i&&"u">typeof ResizeObserver&&(i=new ResizeObserver(s2)),(n=sY(e)).forEach(e=>{let s=sJ.get(e);s||(s=new Set,sJ.set(e,s)),s.add(t),i?.observe(e)}),()=>{n.forEach(e=>{let s=sJ.get(e);s?.delete(t),s?.size||i?.unobserve(e)})})}let s5=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),s6=new Set(["INPUT","SELECT","TEXTAREA"]),s8=e=>"mouse"===e.pointerType?"number"!=typeof e.button||e.button<=0:!1!==e.isPrimary;function s7(e){return{point:{x:e.pageX,y:e.pageY}}}function s9(e,t,i,s){return sB(e,t,e=>s8(e)&&i(e,s7(e)),s)}let ne=({current:e})=>e?e.ownerDocument.defaultView:null,nt=(e,t)=>Math.abs(e-t),ni=new Set(["auto","scroll"]);class ns{constructor(e,t,{transformPagePoint:i,contextWindow:s=window,dragSnapToOrigin:n=!1,distanceThreshold:r=3,element:a}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var e,t;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=nn(this.lastRawMoveEventInfo,this.transformPagePoint));let i=na(this.lastMoveEventInfo,this.history),s=null!==this.startEvent,n=(e=i.offset,t={x:0,y:0},Math.sqrt(nt(e.x,t.x)**2+nt(e.y,t.y)**2)>=this.distanceThreshold);if(!s&&!n)return;let{point:r}=i,{timestamp:a}=eM;this.history.push({...r,timestamp:a});
1let{onStart:o,onMove:l}=this.handlers;s||(o&&o(this.lastMoveEvent,i),this.startEvent=this.lastMoveEvent),l&&l(this.lastMoveEvent,i)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=nn(t,this.transformPagePoint),eN.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:i,onSessionEnd:s,resumeAnimation:n}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&n&&n(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let r=na("pointercancel"===e.type?this.lastMoveEventInfo:nn(t,this.transformPagePoint),this.history);this.startEvent&&i&&i(e,r),s&&s(e,r)},!s8(e))return;this.dragSnapToOrigin=n,this.handlers=t,this.transformPagePoint=i,this.distanceThreshold=r,this.contextWindow=s||window;const o=nn(s7(e),this.transformPagePoint),{point:l}=o,{timestamp:c}=eM;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=t;d&&d(e,na(o,this.history)),this.removeListeners=iM(s9(this.contextWindow,"pointermove",this.handlePointerMove),s9(this.contextWindow,"pointerup",this.handlePointerUp),s9(this.contextWindow,"pointercancel",this.handlePointerUp)),a&&this.startScrollTracking(a)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(ni.has(e.overflowX)||ni.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let i=e===window,s=i?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},n={x:s.x-t.x,y:s.y-t.y};(0!==n.x||0!==n.y)&&(i?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=n.x,this.lastMoveEventInfo.point.y+=n.y):this.history.length>0&&(this.history[0].x-=n.x,this.history[0].y-=n.y),this.scrollPositions.set(e,s),eN.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),eC(this.updatePoint)}}function nn(e,t){return t?{point:t(e.point)}:e}function nr(e,t){return{x:e.x-t.x,y:e.y-t.y}}function na({point:e},t){return{point:e,delta:nr(e,no(t)),offset:nr(e,t[0]),velocity:function(e){if(e.length<2)return{x:0,y:0};let t=e.length-1,i=null,s=no(e);for(;t>=0&&(i=e[t],!(s.timestamp-i.timestamp>e_(.1)));)t--;if(!i)return{x:0,y:0};i===e[0]&&e.length>2&&s.timestamp-i.timestamp>2*e_(.1)&&(i=e[1]);let n=(s.timestamp-i.timestamp)/1e3;if(0===n)return{x:0,y:0};let r={x:(s.x-i.x)/n,y:(s.y-i.y)/n};return r.x===1/0&&(r.x=0),r.y===1/0&&(r.y=0),r}(t)}}function no(e){return e[e.length-1]}function nl(e,t,i){return{min:void 0!==t?e.min+t:void 0,max:void 0!==i?e.max+i-(e.max-e.min):void 0}}function nc(e,t){let i=t.min-e.min,s=t.max-e.max;return t.max-t.min<e.max-e.min&&([i,s]=[s,i]),{min:i,max:s}}function nd(e,t,i){return{min:nu(e,t),max:nu(e,i)}}function nu(e,t){return"number"==typeof e?e:e[t]||0}let nh=new WeakMap;class np{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=X(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:i}={}){let{presenceContext:s}=this.visualElement;if(s&&!1===s.isPresent)return;let n=e=>{t&&this.snapToCursor(s7(e).point),this.stopAnimation()},r=(e,t)=>{let{drag:i,dragPropagation:s,onDragStart:n}=this.getProps();if(i&&!s&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(e){if("x"===e||"y"===e)if(sF[e])return null;else return sF[e]=!0,()=>{sF[e]=!1};return sF.x||sF.y?null:(sF.x=sF.y=!0,()=>{sF.x=sF.y=!1})}(i),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),s$(e=>{let t=this.getAxisMotionValue(e).get()||0;if(j.test(t)){let{projection:i}=this.visualElement;if(i&&i.layout){let s=i.layout.layoutBox[e];s&&(t=sH(s)*(parseFloat(t)/100))}}this.originPoint[e]=t}),n&&eN.update(()=>n(e,t),!1,!0),iC(this.visualElement,"transform");let{animationState:r}=this.visualElement;r&&r.setActive("whileDrag",!0)},a=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:i,dragDirectionLock:s,onDirectionLock:n,onDrag:r}=this.getProps();if(!i&&!this.openDragLock)return;let{offset:a}=t;if(s&&null===this.currentDirection){this.currentDirection=function(e,t=10){let i=null;return Math.abs(e.y)>t?i="y":Math.abs(e.x)>t&&(i="x"),i}(a),null!==this.currentDirection&&n&&n(this.currentDirection);return}this.updateAxis("x",t.point,a),this.updateAxis("y",t.point,a),this.visualElement.render(),r&&eN.update(()=>r(e,t),!1,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:c}=this.getProps();this.panSession=new ns(e,{onSessionStart:n,onStart:r,onMove:a,onSessionEnd:o,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:i,contextWindow:ne(this.visualElement),element:this.visualElement.current})}stop(e,t){let i=e||this.latestPointerEvent,s=t||this.latestPanInfo,n=this.isDragging;if(this.cancel(),!n||!s||!i)return;let{velocity:r}=s;this.startAnimation(r);let{onDragEnd:a}=this.getProps();a&&eN.postRender(()=>a(i,s))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:i}=this.getProps();!i&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,i){let{drag:s}=this.getProps();if(!i||!nf(e,s,this.currentDirection))return;let n=this.getAxisMotionValue(e),r=this.originPoint[e]+i[e];this.constraints&&this.constraints[e]&&(r=function(e,{min:t,max:i},s){return void 0!==t&&e<t?e=s?t$(t,e,s.min):Math.max(e,t):void 0!==i&&e>i&&(e=s?t$(i,e,s.max):Math.min(e,i)),e}(r,this.constraints[e],this.elastic[e])),n.set(r)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,s=this.constraints;e&&ik(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&i?this.constraints=function(e,{top:t,left:i,bottom:s,right:n}){return{x:nl(e.x,i,n),y:nl(e.y,t,s)}}(i.layoutBox,e):this.constraints=!1,this.elastic=function(e=.35){return!1===e?e=0:!0===e&&(e=.35),{x:nd(e,"left","right"),y:nd(e,"top","bottom")}}(t),s!==this.constraints&&!ik(e)&&i&&this.constraints&&!this.hasMutatedConstraints&&s$(e=>{var t,s;let n;!1!==this.constraints&&this.getAxisMotionValue(e)&&(this.constraints[e]=(t=i.layoutBox[e],s=this.constraints[e],n={},void 0!==s.min&&(n.min=s.min-t.min),void 0!==s.max&&(n.max=s.max-t.min),n))})}resolveRefConstraints(){var e;let{dragConstraints:t,onMeasureDragConstraints:i}=this.getProps();if(!t||!ik(t))return!1;let s=t.current;es(null!==s,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:n}=this.visualElement;if(!n||!n.layout)return!1;n.root&&(n.root.scroll=void 0,n.root.updateScroll());let r=function(e,t,i){let s=t3(e,i),{scroll:n}=t;return n&&(tQ(s.x,n.offset.x),tQ(s.y,n.offset.y)),s}(s,n.root,this.visualElement.getTransformPagePoint()),a=(e=n.layout.layoutBox,{x:nc(e.x,r.x),y:nc(e.y,r.y)});if(i){let e=i(function({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}(a));this.hasMutatedConstraints=!!e,e&&(a=tW(e))}return a}startAnimation(e){let{drag:t,dragMomentum:i,dragElastic:s,dragTransition:n,dragSnapToOrigin:r,onDragTransitionEnd:a}=this.getProps(),o=this.constraints||{};return Promise.all(s$(a=>{if(!nf(a,t,this.currentDirection))return;let l=o&&o[a]||{};(!0===r||r===a)&&(l={min:0,max:0});let c={type:"inertia",velocity:i?e[a]:0,bounceStiffness:s?200:1e6,bounceDamping:s?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...n,...l};return this.startAxisValueAnimation(a,c)})).then(a)}startAxisValueAnimation(e,t){let i=this.getAxisMotionValue(e);return iC(this.visualElement,e),i.start(sT(e,i,0,t,this.visualElement,!1))}stopAnimation(){s$(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor(e){s$(t=>{let{drag:i}=this.getProps();if(!nf(t,i,this.currentDirection))return;let{projection:s}=this.visualElement,n=this.getAxisMotionValue(t);if(s&&s.layout){let{min:i,max:r}=s.layout.layoutBox[t],a=n.get()||0;n.set(e[t]-t$(i,r,.5)+a)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:i}=this.visualElement;if(!ik(t)||!i||!this.constraints)return;this.stopAnimation();let s={x:0,y:0};s$(e=>{let t=this.getAxisMotionValue(e);if(t&&!1!==this.constraints){var i,n;let r,a,o,l=t.get();s[e]=(i={min:l,max:l},n=this.constraints[e],r=.5,a=sH(i),(o=sH(n))>a?r=sd(n.min,n.max-a,i.min):a>o&&(r=sd(i.min,i.max-o,n.min)),c(0,1,r))}});let{transformTemplate:n}=this.visualElement.getProps();this.visualElement.current.style.transform=n?n({},""):"none",i.root&&i.root.updateScroll(),i.updateLayout(),this.constraints=!1,this.resolveConstraints(),s$
1(t=>{if(!nf(t,e,null))return;let i=this.getAxisMotionValue(t),{min:n,max:r}=this.constraints[t];i.set(t$(n,r,s[t]))}),this.visualElement.render()}addListeners(){let e;if(!this.visualElement.current)return;nh.set(this.visualElement,this);let t=this.visualElement.current,i=s9(t,"pointerdown",e=>{let{drag:i,dragListener:s=!0}=this.getProps(),n=e.target,r=n!==t&&(s6.has(n.tagName)||!0===n.isContentEditable);i&&s&&!r&&this.start(e)}),s=()=>{var i,s,n;let r,a,{dragConstraints:o}=this.getProps();ik(o)&&o.current&&(this.constraints=this.resolveRefConstraints(),e||(i=t,s=o.current,r=s4(i,nm(n=()=>this.scalePositionWithinConstraints())),a=s4(s,nm(n)),e=()=>{r(),a()}))},{projection:n}=this.visualElement,r=n.addEventListener("measure",s);n&&!n.layout&&(n.root&&n.root.updateScroll(),n.updateLayout()),eN.read(s);let a=sB(window,"resize",()=>this.scalePositionWithinConstraints()),o=n.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(s$(t=>{let i=this.getAxisMotionValue(t);i&&(this.originPoint[t]+=e[t].translate,i.set(i.get()+e[t].translate))}),this.visualElement.render())});return()=>{a(),i(),r(),o&&o(),e&&e()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:i=!1,dragPropagation:s=!1,dragConstraints:n=!1,dragElastic:r=.35,dragMomentum:a=!0}=e;return{...e,drag:t,dragDirectionLock:i,dragPropagation:s,dragConstraints:n,dragElastic:r,dragMomentum:a}}}function nm(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function nf(e,t,i){return(!0===t||t===e)&&(null===i||i===e)}let ng=e=>(t,i)=>{e&&eN.update(()=>e(t,i),!1,!0)},nx={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var nv=a;function ny(e=!0){let t=(0,a.useContext)(id);if(null===t)return[!0,null];let{isPresent:i,onExitComplete:s,register:n}=t,r=(0,a.useId)();(0,a.useEffect)(()=>{if(e)return n(r)},[e]);let o=(0,a.useCallback)(()=>e&&s&&s(r),[r,s,e]);return!i&&s?[!1,o]:[!0]}let nb=!1;class nw extends nv.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:i,layoutId:s}=this.props,{projection:n}=e;n&&(t.group&&t.group.add(n),i&&i.register&&s&&i.register(n),nb&&n.root.didUpdate(),n.addEventListener("animationComplete",()=>{this.safeToRemove()}),n.setOptions({...n.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),nx.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:i,drag:s,isPresent:n}=this.props,{projection:r}=i;return r&&(r.isPresent=n,e.layoutDependency!==t&&r.setOptions({...r.options,layoutDependency:t}),nb=!0,s||e.layoutDependency!==t||void 0===t||e.isPresent!==n?r.willUpdate():this.safeToRemove(),e.isPresent!==n&&(n?r.promote():r.relegate()||eN.postRender(()=>{let e=r.getStack();e&&e.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:i}=e;i&&(i.options.layoutAnchor=t,i.root.didUpdate(),tt.postRender(()=>{!i.currentAnimation&&i.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:i}=this.props,{projection:s}=e;nb=!0,s&&(s.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(s),i&&i.deregister&&i.deregister(s))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}}function nk(e){let[t,i]=ny(),s=(0,nv.useContext)(t8);return(0,r.jsx)(nw,{...e,layoutGroup:s,switchLayoutGroup:(0,nv.useContext)(iw),isPresent:t,safeToRemove:i})}let nj=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],nS=nj.length,nP=e=>"string"==typeof e?parseFloat(e):e,nA=e=>"number"==typeof e||S.test(e);function nz(e,t){return void 0!==e[t]?e[t]:e.borderRadius}let nT=nC(0,.5,sa),nN=nC(.5,.95,eP);function nC(e,t,i){return s=>s<e?0:s>t?1:i(sd(e,t,s))}function nM(e,t){e.min=t.min,e.max=t.max}function nE(e,t){nM(e.x,t.x),nM(e.y,t.y)}function nD(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function nV(e,t,i,s,n){return e-=t,e=s+1/i*(e-s),void 0!==n&&(e=s+1/n*(e-s)),e}function nR(e,t,[i,s,n],r,a){!function(e,t=0,i=1,s=.5,n,r=e,a=e){if(j.test(t)&&(t=parseFloat(t),t=t$(a.min,a.max,t/100)-a.min),"number"!=typeof t)return;let o=t$(r.min,r.max,s);e===r&&(o-=t),e.min=nV(e.min,t,i,o,n),e.max=nV(e.max,t,i,o,n)}(e,t[i],t[s],t[n],t.scale,r,a)}let nL=["x","scaleX","originX"],nO=["y","scaleY","originY"];function nI(e,t,i,s){nR(e.x,t,nL,i?i.x:void 0,s?s.x:void 0),nR(e.y,t,nO,i?i.y:void 0,s?s.y:void 0)}function n$(e){return 0===e.translate&&1===e.scale}function nB(e){return n$(e.x)&&n$(e.y)}function nF(e,t){return e.min===t.min&&e.max===t.max}function nH(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function nU(e,t){return nH(e.x,t.x)&&nH(e.y,t.y)}function n_(e){return sH(e.x)/sH(e.y)}function nW(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class nG{constructor(){this.members=[]}add(e){eW(this.members,e);for(let t=this.members.length-1;t>=0;t--){let i=this.members[t];if(i===e||i===this.lead||i===this.prevLead)continue;let s=i.instance;s&&!1!==s.isConnected||i.snapshot||(eG(this.members,i),i.unmount())}e.scheduleRender()}remove(e){if(eG(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(!1!==e.isPresent&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let i=this.lead;if(e!==i&&(this.prevLead=i,this.lead=e,e.show(),i)){i.updateSnapshot(),e.scheduleRender();let{layoutDependency:s}=i.options,{layoutDependency:n}=e.options;(void 0===s||s!==n)&&(e.resumeFrom=i,t&&(i.preserveOpacity=!0),i.snapshot&&(e.snapshot=i.snapshot,e.snapshot.latestValues=i.animationValues||i.latestValues),e.root?.isU
1pdating&&(e.isLayoutDirty=!0)),!1===e.options.crossfade&&i.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}let nK=(e,t)=>e.depth-t.depth;class nq{constructor(){this.children=[],this.isDirty=!1}add(e){eW(this.children,e),this.isDirty=!0}remove(e){eG(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(nK),this.isDirty=!1,this.children.forEach(e)}}let nX=["","X","Y","Z"],nY=0;function nJ(e,t,i,s){let{latestValues:n}=t;n[e]&&(i[e]=n[e],t.setStaticValue(e,0),s&&(s[e]=0))}function nZ({attachResizeListener:e,defaultParent:t,measureScroll:i,checkIsScrollRoot:s,resetTransform:n}){return class{constructor(e={},i=t?.()){this.id=nY++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(n1),this.nodes.forEach(re),this.nodes.forEach(rt),this.nodes.forEach(n2)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=i?i.root||i:this,this.path=i?[...i.path,i]:[],this.parent=i,this.depth=i?i.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new nq)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new eK),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let i=this.eventHandlers.get(e);i&&i.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=sX(t)&&!(sX(t)&&"svg"===t.tagName),this.instance=t;let{layoutId:i,layout:s,visualElement:n}=this.options;if(n&&!n.current&&n.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(s||i)&&(this.isLayoutDirty=!0),e){let i,s=0,n=()=>this.root.updateBlockedByResize=!1;eN.read(()=>{s=window.innerWidth}),e(t,()=>{let e=window.innerWidth;if(e!==s){let t,r;s=e,this.root.updateBlockedByResize=!0,i&&i(),t=ts.now(),r=({timestamp:e})=>{let i=e-t;i>=250&&(eC(r),n(i-250))},eN.setup(r,!0),i=()=>eC(r),nx.hasAnimatedSinceResize&&(nx.hasAnimatedSinceResize=!1,this.nodes.forEach(n9))}})}i&&this.root.registerSharedNode(i,this),!1!==this.options.animate&&n&&(i||s)&&this.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:i,layout:s})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let r=this.options.transition||n.getDefaultTransition()||ro,{onLayoutAnimationStart:a,onLayoutAnimationComplete:o}=n.getProps(),l=!this.targetLayout||!nU(this.targetLayout,s),c=!t&&i;if(this.options.layoutRoot||this.resumeFrom||c||t&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...iT(r,"layout"),onPlay:a,onComplete:o};(n.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,c,t.path)}else t||n9(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=s})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),eC(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEac
1h(ri),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function e(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;let{visualElement:i}=t.options;if(!i)return;let s=i.props[ib];if(window.MotionHasOptimisedAnimation(s,"transform")){let{layout:e,layoutId:i}=t.options;window.MotionCancelOptimisedAnimation(s,"transform",eN,!(e||i))}let{parent:n}=t;n&&!n.hasCheckedOptimisedAppear&&e(n)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,("string"==typeof t.latestValues.x||"string"==typeof t.latestValues.y)&&(t.isLayoutDirty=!0),t.updateScroll("snapshot"),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:i}=this.options;if(void 0===t&&!i)return;let s=this.getTransformTemplate();this.prevTransformTemplateValue=s?s(this.latestValues,""):void 0,this.updateSnapshot(),e&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let e=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),e&&this.nodes.forEach(n5),this.nodes.forEach(n4);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(n6);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(n8),this.nodes.forEach(n7),this.nodes.forEach(nQ),this.nodes.forEach(n0)):this.nodes.forEach(n6),this.clearAllSnapshots();let e=ts.now();eM.delta=c(0,1e3/60,e-eM.timestamp),eM.timestamp=e,eM.isProcessing=!0,eE.update.process(eM),eE.preRender.process(eM),eE.render.process(eM),eM.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,tt.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(n3),this.sharedNodes.forEach(rs)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,eN.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){eN.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||sH(this.snapshot.measuredBox.x)||sH(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=X()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify("LayoutMeasure",this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e="measure"){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=s(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!n)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!nB(this.projectionDelta),i=this.getTransformTemplate(),s=i?i(this.latestValues,""):void 0,r=s!==this.prevTransformTemplateValue;e&&this.instance&&(t||tq(this.latestValues)||r)&&(n(this.instance,s),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){var t;let i=this.measurePageBox(),s=this.removeElementScroll(i);return e&&(s=this.removeTransform(s)),rd((t=s).x),rd(t.y),{animationId:this.root.animationId,measuredBox:i,layoutBox:s,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return X();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(rh))){let{scroll:e}=this.root;e&&(tQ(t.x,e.offset.x),tQ(t.y,e.offset.y))}return t}removeElementScroll(e){let t=X();if(nE(t,e),this.scroll?.wasRoot)return t;for(let i=0;i<this.path.length;i++){let s=this.path[i],{scroll:n,options:r}=s;s!==this.root&&n&&r.layoutScroll&&(n.wasRoot&&nE(t,e),tQ(t.x,n.offset.x),tQ(t.y,n.offset.y))}return t}applyTransform(e,t=!1,i){let s=i||X();nE(s,e);for(let e=0;e<this.path.length;e++){let i=this.path[e];!t&&i.options.layoutScroll&&i.scroll&&i!==i.root&&(tQ(s.x,-i.scroll.offset.x),tQ(s.y,-i.scroll.offset.y)),tq(i.latestValues)&&t2(s,i.latestValues,i.layout?.layoutBox)}return tq(this.latestValues)&&t2(s,this.latestValues,this.layout?.layoutBox),s}removeTransform(e){let t=X();nE(t,e);for(let e=0;e<this.path.length;e++){let i,s=this.path[e];tq(s.latestValues)&&(s.instance&&(tK(s.latestValues)&&s.updateSnapshot(),nE(i=X(),s.measurePageBox())),nI(t,s.latestValues,s.snapshot?.layoutBox,i))}return tq(this.latestValues)&&nI(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:void 0===e.crossfade||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==eM.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=t.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=t.
1isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=t.isSharedProjectionDirty);let i=!!this.resumingFrom||this!==t;if(!(e||i&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:s,layoutId:n}=this.options;if(!this.layout||!(s||n))return;this.resolvedRelativeTargetAt=eM.timestamp;let r=this.getClosestProjectingParent();if(r&&this.linkedParentVersion!==r.layoutVersion&&!r.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(!1!==this.options.layoutAnchor&&r&&r.layout?this.createRelativeTarget(r,this.layout.layoutBox,r.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=X(),this.targetWithTransforms=X()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var a,o,l,c;this.forceRelativeParentToResolveTarget(),a=this.target,o=this.relativeTarget,l=this.relativeParent.target,c=this.options.layoutAnchor||void 0,sW(a.x,o.x,l.x,c?.x),sW(a.y,o.y,l.y,c?.y)}else this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):nE(this.target,this.layout.layoutBox),tZ(this.target,this.targetDelta)):nE(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,!1!==this.options.layoutAnchor&&r&&!!r.resumingFrom==!!this.resumingFrom&&!r.options.layoutScroll&&r.target&&1!==this.animationProgress?this.createRelativeTarget(r,this.target,r.target):this.relativeParent=this.relativeTarget=void 0)}}getClosestProjectingParent(){if(!(!this.parent||tK(this.parent.latestValues)||tX(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(e,t,i){this.relativeParent=e,this.linkedParentVersion=e.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=X(),this.relativeTargetOrigin=X(),sK(this.relativeTargetOrigin,t,i,this.options.layoutAnchor||void 0),nE(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,i=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(i=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(i=!1),this.resolvedRelativeTargetAt===eM.timestamp&&(i=!1),i)return;let{layout:s,layoutId:n}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(s||n))return;nE(this.layoutCorrected,this.layout.layoutBox);let r=this.treeScale.x,a=this.treeScale.y;!function(e,t,i,s=!1){let n,r,a=i.length;if(a){t.x=t.y=1;for(let o=0;o<a;o++){r=(n=i[o]).projectionDelta;let{visualElement:a}=n.options;(!a||!a.props.style||"contents"!==a.props.style.display)&&(s&&n.options.layoutScroll&&n.scroll&&n!==n.root&&(tQ(e.x,-n.scroll.offset.x),tQ(e.y,-n.scroll.offset.y)),r&&(t.x*=r.x.scale,t.y*=r.y.scale,tZ(e,r)),s&&tq(n.latestValues)&&t2(e,n.latestValues,n.layout?.layoutBox))}t.x<1.0000000000001&&t.x>.999999999999&&(t.x=1),t.y<1.0000000000001&&t.y>.999999999999&&(t.y=1)}}(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=X());let{target:o}=e;if(!o){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(nD(this.prevProjectionDelta.x,this.projectionDelta.x),nD(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),s_(this.projectionDelta,this.layoutCorrected,o,this.latestValues),this.treeScale.x===r&&this.treeScale.y===a&&nW(this.projectionDelta.x,this.prevProjectionDelta.x)&&nW(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",o))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=K(),this.projectionDelta=K(),this.projectionDeltaWithTransform=K()}setAnimationOrigin(e,t=!1,i){let s,n=this.snapshot,r=n?n.latestValues:{},a={...this.latestValues},o=K();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let l=X(),c=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),d=this.getStack(),u=!d||d.members.length<=1,h=!!(c&&!u&&!0===this.options.crossfade&&!this.path.some(ra));this.animationProgress=0;let p=i?.interpolateProjection(e);this.mixTargetDelta=t=>{let i=t/1e3,n=p?.(i);if(n?(o.x.translate=n.x,o.x.scale=t$(e.x.scale,1,i),o.x.origin=e.x.origin,o.x.originPoint=e.x.originPoint,o.y.translate=n.y,o.y.scale=t$(e.y.scale,1,i),o.y.origin=e.y.origin,o.y.originPoint=e.y.originPoint):(rn(o.x,e.x,i),rn(o.y,e.y,i)),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var d,m,f,g,x,v;sK(l,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),f=this.relativeTarget,g=this.relativeTargetOrigin,x=l,v=i,rr(f.x,g.x,x.x,v),rr(f.y,g.y,x.y,v),s&&(d=this.relativeTarget,m=s,nF(d.x,m.x)&&nF(d.y,m.y))&&(this.isProjectionDirty=!1),s||(s=X()),nE(s,this.relativeTarget)}c&&(this.animationValues=a,function(e,t,i,s,n,r){n?(e.opacity=t$(0,i.opacity??1,nT(s)),e.opacityExit=t$(t.opacity??1,0,nN(s))):r&&(e.opacity=t$(t.opacity??1,i.opacity??1,s));for(let n=0;n<nS;n++){let r=nj[n],a=nz(t,r),o=nz(i,r);(void 0!==a||void 0!==o)&&(a||(a=0),o||(o=0),0===a||0===o||nA(a)===nA(o)?(e[r]=Math.max(t$(nP(a),nP(o),s),0),(j.test(o)||j.test(a))&&(e[r]+="%")):e[r]=o)}(t.rotate||i.rotate)&&(e.rotate=t$(t.rotate||0,i.rotate||0,s))}(a,r,this.latestValues,i,h,u)),n&&void 0!==n.rotate&&(this.animationValues||(this.animationValues=a),this.animationValues.pathRotation=n.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=i},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(e){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(eC(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=eN.update(()=>{var t,i,s;let n;nx.hasAnimatedSinceResize=!0,e2.layout++,this.motionValue||(this.motionValue=to(0)),this.motionValue.jump(0,!1),this.currentAnimation=(t=this.motionValue,i=[0,1e3],s={...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onStop:()=>{e2.layout--},onComplete:()=>{e2.layout--,e.onComplete&&e.onComplete(),this.completeAnimation()}},(n=Y(t)?t:to(t)).start(sT("",n,i,s)),n.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:i,layout:s,latestValues:n}=e;if(t&&i&&s){if(this!==e&&this.layout&&s&&ru(this.options.animationType,this.layout.layoutBox,s.layoutBox)){i=this.target||X();let t=sH(this.layout.layoutBox.x);i.x.min=e.target.x.min,i.x.max=i.x.min+t;let s=sH(this.layout.layoutBox.y);i.y.min=e.target.y.min,i.y.max=i.y.min+s}nE(t,i),t2(t,n),s_(this.projectionDeltaWithTransform,this.layoutCorrected,t,n)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new nG),this.sharedNodes.get(e).add(t);let i=t.options.initialPromotionConfig;t.promote({transition:i?i.transition:void 0,preserveFollowOpacity:i&&i.shouldPreserveFollowOpacity?i.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;
1return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:i}={}){let s=this.getStack();s&&s.promote(this,i),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return!!e&&e.relegate(this)}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:i}=e;if((i.z||i.rotate||i.rotateX||i.rotateY||i.rotateZ||i.skewX||i.skewY)&&(t=!0),!t)return;let s={};i.z&&nJ("z",e,s,this.animationValues);for(let t=0;t<nX.length;t++)nJ(`rotate${nX[t]}`,e,s,this.animationValues),nJ(`skew${nX[t]}`,e,s,this.animationValues);for(let t in e.render(),s)e.setStaticValue(t,s[t]),this.animationValues&&(this.animationValues[t]=s[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility="hidden";return}let i=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility="",e.opacity="",e.pointerEvents=ic(t?.pointerEvents)||"",e.transform=i?i(this.latestValues,""):"none";return}let s=this.getLead();if(!this.projectionDelta||!this.layout||!s.target){this.options.layoutId&&(e.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,e.pointerEvents=ic(t?.pointerEvents)||""),this.hasProjected&&!tq(this.latestValues)&&(e.transform=i?i({},""):"none",this.hasProjected=!1);return}e.visibility="";let n=s.animationValues||s.latestValues;this.applyTransformsToTarget();let r=function(e,t,i){let s="",n=e.x.translate/t.x,r=e.y.translate/t.y,a=i?.z||0;if((n||r||a)&&(s=`translate3d(${n}px, ${r}px, ${a}px) `),(1!==t.x||1!==t.y)&&(s+=`scale(${1/t.x}, ${1/t.y}) `),i){let{transformPerspective:e,rotate:t,pathRotation:n,rotateX:r,rotateY:a,skewX:o,skewY:l}=i;e&&(s=`perspective(${e}px) ${s}`),t&&(s+=`rotate(${t}deg) `),n&&(s+=`rotate(${n}deg) `),r&&(s+=`rotateX(${r}deg) `),a&&(s+=`rotateY(${a}deg) `),o&&(s+=`skewX(${o}deg) `),l&&(s+=`skewY(${l}deg) `)}let o=e.x.scale*t.x,l=e.y.scale*t.y;return(1!==o||1!==l)&&(s+=`scale(${o}, ${l})`),s||"none"}(this.projectionDeltaWithTransform,this.treeScale,n);i&&(r=i(n,r)),e.transform=r;let{x:a,y:o}=this.projectionDelta;for(let t in e.transformOrigin=`${100*a.origin}% ${100*o.origin}% 0`,s.animationValues?e.opacity=s===this?n.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:n.opacityExit:e.opacity=s===this?void 0!==n.opacity?n.opacity:"":void 0!==n.opacityExit?n.opacityExit:0,tB){if(void 0===n[t])continue;let{correct:i,applyTo:a,isCSSVariable:o}=tB[t],l="none"===r?n[t]:i(n[t],s);if(a){let t=a.length;for(let i=0;i<t;i++)e[a[i]]=l}else o?this.options.visualElement.renderState.vars[t]=l:e[t]=l}this.options.layoutId&&(e.pointerEvents=s===this?ic(t?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(n4),this.root.sharedNodes.clear()}}}function nQ(e){e.updateLayout()}function n0(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){let{layoutBox:i,measuredBox:s}=e.layout,{animationType:n}=e.options,r=t.source!==e.layout.source;if("size"===n)s$(e=>{let s=r?t.measuredBox[e]:t.layoutBox[e],n=sH(s);s.min=i[e].min,s.max=s.min+n});else if("x"===n||"y"===n){let e="x"===n?"y":"x";nM(r?t.measuredBox[e]:t.layoutBox[e],i[e])}else ru(n,t.layoutBox,i)&&s$(s=>{let n=r?t.measuredBox[s]:t.layoutBox[s],a=sH(i[s]);n.max=n.min+a,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[s].max=e.relativeTarget[s].min+a)});let a=K();s_(a,i,t.layoutBox);let o=K();r?s_(o,e.applyTransform(s,!0),t.measuredBox):s_(o,i,t.layoutBox);let l=!nB(a),c=!1;if(!e.resumeFrom){let s=e.getClosestProjectingParent();if(s&&!s.resumeFrom){let{snapshot:n,layout:r}=s;if(n&&r){let a=e.options.layoutAnchor||void 0,o=X();sK(o,t.layoutBox,n.layoutBox,a);let l=X();sK(l,i,r.layoutBox,a),nU(o,l)||(c=!0),s.options.layoutRoot&&(e.relativeTarget=l,e.relativeTargetOrigin=o,e.relativeParent=s)}}}e.notifyListeners("didUpdate",{layout:i,snapshot:t,delta:o,layoutDelta:a,hasLayoutChanged:l,hasRelativeLayoutChanged:c})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function n1(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function n2(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function n3(e){e.clearSnapshot()}function n4(e){e.clearMeasurements()}function n5(e){e.isLayoutDirty=!0,e.updateLayout()}function n6(e){e.isLayoutDirty=!1}function n8(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function n7(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function n9(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function re(e){e.resolveTargetDelta()}function rt(e){e.calcProjection()}
1function ri(e){e.resetSkewAndRotation()}function rs(e){e.removeLeadSnapshot()}function rn(e,t,i){e.translate=t$(t.translate,0,i),e.scale=t$(t.scale,1,i),e.origin=t.origin,e.originPoint=t.originPoint}function rr(e,t,i,s){e.min=t$(t.min,i.min,s),e.max=t$(t.max,i.max,s)}function ra(e){return e.animationValues&&void 0!==e.animationValues.opacityExit}let ro={duration:.45,ease:[.4,0,.1,1]},rl=e=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),rc=rl("applewebkit/")&&!rl("chrome/")?Math.round:eP;function rd(e){e.min=rc(e.min),e.max=rc(e.max)}function ru(e,t,i){return"position"===e||"preserve-aspect"===e&&!(.2>=Math.abs(n_(t)-n_(i)))}function rh(e){return e!==e.root&&e.scroll?.wasRoot}let rp=nZ({attachResizeListener:(e,t)=>sB(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),rm={current:void 0},rf=nZ({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!rm.current){let e=new rp({});e.mount(window),e.setOptions({layoutScroll:!0}),rm.current=e}return rm.current},resetTransform:(e,t)=>{e.style.transform=void 0!==t?t:"none"},checkIsScrollRoot:e=>"fixed"===window.getComputedStyle(e).position});function rg(e,t){let i=sY(e),s=new AbortController;return[i,{passive:!0,...t,signal:s.signal},()=>s.abort()]}function rx(e,t,i){let{props:s}=e;e.animationState&&s.whileHover&&e.animationState.setActive("whileHover","Start"===i);let n=s["onHover"+i];n&&eN.postRender(()=>n(t,s7(t)))}function rv(e){return sq(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}let ry=(e,t)=>!!t&&(e===t||ry(e,t.parentElement)),rb=new WeakSet;function rw(e){return t=>{"Enter"===t.key&&e(t)}}function rk(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}function rj(e){return s8(e)&&!(sF.x||sF.y)}let rS=new WeakSet;function rP(e,t,i){let{props:s}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&s.whileTap&&e.animationState.setActive("whileTap","Start"===i);let n=s["onTap"+("End"===i?"":i)];n&&eN.postRender(()=>n(t,s7(t)))}let rA=new WeakMap,rz=new WeakMap,rT=e=>{let t=rA.get(e.target);t&&t(e)},rN=e=>{e.forEach(rT)},rC={some:0,all:1},rM=function(e,t){if("u"<typeof Proxy)return iS;let i=new Map,s=(i,s)=>iS(i,s,e,t);return new Proxy((e,t)=>s(e,t),{get:(n,r)=>"create"===r?s:(i.has(r)||i.set(r,iS(r,void 0,e,t)),i.get(r))})}({animation:{Feature:class extends iP{constructor(e){super(e),e.animationState||(e.animationState=function(e){let t=t=>Promise.all(t.map(({animation:t,options:i})=>(function(e,t,i={}){let s;if(e.notify("AnimationStart",t),Array.isArray(t))s=Promise.all(t.map(t=>sM(e,t,i)));else if("string"==typeof t)s=sM(e,t,i);else{let n="function"==typeof t?iA(e,t,i.custom):t;s=Promise.all(sN(e,n,i))}return s.then(()=>{e.notify("AnimationComplete",t)})})(e,t,i))),i=sO(),s=!0,n=!1,r=t=>(i,s)=>{let n=iA(e,s,"exit"===t?e.presenceContext?.custom:void 0);if(n){let{transition:e,transitionEnd:t,...s}=n;i={...i,...s,...t}}return i};function a(a){let{props:o}=e,l=function e(t){if(!t)return;if(!t.isControllingVariants){let i=t.parent&&e(t.parent)||{};return void 0!==t.props.initial&&(i.initial=t.props.initial),i}let i={};for(let e=0;e<sE;e++){let s=tp[e],n=t.props[s];(tu(n)||!1===n)&&(i[s]=n)}return i}(e.parent)||{},c=[],d=new Set,u={},h=1/0;for(let t=0;t<sR;t++){var p,m;let f=sV[t],g=i[f],x=void 0!==o[f]?o[f]:l[f],v=tu(x),y=f===a?g.isActive:null;!1===y&&(h=t);let b=x===l[f]&&x!==o[f]&&v;if(b&&(s||n)&&e.manuallyAnimateOnMount&&(b=!1),g.protectedKeys={...u},!g.isActive&&null===y||!x&&!g.prevProp||td(x)||"boolean"==typeof x)continue;if("exit"===f&&g.isActive&&!0!==y){g.prevResolvedValues&&(u={...u,...g.prevResolvedValues});continue}let w=(p=g.prevProp,"string"==typeof(m=x)?m!==p:!!Array.isArray(m)&&!sD(m,p)),k=w||f===a&&g.isActive&&!b&&v||t>h&&v,j=!1,S=Array.isArray(x)?x:[x],P=S.reduce(r(f),{});!1===y&&(P={});let{prevResolvedValues:A={}}=g,z={...A,...P},T=t=>{k=!0,d.has(t)&&(j=!0,d.delete(t)),g.needsAnimating[t]=!0;let i=e.getValue(t);i&&(i.liveStyle=!1)};for(let e in z){let t=P[e],i=A[e];
1if(!u.hasOwnProperty(e))(iN(t)&&iN(i)?!sD(t,i)||w:t!==i)?null!=t?T(e):d.add(e):void 0!==t&&d.has(e)?T(e):g.protectedKeys[e]=!0}g.prevProp=x,g.prevResolvedValues=P,g.isActive&&(u={...u,...P}),(s||n)&&e.blockInitialAnimation&&(k=!1);let N=b&&w,C=!N||j;k&&C&&c.push(...S.map(t=>{let i={type:f};if("string"==typeof t&&(s||n)&&!N&&e.manuallyAnimateOnMount&&e.parent){let{parent:s}=e,n=iA(s,t);if(s.enteringChildren&&n){let{delayChildren:t}=n.transition||{};i.delay=sC(s.enteringChildren,e,t)}}return{animation:t,options:i}}))}if(d.size){let t={};if("boolean"!=typeof o.initial){let i=iA(e,Array.isArray(o.initial)?o.initial[0]:o.initial);i&&i.transition&&(t.transition=i.transition)}d.forEach(i=>{let s=e.getBaseTarget(i),n=e.getValue(i);n&&(n.liveStyle=!0),t[i]=s??null}),c.push({animation:t})}let f=!!c.length;return s&&(!1===o.initial||o.initial===o.animate)&&!e.manuallyAnimateOnMount&&(f=!1),s=!1,n=!1,f?t(c):Promise.resolve()}return{animateChanges:a,setActive:function(t,s){if(i[t].isActive===s)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,s)),i[t].isActive=s;let n=a(t);for(let e in i)i[e].protectedKeys={};return n},setAnimateFunction:function(i){t=i(e)},getState:()=>i,reset:()=>{i=sO(),n=!0}}}(e))}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();td(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends iP{constructor(){super(...arguments),this.id=sI++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===i)return;if(e&&!1===i){if(this.isExitComplete){let{initial:e,custom:t}=this.node.getProps();if("string"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)){let i=iA(this.node,e,t);if(i){let{transition:e,transitionEnd:t,...s}=i;for(let e in s)this.node.getValue(e)?.jump(s[e])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let s=this.node.animationState.setActive("exit",!e);t&&!e&&s.then(()=>{this.isExitComplete=!0,t(this.id)})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}},inView:{Feature:class extends iP{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var e;let t;this.stopObserver?.();let{viewport:i={}}=this.node.getProps(),{root:s,margin:n,amount:r="some",once:a}=i,o={root:s?s.current:void 0,rootMargin:n,threshold:"number"==typeof r?r:rC[r]},l=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,a&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",t);let{onViewportEnter:i,onViewportLeave:s}=this.node.getProps(),n=t?i:s;n&&n(e)};this.stopObserver=(e=this.node.current,t=function({root:e,...t}){let i=e||document;rz.has(i)||rz.set(i,{});let s=rz.get(i),n=JSON.stringify(t);return s[n]||(s[n]=new IntersectionObserver(rN,{root:e,...t})),s[n]}(o),rA.set(e,l),t.observe(e),()=>{rA.delete(e),t.unobserve(e)})}mount(){this.startObserver()}update(){if("u"<typeof IntersectionObserver)return;let{props:e,prevProps:t}=this.node;["amount","margin","root"].some(function({viewport:e={}},{viewport:t={}}={}){return i=>e[i]!==t[i]}(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}},tap:{Feature:class extends iP{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:i}=this.node.props;this.unmount=function(e,t,i={}){let[s,n,r]=rg(e,i),a=e=>{let s=e.currentTarget;if(!rj(e)||rS.has(e))return;rb.add(s),i.stopPropagation&&rS.add(e);let r=t(s,e),a=(e,t)=>{window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",l),rb.has(s)&&rb.delete(s),rj(e)&&"function"==typeof r&&r(e,{success:t})},o=e=>{a(e,s===window||s===document||i.useGlobalTarget||ry(s,e.target))},l=e=>{a(e,!1)};window.addEventListener("pointerup",o,n),window.addEventListener("pointercancel",l,n)};
1return s.forEach(e=>{((i.useGlobalTarget?window:e).addEventListener("pointerdown",a,n),rv(e))&&(e.addEventListener("focus",e=>((e,t)=>{let i=e.currentTarget;if(!i)return;let s=rw(()=>{if(rb.has(i))return;rk(i,"down");let e=rw(()=>{rk(i,"up")});i.addEventListener("keyup",e,t),i.addEventListener("blur",()=>rk(i,"cancel"),t)});i.addEventListener("keydown",s,t),i.addEventListener("blur",()=>i.removeEventListener("keydown",s),t)})(e,n)),s5.has(e.tagName)||!0===e.isContentEditable||e.hasAttribute("tabindex")||(e.tabIndex=0))}),r}(e,(e,t)=>(rP(this.node,t,"Start"),(e,{success:t})=>rP(this.node,e,t?"End":"Cancel")),{useGlobalTarget:t,stopPropagation:i?.tap===!1})}unmount(){}}},focus:{Feature:class extends iP{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch(t){e=!0}e&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=iM(sB(this.node.current,"focus",()=>this.onFocus()),sB(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends iP{mount(){let{current:e}=this.node;e&&(this.unmount=function(e,t,i={}){let[s,n,r]=rg(e,i);return s.forEach(e=>{let i,s=!1,r=!1,a=t=>{i&&(i(t),i=void 0),e.removeEventListener("pointerleave",l)},o=e=>{s=!1,window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",o),r&&(r=!1,a(e))},l=e=>{if("touch"!==e.pointerType){if(s){r=!0;return}a(e)}};e.addEventListener("pointerenter",s=>{if("touch"===s.pointerType||sF.x||sF.y)return;r=!1;let a=t(e,s);"function"==typeof a&&(i=a,e.addEventListener("pointerleave",l,n))},n),e.addEventListener("pointerdown",()=>{s=!0,window.addEventListener("pointerup",o,n),window.addEventListener("pointercancel",o,n)},n)}),r}(e,(e,t)=>(rx(this.node,t,"Start"),e=>rx(this.node,e,"End"))))}unmount(){}}},pan:{Feature:class extends iP{constructor(){super(...arguments),this.removePointerDownListener=eP}onPointerDown(e){this.session=new ns(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:ne(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:i,onPanEnd:s}=this.node.getProps();return{onSessionStart:ng(e),onStart:ng(t),onMove:ng(i),onEnd:(e,t)=>{delete this.session,s&&eN.postRender(()=>s(e,t))}}}mount(){this.removePointerDownListener=s9(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends iP{constructor(e){super(e),this.removeGroupControls=eP,this.removeListeners=eP,this.controls=new np(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||eP}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},ProjectionNode:rf,MeasureLayout:nk},layout:{ProjectionNode:rf,MeasureLayout:nk}},(e,t)=>t.isSVG??t6(e)?new t_(t):new t4(t,{allowProjection:e!==a.Fragment}));var rE=a;function rD(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class rV extends rE.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(rv(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,i=rv(e)&&e.offsetWidth||0,s=rv(e)&&e.offsetHeight||0,n=getComputedStyle(t),r=this.props.sizeRef.current;r.height=parseFloat(n.height),r.width=parseFloat(n.width),r.top=t.offsetTop,r.left=t.offsetLeft,r.right=i-r.width-r.left,r.bottom=s-r.height-r.top,r.direction=n.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function rR({children:e,isPresent:t,anchorX:i,anchorY:s,root:n,pop:o}){let l=(0,rE.useId)(),c=(0,rE.useRef)(null),d=(0,rE.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:u}=(0,rE.useContext)(t9),h=function(...e){return a.useCallback(function(...e){return t=>{let i=!1,s=e.map(e=>{let s=rD(e,t);return i||"function"!=typeof s||(i=!0),s});if(i)return()=>{for(let t=0;t<s.length;t++){let i=s[t];"function"==typeof i?i():rD(e[t],null)}}}}(...e),e)}(c,e.props?.ref??e?.ref);return(0,rE.useInsertionEffect)(()=>{let{width:e,height:r,top:a,left:h,right:p,bottom:m,direction:f}=d.current;if(t||!1===o||!c.current||!e||!r)return;let g="rtl"===f,x="left"===i?g?`right: ${p}`:`left: ${h}`:g?`left: ${h}`:`right: ${p}`,v="bottom"===s?`bottom: ${m}`:`top: ${a}`;c.current.dataset.motionPopId=l;let y=document.createElement("style");u&&(y.nonce=u);let b=n??document.head;return b.appendChild(y),y.sheet&&y.sheet.insertRule(` 2 [data-motion-pop-id="${l}"] { 3 position: absolute !important; 4 width: ${e}px !important; 5 height: ${r}px !important; 6 ${x}px !important; 7 ${v}px !important; 8 } 9 `),()=>{c.current?.removeAttribute("data-motion-pop-id"),b.contains(y)&&b.removeChild(y)}},[t]),(0,r.jsx)(rV,{isPresent:t,childRef:c,sizeRef:d,pop:o,children:!1===o?e:rE.cloneElement(e,{ref:h})})}let rL=({children:e,initial:t,isPresent:i,onExitComplete:s,custom:n,presenceAffectsLayout:o,mode:l,anchorX:c,anchorY:d,root:u})=>{let h=iu(rO),p=(0,a.useId)(),m=!0,f=(0,a.useMemo)(()=>(m=!1,{id:p,initial:t,isPresent:i,custom:n,onExitComplete:e=>
9{for(let t of(h.set(e,!0),h.values()))if(!t)return;s&&s()},register:e=>(h.set(e,!1),()=>h.delete(e))}),[i,h,s]);return o&&m&&(f={...f}),(0,a.useMemo)(()=>{h.forEach((e,t)=>h.set(t,!1))},[i]),a.useEffect(()=>{i||h.size||!s||s()},[i]),e=(0,r.jsx)(rR,{pop:"popLayout"===l,isPresent:i,anchorX:c,anchorY:d,root:u,children:e}),(0,r.jsx)(id.Provider,{value:f,children:e})};function rO(){return new Map}let rI=e=>e.key||"";function r$(e){let t=[];return a.Children.forEach(e,e=>{(0,a.isValidElement)(e)&&t.push(e)}),t}let rB=({children:e,custom:t,initial:i=!0,onExitComplete:s,presenceAffectsLayout:n=!0,mode:o="sync",propagate:l=!1,anchorX:c="left",anchorY:d="top",root:u})=>{let[h,p]=ny(l),m=(0,a.useMemo)(()=>r$(e),[e]),f=l&&!h?[]:m.map(rI),g=(0,a.useRef)(!0),x=(0,a.useRef)(m),v=iu(()=>new Map),y=(0,a.useRef)(new Set),[b,w]=(0,a.useState)(m),[k,j]=(0,a.useState)(m);ij(()=>{g.current=!1,x.current=m;for(let e=0;e<k.length;e++){let t=rI(k[e]);f.includes(t)?(v.delete(t),y.current.delete(t)):!0!==v.get(t)&&v.set(t,!1)}},[k,f.length,f.join("-")]);let S=[];if(m!==b){let e=[...m];for(let t=0;t<k.length;t++){let i=k[t],s=rI(i);f.includes(s)||(e.splice(t,0,i),S.push(i))}return"wait"===o&&S.length&&(e=S),j(r$(e)),w(m),null}let{forceRender:P}=(0,a.useContext)(t8);return(0,r.jsx)(r.Fragment,{children:k.map(e=>{let a=rI(e),b=(!l||!!h)&&(m===k||f.includes(a));return(0,r.jsx)(rL,{isPresent:b,initial:(!g.current||!!i)&&void 0,custom:t,presenceAffectsLayout:n,mode:o,root:u,onExitComplete:b?void 0:()=>{if(y.current.has(a)||!v.has(a))return;y.current.add(a),v.set(a,!0);let e=!0;v.forEach(t=>{t||(e=!1)}),e&&(P?.(),j(x.current),l&&p?.(),s&&s())},anchorX:c,anchorY:d,children:e},a)})})},rF=[{id:"expo",name:"Expo",description:"Rapid React Native workflows with managed tooling.",short:"EX",estimate:18},{id:"react-native",name:"React Native",description:"Native apps with a flexible JS runtime.",short:"RN",estimate:28},{id:"flutter",name:"Flutter",description:"Multi-platform UI toolkit with Dart.",short:"FL",estimate:24},{id:"node",name:"Node.js",description:"TypeScript-ready backend and tooling runtime.",short:"ND",estimate:16},{id:"python",name:"Python",description:"Data, scripting, and backend foundations.",short:"PY",estimate:14},{id:"go",name:"Go",description:"Fast, compiled services with simple tooling.",short:"GO",estimate:18},{id:"rust",name:"Rust",description:"Safe systems development and CLI tooling.",short:"RS",estimate:22}],rH=[{id:"macos",name:"macOS",description:"Apple silicon and Intel setups.",short:"MAC"},{id:"windows",name:"Windows",description:"Windows 11/10 with modern tooling.",short:"WIN"},{id:"linux",name:"Linux",description:"Ubuntu or Debian-based environments.",short:"LNX"}],rU={expo:["vscode","android-studio","xcode","expo-orbit","postman","git","github-desktop","warp"],"react-native":["vscode","android-studio","xcode","postman","git","github-desktop","warp"],flutter:["vscode","android-studio","xcode","postman","git","github-desktop","warp"],node:["vscode","postman","insomnia","docker","postgres","redis","git","github-desktop","eslint-prettier","tailwind","storybook","vitest","playwright","warp"],python:["vscode","postman","insomnia","docker","postgres","redis","git","github-desktop","warp"],go:["vscode","postman","insomnia","docker","postgres","redis","git","github-desktop","warp"],rust:["vscode","git","github-desktop","warp"]},r_=[{id:"case-frontend-web",name:"Frontend web (React/Next/Vue)",description:"Vite or Next.js with Tailwind, Storybook, and modern tests.",category:"Frontend",stackId:"node",osId:"macos",tools:["vscode","git","github-desktop","warp","eslint-prettier","tailwind","storybook","vitest","playwright"],runtimeChannel:"lts",notes:{summary:"Pick React/Vue with Vite or Next.js, then layer in Tailwind, Storybook, and automated tests.",links:[{label:"Vite",url:"https://vite.dev"},{label:"Next.js",url:"https://nextjs.org/docs"},{label:"Vue",url:"https://vuejs.org/guide"},{label:"Tailwind CSS",url:"https://tailwindcss.com/docs"},{label:"Storybook",url:"https://storybook.js.org/docs"},{label:"Playwright",url:"https://playwright.dev/docs/intro"}]},checklist:[{id:"frontend-scaffold",title:"Scaffold the app",description:"Choose one framework and initialize the project.",commands:["npm
9create vite@latest my-app","npx create-next-app@latest my-app","npm create vue@latest my-app"]},{id:"frontend-quality",title:"Build + test gates",description:"Run quality checks before shipping changes.",commands:["npm run lint","npm run test","npm run build","npx playwright test"]}]},{id:"case-backend-node",name:"Backend API (Node.js)",description:"Postgres + Redis services with Docker and API tooling.",category:"Backend",stackId:"node",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","postman","insomnia","eslint-prettier","vitest"],runtimeChannel:"lts",notes:{summary:"Use Docker for local services, add migrations early, and wire observability (logs, traces, metrics).",links:[{label:"Docker Compose",url:"https://docs.docker.com/compose/"},{label:"Prisma Migrate",url:"https://www.prisma.io/docs/concepts/components/prisma-migrate"},{label:"OpenTelemetry JS",url:"https://opentelemetry.io/docs/instrumentation/js/"}]},checklist:[{id:"backend-node-services",title:"Start local services",description:"Bring up databases for development.",commands:["docker compose up -d postgres redis","psql --version","redis-cli --version"]},{id:"backend-node-migrations",title:"Run migrations",description:"Apply schema changes before starting the API.",commands:["npm run migrate","# Prisma: npx prisma migrate dev"]},{id:"backend-node-quality",title:"API health checks",description:"Validate build, lint, and tests.",commands:["npm run lint","npm run test","npm run build"]}]},{id:"case-backend-go",name:"Backend API (Go)",description:"Go services with Postgres/Redis and production-grade checks.",category:"Backend",stackId:"go",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","postman","insomnia"],runtimeChannel:"lts",notes:{summary:"Use goose or migrate for schema changes and add tracing/logging from day one.",links:[{label:"Goose",url:"https://github.com/pressly/goose"},{label:"golang-migrate",url:"https://github.com/golang-migrate/migrate"}
9,{label:"OpenTelemetry Go",url:"https://opentelemetry.io/docs/instrumentation/go/"}]},checklist:[{id:"backend-go-services",title:"Start local services",description:"Run databases before booting the API.",commands:["docker compose up -d postgres redis","psql --version","redis-cli --version"]},{id:"backend-go-migrations",title:"Run migrations",description:"Apply schema updates before tests.",commands:["goose up","migrate -path ./migrations -database $DATABASE_URL up"]},{id:"backend-go-quality",title:"Build + test",description:"Run the standard Go checks.",commands:["go test ./...","go vet ./...","go build ./..."]}]},{id:"case-backend-python",name:"Backend API (Python)",description:"Python services with Postgres/Redis and migrations.",category:"Backend",stackId:"python",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","postman","insomnia"],runtimeChannel:"lts",notes:{summary:"Use Alembic or Django migrations and keep observability in the base template.",links:[{label:"Alembic",url:"https://alembic.sqlalchemy.org/en/latest/"},{label:"Django Migrations",url:"https://docs.djangoproject.com/en/stable/topics/migrations/"}
9,{label:"OpenTelemetry Python",url:"https://opentelemetry.io/docs/instrumentation/python/"}]},checklist:[{id:"backend-python-services",title:"Start local services",description:"Spin up data stores before running the API.",commands:["docker compose up -d postgres redis","psql --version","redis-cli --version"]},{id:"backend-python-migrations",title:"Run migrations",description:"Apply schema changes for the API.",commands:["alembic upgrade head","# Django: python manage.py migrate"]},{id:"backend-python-quality",title:"Tests + packaging",description:"Validate the service locally.",commands:["python -m pip install -r requirements.txt","pytest","python -m build"]}]},{id:"case-fullstack-saas",name:"Full-stack SaaS",description:"Web app + API + background jobs with shared envs.",category:"Full-stack",stackId:"node",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","tailwind","eslint-prettier","vitest","playwright"],runtimeChannel:"lts",notes:{summary:"Keep env variables centralized, start services with Compose, and run full test suites.",links:[{label:"Twelve-Factor App",url:"https://12factor.net/"},{label:"Docker Compose",url:"https://docs.docker.com/compose/"}]},checklist:[{id:"fullstack-saas-services",title:"Start local services",description:"Bring up databases and queues.",commands:["docker compose up -d postgres redis"]},{id:"fullstack-saas-quality",title:"Web + API checks",description:"Run the main quality gates.",commands:["npm run lint","npm run test","npm run build","npx playwright test"]}]},{id:"case-fullstack-ecommerce",name:"Full-stack e-commerce",description:"Storefront, admin, payments, and search workflows.",category:"Full-stack",stackId:"node",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","tailwind","storybook","playwright"],runtimeChannel:"lts",notes:{summary:"Plan for inventory sync, payment webhooks, and search indexing.",links:[{label:"Stripe Webhooks",url:"https://stripe.com/docs/webhooks"},{label:"Algolia Docs",url:"https://www.algolia.com/doc/"}]},checklist:[{id:"fullstack-ecommerce-services",title:"Start local services",description:"Run databases and cache for storefront flows.",commands:["docker compose up -d postgres redis"]},{id:"fullstack-ecommerce-quality",title:"Checkout smoke tests",description:"Validate critical customer journeys.",commands:["npm run test","npx playwright test"]}]},{id:"case-fullstack-mobile-api",name:"Full-stack mobile API",description:"API + auth + push notifications for mobile clients.",category:"Full-stack",stackId:"node",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","postman","insomnia"],runtimeChannel:"lts",notes:{summary:"Keep auth, device tokens, and background jobs documented for the mobile team.",links:[{label:"Firebase Cloud Messaging",url:"https://firebase.google.com/docs/cloud-messaging"}]},checklist:[{id:"fullstack-mobile-services",title:"Start local services",description:"Bring up storage and queues for the API.",commands:["docker compose up -d postgres redis"]},{id:"fullstack-mobile-quality",title:"API smoke tests",description:"Check readiness before app integration.",commands:["npm run test","npm run dev"]}]},{id:"case-fullstack-internal-tools",name:"Full-stack internal tools",description:"Admin dashboards and internal APIs with fast iterations.",category:"Full-stack",stackId:"python",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres","redis","postman","insomnia"],runtimeChannel:"lts",notes:{summary:"Document access controls, seeded data, and admin workflows.",links:[{label:"Django Admin",url:"https://docs.djangoproject.com/en/stable/ref/contrib/admin/"}]},checklist:[{id:"internal-tools-services",title:"Start local services",description:"Run dependencies for admin tools.",commands:["docker compose up -d postgres redis"]},{id:"internal-tools-migrations",title:"Apply migrations",description:"Keep schema in sync before launching.",commands:["python manage.py migrate","python manage.py createsuperuser"]}]},{id:"case-cli-rust",name:"CLI tool (Rust)",description:"Fast developer tooling and distribution-friendly binaries.",category:"App-based",stackId:"rust",osId:"macos",tools:["vscode","git","github-desktop","warp"],runtimeChannel:"lts",notes:{summary:"Use clap for CLI parsing and create release builds early.",links:[{label:"clap",url:"https://docs.rs/clap/latest/cla
9p/"},{label:"cargo-dist",url:"https://opensource.axo.dev/cargo-dist/"}]},checklist:[{id:"cli-rust-build",title:"Build + test",description:"Validate the CLI before distributing.",commands:["cargo test","cargo build --release","cargo install --path ."]}]},{id:"case-data-pipeline",name:"Data pipeline (Python)",description:"ETL jobs with scheduled runs and structured logging.",category:"App-based",stackId:"python",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","postgres"],runtimeChannel:"lts",notes:{summary:"Define data sources, destination schemas, and retry policies upfront.",links:[{label:"Airflow",url:"https://airflow.apache.org/docs/"},{label:"Dagster",url:"https://docs.dagster.io/"}]},checklist:[{id:"data-pipeline-checks",title:"Pipeline checks",description:"Run the pipeline locally before scheduling.",commands:["python -m pip install -r requirements.txt","pytest","python pipeline.py --dry-run"]}]},{id:"case-ml-service",name:"ML service (Python)",description:"Model serving with validation, metrics, and deployments.",category:"App-based",stackId:"python",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","redis"],runtimeChannel:"lts",notes:{summary:"Track model versions, evaluate performance, and log predictions.",links:[{label:"MLflow",url:"https://mlflow.org/docs/latest/index.html"},{label:"FastAPI",url:"https://fastapi.tiangolo.com/"}]},checklist:[{id:"ml-service-checks",title:"Service checks",description:"Run the model server locally.",commands:["python -m pip install -r requirements.txt","pytest","python -m uvicorn app:app --reload"]}]},{id:"case-iot-backend",name:"IoT backend (Go)",description:"MQTT ingestion, device registry, and metrics pipelines.",category:"App-based",stackId:"go",osId:"macos",tools:["vscode","git","github-desktop","warp","docker","redis"],runtimeChannel:"lts",notes:{summary:"Document broker credentials and device provisioning flows.",links:[{label:"Mosquitto",url:"https://mosquitto.org/documentation/"}]},checklist:[{id:"iot-backend-checks",title:"Broker + API checks",description:"Start broker and validate the service.",commands:["docker compose up -d mosquitto redis","go test ./...","go build ./..."]}]}],rW={expo:{macos:["brew install node@20","npm create expo@latest my-expo-app","cd my-expo-app"],windows:["winget install OpenJS.NodeJS.LTS","npm create expo@latest my-expo-app","cd my-expo-app"],linux:["curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -","sudo apt install -y nodejs","npm create expo@latest my-expo-app","cd my-expo-app"]},"react-native":{macos:["brew install node@20 watchman","npx react-native@latest init MyApp","cd MyApp"],windows:["winget install OpenJS.NodeJS.LTS","npx react-native@latest init MyApp","cd MyApp"],linux:["sudo apt install -y nodejs npm","npx react-native@latest init MyApp","cd MyApp"]},flutter:{macos:["brew install --cask flutter","flutter doctor"],windows:["winget install Google.Flutter","flutter doctor"],linux:["sudo snap install flutter --classic","flutter doctor"]},node:{macos:["brew install node@20","node -v"],windows:["winget install OpenJS.NodeJS.LTS","node -v"],linux:["curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -","sudo apt install -y nodejs","node -v"]},python:{macos:["brew install [email protected]","python3.12 -m venv .venv"],windows:["winget install Python.Python.3.12","py -3.12 -m venv .venv"],linux:["sudo apt install -y python3.12 python3.12-venv","python3.12 -m venv .venv"]},go:{macos:["brew install go","go env GOPATH"],windows:["winget install GoLang.Go","go env GOPATH"],linux:["sudo apt install -y golang-go","go env GOPATH"]},rust:{macos:["curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh","rustc --version"],windows:["winget install Rustlang.Rustup","rustc --version"],linux:["curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh","rustc --version"]}},rG={expo:{macos:["brew install node","npm create expo@latest my-expo-app","cd my-expo-app"],windows:["winget install OpenJS.NodeJS","npm create expo@latest my-expo-app","cd my-expo-app"],linux:["curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -","sudo apt install -y nodejs","npm create expo@latest my-expo-app","cd my-expo-app"]},"react-native":{macos:["brew install node watchman","npx react-native@latest init MyApp","cd MyApp"],windows:["winget install OpenJS.NodeJS","npx react-native@latest init MyApp","cd MyApp"],linux:["sudo apt install -y nodejs npm","npx react-native@latest init MyApp","cd MyApp"]},node:{macos:["brew install node","node -v"],windows:["winget install OpenJS.NodeJS","node -v"],linux:["curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -","sudo apt install -y nodejs","node -v"]},python:{macos:["brew install python","python3 -m venv .venv"],windows:["winget install Python.Python.3.13","py -3.13 -m venv .venv"],linux:["sudo apt install -y python3 python3-venv","python3 -m venv .venv"]}},rK={macos:["# Add to ~/.zprofile or ~/.zshrc (bash: ~/.bash_profile or ~/.bashrc)","echo 'export ANDROID_HOME=$HOME/Library/Android/sdk' >> ~/.zshrc","echo 'export PATH=$PATH:$ANDROID_HOME/emulator' >> ~/.zshrc","echo 'export PATH=$PATH:$ANDROID_HOME/platform-tools' >> ~/.zshrc","source ~/.zshrc","# Verify Android SDK tools are on PATH","adb --version"],windows:["# Run in PowerShell as Administrator",'[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LOCALAPPDATA\\Android\\Sdk", "User")','[System.Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$env:LOCALAPPDATA\\Android\\Sdk\\emulator;$env:LOCALAPPDATA\\Android\\Sdk\\platform-tools", "User")',"# Restart PowerShell to reload PATH","adb --version"],linux:["# Add to ~/.bashrc or ~/.bash_profile","echo 'export ANDROID_HOME=$HOME/Android/Sdk' >> ~/.bashrc","echo 'export PATH=$PATH:$ANDROID_HOME/emulator' >> ~/.bashrc","echo 'export PATH=$PATH:$ANDROID_HOME/platform-tools' >> ~/.bashrc","source ~/.bashrc","# Verify Android SDK tools are on PATH","adb --version"]},rq={macos:["# Install Zulu JDK 17 (required for React Native / Expo Android builds)","brew install --cask zulu@17","echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home' >> ~/.zshrc","source ~/.zshrc","java -version"],windows:["# Install Eclipse Temurin JDK 17 (LTS) via winget","winget install EclipseAdoptium.Temurin.17.JDK","# JAVA_HOME is set automatically by the installer","java -version"],linux:["# Install OpenJDK 17","sudo apt install -y openjdk-17-jdk","echo 'export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which j
9ava))))' >> ~/.bashrc","source ~/.bashrc","java -version"]},rX={macos:["xcode-select --install","brew update","brew install git","mkdir -p ~/Developer"],windows:["winget install Git.Git","winget install Microsoft.PowerShell","mkdir %USERPROFILE%\\Developer"],linux:["sudo apt update","sudo apt install -y git curl build-essential","mkdir -p ~/Developer"]},rY={expo:["node -v","npm -v","npx expo --version","java -version","adb --version"],"react-native":["node -v","npm -v","npx react-native --version","java -version","adb --version"],flutter:["flutter --version","dart --version","adb --version"],node:["node -v","npm -v"],python:["python3 --version","pip3 --version"],go:["go version"],rust:["rustc --version","cargo --version"]},rJ=[{id:"vscode",name:"VSCode",description:"Primary editor with extensions and settings sync.",category:"Editor",estimate:6,install:{macos:["brew install --cask visual-studio-code"],windows:["winget install Microsoft.VisualStudioCode"],linux:["sudo apt install -y code"]}},{id:"android-studio",name:"Android Studio",description:"Android SDKs, emulators, and build tools.",category:"Mobile",estimate:12,install:{macos:["brew install --cask android-studio"],windows:["winget install Google.AndroidStudio"],linux:["sudo apt install -y android-studio"]}},{id:"xcode",name:"Xcode",description:"iOS toolchain, simulators, and SDKs.",category:"Mobile",estimate:14,install:{macos:["xcode-select --install"],windows:['echo "Xcode is only available on macOS"'],linux:['echo "Xcode is only available on macOS"']}},{id:"postman",name:"Postman",description:"API testing with environments and collections.",category:"API",estimate:5,install:{macos:["brew install --cask postman"],windows:["winget install Postman.Postman"],linux:["sudo apt install -y postman"]}},{id:"insomnia",name:"Insomnia",description:"REST and GraphQL API client for local testing.",category:"API",estimate:4,install:{macos:["brew install --cask insomnia"],windows:["winget install Insomnia.Insomnia"],linux:["sudo snap install insomnia"]}},{id:"docker",name:"Docker",description:"Container runtime for local services.",category:"Infrastructure",estimate:10,install:{macos:["brew install --cask docker"],windows:["winget install Docker.DockerDesktop"],linux:["sudo apt install -y docker.io"]}},{id:"postgres",name:"PostgreSQL",description:"Relational database for backend and analytics workloads.",category:"Database",estimate:8,install:{macos:["brew install postgresql@16","brew services start postgresql@16"],windows:["winget install PostgreSQL.PostgreSQL"],linux:["sudo apt install -y postgresql","sudo systemctl enable --now postgresql"]}},{id:"redis",name:"Redis",description:"In-memory cache and queue for fast data access.",category:"Database",estimate:6,install:{macos:["brew install redis","brew services start redis"],windows:['echo "Use WSL2 or Docker Desktop to run Redis on Windows"'],linux:["sudo apt install -y redis-server","sudo systemctl enable --now redis-server"]}},{id:"git",name:"Git",description:"Version control, SSH, and commit signing.",category:"Core",estimate:4,install:{macos:["brew install git"],windows:["winget install Git.Git"],linux:["sudo apt install -y git"]}},{id:"eslint-prettier",name:"ESLint + Prettier",description:"Linting and formatting defaults for teams.",category:"Quality",estimate:4,install:{macos:["npm install -D eslint prettier eslint-config-prettier eslint-plugin-import"],windows:["npm install -D eslint prettier eslint-config-prettier eslint-plugin-import"],linux:["npm install -D eslint prettier eslint-config-prettier eslint-plugin-import"]}},{id:"tailwind",name:"Tailwind CSS",description:"Utility-first styling with a shared design system.",category:"Frontend",estimate:4,install:{macos:["npm install -D tailwindcss postcss autoprefixer","npx tailwindcss init -p"],windows:["npm install -D tailwindcss postcss autoprefixer","npx tailwindcss init -p"],linux:["npm install -D tailwindcss postcss autoprefixer","npx tailwindcss init -p"]}},{id:"storybook",name:"Storybook",description:"Component workbench for UI development.",category:"Frontend",estimate:6,install:{macos:["npx storybook@latest init"],windows:["npx storybook@latest init"],linux:["npx storybook@latest init"]}},{id:"vitest",name:"Vitest",description:"Fast unit tests for modern web projects.",category:"Testing",estimate:4,install:{macos:["npm install -D vitest","npx vitest --run"],windows:["npm install -D vitest","npx vitest --run"],linux:["npm install -D vitest","npx vitest --run"]}},{id:"playwright",name:"Playwright",description:"End-to-end browser testing for critical flows.",category:"Testing",estimate:6,install:{macos:["npm install -D @playwright/test","npx playwright install"],windows:["npm install -D @playwright/test","npx playwright install"],linux:["npm install -D @playwright/test","npx playwright install"]}},{id:"expo-orbit",name:"Expo Orbit",description:"Device previews and streamlining Expo workflows.",category:"Mobile",estimate:6,install:{macos:["brew install --cask expo-orbit"],windows:["winget install E
9xpo.Orbit"],linux:['echo "Expo Orbit is currently macOS/Windows only"']}},{id:"warp",name:"Warp",description:"Modern terminal with smart workflows.",category:"Terminal",estimate:4,install:{macos:["brew install --cask warp"],windows:["winget install Warp.Warp"],linux:["sudo apt install -y warp-terminal"]}},{id:"github-desktop",name:"GitHub Desktop",description:"Visual Git client for managing repos, branches, and PRs.",category:"Core",estimate:4,install:{macos:["brew install --cask github"],windows:["winget install GitHub.GitHubDesktop"],linux:["wget -qO - https://apt.packages.shiftkey.dev/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/shiftkey-packages.gpg > /dev/null",'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/shiftkey-packages.gpg] https://apt.packages.shiftkey.dev/ubuntu/ any main" | sudo tee /etc/apt/sources.list.d/shiftkey-packages.list',"sudo apt update && sudo apt install github-desktop"]}}].reduce((e,t)=>(e[t.id]=t,e),{}),rZ={expo:[{issue:"Metro bundler won't start or hangs",cause:"Stale cache or conflicting process on port 8081.",fix:["npx expo start --clear","npx react-native start --reset-cache","lsof -ti:8081 | xargs kill -9"]},{issue:"Expo Go can't connect to dev server",cause:"Phone and computer are on different networks, or firewall is blocking.",fix:["# Ensure both devices are on the same Wi-Fi network","npx expo start --tunnel","# Or use USB connection: npx expo start --localhost"]},{issue:"iOS build fails: CocoaPods error",cause:"Pods not installed or out of date after adding a new native module.",fix:["cd ios && pod install --repo-update","# If still failing, clean and reinstall","cd ios && rm -rf Pods Podfile.lock && pod install"]},{issue:"Android emulator not detected",cause:"ANDROID_HOME not set or emulator not running.",fix:["export ANDROID_HOME=$HOME/Library/Android/sdk","export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools","# Start an emulator from Android Studio first","adb devices"]},{issue:"EAS build fails with missing credentials",cause:"Not logged in to Expo or missing app.json configuration.",fix:["eas login","eas credentials","# Ensure app.json has a valid 'slug' and 'owner' field"]},{issue:"Watchman error: too many files to watch",cause:"Default inotify limit too low on Linux.",fix:["echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf","sudo sysctl -p","watchman watch-del-all"]}],"react-native":[{issue:"Metro bundler fails to resolve module",cause:"Broken node_modules or missing package.",fix:["rm -rf node_modules && npm install","npx react-native start --reset-cache"]},{issue:"iOS build: 'Unable to boot simulator'",cause:"Xcode simulator runtime not installed.",fix:["# Open Xcode â Preferences â Platforms and install the iOS runtime","xcrun simctl list devices","npx react-native run-ios --simulator='iPhone 15'"]},{issue:"Android build: SDK location not found",cause:"ANDROID_HOME or local.properties missing.",fix:['echo "sdk.dir=$HOME/Library/Android/sdk" > android/local.properties',"export ANDROID_HOME=$HOME/Library/Android/sdk","export PATH=$PATH:$ANDROID_HOME/platform-tools"]},{issue:"Gradle build fails: Java version mismatch",cause:"React Native requires Java 17 for newer versions.",fix:["java -version","# macOS: brew install openjdk@17","# Set JAVA_HOME: export JAVA_HOME=$(/usr/libexec/java_home -v 17)"]},{issue:"Red screen: 'Invariant Violation'",cause:"Native module not linked or app not rebuilt after native change.",fix:["cd ios && pod install && cd ..","npx react-native run-ios","# For Android: cd android && ./gradlew clean && cd .. && npx react-native run-android"]}],flutter:[{issue:"flutter doctor reports issues",cause:"Missing dependencies, licenses not accepted, or SDK paths incorrect.",fix:["flutter doctor -v","flutter doctor --android-licenses","# Accept all licenses with 'y'","sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer"]},{issue:"iOS build: CocoaPods not installed",cause:"CocoaPods is required for Flutter iOS builds.",fix:["sudo gem install cocoapods","cd ios && pod install","pod --version"]},{issue:"Android license not accepted",cause:"Android SDK licenses must be accepted before building.",fix:["flutter doctor --android-licenses","# If that fails:","$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses"]},{issue:"'No devices found' when running flutter run",cause:"No emulator running or physical device not detected.",fix:["flutter devices","flutter emulators --launch <emulator_id>","# For physical device: enable USB debugging in Developer Options","adb devices"]},{issue:"Pub get fails: SSL certificate error",cause:"Corporate proxy or VPN interfer
9ing with pub.dev.",fix:["flutter pub cache clean","flutter pub get","# Behind a proxy: set PUB_HOSTED_URL and FLUTTER_STORAGE_BASE_URL"]}],node:[{issue:"nvm command not found after install",cause:"Shell profile not reloaded after nvm installation.",fix:["source ~/.zshrc # or source ~/.bashrc","# Verify nvm in your shell profile:",'grep -n "nvm" ~/.zshrc',"nvm --version"]},{issue:"EACCES: permission denied on npm install -g",cause:"npm global prefix points to a system directory.",fix:["# Fix: use nvm (recommended) or change npm prefix","mkdir ~/.npm-global","npm config set prefix ~/.npm-global","echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc","source ~/.zshrc"]},{issue:"Port 3000 already in use",cause:"Another process is using the same port.",fix:["lsof -ti:3000 | xargs kill -9","# Or change your app port:","PORT=3001 node server.js"]},{issue:"node_modules/.bin not found / scripts not running",cause:"Corrupted node_modules or wrong Node version.",fix:["rm -rf node_modules package-lock.json","nvm use --lts","npm install"]},{issue:"TypeScript: Cannot find module or type declarations",cause:"Missing @types package or tsconfig path not configured.",fix:["npm install -D @types/node @types/express","# Verify tsconfig.json has 'moduleResolution: node'","npx tsc --noEmit"]}],python:[{issue:"pyenv: command not found",cause:"pyenv not added to shell PATH or profile not reloaded.",fix:['exp
9ort PYENV_ROOT="$HOME/.pyenv"','export PATH="$PYENV_ROOT/bin:$PATH"','eval "$(pyenv init -)"',"source ~/.zshrc","pyenv --version"]},{issue:"pip SSL: certificate verify failed",cause:"macOS system Python has broken SSL certificates.",fix:["# Run the certificate installer (macOS):","open /Applications/Python*/Install\\ Certificates.command","# Or upgrade pip:","python3 -m pip install --upgrade pip certifi"]},{issue:"Virtual environment not activating",cause:"Wrong activation command for your shell/OS.",fix:["# macOS / Linux:","python3 -m venv .venv && source .venv/bin/activate","# Windows CMD:",".venv\\Scripts\\activate.bat","# Windows PowerShell:",".venv\\Scripts\\Activate.ps1"]},{issue:"Poetry: command not found after install",cause:"Poetry installs to ~/.local/bin which may not be in PATH.",fix:['export PATH="$HOME/.local/bin:$PATH"',"source ~/.zshrc","poetry --version"]},{issue:"ModuleNotFoundError despite pip install",cause:"Installed into wrong Python environment or virtualenv not active.",fix:["which python3 # verify you're in the right venv","pip list | grep <package-name>","# Activate venv first, then reinstall:","source .venv/bin/activate && pip install <package>"]}],go:[{issue:"go: command not found",cause:"Go binary not in PATH after installation.",fix:["export PATH=$PATH:/usr/local/go/bin","source ~/.zshrc","go version"]},{issue:"go get: module lookup disabled by GONOSUMCHECK",cause:"Private module or GONOSUMCHECK/GONOSUMDB misconfigured.",fix:["go env GONOSUMCHECK","go env -w GONOSUMCHECK='*'","# For private repos:","go env -w GOPRIVATE='github.com/your-org/*'"]},{issue:"Air: live reload not triggering",cause:"Air config not found or watching wrong directory.",fix:["air init # generate .air.toml","# Edit .air.toml to set correct root and tmp_dir","air -c .air.toml"]},{issue:"CGO_ENABLED build error on Linux",cause:"CGO requires gcc which may not be installed.",fix:["sudo apt install -y build-essential gcc","CGO_ENABLED=1 go build ./...","# To build without CGO: CGO_ENABLED=0 go build ./..."]},{issue:"go test fails: database connection refused",cause:"Test requires a running database service.",fix:["# Start PostgreSQL:","brew services start postgresql@16 # macOS","sudo systemctl start postgresql # Linux","# Use Docker for test databases:","docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=test postgres:16"]}],rust:[{issue:"rustup: command not found",cause:"Cargo/rustup not added to PATH after installation.",fix:["source $HOME/.cargo/env","echo 'source $HOME/.cargo/env' >> ~/.zshrc","rustc --version && cargo --version"]},{issue:"Linking error: linker 'cc' not found (Linux)",cause:"gcc/build-essential not installed.",fix:["sudo apt install -y build-essential","cargo build"]},{issue:"Slow compile times",cause:"Incremental compilation cache cold or too many dependencies.",fix:["# Use sccache to cache builds:","cargo install sccache","export RUSTC_WRAPPER=sccache","# Use mold linker (Linux) for faster linking:","sudo apt install mold",'# In .cargo/config.toml: [target.x86_64-unknown-linux-gnu] linker = \'clang\' rustflags = ["-C", "link-arg=-fuse-ld=mold"]']},{issue:"error[E0597]: does not live long enough (borrow checker)",cause:"Lifetime issue â a reference outlives the value it points to.",fix:["# Common fix: clone the value instead of borrowing","let owned = borrowed_value.to_owned();","# Or restructure to ensure the owner lives long enough","# Read: https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html"]},{issue:"cargo test: thread panicked",cause:"Test assertion failed or unwrap on None/Err.",fix:["cargo test -- --nocapture # show println! output","cargo test -- --test-threads=1 # run tests serially","RUST_BACKTRACE=1 cargo test # full backtrace"]}]};function rQ(...e){return e.filter(Boolean).join(" ")}let r0=new Set(["expo","react-native","flutter"]);async function r1(e){if(navigator?.clipboard?.writeText)return void await navigator.clipboard.writeText(e);if("function"!=typeof document.execCommand)throw Error("Clipboard API is unavailable.");let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",t.style.opacity="0",document.body.appendChild(t),t.select();let i=document.execCommand("copy");if(document.body.removeChild(t),!i)throw Error("Clipboard copy failed.")}let r2={primary:"bg-zinc-950 text-white hover:bg-zinc-900 shadow-sm shadow-zinc-900/10",secondary:"bg-white text-zinc-900 border border-zinc-200 hover:border-zinc-300 hover:bg-zinc-50",outline:"bg-transparent text-zinc-900 border border-zinc-300 hover:border-zinc-400 hover:bg-zinc-50",ghost:"bg-transparent text-zinc-600 hover:text-zinc-900 hover:bg-zinc-50"},r3={sm:"h-9 px-4 text-sm",md:"h-11 px-5 text-sm"};function r4({variant:e="primary",size:t="md",className:i,...s}){return(0,r.jsx)("button",{className:rQ("inline-flex items-center justify-center gap-2 rounded-full font-medium transition","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white",r2[e],r3[t],i),...s})}function r5({className:e,...t}){return(0,r.jsx)("div",{className:rQ("rounded-2xl border border-zinc-200 bg-white shadow-[0_1px_0_rgba(16,24,40,0.04)]",e),...t})}function r6({commands:e,label:t}){let[i,s]=(0,a.useState)("idle");(0,a.useEffect)(()=>
9{if("idle"===i)return;let e=window.setTimeout(()=>s("idle"),1500);return()=>window.clearTimeout(e)},[i]);let n=async()=>{try{await r1(e.join("\n")),s("copied")}catch(e){console.error("Failed to copy commands",e),s("error")}};return(0,r.jsxs)("div",{className:"rounded-2xl border border-zinc-800/40 bg-zinc-950 text-zinc-100 shadow-[0_8px_24px_rgba(15,23,42,0.24)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-zinc-800/70 px-4 py-3",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.2em] text-zinc-400",children:t??"Terminal"}),(0,r.jsx)(r4,{type:"button",onClick:n,size:"sm",variant:"ghost",className:"text-zinc-200 hover:text-white hover:bg-white/10",children:"copied"===i?"Copied":"error"===i?"Copy failed":"Copy"})]}),(0,r.jsx)("div",{className:"space-y-2 px-4 py-4 font-mono text-[13px] leading-6 text-zinc-100",children:e.map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"$"}),(0,r.jsx)("span",{className:"whitespace-pre-wrap",children:e})]},`${e}-${t}`))})]})}function r8(){return(0,r.jsx)("footer",{className:"border-t border-zinc-200/70 bg-white",children:(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-6xl flex-col items-start justify-between gap-6 px-6 py-10 text-sm text-zinc-500 lg:flex-row lg:items-center lg:px-8",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"font-medium text-zinc-900",children:["© ",new Date().getFullYear()," Setup Stack"]}),(0,r.jsx)("p",{children:"Modern setup guides for developer teams."})]}),(0,r.jsx)("div",{className:"text-xs text-zinc-500",children:(0,r.jsxs)("a",{href:"https://buymeacoffee.com/adsalihac",target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 rounded-full border border-black bg-black px-3 py-1.5 text-xs font-semibold text-white shadow-sm backdrop-blur-sm transition hover:border-neutral-700 hover:bg-neutral-900 dark:border-white dark:bg-black dark:text-white dark:hover:bg-neutral-800",children:[(0,r.jsx)("span",{children:"â"}),(0,r.jsx)("span",{children:"Buy me a coffee"})]})})]})})}function r7(){return(0,r.jsx)("header",{className:"sticky top-0 z-30 border-b border-zinc-200/70 bg-white/80 backdrop-blur",children:(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-6xl items-center justify-between px-6 py-4 lg:px-8",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-zinc-900",children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 5.5L7 9l-4 3.5",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M9 13h6",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round"})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Setup Stack"}),(0,r.jsx)("p",{className:"text-xs text-zinc-500",children:"Developer setup platform"})]})]}),(0,r.jsx)("div",{className:"flex items-center gap-3",children:(0,r.jsxs)("a",{href:"https://github.com/adsalihac/setupstack/fork",target:"_blank",rel:"noopener noreferrer",className:"hidden items-center gap-2 rounded-full border border-zinc-200 bg-white px-4 py-2 text-sm font-medium text-zinc-600 transition hover:border-zinc-300 hover:text-zinc-900 md:flex",children:[(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-4 w-4 text-zinc-500","aria-hidden":"true",children:(0,r.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 0C4.477 0 0 4.478 0 10c0 4.42 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 10 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.942.359.31.678.921.678 1.856 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 20 10c0-5.522-4.477-10-10-10z"})}),"Contribute"]})})]})})}var r9={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},ae=a.default.createContext&&a.default.createContext(r9),at=["attr","size","title"];function ai(){return(ai=Object.assign.bind()).apply(null,arguments)}function as(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function an(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};
9t%2?as(Object(i),!0).forEach(function(t){var s,n,r;s=e,n=t,r=i[t],(n=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t||"default");if("object"!=typeof s)return s;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(n))in s?Object.defineProperty(s,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[n]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):as(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function ar(e){return t=>a.default.createElement(aa,ai({attr:an({},e.attr)},t),function e(t){return t&&t.map((t,i)=>a.default.createElement(t.tag,an({key:i},t.attr),e(t.child)))}(e.child))}function aa(e){var t=t=>{var i,{attr:s,size:n,title:r}=e,o=function(e,t){if(null==e)return{};var i,s,n=function(e,t){if(null==e)return{};var i={};for(var s in e)if(({}).hasOwnProperty.call(e,s)){if(-1!==t.indexOf(s))continue;i[s]=e[s]}return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)i=r[s],-1===t.indexOf(i)&&({}).propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}(e,at),l=n||t.size||"1em";return t.className&&(i=t.className),e.className&&(i=(i?i+" ":"")+e.className),a.default.createElement("svg",ai({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,s,o,{className:i,style:an(an({color:e.color||t.color},t.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),r&&a.default.createElement("title",null,r),e.children)};return void 0!==ae?a.default.createElement(ae.Consumer,null,e=>t(e)):t(r9)}function ao(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M0 20.084c.043.53.23 1.063.718 1.778.58.849 1.576 1.315 2.303.567.49-.505 5.794-9.776 8.35-13.29a.761.761 0 011.248 0c2.556 3.514 7.86 12.785 8.35 13.29.727.748 1.723.282 2.303-.567.57-.835.728-1.42.728-2.046 0-.426-8.26-15.798-9.092-17.078-.8-1.23-1.044-1.498-2.397-1.542h-1.032c-1.353.044-1.597.311-2.398 1.542C8.267 3.991.33 18.758 0 19.77Z"},child:[]}]})(e)}let al={expo:ao,"react-native":function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z"},child:[]}]})(e)},flutter:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.314 0L2.3 12 6 15.7 21.684.013h-7.357zm.014 11.
9072L7.857 17.53l6.47 6.47H21.7l-6.46-6.468 6.46-6.46h-7.37z"},child:[]}]})(e)},node:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z"},child:[]}]})(e)},python:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z"},child:[]}]})(e)},go:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z"},child:[]}]})(e)},rust:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M23.8346 11.7033l-1.0073-.6236a13.7268 13.7268 0 00-.0283-.2936l.8656-.8069a.3483.3483 0 00-.1154-.578l-1.1066-.414a8.4958 8.4958 0 00-.087-.2856l.6904-.9587a.3462.3462 0 00-.2257-.5446l-1.1663-.1894a9.3574 9.3574 0 00-.1407-.2622l.49-1.0761a.3437.3437 0 00-.0274-.3361.3486.3486 0 00-.3006-.154l-1.1845.0416a6.7444 6.7444 0 00-.1873-.2268l.2723-1.153a.3472.3472 0 00-.417-.4172l-1.1532.2724a14.0183 14.0183 0 00-.2278-.1873l.0415-1.1845a.3442.3442 0 00-.49-.328l-1.076.491c-.0872-.0476-.1742-.0952-.2623-.1407l-.1903-1.1673A.3483.3483 0 0016.256.955l-.9597.6905a8.4867 8.4867 0 00-.2855-.086l-.414-1.1066a.3483.3483 0 00-.5781-.1154l-.8069.8666a9.2936 9.2936 0 00-.2936-.0284L12.2946.1683a.3462.3462 0 00-.5892 0l-.6236 1.0073a13.7383 13.7383 0 00-.2936.0284L9.9803.3374a.3462.3462 0 00-.578.1154l-.4141 1.1065c-.0962.0274-.1903.0567-.2855.086L7.744.955a.3483.3483 0 00-.5447.2258L7.009 2.348a9.3574 9.3574 0 00-.2622.1407l-1.0762-.491a.3462.3462 0 00-.49.328l.0416 1.1845a7.9826 7.9826 0 00-.2278.1873L3.8413 3.425a.3472.3472 0 00-.4171.4171l.2713 1.1531c-.0628.075-.1255.1509-.1863.2268l-1.1845-.0415a.3462.3462 0 00-.328.49l.491 1.0761a9.167 9.167 0 00-.1407.2622l-1.1662.1894a.3483.3483 0 00-.2258.5446l.6904.9587a13.303 13.303 0 00-.087.2855l-1.1065.414a.3483.3483 0 00-.1155.5781l.8656.807a9.2936 9.2936 0 00-.0283.2935l-1.0073.6236a.3442.3442 0 000 .5892l1.0073.6236c.008.0982.0182.1964.0283.2936l-.8656.8079a.3462.3462 0 00.1155.578l1.1065.4141c.
90273.0962.0567.1914.087.2855l-.6904.9587a.3452.3452 0 00.2268.5447l1.1662.1893c.0456.088.0922.1751.1408.2622l-.491 1.0762a.3462.3462 0 00.328.49l1.1834-.0415c.0618.0769.1235.1528.1873.2277l-.2713 1.1541a.3462.3462 0 00.4171.4161l1.153-.2713c.075.0638.151.1255.2279.1863l-.0415 1.1845a.3442.3442 0 00.49.327l1.0761-.49c.087.0486.1741.0951.2622.1407l.1903 1.1662a.3483.3483 0 00.5447.2268l.9587-.6904a9.299 9.299 0 00.2855.087l.414 1.1066a.3452.3452 0 00.5781.1154l.8079-.8656c.0972.0111.1954.0203.2936.0294l.6236 1.0073a.3472.3472 0 00.5892 0l.6236-1.0073c.0982-.0091.1964-.0183.2936-.0294l.8069.8656a.3483.3483 0 00.578-.1154l.4141-1.1066a8.4626 8.4626 0 00.2855-.087l.9587.6904a.3452.3452 0 00.5447-.2268l.1903-1.1662c.088-.0456.1751-.0931.2622-.1407l1.0762.49a.3472.3472 0 00.49-.327l-.0415-1.1845a6.7267 6.7267 0 00.2267-.1863l1.1531.2713a.3472.3472 0 00.4171-.416l-.2713-1.1542c.0628-.0749.1255-.1508.1863-.2278l1.1845.0415a.3442.3442 0 00.328-.49l-.49-1.076c.0475-.0872.0951-.1742.1407-.2623l1.1662-.1893a.3483.3483 0 00.2258-.5447l-.6904-.9587.087-.2855 1.1066-.414a.3462.3462 0 00.1154-.5781l-.8656-.8079c.0101-.0972.0202-.1954.0283-.2936l1.0073-.6236a.3442.3442 0 000-.5892zm-6.7413 8.3551a.7138.7138 0 01.2986-1.396.714.714 0 11-.2997 1.396zm-.3422-2.3142a.649.649 0 00-.7715.5l-.3573 1.6685c-1.1035.501-2.3285.7795-3.6193.7795a8.7368 8.7368 0 01-3.6951-.814l-.3574-1.6684a.648.648 0 00-.7714-.499l-1.473.3158a8.7216 8.7216 0 01-.7613-.898h7.1676c.081 0 .1356-.0141.1356-.088v-2.536c0-.074-.0536-.0881-.1356-.0881h-2.0966v-1.6077h2.2677c.2065 0 1.1065.0587 1.394 1.2088.0901.3533.2875 1.5044.4232 1.8729.1346.413.6833 1.2381 1.2685 1.2381h3.5716a.7492.7492 0 00.1296-.0131 8.7874 8.7874 0 01-.8119.9526zM6.8369 20.024a.714.714 0 11-.2997-1.396.714.714 0 01.2997 1.396zM4.1177 8.9972a.7137.7137 0 11-1.304.5791.7137.7137 0 011.304-.579zm-.8352 1.9813l1.5347-.6824a.65.65 0 00.33-.8585l-.3158-.7147h1.2432v5.6025H3.5669a8.7753 8.7753 0 01-.2834-3.348zm6.7343-.5437V8.7836h2.9601c.153 0 1.0792.1772 1.0792.8697 0 .575-.7107.7815-1.2948.7815zm10.7574 1.4862c0 .2187-.008.4363-.0243.651h-.9c-.09 0-.1265.0586-.1265.1477v.413c0 .973-.5487 1.1846-1.0296 1.2382-.4576.0517-.9648-.1913-1.0275-.4717-.2704-1.5186-.7198-1.8436-1.4305-2.4034.8817-.5599 1.799-1.386 1.799-2.4915 0-1.1936-.819-1.9458-1.3769-2.3153-.7825-.5163-1.6491-.6195-1.883-.6195H5.4682a8.7651 8.7651 0 014.907-2.7699l1.0974 1.151a.648.648 0 00.9182.0213l1.227-1.1743a8.7753 8.7753 0 016.0044 4.2762l-.8403 1.8982a.652.652 0 00.33.8585l1.6178.7188c.0283.2875.0425.577.0425.8717zm-9.3006-9.5993a.7128.7128 0 11.984 1.0316.7137.7137 0 01-.984-1.0316zm8.3389 6.71a.7107.7107 0 01.9395-.3625.7137.7137 0 11-.9405.3635z"},child:[]}]})(e)}},ac={macos:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"},child:[]}]})(e)},windows:function(e){return ar({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"},child:[]}]})(e)},linux:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.504 0c-.155 0-.315.008-.48.021-4.226.333-3.105 4.807-3.17 6.298-.076 1.092-.3 1.953-1.05 3.02-.885 1.051-2.127 2.75-2.716 4.521-.278.832-.41 1.684-.287 2.489a.424.424 0 00-.11.135c-.26.268-.45.6-.663.839-.199.199-.485.267-.797.4-.313.136-.658.269-.864.68-.09.189-.136.394-.132.602 0 .199.027.4.055.536.058.399.116.728.04.97-.249.68-.28 1.145-.106 1.484.174.334.535.47.94.601.81.2 1.91.135 2.774.6.926.466 1.866.67 2.616.47.526-.116.97-.464 1.208-.946.587-.003 1.23-.269 2.26-.334.699-.058
91.574.267 2.577.2.025.134.063.198.114.333l.003.003c.391.778 1.113 1.132 1.884 1.071.771-.06 1.592-.536 2.257-1.306.631-.765 1.683-1.084 2.378-1.503.348-.199.629-.469.649-.853.023-.4-.2-.811-.714-1.376v-.097l-.003-.003c-.17-.2-.25-.535-.338-.926-.085-.401-.182-.786-.492-1.046h-.003c-.059-.054-.123-.067-.188-.135a.357.357 0 00-.19-.064c.431-1.278.264-2.55-.173-3.694-.533-1.41-1.465-2.638-2.175-3.483-.796-1.005-1.576-1.957-1.56-3.368.026-2.152.236-6.133-3.544-6.139zm.529 3.405h.013c.213 0 .396.062.584.198.19.135.33.332.438.533.105.259.158.459.166.724 0-.02.006-.04.006-.06v.105a.086.086 0 01-.004-.021l-.004-.024a1.807 1.807 0 01-.15.706.953.953 0 01-.213.335.71.71 0 00-.088-.042c-.104-.045-.198-.064-.284-.133a1.312 1.312 0 00-.22-.066c.05-.06.146-.133.183-.198.053-.128.082-.264.088-.402v-.02a1.21 1.21 0 00-.061-.4c-.045-.134-.101-.2-.183-.333-.084-.066-.167-.132-.267-.132h-.016c-.093 0-.176.03-.262.132a.8.8 0 00-.205.334 1.18 1.18 0 00-.09.4v.019c.002.089.008.179.02.267-.193-.067-.438-.135-.607-.202a1.635 1.635 0 01-.018-.2v-.02a1.772 1.772 0 01.15-.768c.082-.22.232-.406.43-.533a.985.985 0 01.594-.2zm-2.962.059h.036c.142 0 .27.048.399.135.146.129.264.288.344.465.09.199.14.4.153.667v.004c.007.134.006.2-.002.266v.08c-.03.007-.056.018-.083.024-.152.055-.274.135-.393.2.012-.09.013-.18.003-.267v-.015c-.012-.133-.04-.2-.082-.333a.613.613 0 00-.166-.267.248.248 0 00-.183-.064h-.021c-.071.006-.13.04-.186.132a.552.552 0 00-.12.27.944.944 0 00-.023.33v.015c.012.135.037.2.08.334.046.134.098.2.166.268.01.009.02.018.034.024-.07.057-.117.07-.176.136a.304.304 0 01-.131.068 2.62 2.62 0 01-.275-.402 1.772 1.772 0 01-.155-.667 1.759 1.759 0 01.08-.668 1.43 1.43 0 01.283-.535c.128-.133.26-.2.418-.2zm1.37 1.706c.332 0 .733.065 1.216.399.293.2.523.269 1.052.468h.003c.255.136.405.266.478.399v-.131a.571.571 0 01.016.47c-.123.31-.516.643-1.063.842v.002c-.268.135-.501.333-.775.465-.276.135-.588.292-1.012.267a1.139 1.139 0 01-.448-.067 3.566 3.566 0 01-.322-.198c-.195-.135-.363-.332-.612-.465v-.005h-.005c-.4-.246-.616-.512-.686-.71-.07-.268-.005-.47.193-.6.224-.135.38-.271.483-.336.104-.074.143-.102.176-.131h.002v-.003c.169-.202.436-.47.839-.601.139-.036.294-.065.466-.065zm2.8 2.142c.358 1.417 1.196 3.475 1.735 4.473.286.534.855 1.659 1.102 3.024.156-.005.33.018.513.064.646-1.671-.546-3.467-1.089-3.966-.22-.2-.232-.335-.123-.335.59.534 1.365 1.572 1.646 2.757.13.535.16 1.104.021 1.67.067.028.135.06.205.067 1.032.534 1.413.938 1.23 1.537v-.043c-.06-.003-.12 0-.18 0h-.016c.151-.467-.182-.825-1.065-1.224-.915-.4-1.646-.336-1.77.465-.008.043-.013.066-.018.135-.068.023-.139.053-.209.064-.43.268-.662.669-.793 1.187-.13.533-.17 1.156-.205 1.869v.003c-.02.334-.17.838-.319 1.35-1.5 1.072-3.58 1.538-5.348.334a2.645 2.645 0 00-.402-.533 1.45 1.45 0 00-.275-.333c.182 0 .338-.03.465-.067a.615.615 0 00.314-.334c.108-.267 0-.697-.345-1.163-.345-.467-.931-.995-1.788-1.521-.63-.4-.986-.87-1.15-1.396-.165-.534-.143-1.085-.015-1.645.245-1.07.873-2.11 1.274-2.763.107-.065.037.135-.408.974-.396.751-1.14 2.497-.122 3.854a8.123 8.123 0 01.647-2.876c.564-1.278 1.743-3.504 1.836-5.268.048.036.217.135.289.202.218.133.38.333.59.465.21.201.477.335.876.335.039.003.075.006.11.006.412 0 .73-.134.997-.268.29-.134.52-.334.74-.4h.005c.467-.135.835-.402 1.044-.7zm2.185 8.958c.037.6.343 1.245.882 1.377.588.134 1.434-.333 1.791-.765l.211-.01c.315-.007.577.01.847.268l.003.003c.208.199.305.53.391.876.085.4.154.78.409 1.066.486.527.645.906.636 1.14l.003-.007v.018l-.003-.012c-.015.262-.185.396-.498.595-.63.401-1.746.712-2.457 1.57-.618.737-1.37 1.14-2.036 1.191-.664.053-1.237-.2-1.574-.898l-.005-.003c-.21-.4-.12-1.025.056-1.69.176-.668.428-1.344.463-1.897.037-.714.076-1.335.195-1.814.12-.465.308-.797.641-.984l.045-.022zm-10.814.049h.01c.053 0 .105.005.157.014.376.055.706.333 1.023.752l.91 1.664.003.003c.243.533.754 1.064 1.189 1.637.434.598.77 1.131.729 1.57v.006c-.057.744-.48 1.148-1.
9125 1.294-.645.135-1.52.002-2.395-.464-.968-.536-2.118-.469-2.857-.602-.369-.066-.61-.2-.723-.4-.11-.2-.113-.602.123-1.23v-.004l.002-.003c.117-.334.03-.752-.027-1.118-.055-.401-.083-.71.043-.94.16-.334.396-.4.69-.533.294-.135.64-.202.915-.47h.002v-.002c.256-.268.445-.601.668-.838.19-.201.38-.336.663-.336zm7.159-9.074c-.435.201-.945.535-1.488.535-.542 0-.97-.267-1.28-.466-.154-.134-.28-.268-.373-.335-.164-.134-.144-.333-.074-.333.109.016.129.134.199.2.096.066.215.2.36.333.292.2.68.467 1.167.467.485 0 1.053-.267 1.398-.466.195-.135.445-.334.648-.467.156-.136.149-.267.279-.267.128.016.034.134-.147.332a8.097 8.097 0 01-.69.468zm-1.082-1.583V5.64c-.006-.02.013-.042.029-.05.074-.043.18-.027.26.004.063 0 .16.067.15.135-.006.049-.085.066-.135.066-.055 0-.092-.043-.141-.068-.052-.018-.146-.008-.163-.065zm-.551 0c-.02.058-.113.049-.166.066-.047.025-.086.068-.14.068-.05 0-.13-.02-.136-.068-.01-.066.088-.133.15-.133.08-.031.184-.047.259-.005.019.009.036.03.03.05v.02h.003z"},child:[]}]})(e)}},ad={vscode:function(e){return ar({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{d:"M10.8634 13.9195C10.6568 14.0195 10.4233 14.0246 10.2185 13.9444C10.1162 13.9044 10.021 13.843 9.93997 13.7614L4.81616 9.06268L2.58433 10.7656C2.37657 10.9241 2.08597 10.9111 1.89301 10.7347L1.17719 10.0802C0.941168 9.86437 0.940898 9.49112 1.17661 9.27496L3.11213 7.5L1.17661 5.72504C0.940898 5.50888 0.941168 5.13563 1.17719 4.91982L1.89301 4.2653C2.08597 4.08887 2.37657 4.07588 2.58433 4.2344L4.81616 5.93732L9.93997 1.23855C9.97037 1.20797 10.0028 1.18023 10.0368 1.15538C10.2748 0.981429 10.5922 0.949298 10.8634 1.08048L13.5399 2.37507C13.8212 2.5111 14 2.79721 14 3.11109V8H10.752V4.53356L6.86419 7.5L10.752 10.4664V8H14V11.8889C14 12.2028 13.8211 12.4889 13.5399 12.625L10.8634 13.9195Z"},child:[]}]})(e)},"android-studio":function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M19.2693 10.3368c-.3321 0-.6026.2705-.6026.6031v9.8324h-1.7379l-3.3355-6.9396c.476-.5387.6797-1.286.5243-2.0009a2.2862 2.2862 0 0 0-1.2893-1.6248v-.8124c.0121-.2871-.1426-.5787-.4043-.7407-.1391-.0825-.2884-.1234-.4402-.1234a.8478.8478 0 0 0-.4318.1182c-.2701.1671-.4248.4587-.4123.7662l-.0003.721c-1.0149.3668-1.6619 1.4153-1.4867 2.5197a2.282 2.282 0 0 0 .5916 1.2103l-3.2096 6.9064H4.0928c-1.0949-.007-1.9797-.8948-1.9832-1.9896V5.016c-.0055 1.1024.8836 2.0006 1.9859 2.0062a2.024 2.024 0 0 0 .1326-.0037h14.7453s2.5343-.2189 2.8619 1.5392c-.2491.0287-.4449.2321-.4449.4889 0 .7115-.5791 1.2901-1.3028 1.2901h-.8183zM17.222 22.5366c.2347.4837.0329 1.066-.4507 1.3007-.1296.0629-.2666.0895-.4018.0927a.9738.9738 0 0 1-.3194-.0455c-.024-.0078-.046-.0209-.0694-.0305a.9701.9701 0 0 1-.2277-.1321c-.0247-.0192-.0495-.038-.0724-.0598-.0825-.0783-.1574-.1672-.21-.2757l-1.2554-2.6143-1.5585-3.2452a.7725.7725 0 0 0-.6995-.4443h-.0024a.792.792 0 0 0-.7083.4443l-1.5109 3.2452-1.2321 2.6464a.9722.9722 0 0 1-.7985.5795c-.0626.0053-.1238-.0024-.185-.0087-.0344-.0036-.069-.0053-.1025-.0124-.0489-.0103-.0954-.0278-.142-.0452-.0301-.0113-.0613-.0197-.0901-.0339-.0496-.0244-.0948-.0565-.1397-.0889-.0217-.0156-.0457-.0275-.0662-.045a.9862.9862 0 0 1-.1695-.1844.9788.9788 0 0 1-.0708-.9852l.8469-1.8223 3.2676-7.0314a1.7964 1.7964 0 0 1-.7072-1.1637c-.1555-.9799.5129-1.9003 1.4928-2.0559V9.3946a.3542.3542 0 0 1 .1674-.3155.3468.3468 0 0 1 .3541 0 .354.354 0 0 1 .1674.3155v1.159l.0129.0064a1.8028 1.8028 0 0 1 1.2878 1.378 1.7835 1.7835 0 0 1-.6439 1.7836l3.3889 7.0507.8481 1.7643zM12.9841 12.306c.0042-.6081-.4854-1.1044-1.0935-1.1085a1.1204 1.1204 0 0 0-.7856.3219 1.101 1.101 0 0 0-.323.7716c-.0042.6081.4854 1.1044 1.0935 1.1085h.0077c.6046 0 1.0967-.488 1.1009-1.0935zm-1.027 5.2768c-.1119.0005-.2121.0632-.2571.1553l-1.4127 3.0342h3.3733l-1.4564-3.0328a.274.274 0 0 0-.2471-.1567zm8.1432-6.7459l-.0129-.0001h-.8177a.103.103 0 0 0-.103.103v12.9103a.103.103 0 0 0 .0966.103h.8435c.9861-.0035 1.7836-.804 1.7836-1.79V9.0468c0 .9887-.8014 1.7901-1.7901 1.7901zM2.6098 5.0161v.019c.0039.816.6719 1.483 1.4874 1.4869a12.061 12.061 0 0 1 .1309-.0034h1.1286c.1972-1.315.7607-2.525 1.638-3.4859H4.0993c-.9266.0031-1.6971.6401-1.9191 1.4975.2417.0355.4296.235.4296.4859zm6.3381-2.8977L7.9112.3284a.219.219 0 0 1 0-.2189A.2384.2384 0 0 1 8.098 0a.219.219 0 0 1 .1867.1094l1.0496 1.8158a6.4907 6.4907 0 0 1 5.3186 0L15.696.1094a.2189.2189 0 0 1 .3734.2189l-1.0302 1.79c1.6671.9125 2.7974 2.5439 3.0975 4.4018l-12.286-.0014c.3004-1.8572 1.4305-3.488 3.0972-4.4003zm5.3774 2.6202a.515.515 0 0 0 .5271.5028.515.51
95 0 0 0 .5151-.5151.5213.5213 0 0 0-.8885-.367.5151.5151 0 0 0-.1537.3793zm-5.7178-.0067a.5151.5151 0 0 0 .5207.5095.5086.5086 0 0 0 .367-.1481.5215.5215 0 1 0-.734-.7341.515.515 0 0 0-.1537.3727z"},child:[]}]})(e)},xcode:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M19.06 5.3327c.4517-.1936.7744-.2581 1.097-.1936.5163.1291.7744.5163.968.7098.1936.3872.9034.7744 1.2261.8389.2581.0645.7098-.6453 1.0325-1.2906.3227-.5808.5163-1.3552.4517-1.5488-.0645-.1936-.968-.5808-1.1616-.5808-.1291 0-.3872.1291-.8389.0645-.4517-.0645-.9034-.5808-1.1616-.968-.4517-.6453-1.097-1.0325-1.6778-1.3552-.6453-.3227-1.3552-.5163-2.065-.6453-1.0325-.2581-2.065-.4517-3.0975-.3227-.5808.0645-1.2906.1291-1.8069.3227-.0645 0-.1936.1936-.0645.1936s.5808.0645.5808.0645-.5807.1292-.5807.2583c0 .1291.0645.1291.1291.1291.0645 0 1.4842-.0645 2.065 0 .6453.1291 1.3552.4517 1.8069 1.2261.7744 1.4197.4517 2.7749.2581 3.2266-.968 2.1295-8.6472 15.2294-9.0344 16.1328-.3873.9034-.5163 1.4842.5807 2.065s1.6778.3227 2.0005-.0645c.3872-.5163 7.0339-17.1654 9.2925-18.2624zm-3.6138 8.7117h1.5488c1.0325 0 1.2261.5163 1.2261.7098.0645.5163-.1936 1.1616-1.2261 1.1616h-.968l.7744 1.2906c.4517.7744.2581 1.1616 0 1.4197-.3872.3872-1.2261.3872-1.6778-.4517l-.9034-1.5488c-.6453 1.4197-1.2906 2.9684-2.065 4.7753h4.0009c1.9359 0 3.5492-1.6133 3.5492-3.5492V6.5588c-.0645-.1291-.1936-.0645-.2581 0-.3872.4517-1.4842 2.0004-4.001 7.4856zm-9.8087 8.0019h-.3227c-2.3231 0-4.1945-1.8714-4.1945-4.1945V7.0105c0-2.3231 1.8714-4.1945 4.1945-4.1945h9.3571c-.1936-.1936-.968-.5163-1.7423-.4517-.3227 0-.968.1291-1.3552-.1291-.3872-.3227-.3227-.5163-.9034-.5163H4.9277c-2.6458 0-4.7753 2.1295-4.7753 4.7753v11.7447c0 2.6458 2.1295 4.7753 4.4527 4.7108.6452 0 .8388-.5162 1.0324-.9034zM20.4152 6.9459v10.9058c0 2.3231-1.8714 4.1945-4.1945 4.1945H11.897s-.3872 1.0325.8389 1.0325h3.8719c2.6458 0 4.7753-2.1295 4.7753-4.7753V8.8173c.0646-.9034-.7098-1.4842-.9679-1.8714zm-18.5851.0646v10.8413c0 1.9359 1.6133 3.5492 3.5492 3.5492h.5808c0-.0645.7744-1.4197 2.4522-4.2591.1936-.3872.4517-.7744.7098-1.2261H4.4114c-.5808 0-.9034-.3872-.968-.7098-.1291-.5163.1936-1.1616.9034-1.1616h2.3877l3.033-5.2916s-.7098-1.2906-.9034-1.6133c-.2582-.4517-.1291-.9034.129-1.1615.3872-.3872 1.0325-.5808 1.6778.4517l.2581.3872.2581-.3872c.5808-.8389.968-.7744 1.2906-.7098.5163.1291.8389.7098.3872 1.6133L8.864 14.0444h1.3552c.4517-.7744.9034-1.5488 1.3552-2.3877-.0645-.3227-.1291-.7098-.0645-1.0325.0645-.5163.3227-.968.6453-1.3552l.3872.6453c1.2261-2.1295 2.1295-3.9364 2.3877-4.6463.1291-.3872.3227-1.1616.1291-1.8069H5.3794c-2.0005.0001-3.5493 1.6134-3.5493 3.5494zM4.605 17.7872c0-.0645.7744-1.4197.7744-1.4197 1.2261-.3227 1.8069.4517 1.8714.5163 0 0-.8389 1.4842-1.097 1.7423s-.5808.3227-.9034.2581c-.5164-.129-.839-.6453-.6454-1.097z"},child:[]}]})(e)},postman:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.527.099C6.955-.744.942 3.9.099 10.473c-.843 6.572 3.8 12.584 10.373 13.428 6.573.843 12.587-3.801 13.428-10.374C24.744 6.955 20.101.943 13.527.099zm2.471 7.485a.855.855 0 0 0-.593.25l-4.453 4.453-.307-.307-.643-.643c4.389-4.376 5.18-4.418 5.996-3.753zm-4.863 4.861l4.44-4.44a.62.62 0 1 1 .847.903l-4.699 4.125-.588-.588zm.33.694l-1.1.238a.06.06 0 0 1-.067-.032.06.06 0 0 1 .01-.073l.645-.645.512.512zm-2.803-.459l1.172-1.172.879.878-1.979.426a.074.074 0 0 1-.085-.039.072.072 0 0 1 .013-.093zm-3.646 6.058a.076.076 0 0 1-.069-.083.077.077 0 0 1 .022-.046h.002l.946-.946 1.222 1.222-2.123-.147zm2.425-1.256a.228.228 0 0 0-.117.256l.203.865a.125.125 0 0 1-.211.117h-.003l-.934-.934-.294-.295 3.762-3.758 1.82-.393.874.874c-1.255 1.102-2.971 2.201-5.1 3.268zm5.279-3.428h-.002l-.839-.839 4.699-4.125a.952.952 0 0 0 .119-.127c-.148 1.345-2.029 3.245-3.977 5.091zm3.657-6.46l-.003-.002a1.822 1.822 0 0 1 2.459-2.684l-1.61 1.613a.119.119 0 0 0 0 .169l1.247 1.247a1.817 1.817 0 0 1-2.093-.343zm2.578 0a1.714 1.714 0 0 1-.271.218h-.001l-1.207-1.207 1.533-1.533c.661.72.637 1.832-.054 2.522zM18.855 6.05a.143.143 0 0 0-.053.157.416.416 0 0 1-.053.45.14.14 0 0 0 .023.197.141.141 0 0 0 .084.03.14.14 0 0 0 .106-.05.691.691 0 0 0 .087-.751.138.138 0 0 0-.194-.033z"},child:[]}]})(e)},insomnia:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.1356 3.4577c4.7179 0 8.5424 3.8245 8.5424 8.5424 0 4.7178-3.8245 8.5423-8.5424 8.5423-4.7178 0-8.5423-3.8245-8.5423-8.5423 0-1.153.2284-2.2527.6425-3.2562.6046.8233 1.5796 1.3579 2.6795 1.3579 1.8347 0 3.322-1.4874 3.322-3.3221 0-1.0999-.5345-2.0749-1.3579-2.6795 1.0036-.414 2.1032-.6425 3.2562-.6425zM12 0C5.3726 0 0 5.3726 0 12s5.3726 12 12 12 12-5.3726 12-12S18.6274 0 12 0Zm0 1.2203c5.9534 0 10.7797 4.8263 10.7797 10.7797S17.9534 22.7797 12 22.7797 1.2203 17.9534 1.2203 12 6.0466 1.2203 12 1.2203Z"},child:[]}]})(e)},docker:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288Z"},child:[]}]})(e)},postgres:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M23.5594 14.7228a.5269.5269 0 0 0-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191 1.342-2.0482 2.445-4.522 3.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641 1.5641 0 0 0-.1509-.235C21.6931.9086 19.8007.0248 17.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449 9.449 0 0 0-.5159-.0816 8.044 8.044 0 0 0-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359 2.1526.3086 3.8733.4302 6.3043c.0409.818.5069 3.334 1.2423 5.7436.4598 1.5065.9387 2.7019 1.4334 3.582.553.9942 1.1259 1.5933 1.7143 1.7895.4474.1491 1.1327.1441 1.8581-.7279.8012-.9635 1.5903-1.8258 1.9446-2.2069.4351.2355.9064.3625 1.39.3772a.0569.0569 0 0 0 .0004.0041 11.0312 11.0312 0 0 0-.2472.3054c-.3389.43
902-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097 1.015.6331 1.3345.3335 2.5044.092 3.3714-.6787-.017 2.231.0775 4.4174.3454 5.0874.2212.5529.7618 1.9045 2.4692 1.9043.2505 0 .5263-.0291.8296-.0941 1.7819-.3821 2.5557-1.1696 2.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673 0 0 0 .0443.0068l.2539.0223.0149.001c.8468.0384 1.9114-.1426 2.5312-.4308.6438-.2988 1.8057-1.0323 1.5951-1.6698zM2.371 11.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829 1.5623-4.4927 1.8367-1.2986 4.8398-.5408 6.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238 2.044-1.9758 5.536-1.9708 5.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996 1.6804-.0735 2.9184-.1609 1.1504.1937 2.2764.9728 3.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004 1.1926-1.9025 2.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072 5.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409 1.2833-.2641 1.4815-.4506 1.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549 0 0 0 .0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043 1.2658-2.2216 1.2494-3.1676 1.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334 1.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621 1.6659-.9962 2.6429-.7724.4459.1022.7176.4057.8305.928.5846 2.7038.0774 3.8307-.3302 4.7363-.084.1866-.1633.3629-.2311.5454zm7.3637 4.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547 0 0 0-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794 1.0575-.11 1.4143-.8782 2.2267-2.4172 2.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824 6.5824 0 0 0-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529 0 0 0-.0153-.1126 1.4927 1.4927 0 0 0-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476 1.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716 5.6716 0 0 0-.1958.1041c.0918-1.1064.4386-3.1741 1.7357-4.4823a4.0306 4.0306 0 0 1 .3033-.276.3532.3532 0 0 0 .1447-.0644c.7524-.5706 1.6945-.8506 2.802-.8325.4091.0067.8017.0339 1.1742.081 1.939.3544 3.2439 1.4468 4.0359 2.3827.8143.9623 1.2552 1.9315 1.4312 2.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926 1.4189.543 4.1729 1.2811 5.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787 1.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552 1.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566 2.8566 0 0 0 .135-.0406 1.202 1.202 0 0 0 .1342.103c.5703.3765 1.5823.4213 3.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054 1.0017-.055.3576-.112.7274-.1264 1.1762-.0142.4368.0404.8909.0932 1.3301.1066.887.216 1.8003-.2075 2.7014a3.5272 3.5272 0 0 1-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427 1.3408-.5661 2.1781-.463zm.2284 7.0137a12.3762 12.3762 0 0 0-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066 1.2328-.2035 2.0244-.1859 2.0515.0456 3.6746.8135 4.8242 2.2824a.908.908 0 0 1 .0667.1002c.7231 1.3556-.2762 6.2751-2.9867 10.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821 0 0 1-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456 0 0 1-.075.0052c-.2935 0-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z"},child:[]}]})(e)},redis:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483-3.203
90-4.397-2.825-4.48-5.12.701 1.484 2.073 2.685 4.214 2.63 4.117-.133 6.94-3.852 6.94-7.239 0-4.05-3.022-6.972-8.268-6.972-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648.232 0 .431-.133.664-.365a100.49 100.49 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898 3.819 0 7.604-2.756 9.33-8.965.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922-.941 0-1.664-.247-2.235-.568 1.051-1.592 2.092-3.225 3.21-4.973 1.972.334 2.71 1.43 2.71 2.619z"},child:[]}]})(e)},git:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M23.546 10.93L13.067.452c-.604-.603-1.582-.603-2.188 0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884 0 2.604-.719.719-1.881.719-2.6 0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883 0 2.6-.719.721-1.889.721-2.609 0-.719-.719-.719-1.879 0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584 0 2.189l10.48 10.477c.604.604 1.582.604 2.186 0l10.43-10.43c.605-.603.605-1.582 0-2.187"},child:[]}]})(e)},"eslint-prettier":function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.257 9.132L11.816 6.5a.369.369 0 0 1 .368 0l4.559 2.632a.369.369 0 0 1 .184.32v5.263a.37.37 0 0 1-.184.319l-4.559 2.632a.369.369 0 0 1-.368 0l-4.559-2.632a.369.369 0 0 1-.184-.32V9.452a.37.37 0 0 1 .184-.32M23.852 11.53l-5.446-9.475c-.198-.343-.564-.596-.96-.596H6.555c-.396 0-.762.253-.96.596L.149 11.509a1.127 1.127 0 0 0 0 1.117l5.447 9.398c.197.342.563.517.959.517h10.893c.395 0 .76-.17.959-.512l5.446-9.413a1.069 1.069 0 0 0 0-1.086m-4.51 4.556a.4.4 0 0 1-.204.338L12.2 20.426a.395.395 0 0 1-.392 0l-6.943-4.002a.4.4 0 0 1-.205-.338V8.08c0-.14.083-.269.204-.338L11.8 3.74c.12-.07.272-.07.392 0l6.943 4.003a.4.4 0 0 1 .206.338z"},child:[]}]})(e)},tailwind:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z"},child:[]}]})(e)},storybook:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16.71.243l-.12 2.71a.18.18 0 00.29.15l1.06-.8.9.7a.18.18 0 00.28-.14l-.1-2.76 1.33-.1a1.2 1.2 0 011.279 1.2v21.596a1.2 1.2 0 01-1.26 1.2l-16.096-.72a1.2 1.2 0 01-1.15-1.16l-.75-19.797a1.2 1.2 0 011.13-1.27L16.7.222zM13.64 9.3c0 .47 3.16.24 3.59-.08 0-3.2-1.72-4.89-4.859-4.89-3.15 0-4.899 1.72-4.899 4.29 0 4.45 5.999 4.53 5.999 6.959 0 .7-.32 1.1-1.05 1.1-.96 0-1.35-.49-1.3-2.16 0-.36-3.649-.48-3.769 0-.27 4.03 2.23 5.2 5.099 5.2 2.79 0 4.969-1.49 4.969-4.18 0-4.77-6.099-4.64-6.099-6.999 0-.97.72-1.1 1.13-1.1.45 0 1.25.07 1.19 1.87z"},child:[]}]})(e)},vitest:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.74024 1.05293a.49504.49504 0 0 0-.1569.02512.49338.49338 0 0 0-.25056.1876L7.59513 9.56159a.4895.4895 0 0 0-.08373.22327.48846.48846 0 0 0 .03163.23629.4893.4893 0 0 0 .13985.19319.4927.4927 0 0 0 .2149.10481l3.70685.78609-.22947 4.58007a.48834.48834 0 0 0 .08466.30017.49205.49205 0 0 0 .24931.18854c.10157.03398.21174.03444.3135.00064a.49387.49387 0 0 0 .25056-.18761l5.73735-8.29594a.4884.4884 0 0 0 .08404-.22327c.009-.08015-.0016-.16137-.03163-.23629a.48835.48835 0 0 0-.13985-.19319.49318.49318 0 0 0-.2149-.1048l-3.70686-.7861.22947-4.58008a.48802.48802 0 0 0-.08466-.30017.4913.4913 0 0 0-.24931-.18853.49439.49439 0 0 0-.1566-.02574zM1.15697 9.78795c-.30647.0012-.60009.12378-.81679.34048a1.16107 1.16107 0 0 0-.34017.81648 1.162 1.162 0 0 0 .33366.81957l10.84241 10.8421a1.15762 1.15762 0 0 0 .37677.25211 1.1583 1.1583 0 0 0 .44467.08838c.00084 0 .0016-.00031.0025-.00031.00073 0 .0014.00031.0022.00031a1.15827 1.15827 0 0 0 .44467-.08838 1.15731 1.15731 0 0 0 .37677-.2521l10.84236-10.8421a1.16272 1.16272 0 0 0 .33397-.81958c-.0013-.30647-.12376-.59976-.34048-.81648a1.1616 1.1616 0 0 0-.81679-.34048 1.16114 1.16114 0 0 0-.81926.33366l-5.4012 5.4009c-.0078.0074-.01718.01255-.02482.02015L12 20.14011l-4.59776-4.59745c-.0074-.0074-.01659-.01238-.02419-.01954l-5.4015-5.40151a1.162 1.162 0 0 0-.81958-.33366Z"},child:[]}]})(e)},playwright:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 0C8.21 0 4.831 1.757 2.632 4.501l3.953 6.848A5.454 5.454 0 0 1 12 6.545h10.691A12 12 0 0 0 12 0zM1.931 5.47A11.943 11.943 0 0 0 0 12c0 6.012 4.42 10.991 10.189 11.864l3.953-6.847a5.45 5.45 0 0 1-6.865-2.29zm13.342 2.166a5.446 5.446 0 0 1 1.45 7.09l.002.001h-.002l-5.344 9.257c.206.01.413.016.621.016 6.627 0 12-5.373 12-12 0-1.54-.29-3.011-.818-4.364zM12 16.364a4.364 4.364 0 1 1 0-8.728 4.364 4.364 0 0 1 0 8.728Z"},child:[]}]})(e)},"expo-orbit":ao,warp:function(e){return ar({tag:"svg",attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.035 2.723h9.253A2.712 2.712 0 0 1 24 5.435v10.529a2.712 2.712 0 0 1-2.712 2.713H8.047Zm-1.681 2.6L6.766 19.677h5.598l-.399 1.6H2.712A2.712 2.712 0 0 1 0 18.565V8.036a2.712 2.712 0 0 1 2.712-2.712Z"},child:[]}]})(e)},"github-desktop":function(e){return ar({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"},child:[]}]})(e)}};function au({os:e,selected:t,onSelect:i,tag:s}){let n=ac[e.id];return(0,r.jsx)(rM.button,{type:"button",onClick:()=>i(e.id),whileHover:{y:-2},whileTap:{scale:.98},className:rQ("w-full rounded-2xl border bg-white px-5 py-4 text-left shadow-[0_1px_0_rgba(16,24,40,0.04)] transition",t?"border-zinc-900/30 ring-1 ring-zinc-900/10":"border-zinc-200 hover:border-zinc-300"),"aria-pressed":t,children:(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)("div",{className:rQ("flex h-11 w-11 items-center justify-center rounded-xl border",t?"border-zinc-900/30 bg-zinc-900 text-white":"border-zinc-200 bg-zinc-50 text-zinc-600"),children:(0,r.jsx)(n,{size:22})}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.name}),s&&(0,r.jsx)("span",{className:"rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:s})]}),(0,r.jsx)("p",{className:"text-sm text-zinc-500",children:e.description})]})]})})}function ah({steps:e,completed:t,onToggle:i}){return(0,r.jsxs)("div",{className:"rounded-2xl border border-zinc-200 bg-white p-5 shadow-[0_1px_0_rgba(16,24,40,0.04)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Progress"}),(0,r.jsxs)("span",{className:"text-xs text-zinc-500",children:[t.length,"/",e.length," complete"]})]}),(0,r.jsx)("div",{className:"mt-4 space-y-3",children:e.map(e=>{let s=t.includes(e.id);return(0,r.jsxs)("button",{type:"button",onClick:()=>i(e.id),className:rQ("flex w-full items-center justify-between rounded-xl border px-3 py-2 text-left text-sm transition",s?"border-zinc-900/20 bg-zinc-900 text-white":"border-zinc-200 bg-white text-zinc-600 hover:border-zinc-300"),children:[(0,r.jsx)("span",{children:e.title}),(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-[0.2em]",children:s?"Done":"Todo"})]},e.id)})})]})}let ap=(0,a.forwardRef)(({className:e,hint:t="CTRL K",...i},s)=>(0,r.jsxs)("div",{className:rQ("flex items-center gap-3 rounded-full border border-zinc-200 bg-white px-4 py-2",e),children:[(0,r.jsx)("span",{className:"text-[10px] font-semibold tracking-[0.2em] text-zinc-400",children:t}),(0,r.jsx)("input",{ref:s,className:"w-full bg-transparent text-sm text-zinc-700 outline-none placeholder:text-zinc-400",...i})]}));function am({section:e,index:t,total:i,id:s,inlineIssues:n}){let[o,l]=(0,a.useState)("idle");(0,a.useEffect)(()=>
9{if("idle"===o)return;let e=window.setTimeout(()=>l("idle"),1500);return()=>window.clearTimeout(e)},[o]);let c=async()=>{let s=e.commands.join("\n"),n=`## Step ${t} of ${i}: ${e.title} 10${e.description} 11 12\`\`\`bash 13${s} 14\`\`\``;try{await r1(n),l("copied")}catch(e){console.error("Failed to copy section",e),l("error")}};return(0,r.jsxs)(r5,{id:s,className:"p-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"text-xs font-semibold uppercase tracking-[0.24em] text-zinc-400",children:["Step ",t," of ",i]}),(0,r.jsx)("h3",{className:"mt-2 text-lg font-semibold text-zinc-900",children:e.title}),(0,r.jsx)("p",{className:"mt-2 text-sm text-zinc-600",children:e.description}),e.tips?.length?(0,r.jsxs)("div",{className:"mt-3 rounded-xl border border-amber-100 bg-amber-50 px-4 py-3 text-xs text-amber-700",children:[(0,r.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-amber-700",children:"Tips"}),(0,r.jsx)("ul",{className:"mt-2 space-y-1",children:e.tips.map(e=>(0,r.jsxs)("li",{children:["⢠",e]},e))})]}):null]}),(0,r.jsx)(r4,{type:"button",size:"sm",variant:"ghost",onClick:c,className:"text-zinc-500 hover:text-zinc-900",children:"copied"===o?"Copied":"error"===o?"Copy failed":"Copy section"})]}),(0,r.jsx)("div",{className:"mt-5",children:(0,r.jsx)(r6,{commands:e.commands,label:"Commands"})}),n&&n.length?(0,r.jsxs)("div",{className:"mt-6 rounded-2xl border border-zinc-200 bg-zinc-50 p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500",children:"Common issues"}),(0,r.jsx)("a",{href:"#troubleshooting",className:"text-xs text-zinc-500 hover:text-zinc-900",children:"View all â"})]}),(0,r.jsx)("div",{className:"mt-4 space-y-4",children:n.map(e=>(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.issue}),(0,r.jsx)("p",{className:"text-xs text-zinc-600",children:e.cause}),(0,r.jsx)(r6,{label:"Fix",commands:e.fix})]},e.issue))})]}):null]})}function af({stack:e,selected:t,onSelect:i}){let s=al[e.id];return(0,r.jsx)(rM.button,{type:"button",onClick:()=>i(e.id),whileHover:{y:-2},whileTap:{scale:.98},className:rQ("w-full rounded-2xl border bg-white px-5 py-4 text-left shadow-[0_1px_0_rgba(16,24,40,0.04)] transition",t?"border-zinc-900/30 ring-1 ring-zinc-900/10":"border-zinc-200 hover:border-zinc-300"),"aria-pressed":t,children:(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)("div",{className:rQ("flex h-11 w-11 items-center justify-center rounded-xl border",t?"border-zinc-900/30 bg-zinc-900 text-white":"border-zinc-200 bg-zinc-50 text-zinc-600"),children:(0,r.jsx)(s,{size:22})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.name}),(0,r.jsx)("p",{className:"text-sm text-zinc-500",children:e.description})]})]})})}function ag({tool:e,selected:t,onToggle:i}){let s=ad[e.id];return(0,r.jsx)(rM.button,{type:"button",onClick:()=>i(e.id),whileHover:{y:-2},whileTap:{scale:.98},className:rQ("w-full rounded-2xl border bg-white px-4 py-4 text-left shadow-[0_1px_0_rgba(16,24,40,0.04)] transition",t?"border-zinc-900/30 ring-1 ring-zinc-900/10":"border-zinc-200 hover:border-zinc-300"),"aria-pressed":t,children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:rQ("flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border",t?"border-zinc-900/30 bg-zinc-900 text-white":"border-zinc-200 bg-zinc-50 text-zinc-600"),children:(0,r.jsx)(s,{size:18})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.name}),(0,r.jsx)("p",{className:"text-xs text-zinc-500",children:e.description})]}),(0,r.jsx)("span",{className:rQ("shrink-0 rounded-full border px-3 py-1 text-[11px] font-semibold uppercase tracking-wide",t?"border-zinc-900/30 bg-zinc-900 text-white":"border-zinc-200 bg-zinc-50 text-zinc-500"),children:e.category})]})})}function ax({items:e}){let[t,i]=(0,a.useState)(null);return(0,r.jsx)("div",{className:"space-y-2",children:e.map((e,s)=>(0,r.jsxs)("div",{className:"rounded-xl border border-zinc-200 bg-white overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>i(t===s?null:s),className:"flex w-full items-start justify-between gap-4 px-5 py-4 text-left transition-colors hover:bg-zinc-50",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-amber-50 text-amber-600 text-xs font-bold",children:"!"}),(0,r.jsx)("span",{className:"text-sm font-medium text-zinc-900",children:e.issue})]}),(0,r.jsx)("span",{className:`mt-0.5 shrink-0 text-zinc-400 transition-transform duration-200 ${t===s?"rotate-180":""}`,children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:(0,r.jsx)("path",{d:"M3 5L7 9L11 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),(0,r.jsx)(rB,{initial:!1,children:t===s&&(0,r.jsx)(rM.div,{initial:{height:0,opacity:0}
14,animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:[.4,0,.2,1]},className:"overflow-hidden",children:(0,r.jsxs)("div",{className:"border-t border-zinc-100 px-5 pb-5 pt-4 space-y-3",children:[(0,r.jsxs)("p",{className:"text-xs text-zinc-500",children:[(0,r.jsx)("span",{className:"font-semibold text-zinc-700",children:"Cause: "}),e.cause]}),(0,r.jsx)(r6,{label:"Fix",commands:e.fix})]})})})]},s))})}ap.displayName="SearchBar";let av=[{id:1,label:"Stack"},{id:2,label:"OS"},{id:3,label:"Tools"},{id:4,label:"Setup Guide"}],ay=[{id:"macos",label:"Brew"},{id:"windows",label:"Winget"},{id:"linux",label:"Apt"}],ab=[{id:"lts",label:"LTS",hint:"Stable versions recommended for teams."},{id:"latest",label:"Latest",hint:"Newest releases for early adopters."}],aw={enter:e=>({opacity:0,x:48*e}),center:{opacity:1,x:0},exit:e=>({opacity:0,x:-48*e})},ak={1:"stacks",2:"step-2",3:"step-3",4:"step-4"};e.s(["default",0,function(){let[e,t]=(0,a.useState)(1),[i,s]=(0,a.useState)(1),[n,o]=(0,a.useState)(null),[l,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,p]=(0,a.useState)([]),[m,f]=(0,a.useState)(""),[g,x]=(0,a.useState)("macos"),[v,y]=(0,a.useState)("lts"),[b,w]=(0,a.useState)(!1),[k,j]=(0,a.useState)("idle"),[S,P]=(0,a.useState)("idle"),[A,z]=(0,a.useState)(""),[T,N]=(0,a.useState)("idle"),[C,M]=(0,a.useState)(null),[E,D]=(0,a.useState)(""),[V,R]=(0,a.useState)(""),[L,O]=(0,a.useState)(""),[I,$]=(0,a.useState)("idle"),[B,F]=(0,a.useState)(null),{value:H,setValue:U}=function(e,t){let[i,s]=(0,a.useState)(()=>{try{let i=window.localStorage.getItem(e);if(null===i)return t;return JSON.parse(i)}catch(i){console.error("Failed to read local storage value",i);try{window.localStorage.removeItem(e)}catch(e){console.error("Failed to clear local storage value",e)}return t}});return(0,a.useEffect)(()=>{try{window.localStorage.setItem(e,JSON.stringify(i))}catch(e){console.error("Failed to write local storage value",e)}},[e,i]),{value:i,setValue:s}}("setupstack-presets",[]),_=(0,a.useRef)(null),W=(0,a.useRef)(null),G=(0,a.useMemo)(()=>(function(){if("u"<typeof navigator)return null;let e=navigator.platform??"",t=navigator.userAgent??"";return/Mac/i.test(e)?"macos":/Win/i.test(e)?"windows":/Linux/i.test(e)||/Android/i.test(t)?"linux":null})(),[]),K=(0,a.useMemo)(()=>G?"windows"===G?"PowerShell":"macos"===G?"zsh":"bash":null,[G]),q=rF.find(e=>e.id===n)??null,X=rH.find(e=>e.id===l)??null,Y=(0,a.useMemo)(()=>q?rU[q.id].map(e=>rJ[e]):[],[q]),J=(0,a.useMemo)(()=>r_.find(e=>e.id===C)??null,[C]),Z=(0,a.useMemo)(()=>B?rF.find(e=>e.id===B.stackId)??null:null,[B]),Q=(0,a.useMemo)(()=>{if(!m.trim())return Y;let e=m.toLowerCase();return Y.filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.category.toLowerCase().includes(e))},[m,Y]),ee=(0,a.useMemo)(()=>Y.filter(e=>d.includes(e.id)),[d,Y]),et=(0,a.useMemo)(()=>q&&X?function({stack:e,osId:t,tools:i,runtimeChannel:s}){let n,r,a=Array.from(new Set(i.flatMap(e=>e.install[t]))),o=(n=[],"macos"===t&&n.push("If Homebrew is missing, install it from https://brew.sh first."),"windows"===t&&n.push("If Winget is missing, update App Installer from the Microsoft Store."),"linux"===t&&n.push("If apt is locked, re-run the command after any package updates finish."),r=[],("node"===e.id||"expo"===e.id||"react-native"===e.id)&&r.push("If npm global installs fail with EACCES, use nvm or change your npm prefix."),"python"===e.id&&r.push("If venv creation fails, ensure the python-venv package is installed."),"flutter"===e.id&&(r.push("If flutter doctor reports missing licenses, re-run flutter doctor --android-licenses."),r.push("Run `flutter doctor` after Android env setup to confirm Android toolchain is detected.")),{system:n,stack:r,tools:["If a tool install fails, re-run the command with administrator permissions."],environment:["If env changes donât apply, restart the terminal or source your shell profile."],verify:["If a version command fails, confirm the binary is on your PATH."]}),l=[{id:"system",title:"System foundations",description:"Install base dependencies, shell tooling, and workspace.",commands:rX[t],tips:o.system},{id:"stack",title:`${e.name} runtime`,description:"Install the core SDKs, runtimes, and scaffolding.",commands:function(e,t,i){if("latest"===i){let i=rG[e.id];if(i?.[t])return i[t]}return rW[e.id][t]}(e,t,s),tips:o.stack},{id:"tools",title:"Developer tools",description:"Install selected editors, CLIs, and supporting apps.",commands:a.length?a:['echo "Select tools to generate install c
14ommands"'],tips:o.tools},{id:"environment",title:"Environment configuration",description:"Prepare environment variables, shells, and defaults.",commands:["mkdir -p ~/.config/setupstack",'echo "export EDITOR=code" >> ~/.config/setupstack/env',"source ~/.config/setupstack/env"],tips:o.environment}];if(r0.has(e.id)){let i="expo"===e.id||"react-native"===e.id?rq[t]:[];l.push({id:"android",title:"Android environment",description:"Configure Android SDK paths and Java (JDK 17) for device/emulator builds.",commands:[...i,...rK[t]],tips:["Add the export lines to ~/.zshrc (macOS/zsh), ~/.bash_profile (macOS/bash), or ~/.bashrc (Linux).","Run `source ~/.zshrc` (or your shell profile) to apply changes without reopening the terminal.","ANDROID_HOME must point to your Android SDK location â install it via Android Studio if missing.","Run `adb devices` to confirm platform-tools are on your PATH after reloading."]})}return l.push({id:"verify",title:"Verify setup",description:"Confirm versions and validate the install.",commands:rY[e.id],tips:o.verify}),l}({stack:q,osId:X.id,tools:ee,runtimeChannel:v}):[],[X,v,ee,q]),ei=(0,a.useMemo)(()=>q?rZ[q.id]:null,[q]),es=(0,a.useMemo)(()=>{let e;return Object.keys(e={macos:[],windows:[],linux:[]}).forEach(t=>{let i=ee.flatMap(e=>e.install[t]);e[t]=Array.from(new Set(i))}),e},[ee]),en=(0,a.useMemo)(()=>q&&X?function({osId:e,stackId:t,tools:i}){let s=[];return s.push({id:"disk-space",title:"Disk space",description:"Confirm you have enough free space for SDKs and emulators.",commands:["windows"===e?"Get-PSDrive -PSProvider FileSystem":"df -h /"]}),"macos"===e&&("expo"===t||"react-native"===t||"flutter"===t)&&s.push({id:"xcode-cli",title:"Xcode command line tools",description:"Required for iOS tooling and native builds.",commands:["xcode-select -p","xcode-select --install"]}),(i.some(e=>"android-studio"===e.id||"docker"===e.id)||"react-native"===t||"expo"===t)&&s.push({id:"virtualization",title:"Virtualization support",description:"Needed for Android emulators and Docker Desktop.",commands:["windows"===e?'systeminfo | findstr /i "Virtualization"':"macos"===e?"sysctl -a | grep -i hypervisor":"egrep -c '(vmx|svm)' /proc/cpuinfo"]}),s}({osId:X.id,stackId:q.id,tools:ee}):[],[X,ee,q]),er=J?.checklist??[],ea=ay.find(e=>e.id===g)?.label??"Install",eo=es[g].length?es[g]:['echo "Select tools to generate scripts"'],el=(0,a.useMemo)(()=>{let e;if(!q||!X)return"â";let t=function(e){switch(e){case"macos":return 8;case"windows":return 10;case"linux":return 7}}(X.id);return e=Math.max(5,Math.round(q.estimate+ee.reduce((e,t)=>e+t.estimate,0)+t)),`${e} minutes`},[X,ee,q]),ec="latest"===v?"Latest":"LTS",ed="macos"===G?"â K":"CTRL K",eu=ei?.slice(0,2)??[];(0,a.useEffect)(()=>{if("idle"===k)return;let e=window.setTimeout(()=>j("idle"),1500);return()=>window.clearTimeout(e)},[k]),(0,a.useEffect)(()=>{if("idle"===S)return;let e=window.setTimeout(()=>P("idle"),1500);return()=>window.clearTimeout(e)},[S]),(0,a.useEffect)(()=>{if("idle"===T)return;let e=window.setTimeout(()=>N("idle"),1500);return()=>window.clearTimeout(e)},[T]),(0,a.useEffect)(()=>{if("idle"===I)return;let e=window.setTimeout(()=>$("idle"),2e3);return()=>window.clearTimeout(e)},[I]);let eh=e=>{globalThis.requestAnimationFrame(()=>{document.getElementById(ak[e])?.scrollIntoView({behavior:"smooth",block:"start"})})},ep=i=>{i===e?eh(i):(W.current=i,s(i>e?1:-1),t(i))},em=e=>{o(e),M(null),F(null),$("idle");let t=G??null;c(t),x(t??"macos"),w(!!t),u([]),p([]),f(""),ep(2)},ef=e=>{c(e),M(null),F(null),$("idle"),x(e),w(!1),u([]),p([]),ep(3)},eg=e=>{u(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),M(null),F(null),$("idle")},ex=async()=>{if(!q||!X)return;let e=function({stackName:e,osName:t,tools:i,sections:s,estimatedTime:n,installLabel:r,installCommands:a,troubleshooting:o,runtimeLabel:l,preflightChecks:c,caseNotes:d,caseChecklist:u,repoProfile:h}){let p=i.length?i.map(e=>`- ${e.name}`).join("\n"):"- No tools selected",m=a&&a.length?`## Install script (${r??"Install"}) 15 16\`\`\`bash 17${a.join("\n")} 18\`\`\``:"",f=s.map(e=>{let t=e.commands.join("\n"),i=e.tips?.length?` 19 20Tips: 21${e.tips.map(e=>`- ${e}`).join("\n")}`:"";return`## ${e.title} 22${e.description} 23 24\`\`\`bash 25${t} 26\`\`\`${i}`}).join("\n\n"),g=o&&o.length?`## Troubleshooting 27 28${o.map(e=>{let t=e.fix.join("\n");return`### ${e.issue} 29Cause: ${e.cause} 30 31\`\`\`bash 32${t} 33\`\`\``}).join("\n\n")}`:"",x=c&&c.length?`## Preflight checklist 34 35${c.map(e=>{let t=e.commands.join("\n");return`### ${e.title} 36${e.description} 37 38\`\`\`bash 39${t} 40\`\`\``}).join("\n\n")}`:"",v=function(e,t){if(!t)return"";let i=t.summary.trim()||"Notes and references.",s=t.links??[],n=s.length?` 41${s.map(e=>`- ${e.label}: ${e.url}`).join("\n")}`:"";return`## ${e} 42${i}${n}`}("Case notes",d),y=u&&u.length?`## Case checklist 43${u.map(e=>{let t=e.commands.join("\n");return`### ${e.title} 44${e.description} 45 46\`\`\`bash 47${t} 48\`\`\``}).join("\n\n")}`:"";return["# SetupStack Guide",`**Stack:** ${e} 49**OS:** ${t}${l?` 50**Runtime channel:** ${l}`:""} 51**Estimated setup time:** ${n}`,`## Selected tools 52${p}`,function(e){if(!e)return"";let t=e.sources.length?e.sources.join(", "):"repo files",i=e.services.length?` 53 54Services: ${e.services.join(", ")}`:"",s=e.envKeys.length?` 55 56Env vars: 57${e.envKeys.map(e=>`- ${e}`).join("\n")}`:"",n=e.notes.length?` 58 59Notes: 60${e.notes.map(e=>`- ${e}`).join("\n")}`:"";return`## Repo profile 61Auto-detected from ${t}.${i}${s}${n}`}
61(h),v,y,m,x,f,g].filter(Boolean).join("\n\n").concat("\n")}({stackName:q.name,osName:X.name,tools:ee,sections:et,estimatedTime:el,installLabel:ea,installCommands:eo,troubleshooting:ei,runtimeLabel:ec,preflightChecks:en,caseNotes:J?.notes,caseChecklist:er,repoProfile:B??void 0});try{await r1(e),j("copied")}catch(e){console.error("Failed to copy guide",e),j("error")}},ev=e=>{M(null),F(null),$("idle"),o(e.stackId),c(e.osId),x(e.osId),u(e.tools),y(e.runtimeChannel??"lts"),p([]),f(""),w(!1),ep(4)},ey=e=>{U(t=>t.filter(t=>t.id!==e))},eb=d.length>0?4:l?3:n?2:1;return(0,r.jsxs)("div",{className:"min-h-screen bg-white",children:[(0,r.jsx)(r7,{}),(0,r.jsxs)("main",{className:"mx-auto flex w-full max-w-6xl flex-1 flex-col px-6 pb-24 lg:px-8",children:[(0,r.jsxs)("section",{className:"relative pb-20 pt-16",children:[(0,r.jsx)("div",{className:"absolute inset-0 -z-10 bg-[radial-gradient(circle_at_top,#f4f4f5,transparent_60%)]"}),(0,r.jsxs)("div",{className:"grid gap-12 lg:grid-cols-[1.1fr_0.9fr] lg:items-center",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Setup Stack"}),(0,r.jsx)("h1",{className:"mt-4 text-4xl font-semibold tracking-tight text-zinc-950 sm:text-5xl",children:"Set Up Your Developer Machine Faster"}),(0,r.jsx)("p",{className:"mt-5 text-lg leading-7 text-zinc-600",children:"Generate clean setup guides for your development stack, operating system, and tools."}),(0,r.jsxs)("div",{className:"mt-10 flex flex-wrap gap-6 text-sm text-zinc-500",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Trusted by"}),(0,r.jsx)("p",{className:"mt-1 font-medium text-zinc-700",children:"Platform teams, studios, and agencies"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Coverage"}),(0,r.jsx)("p",{className:"mt-1 font-medium text-zinc-700",children:"40+ tools and modern stacks"})]})]}),(0,r.jsx)(r4,{className:"mt-8",onClick:()=>ep(1),children:"Get Started"})]}),(0,r.jsx)(rM.div,{className:"rounded-3xl border border-zinc-200 bg-white p-6 shadow-[0_30px_60px_rgba(15,23,42,0.08)]",animate:{y:[0,-8,0]},transition:{duration:6,repeat:1/0,ease:"easeInOut"},children:(0,r.jsxs)("div",{className:"grid gap-4",children:[(0,r.jsxs)(r5,{className:"p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Dashboard"}),(0,r.jsx)("p",{className:"mt-1 text-sm font-semibold text-zinc-900",children:"Setup overview"})]}),(0,r.jsx)("span",{className:"rounded-full bg-zinc-100 px-3 py-1 text-xs font-medium text-zinc-600",children:el})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-600",children:[(0,r.jsx)("span",{children:"Stack"}),(0,r.jsx)("span",{className:"font-medium text-zinc-900",children:q?.name??"â"})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-600",children:[(0,r.jsx)("span",{children:"Operating system"}),(0,r.jsx)("span",{className:"font-medium text-zinc-900",children:X?.name??"â"})]})]})]}),(0,r.jsx)(r6,{label:"Install preview",commands:["brew install node@20","npm create expo@latest","code ."]})]})})]})]}),(0,r.jsxs)("div",{id:"stacks",className:"mb-8 flex scroll-mt-28 items-center gap-1",children:[av.map((t,i)=>{let s=t.id<=eb,n=e===t.id;return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsxs)("button",{type:"button",disabled:!s,onClick:()=>s?ep(t.id):void 0,className:`flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-semibold transition-all ${n?"bg-zinc-900 text-white shadow-sm":s?"border border-zinc-200 text-zinc-600 hover:border-zinc-400 hover:text-zinc-900":"border border-zinc-100 text-zinc-300 cursor-not-allowed"}`,children:[(0,r.jsx)("span",{className:`flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-bold ${n?"bg-white/20 text-white":s?"bg-zinc-100 text-zinc-600":"bg-zinc-50 text-zinc-300"}`,children:t.id}),(0,r.jsx)("span",{className:"hidden sm:inline",children:t.label})]}),i<av.length-1&&(0,r.jsx)("div",{className:`h-px w-6 transition-colors ${s&&t.id<eb?"bg-zinc-300":"bg-zinc-100"}`})]},t.id)}),e>1&&(0,r.jsx)("button",{type:"button",onClick:()=>{s(-1),t(1),o(null),c(null),u([]),p([]),f(""),y("lts"),w(!1),z(""),M(null),F(null),$("idle"),D(""),R(""),O("")},className:"ml-auto text-xs text-zinc-400 hover:text-zinc-700 transition-colors",children:"Start over"})]}),(0,r.jsx)("div",{className:"overflow-hidden",children:(0,r.jsxs)(rB,{mode:"wait",custom:i,onExitComplete:()=>{let e=W.current;e&&(W.current=null,eh(e))},children:[1===e&&(0,r.jsxs)(rM.section,{id:ak[1],custom:i,variants:aw,initial:"enter",animate:"center",exit:"exit",transition:{duration:.28,ease:[.4,0,.2,1]},className:"scroll-mt-28 py-12",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Step 1 of 4"}),(0,r.jsx)("h2",{className:"text-2xl font-semibold text-zinc-900",children:"Select your stack"}),(0,r.jsx)("p",{className:"text-sm text-zinc-600",children:"Choose the developer stack you want to configure. Selecting a stack moves to the next step."})]}),H.length?(0,r.jsxs)(r5,{className:"mt-6 p-5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Saved presets"}),(0,r.jsxs)("span",{className:"text-xs text-zinc-500",children:[H.length," saved"]})]}),(0,r.jsx)("div",{className:"mt-4 space-y-3",children:H.map(e=>{let t=rF.find(t=>
61t.id===e.stackId),i=rH.find(t=>t.id===e.osId);return(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-zinc-200 px-4 py-3 text-sm",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-semibold text-zinc-900",children:e.name}),(0,r.jsxs)("p",{className:"text-xs text-zinc-500",children:[t?.name??e.stackId," · ",i?.name??e.osId," ·"," ",e.tools.length," tools · ",e.runtimeChannel.toUpperCase()]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(r4,{size:"sm",variant:"outline",onClick:()=>ev(e),children:"Load"}),(0,r.jsx)(r4,{size:"sm",variant:"ghost",onClick:()=>ey(e.id),children:"Delete"})]})]},e.id)})})]}):null,(0,r.jsx)("div",{className:"mt-8 grid gap-4 md:grid-cols-2",children:rF.map(e=>(0,r.jsx)(af,{stack:e,selected:e.id===n,onSelect:em},e.id))})]},"step1"),2===e&&(0,r.jsxs)(rM.section,{id:ak[2],custom:i,variants:aw,initial:"enter",animate:"center",exit:"exit",transition:{duration:.28,ease:[.4,0,.2,1]},className:"scroll-mt-28 py-12",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Step 2 of 4"}),(0,r.jsx)("h2",{className:"text-2xl font-semibold text-zinc-900",children:"Select your OS"}),(0,r.jsx)("p",{className:"text-sm text-zinc-600",children:"Setup Stack adapts install scripts for your operating system."}),G&&K?(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-zinc-500",children:[(0,r.jsxs)("span",{className:"rounded-full border border-emerald-200 bg-emerald-50 px-2 py-1 font-semibold text-emerald-700",children:["Detected ",rH.find(e=>e.id===G)?.name??G]}),(0,r.jsxs)("span",{children:["Shell: ",K]})]}):null]}),(0,r.jsx)("div",{className:"mt-8 grid gap-4 md:grid-cols-3",children:rH.map(e=>(0,r.jsx)(au,{os:e,selected:e.id===l,onSelect:ef,tag:b&&e.id===G?"Detected":void 0},e.id))}),(0,r.jsxs)("div",{className:"mt-8 flex items-center justify-between",children:[(0,r.jsx)("button",{type:"button",onClick:()=>ep(1),className:"text-xs text-zinc-400 hover:text-zinc-700 transition-colors",children:"â Back"}),l?(0,r.jsx)(r4,{size:"sm",variant:"outline",onClick:()=>ep(3),children:"Continue"}):null]})]},"step2"),3===e&&(0,r.jsxs)(rM.section,{id:ak[3],custom:i,variants:aw,initial:"enter",animate:"center",exit:"exit",transition:{duration:.28,ease:[.4,0,.2,1]},className:"scroll-mt-28 py-12",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-6",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Step 3 of 4"}),(0,r.jsx)("h2",{className:"text-2xl font-semibold text-zinc-900",children:"Select development tools"}),(0,r.jsx)("p",{className:"text-sm text-zinc-600",children:"Pick the tools for your stack, then view your generated guide."})]}),(0,r.jsx)("div",{className:"w-full max-w-sm",children:(0,r.jsx)(ap,{ref:_,hint:ed,placeholder:"Search tools",value:m,onChange:e=>f(e.target.value)})})]}),Q.length?(0,r.jsx)("div",{className:"mt-8 grid gap-4 md:grid-cols-2",children:Q.map(e=>(0,r.jsx)(ag,{tool:e,selected:d.includes(e.id),onToggle:eg},e.id))}):(0,r.jsxs)(r5,{className:"mt-8 p-6",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"No tools match that search."}),(0,r.jsxs)("p",{className:"mt-2 text-sm text-zinc-600",children:["Try searching for"," ",Y.slice(0,3).map((e,t)=>(0,r.jsxs)("span",{className:"font-semibold text-zinc-800",children:[e.name,t<Math.min(2,Y.length-1)?", ":""]},e.id)),"."]}),(0,r.jsxs)("p",{className:"mt-2 text-xs text-zinc-400",children:["Tip: Press ",ed," to focus search."]})]}),(0,r.jsxs)("div",{className:"mt-8 flex items-center justify-between",children:[(0,r.jsx)("button",{type:"button",onClick:()=>ep(2),className:"text-xs text-zinc-400 hover:text-zinc-700 transition-colors",children:"â Back"}),d.length>0&&(0,r.jsxs)(r4,{onClick:()=>ep(4),children:["View Setup Guide",(0,r.jsxs)("span",{className:"ml-2 roun
61ded-full bg-white/20 px-2 py-0.5 text-xs",children:[d.length," tools"]})]})]})]},"step3"),4===e&&q&&X&&(0,r.jsxs)(rM.section,{id:ak[4],custom:i,variants:aw,initial:"enter",animate:"center",exit:"exit",transition:{duration:.28,ease:[.4,0,.2,1]},className:"scroll-mt-28 py-12",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Step 4 of 4"}),(0,r.jsx)("h2",{className:"text-2xl font-semibold text-zinc-900",children:"Generated setup guide"}),(0,r.jsxs)("p",{className:"text-sm text-zinc-600",children:["Your personalised guide for ",(0,r.jsx)("strong",{children:q.name})," on ",(0,r.jsx)("strong",{children:X.name}),"."]})]}),(0,r.jsxs)("div",{className:"mt-8 grid gap-10 lg:grid-cols-[1fr_320px]",children:[(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(r5,{className:"p-6",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Estimated setup time"}),(0,r.jsx)("p",{className:"mt-2 text-2xl font-semibold text-zinc-900",children:el})]}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)(r4,{variant:"outline",size:"sm",onClick:ex,children:"copied"===k?"Copied":"error"===k?"Copy failed":"Copy guide"}),(0,r.jsx)(r4,{variant:"outline",size:"sm",onClick:()=>{if(!q||!X)return;let e=function({stackName:e,osName:t,tools:i,sections:s,estimatedTime:n,runtimeLabel:r,preflightChecks:a,caseNotes:o,caseChecklist:l,repoProfile:c}){let d=i.length?i.map(e=>`- ${e.name}`).join("\n"):"- No tools selected",u=s.map(e=>{let t=e.commands.join("\n"),i=e.tips?.length?` 62 63**Tips** 64${e.tips.map(e=>`- ${e}`).join("\n")}`:"";return`## ${e.title} 65${e.description} 66 67\`\`\`bash 68${t} 69\`\`\`${i}`}).join("\n\n"),h=a&&a.length?`## Preflight checklist 70${a.map(e=>{let t=e.commands.join("\n");return`### ${e.title} 71${e.description} 72 73\`\`\`bash 74${t} 75\`\`\``}).join("\n\n")}`:"",p=function(e,t){if(!t)return"";let i=t.summary.trim()||"Notes and references.",s=t.links??[],n=s.length?` 76 77${s.map(e=>`- [${e.label}](${e.url})`).join("\n")}`:"";return`## ${e} 78${i}${n}`}("Case notes",o),m=l&&l.length?`## Case checklist 79${l.map(e=>{let t=e.commands.join("\n");return`### ${e.title} 80${e.description} 81 82\`\`\`bash 83${t} 84\`\`\``}).join("\n\n")}`:"",f=[function(e){if(!e)return"";let t=e.sources.length?e.sources.join(", "):"repo files",i=e.services.length?` 85 86**Services:** ${e.services.join(", ")}`:"",s=e.envKeys.length?` 87 88**Env vars:** 89${e.envKeys.map(e=>`- ${e}`).join("\n")}`:"",n=e.notes.length?` 90 91**Notes:** 92${e.notes.map(e=>`- ${e}`).join("\n")}`:"";return`## Repo profile 93Auto-detected from ${t}.${i}${s}${n}`}(c),p,m,h,u].filter(Boolean).join("\n\n"),g=r?` 94**Runtime channel:** ${r}`:"";return`# SetupStack Guide 95 96**Stack:** ${e} 97**OS:** ${t}${g} 98**Estimated setup time:** ${n} 99 100## Selected tools 101${d} 102 103${f} 104`}({stackName:q.name,osName:X.name,tools:ee,sections:et,estimatedTime:el,runtimeLabel:ec,preflightChecks:en,caseNotes:J?.notes,caseChecklist:er,repoProfile:B??void 0});try{let t=new Blob([e],{type:"text/markdown"}),i=window.URL.createObjectURL(t),s=document.createElement("a");s.href=i,s.download="setupstack-guide.md",s.click(),window.URL.revokeObjectURL(i),P("done")}catch(e){console.error("Failed to export markdown",e),P("error")}},children:"done"===S?"Exported":"error"===S?"Export failed":"Export Markdown"}),(0,r.jsx)(r4,{variant:"outline",size:"sm",onClick:()=>{window.print()},children:"Export PDF"})]})]})}),(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Runtime channel"}),(0,r.jsx)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:ec})]}),(0,r.jsx)("div",{className:"flex gap-2 rounded-full border border-zinc-200 bg-white p-1",children:ab.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>y(e.id),className:`rounded-full px-3 py-1 text-xs font-semibold transition ${v===e.id?"bg-zinc-900 text-white":"text-zinc-500 hover:text-zinc-900"}`,children:e.label},e.id))})]}),(0,r.jsx)("p",{className:"mt-3 text-xs text-zinc-500",children:ab.find(e=>e.id===v)?.hint})]}),B?(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Repo profile"}),(0,r.jsxs)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:[Z?.name??B.stackId," · ",B.tools.length," tools"]})]}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:B.sources.join(", ")})]}),B.notes.length?(0,r.jsx)("div",{className:"mt-3 space-y-2 text-sm text-zinc-600",children:B.notes.map(e=>(0,r.jsxs)("p",{children:["⢠",e]},e))}):null,B.services.length?(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Services"}),(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-2 text-xs text-zinc-600",children:B.services.map(e=>(0,r.jsx)("span",{className:"rounded-full border border-zinc-200 bg-zinc-50 px-3 py-1",children:e},e))})]}):null,B.envKeys.length?(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Env vars"}),(0,r.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-xs text-zinc-600",children:[B.envKeys.slice(0,10).map(e=>(0,r.jsx)("span",{className:"rounded-full border border-zinc-200 bg-zinc-50 px-3 py-1",children:e},e)),B.envKeys.length>10?(0,r.jsxs)("span",{className:"text-xs text-zinc-400",children:["+",B.envKeys.length-10," more"]}):null]})]}):null]}):null,J?.notes?(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Case notes"}),(0,r.jsx)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:J.name})]}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:J.category})]}),(0,r.jsx)("p",{className:"mt-3 text-sm text-zinc-600",children:J.notes.summary}),J.notes.links?.length?(0,r.jsx)("div",{className:"mt-4 space-y-2 text-sm text-zinc-600",children:J.notes.links.map(e=>(0,r.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between rounded-lg border border-zinc-200 px-3 py-2 transition hover:border-zinc-300 hover:text-zinc-900",children:[(0,r.jsx)("span",{className:"font-semibold text-zinc-700",children:e.label}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"â"})]},`${e.label}-${e.url}`))}):null]}):null,er.length?(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsx)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Case checklist"}),(0,r.jsx)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:"Validate the workflow"})]})}),(0,r.jsx)("div",{className:"mt-4 space-y-4",children:er.map(e=>(0,r.jsxs)("div",{className:"rounded-2xl border border-zinc-200 bg-white p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.title}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"Case"})]}),(0,r.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:e.description}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(r6,{label:"Checklist",commands:e.commands})})]},e.id))})]}):null,en.length?(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsx)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Preflight checklist"}),(0,r.jsx)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:"Catch blockers before installs"})]})}),(0,r.jsx)("div",{className:"mt-4 space-y-4",children:en.map(e=>(0,r.jsxs)("div",{className:"rounded-2xl border border-zinc-200 bg-white p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.title}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"Preflight"})]}),(0,r.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:e.description}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(r6,{label:"Check",commands:e.commands})})]},e.id))})]}):null,(0,r.jsxs)(r5,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Install script generator"}),(0,r.jsx)("p",{className:"mt-2 text-lg font-semibold text-zinc-900",children:"Brew, Winget, and Apt scripts"})]}),(0,r.jsx)("div",{className:"flex gap-2 rounded-full border border-zinc-200 bg-white p-1",children:ay.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>x(e.id),className:`rounded-full px-3 py-1 text-xs font-semibold transition ${g===e.id?"bg-zinc-900 text-white":"text-zinc-500 hover:text-zinc-900"}`,children:e.label},e.id))})]}),(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(r6,{label:"Install script",commands:eo})})]}),(0,r.jsx)("div",{className:"space-y-6",children:et.map((e,t)=>(0,r.jsx)(am,{section:e,id:`section-${e.id}`,index:t+1,total:et.length,inlineIssues:"stack"===e.id?eu:void 0},e.id))}),ei&&(0,r.jsxs)("div",{id:"troubleshooting",className:"border-t border-zinc-100 pt-10",children:[(0,r.jsxs)("div",{className:"mb-6 flex flex-col gap-2",children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.3em] text-zinc-400",children:"Troubleshooting"}),(0,r.jsx)("h3",{className:"text-xl font-semibold text-zinc-900",children:"Common issues"}),(0,r.jsxs)("p",{className:"text-sm text-zinc-500",children:["Known issues for ",q.name," with step-by-step fixes."]})]}),(0,r.jsx)(ax,{items:ei})]})]}),(0,r.jsxs)("aside",{className:"space-y-6 lg:sticky lg:top-24 lg:self-start",children:[(0,r.jsxs)(r5,{className:"p-5",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Setup navigation"}),(0,r.jsx)("div",{className:"mt-4 space-y-2 text-sm text-zinc-600",children:et.map(e=>(0,r.jsxs)("a",{href:`#section-${e.id}`,className:"flex items-center justify-between rounded-lg border border-zinc-200 px-3 py-2 transition hover:border-zinc-300 hover:text-zinc-900",children:[(0,r.jsx)("span",{children:e.title}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"â"})]},e.id))})]}),(0,r.jsx)(ah,{steps:et.map(e=>({id:e.id,title:e.title}
104)),completed:h,onToggle:e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}}),(0,r.jsxs)(r5,{className:"p-5",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Presets"}),(0,r.jsx)("p",{className:"mt-2 text-xs text-zinc-500",children:"Save this setup to reuse or share with your team."}),(0,r.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,r.jsx)("input",{type:"text",placeholder:`${q.name} on ${X.name}`,value:A,onChange:e=>z(e.target.value),className:"w-full rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-700 outline-none focus:border-zinc-400"}),(0,r.jsx)(r4,{size:"sm",variant:"outline",onClick:()=>{if(!q||!X)return;let e=`${q.name} on ${X.name}`,t=A.trim()||e,i={id:"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}`,name:t,stackId:q.id,osId:X.id,tools:d,runtimeChannel:v,createdAt:Date.now()};U(e=>[i,...e]),z(""),N("saved")},className:"w-full",children:"saved"===T?"Saved":"error"===T?"Name required":"Save preset"})]}),H.length?(0,r.jsx)("div",{className:"mt-4 space-y-2 text-xs text-zinc-600",children:H.slice(0,3).map(e=>{let t=rF.find(t=>t.id===e.stackId),i=rH.find(t=>t.id===e.osId);return(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-lg border border-zinc-200 px-3 py-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:e.name}),(0,r.jsxs)("p",{className:"text-[11px] text-zinc-500",children:[t?.name??e.stackId," · ",i?.name??e.osId]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:()=>ev(e),className:"text-xs font-semibold text-zinc-600 hover:text-zinc-900",children:"Load"}),(0,r.jsx)("button",{type:"button",onClick:()=>ey(e.id),className:"text-xs text-zinc-400 hover:text-zinc-900",children:"Delete"})]})]},e.id)})}):(0,r.jsx)("p",{className:"mt-4 text-xs text-zinc-400",children:"No presets saved yet."})]}),(0,r.jsxs)(r5,{className:"p-5",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Selected stack"}),(0,r.jsxs)("p",{className:"mt-2 text-sm text-zinc-600",children:[q.name," on ",X.name]}),(0,r.jsx)("div",{className:"mt-4 text-xs uppercase tracking-[0.2em] text-zinc-400",children:"Tools selected"}),(0,r.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:ee.length?ee.map(e=>(0,r.jsx)("span",{className:"rounded-full border border-zinc-200 bg-zinc-50 px-3 py-1 text-xs text-zinc-600",children:e.name},e.id)):(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"No tools selected."})})]}),(0,r.jsx)("button",{type:"button",onClick:()=>ep(3),className:"w-full rounded-xl border border-zinc-200 px-4 py-2.5 text-xs font-medium text-zinc-500 hover:border-zinc-300 hover:text-zinc-900 transition-colors",children:"â Edit tools"})]})]})]},"step4")]})}),(0,r.jsxs)("section",{className:"mt-16 space-y-4",children:[r_.length?(0,r.jsx)(r5,{className:"p-5",children:(0,r.jsxs)("details",{className:"group",name:"app-case-library",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"App case library"}),(0,r.jsxs)("span",{className:"text-xs text-zinc-500 transition-colors group-open:text-zinc-700",children:[r_.length," templates · Expand"]})]}),(0,r.jsx)("div",{className:"mt-4 space-y-3",children:r_.map(e=>{let t=rF.find(t=>t.id===e.stackId),i=rH.find(t=>t.id===e.osId),s=!!(e.notes?.summary||e.notes?.links?.length);return(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-zinc-200 px-4 py-3 text-sm",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-semibold text-zinc-900",children:e.name}),(0,r.jsx)("p",{className:"text-xs text-zinc-500",children:e.description}),(0,r.jsxs)("p",{className:"text-xs text-zinc-500",children:[e.category," · ",t?.name??e.stackId," ·"," ",i?.name??e.osId," · ",e.tools.length," tools ·"," ",e.runtimeChannel.toUpperCase(),s?" · Notes included":""]})]}),(0,r.jsx)("div",{className:"flex gap-2",children:(0,r.jsx)(r4,{size:"sm",variant:"outline",onClick:()=>{let t,i,s;return t=rU[e.stackId],i=e.tools.filter(e=>t.includes(e)),s=G??e.osId,void(o(e.stackId),c(s),x(s),u(i),y(e.runtimeChannel??"lts"),p([]),f(""),w(!1),M(e.id),F(null),$("idle"),ep(4))},children:"Use case"})})]},e.id)})})]})}):null,(0,r.jsxs)(r5,{className:"p-5",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-zinc-900",children:"Repo-aware profile"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:"Paste repo files to auto-pick a stack, tools, and setup notes."})]}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"Local-only anal
104ysis"})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-3",children:[(0,r.jsx)("textarea",{rows:4,placeholder:"package.json (optional)",value:E,onChange:e=>D(e.target.value),className:"w-full rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-700 outline-none focus:border-zinc-400"}),(0,r.jsx)("textarea",{rows:3,placeholder:"docker-compose.yml (optional)",value:V,onChange:e=>R(e.target.value),className:"w-full rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-700 outline-none focus:border-zinc-400"}),(0,r.jsx)("textarea",{rows:3,placeholder:".env.example (optional)",value:L,onChange:e=>O(e.target.value),className:"w-full rounded-xl border border-zinc-200 px-3 py-2 text-xs text-zinc-700 outline-none focus:border-zinc-400"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,r.jsx)(r4,{size:"sm",variant:"outline",onClick:()=>{let e,t=E.trim(),i=V.trim(),s=L.trim();if(!t&&!i&&!s)return void $("error");let r=[],a=new Set,d=new Set,h=new Set,m=n;if(t){r.push("package.json");try{let e,i,s,n=(e=JSON.parse(t),i=Object.keys(e.dependencies??{}),s=Object.keys(e.devDependencies??{}),{deps:[...i,...s],scripts:Object.keys(e.scripts??{})}),r=new Set(n.deps);r.has("expo")?m="expo":r.has("react-native")?m="react-native":r.size>0&&(m="node"),r.has("next")&&d.add("Next.js detected in package.json."),r.has("vite")&&d.add("Vite detected in package.json."),r.has("prisma")&&d.add("Prisma detected; run migrations before starting the API."),(r.has("turbo")||r.has("nx"))&&d.add("Monorepo tooling detected (Turbo/Nx)."),(r.has("eslint")||r.has("prettier")||r.has("eslint-config-prettier"))&&a.add("eslint-prettier"),r.has("tailwindcss")&&a.add("tailwind"),r.has("vitest")&&a.add("vitest"),(r.has("playwright")||r.has("@playwright/test"))&&a.add("playwright"),(r.has("storybook")||n.deps.some(e=>e.startsWith("@storybook/")))&&a.add("storybook"),(r.has("pg")||r.has("pg-native"))&&a.add("postgres"),(r.has("redis")||r.has("ioredis"))&&a.add("redis")}catch(e){console.error("Failed to parse package.json",e),$("error");return}}if(i){r.push("docker-compose.yml"),a.add("docker"),d.add("docker-compose.yml detected; start services with `docker compose up -d`.");let e=i.toLowerCase();e.includes("postgres")&&(a.add("postgres"),h.add("Postgres")),e.includes("redis")&&(a.add("redis"),h.add("Redis")),e.includes("mongo")&&h.add("MongoDB"),e.includes("mysql")&&h.add("MySQL"),e.includes("kafka")&&h.add("Kafka")}let g=s?(e=new Set,s.split(/\r?\n/).forEach(t=>{let i=t.trim();if(!i||i.startsWith("#"))return;let s=(i.startsWith("export ")?i.slice(7):i).match(/^([A-Za-z_][A-Za-z0-9_]*)\s*=/);s?.[1]&&e.add(s[1])}),Array.from(e)):[];if(s&&(r.push(".env.example"),g.length&&d.add(`Found ${g.length} env vars in .env.example.`)),!m)return void $("error");let v=rU[m],b=Array.from(new Set([...v,...Array.from(a)])).filter(e=>v.includes(e)),k=G??l??"macos";o(m),c(k),x(k),u(b),y("lts"),p([]),f(""),w(!!G),M(null),F({stackId:m,tools:b,notes:Array.from(d),services:Array.from(h),envKeys:g,sources:r}),$("applied"),ep(4)},children:"Analyze repo"}),(0,r.jsx)("span",{className:"text-xs text-zinc-400",children:"Nothing is uploaded. Everything stays in your browser."})]}),"error"===I?(0,r.jsx)("p",{className:"mt-3 text-xs text-rose-500",children:"Add a valid package.json or select a stack before analyzing."}):"applied"===I?(0,r.jsx)("p",{className:"mt-3 text-xs text-emerald-600",children:"Repo profile applied."}):null,B?(0,r.jsxs)("div",{className:"mt-4 rounded-xl border border-zinc-200 bg-zinc-50/50 px-4 py-3 text-xs text-zinc-600",children:[(0,r.jsxs)("p",{className:"font-semibold text-zinc-800",children:["Detected ",Z?.name??B.stackId," · ",B.tools.length," tools"]}),(0,r.jsxs)("p",{className:"mt-1 text-zinc-500",children:["Sources: ",B.sources.join(", "),B.services.length?` \xb7 Services: ${B.services.join(", ")}`:"",B.envKeys.length?` \xb7 Env vars: ${B.envKeys.length}`:""]})]}):null]})]})]}),(0,r.jsx)(r8,{})]})}],52683)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.