@grackle-ai/web 0.86.0 → 0.86.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage-BIcDgOZa.js","assets/dagview-CzJGOIoX.js","assets/grpc-DT6vMFm5.js","assets/markdown-DH3wQq0i.js","assets/KnowledgePage-DMqJ4jlP.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage-D2RhOFV4.js","assets/dagview-CzJGOIoX.js","assets/grpc-DT6vMFm5.js","assets/markdown-DH3wQq0i.js","assets/KnowledgePage-DMqJ4jlP.css"])))=>i.map(i=>d[i]);
2
2
  import{r as YS,a as JS,b as y,j as l,d as Qv,H as e0,P as t0,i as WS,B as XS,c as QS,C as eT,M as tT}from"./dagview-CzJGOIoX.js";import{c as nT,a as sT,G as aT,f as iT,M as oT,A as ob,D as rb,W as rT,O as lT,b as cT,C as Ec,d as uT,e as lb,w as dT,t as fT,p as Jl,g as pT,R as nr,S as n0}from"./grpc-DT6vMFm5.js";import{v as mT,r as hT,t as Wl,i as gT,f as vT,M as up,a as dp}from"./markdown-DH3wQq0i.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))o(c);new MutationObserver(c=>{for(const u of c)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function i(c){const u={};return c.integrity&&(u.integrity=c.integrity),c.referrerPolicy&&(u.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?u.credentials="include":c.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function o(c){if(c.ep)return;c.ep=!0;const u=i(c);fetch(c.href,u)}})();var Xd={exports:{}},sr={},Qd={exports:{}},ef={};/**
3
3
  * @license React
4
4
  * scheduler.production.js
@@ -59,7 +59,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
59
59
  top: ${h}px !important;
60
60
  left: ${g}px !important;
61
61
  }
62
- `),()=>{document.head.removeChild(v)}},[s]),l.jsx(Mj,{isPresent:s,childRef:o,sizeRef:c,children:y.cloneElement(n,{ref:o})})}const Ij=({children:n,initial:s,isPresent:i,onExitComplete:o,custom:c,presenceAffectsLayout:u,mode:d})=>{const m=Sp(Bj),h=y.useId(),g=y.useCallback(b=>{m.set(b,!0);for(const _ of m.values())if(!_)return;o&&o()},[m,o]),v=y.useMemo(()=>({id:h,initial:s,isPresent:i,custom:c,onExitComplete:g,register:b=>(m.set(b,!1),()=>m.delete(b))}),u?[Math.random(),g]:[i,g]);return y.useMemo(()=>{m.forEach((b,_)=>m.set(_,!1))},[i]),y.useEffect(()=>{!i&&!m.size&&o&&o()},[i]),d==="popLayout"&&(n=l.jsx(Oj,{isPresent:i,children:n})),l.jsx(Oc.Provider,{value:v,children:n})};function Bj(){return new Map}function Ob(n=!0){const s=y.useContext(Oc);if(s===null)return[!0,null];const{isPresent:i,onExitComplete:o,register:c}=s,u=y.useId();y.useEffect(()=>{n&&c(u)},[n]);const d=y.useCallback(()=>n&&o&&o(u),[u,o,n]);return!i&&o?[!1,d]:[!0]}const ec=n=>n.key||"";function S0(n){const s=[];return y.Children.forEach(n,i=>{y.isValidElement(i)&&s.push(i)}),s}const kp=typeof window<"u",Ib=kp?y.useLayoutEffect:y.useEffect,rs=({children:n,custom:s,initial:i=!0,onExitComplete:o,presenceAffectsLayout:c=!0,mode:u="sync",propagate:d=!1})=>{const[m,h]=Ob(d),g=y.useMemo(()=>S0(n),[n]),v=d&&!m?[]:g.map(ec),b=y.useRef(!0),_=y.useRef(g),S=Sp(()=>new Map),[T,N]=y.useState(g),[j,w]=y.useState(g);Ib(()=>{b.current=!1,_.current=g;for(let M=0;M<j.length;M++){const D=ec(j[M]);v.includes(D)?S.delete(D):S.get(D)!==!0&&S.set(D,!1)}},[j,v.length,v.join("-")]);const C=[];if(g!==T){let M=[...g];for(let D=0;D<j.length;D++){const E=j[D],H=ec(E);v.includes(H)||(M.splice(D,0,E),C.push(E))}u==="wait"&&C.length&&(M=C),w(S0(M)),N(g);return}const{forceRender:A}=y.useContext(xp);return l.jsx(l.Fragment,{children:j.map(M=>{const D=ec(M),E=d&&!m?!1:g===j||v.includes(D),H=()=>{if(S.has(D))S.set(D,!0);else return;let z=!0;S.forEach(Z=>{Z||(z=!1)}),z&&(A==null||A(),w(_.current),d&&(h==null||h()),o&&o())};return l.jsx(Ij,{isPresent:E,initial:!b.current||i?void 0:!1,custom:E?void 0:s,presenceAffectsLayout:c,mode:u,onExitComplete:E?void 0:H,children:M},D)})})},_n=n=>n;let Bb=_n;const Lj={useManualTiming:!1};function Uj(n){let s=new Set,i=new Set,o=!1,c=!1;const u=new WeakSet;let d={delta:0,timestamp:0,isProcessing:!1};function m(g){u.has(g)&&(h.schedule(g),n()),g(d)}const h={schedule:(g,v=!1,b=!1)=>{const S=b&&o?s:i;return v&&u.add(g),S.has(g)||S.add(g),g},cancel:g=>{i.delete(g),u.delete(g)},process:g=>{if(d=g,o){c=!0;return}o=!0,[s,i]=[i,s],s.forEach(m),s.clear(),o=!1,c&&(c=!1,h.process(g))}};return h}const tc=["read","resolveKeyframes","update","preRender","render","postRender"],zj=40;function Lb(n,s){let i=!1,o=!0;const c={delta:0,timestamp:0,isProcessing:!1},u=()=>i=!0,d=tc.reduce((w,C)=>(w[C]=Uj(u),w),{}),{read:m,resolveKeyframes:h,update:g,preRender:v,render:b,postRender:_}=d,S=()=>{const w=performance.now();i=!1,c.delta=o?1e3/60:Math.max(Math.min(w-c.timestamp,zj),1),c.timestamp=w,c.isProcessing=!0,m.process(c),h.process(c),g.process(c),v.process(c),b.process(c),_.process(c),c.isProcessing=!1,i&&s&&(o=!1,n(S))},T=()=>{i=!0,o=!0,c.isProcessing||n(S)};return{schedule:tc.reduce((w,C)=>{const A=d[C];return w[C]=(M,D=!1,E=!1)=>(i||T(),A.schedule(M,D,E)),w},{}),cancel:w=>{for(let C=0;C<tc.length;C++)d[tc[C]].cancel(w)},state:c,steps:d}}const{schedule:ft,cancel:ha,state:Kt,steps:mf}=Lb(typeof requestAnimationFrame<"u"?requestAnimationFrame:_n,!0),Ub=y.createContext({strict:!1}),T0={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"]},to={};for(const n in T0)to[n]={isEnabled:s=>T0[n].some(i=>!!s[i])};function Pj(n){for(const s in n)to[s]={...to[s],...n[s]}}const Vj=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function bc(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||Vj.has(n)}let zb=n=>!bc(n);function Hj(n){n&&(zb=s=>s.startsWith("on")?!bc(s):n(s))}try{Hj(require("@emotion/is-prop-valid").default)}catch{}function qj(n,s,i){const o={};for(const c in n)c==="values"&&typeof n.values=="object"||(zb(c)||i===!0&&bc(c)||!s&&!bc(c)||n.draggable&&c.startsWith("onDrag"))&&(o[c]=n[c]);return o}function Gj(n){if(typeof Proxy>"u")return n;const s=new Map,i=(...o)=>n(...o);return new Proxy(i,{get:(o,c)=>c==="create"?n:(s.has(c)||s.set(c,n(c)),s.get(c))})}const Ic=y.createContext({});function Tr(n){return typeof n=="string"||Array.isArray(n)}function Bc(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}const wp=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Np=["initial",...wp];function Lc(n){return Bc(n.animate)||Np.some(s=>Tr(n[s]))}function Pb(n){return!!(Lc(n)||n.variants)}function $j(n,s){if(Lc(n)){const{initial:i,animate:o}=n;return{initial:i===!1||Tr(i)?i:void 0,animate:Tr(o)?o:void 0}}return n.inherit!==!1?s:{}}function Fj(n){const{initial:s,animate:i}=$j(n,y.useContext(Ic));return y.useMemo(()=>({initial:s,animate:i}),[k0(s),k0(i)])}function k0(n){return Array.isArray(n)?n.join(" "):n}const Zj=Symbol.for("motionComponentSymbol");function Gi(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function Kj(n,s,i){return y.useCallback(o=>{o&&n.onMount&&n.onMount(o),s&&(o?s.mount(o):s.unmount()),i&&(typeof i=="function"?i(o):Gi(i)&&(i.current=o))},[s])}const jp=n=>n.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),Yj="framerAppearId",Vb="data-"+jp(Yj),{schedule:Cp}=Lb(queueMicrotask,!1),Hb=y.createContext({});function Jj(n,s,i,o,c){var u,d;const{visualElement:m}=y.useContext(Ic),h=y.useContext(Ub),g=y.useContext(Oc),v=y.useContext(Tp).reducedMotion,b=y.useRef(null);o=o||h.renderer,!b.current&&o&&(b.current=o(n,{visualState:s,parent:m,props:i,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:v}));const _=b.current,S=y.useContext(Hb);_&&!_.projection&&c&&(_.type==="html"||_.type==="svg")&&Wj(b.current,i,c,S);const T=y.useRef(!1);y.useInsertionEffect(()=>{_&&T.current&&_.update(i,g)});const N=i[Vb],j=y.useRef(!!N&&!(!((u=window.MotionHandoffIsComplete)===null||u===void 0)&&u.call(window,N))&&((d=window.MotionHasOptimisedAnimation)===null||d===void 0?void 0:d.call(window,N)));return Ib(()=>{_&&(T.current=!0,window.MotionIsMounted=!0,_.updateFeatures(),Cp.render(_.render),j.current&&_.animationState&&_.animationState.animateChanges())}),y.useEffect(()=>{_&&(!j.current&&_.animationState&&_.animationState.animateChanges(),j.current&&(queueMicrotask(()=>{var w;(w=window.MotionHandoffMarkAsComplete)===null||w===void 0||w.call(window,N)}),j.current=!1))}),_}function Wj(n,s,i,o){const{layoutId:c,layout:u,drag:d,dragConstraints:m,layoutScroll:h,layoutRoot:g}=s;n.projection=new i(n.latestValues,s["data-framer-portal-id"]?void 0:qb(n.parent)),n.projection.setOptions({layoutId:c,layout:u,alwaysMeasureLayout:!!d||m&&Gi(m),visualElement:n,animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:h,layoutRoot:g})}function qb(n){if(n)return n.options.allowProjection!==!1?n.projection:qb(n.parent)}function Xj({preloadedFeatures:n,createVisualElement:s,useRender:i,useVisualState:o,Component:c}){var u,d;n&&Pj(n);function m(g,v){let b;const _={...y.useContext(Tp),...g,layoutId:Qj(g)},{isStatic:S}=_,T=Fj(g),N=o(g,S);if(!S&&kp){eC();const j=tC(_);b=j.MeasureLayout,T.visualElement=Jj(c,N,_,s,j.ProjectionNode)}return l.jsxs(Ic.Provider,{value:T,children:[b&&T.visualElement?l.jsx(b,{visualElement:T.visualElement,..._}):null,i(c,g,Kj(N,T.visualElement,v),N,S,T.visualElement)]})}m.displayName=`motion.${typeof c=="string"?c:`create(${(d=(u=c.displayName)!==null&&u!==void 0?u:c.name)!==null&&d!==void 0?d:""})`}`;const h=y.forwardRef(m);return h[Zj]=c,h}function Qj({layoutId:n}){const s=y.useContext(xp).id;return s&&n!==void 0?s+"-"+n:n}function eC(n,s){y.useContext(Ub).strict}function tC(n){const{drag:s,layout:i}=to;if(!s&&!i)return{};const o={...s,...i};return{MeasureLayout:s!=null&&s.isEnabled(n)||i!=null&&i.isEnabled(n)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}const nC=["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 Ep(n){return typeof n!="string"||n.includes("-")?!1:!!(nC.indexOf(n)>-1||/[A-Z]/u.test(n))}function w0(n){const s=[{},{}];return n==null||n.values.forEach((i,o)=>{s[0][o]=i.get(),s[1][o]=i.getVelocity()}),s}function Ap(n,s,i,o){if(typeof s=="function"){const[c,u]=w0(o);s=s(i!==void 0?i:n.custom,c,u)}if(typeof s=="string"&&(s=n.variants&&n.variants[s]),typeof s=="function"){const[c,u]=w0(o);s=s(i!==void 0?i:n.custom,c,u)}return s}const qf=n=>Array.isArray(n),sC=n=>!!(n&&typeof n=="object"&&n.mix&&n.toValue),aC=n=>qf(n)?n[n.length-1]||0:n,Qt=n=>!!(n&&n.getVelocity);function fc(n){const s=Qt(n)?n.get():n;return sC(s)?s.toValue():s}function iC({scrapeMotionValuesFromProps:n,createRenderState:s,onUpdate:i},o,c,u){const d={latestValues:oC(o,c,u,n),renderState:s()};return i&&(d.onMount=m=>i({props:o,current:m,...d}),d.onUpdate=m=>i(m)),d}const Gb=n=>(s,i)=>{const o=y.useContext(Ic),c=y.useContext(Oc),u=()=>iC(n,s,o,c);return i?u():Sp(u)};function oC(n,s,i,o){const c={},u=o(n,{});for(const _ in u)c[_]=fc(u[_]);let{initial:d,animate:m}=n;const h=Lc(n),g=Pb(n);s&&g&&!h&&n.inherit!==!1&&(d===void 0&&(d=s.initial),m===void 0&&(m=s.animate));let v=i?i.initial===!1:!1;v=v||d===!1;const b=v?m:d;if(b&&typeof b!="boolean"&&!Bc(b)){const _=Array.isArray(b)?b:[b];for(let S=0;S<_.length;S++){const T=Ap(n,_[S]);if(T){const{transitionEnd:N,transition:j,...w}=T;for(const C in w){let A=w[C];if(Array.isArray(A)){const M=v?A.length-1:0;A=A[M]}A!==null&&(c[C]=A)}for(const C in N)c[C]=N[C]}}}return c}const oo=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ni=new Set(oo),$b=n=>s=>typeof s=="string"&&s.startsWith(n),Fb=$b("--"),rC=$b("var(--"),Dp=n=>rC(n)?lC.test(n.split("/*")[0].trim()):!1,lC=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Zb=(n,s)=>s&&typeof n=="number"?s.transform(n):n,Is=(n,s,i)=>i>s?s:i<n?n:i,ro={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},kr={...ro,transform:n=>Is(0,1,n)},nc={...ro,default:1},Ar=n=>({test:s=>typeof s=="string"&&s.endsWith(n)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${n}`}),pa=Ar("deg"),as=Ar("%"),Te=Ar("px"),cC=Ar("vh"),uC=Ar("vw"),N0={...as,parse:n=>as.parse(n)/100,transform:n=>as.transform(n*100)},dC={borderWidth:Te,borderTopWidth:Te,borderRightWidth:Te,borderBottomWidth:Te,borderLeftWidth:Te,borderRadius:Te,radius:Te,borderTopLeftRadius:Te,borderTopRightRadius:Te,borderBottomRightRadius:Te,borderBottomLeftRadius:Te,width:Te,maxWidth:Te,height:Te,maxHeight:Te,top:Te,right:Te,bottom:Te,left:Te,padding:Te,paddingTop:Te,paddingRight:Te,paddingBottom:Te,paddingLeft:Te,margin:Te,marginTop:Te,marginRight:Te,marginBottom:Te,marginLeft:Te,backgroundPositionX:Te,backgroundPositionY:Te},fC={rotate:pa,rotateX:pa,rotateY:pa,rotateZ:pa,scale:nc,scaleX:nc,scaleY:nc,scaleZ:nc,skew:pa,skewX:pa,skewY:pa,distance:Te,translateX:Te,translateY:Te,translateZ:Te,x:Te,y:Te,z:Te,perspective:Te,transformPerspective:Te,opacity:kr,originX:N0,originY:N0,originZ:Te},j0={...ro,transform:Math.round},Rp={...dC,...fC,zIndex:j0,size:Te,fillOpacity:kr,strokeOpacity:kr,numOctaves:j0},pC={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},mC=oo.length;function hC(n,s,i){let o="",c=!0;for(let u=0;u<mC;u++){const d=oo[u],m=n[d];if(m===void 0)continue;let h=!0;if(typeof m=="number"?h=m===(d.startsWith("scale")?1:0):h=parseFloat(m)===0,!h||i){const g=Zb(m,Rp[d]);if(!h){c=!1;const v=pC[d]||d;o+=`${v}(${g}) `}i&&(s[d]=g)}}return o=o.trim(),i?o=i(s,c?"":o):c&&(o="none"),o}function Mp(n,s,i){const{style:o,vars:c,transformOrigin:u}=n;let d=!1,m=!1;for(const h in s){const g=s[h];if(ni.has(h)){d=!0;continue}else if(Fb(h)){c[h]=g;continue}else{const v=Zb(g,Rp[h]);h.startsWith("origin")?(m=!0,u[h]=v):o[h]=v}}if(s.transform||(d||i?o.transform=hC(s,n.transform,i):o.transform&&(o.transform="none")),m){const{originX:h="50%",originY:g="50%",originZ:v=0}=u;o.transformOrigin=`${h} ${g} ${v}`}}const gC={offset:"stroke-dashoffset",array:"stroke-dasharray"},vC={offset:"strokeDashoffset",array:"strokeDasharray"};function yC(n,s,i=1,o=0,c=!0){n.pathLength=1;const u=c?gC:vC;n[u.offset]=Te.transform(-o);const d=Te.transform(s),m=Te.transform(i);n[u.array]=`${d} ${m}`}function C0(n,s,i){return typeof n=="string"?n:Te.transform(s+i*n)}function bC(n,s,i){const o=C0(s,n.x,n.width),c=C0(i,n.y,n.height);return`${o} ${c}`}function Op(n,{attrX:s,attrY:i,attrScale:o,originX:c,originY:u,pathLength:d,pathSpacing:m=1,pathOffset:h=0,...g},v,b){if(Mp(n,g,b),v){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:_,style:S,dimensions:T}=n;_.transform&&(T&&(S.transform=_.transform),delete _.transform),T&&(c!==void 0||u!==void 0||S.transform)&&(S.transformOrigin=bC(T,c!==void 0?c:.5,u!==void 0?u:.5)),s!==void 0&&(_.x=s),i!==void 0&&(_.y=i),o!==void 0&&(_.scale=o),d!==void 0&&yC(_,d,m,h,!1)}const Ip=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),Kb=()=>({...Ip(),attrs:{}}),Bp=n=>typeof n=="string"&&n.toLowerCase()==="svg";function Yb(n,{style:s,vars:i},o,c){Object.assign(n.style,s,c&&c.getProjectionStyles(o));for(const u in i)n.style.setProperty(u,i[u])}const Jb=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"]);function Wb(n,s,i,o){Yb(n,s,void 0,o);for(const c in s.attrs)n.setAttribute(Jb.has(c)?c:jp(c),s.attrs[c])}const _c={};function _C(n){Object.assign(_c,n)}function Xb(n,{layout:s,layoutId:i}){return ni.has(n)||n.startsWith("origin")||(s||i!==void 0)&&(!!_c[n]||n==="opacity")}function Lp(n,s,i){var o;const{style:c}=n,u={};for(const d in c)(Qt(c[d])||s.style&&Qt(s.style[d])||Xb(d,n)||((o=i==null?void 0:i.getValue(d))===null||o===void 0?void 0:o.liveStyle)!==void 0)&&(u[d]=c[d]);return u}function Qb(n,s,i){const o=Lp(n,s,i);for(const c in n)if(Qt(n[c])||Qt(s[c])){const u=oo.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;o[u]=n[c]}return o}function xC(n,s){try{s.dimensions=typeof n.getBBox=="function"?n.getBBox():n.getBoundingClientRect()}catch{s.dimensions={x:0,y:0,width:0,height:0}}}const E0=["x","y","width","height","cx","cy","r"],SC={useVisualState:Gb({scrapeMotionValuesFromProps:Qb,createRenderState:Kb,onUpdate:({props:n,prevProps:s,current:i,renderState:o,latestValues:c})=>{if(!i)return;let u=!!n.drag;if(!u){for(const m in c)if(ni.has(m)){u=!0;break}}if(!u)return;let d=!s;if(s)for(let m=0;m<E0.length;m++){const h=E0[m];n[h]!==s[h]&&(d=!0)}d&&ft.read(()=>{xC(i,o),ft.render(()=>{Op(o,c,Bp(i.tagName),n.transformTemplate),Wb(i,o)})})}})},TC={useVisualState:Gb({scrapeMotionValuesFromProps:Lp,createRenderState:Ip})};function e_(n,s,i){for(const o in s)!Qt(s[o])&&!Xb(o,i)&&(n[o]=s[o])}function kC({transformTemplate:n},s){return y.useMemo(()=>{const i=Ip();return Mp(i,s,n),Object.assign({},i.vars,i.style)},[s])}function wC(n,s){const i=n.style||{},o={};return e_(o,i,n),Object.assign(o,kC(n,s)),o}function NC(n,s){const i={},o=wC(n,s);return n.drag&&n.dragListener!==!1&&(i.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(i.tabIndex=0),i.style=o,i}function jC(n,s,i,o){const c=y.useMemo(()=>{const u=Kb();return Op(u,s,Bp(o),n.transformTemplate),{...u.attrs,style:{...u.style}}},[s]);if(n.style){const u={};e_(u,n.style,n),c.style={...u,...c.style}}return c}function CC(n=!1){return(i,o,c,{latestValues:u},d)=>{const h=(Ep(i)?jC:NC)(o,u,d,i),g=qj(o,typeof i=="string",n),v=i!==y.Fragment?{...g,...h,ref:c}:{},{children:b}=o,_=y.useMemo(()=>Qt(b)?b.get():b,[b]);return y.createElement(i,{...v,children:_})}}function EC(n,s){return function(o,{forwardMotionProps:c}={forwardMotionProps:!1}){const d={...Ep(o)?SC:TC,preloadedFeatures:n,useRender:CC(c),createVisualElement:s,Component:o};return Xj(d)}}function t_(n,s){if(!Array.isArray(s))return!1;const i=s.length;if(i!==n.length)return!1;for(let o=0;o<i;o++)if(s[o]!==n[o])return!1;return!0}function Uc(n,s,i){const o=n.getProps();return Ap(o,s,i!==void 0?i:o.custom,n)}function Up(n,s){return n?n[s]||n.default||n:void 0}const n_=new Set(["width","height","top","left","right","bottom",...oo]);let pc;function AC(){pc=void 0}const is={now:()=>(pc===void 0&&is.set(Kt.isProcessing||Lj.useManualTiming?Kt.timestamp:performance.now()),pc),set:n=>{pc=n,queueMicrotask(AC)}};function zp(n,s){n.indexOf(s)===-1&&n.push(s)}function Pp(n,s){const i=n.indexOf(s);i>-1&&n.splice(i,1)}class Vp{constructor(){this.subscriptions=[]}add(s){return zp(this.subscriptions,s),()=>Pp(this.subscriptions,s)}notify(s,i,o){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](s,i,o);else for(let u=0;u<c;u++){const d=this.subscriptions[u];d&&d(s,i,o)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function s_(n,s){return s?n*(1e3/s):0}const A0=30,DC=n=>!isNaN(parseFloat(n));class RC{constructor(s,i={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(o,c=!0)=>{const u=is.now();this.updatedAt!==u&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),c&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(s),this.owner=i.owner}setCurrent(s){this.current=s,this.updatedAt=is.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=DC(this.current))}setPrevFrameValue(s=this.current){this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt}onChange(s){return this.on("change",s)}on(s,i){this.events[s]||(this.events[s]=new Vp);const o=this.events[s].add(i);return s==="change"?()=>{o(),ft.read(()=>{this.events.change.getSize()||this.stop()})}:o}clearListeners(){for(const s in this.events)this.events[s].clear()}attach(s,i){this.passiveEffect=s,this.stopPassiveEffect=i}set(s,i=!0){!i||!this.passiveEffect?this.updateAndNotify(s,i):this.passiveEffect(s,this.updateAndNotify)}setWithVelocity(s,i,o){this.set(i),this.prev=void 0,this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt-o}jump(s,i=!0){this.updateAndNotify(s),this.prev=s,this.prevUpdatedAt=this.prevFrameValue=void 0,i&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const s=is.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>A0)return 0;const i=Math.min(this.updatedAt-this.prevUpdatedAt,A0);return s_(parseFloat(this.current)-parseFloat(this.prevFrameValue),i)}start(s){return this.stop(),new Promise(i=>{this.hasAnimated=!0,this.animation=s(i),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.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function wr(n,s){return new RC(n,s)}function MC(n,s,i){n.hasValue(s)?n.getValue(s).set(i):n.addValue(s,wr(i))}function OC(n,s){const i=Uc(n,s);let{transitionEnd:o={},transition:c={},...u}=i||{};u={...u,...o};for(const d in u){const m=aC(u[d]);MC(n,d,m)}}function IC(n){return!!(Qt(n)&&n.add)}function Gf(n,s){const i=n.getValue("willChange");if(IC(i))return i.add(s)}function a_(n){return n.props[Vb]}function Hp(n){let s;return()=>(s===void 0&&(s=n()),s)}const BC=Hp(()=>window.ScrollTimeline!==void 0);class LC{constructor(s){this.stop=()=>this.runAll("stop"),this.animations=s.filter(Boolean)}get finished(){return Promise.all(this.animations.map(s=>"finished"in s?s.finished:s))}getAll(s){return this.animations[0][s]}setAll(s,i){for(let o=0;o<this.animations.length;o++)this.animations[o][s]=i}attachTimeline(s,i){const o=this.animations.map(c=>{if(BC()&&c.attachTimeline)return c.attachTimeline(s);if(typeof i=="function")return i(c)});return()=>{o.forEach((c,u)=>{c&&c(),this.animations[u].stop()})}}get time(){return this.getAll("time")}set time(s){this.setAll("time",s)}get speed(){return this.getAll("speed")}set speed(s){this.setAll("speed",s)}get startTime(){return this.getAll("startTime")}get duration(){let s=0;for(let i=0;i<this.animations.length;i++)s=Math.max(s,this.animations[i].duration);return s}runAll(s){this.animations.forEach(i=>i[s]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class UC extends LC{then(s,i){return Promise.all(this.animations).then(s).catch(i)}}const Ds=n=>n*1e3,Rs=n=>n/1e3;function qp(n){return typeof n=="function"}function D0(n,s){n.timeline=s,n.onfinish=null}const Gp=n=>Array.isArray(n)&&typeof n[0]=="number",zC={linearEasing:void 0};function PC(n,s){const i=Hp(n);return()=>{var o;return(o=zC[s])!==null&&o!==void 0?o:i()}}const xc=PC(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),no=(n,s,i)=>{const o=s-n;return o===0?1:(i-n)/o},i_=(n,s,i=10)=>{let o="";const c=Math.max(Math.round(s/i),2);for(let u=0;u<c;u++)o+=n(no(0,c-1,u))+", ";return`linear(${o.substring(0,o.length-2)})`};function o_(n){return!!(typeof n=="function"&&xc()||!n||typeof n=="string"&&(n in $f||xc())||Gp(n)||Array.isArray(n)&&n.every(o_))}const cr=([n,s,i,o])=>`cubic-bezier(${n}, ${s}, ${i}, ${o})`,$f={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cr([0,.65,.55,1]),circOut:cr([.55,0,1,.45]),backIn:cr([.31,.01,.66,-.59]),backOut:cr([.33,1.53,.69,.99])};function r_(n,s){if(n)return typeof n=="function"&&xc()?i_(n,s):Gp(n)?cr(n):Array.isArray(n)?n.map(i=>r_(i,s)||$f.easeOut):$f[n]}const l_=(n,s,i)=>(((1-3*i+3*s)*n+(3*i-6*s))*n+3*s)*n,VC=1e-7,HC=12;function qC(n,s,i,o,c){let u,d,m=0;do d=s+(i-s)/2,u=l_(d,o,c)-n,u>0?i=d:s=d;while(Math.abs(u)>VC&&++m<HC);return d}function Dr(n,s,i,o){if(n===s&&i===o)return _n;const c=u=>qC(u,0,1,n,i);return u=>u===0||u===1?u:l_(c(u),s,o)}const c_=n=>s=>s<=.5?n(2*s)/2:(2-n(2*(1-s)))/2,u_=n=>s=>1-n(1-s),d_=Dr(.33,1.53,.69,.99),$p=u_(d_),f_=c_($p),p_=n=>(n*=2)<1?.5*$p(n):.5*(2-Math.pow(2,-10*(n-1))),Fp=n=>1-Math.sin(Math.acos(n)),m_=u_(Fp),h_=c_(Fp),g_=n=>/^0[^.\s]+$/u.test(n);function GC(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||g_(n):!0}const mr=n=>Math.round(n*1e5)/1e5,Zp=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $C(n){return n==null}const FC=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Kp=(n,s)=>i=>!!(typeof i=="string"&&FC.test(i)&&i.startsWith(n)||s&&!$C(i)&&Object.prototype.hasOwnProperty.call(i,s)),v_=(n,s,i)=>o=>{if(typeof o!="string")return o;const[c,u,d,m]=o.match(Zp);return{[n]:parseFloat(c),[s]:parseFloat(u),[i]:parseFloat(d),alpha:m!==void 0?parseFloat(m):1}},ZC=n=>Is(0,255,n),hf={...ro,transform:n=>Math.round(ZC(n))},Fa={test:Kp("rgb","red"),parse:v_("red","green","blue"),transform:({red:n,green:s,blue:i,alpha:o=1})=>"rgba("+hf.transform(n)+", "+hf.transform(s)+", "+hf.transform(i)+", "+mr(kr.transform(o))+")"};function KC(n){let s="",i="",o="",c="";return n.length>5?(s=n.substring(1,3),i=n.substring(3,5),o=n.substring(5,7),c=n.substring(7,9)):(s=n.substring(1,2),i=n.substring(2,3),o=n.substring(3,4),c=n.substring(4,5),s+=s,i+=i,o+=o,c+=c),{red:parseInt(s,16),green:parseInt(i,16),blue:parseInt(o,16),alpha:c?parseInt(c,16)/255:1}}const Ff={test:Kp("#"),parse:KC,transform:Fa.transform},$i={test:Kp("hsl","hue"),parse:v_("hue","saturation","lightness"),transform:({hue:n,saturation:s,lightness:i,alpha:o=1})=>"hsla("+Math.round(n)+", "+as.transform(mr(s))+", "+as.transform(mr(i))+", "+mr(kr.transform(o))+")"},Xt={test:n=>Fa.test(n)||Ff.test(n)||$i.test(n),parse:n=>Fa.test(n)?Fa.parse(n):$i.test(n)?$i.parse(n):Ff.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Fa.transform(n):$i.transform(n)},YC=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JC(n){var s,i;return isNaN(n)&&typeof n=="string"&&(((s=n.match(Zp))===null||s===void 0?void 0:s.length)||0)+(((i=n.match(YC))===null||i===void 0?void 0:i.length)||0)>0}const y_="number",b_="color",WC="var",XC="var(",R0="${}",QC=/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 Nr(n){const s=n.toString(),i=[],o={color:[],number:[],var:[]},c=[];let u=0;const m=s.replace(QC,h=>(Xt.test(h)?(o.color.push(u),c.push(b_),i.push(Xt.parse(h))):h.startsWith(XC)?(o.var.push(u),c.push(WC),i.push(h)):(o.number.push(u),c.push(y_),i.push(parseFloat(h))),++u,R0)).split(R0);return{values:i,split:m,indexes:o,types:c}}function __(n){return Nr(n).values}function x_(n){const{split:s,types:i}=Nr(n),o=s.length;return c=>{let u="";for(let d=0;d<o;d++)if(u+=s[d],c[d]!==void 0){const m=i[d];m===y_?u+=mr(c[d]):m===b_?u+=Xt.transform(c[d]):u+=c[d]}return u}}const eE=n=>typeof n=="number"?0:n;function tE(n){const s=__(n);return x_(n)(s.map(eE))}const ga={test:JC,parse:__,createTransformer:x_,getAnimatableNone:tE},nE=new Set(["brightness","contrast","saturate","opacity"]);function sE(n){const[s,i]=n.slice(0,-1).split("(");if(s==="drop-shadow")return n;const[o]=i.match(Zp)||[];if(!o)return n;const c=i.replace(o,"");let u=nE.has(s)?1:0;return o!==i&&(u*=100),s+"("+u+c+")"}const aE=/\b([a-z-]*)\(.*?\)/gu,Zf={...ga,getAnimatableNone:n=>{const s=n.match(aE);return s?s.map(sE).join(" "):n}},iE={...Rp,color:Xt,backgroundColor:Xt,outlineColor:Xt,fill:Xt,stroke:Xt,borderColor:Xt,borderTopColor:Xt,borderRightColor:Xt,borderBottomColor:Xt,borderLeftColor:Xt,filter:Zf,WebkitFilter:Zf},Yp=n=>iE[n];function S_(n,s){let i=Yp(n);return i!==Zf&&(i=ga),i.getAnimatableNone?i.getAnimatableNone(s):void 0}const oE=new Set(["auto","none","0"]);function rE(n,s,i){let o=0,c;for(;o<n.length&&!c;){const u=n[o];typeof u=="string"&&!oE.has(u)&&Nr(u).values.length&&(c=n[o]),o++}if(c&&i)for(const u of s)n[u]=S_(i,c)}const M0=n=>n===ro||n===Te,O0=(n,s)=>parseFloat(n.split(", ")[s]),I0=(n,s)=>(i,{transform:o})=>{if(o==="none"||!o)return 0;const c=o.match(/^matrix3d\((.+)\)$/u);if(c)return O0(c[1],s);{const u=o.match(/^matrix\((.+)\)$/u);return u?O0(u[1],n):0}},lE=new Set(["x","y","z"]),cE=oo.filter(n=>!lE.has(n));function uE(n){const s=[];return cE.forEach(i=>{const o=n.getValue(i);o!==void 0&&(s.push([i,o.get()]),o.set(i.startsWith("scale")?1:0))}),s}const so={width:({x:n},{paddingLeft:s="0",paddingRight:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),height:({y:n},{paddingTop:s="0",paddingBottom:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),top:(n,{top:s})=>parseFloat(s),left:(n,{left:s})=>parseFloat(s),bottom:({y:n},{top:s})=>parseFloat(s)+(n.max-n.min),right:({x:n},{left:s})=>parseFloat(s)+(n.max-n.min),x:I0(4,13),y:I0(5,14)};so.translateX=so.x;so.translateY=so.y;const Ka=new Set;let Kf=!1,Yf=!1;function T_(){if(Yf){const n=Array.from(Ka).filter(o=>o.needsMeasurement),s=new Set(n.map(o=>o.element)),i=new Map;s.forEach(o=>{const c=uE(o);c.length&&(i.set(o,c),o.render())}),n.forEach(o=>o.measureInitialState()),s.forEach(o=>{o.render();const c=i.get(o);c&&c.forEach(([u,d])=>{var m;(m=o.getValue(u))===null||m===void 0||m.set(d)})}),n.forEach(o=>o.measureEndState()),n.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}Yf=!1,Kf=!1,Ka.forEach(n=>n.complete()),Ka.clear()}function k_(){Ka.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Yf=!0)})}function dE(){k_(),T_()}class Jp{constructor(s,i,o,c,u,d=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...s],this.onComplete=i,this.name=o,this.motionValue=c,this.element=u,this.isAsync=d}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ka.add(this),Kf||(Kf=!0,ft.read(k_),ft.resolveKeyframes(T_))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:s,name:i,element:o,motionValue:c}=this;for(let u=0;u<s.length;u++)if(s[u]===null)if(u===0){const d=c==null?void 0:c.get(),m=s[s.length-1];if(d!==void 0)s[0]=d;else if(o&&i){const h=o.readValue(i,m);h!=null&&(s[0]=h)}s[0]===void 0&&(s[0]=m),c&&d===void 0&&c.set(s[0])}else s[u]=s[u-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Ka.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ka.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const w_=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n),fE=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function pE(n){const s=fE.exec(n);if(!s)return[,];const[,i,o,c]=s;return[`--${i??o}`,c]}function N_(n,s,i=1){const[o,c]=pE(n);if(!o)return;const u=window.getComputedStyle(s).getPropertyValue(o);if(u){const d=u.trim();return w_(d)?parseFloat(d):d}return Dp(c)?N_(c,s,i+1):c}const j_=n=>s=>s.test(n),mE={test:n=>n==="auto",parse:n=>n},C_=[ro,Te,as,pa,uC,cC,mE],B0=n=>C_.find(j_(n));class E_ extends Jp{constructor(s,i,o,c,u){super(s,i,o,c,u,!0)}readKeyframes(){const{unresolvedKeyframes:s,element:i,name:o}=this;if(!i||!i.current)return;super.readKeyframes();for(let h=0;h<s.length;h++){let g=s[h];if(typeof g=="string"&&(g=g.trim(),Dp(g))){const v=N_(g,i.current);v!==void 0&&(s[h]=v),h===s.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!n_.has(o)||s.length!==2)return;const[c,u]=s,d=B0(c),m=B0(u);if(d!==m)if(M0(d)&&M0(m))for(let h=0;h<s.length;h++){const g=s[h];typeof g=="string"&&(s[h]=parseFloat(g))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:s,name:i}=this,o=[];for(let c=0;c<s.length;c++)GC(s[c])&&o.push(c);o.length&&rE(s,o,i)}measureInitialState(){const{element:s,unresolvedKeyframes:i,name:o}=this;if(!s||!s.current)return;o==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=so[o](s.measureViewportBox(),window.getComputedStyle(s.current)),i[0]=this.measuredOrigin;const c=i[i.length-1];c!==void 0&&s.getValue(o,c).jump(c,!1)}measureEndState(){var s;const{element:i,name:o,unresolvedKeyframes:c}=this;if(!i||!i.current)return;const u=i.getValue(o);u&&u.jump(this.measuredOrigin,!1);const d=c.length-1,m=c[d];c[d]=so[o](i.measureViewportBox(),window.getComputedStyle(i.current)),m!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=m),!((s=this.removedTransforms)===null||s===void 0)&&s.length&&this.removedTransforms.forEach(([h,g])=>{i.getValue(h).set(g)}),this.resolveNoneKeyframes()}}const L0=(n,s)=>s==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(ga.test(n)||n==="0")&&!n.startsWith("url("));function hE(n){const s=n[0];if(n.length===1)return!0;for(let i=0;i<n.length;i++)if(n[i]!==s)return!0}function gE(n,s,i,o){const c=n[0];if(c===null)return!1;if(s==="display"||s==="visibility")return!0;const u=n[n.length-1],d=L0(c,s),m=L0(u,s);return!d||!m?!1:hE(n)||(i==="spring"||qp(i))&&o}const vE=n=>n!==null;function zc(n,{repeat:s,repeatType:i="loop"},o){const c=n.filter(vE),u=s&&i!=="loop"&&s%2===1?0:c.length-1;return!u||o===void 0?c[u]:o}const yE=40;class A_{constructor({autoplay:s=!0,delay:i=0,type:o="keyframes",repeat:c=0,repeatDelay:u=0,repeatType:d="loop",...m}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=is.now(),this.options={autoplay:s,delay:i,type:o,repeat:c,repeatDelay:u,repeatType:d,...m},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>yE?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dE(),this._resolved}onKeyframesResolved(s,i){this.resolvedAt=is.now(),this.hasAttemptedResolve=!0;const{name:o,type:c,velocity:u,delay:d,onComplete:m,onUpdate:h,isGenerator:g}=this.options;if(!g&&!gE(s,o,c,u))if(d)this.options.duration=0;else{h&&h(zc(s,this.options,i)),m&&m(),this.resolveFinishedPromise();return}const v=this.initPlayback(s,i);v!==!1&&(this._resolved={keyframes:s,finalKeyframe:i,...v},this.onPostResolved())}onPostResolved(){}then(s,i){return this.currentFinishedPromise.then(s,i)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(s=>{this.resolveFinishedPromise=s})}}const Jf=2e4;function D_(n){let s=0;const i=50;let o=n.next(s);for(;!o.done&&s<Jf;)s+=i,o=n.next(s);return s>=Jf?1/0:s}const vt=(n,s,i)=>n+(s-n)*i;function gf(n,s,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?n+(s-n)*6*i:i<1/2?s:i<2/3?n+(s-n)*(2/3-i)*6:n}function bE({hue:n,saturation:s,lightness:i,alpha:o}){n/=360,s/=100,i/=100;let c=0,u=0,d=0;if(!s)c=u=d=i;else{const m=i<.5?i*(1+s):i+s-i*s,h=2*i-m;c=gf(h,m,n+1/3),u=gf(h,m,n),d=gf(h,m,n-1/3)}return{red:Math.round(c*255),green:Math.round(u*255),blue:Math.round(d*255),alpha:o}}function Sc(n,s){return i=>i>0?s:n}const vf=(n,s,i)=>{const o=n*n,c=i*(s*s-o)+o;return c<0?0:Math.sqrt(c)},_E=[Ff,Fa,$i],xE=n=>_E.find(s=>s.test(n));function U0(n){const s=xE(n);if(!s)return!1;let i=s.parse(n);return s===$i&&(i=bE(i)),i}const z0=(n,s)=>{const i=U0(n),o=U0(s);if(!i||!o)return Sc(n,s);const c={...i};return u=>(c.red=vf(i.red,o.red,u),c.green=vf(i.green,o.green,u),c.blue=vf(i.blue,o.blue,u),c.alpha=vt(i.alpha,o.alpha,u),Fa.transform(c))},SE=(n,s)=>i=>s(n(i)),Rr=(...n)=>n.reduce(SE),Wf=new Set(["none","hidden"]);function TE(n,s){return Wf.has(n)?i=>i<=0?n:s:i=>i>=1?s:n}function kE(n,s){return i=>vt(n,s,i)}function Wp(n){return typeof n=="number"?kE:typeof n=="string"?Dp(n)?Sc:Xt.test(n)?z0:jE:Array.isArray(n)?R_:typeof n=="object"?Xt.test(n)?z0:wE:Sc}function R_(n,s){const i=[...n],o=i.length,c=n.map((u,d)=>Wp(u)(u,s[d]));return u=>{for(let d=0;d<o;d++)i[d]=c[d](u);return i}}function wE(n,s){const i={...n,...s},o={};for(const c in i)n[c]!==void 0&&s[c]!==void 0&&(o[c]=Wp(n[c])(n[c],s[c]));return c=>{for(const u in o)i[u]=o[u](c);return i}}function NE(n,s){var i;const o=[],c={color:0,var:0,number:0};for(let u=0;u<s.values.length;u++){const d=s.types[u],m=n.indexes[d][c[d]],h=(i=n.values[m])!==null&&i!==void 0?i:0;o[u]=h,c[d]++}return o}const jE=(n,s)=>{const i=ga.createTransformer(s),o=Nr(n),c=Nr(s);return o.indexes.var.length===c.indexes.var.length&&o.indexes.color.length===c.indexes.color.length&&o.indexes.number.length>=c.indexes.number.length?Wf.has(n)&&!c.values.length||Wf.has(s)&&!o.values.length?TE(n,s):Rr(R_(NE(o,c),c.values),i):Sc(n,s)};function M_(n,s,i){return typeof n=="number"&&typeof s=="number"&&typeof i=="number"?vt(n,s,i):Wp(n)(n,s)}const CE=5;function O_(n,s,i){const o=Math.max(s-CE,0);return s_(i-n(o),s-o)}const _t={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},yf=.001;function EE({duration:n=_t.duration,bounce:s=_t.bounce,velocity:i=_t.velocity,mass:o=_t.mass}){let c,u,d=1-s;d=Is(_t.minDamping,_t.maxDamping,d),n=Is(_t.minDuration,_t.maxDuration,Rs(n)),d<1?(c=g=>{const v=g*d,b=v*n,_=v-i,S=Xf(g,d),T=Math.exp(-b);return yf-_/S*T},u=g=>{const b=g*d*n,_=b*i+i,S=Math.pow(d,2)*Math.pow(g,2)*n,T=Math.exp(-b),N=Xf(Math.pow(g,2),d);return(-c(g)+yf>0?-1:1)*((_-S)*T)/N}):(c=g=>{const v=Math.exp(-g*n),b=(g-i)*n+1;return-yf+v*b},u=g=>{const v=Math.exp(-g*n),b=(i-g)*(n*n);return v*b});const m=5/n,h=DE(c,u,m);if(n=Ds(n),isNaN(h))return{stiffness:_t.stiffness,damping:_t.damping,duration:n};{const g=Math.pow(h,2)*o;return{stiffness:g,damping:d*2*Math.sqrt(o*g),duration:n}}}const AE=12;function DE(n,s,i){let o=i;for(let c=1;c<AE;c++)o=o-n(o)/s(o);return o}function Xf(n,s){return n*Math.sqrt(1-s*s)}const RE=["duration","bounce"],ME=["stiffness","damping","mass"];function P0(n,s){return s.some(i=>n[i]!==void 0)}function OE(n){let s={velocity:_t.velocity,stiffness:_t.stiffness,damping:_t.damping,mass:_t.mass,isResolvedFromDuration:!1,...n};if(!P0(n,ME)&&P0(n,RE))if(n.visualDuration){const i=n.visualDuration,o=2*Math.PI/(i*1.2),c=o*o,u=2*Is(.05,1,1-(n.bounce||0))*Math.sqrt(c);s={...s,mass:_t.mass,stiffness:c,damping:u}}else{const i=EE(n);s={...s,...i,mass:_t.mass},s.isResolvedFromDuration=!0}return s}function I_(n=_t.visualDuration,s=_t.bounce){const i=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:s}:n;let{restSpeed:o,restDelta:c}=i;const u=i.keyframes[0],d=i.keyframes[i.keyframes.length-1],m={done:!1,value:u},{stiffness:h,damping:g,mass:v,duration:b,velocity:_,isResolvedFromDuration:S}=OE({...i,velocity:-Rs(i.velocity||0)}),T=_||0,N=g/(2*Math.sqrt(h*v)),j=d-u,w=Rs(Math.sqrt(h/v)),C=Math.abs(j)<5;o||(o=C?_t.restSpeed.granular:_t.restSpeed.default),c||(c=C?_t.restDelta.granular:_t.restDelta.default);let A;if(N<1){const D=Xf(w,N);A=E=>{const H=Math.exp(-N*w*E);return d-H*((T+N*w*j)/D*Math.sin(D*E)+j*Math.cos(D*E))}}else if(N===1)A=D=>d-Math.exp(-w*D)*(j+(T+w*j)*D);else{const D=w*Math.sqrt(N*N-1);A=E=>{const H=Math.exp(-N*w*E),z=Math.min(D*E,300);return d-H*((T+N*w*j)*Math.sinh(z)+D*j*Math.cosh(z))/D}}const M={calculatedDuration:S&&b||null,next:D=>{const E=A(D);if(S)m.done=D>=b;else{let H=0;N<1&&(H=D===0?Ds(T):O_(A,D,E));const z=Math.abs(H)<=o,Z=Math.abs(d-E)<=c;m.done=z&&Z}return m.value=m.done?d:E,m},toString:()=>{const D=Math.min(D_(M),Jf),E=i_(H=>M.next(D*H).value,D,30);return D+"ms "+E}};return M}function V0({keyframes:n,velocity:s=0,power:i=.8,timeConstant:o=325,bounceDamping:c=10,bounceStiffness:u=500,modifyTarget:d,min:m,max:h,restDelta:g=.5,restSpeed:v}){const b=n[0],_={done:!1,value:b},S=z=>m!==void 0&&z<m||h!==void 0&&z>h,T=z=>m===void 0?h:h===void 0||Math.abs(m-z)<Math.abs(h-z)?m:h;let N=i*s;const j=b+N,w=d===void 0?j:d(j);w!==j&&(N=w-b);const C=z=>-N*Math.exp(-z/o),A=z=>w+C(z),M=z=>{const Z=C(z),F=A(z);_.done=Math.abs(Z)<=g,_.value=_.done?w:F};let D,E;const H=z=>{S(_.value)&&(D=z,E=I_({keyframes:[_.value,T(_.value)],velocity:O_(A,z,_.value),damping:c,stiffness:u,restDelta:g,restSpeed:v}))};return H(0),{calculatedDuration:null,next:z=>{let Z=!1;return!E&&D===void 0&&(Z=!0,M(z),H(z)),D!==void 0&&z>=D?E.next(z-D):(!Z&&M(z),_)}}}const IE=Dr(.42,0,1,1),BE=Dr(0,0,.58,1),B_=Dr(.42,0,.58,1),LE=n=>Array.isArray(n)&&typeof n[0]!="number",UE={linear:_n,easeIn:IE,easeInOut:B_,easeOut:BE,circIn:Fp,circInOut:h_,circOut:m_,backIn:$p,backInOut:f_,backOut:d_,anticipate:p_},H0=n=>{if(Gp(n)){Bb(n.length===4);const[s,i,o,c]=n;return Dr(s,i,o,c)}else if(typeof n=="string")return UE[n];return n};function zE(n,s,i){const o=[],c=i||M_,u=n.length-1;for(let d=0;d<u;d++){let m=c(n[d],n[d+1]);if(s){const h=Array.isArray(s)?s[d]||_n:s;m=Rr(h,m)}o.push(m)}return o}function PE(n,s,{clamp:i=!0,ease:o,mixer:c}={}){const u=n.length;if(Bb(u===s.length),u===1)return()=>s[0];if(u===2&&s[0]===s[1])return()=>s[1];const d=n[0]===n[1];n[0]>n[u-1]&&(n=[...n].reverse(),s=[...s].reverse());const m=zE(s,o,c),h=m.length,g=v=>{if(d&&v<n[0])return s[0];let b=0;if(h>1)for(;b<n.length-2&&!(v<n[b+1]);b++);const _=no(n[b],n[b+1],v);return m[b](_)};return i?v=>g(Is(n[0],n[u-1],v)):g}function VE(n,s){const i=n[n.length-1];for(let o=1;o<=s;o++){const c=no(0,s,o);n.push(vt(i,1,c))}}function HE(n){const s=[0];return VE(s,n.length-1),s}function qE(n,s){return n.map(i=>i*s)}function GE(n,s){return n.map(()=>s||B_).splice(0,n.length-1)}function Tc({duration:n=300,keyframes:s,times:i,ease:o="easeInOut"}){const c=LE(o)?o.map(H0):H0(o),u={done:!1,value:s[0]},d=qE(i&&i.length===s.length?i:HE(s),n),m=PE(d,s,{ease:Array.isArray(c)?c:GE(s,c)});return{calculatedDuration:n,next:h=>(u.value=m(h),u.done=h>=n,u)}}const $E=n=>{const s=({timestamp:i})=>n(i);return{start:()=>ft.update(s,!0),stop:()=>ha(s),now:()=>Kt.isProcessing?Kt.timestamp:is.now()}},FE={decay:V0,inertia:V0,tween:Tc,keyframes:Tc,spring:I_},ZE=n=>n/100;class Xp extends A_{constructor(s){super(s),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:h}=this.options;h&&h()};const{name:i,motionValue:o,element:c,keyframes:u}=this.options,d=(c==null?void 0:c.KeyframeResolver)||Jp,m=(h,g)=>this.onKeyframesResolved(h,g);this.resolver=new d(u,m,i,o,c),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(s){const{type:i="keyframes",repeat:o=0,repeatDelay:c=0,repeatType:u,velocity:d=0}=this.options,m=qp(i)?i:FE[i]||Tc;let h,g;m!==Tc&&typeof s[0]!="number"&&(h=Rr(ZE,M_(s[0],s[1])),s=[0,100]);const v=m({...this.options,keyframes:s});u==="mirror"&&(g=m({...this.options,keyframes:[...s].reverse(),velocity:-d})),v.calculatedDuration===null&&(v.calculatedDuration=D_(v));const{calculatedDuration:b}=v,_=b+c,S=_*(o+1)-c;return{generator:v,mirroredGenerator:g,mapPercentToKeyframes:h,calculatedDuration:b,resolvedDuration:_,totalDuration:S}}onPostResolved(){const{autoplay:s=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!s?this.pause():this.state=this.pendingPlayState}tick(s,i=!1){const{resolved:o}=this;if(!o){const{keyframes:z}=this.options;return{done:!0,value:z[z.length-1]}}const{finalKeyframe:c,generator:u,mirroredGenerator:d,mapPercentToKeyframes:m,keyframes:h,calculatedDuration:g,totalDuration:v,resolvedDuration:b}=o;if(this.startTime===null)return u.next(0);const{delay:_,repeat:S,repeatType:T,repeatDelay:N,onUpdate:j}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,s):this.speed<0&&(this.startTime=Math.min(s-v/this.speed,this.startTime)),i?this.currentTime=s:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(s-this.startTime)*this.speed;const w=this.currentTime-_*(this.speed>=0?1:-1),C=this.speed>=0?w<0:w>v;this.currentTime=Math.max(w,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=v);let A=this.currentTime,M=u;if(S){const z=Math.min(this.currentTime,v)/b;let Z=Math.floor(z),F=z%1;!F&&z>=1&&(F=1),F===1&&Z--,Z=Math.min(Z,S+1),!!(Z%2)&&(T==="reverse"?(F=1-F,N&&(F-=N/b)):T==="mirror"&&(M=d)),A=Is(0,1,F)*b}const D=C?{done:!1,value:h[0]}:M.next(A);m&&(D.value=m(D.value));let{done:E}=D;!C&&g!==null&&(E=this.speed>=0?this.currentTime>=v:this.currentTime<=0);const H=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return H&&c!==void 0&&(D.value=zc(h,this.options,c)),j&&j(D.value),H&&this.finish(),D}get duration(){const{resolved:s}=this;return s?Rs(s.calculatedDuration):0}get time(){return Rs(this.currentTime)}set time(s){s=Ds(s),this.currentTime=s,this.holdTime!==null||this.speed===0?this.holdTime=s:this.driver&&(this.startTime=this.driver.now()-s/this.speed)}get speed(){return this.playbackSpeed}set speed(s){const i=this.playbackSpeed!==s;this.playbackSpeed=s,i&&(this.time=Rs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:s=$E,onPlay:i,startTime:o}=this.options;this.driver||(this.driver=s(u=>this.tick(u))),i&&i();const c=this.driver.now();this.holdTime!==null?this.startTime=c-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=c):this.startTime=o??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var s;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(s=this.currentTime)!==null&&s!==void 0?s:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:s}=this.options;s&&s()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(s){return this.startTime=0,this.tick(s,!0)}}const KE=new Set(["opacity","clipPath","filter","transform"]);function YE(n,s,i,{delay:o=0,duration:c=300,repeat:u=0,repeatType:d="loop",ease:m="easeInOut",times:h}={}){const g={[s]:i};h&&(g.offset=h);const v=r_(m,c);return Array.isArray(v)&&(g.easing=v),n.animate(g,{delay:o,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:u+1,direction:d==="reverse"?"alternate":"normal"})}const JE=Hp(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),kc=10,WE=2e4;function XE(n){return qp(n.type)||n.type==="spring"||!o_(n.ease)}function QE(n,s){const i=new Xp({...s,keyframes:n,repeat:0,delay:0,isGenerator:!0});let o={done:!1,value:n[0]};const c=[];let u=0;for(;!o.done&&u<WE;)o=i.sample(u),c.push(o.value),u+=kc;return{times:void 0,keyframes:c,duration:u-kc,ease:"linear"}}const L_={anticipate:p_,backInOut:f_,circInOut:h_};function eA(n){return n in L_}class q0 extends A_{constructor(s){super(s);const{name:i,motionValue:o,element:c,keyframes:u}=this.options;this.resolver=new E_(u,(d,m)=>this.onKeyframesResolved(d,m),i,o,c),this.resolver.scheduleResolve()}initPlayback(s,i){let{duration:o=300,times:c,ease:u,type:d,motionValue:m,name:h,startTime:g}=this.options;if(!m.owner||!m.owner.current)return!1;if(typeof u=="string"&&xc()&&eA(u)&&(u=L_[u]),XE(this.options)){const{onComplete:b,onUpdate:_,motionValue:S,element:T,...N}=this.options,j=QE(s,N);s=j.keyframes,s.length===1&&(s[1]=s[0]),o=j.duration,c=j.times,u=j.ease,d="keyframes"}const v=YE(m.owner.current,h,s,{...this.options,duration:o,times:c,ease:u});return v.startTime=g??this.calcStartTime(),this.pendingTimeline?(D0(v,this.pendingTimeline),this.pendingTimeline=void 0):v.onfinish=()=>{const{onComplete:b}=this.options;m.set(zc(s,this.options,i)),b&&b(),this.cancel(),this.resolveFinishedPromise()},{animation:v,duration:o,times:c,type:d,ease:u,keyframes:s}}get duration(){const{resolved:s}=this;if(!s)return 0;const{duration:i}=s;return Rs(i)}get time(){const{resolved:s}=this;if(!s)return 0;const{animation:i}=s;return Rs(i.currentTime||0)}set time(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.currentTime=Ds(s)}get speed(){const{resolved:s}=this;if(!s)return 1;const{animation:i}=s;return i.playbackRate}set speed(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.playbackRate=s}get state(){const{resolved:s}=this;if(!s)return"idle";const{animation:i}=s;return i.playState}get startTime(){const{resolved:s}=this;if(!s)return null;const{animation:i}=s;return i.startTime}attachTimeline(s){if(!this._resolved)this.pendingTimeline=s;else{const{resolved:i}=this;if(!i)return _n;const{animation:o}=i;D0(o,s)}return _n}play(){if(this.isStopped)return;const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.playState==="finished"&&this.updateFinishedPromise(),i.play()}pause(){const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:s}=this;if(!s)return;const{animation:i,keyframes:o,duration:c,type:u,ease:d,times:m}=s;if(i.playState==="idle"||i.playState==="finished")return;if(this.time){const{motionValue:g,onUpdate:v,onComplete:b,element:_,...S}=this.options,T=new Xp({...S,keyframes:o,duration:c,type:u,ease:d,times:m,isGenerator:!0}),N=Ds(this.time);g.setWithVelocity(T.sample(N-kc).value,T.sample(N).value,kc)}const{onStop:h}=this.options;h&&h(),this.cancel()}complete(){const{resolved:s}=this;s&&s.animation.finish()}cancel(){const{resolved:s}=this;s&&s.animation.cancel()}static supports(s){const{motionValue:i,name:o,repeatDelay:c,repeatType:u,damping:d,type:m}=s;if(!i||!i.owner||!(i.owner.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:g}=i.owner.getProps();return JE()&&o&&KE.has(o)&&!h&&!g&&!c&&u!=="mirror"&&d!==0&&m!=="inertia"}}const tA={type:"spring",stiffness:500,damping:25,restSpeed:10},nA=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),sA={type:"keyframes",duration:.8},aA={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iA=(n,{keyframes:s})=>s.length>2?sA:ni.has(n)?n.startsWith("scale")?nA(s[1]):tA:aA;function oA({when:n,delay:s,delayChildren:i,staggerChildren:o,staggerDirection:c,repeat:u,repeatType:d,repeatDelay:m,from:h,elapsed:g,...v}){return!!Object.keys(v).length}const Qp=(n,s,i,o={},c,u)=>d=>{const m=Up(o,n)||{},h=m.delay||o.delay||0;let{elapsed:g=0}=o;g=g-Ds(h);let v={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:s.getVelocity(),...m,delay:-g,onUpdate:_=>{s.set(_),m.onUpdate&&m.onUpdate(_)},onComplete:()=>{d(),m.onComplete&&m.onComplete()},name:n,motionValue:s,element:u?void 0:c};oA(m)||(v={...v,...iA(n,v)}),v.duration&&(v.duration=Ds(v.duration)),v.repeatDelay&&(v.repeatDelay=Ds(v.repeatDelay)),v.from!==void 0&&(v.keyframes[0]=v.from);let b=!1;if((v.type===!1||v.duration===0&&!v.repeatDelay)&&(v.duration=0,v.delay===0&&(b=!0)),b&&!u&&s.get()!==void 0){const _=zc(v.keyframes,m);if(_!==void 0)return ft.update(()=>{v.onUpdate(_),v.onComplete()}),new UC([])}return!u&&q0.supports(v)?new q0(v):new Xp(v)};function rA({protectedKeys:n,needsAnimating:s},i){const o=n.hasOwnProperty(i)&&s[i]!==!0;return s[i]=!1,o}function U_(n,s,{delay:i=0,transitionOverride:o,type:c}={}){var u;let{transition:d=n.getDefaultTransition(),transitionEnd:m,...h}=s;o&&(d=o);const g=[],v=c&&n.animationState&&n.animationState.getState()[c];for(const b in h){const _=n.getValue(b,(u=n.latestValues[b])!==null&&u!==void 0?u:null),S=h[b];if(S===void 0||v&&rA(v,b))continue;const T={delay:i,...Up(d||{},b)};let N=!1;if(window.MotionHandoffAnimation){const w=a_(n);if(w){const C=window.MotionHandoffAnimation(w,b,ft);C!==null&&(T.startTime=C,N=!0)}}Gf(n,b),_.start(Qp(b,_,S,n.shouldReduceMotion&&n_.has(b)?{type:!1}:T,n,N));const j=_.animation;j&&g.push(j)}return m&&Promise.all(g).then(()=>{ft.update(()=>{m&&OC(n,m)})}),g}function Qf(n,s,i={}){var o;const c=Uc(n,s,i.type==="exit"?(o=n.presenceContext)===null||o===void 0?void 0:o.custom:void 0);let{transition:u=n.getDefaultTransition()||{}}=c||{};i.transitionOverride&&(u=i.transitionOverride);const d=c?()=>Promise.all(U_(n,c,i)):()=>Promise.resolve(),m=n.variantChildren&&n.variantChildren.size?(g=0)=>{const{delayChildren:v=0,staggerChildren:b,staggerDirection:_}=u;return lA(n,s,v+g,b,_,i)}:()=>Promise.resolve(),{when:h}=u;if(h){const[g,v]=h==="beforeChildren"?[d,m]:[m,d];return g().then(()=>v())}else return Promise.all([d(),m(i.delay)])}function lA(n,s,i=0,o=0,c=1,u){const d=[],m=(n.variantChildren.size-1)*o,h=c===1?(g=0)=>g*o:(g=0)=>m-g*o;return Array.from(n.variantChildren).sort(cA).forEach((g,v)=>{g.notify("AnimationStart",s),d.push(Qf(g,s,{...u,delay:i+h(v)}).then(()=>g.notify("AnimationComplete",s)))}),Promise.all(d)}function cA(n,s){return n.sortNodePosition(s)}function uA(n,s,i={}){n.notify("AnimationStart",s);let o;if(Array.isArray(s)){const c=s.map(u=>Qf(n,u,i));o=Promise.all(c)}else if(typeof s=="string")o=Qf(n,s,i);else{const c=typeof s=="function"?Uc(n,s,i.custom):s;o=Promise.all(U_(n,c,i))}return o.then(()=>{n.notify("AnimationComplete",s)})}const dA=Np.length;function z_(n){if(!n)return;if(!n.isControllingVariants){const i=n.parent?z_(n.parent)||{}:{};return n.props.initial!==void 0&&(i.initial=n.props.initial),i}const s={};for(let i=0;i<dA;i++){const o=Np[i],c=n.props[o];(Tr(c)||c===!1)&&(s[o]=c)}return s}const fA=[...wp].reverse(),pA=wp.length;function mA(n){return s=>Promise.all(s.map(({animation:i,options:o})=>uA(n,i,o)))}function hA(n){let s=mA(n),i=G0(),o=!0;const c=h=>(g,v)=>{var b;const _=Uc(n,v,h==="exit"?(b=n.presenceContext)===null||b===void 0?void 0:b.custom:void 0);if(_){const{transition:S,transitionEnd:T,...N}=_;g={...g,...N,...T}}return g};function u(h){s=h(n)}function d(h){const{props:g}=n,v=z_(n.parent)||{},b=[],_=new Set;let S={},T=1/0;for(let j=0;j<pA;j++){const w=fA[j],C=i[w],A=g[w]!==void 0?g[w]:v[w],M=Tr(A),D=w===h?C.isActive:null;D===!1&&(T=j);let E=A===v[w]&&A!==g[w]&&M;if(E&&o&&n.manuallyAnimateOnMount&&(E=!1),C.protectedKeys={...S},!C.isActive&&D===null||!A&&!C.prevProp||Bc(A)||typeof A=="boolean")continue;const H=gA(C.prevProp,A);let z=H||w===h&&C.isActive&&!E&&M||j>T&&M,Z=!1;const F=Array.isArray(A)?A:[A];let Q=F.reduce(c(w),{});D===!1&&(Q={});const{prevResolvedValues:ae={}}=C,pe={...ae,...Q},oe=$=>{z=!0,_.has($)&&(Z=!0,_.delete($)),C.needsAnimating[$]=!0;const te=n.getValue($);te&&(te.liveStyle=!1)};for(const $ in pe){const te=Q[$],re=ae[$];if(S.hasOwnProperty($))continue;let de=!1;qf(te)&&qf(re)?de=!t_(te,re):de=te!==re,de?te!=null?oe($):_.add($):te!==void 0&&_.has($)?oe($):C.protectedKeys[$]=!0}C.prevProp=A,C.prevResolvedValues=Q,C.isActive&&(S={...S,...Q}),o&&n.blockInitialAnimation&&(z=!1),z&&(!(E&&H)||Z)&&b.push(...F.map($=>({animation:$,options:{type:w}})))}if(_.size){const j={};_.forEach(w=>{const C=n.getBaseTarget(w),A=n.getValue(w);A&&(A.liveStyle=!0),j[w]=C??null}),b.push({animation:j})}let N=!!b.length;return o&&(g.initial===!1||g.initial===g.animate)&&!n.manuallyAnimateOnMount&&(N=!1),o=!1,N?s(b):Promise.resolve()}function m(h,g){var v;if(i[h].isActive===g)return Promise.resolve();(v=n.variantChildren)===null||v===void 0||v.forEach(_=>{var S;return(S=_.animationState)===null||S===void 0?void 0:S.setActive(h,g)}),i[h].isActive=g;const b=d(h);for(const _ in i)i[_].protectedKeys={};return b}return{animateChanges:d,setActive:m,setAnimateFunction:u,getState:()=>i,reset:()=>{i=G0(),o=!0}}}function gA(n,s){return typeof s=="string"?s!==n:Array.isArray(s)?!t_(s,n):!1}function za(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function G0(){return{animate:za(!0),whileInView:za(),whileHover:za(),whileTap:za(),whileDrag:za(),whileFocus:za(),exit:za()}}class ba{constructor(s){this.isMounted=!1,this.node=s}update(){}}class vA extends ba{constructor(s){super(s),s.animationState||(s.animationState=hA(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Bc(s)&&(this.unmountControls=s.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:s}=this.node.getProps(),{animate:i}=this.node.prevProps||{};s!==i&&this.updateAnimationControlsSubscription()}unmount(){var s;this.node.animationState.reset(),(s=this.unmountControls)===null||s===void 0||s.call(this)}}let yA=0;class bA extends ba{constructor(){super(...arguments),this.id=yA++}update(){if(!this.node.presenceContext)return;const{isPresent:s,onExitComplete:i}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||s===o)return;const c=this.node.animationState.setActive("exit",!s);i&&!s&&c.then(()=>i(this.id))}mount(){const{register:s}=this.node.presenceContext||{};s&&(this.unmount=s(this.id))}unmount(){}}const _A={animation:{Feature:vA},exit:{Feature:bA}},Zn={x:!1,y:!1};function P_(){return Zn.x||Zn.y}function xA(n){return n==="x"||n==="y"?Zn[n]?null:(Zn[n]=!0,()=>{Zn[n]=!1}):Zn.x||Zn.y?null:(Zn.x=Zn.y=!0,()=>{Zn.x=Zn.y=!1})}const em=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1;function jr(n,s,i,o={passive:!0}){return n.addEventListener(s,i,o),()=>n.removeEventListener(s,i)}function Mr(n){return{point:{x:n.pageX,y:n.pageY}}}const SA=n=>s=>em(s)&&n(s,Mr(s));function hr(n,s,i,o){return jr(n,s,SA(i),o)}const $0=(n,s)=>Math.abs(n-s);function TA(n,s){const i=$0(n.x,s.x),o=$0(n.y,s.y);return Math.sqrt(i**2+o**2)}class V_{constructor(s,i,{transformPagePoint:o,contextWindow:c,dragSnapToOrigin:u=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=_f(this.lastMoveEventInfo,this.history),_=this.startEvent!==null,S=TA(b.offset,{x:0,y:0})>=3;if(!_&&!S)return;const{point:T}=b,{timestamp:N}=Kt;this.history.push({...T,timestamp:N});const{onStart:j,onMove:w}=this.handlers;_||(j&&j(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),w&&w(this.lastMoveEvent,b)},this.handlePointerMove=(b,_)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=bf(_,this.transformPagePoint),ft.update(this.updatePoint,!0)},this.handlePointerUp=(b,_)=>{this.end();const{onEnd:S,onSessionEnd:T,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const j=_f(b.type==="pointercancel"?this.lastMoveEventInfo:bf(_,this.transformPagePoint),this.history);this.startEvent&&S&&S(b,j),T&&T(b,j)},!em(s))return;this.dragSnapToOrigin=u,this.handlers=i,this.transformPagePoint=o,this.contextWindow=c||window;const d=Mr(s),m=bf(d,this.transformPagePoint),{point:h}=m,{timestamp:g}=Kt;this.history=[{...h,timestamp:g}];const{onSessionStart:v}=i;v&&v(s,_f(m,this.history)),this.removeListeners=Rr(hr(this.contextWindow,"pointermove",this.handlePointerMove),hr(this.contextWindow,"pointerup",this.handlePointerUp),hr(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),ha(this.updatePoint)}}function bf(n,s){return s?{point:s(n.point)}:n}function F0(n,s){return{x:n.x-s.x,y:n.y-s.y}}function _f({point:n},s){return{point:n,delta:F0(n,H_(s)),offset:F0(n,kA(s)),velocity:wA(s,.1)}}function kA(n){return n[0]}function H_(n){return n[n.length-1]}function wA(n,s){if(n.length<2)return{x:0,y:0};let i=n.length-1,o=null;const c=H_(n);for(;i>=0&&(o=n[i],!(c.timestamp-o.timestamp>Ds(s)));)i--;if(!o)return{x:0,y:0};const u=Rs(c.timestamp-o.timestamp);if(u===0)return{x:0,y:0};const d={x:(c.x-o.x)/u,y:(c.y-o.y)/u};return d.x===1/0&&(d.x=0),d.y===1/0&&(d.y=0),d}const q_=1e-4,NA=1-q_,jA=1+q_,G_=.01,CA=0-G_,EA=0+G_;function xn(n){return n.max-n.min}function AA(n,s,i){return Math.abs(n-s)<=i}function Z0(n,s,i,o=.5){n.origin=o,n.originPoint=vt(s.min,s.max,n.origin),n.scale=xn(i)/xn(s),n.translate=vt(i.min,i.max,n.origin)-n.originPoint,(n.scale>=NA&&n.scale<=jA||isNaN(n.scale))&&(n.scale=1),(n.translate>=CA&&n.translate<=EA||isNaN(n.translate))&&(n.translate=0)}function gr(n,s,i,o){Z0(n.x,s.x,i.x,o?o.originX:void 0),Z0(n.y,s.y,i.y,o?o.originY:void 0)}function K0(n,s,i){n.min=i.min+s.min,n.max=n.min+xn(s)}function DA(n,s,i){K0(n.x,s.x,i.x),K0(n.y,s.y,i.y)}function Y0(n,s,i){n.min=s.min-i.min,n.max=n.min+xn(s)}function vr(n,s,i){Y0(n.x,s.x,i.x),Y0(n.y,s.y,i.y)}function RA(n,{min:s,max:i},o){return s!==void 0&&n<s?n=o?vt(s,n,o.min):Math.max(n,s):i!==void 0&&n>i&&(n=o?vt(i,n,o.max):Math.min(n,i)),n}function J0(n,s,i){return{min:s!==void 0?n.min+s:void 0,max:i!==void 0?n.max+i-(n.max-n.min):void 0}}function MA(n,{top:s,left:i,bottom:o,right:c}){return{x:J0(n.x,i,c),y:J0(n.y,s,o)}}function W0(n,s){let i=s.min-n.min,o=s.max-n.max;return s.max-s.min<n.max-n.min&&([i,o]=[o,i]),{min:i,max:o}}function OA(n,s){return{x:W0(n.x,s.x),y:W0(n.y,s.y)}}function IA(n,s){let i=.5;const o=xn(n),c=xn(s);return c>o?i=no(s.min,s.max-o,n.min):o>c&&(i=no(n.min,n.max-c,s.min)),Is(0,1,i)}function BA(n,s){const i={};return s.min!==void 0&&(i.min=s.min-n.min),s.max!==void 0&&(i.max=s.max-n.min),i}const ep=.35;function LA(n=ep){return n===!1?n=0:n===!0&&(n=ep),{x:X0(n,"left","right"),y:X0(n,"top","bottom")}}function X0(n,s,i){return{min:Q0(n,s),max:Q0(n,i)}}function Q0(n,s){return typeof n=="number"?n:n[s]||0}const ey=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fi=()=>({x:ey(),y:ey()}),ty=()=>({min:0,max:0}),jt=()=>({x:ty(),y:ty()});function Bn(n){return[n("x"),n("y")]}function $_({top:n,left:s,right:i,bottom:o}){return{x:{min:s,max:i},y:{min:n,max:o}}}function UA({x:n,y:s}){return{top:s.min,right:n.max,bottom:s.max,left:n.min}}function zA(n,s){if(!s)return n;const i=s({x:n.left,y:n.top}),o=s({x:n.right,y:n.bottom});return{top:i.y,left:i.x,bottom:o.y,right:o.x}}function xf(n){return n===void 0||n===1}function tp({scale:n,scaleX:s,scaleY:i}){return!xf(n)||!xf(s)||!xf(i)}function Ga(n){return tp(n)||F_(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function F_(n){return ny(n.x)||ny(n.y)}function ny(n){return n&&n!=="0%"}function wc(n,s,i){const o=n-i,c=s*o;return i+c}function sy(n,s,i,o,c){return c!==void 0&&(n=wc(n,c,o)),wc(n,i,o)+s}function np(n,s=0,i=1,o,c){n.min=sy(n.min,s,i,o,c),n.max=sy(n.max,s,i,o,c)}function Z_(n,{x:s,y:i}){np(n.x,s.translate,s.scale,s.originPoint),np(n.y,i.translate,i.scale,i.originPoint)}const ay=.999999999999,iy=1.0000000000001;function PA(n,s,i,o=!1){const c=i.length;if(!c)return;s.x=s.y=1;let u,d;for(let m=0;m<c;m++){u=i[m],d=u.projectionDelta;const{visualElement:h}=u.options;h&&h.props.style&&h.props.style.display==="contents"||(o&&u.options.layoutScroll&&u.scroll&&u!==u.root&&Ki(n,{x:-u.scroll.offset.x,y:-u.scroll.offset.y}),d&&(s.x*=d.x.scale,s.y*=d.y.scale,Z_(n,d)),o&&Ga(u.latestValues)&&Ki(n,u.latestValues))}s.x<iy&&s.x>ay&&(s.x=1),s.y<iy&&s.y>ay&&(s.y=1)}function Zi(n,s){n.min=n.min+s,n.max=n.max+s}function oy(n,s,i,o,c=.5){const u=vt(n.min,n.max,c);np(n,s,i,u,o)}function Ki(n,s){oy(n.x,s.x,s.scaleX,s.scale,s.originX),oy(n.y,s.y,s.scaleY,s.scale,s.originY)}function K_(n,s){return $_(zA(n.getBoundingClientRect(),s))}function VA(n,s,i){const o=K_(n,i),{scroll:c}=s;return c&&(Zi(o.x,c.offset.x),Zi(o.y,c.offset.y)),o}const Y_=({current:n})=>n?n.ownerDocument.defaultView:null,HA=new WeakMap;class qA{constructor(s){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=jt(),this.visualElement=s}start(s,{snapToCursor:i=!1}={}){const{presenceContext:o}=this.visualElement;if(o&&o.isPresent===!1)return;const c=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),i&&this.snapToCursor(Mr(v).point)},u=(v,b)=>{const{drag:_,dragPropagation:S,onDragStart:T}=this.getProps();if(_&&!S&&(this.openDragLock&&this.openDragLock(),this.openDragLock=xA(_),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Bn(j=>{let w=this.getAxisMotionValue(j).get()||0;if(as.test(w)){const{projection:C}=this.visualElement;if(C&&C.layout){const A=C.layout.layoutBox[j];A&&(w=xn(A)*(parseFloat(w)/100))}}this.originPoint[j]=w}),T&&ft.postRender(()=>T(v,b)),Gf(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},d=(v,b)=>{const{dragPropagation:_,dragDirectionLock:S,onDirectionLock:T,onDrag:N}=this.getProps();if(!_&&!this.openDragLock)return;const{offset:j}=b;if(S&&this.currentDirection===null){this.currentDirection=GA(j),this.currentDirection!==null&&T&&T(this.currentDirection);return}this.updateAxis("x",b.point,j),this.updateAxis("y",b.point,j),this.visualElement.render(),N&&N(v,b)},m=(v,b)=>this.stop(v,b),h=()=>Bn(v=>{var b;return this.getAnimationState(v)==="paused"&&((b=this.getAxisMotionValue(v).animation)===null||b===void 0?void 0:b.play())}),{dragSnapToOrigin:g}=this.getProps();this.panSession=new V_(s,{onSessionStart:c,onStart:u,onMove:d,onSessionEnd:m,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,contextWindow:Y_(this.visualElement)})}stop(s,i){const o=this.isDragging;if(this.cancel(),!o)return;const{velocity:c}=i;this.startAnimation(c);const{onDragEnd:u}=this.getProps();u&&ft.postRender(()=>u(s,i))}cancel(){this.isDragging=!1;const{projection:s,animationState:i}=this.visualElement;s&&(s.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:o}=this.getProps();!o&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),i&&i.setActive("whileDrag",!1)}updateAxis(s,i,o){const{drag:c}=this.getProps();if(!o||!sc(s,c,this.currentDirection))return;const u=this.getAxisMotionValue(s);let d=this.originPoint[s]+o[s];this.constraints&&this.constraints[s]&&(d=RA(d,this.constraints[s],this.elastic[s])),u.set(d)}resolveConstraints(){var s;const{dragConstraints:i,dragElastic:o}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)===null||s===void 0?void 0:s.layout,u=this.constraints;i&&Gi(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&c?this.constraints=MA(c.layoutBox,i):this.constraints=!1,this.elastic=LA(o),u!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&Bn(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=BA(c.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:i}=this.getProps();if(!s||!Gi(s))return!1;const o=s.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const u=VA(o,c.root,this.visualElement.getTransformPagePoint());let d=OA(c.layout.layoutBox,u);if(i){const m=i(UA(d));this.hasMutatedConstraints=!!m,m&&(d=$_(m))}return d}startAnimation(s){const{drag:i,dragMomentum:o,dragElastic:c,dragTransition:u,dragSnapToOrigin:d,onDragTransitionEnd:m}=this.getProps(),h=this.constraints||{},g=Bn(v=>{if(!sc(v,i,this.currentDirection))return;let b=h&&h[v]||{};d&&(b={min:0,max:0});const _=c?200:1e6,S=c?40:1e7,T={type:"inertia",velocity:o?s[v]:0,bounceStiffness:_,bounceDamping:S,timeConstant:750,restDelta:1,restSpeed:10,...u,...b};return this.startAxisValueAnimation(v,T)});return Promise.all(g).then(m)}startAxisValueAnimation(s,i){const o=this.getAxisMotionValue(s);return Gf(this.visualElement,s),o.start(Qp(s,o,0,i,this.visualElement,!1))}stopAnimation(){Bn(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){Bn(s=>{var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.pause()})}getAnimationState(s){var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.state}getAxisMotionValue(s){const i=`_drag${s.toUpperCase()}`,o=this.visualElement.getProps(),c=o[i];return c||this.visualElement.getValue(s,(o.initial?o.initial[s]:void 0)||0)}snapToCursor(s){Bn(i=>{const{drag:o}=this.getProps();if(!sc(i,o,this.currentDirection))return;const{projection:c}=this.visualElement,u=this.getAxisMotionValue(i);if(c&&c.layout){const{min:d,max:m}=c.layout.layoutBox[i];u.set(s[i]-vt(d,m,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:i}=this.getProps(),{projection:o}=this.visualElement;if(!Gi(i)||!o||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};Bn(d=>{const m=this.getAxisMotionValue(d);if(m&&this.constraints!==!1){const h=m.get();c[d]=IA({min:h,max:h},this.constraints[d])}});const{transformTemplate:u}=this.visualElement.getProps();this.visualElement.current.style.transform=u?u({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),Bn(d=>{if(!sc(d,s,null))return;const m=this.getAxisMotionValue(d),{min:h,max:g}=this.constraints[d];m.set(vt(h,g,c[d]))})}addListeners(){if(!this.visualElement.current)return;HA.set(this.visualElement,this);const s=this.visualElement.current,i=hr(s,"pointerdown",h=>{const{drag:g,dragListener:v=!0}=this.getProps();g&&v&&this.start(h)}),o=()=>{const{dragConstraints:h}=this.getProps();Gi(h)&&h.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,u=c.addEventListener("measure",o);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),ft.read(o);const d=jr(window,"resize",()=>this.scalePositionWithinConstraints()),m=c.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:g})=>{this.isDragging&&g&&(Bn(v=>{const b=this.getAxisMotionValue(v);b&&(this.originPoint[v]+=h[v].translate,b.set(b.get()+h[v].translate))}),this.visualElement.render())}));return()=>{d(),i(),u(),m&&m()}}getProps(){const s=this.visualElement.getProps(),{drag:i=!1,dragDirectionLock:o=!1,dragPropagation:c=!1,dragConstraints:u=!1,dragElastic:d=ep,dragMomentum:m=!0}=s;return{...s,drag:i,dragDirectionLock:o,dragPropagation:c,dragConstraints:u,dragElastic:d,dragMomentum:m}}}function sc(n,s,i){return(s===!0||s===n)&&(i===null||i===n)}function GA(n,s=10){let i=null;return Math.abs(n.y)>s?i="y":Math.abs(n.x)>s&&(i="x"),i}class $A extends ba{constructor(s){super(s),this.removeGroupControls=_n,this.removeListeners=_n,this.controls=new qA(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||_n}unmount(){this.removeGroupControls(),this.removeListeners()}}const ry=n=>(s,i)=>{n&&ft.postRender(()=>n(s,i))};class FA extends ba{constructor(){super(...arguments),this.removePointerDownListener=_n}onPointerDown(s){this.session=new V_(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Y_(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:i,onPan:o,onPanEnd:c}=this.node.getProps();return{onSessionStart:ry(s),onStart:ry(i),onMove:o,onEnd:(u,d)=>{delete this.session,c&&ft.postRender(()=>c(u,d))}}}mount(){this.removePointerDownListener=hr(this.node.current,"pointerdown",s=>this.onPointerDown(s))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ly(n,s){return s.max===s.min?0:n/(s.max-s.min)*100}const ir={correct:(n,s)=>{if(!s.target)return n;if(typeof n=="string")if(Te.test(n))n=parseFloat(n);else return n;const i=ly(n,s.target.x),o=ly(n,s.target.y);return`${i}% ${o}%`}},ZA={correct:(n,{treeScale:s,projectionDelta:i})=>{const o=n,c=ga.parse(n);if(c.length>5)return o;const u=ga.createTransformer(n),d=typeof c[0]!="number"?1:0,m=i.x.scale*s.x,h=i.y.scale*s.y;c[0+d]/=m,c[1+d]/=h;const g=vt(m,h,.5);return typeof c[2+d]=="number"&&(c[2+d]/=g),typeof c[3+d]=="number"&&(c[3+d]/=g),u(c)}};class KA extends y.Component{componentDidMount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o,layoutId:c}=this.props,{projection:u}=s;_C(YA),u&&(i.group&&i.group.add(u),o&&o.register&&c&&o.register(u),u.root.didUpdate(),u.addEventListener("animationComplete",()=>{this.safeToRemove()}),u.setOptions({...u.options,onExitComplete:()=>this.safeToRemove()})),mc.hasEverUpdated=!0}getSnapshotBeforeUpdate(s){const{layoutDependency:i,visualElement:o,drag:c,isPresent:u}=this.props,d=o.projection;return d&&(d.isPresent=u,c||s.layoutDependency!==i||i===void 0?d.willUpdate():this.safeToRemove(),s.isPresent!==u&&(u?d.promote():d.relegate()||ft.postRender(()=>{const m=d.getStack();(!m||!m.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Cp.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o}=this.props,{projection:c}=s;c&&(c.scheduleCheckAfterUnmount(),i&&i.group&&i.group.remove(c),o&&o.deregister&&o.deregister(c))}safeToRemove(){const{safeToRemove:s}=this.props;s&&s()}render(){return null}}function J_(n){const[s,i]=Ob(),o=y.useContext(xp);return l.jsx(KA,{...n,layoutGroup:o,switchLayoutGroup:y.useContext(Hb),isPresent:s,safeToRemove:i})}const YA={borderRadius:{...ir,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ir,borderTopRightRadius:ir,borderBottomLeftRadius:ir,borderBottomRightRadius:ir,boxShadow:ZA};function JA(n,s,i){const o=Qt(n)?n:wr(n);return o.start(Qp("",o,s,i)),o.animation}function WA(n){return n instanceof SVGElement&&n.tagName!=="svg"}const XA=(n,s)=>n.depth-s.depth;class QA{constructor(){this.children=[],this.isDirty=!1}add(s){zp(this.children,s),this.isDirty=!0}remove(s){Pp(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(XA),this.isDirty=!1,this.children.forEach(s)}}function eD(n,s){const i=is.now(),o=({timestamp:c})=>{const u=c-i;u>=s&&(ha(o),n(u-s))};return ft.read(o,!0),()=>ha(o)}const W_=["TopLeft","TopRight","BottomLeft","BottomRight"],tD=W_.length,cy=n=>typeof n=="string"?parseFloat(n):n,uy=n=>typeof n=="number"||Te.test(n);function nD(n,s,i,o,c,u){c?(n.opacity=vt(0,i.opacity!==void 0?i.opacity:1,sD(o)),n.opacityExit=vt(s.opacity!==void 0?s.opacity:1,0,aD(o))):u&&(n.opacity=vt(s.opacity!==void 0?s.opacity:1,i.opacity!==void 0?i.opacity:1,o));for(let d=0;d<tD;d++){const m=`border${W_[d]}Radius`;let h=dy(s,m),g=dy(i,m);if(h===void 0&&g===void 0)continue;h||(h=0),g||(g=0),h===0||g===0||uy(h)===uy(g)?(n[m]=Math.max(vt(cy(h),cy(g),o),0),(as.test(g)||as.test(h))&&(n[m]+="%")):n[m]=g}(s.rotate||i.rotate)&&(n.rotate=vt(s.rotate||0,i.rotate||0,o))}function dy(n,s){return n[s]!==void 0?n[s]:n.borderRadius}const sD=X_(0,.5,m_),aD=X_(.5,.95,_n);function X_(n,s,i){return o=>o<n?0:o>s?1:i(no(n,s,o))}function fy(n,s){n.min=s.min,n.max=s.max}function On(n,s){fy(n.x,s.x),fy(n.y,s.y)}function py(n,s){n.translate=s.translate,n.scale=s.scale,n.originPoint=s.originPoint,n.origin=s.origin}function my(n,s,i,o,c){return n-=s,n=wc(n,1/i,o),c!==void 0&&(n=wc(n,1/c,o)),n}function iD(n,s=0,i=1,o=.5,c,u=n,d=n){if(as.test(s)&&(s=parseFloat(s),s=vt(d.min,d.max,s/100)-d.min),typeof s!="number")return;let m=vt(u.min,u.max,o);n===u&&(m-=s),n.min=my(n.min,s,i,m,c),n.max=my(n.max,s,i,m,c)}function hy(n,s,[i,o,c],u,d){iD(n,s[i],s[o],s[c],s.scale,u,d)}const oD=["x","scaleX","originX"],rD=["y","scaleY","originY"];function gy(n,s,i,o){hy(n.x,s,oD,i?i.x:void 0,o?o.x:void 0),hy(n.y,s,rD,i?i.y:void 0,o?o.y:void 0)}function vy(n){return n.translate===0&&n.scale===1}function Q_(n){return vy(n.x)&&vy(n.y)}function yy(n,s){return n.min===s.min&&n.max===s.max}function lD(n,s){return yy(n.x,s.x)&&yy(n.y,s.y)}function by(n,s){return Math.round(n.min)===Math.round(s.min)&&Math.round(n.max)===Math.round(s.max)}function ex(n,s){return by(n.x,s.x)&&by(n.y,s.y)}function _y(n){return xn(n.x)/xn(n.y)}function xy(n,s){return n.translate===s.translate&&n.scale===s.scale&&n.originPoint===s.originPoint}class cD{constructor(){this.members=[]}add(s){zp(this.members,s),s.scheduleRender()}remove(s){if(Pp(this.members,s),s===this.prevLead&&(this.prevLead=void 0),s===this.lead){const i=this.members[this.members.length-1];i&&this.promote(i)}}relegate(s){const i=this.members.findIndex(c=>s===c);if(i===0)return!1;let o;for(let c=i;c>=0;c--){const u=this.members[c];if(u.isPresent!==!1){o=u;break}}return o?(this.promote(o),!0):!1}promote(s,i){const o=this.lead;if(s!==o&&(this.prevLead=o,this.lead=s,s.show(),o)){o.instance&&o.scheduleRender(),s.scheduleRender(),s.resumeFrom=o,i&&(s.resumeFrom.preserveOpacity=!0),o.snapshot&&(s.snapshot=o.snapshot,s.snapshot.latestValues=o.animationValues||o.latestValues),s.root&&s.root.isUpdating&&(s.isLayoutDirty=!0);const{crossfade:c}=s.options;c===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(s=>{const{options:i,resumingFrom:o}=s;i.onExitComplete&&i.onExitComplete(),o&&o.options.onExitComplete&&o.options.onExitComplete()})}scheduleRender(){this.members.forEach(s=>{s.instance&&s.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function uD(n,s,i){let o="";const c=n.x.translate/s.x,u=n.y.translate/s.y,d=(i==null?void 0:i.z)||0;if((c||u||d)&&(o=`translate3d(${c}px, ${u}px, ${d}px) `),(s.x!==1||s.y!==1)&&(o+=`scale(${1/s.x}, ${1/s.y}) `),i){const{transformPerspective:g,rotate:v,rotateX:b,rotateY:_,skewX:S,skewY:T}=i;g&&(o=`perspective(${g}px) ${o}`),v&&(o+=`rotate(${v}deg) `),b&&(o+=`rotateX(${b}deg) `),_&&(o+=`rotateY(${_}deg) `),S&&(o+=`skewX(${S}deg) `),T&&(o+=`skewY(${T}deg) `)}const m=n.x.scale*s.x,h=n.y.scale*s.y;return(m!==1||h!==1)&&(o+=`scale(${m}, ${h})`),o||"none"}const $a={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ur=typeof window<"u"&&window.MotionDebug!==void 0,Sf=["","X","Y","Z"],dD={visibility:"hidden"},Sy=1e3;let fD=0;function Tf(n,s,i,o){const{latestValues:c}=s;c[n]&&(i[n]=c[n],s.setStaticValue(n,0),o&&(o[n]=0))}function tx(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:s}=n.options;if(!s)return;const i=a_(s);if(window.MotionHasOptimisedAnimation(i,"transform")){const{layout:c,layoutId:u}=n.options;window.MotionCancelOptimisedAnimation(i,"transform",ft,!(c||u))}const{parent:o}=n;o&&!o.hasCheckedOptimisedAppear&&tx(o)}function nx({attachResizeListener:n,defaultParent:s,measureScroll:i,checkIsScrollRoot:o,resetTransform:c}){return class{constructor(d={},m=s==null?void 0:s()){this.id=fD++,this.animationId=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.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ur&&($a.totalNodes=$a.resolvedTargetDeltas=$a.recalculatedProjection=0),this.nodes.forEach(hD),this.nodes.forEach(_D),this.nodes.forEach(xD),this.nodes.forEach(gD),ur&&window.MotionDebug.record($a)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=d,this.root=m?m.root||m:this,this.path=m?[...m.path,m]:[],this.parent=m,this.depth=m?m.depth+1:0;for(let h=0;h<this.path.length;h++)this.path[h].shouldResetTransform=!0;this.root===this&&(this.nodes=new QA)}addEventListener(d,m){return this.eventHandlers.has(d)||this.eventHandlers.set(d,new Vp),this.eventHandlers.get(d).add(m)}notifyListeners(d,...m){const h=this.eventHandlers.get(d);h&&h.notify(...m)}hasListeners(d){return this.eventHandlers.has(d)}mount(d,m=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=WA(d),this.instance=d;const{layoutId:h,layout:g,visualElement:v}=this.options;if(v&&!v.current&&v.mount(d),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),m&&(g||h)&&(this.isLayoutDirty=!0),n){let b;const _=()=>this.root.updateBlockedByResize=!1;n(d,()=>{this.root.updateBlockedByResize=!0,b&&b(),b=eD(_,250),mc.hasAnimatedSinceResize&&(mc.hasAnimatedSinceResize=!1,this.nodes.forEach(ky))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&v&&(h||g)&&this.addEventListener("didUpdate",({delta:b,hasLayoutChanged:_,hasRelativeTargetChanged:S,layout:T})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const N=this.options.transition||v.getDefaultTransition()||ND,{onLayoutAnimationStart:j,onLayoutAnimationComplete:w}=v.getProps(),C=!this.targetLayout||!ex(this.targetLayout,T)||S,A=!_&&S;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||A||_&&(C||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(b,A);const M={...Up(N,"layout"),onPlay:j,onComplete:w};(v.shouldReduceMotion||this.options.layoutRoot)&&(M.delay=0,M.type=!1),this.startAnimation(M)}else _||ky(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=T})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const d=this.getStack();d&&d.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ha(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.forEach(SD),this.animationId++)}getTransformTemplate(){const{visualElement:d}=this.options;return d&&d.getProps().transformTemplate}willUpdate(d=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tx(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let v=0;v<this.path.length;v++){const b=this.path[v];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}const{layoutId:m,layout:h}=this.options;if(m===void 0&&!h)return;const g=this.getTransformTemplate();this.prevTransformTemplateValue=g?g(this.latestValues,""):void 0,this.updateSnapshot(),d&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Ty);return}this.isUpdating||this.nodes.forEach(yD),this.isUpdating=!1,this.nodes.forEach(bD),this.nodes.forEach(pD),this.nodes.forEach(mD),this.clearAllSnapshots();const m=is.now();Kt.delta=Is(0,1e3/60,m-Kt.timestamp),Kt.timestamp=m,Kt.isProcessing=!0,mf.update.process(Kt),mf.preRender.process(Kt),mf.render.process(Kt),Kt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Cp.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(vD),this.sharedNodes.forEach(TD)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ft.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ft.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h<this.path.length;h++)this.path[h].updateScroll();const d=this.layout;this.layout=this.measure(!1),this.layoutCorrected=jt(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:m}=this.options;m&&m.notify("LayoutMeasure",this.layout.layoutBox,d?d.layoutBox:void 0)}updateScroll(d="measure"){let m=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===d&&(m=!1),m){const h=o(this.instance);this.scroll={animationId:this.root.animationId,phase:d,isRoot:h,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:h}}}resetTransform(){if(!c)return;const d=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,m=this.projectionDelta&&!Q_(this.projectionDelta),h=this.getTransformTemplate(),g=h?h(this.latestValues,""):void 0,v=g!==this.prevTransformTemplateValue;d&&(m||Ga(this.latestValues)||v)&&(c(this.instance,g),this.shouldResetTransform=!1,this.scheduleRender())}measure(d=!0){const m=this.measurePageBox();let h=this.removeElementScroll(m);return d&&(h=this.removeTransform(h)),jD(h),{animationId:this.root.animationId,measuredBox:m,layoutBox:h,latestValues:{},source:this.id}}measurePageBox(){var d;const{visualElement:m}=this.options;if(!m)return jt();const h=m.measureViewportBox();if(!(((d=this.scroll)===null||d===void 0?void 0:d.wasRoot)||this.path.some(CD))){const{scroll:v}=this.root;v&&(Zi(h.x,v.offset.x),Zi(h.y,v.offset.y))}return h}removeElementScroll(d){var m;const h=jt();if(On(h,d),!((m=this.scroll)===null||m===void 0)&&m.wasRoot)return h;for(let g=0;g<this.path.length;g++){const v=this.path[g],{scroll:b,options:_}=v;v!==this.root&&b&&_.layoutScroll&&(b.wasRoot&&On(h,d),Zi(h.x,b.offset.x),Zi(h.y,b.offset.y))}return h}applyTransform(d,m=!1){const h=jt();On(h,d);for(let g=0;g<this.path.length;g++){const v=this.path[g];!m&&v.options.layoutScroll&&v.scroll&&v!==v.root&&Ki(h,{x:-v.scroll.offset.x,y:-v.scroll.offset.y}),Ga(v.latestValues)&&Ki(h,v.latestValues)}return Ga(this.latestValues)&&Ki(h,this.latestValues),h}removeTransform(d){const m=jt();On(m,d);for(let h=0;h<this.path.length;h++){const g=this.path[h];if(!g.instance||!Ga(g.latestValues))continue;tp(g.latestValues)&&g.updateSnapshot();const v=jt(),b=g.measurePageBox();On(v,b),gy(m,g.latestValues,g.snapshot?g.snapshot.layoutBox:void 0,v)}return Ga(this.latestValues)&&gy(m,this.latestValues),m}setTargetDelta(d){this.targetDelta=d,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(d){this.options={...this.options,...d,crossfade:d.crossfade!==void 0?d.crossfade:!0}}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!==Kt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(d=!1){var m;const h=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=h.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=h.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=h.isSharedProjectionDirty);const g=!!this.resumingFrom||this!==h;if(!(d||g&&this.isSharedProjectionDirty||this.isProjectionDirty||!((m=this.parent)===null||m===void 0)&&m.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:b,layoutId:_}=this.options;if(!(!this.layout||!(b||_))){if(this.resolvedRelativeTargetAt=Kt.timestamp,!this.targetDelta&&!this.relativeTarget){const S=this.getClosestProjectingParent();S&&S.layout&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=jt(),this.relativeTargetOrigin=jt(),vr(this.relativeTargetOrigin,this.layout.layoutBox,S.layout.layoutBox),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=jt(),this.targetWithTransforms=jt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),DA(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):On(this.target,this.layout.layoutBox),Z_(this.target,this.targetDelta)):On(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const S=this.getClosestProjectingParent();S&&!!S.resumingFrom==!!this.resumingFrom&&!S.options.layoutScroll&&S.target&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=jt(),this.relativeTargetOrigin=jt(),vr(this.relativeTargetOrigin,this.target,S.target),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}ur&&$a.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||tp(this.parent.latestValues)||F_(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var d;const m=this.getLead(),h=!!this.resumingFrom||this!==m;let g=!0;if((this.isProjectionDirty||!((d=this.parent)===null||d===void 0)&&d.isProjectionDirty)&&(g=!1),h&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(g=!1),this.resolvedRelativeTargetAt===Kt.timestamp&&(g=!1),g)return;const{layout:v,layoutId:b}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(v||b))return;On(this.layoutCorrected,this.layout.layoutBox);const _=this.treeScale.x,S=this.treeScale.y;PA(this.layoutCorrected,this.treeScale,this.path,h),m.layout&&!m.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(m.target=m.layout.layoutBox,m.targetWithTransforms=jt());const{target:T}=m;if(!T){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(py(this.prevProjectionDelta.x,this.projectionDelta.x),py(this.prevProjectionDelta.y,this.projectionDelta.y)),gr(this.projectionDelta,this.layoutCorrected,T,this.latestValues),(this.treeScale.x!==_||this.treeScale.y!==S||!xy(this.projectionDelta.x,this.prevProjectionDelta.x)||!xy(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",T)),ur&&$a.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(d=!0){var m;if((m=this.options.visualElement)===null||m===void 0||m.scheduleRender(),d){const h=this.getStack();h&&h.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Fi(),this.projectionDelta=Fi(),this.projectionDeltaWithTransform=Fi()}setAnimationOrigin(d,m=!1){const h=this.snapshot,g=h?h.latestValues:{},v={...this.latestValues},b=Fi();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!m;const _=jt(),S=h?h.source:void 0,T=this.layout?this.layout.source:void 0,N=S!==T,j=this.getStack(),w=!j||j.members.length<=1,C=!!(N&&!w&&this.options.crossfade===!0&&!this.path.some(wD));this.animationProgress=0;let A;this.mixTargetDelta=M=>{const D=M/1e3;wy(b.x,d.x,D),wy(b.y,d.y,D),this.setTargetDelta(b),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(vr(_,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kD(this.relativeTarget,this.relativeTargetOrigin,_,D),A&&lD(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=jt()),On(A,this.relativeTarget)),N&&(this.animationValues=v,nD(v,g,this.latestValues,D,C,w)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=D},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(d){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ha(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ft.update(()=>{mc.hasAnimatedSinceResize=!0,this.currentAnimation=JA(0,Sy,{...d,onUpdate:m=>{this.mixTargetDelta(m),d.onUpdate&&d.onUpdate(m)},onComplete:()=>{d.onComplete&&d.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const d=this.getStack();d&&d.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Sy),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const d=this.getLead();let{targetWithTransforms:m,target:h,layout:g,latestValues:v}=d;if(!(!m||!h||!g)){if(this!==d&&this.layout&&g&&sx(this.options.animationType,this.layout.layoutBox,g.layoutBox)){h=this.target||jt();const b=xn(this.layout.layoutBox.x);h.x.min=d.target.x.min,h.x.max=h.x.min+b;const _=xn(this.layout.layoutBox.y);h.y.min=d.target.y.min,h.y.max=h.y.min+_}On(m,h),Ki(m,v),gr(this.projectionDeltaWithTransform,this.layoutCorrected,m,v)}}registerSharedNode(d,m){this.sharedNodes.has(d)||this.sharedNodes.set(d,new cD),this.sharedNodes.get(d).add(m);const g=m.options.initialPromotionConfig;m.promote({transition:g?g.transition:void 0,preserveFollowOpacity:g&&g.shouldPreserveFollowOpacity?g.shouldPreserveFollowOpacity(m):void 0})}isLead(){const d=this.getStack();return d?d.lead===this:!0}getLead(){var d;const{layoutId:m}=this.options;return m?((d=this.getStack())===null||d===void 0?void 0:d.lead)||this:this}getPrevLead(){var d;const{layoutId:m}=this.options;return m?(d=this.getStack())===null||d===void 0?void 0:d.prevLead:void 0}getStack(){const{layoutId:d}=this.options;if(d)return this.root.sharedNodes.get(d)}promote({needsReset:d,transition:m,preserveFollowOpacity:h}={}){const g=this.getStack();g&&g.promote(this,h),d&&(this.projectionDelta=void 0,this.needsReset=!0),m&&this.setOptions({transition:m})}relegate(){const d=this.getStack();return d?d.relegate(this):!1}resetSkewAndRotation(){const{visualElement:d}=this.options;if(!d)return;let m=!1;const{latestValues:h}=d;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(m=!0),!m)return;const g={};h.z&&Tf("z",d,g,this.animationValues);for(let v=0;v<Sf.length;v++)Tf(`rotate${Sf[v]}`,d,g,this.animationValues),Tf(`skew${Sf[v]}`,d,g,this.animationValues);d.render();for(const v in g)d.setStaticValue(v,g[v]),this.animationValues&&(this.animationValues[v]=g[v]);d.scheduleRender()}getProjectionStyles(d){var m,h;if(!this.instance||this.isSVG)return;if(!this.isVisible)return dD;const g={visibility:""},v=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,g.opacity="",g.pointerEvents=fc(d==null?void 0:d.pointerEvents)||"",g.transform=v?v(this.latestValues,""):"none",g;const b=this.getLead();if(!this.projectionDelta||!this.layout||!b.target){const N={};return this.options.layoutId&&(N.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,N.pointerEvents=fc(d==null?void 0:d.pointerEvents)||""),this.hasProjected&&!Ga(this.latestValues)&&(N.transform=v?v({},""):"none",this.hasProjected=!1),N}const _=b.animationValues||b.latestValues;this.applyTransformsToTarget(),g.transform=uD(this.projectionDeltaWithTransform,this.treeScale,_),v&&(g.transform=v(_,g.transform));const{x:S,y:T}=this.projectionDelta;g.transformOrigin=`${S.origin*100}% ${T.origin*100}% 0`,b.animationValues?g.opacity=b===this?(h=(m=_.opacity)!==null&&m!==void 0?m:this.latestValues.opacity)!==null&&h!==void 0?h:1:this.preserveOpacity?this.latestValues.opacity:_.opacityExit:g.opacity=b===this?_.opacity!==void 0?_.opacity:"":_.opacityExit!==void 0?_.opacityExit:0;for(const N in _c){if(_[N]===void 0)continue;const{correct:j,applyTo:w}=_c[N],C=g.transform==="none"?_[N]:j(_[N],b);if(w){const A=w.length;for(let M=0;M<A;M++)g[w[M]]=C}else g[N]=C}return this.options.layoutId&&(g.pointerEvents=b===this?fc(d==null?void 0:d.pointerEvents)||"":"none"),g}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(d=>{var m;return(m=d.currentAnimation)===null||m===void 0?void 0:m.stop()}),this.root.nodes.forEach(Ty),this.root.sharedNodes.clear()}}}function pD(n){n.updateLayout()}function mD(n){var s;const i=((s=n.resumeFrom)===null||s===void 0?void 0:s.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&i&&n.hasListeners("didUpdate")){const{layoutBox:o,measuredBox:c}=n.layout,{animationType:u}=n.options,d=i.source!==n.layout.source;u==="size"?Bn(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(_);_.min=o[b].min,_.max=_.min+S}):sx(u,i.layoutBox,o)&&Bn(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(o[b]);_.max=_.min+S,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[b].max=n.relativeTarget[b].min+S)});const m=Fi();gr(m,o,i.layoutBox);const h=Fi();d?gr(h,n.applyTransform(c,!0),i.measuredBox):gr(h,o,i.layoutBox);const g=!Q_(m);let v=!1;if(!n.resumeFrom){const b=n.getClosestProjectingParent();if(b&&!b.resumeFrom){const{snapshot:_,layout:S}=b;if(_&&S){const T=jt();vr(T,i.layoutBox,_.layoutBox);const N=jt();vr(N,o,S.layoutBox),ex(T,N)||(v=!0),b.options.layoutRoot&&(n.relativeTarget=N,n.relativeTargetOrigin=T,n.relativeParent=b)}}}n.notifyListeners("didUpdate",{layout:o,snapshot:i,delta:h,layoutDelta:m,hasLayoutChanged:g,hasRelativeTargetChanged:v})}else if(n.isLead()){const{onExitComplete:o}=n.options;o&&o()}n.options.transition=void 0}function hD(n){ur&&$a.totalNodes++,n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function gD(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function vD(n){n.clearSnapshot()}function Ty(n){n.clearMeasurements()}function yD(n){n.isLayoutDirty=!1}function bD(n){const{visualElement:s}=n.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),n.resetTransform()}function ky(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function _D(n){n.resolveTargetDelta()}function xD(n){n.calcProjection()}function SD(n){n.resetSkewAndRotation()}function TD(n){n.removeLeadSnapshot()}function wy(n,s,i){n.translate=vt(s.translate,0,i),n.scale=vt(s.scale,1,i),n.origin=s.origin,n.originPoint=s.originPoint}function Ny(n,s,i,o){n.min=vt(s.min,i.min,o),n.max=vt(s.max,i.max,o)}function kD(n,s,i,o){Ny(n.x,s.x,i.x,o),Ny(n.y,s.y,i.y,o)}function wD(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const ND={duration:.45,ease:[.4,0,.1,1]},jy=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Cy=jy("applewebkit/")&&!jy("chrome/")?Math.round:_n;function Ey(n){n.min=Cy(n.min),n.max=Cy(n.max)}function jD(n){Ey(n.x),Ey(n.y)}function sx(n,s,i){return n==="position"||n==="preserve-aspect"&&!AA(_y(s),_y(i),.2)}function CD(n){var s;return n!==n.root&&((s=n.scroll)===null||s===void 0?void 0:s.wasRoot)}const ED=nx({attachResizeListener:(n,s)=>jr(n,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),kf={current:void 0},ax=nx({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!kf.current){const n=new ED({});n.mount(window),n.setOptions({layoutScroll:!0}),kf.current=n}return kf.current},resetTransform:(n,s)=>{n.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),AD={pan:{Feature:FA},drag:{Feature:$A,ProjectionNode:ax,MeasureLayout:J_}};function DD(n,s,i){var o;if(n instanceof Element)return[n];if(typeof n=="string"){let c=document;const u=(o=void 0)!==null&&o!==void 0?o:c.querySelectorAll(n);return u?Array.from(u):[]}return Array.from(n)}function ix(n,s){const i=DD(n),o=new AbortController,c={passive:!0,...s,signal:o.signal};return[i,c,()=>o.abort()]}function Ay(n){return s=>{s.pointerType==="touch"||P_()||n(s)}}function RD(n,s,i={}){const[o,c,u]=ix(n,i),d=Ay(m=>{const{target:h}=m,g=s(m);if(typeof g!="function"||!h)return;const v=Ay(b=>{g(b),h.removeEventListener("pointerleave",v)});h.addEventListener("pointerleave",v,c)});return o.forEach(m=>{m.addEventListener("pointerenter",d,c)}),u}function Dy(n,s,i){const{props:o}=n;n.animationState&&o.whileHover&&n.animationState.setActive("whileHover",i==="Start");const c="onHover"+i,u=o[c];u&&ft.postRender(()=>u(s,Mr(s)))}class MD extends ba{mount(){const{current:s}=this.node;s&&(this.unmount=RD(s,i=>(Dy(this.node,i,"Start"),o=>Dy(this.node,o,"End"))))}unmount(){}}class OD extends ba{constructor(){super(...arguments),this.isActive=!1}onFocus(){let s=!1;try{s=this.node.current.matches(":focus-visible")}catch{s=!0}!s||!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=Rr(jr(this.node.current,"focus",()=>this.onFocus()),jr(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const ox=(n,s)=>s?n===s?!0:ox(n,s.parentElement):!1,ID=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function BD(n){return ID.has(n.tagName)||n.tabIndex!==-1}const dr=new WeakSet;function Ry(n){return s=>{s.key==="Enter"&&n(s)}}function wf(n,s){n.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const LD=(n,s)=>{const i=n.currentTarget;if(!i)return;const o=Ry(()=>{if(dr.has(i))return;wf(i,"down");const c=Ry(()=>{wf(i,"up")}),u=()=>wf(i,"cancel");i.addEventListener("keyup",c,s),i.addEventListener("blur",u,s)});i.addEventListener("keydown",o,s),i.addEventListener("blur",()=>i.removeEventListener("keydown",o),s)};function My(n){return em(n)&&!P_()}function UD(n,s,i={}){const[o,c,u]=ix(n,i),d=m=>{const h=m.currentTarget;if(!My(m)||dr.has(h))return;dr.add(h);const g=s(m),v=(S,T)=>{window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",_),!(!My(S)||!dr.has(h))&&(dr.delete(h),typeof g=="function"&&g(S,{success:T}))},b=S=>{v(S,i.useGlobalTarget||ox(h,S.target))},_=S=>{v(S,!1)};window.addEventListener("pointerup",b,c),window.addEventListener("pointercancel",_,c)};return o.forEach(m=>{!BD(m)&&m.getAttribute("tabindex")===null&&(m.tabIndex=0),(i.useGlobalTarget?window:m).addEventListener("pointerdown",d,c),m.addEventListener("focus",g=>LD(g,c),c)}),u}function Oy(n,s,i){const{props:o}=n;n.animationState&&o.whileTap&&n.animationState.setActive("whileTap",i==="Start");const c="onTap"+(i==="End"?"":i),u=o[c];u&&ft.postRender(()=>u(s,Mr(s)))}class zD extends ba{mount(){const{current:s}=this.node;s&&(this.unmount=UD(s,i=>(Oy(this.node,i,"Start"),(o,{success:c})=>Oy(this.node,o,c?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const sp=new WeakMap,Nf=new WeakMap,PD=n=>{const s=sp.get(n.target);s&&s(n)},VD=n=>{n.forEach(PD)};function HD({root:n,...s}){const i=n||document;Nf.has(i)||Nf.set(i,{});const o=Nf.get(i),c=JSON.stringify(s);return o[c]||(o[c]=new IntersectionObserver(VD,{root:n,...s})),o[c]}function qD(n,s,i){const o=HD(s);return sp.set(n,i),o.observe(n),()=>{sp.delete(n),o.unobserve(n)}}const GD={some:0,all:1};class $D extends ba{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:s={}}=this.node.getProps(),{root:i,margin:o,amount:c="some",once:u}=s,d={root:i?i.current:void 0,rootMargin:o,threshold:typeof c=="number"?c:GD[c]},m=h=>{const{isIntersecting:g}=h;if(this.isInView===g||(this.isInView=g,u&&!g&&this.hasEnteredView))return;g&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",g);const{onViewportEnter:v,onViewportLeave:b}=this.node.getProps(),_=g?v:b;_&&_(h)};return qD(this.node.current,d,m)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:s,prevProps:i}=this.node;["amount","margin","root"].some(FD(s,i))&&this.startObserver()}unmount(){}}function FD({viewport:n={}},{viewport:s={}}={}){return i=>n[i]!==s[i]}const ZD={inView:{Feature:$D},tap:{Feature:zD},focus:{Feature:OD},hover:{Feature:MD}},KD={layout:{ProjectionNode:ax,MeasureLayout:J_}},Nc={current:null},tm={current:!1};function rx(){if(tm.current=!0,!!kp)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),s=()=>Nc.current=n.matches;n.addListener(s),s()}else Nc.current=!1}const YD=[...C_,Xt,ga],JD=n=>YD.find(j_(n)),Iy=new WeakMap;function WD(n,s,i){for(const o in s){const c=s[o],u=i[o];if(Qt(c))n.addValue(o,c);else if(Qt(u))n.addValue(o,wr(c,{owner:n}));else if(u!==c)if(n.hasValue(o)){const d=n.getValue(o);d.liveStyle===!0?d.jump(c):d.hasAnimated||d.set(c)}else{const d=n.getStaticValue(o);n.addValue(o,wr(d!==void 0?d:c,{owner:n}))}}for(const o in i)s[o]===void 0&&n.removeValue(o);return s}const By=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class XD{scrapeMotionValuesFromProps(s,i,o){return{}}constructor({parent:s,props:i,presenceContext:o,reducedMotionConfig:c,blockInitialAnimation:u,visualState:d},m={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Jp,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const S=is.now();this.renderScheduledAt<S&&(this.renderScheduledAt=S,ft.render(this.render,!1,!0))};const{latestValues:h,renderState:g,onUpdate:v}=d;this.onUpdate=v,this.latestValues=h,this.baseTarget={...h},this.initialValues=i.initial?{...h}:{},this.renderState=g,this.parent=s,this.props=i,this.presenceContext=o,this.depth=s?s.depth+1:0,this.reducedMotionConfig=c,this.options=m,this.blockInitialAnimation=!!u,this.isControllingVariants=Lc(i),this.isVariantNode=Pb(i),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:b,..._}=this.scrapeMotionValuesFromProps(i,{},this);for(const S in _){const T=_[S];h[S]!==void 0&&Qt(T)&&T.set(h[S],!1)}}mount(s){this.current=s,Iy.set(s,this),this.projection&&!this.projection.instance&&this.projection.mount(s),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((i,o)=>this.bindToMotionValue(o,i)),tm.current||rx(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Nc.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Iy.delete(this.current),this.projection&&this.projection.unmount(),ha(this.notifyUpdate),ha(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const i=this.features[s];i&&(i.unmount(),i.isMounted=!1)}this.current=null}bindToMotionValue(s,i){this.valueSubscriptions.has(s)&&this.valueSubscriptions.get(s)();const o=ni.has(s),c=i.on("change",m=>{this.latestValues[s]=m,this.props.onUpdate&&ft.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0)}),u=i.on("renderRequest",this.scheduleRender);let d;window.MotionCheckAppearSync&&(d=window.MotionCheckAppearSync(this,s,i)),this.valueSubscriptions.set(s,()=>{c(),u(),d&&d(),i.owner&&i.stop()})}sortNodePosition(s){return!this.current||!this.sortInstanceNodePosition||this.type!==s.type?0:this.sortInstanceNodePosition(this.current,s.current)}updateFeatures(){let s="animation";for(s in to){const i=to[s];if(!i)continue;const{isEnabled:o,Feature:c}=i;if(!this.features[s]&&c&&o(this.props)&&(this.features[s]=new c(this)),this.features[s]){const u=this.features[s];u.isMounted?u.update():(u.mount(),u.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):jt()}getStaticValue(s){return this.latestValues[s]}setStaticValue(s,i){this.latestValues[s]=i}update(s,i){(s.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=s,this.prevPresenceContext=this.presenceContext,this.presenceContext=i;for(let o=0;o<By.length;o++){const c=By[o];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);const u="on"+c,d=s[u];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=WD(this,this.scrapeMotionValuesFromProps(s,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(s){return this.props.variants?this.props.variants[s]: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(s){const i=this.getClosestVariantNode();if(i)return i.variantChildren&&i.variantChildren.add(s),()=>i.variantChildren.delete(s)}addValue(s,i){const o=this.values.get(s);i!==o&&(o&&this.removeValue(s),this.bindToMotionValue(s,i),this.values.set(s,i),this.latestValues[s]=i.get())}removeValue(s){this.values.delete(s);const i=this.valueSubscriptions.get(s);i&&(i(),this.valueSubscriptions.delete(s)),delete this.latestValues[s],this.removeValueFromRenderState(s,this.renderState)}hasValue(s){return this.values.has(s)}getValue(s,i){if(this.props.values&&this.props.values[s])return this.props.values[s];let o=this.values.get(s);return o===void 0&&i!==void 0&&(o=wr(i===null?void 0:i,{owner:this}),this.addValue(s,o)),o}readValue(s,i){var o;let c=this.latestValues[s]!==void 0||!this.current?this.latestValues[s]:(o=this.getBaseTargetFromProps(this.props,s))!==null&&o!==void 0?o:this.readValueFromInstance(this.current,s,this.options);return c!=null&&(typeof c=="string"&&(w_(c)||g_(c))?c=parseFloat(c):!JD(c)&&ga.test(i)&&(c=S_(s,i)),this.setBaseTarget(s,Qt(c)?c.get():c)),Qt(c)?c.get():c}setBaseTarget(s,i){this.baseTarget[s]=i}getBaseTarget(s){var i;const{initial:o}=this.props;let c;if(typeof o=="string"||typeof o=="object"){const d=Ap(this.props,o,(i=this.presenceContext)===null||i===void 0?void 0:i.custom);d&&(c=d[s])}if(o&&c!==void 0)return c;const u=this.getBaseTargetFromProps(this.props,s);return u!==void 0&&!Qt(u)?u:this.initialValues[s]!==void 0&&c===void 0?void 0:this.baseTarget[s]}on(s,i){return this.events[s]||(this.events[s]=new Vp),this.events[s].add(i)}notify(s,...i){this.events[s]&&this.events[s].notify(...i)}}class lx extends XD{constructor(){super(...arguments),this.KeyframeResolver=E_}sortInstanceNodePosition(s,i){return s.compareDocumentPosition(i)&2?1:-1}getBaseTargetFromProps(s,i){return s.style?s.style[i]:void 0}removeValueFromRenderState(s,{vars:i,style:o}){delete i[s],delete o[s]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:s}=this.props;Qt(s)&&(this.childSubscription=s.on("change",i=>{this.current&&(this.current.textContent=`${i}`)}))}}function QD(n){return window.getComputedStyle(n)}class eR extends lx{constructor(){super(...arguments),this.type="html",this.renderInstance=Yb}readValueFromInstance(s,i){if(ni.has(i)){const o=Yp(i);return o&&o.default||0}else{const o=QD(s),c=(Fb(i)?o.getPropertyValue(i):o[i])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(s,{transformPagePoint:i}){return K_(s,i)}build(s,i,o){Mp(s,i,o.transformTemplate)}scrapeMotionValuesFromProps(s,i,o){return Lp(s,i,o)}}class tR extends lx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=jt}getBaseTargetFromProps(s,i){return s[i]}readValueFromInstance(s,i){if(ni.has(i)){const o=Yp(i);return o&&o.default||0}return i=Jb.has(i)?i:jp(i),s.getAttribute(i)}scrapeMotionValuesFromProps(s,i,o){return Qb(s,i,o)}build(s,i,o){Op(s,i,this.isSVGTag,o.transformTemplate)}renderInstance(s,i,o,c){Wb(s,i,o,c)}mount(s){this.isSVGTag=Bp(s.tagName),super.mount(s)}}const nR=(n,s)=>Ep(n)?new tR(s):new eR(s,{allowProjection:n!==y.Fragment}),sR=EC({..._A,...ZD,...AD,...KD},nR),Ot=Gj(sR);function aR(){!tm.current&&rx();const[n]=y.useState(Nc.current);return n}const iR="_overlay_cmicx_1",oR="_dialog_cmicx_11",rR="_title_cmicx_30",lR="_description_cmicx_38",cR="_actions_cmicx_45",uR="_cancelButton_cmicx_52",dR="_confirmButton_cmicx_79",Pa={overlay:iR,dialog:oR,title:rR,description:lR,actions:cR,cancelButton:uR,confirmButton:dR};function Ja({isOpen:n,title:s,description:i,confirmLabel:o="Delete",onConfirm:c,onCancel:u}){const d=y.useId(),m=y.useId();return l.jsx(rs,{children:n&&l.jsx(Ot.div,{className:Pa.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:u,onKeyDown:h=>{h.key==="Escape"&&u()},role:"dialog","aria-modal":"true","aria-labelledby":d,"aria-describedby":i?m:void 0,children:l.jsxs(Ot.div,{className:Pa.dialog,initial:{opacity:0,scale:.93,y:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.93,y:-10},transition:{duration:.15,ease:[.16,1,.3,1]},onClick:h=>h.stopPropagation(),children:[l.jsx("h3",{id:d,className:Pa.title,children:s}),i&&l.jsx("p",{id:m,className:Pa.description,children:i}),l.jsxs("div",{className:Pa.actions,children:[l.jsx("button",{type:"button",className:Pa.cancelButton,onClick:u,autoFocus:!0,children:"Cancel"}),l.jsx("button",{type:"button",className:Pa.confirmButton,onClick:c,children:o})]})]})})})}const fR="_spinner_1uyt1_1",pR="_spin_1uyt1_1",mR="_sm_1uyt1_14",hR="_md_1uyt1_20",gR="_lg_1uyt1_26",vR="_xl_1uyt1_32",Ly={spinner:fR,spin:pR,sm:mR,md:hR,lg:gR,xl:vR};function cx({size:n="md",className:s,label:i="Loading",liveRegion:o=!1}){return l.jsx("span",{className:`${Ly.spinner} ${Ly[n]} ${s??""}`,role:o?"status":void 0,"aria-label":i,"aria-hidden":o?void 0:!0})}const yR="_splash_1bn1g_1",bR="_logo_1bn1g_11",Uy={splash:yR,logo:bR};function ux(){return l.jsxs("div",{className:Uy.splash,"data-testid":"splash-screen",children:[l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:Uy.logo}),l.jsx(cx,{size:"xl",label:"Loading Grackle",liveRegion:!0})]})}const dx=50;function _R(n,s,i,o,c=dx){return o?n<c:s-n-i<c}function xR(n,s){const i=s-n;return i>0?i:0}function SR({scrollRef:n,contentLength:s,isReversed:i}){const[o,c]=y.useState(!0),u=y.useRef(0),d=y.useRef(!1),m=y.useRef(0);y.useEffect(()=>{const g=n.current;if(!g)return;let v=!0;const b=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0;const _=_R(g.scrollTop,g.scrollHeight,g.clientHeight,i,dx);_!==v&&(v=_,c(_))}))};return g.addEventListener("scroll",b,{passive:!0}),()=>{g.removeEventListener("scroll",b),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[n,i]),y.useLayoutEffect(()=>{const g=n.current;!g||d.current||(d.current=!0,i?g.scrollTop=0:g.scrollTop=g.scrollHeight,c(!0))},[n,i]),y.useLayoutEffect(()=>{const g=n.current;if(g){if(i&&!o){const v=xR(u.current,g.scrollHeight);v>0&&(g.scrollTop+=v)}o&&(i?g.scrollTo({top:0,behavior:"smooth"}):g.scrollTo({top:g.scrollHeight,behavior:"smooth"})),u.current=g.scrollHeight}},[s,o,i,n]);const h=y.useCallback(()=>{const g=n.current;if(!g)return;const v=i?0:g.scrollHeight;g.scrollTo({top:v,behavior:"smooth"}),c(!0)},[n,i]);return{isAtAnchor:o,scrollToAnchor:h}}const TR="_panelContainer_1h5qd_1",kR="_emptyState_1h5qd_8",wR="_fadeIn_1h5qd_1",NR="_workspaceSummary_1h5qd_17",jR="_workspaceSummaryTitle_1h5qd_28",CR="_workspaceSummarySubtitle_1h5qd_32",ER="_header_1h5qd_36",AR="_headerInfo_1h5qd_71",DR="_killButton_1h5qd_77",RR="_headerTitle_1h5qd_106",MR="_headerActions_1h5qd_121",OR="_taskStatusBadge_1h5qd_128",IR="_taskBranch_1h5qd_137",BR="_taskBlockedBadge_1h5qd_143",LR="_btnPrimary_1h5qd_151",UR="_btnDanger_1h5qd_182",zR="_btnGhost_1h5qd_221",PR="_rejectInput_1h5qd_247",VR="_tabBar_1h5qd_277",HR="_tab_1h5qd_277",qR="_active_1h5qd_303",GR="_eventScroll_1h5qd_308",$R="_tabContent_1h5qd_314",FR="_noContext_1h5qd_319",ZR="_overviewContent_1h5qd_325",KR="_overviewDashboard_1h5qd_334",YR="_overviewHero_1h5qd_340",JR="_statusBadge_1h5qd_347",WR="_statusPending_1h5qd_359",XR="_statusAssigned_1h5qd_364",QR="_statusInProgress_1h5qd_369",eM="_statusReview_1h5qd_374",tM="_statusDone_1h5qd_379",nM="_statusFailed_1h5qd_384",sM="_statusWaitingInput_1h5qd_389",aM="_overviewBranchPill_1h5qd_394",iM="_branchLink_1h5qd_409",oM="_overviewSection_1h5qd_420",rM="_overviewLabel_1h5qd_426",lM="_overviewValue_1h5qd_433",cM="_overviewMuted_1h5qd_438",uM="_overviewMarkdown_1h5qd_444",dM="_envRow_1h5qd_513",fM="_envDot_1h5qd_519",pM="_envDotGreen_1h5qd_526",mM="_envDotYellow_1h5qd_530",hM="_envDotRed_1h5qd_534",gM="_envDotGray_1h5qd_538",vM="_depList_1h5qd_542",yM="_depItem_1h5qd_548",bM="_depBlocked_1h5qd_555",_M="_depDone_1h5qd_559",xM="_timeline_1h5qd_563",SM="_timelineRow_1h5qd_569",TM="_timelineKey_1h5qd_576",kM="_timelineValue_1h5qd_582",wM="_timelineDelta_1h5qd_586",NM="_reviewNotes_1h5qd_597",jM="_overviewDescription_1h5qd_608",CM="_waitingMessage_1h5qd_614",EM="_errorMessage_1h5qd_618",AM="_eventOverflowWarning_1h5qd_622",DM="_attemptSelector_1h5qd_636",RM="_attemptLabel_1h5qd_652",MM="_attemptButton_1h5qd_656",OM="_attemptActive_1h5qd_673",IM="_attemptStatus_1h5qd_679",BM="_emptyCta_1h5qd_685",LM="_ctaTitle_1h5qd_697",UM="_ctaDescription_1h5qd_703",zM="_ctaButton_1h5qd_710",PM="_ctaCreateForm_1h5qd_745",VM="_ctaCreateInput_1h5qd_751",HM="_ctaCreateOk_1h5qd_782",qM="_ctaLink_1h5qd_817",GM="_workspaceHeader_1h5qd_831",$M="_workspaceName_1h5qd_856",FM="_workspaceMeta_1h5qd_869",ZM="_metaRow_1h5qd_877",KM="_metaLabel_1h5qd_890",YM="_metaValue_1h5qd_905",JM="_archiveButton_1h5qd_915",WM="_repoLink_1h5qd_945",XM="_metaToggle_1h5qd_955",QM="_metaToggleArrow_1h5qd_976",e3="_metaToggleArrowOpen_1h5qd_981",t3="_progressBarContainer_1h5qd_985",n3="_progressBar_1h5qd_985",s3="_progressFill_1h5qd_1001",a3="_progressLabel_1h5qd_1008",i3="_metaTimestamps_1h5qd_1015",o3="_metaTimestamp_1h5qd_1015",U={panelContainer:TR,emptyState:kR,fadeIn:wR,workspaceSummary:NR,workspaceSummaryTitle:jR,workspaceSummarySubtitle:CR,header:ER,headerInfo:AR,killButton:DR,headerTitle:RR,headerActions:MR,taskStatusBadge:OR,taskBranch:IR,taskBlockedBadge:BR,btnPrimary:LR,btnDanger:UR,btnGhost:zR,rejectInput:PR,tabBar:VR,tab:HR,active:qR,eventScroll:GR,tabContent:$R,noContext:FR,overviewContent:ZR,overviewDashboard:KR,overviewHero:YR,statusBadge:JR,statusPending:WR,statusAssigned:XR,statusInProgress:QR,statusReview:eM,statusDone:tM,statusFailed:nM,statusWaitingInput:sM,overviewBranchPill:aM,branchLink:iM,overviewSection:oM,overviewLabel:rM,overviewValue:lM,overviewMuted:cM,overviewMarkdown:uM,envRow:dM,envDot:fM,envDotGreen:pM,envDotYellow:mM,envDotRed:hM,envDotGray:gM,depList:vM,depItem:yM,depBlocked:bM,depDone:_M,timeline:xM,timelineRow:SM,timelineKey:TM,timelineValue:kM,timelineDelta:wM,reviewNotes:NM,overviewDescription:jM,waitingMessage:CM,errorMessage:EM,eventOverflowWarning:AM,attemptSelector:DM,attemptLabel:RM,attemptButton:MM,attemptActive:OM,attemptStatus:IM,emptyCta:BM,ctaTitle:LM,ctaDescription:UM,ctaButton:zM,ctaCreateForm:PM,ctaCreateInput:VM,ctaCreateOk:HM,ctaLink:qM,workspaceHeader:GM,workspaceName:$M,workspaceMeta:FM,metaRow:ZM,metaLabel:KM,metaValue:YM,archiveButton:JM,repoLink:WM,metaToggle:XM,metaToggleArrow:QM,metaToggleArrowOpen:e3,progressBarContainer:t3,progressBar:n3,progressFill:s3,progressLabel:a3,metaTimestamps:i3,metaTimestamp:o3},r3="_wrapper_p24zt_1",l3="_scrollContainer_p24zt_9",c3="_toolbar_p24zt_15",u3="_directionToggle_p24zt_22",d3="_scrollToAnchor_p24zt_60",f3="_scrollToAnchorBottom_p24zt_84",p3="_scrollToAnchorTop_p24zt_88",Va={wrapper:r3,scrollContainer:l3,toolbar:c3,directionToggle:u3,scrollToAnchor:d3,scrollToAnchorBottom:f3,scrollToAnchorTop:p3},fx="grackle-stream-direction";function m3(){try{return localStorage.getItem(fx)==="reversed"}catch{return!1}}function h3({eventsDropped:n}){return n<=0?l.jsx(l.Fragment,{}):l.jsxs("div",{className:U.eventOverflowWarning,role:"alert",children:["⚠"," ",n.toLocaleString()," older event",n===1?"":"s"," were dropped — only the most recent 5,000 are shown. Full history is available in the session log."]})}function nm({events:n,eventsDropped:s,emptyState:i}){const o=y.useRef(null),[c,u]=y.useState(m3),d=aR(),m=y.useMemo(()=>c?[...n].reverse():n,[n,c]),{isAtAnchor:h,scrollToAnchor:g}=SR({scrollRef:o,contentLength:n.length,isReversed:c}),v=()=>{const S=!c;u(S);try{localStorage.setItem(fx,S?"reversed":"default")}catch{}},b=d?0:.2,_=c?-8:8;return l.jsxs("div",{className:Va.wrapper,children:[l.jsx("div",{className:Va.toolbar,children:l.jsx("button",{className:Va.directionToggle,onClick:v,title:c?"Showing newest first":"Showing oldest first","aria-label":c?"Switch to newest at bottom":"Switch to newest at top","data-testid":"direction-toggle",children:c?"↓":"↑"})}),l.jsxs("div",{ref:o,className:Va.scrollContainer,"data-testid":"event-stream-scroll",children:[n.length===0&&i,l.jsx(h3,{eventsDropped:s}),l.jsx(rs,{initial:!1,children:m.map((S,T)=>{const N=c?n.length-1-T:T;return l.jsx(Ot.div,{initial:{opacity:0,y:_},animate:{opacity:1,y:0},transition:{duration:b,ease:"easeOut"},children:l.jsx(Rj,{event:S,toolUseCtx:S.toolUseCtx})},`${S.sessionId}-${S.timestamp}-${N}`)})})]}),l.jsx(rs,{children:!h&&l.jsxs(Ot.button,{className:`${Va.scrollToAnchor} ${c?Va.scrollToAnchorTop:Va.scrollToAnchorBottom}`,onClick:g,initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15},"aria-label":"Scroll to latest","data-testid":"scroll-to-anchor",children:[c?"↑":"↓"," New events"]})})]})}function sm(n){const{value:s,onSave:i,validate:o,fieldId:c,activeFieldId:u,onActivate:d,enterToSave:m=!0,trimOnSave:h=!0}=n,[g,v]=y.useState(""),[b,_]=y.useState(""),S=y.useRef(!1),T=u===c,N=y.useCallback(H=>{v(H),_("")},[]),j=y.useCallback(()=>{_("")},[]),w=y.useCallback(()=>{S.current=!1,d==null||d(null),v(""),_("")},[d]),C=y.useCallback(()=>{const H=h?g.trim():g;if(o){const Z=o(g);if(Z){_(Z);return}}const z=h?s.trim():s;if(H===z){w();return}i(H),w()},[g,s,h,o,i,w]),A=y.useCallback(()=>{S.current=!0,d==null||d(c),v(s),_("")},[c,s,d]),M=y.useCallback(H=>{if(S.current){S.current=!1;return}H.relatedTarget instanceof HTMLElement&&H.relatedTarget.dataset.editAction===c||C()},[c,C]),D=y.useCallback(H=>{H.key==="Escape"?w():H.key==="Enter"&&m&&C()},[w,m,C]),E=(()=>{if(!T)return!1;const H=h?s.trim():s;return(h?g.trim():g)!==H})();return y.useEffect(()=>{!T&&(g!==""||b!=="")&&(v(""),_(""))},[T,g,b]),{isEditing:T,draft:g,error:b,isDirty:E,startEdit:A,cancelEdit:w,save:C,setDraft:N,clearError:j,handleBlur:M,handleKeyDown:D,ignoreInitialBlurRef:S}}const g3="_editFieldWrapper_yuzty_1",v3="_editInput_yuzty_10",y3="_editTextarea_yuzty_42",b3="_editSelect_yuzty_78",_3="_editError_yuzty_111",x3="_editInputInvalid_yuzty_118",S3="_editHint_yuzty_123",T3="_unsavedDot_yuzty_132",k3="_metaValueClickable_yuzty_140",w3="_editButton_yuzty_159",N3="_metaPlaceholder_yuzty_175",j3="_worktreeToggle_yuzty_180",Ye={editFieldWrapper:g3,editInput:v3,editTextarea:y3,editSelect:b3,editError:_3,editInputInvalid:x3,editHint:S3,unsavedDot:T3,metaValueClickable:k3,editButton:w3,metaPlaceholder:N3,worktreeToggle:j3};function Yt(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="text",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,maxLength:b,ariaLabel:_,"data-testid":S}=n,T=y.useRef(null),N=sm({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!0,trimOnSave:!0});if(y.useEffect(()=>{if(N.isEditing){const w=window.setTimeout(()=>{var C;(C=T.current)==null||C.focus()},0);return()=>window.clearTimeout(w)}},[N.isEditing]),c==="create"){const w=A=>{h==null||h(A.target.value)},C=o==null?void 0:o(s);return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("input",{className:`${Ye.editInput} ${C?Ye.editInputInvalid:""}`,value:s,onChange:w,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),C&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:C})]})}if(N.isEditing)return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("input",{ref:T,className:`${Ye.editInput} ${N.error?Ye.editInputInvalid:""}`,value:N.draft,onChange:w=>N.setDraft(w.target.value),onBlur:N.handleBlur,onKeyDown:N.handleKeyDown,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),N.isDirty&&l.jsx("span",{className:Ye.unsavedDot,title:"Unsaved changes"}),N.error&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:N.error}),l.jsx("span",{className:Ye.editHint,children:"Enter to save · Esc to cancel"})]});const j=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Ye.metaValueClickable,onClick:()=>N.startEdit(),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),N.startEdit())},title:"Click to edit","aria-label":_,"data-testid":S?`${S}-button`:void 0,children:[j!==void 0?j:s?l.jsx("span",{children:s}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function ap(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="textarea",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=sm({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});if(y.useEffect(()=>{if(T.isEditing){const j=window.setTimeout(()=>{var w;(w=S.current)==null||w.focus()},0);return()=>window.clearTimeout(j)}},[T.isEditing]),c==="create"){const j=C=>{h==null||h(C.target.value)},w=o==null?void 0:o(s);return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("textarea",{className:`${Ye.editTextarea} ${w?Ye.editInputInvalid:""}`,value:s,onChange:j,placeholder:v,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),w&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:w})]})}if(T.isEditing)return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("textarea",{ref:S,className:`${Ye.editTextarea} ${T.error?Ye.editInputInvalid:""}`,value:T.draft,onChange:j=>T.setDraft(j.target.value),onBlur:T.handleBlur,onKeyDown:T.handleKeyDown,title:b,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),T.isDirty&&l.jsx("span",{className:Ye.unsavedDot,title:"Unsaved changes"}),T.error&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:T.error}),l.jsx("span",{className:Ye.editHint,children:"Tab to save · Esc to cancel"})]});const N=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Ye.metaValueClickable,onClick:()=>T.startEdit(),onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),T.startEdit())},title:"Click to edit","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[N!==void 0?N:s?l.jsx("span",{children:s}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function jc(n){var A;const{value:s,onSave:i,mode:o="edit",options:c,fieldId:u="select",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=sm({value:s,onSave:i,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});y.useEffect(()=>{if(T.isEditing){const M=window.setTimeout(()=>{var D;(D=S.current)==null||D.focus()},0);return()=>window.clearTimeout(M)}},[T.isEditing]);const N=y.useCallback(M=>{const D=M.target.value;T.ignoreInitialBlurRef.current=!1,D!==s&&i(D),T.cancelEdit()},[s,i,T]),j=y.useCallback(M=>{if(T.ignoreInitialBlurRef.current){T.ignoreInitialBlurRef.current=!1;return}M.relatedTarget instanceof HTMLElement&&M.relatedTarget.dataset.editAction===u||T.cancelEdit()},[u,T]);if(o==="create")return l.jsx("select",{className:Ye.editSelect,value:s,onChange:M=>h==null?void 0:h(M.target.value),"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))});if(T.isEditing)return l.jsx("select",{ref:S,className:Ye.editSelect,value:T.draft,onChange:N,onBlur:j,title:b,"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))});const w=g==null?void 0:g(s),C=(A=c.find(M=>M.value===s))==null?void 0:A.label;return l.jsxs("button",{type:"button",className:Ye.metaValueClickable,onClick:()=>T.startEdit(),title:"Click to change","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[w!==void 0?w:C?l.jsx("span",{children:C}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function C3(n){const{checked:s,onChange:i,label:o,ariaLabel:c,"data-testid":u}=n;return l.jsxs("label",{className:Ye.worktreeToggle,"data-testid":u,children:[l.jsx("input",{type:"checkbox",checked:s,onChange:d=>i(d.target.checked),"aria-label":c}),l.jsx("span",{children:o})]})}const E3="_envRow_1e1r5_1",A3="_envDot_1e1r5_7",D3="_envDotGreen_1e1r5_14",R3="_envDotYellow_1e1r5_18",M3="_envDotRed_1e1r5_22",O3="_envDotGray_1e1r5_26",Yi={envRow:E3,envDot:A3,envDotGreen:D3,envDotYellow:R3,envDotRed:M3,envDotGray:O3};function I3(n){const s=n.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?Yi.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?Yi.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?Yi.envDotRed:Yi.envDotGray}function B3(n){const{value:s,onSave:i,environments:o,allowNone:c=!1,fieldId:u="environment",activeFieldId:d,onActivate:m,placeholder:h="No environment",ariaLabel:g="Environment","data-testid":v}=n,b=o.find(T=>T.id===s),_=[...c?[{value:"",label:"None"}]:[],...o.map(T=>({value:T.id,label:T.displayName}))],S=()=>{if(b)return l.jsxs("span",{className:Yi.envRow,children:[l.jsx("span",{className:`${Yi.envDot} ${I3(b.status)}`}),b.displayName]})};return l.jsx(jc,{value:s,onSave:i,options:_,fieldId:u,activeFieldId:d,onActivate:m,renderDisplay:S,placeholder:h,ariaLabel:g,"data-testid":v})}const L3="_nav_1snmp_1",U3="_searchForm_1snmp_8",z3="_searchInput_1snmp_15",P3="_searchButton_1snmp_33",V3="_clearButton_1snmp_68",H3="_workspaceSelect_1snmp_85",q3="_listHeader_1snmp_99",G3="_nodeList_1snmp_108",$3="_nodeItem_1snmp_116",F3="_indicator_1snmp_129",Z3="_label_1snmp_136",K3="_badge_1snmp_145",In={nav:L3,searchForm:U3,searchInput:z3,searchButton:P3,clearButton:V3,workspaceSelect:H3,listHeader:q3,nodeList:G3,nodeItem:$3,indicator:F3,label:Z3,badge:K3};function Y3({nodes:n,workspaces:s,loading:i,searchQuery:o,onSearch:c,onClearSearch:u,onSelectNode:d,onWorkspaceChange:m}){const[h,g]=y.useState(""),v=y.useCallback(T=>{T.preventDefault(),h.trim()&&c(h.trim())},[h,c]),b=y.useCallback(()=>{g(""),u()},[u]),_=y.useCallback(T=>{d(T)},[d]),S=y.useCallback(T=>{g(""),m(T)},[m]);return l.jsxs("div",{className:In.nav,"data-testid":"knowledge-nav",children:[l.jsxs("form",{className:In.searchForm,onSubmit:v,children:[l.jsx("input",{className:In.searchInput,type:"text",placeholder:"Search...",value:h,onChange:T=>{g(T.target.value)},"data-testid":"knowledge-search-input"}),l.jsx("button",{type:"submit",className:In.searchButton,disabled:i,children:"Go"})]}),o&&l.jsx("button",{type:"button",className:In.clearButton,onClick:b,children:"Clear search"}),l.jsxs("select",{className:In.workspaceSelect,onChange:T=>{S(T.target.value)},"data-testid":"knowledge-workspace-filter",children:[l.jsx("option",{value:"",children:"All workspaces"}),s.map(T=>l.jsx("option",{value:T.id,children:T.name},T.id))]}),l.jsxs("div",{className:In.listHeader,children:["Nodes (",n.length,")"]}),l.jsx("ul",{className:In.nodeList,children:n.map(T=>l.jsxs("li",{className:In.nodeItem,onClick:()=>{_(T.id)},onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),_(T.id))},role:"button",tabIndex:0,children:[l.jsx("span",{className:In.indicator,style:{backgroundColor:T.kind==="reference"?"#4A9EFF":T.category==="decision"?"#22C55E":T.category==="concept"?"#A855F7":T.category==="snippet"?"#6B7280":"#EAB308"}}),l.jsx("span",{className:In.label,children:T.label}),l.jsx("span",{className:In.badge,children:T.kind==="reference"?T.sourceType:T.category})]},T.id))})]})}const J3="_container_1mq5u_1",W3="_hamburger_1mq5u_33",X3="_brand_1mq5u_49",Q3="_brandLogo_1mq5u_68",e6="_info_1mq5u_75",t6="_connectionLabel_1mq5u_90",n6="_connectionDot_1mq5u_103",s6="_connected_1mq5u_106",a6="_disconnected_1mq5u_110",Cs={container:J3,hamburger:W3,brand:X3,brandLogo:Q3,info:e6,connectionLabel:t6,connectionDot:n6,connected:s6,disconnected:a6};function i6({connected:n,environments:s,sessions:i,onToggleSidebar:o,sidebarOpen:c}){const u=St(),d=s.length,m=s.filter(g=>g.status==="connected").length,h=i.filter(g=>["running","idle"].includes(g.status)).length;return l.jsxs("div",{className:Cs.container,children:[o&&l.jsx("button",{type:"button",className:Cs.hamburger,onClick:o,"aria-label":"Toggle sidebar","aria-expanded":c,children:"☰"}),l.jsxs("button",{type:"button",className:Cs.brand,onClick:()=>u(Ya),title:"Home",children:[l.jsx("img",{src:"/icon-192x192.png",alt:"",className:Cs.brandLogo,"aria-hidden":"true","data-testid":"statusbar-logo"}),"Grackle"]}),l.jsxs("div",{className:Cs.info,children:[l.jsxs("span",{"aria-label":n?"Connected":"Disconnected",children:[l.jsx("span",{className:`${Cs.connectionDot} ${n?Cs.connected:Cs.disconnected}`,"aria-hidden":"true",children:"●"})," ",l.jsx("span",{className:Cs.connectionLabel,"aria-hidden":"true",children:n?"Connected":"Disconnected"})]}),l.jsxs("span",{children:[m,"/",d," env",d!==1?"s":""]}),l.jsxs("span",{children:[h," active"]})]})]})}const o6="_nav_13gkc_1",r6="_tab_13gkc_35",l6="_tabIcon_13gkc_68",c6="_tabLabel_13gkc_79",u6="_tabActive_13gkc_84",or={nav:o6,tab:r6,tabIcon:l6,tabLabel:c6,tabActive:u6},Ha=[{view:"dashboard",label:"Dashboard",icon:"🏠",route:Ya,testId:"sidebar-tab-dashboard"},{view:"chat",label:"Chat",icon:"💬",route:F2,testId:"sidebar-tab-chat"},{view:"tasks",label:"Tasks",icon:"📋",route:Z2,testId:"sidebar-tab-tasks"},{view:"environments",label:"Environments",icon:"🖥️",route:Xi,testId:"sidebar-tab-environments"},{view:"knowledge",label:"Knowledge",icon:"🧠",route:Db,testId:"sidebar-tab-knowledge"},{view:"settings",label:"Settings",icon:"⚙️",route:H2,testId:"sidebar-tab-settings"}];function d6(n){return n===Ya||n==="/"?"dashboard":n.startsWith("/chat")||n.startsWith("/sessions")?"chat":n.startsWith("/workspaces")||n.startsWith("/environments")?"environments":n.startsWith(Db)?"knowledge":n.startsWith(Ji)?"settings":"tasks"}function f6(){const n=Lt(),s=St(),i=y.useRef(null),o=d6(n.pathname),c=y.useCallback(d=>{s(d.route)},[s]),u=y.useCallback(d=>{var b,_;const m=(b=i.current)==null?void 0:b.querySelectorAll('[role="tab"]');if(!m)return;const h=Array.from(m).findIndex(S=>S===document.activeElement),g=h>=0?h:Ha.findIndex(S=>S.view===o);let v=g;if(d.key==="ArrowRight"||d.key==="j"||d.key==="J")d.preventDefault(),v=(g+1)%Ha.length;else if(d.key==="ArrowLeft"||d.key==="k"||d.key==="K")d.preventDefault(),v=(g-1+Ha.length)%Ha.length;else if(d.key==="Home")d.preventDefault(),v=0;else if(d.key==="End")d.preventDefault(),v=Ha.length-1;else return;s(Ha[v].route),(_=m[v])==null||_.focus()},[o,s]);return l.jsx("nav",{className:or.nav,ref:i,role:"tablist","aria-orientation":"horizontal","aria-label":"App navigation",onKeyDown:u,"data-testid":"sidebar-nav",children:Ha.map(d=>{const m=d.view===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":m,tabIndex:m?0:-1,className:`${or.tab} ${m?or.tabActive:""}`,onClick:()=>c(d),"data-testid":d.testId,title:d.label,"aria-label":d.label,children:[l.jsx("span",{className:or.tabIcon,"aria-hidden":"true",children:d.icon}),l.jsx("span",{className:or.tabLabel,children:d.label})]},d.view)})})}const p6="_container_pi6ii_1",m6="_content_pi6ii_66",zy={container:p6,content:m6},h6=320,px=220,mx=600,hx="grackle-sidebar-width";function g6(){try{const n=localStorage.getItem(hx);if(n!==null){const s=Number(n);if(Number.isFinite(s)&&s>=px&&s<=mx)return s}}catch{}return h6}function v6(n){try{localStorage.setItem(hx,String(n))}catch{}}function y6({content:n}){const[s]=y.useState(g6),i=y.useRef(null);if(y.useEffect(()=>{const o=i.current;if(!o)return;const c=new ResizeObserver(u=>{for(const d of u){const m=d.borderBoxSize[0];if(m){const h=Math.round(m.inlineSize);h>=px&&h<=mx&&v6(h)}}});return c.observe(o),()=>{c.disconnect()}},[]),n!==void 0)return l.jsx("div",{className:zy.container,ref:i,"data-testid":"sidebar",style:{width:s},children:l.jsx("div",{className:zy.content,children:n})})}const b6="_bar_tnfsh_1",_6="_btnPrimary_tnfsh_32",x6="_statusText_tnfsh_85",S6="_statusCompleted_tnfsh_90",T6="_statusFailed_tnfsh_94",k6="_statusBlocked_tnfsh_98",w6="_hintText_tnfsh_103",ht={bar:b6,btnPrimary:_6,statusText:x6,statusCompleted:S6,statusFailed:T6,statusBlocked:k6,hintText:w6};function N6({sessions:n,tasks:s,environments:i}){const o=St(),c=Lt(),u=Mt("/sessions/:sessionId"),d=Mt("/tasks/:taskId"),m=Mt("/tasks/:taskId/stream"),h=Mt("/tasks/:taskId/findings"),g=Mt("/tasks/:taskId/edit"),v=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId"),b=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream"),_=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings"),S=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit"),T=Mt("/sessions/new"),N=Mt("/environments/:environmentId/workspaces/:workspaceId"),j=Mt("/tasks/new"),w=Mt("/chat"),C=Mt("/"),A=Mt("/settings/*"),M=u==null?void 0:u.params.sessionId,D=(d==null?void 0:d.params.taskId)??(m==null?void 0:m.params.taskId)??(h==null?void 0:h.params.taskId)??(v==null?void 0:v.params.taskId)??(b==null?void 0:b.params.taskId)??(_==null?void 0:_.params.taskId)??(S==null?void 0:S.params.taskId),E=v??b??_??S,H=(E==null?void 0:E.params.environmentId)??(N==null?void 0:N.params.environmentId),z=c.pathname.startsWith("/environments")&&!N&&!E,Z=!!w,F=!!T,Q=!!N&&!v&&!b&&!_&&!S,ae=!!j;if(!!C&&!F&&!Q&&!ae||!!A||(!!g||!!S)||ae||z||F)return l.jsx(l.Fragment,{});if(Z)return i.find($=>$.adapterType==="local"&&$.status==="connected")?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Add a local environment to start chatting"})});if(Q)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Select a task or click + to create one"})});if(D){const B=s.find(re=>re.id===D);if(!B)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})});const $=new Map(s.map(re=>[re.id,re])),te=B.dependsOn.some(re=>{const de=$.get(re);return de!==void 0&&de.status!=="complete"});if(B.status==="not_started"){const re=te?B.dependsOn.map(de=>$.get(de)).filter(de=>de&&de.status!=="complete").map(de=>de.title):[];return l.jsx("div",{className:ht.bar,children:te?l.jsxs("span",{className:ht.statusBlocked,children:["Blocked by: ",re.join(", ")]}):l.jsx("span",{className:ht.hintText,children:"Use the buttons above to start or manage this task"})})}if(B.status==="working"||B.status==="paused"){const re=B.latestSessionId||void 0,de=re?n.find(we=>we.id===re):void 0;return de&&de.status!=="stopped"?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Waiting for agent..."})})}if(B.status==="complete")return l.jsxs("div",{className:ht.bar,children:[l.jsx("span",{className:`${ht.statusText} ${ht.statusCompleted}`,children:"Task completed"}),l.jsx("button",{onClick:()=>o(ei(B.workspaceId,void 0,H)),className:ht.btnPrimary,children:"+ New Task"})]});if(B.status==="failed")return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:`${ht.statusText} ${ht.statusFailed}`,children:"Task failed"})})}if(M){const B=n.find(re=>re.id===M),$=(B==null?void 0:B.status)==="stopped";if(B!==void 0&&!$)return l.jsx(l.Fragment,{});if($)return l.jsxs("div",{className:ht.bar,children:[l.jsxs("span",{className:`${ht.statusText} ${ht.hintText}`,children:["Session ",B.endReason||B.status]}),l.jsx("button",{onClick:()=>o(Cb(B.environmentId)),className:ht.btnPrimary,children:"+ New Chat"})]})}return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})})}const j6="_nav_14i94_1",C6="_tab_14i94_24",E6="_tabActive_14i94_62",A6="_tabLabel_14i94_75",D6="_statusDot_14i94_81",R6="_pulse_14i94_87",M6="_addButton_14i94_99",O6="_empty_14i94_132",ca={nav:j6,tab:C6,tabActive:E6,tabLabel:A6,statusDot:D6,pulse:R6,addButton:M6,empty:O6},I6={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function B6({environments:n}){const s=St(),i=y.useRef(null),o=Mt("/environments/:environmentId"),c=Mt("/environments/:environmentId/edit"),u=Mt("/environments/:environmentId/workspaces/:workspaceId"),d=Mt("/environments/:environmentId/workspaces/:workspaceId/*"),m=(o==null?void 0:o.params.environmentId)??(c==null?void 0:c.params.environmentId)??(u==null?void 0:u.params.environmentId)??(d==null?void 0:d.params.environmentId),h=m==="new"?void 0:m,g=y.useCallback(_=>{s(Qi(_))},[s]),v=y.useCallback(_=>{var w;const S=(w=i.current)==null?void 0:w.querySelectorAll('[role="tab"]');if(!S||S.length===0)return;const T=Array.from(S).findIndex(C=>C===document.activeElement),N=T>=0?T:n.findIndex(C=>C.id===h);let j=N;if(_.key==="ArrowDown"||_.key==="j"||_.key==="J")_.preventDefault(),j=(N+1)%S.length;else if(_.key==="ArrowUp"||_.key==="k"||_.key==="K")_.preventDefault(),j=(N-1+S.length)%S.length;else if(_.key==="Home")_.preventDefault(),j=0;else if(_.key==="End")_.preventDefault(),j=S.length-1;else return;j<n.length&&s(Qi(n[j].id)),S[j].focus()},[h,n,s]),b=h??(n.length>0?n[0].id:void 0);return l.jsxs("div",{className:ca.nav,"data-testid":"environment-nav",children:[l.jsx("nav",{ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Environments",onKeyDown:v,children:n.map(_=>{const S=_.id===h,T=_.id===b,N=I6[_.status]||"var(--text-tertiary)",j=_.status==="connected";return l.jsxs("button",{role:"tab",type:"button","aria-selected":S,tabIndex:T?0:-1,className:`${ca.tab} ${S?ca.tabActive:""}`,onClick:()=>g(_.id),"data-testid":"env-nav-item",children:[l.jsx("span",{className:`${ca.statusDot} ${j?ca.pulse:""}`,style:{color:N},children:"●"}),l.jsx("span",{className:ca.tabLabel,title:_.displayName||_.id,children:_.displayName||_.id})]},_.id)})}),l.jsx("button",{type:"button",className:ca.addButton,onClick:()=>s(P2),title:"Add environment","data-testid":"env-nav-add",children:"+ Add Environment"}),n.length===0&&l.jsx("div",{className:ca.empty,children:"No environments yet."})]})}function L6(n){if(n.length===0)return[];const s=[...n].sort((o,c)=>o[0]-c[0]),i=[[s[0][0],s[0][1]]];for(let o=1;o<s.length;o++){const c=i[i.length-1],[u,d]=s[o];u<=c[1]+1?c[1]=Math.max(c[1],d):i.push([u,d])}return i}function gx({text:n,indices:s,highlightClass:i}){if(!s||s.length===0)return l.jsx(l.Fragment,{children:n});const o=L6(s),c=[];let u=0;for(const[d,m]of o)d>u&&c.push(l.jsx("span",{children:n.slice(u,d)},`p${u}`)),c.push(l.jsx("mark",{className:i,children:n.slice(d,m+1)},`m${d}`)),u=m+1;return u<n.length&&c.push(l.jsx("span",{children:n.slice(u)},`p${u}`)),l.jsx(l.Fragment,{children:c})}function U6(n){const s=new Map(n.map(o=>[o.id,{...o,children:[]}])),i=[];for(const o of s.values())o.parentTaskId&&s.has(o.parentTaskId)?s.get(o.parentTaskId).children.push(o):i.push(o);for(const o of s.values())o.children.sort((c,u)=>c.sortOrder-u.sortOrder);return i.sort((o,c)=>o.sortOrder-c.sortOrder)}function z6(n,s){const i=new Map;for(const u of n){const m=u.dependsOn.length>0&&u.dependsOn.some(g=>s.get(g)!=="complete")?"blocked":u.status,h=i.get(m);h?h.push(u):i.set(m,[u])}const o=[],c=new Set;for(const u of GT){c.add(u);const d=i.get(u);if(d&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ma(u);o.push({status:u,label:m.label,style:m,tasks:d})}}for(const[u,d]of i)if(!c.has(u)&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ma(u);o.push({status:u,label:m.label,style:m,tasks:d})}return o}const P6="_container_z4i38_1",V6="_header_z4i38_5",H6="_headerActions_z4i38_17",q6="_searchInput_z4i38_23",G6="_searchHighlight_z4i38_56",$6="_groupToggle_z4i38_62",F6="_groupToggleActive_z4i38_89",Z6="_addButton_z4i38_93",K6="_taskRow_z4i38_120",Y6="_selected_z4i38_140",J6="_expandArrow_z4i38_150",W6="_expanded_z4i38_157",X6="_leafSpacer_z4i38_161",Q6="_taskStatusIcon_z4i38_166",eO="_taskTitle_z4i38_170",tO="_workspaceBadge_z4i38_177",nO="_childCountBadge_z4i38_195",sO="_dependencyBadge_z4i38_208",aO="_blockedBadge_z4i38_220",iO="_addChildButton_z4i38_225",oO="_emptyState_z4i38_268",rO="_statusGroupHeader_z4i38_275",lO="_statusGroupIcon_z4i38_294",cO="_statusGroupLabel_z4i38_298",uO="_statusGroupCount_z4i38_303",Ge={container:P6,header:V6,headerActions:H6,searchInput:q6,searchHighlight:G6,groupToggle:$6,groupToggleActive:F6,addButton:Z6,taskRow:K6,selected:Y6,expandArrow:J6,expanded:W6,leafSpacer:X6,taskStatusIcon:Q6,taskTitle:eO,workspaceBadge:tO,childCountBadge:nO,dependencyBadge:sO,blockedBadge:aO,addChildButton:iO,emptyState:oO,statusGroupHeader:rO,statusGroupIcon:lO,statusGroupLabel:cO,statusGroupCount:uO},dO=[{name:"title",weight:2},{name:"description",weight:1}],vx=16,fO=16,yx="grackle-task-group-by-status";function Py(){try{return localStorage.getItem(yx)==="true"}catch{return!1}}function pO(n){try{localStorage.setItem(yx,String(n))}catch{}}function mO({group:n,isExpanded:s,onToggle:i,selectedTaskId:o,navigate:c,titleHighlights:u,workspaceNames:d}){return l.jsxs("div",{"data-testid":`status-group-${n.status}`,children:[l.jsxs("div",{className:Ge.statusGroupHeader,role:"button",tabIndex:0,"aria-expanded":s,onClick:i,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),i())},children:[l.jsx("span",{className:`${Ge.expandArrow} ${s?Ge.expanded:""}`,children:"▸"}),l.jsx("span",{className:Ge.statusGroupIcon,style:{color:n.style.color},children:n.style.icon}),l.jsx("span",{className:Ge.statusGroupLabel,children:n.label}),l.jsx("span",{className:Ge.statusGroupCount,children:n.tasks.length})]}),l.jsx(rs,{children:s&&l.jsx(Ot.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},style:{overflow:"hidden"},children:n.tasks.map(m=>{const h=ma(m.status),g=o===m.id,v=m.parentTaskId||!m.workspaceId?void 0:d.get(m.workspaceId);return l.jsxs("div",{onClick:()=>c(os(m.id)),className:`${Ge.taskRow} ${g?Ge.selected:""}`,style:{"--task-indent":`${vx}px`},"data-task-id":m.id,children:[l.jsx("span",{className:Ge.leafSpacer}),l.jsx("span",{className:Ge.taskStatusIcon,style:{color:h.color},children:h.icon}),l.jsx("span",{className:Ge.taskTitle,title:m.title,children:l.jsx(gx,{text:m.title,indices:u.get(m.id),highlightClass:Ge.searchHighlight})}),v&&l.jsx("span",{className:Ge.workspaceBadge,title:v,children:v})]},m.id)})})})]})}function bx({node:n,depth:s,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h}){const g=ma(n.status),v=n.dependsOn.length>0&&n.dependsOn.some(w=>d.get(w)!=="complete"),b=i.has(n.id),_=n.children.length>0,S=c===n.id,T=vx+s*fO,j=s===0&&!n.parentTaskId&&n.workspaceId?h.get(n.workspaceId):void 0;return l.jsxs(l.Fragment,{children:[l.jsxs("div",{onClick:()=>u(os(n.id)),className:`${Ge.taskRow} ${S?Ge.selected:""}`,style:{"--task-indent":`${T}px`},"data-task-id":n.id,children:[_&&l.jsx("span",{className:`${Ge.expandArrow} ${b?Ge.expanded:""}`,role:"button",tabIndex:0,"aria-label":b?"Collapse task":"Expand task",onClick:w=>{w.stopPropagation(),o(n.id)},onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),w.stopPropagation(),o(n.id))},children:"▸"}),!_&&l.jsx("span",{className:Ge.leafSpacer}),l.jsx("span",{className:Ge.taskStatusIcon,style:{color:g.color},children:g.icon}),l.jsx("span",{className:Ge.taskTitle,title:n.title,children:l.jsx(gx,{text:n.title,indices:m.get(n.id),highlightClass:Ge.searchHighlight})}),j&&l.jsx("span",{className:Ge.workspaceBadge,title:j,children:j}),_&&l.jsxs("span",{className:Ge.childCountBadge,children:[n.children.filter(w=>w.status==="complete").length,"/",n.children.length]}),n.dependsOn.length>0&&l.jsx("span",{className:`${Ge.dependencyBadge} ${v?Ge.blockedBadge:""}`,title:`Depends on: ${n.dependsOn.join(", ")}`,children:v?"blocked":"dep"}),s<oT&&l.jsx("button",{onClick:w=>{w.stopPropagation(),u(ei(n.workspaceId,n.id))},title:"Add child task","aria-label":"Add child task",className:Ge.addChildButton,children:"+"})]}),l.jsx(rs,{children:_&&b&&l.jsx(Ot.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.15},style:{overflow:"hidden"},children:n.children.map(w=>l.jsx(bx,{node:w,depth:s+1,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h},w.id))})})]})}function hO({workspaces:n,tasks:s}){const i=St(),[o,c]=y.useState(new Set),[u,d]=y.useState(new Set),[m,h]=y.useState(Py),[g,v]=y.useState(Py),[b,_]=y.useState(new Map),S=Mt("/tasks/:taskId/*"),T=(S==null?void 0:S.params.taskId)!=="new"?S==null?void 0:S.params.taskId:void 0,N=y.useMemo(()=>new Map(s.map(oe=>[oe.id,oe.status])),[s]),j=y.useMemo(()=>new Map(n.map(oe=>[oe.id,oe.name])),[n]),w=()=>{const oe=!m;pO(oe),h(oe),oe&&(v(!0),_(new Map))},C=oe=>{_(X=>{const B=new Map(X),$=B.has(oe)?B.get(oe):g;return B.set(oe,!$),B})},A=oe=>b.has(oe)?b.get(oe):g,M=oe=>{c(X=>{const B=new Set(X);return B.has(oe)?(B.delete(oe),d($=>new Set($).add(oe))):(B.add(oe),d($=>{const te=new Set($);return te.delete(oe),te})),B})};y.useEffect(()=>{const oe=new Set(s.filter(X=>X.parentTaskId).map(X=>X.parentTaskId));oe.size>0&&c(X=>{const B=new Set(X);for(const $ of oe)u.has($)||B.add($);return B})},[s,u]);const[D,E]=y.useState(""),{directMatchTaskIds:H,treeMatchTaskIds:z,titleHighlights:Z}=y.useMemo(()=>{if(!D.trim())return{directMatchTaskIds:null,treeMatchTaskIds:null,titleHighlights:new Map};const oe=iT(s,D,dO),X=new Set(oe.map(re=>re.item.id)),B=new Map;for(const re of oe){const de=re.matches.find($e=>$e.key==="title");de&&B.set(re.item.id,de.indices)}const $=new Set(X),te=new Map(s.map(re=>[re.id,re]));for(const re of[...X]){let de=te.get(re);for(;de!=null&&de.parentTaskId;)$.add(de.parentTaskId),de=te.get(de.parentTaskId)}return{directMatchTaskIds:X,treeMatchTaskIds:$,titleHighlights:B}},[D,s]),F=H!==null,Q=F?m?H:z:null,ae=Q?s.filter(oe=>Q.has(oe.id)):s,pe=m?[]:U6(ae);return l.jsxs("div",{className:Ge.container,children:[l.jsxs("div",{className:Ge.header,children:[l.jsx("span",{children:"Tasks"}),l.jsxs("div",{className:Ge.headerActions,children:[l.jsx("button",{className:`${Ge.groupToggle} ${m?Ge.groupToggleActive:""}`,onClick:w,"aria-label":m?"Switch to tree view":"Group tasks by status","aria-pressed":m,title:m?"Switch to tree view":"Group tasks by status","data-testid":"task-group-by-status-toggle",children:"≡"}),l.jsx("button",{className:Ge.addButton,onClick:()=>i(ei()),"aria-label":"New task",title:"New task","data-testid":"new-task-button",children:"+"})]})]}),s.length>0&&l.jsx("input",{type:"text",value:D,onChange:oe=>E(oe.target.value),placeholder:"Filter...","aria-label":"Filter tasks",className:Ge.searchInput,"data-testid":"sidebar-search"}),m?z6(ae,N).map(oe=>l.jsx(mO,{group:oe,isExpanded:A(oe.status),onToggle:()=>C(oe.status),selectedTaskId:T,navigate:i,titleHighlights:Z,workspaceNames:j},oe.status)):pe.map(oe=>l.jsx(bx,{node:oe,depth:0,expandedTasks:o,toggleTask:M,selectedTaskId:T,navigate:i,taskStatusById:N,titleHighlights:Z,workspaceNames:j},oe.id)),ae.length===0&&!F&&l.jsx("div",{className:Ge.emptyState,children:"No tasks yet. Click + to create one."}),ae.length===0&&F&&l.jsx("div",{className:Ge.emptyState,children:"No matching tasks"})]})}const gO="_toast_da8ll_1",vO="_success_da8ll_18",yO="_icon_da8ll_22",bO="_error_da8ll_25",_O="_warning_da8ll_32",xO="_info_da8ll_38",SO="_message_da8ll_53",TO="_close_da8ll_60",rr={toast:gO,success:vO,icon:yO,error:bO,warning:_O,info:xO,message:SO,close:TO},kO={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function wO({toast:n,onDismiss:s}){return y.useEffect(()=>{const i=setTimeout(()=>s(n.id),n.duration);return()=>clearTimeout(i)},[n.id,n.duration,s]),l.jsxs(Ot.div,{className:`${rr.toast} ${rr[n.variant]}`,role:"status",initial:{opacity:0,y:-16,scale:.94},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.94},transition:{duration:.2,ease:"easeOut"},layout:!0,children:[l.jsx("span",{className:rr.icon,"aria-hidden":"true",children:kO[n.variant]}),l.jsx("span",{className:rr.message,children:n.message}),l.jsx("button",{type:"button",className:rr.close,onClick:()=>s(n.id),"aria-label":"Dismiss notification",children:"×"})]})}const NO="_container_qqse2_1",jO={container:NO};function CO({toasts:n,onDismiss:s}){return l.jsx("div",{className:jO.container,"data-testid":"toast-container",children:l.jsx(rs,{children:n.map(i=>l.jsx(wO,{toast:i,onDismiss:s},i.id))})})}const EO="_callout_1jaue_1",AO="_success_1jaue_11",DO="_icon_1jaue_15",RO="_error_1jaue_18",MO="_warning_1jaue_25",OO="_info_1jaue_32",IO="_content_1jaue_48",BO="_close_1jaue_53",lr={callout:EO,success:AO,icon:DO,error:RO,warning:MO,info:OO,content:IO,close:BO},LO={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function UO({variant:n="info",children:s,dismissible:i=!1,className:o}){const[c,u]=y.useState(!1);return l.jsx(l.Fragment,{children:!c&&l.jsxs("div",{className:[lr.callout,lr[n],o].filter(Boolean).join(" "),role:n==="error"||n==="warning"?"alert":"status",children:[l.jsx("span",{className:lr.icon,"aria-hidden":"true",children:LO[n]}),l.jsx("span",{className:lr.content,children:s}),i&&l.jsx("button",{type:"button",className:lr.close,onClick:()=>u(!0),"aria-label":"Dismiss",children:"×"})]})})}function zO({currentVersion:n,latestVersion:s,updateAvailable:i,isDocker:o}){if(!i)return l.jsx(l.Fragment,{});const c=o?"docker pull ghcr.io/nick-pape/grackle:latest && docker restart grackle":`npm install -g @grackle-ai/cli@${s}`;return l.jsx("div",{"data-testid":"update-banner",children:l.jsxs(UO,{variant:"info",dismissible:!0,children:[l.jsxs("strong",{children:["Grackle v",s]})," is available (you have v",n,")."," ","Run: ",l.jsx("code",{children:c})]})})}const PO="_container_1pqxm_1",VO="_emptyState_1pqxm_8",HO="_card_1pqxm_14",qO="_cardHeader_1pqxm_34",GO="_categoryBadge_1pqxm_46",$O="_findingTitle_1pqxm_54",FO="_findingDate_1pqxm_60",ZO="_findingContent_1pqxm_72",KO="_tags_1pqxm_78",YO="_tag_1pqxm_78",ts={container:PO,emptyState:VO,card:HO,cardHeader:qO,categoryBadge:GO,findingTitle:$O,findingDate:FO,findingContent:ZO,tags:KO,tag:YO};function JO(n){const s=new Date(n),i=new Date,o=i.getTime()-s.getTime(),c=Math.floor(o/1e3),u=Math.floor(c/60),d=Math.floor(u/60),m=Math.floor(d/24);if(c<60)return"just now";if(u<60)return`${u}m ago`;if(d<24)return`${d}h ago`;if(m===1)return"yesterday";if(m<7)return`${m} days ago`;const h=s.getFullYear()===i.getFullYear(),g=s.toLocaleString("en-US",{month:"short"}),v=s.getDate();return h?`${g} ${v}`:`${g} ${v} ${s.getFullYear()}`}const Vy={architecture:{text:"var(--accent-blue)",bg:"var(--accent-blue-dim)"},api:{text:"var(--accent-green)",bg:"var(--accent-green-dim)"},bug:{text:"var(--accent-red)",bg:"var(--accent-red-dim)"},decision:{text:"var(--accent-yellow)",bg:"var(--accent-yellow-dim)"},dependency:{text:"var(--accent-purple)",bg:"var(--accent-purple-dim)"},pattern:{text:"var(--accent-cyan)",bg:"var(--accent-cyan-dim)"},general:{text:"var(--text-secondary)",bg:"var(--bg-elevated)"}};function WO({findings:n}){return n.length===0?l.jsx("div",{className:ts.emptyState,children:"No findings yet. Agents will post discoveries here."}):l.jsx("div",{className:ts.container,children:n.map((s,i)=>{const o=Vy[s.category]||Vy.general;return l.jsxs(Ot.div,{className:ts.card,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:i*.05,duration:.2},children:[l.jsxs("div",{className:ts.cardHeader,children:[l.jsx("span",{className:ts.categoryBadge,style:{background:o.bg,color:o.text},children:s.category}),l.jsx("span",{className:ts.findingTitle,children:s.title}),l.jsx("span",{className:ts.findingDate,title:s.createdAt,children:JO(s.createdAt)})]}),l.jsx("div",{className:ts.findingContent,children:s.content.length>300?s.content.slice(0,300)+"...":s.content}),s.tags.length>0&&l.jsx("div",{className:ts.tags,children:s.tags.map(c=>l.jsx("span",{className:ts.tag,style:{color:o.text,textShadow:`0 0 8px ${o.text}`},children:c},c))})]},s.id)})})}const XO="_section_1ingb_14",QO="_sectionTitle_1ingb_26",eI="_sectionDescription_1ingb_35",tI="_tokenList_1ingb_48",nI="_tokenRow_1ingb_55",sI="_tokenBadge_1ingb_68",aI="_tokenName_1ingb_83",iI="_tokenTarget_1ingb_90",oI="_deleteButton_1ingb_99",rI="_addForm_1ingb_113",lI="_formRow_1ingb_119",cI="_input_1ingb_125",uI="_select_1ingb_155",dI="_addButton_1ingb_187",fI="_emptyStateInfo_1ingb_221",pI="_themeOptions_1ingb_229",mI="_themeOption_1ingb_229",hI="_themeOptionSelected_1ingb_254",gI="_themeOptionHeader_1ingb_259",vI="_themeOptionLabel_1ingb_266",yI="_themeOptionDesc_1ingb_273",bI="_variantToggle_1ingb_279",_I="_variantButton_1ingb_286",xI="_variantActive_1ingb_305",SI="_themeSwatches_1ingb_311",TI="_themeSwatch_1ingb_311",kI="_systemToggle_1ingb_325",wI="_systemToggleHint_1ingb_341",NI="_themeActive_1ingb_348",jI="_aboutGrid_1ingb_354",CI="_aboutItem_1ingb_360",EI="_aboutLabel_1ingb_373",AI="_aboutValue_1ingb_379",DI="_aboutDot_1ingb_387",RI="_aboutDotConnected_1ingb_394",MI="_aboutDotDisconnected_1ingb_398",he={section:XO,sectionTitle:QO,sectionDescription:eI,tokenList:tI,tokenRow:nI,tokenBadge:sI,tokenName:aI,tokenTarget:iI,deleteButton:oI,addForm:rI,formRow:lI,input:cI,select:uI,addButton:dI,emptyStateInfo:fI,themeOptions:pI,themeOption:mI,themeOptionSelected:hI,themeOptionHeader:gI,themeOptionLabel:vI,themeOptionDesc:yI,variantToggle:bI,variantButton:_I,variantActive:xI,themeSwatches:SI,themeSwatch:TI,systemToggle:kI,systemToggleHint:wI,themeActive:NI,aboutGrid:jI,aboutItem:CI,aboutLabel:EI,aboutValue:AI,aboutDot:DI,aboutDotConnected:RI,aboutDotDisconnected:MI},OI=[{value:"env_var",label:"Environment Variable"},{value:"file",label:"File"}];function II({tokens:n,onSetToken:s,onDeleteToken:i,onShowToast:o}){const[c,u]=y.useState(""),[d,m]=y.useState(""),[h,g]=y.useState("env_var"),[v,b]=y.useState(""),[_,S]=y.useState(null),T=w=>{if(w.preventDefault(),!c||!d)return;const C=h==="env_var"?v||c.toUpperCase()+"_TOKEN":"";s(c,d,h,C,h==="file"?v:""),o==null||o("Token saved successfully","success"),u(""),m(""),b("")},N=w=>{S(w)},j=()=>{_&&(i(_),o==null||o("Token deleted","info")),S(null)};return l.jsxs(l.Fragment,{children:[l.jsx(Ja,{isOpen:_!==null,title:"Delete Token?",description:_?`"${_}" will be permanently removed.`:void 0,onConfirm:j,onCancel:()=>S(null)}),l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Tokens"}),l.jsx("p",{className:he.sectionDescription,children:"API tokens are auto-pushed to environments when set or updated. Values are write-only."}),n.length===0?l.jsx("div",{className:he.emptyStateInfo,children:"Add your first API token to enable service integrations."}):l.jsx("div",{className:he.tokenList,children:n.map(w=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenBadge,children:w.tokenType}),l.jsx("span",{className:he.tokenName,children:w.name}),l.jsx("span",{className:he.tokenTarget,children:w.tokenType==="env_var"?w.envVar:w.filePath}),l.jsx("button",{className:he.deleteButton,onClick:()=>N(w.name),title:`Delete ${w.name}`,children:"×"})]},w.name))}),l.jsxs("form",{className:he.addForm,onSubmit:T,children:[l.jsxs("div",{className:he.formRow,children:[l.jsx("input",{className:he.input,type:"text",placeholder:"Token name",value:c,onChange:w=>u(w.target.value)}),l.jsx("input",{className:he.input,type:"password",placeholder:"Value",value:d,onChange:w=>m(w.target.value)})]}),l.jsxs("div",{className:he.formRow,children:[l.jsx("select",{className:he.select,value:h,onChange:w=>g(w.target.value),children:OI.map(w=>l.jsx("option",{value:w.value,children:w.label},w.value))}),l.jsx("input",{className:he.input,type:"text",placeholder:h==="env_var"?"Env var name (e.g. API_TOKEN)":"File path (e.g. /home/user/.token)",value:v,onChange:w=>b(w.target.value)}),l.jsx("button",{className:he.addButton,type:"submit",children:"Add Token"})]})]})]})]})}const Pc=[{id:"grackle",label:"Grackle",description:"The default Grackle theme — iridescent purple on clean dark.",swatches:["#0e1218","#8b5cf6","#60a5fa","#e5e7eb","#34d399"],variantLightId:"grackle-light",variantDarkId:"grackle-dark"},{id:"grackle-light",label:"Grackle Light",description:"Light Grackle variant.",hidden:!0},{id:"grackle-dark",label:"Grackle Dark",description:"Dark Grackle variant.",hidden:!0},{id:"glass",label:"Glassmorphism",description:"Dark frosted-glass aesthetic with backdrop blur effects.",swatches:["#0a0c14","#4ecca3","#70a1ff","#e2e8f0","#a855f7"]},{id:"matrix",label:"Matrix",description:"Phosphor-green CRT terminal with scanlines and glow.",swatches:["#050505","#00ff41","#00bfff","#33ff77","#ffb000"]},{id:"brutalist",label:"Neubrutalism",description:"Thick borders, raw colors, bold type — ugly on purpose.",swatches:["#f5f0e8","#ff5757","#5ce1e6","#1a1a1a","#ffde59"],variantLightId:"brutalist-light",variantDarkId:"brutalist-dark"},{id:"brutalist-light",label:"Neubrutalism Light",description:"Light neubrutalism variant.",hidden:!0},{id:"brutalist-dark",label:"Neubrutalism Dark",description:"Dark neubrutalism variant.",hidden:!0},{id:"monokai",label:"Monokai",description:"Classic warm editor palette — pink, green, and purple.",swatches:["#272822","#f92672","#a6e22e","#f8f8f2","#ae81ff"],variantLightId:"monokai-light",variantDarkId:"monokai-dark"},{id:"monokai-dark",label:"Monokai Dark",description:"Dark Monokai variant.",hidden:!0},{id:"monokai-light",label:"Monokai Light",description:"Light Monokai variant.",hidden:!0},{id:"ubuntu",label:"Ubuntu",description:"Aubergine terminal with the GNOME Tango palette.",swatches:["#300a24","#8ae234","#ef2929","#eeeeec","#fce94f"]},{id:"sandstone",label:"Sandstone",description:"Warm terracotta accent on dark brown, in the style of Claude Code.",swatches:["#1a1815","#C15F3C","#6b8afd","#e8e6e3","#a78bfa"]},{id:"verdigris",label:"Verdigris",description:"Teal accent on charcoal, in the style of ChatGPT.",swatches:["#141414","#00a67e","#3b82f6","#ececec","#ab68ff"]},{id:"primer",label:"Primer",description:"Blue accent on ink-dark grey, in the style of GitHub.",swatches:["#0d1117","#58a6ff","#3fb950","#c9d1d9","#bc8cff"]}],_x=new Set(Pc.map(n=>n.id)),Hy="grackle";function ip(n){return Pc.find(s=>s.id===n)}function BI({themeId:n,resolvedThemeId:s,onSetTheme:i,preferSystem:o,onSetPreferSystem:c}){return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Appearance"}),l.jsx("p",{className:he.sectionDescription,children:"Choose how Grackle looks across the app."}),l.jsx("div",{className:he.themeOptions,children:Pc.filter(u=>!u.hidden).map(u=>{const d=!!(u.variantLightId&&u.variantDarkId),m=d?n===u.id||n===u.variantLightId||n===u.variantDarkId:n===u.id,h=d&&s===u.variantLightId;return l.jsxs("button",{type:"button",className:`${he.themeOption} ${m?he.themeOptionSelected:""}`,"aria-pressed":m,onClick:()=>i(u.id),children:[l.jsxs("span",{className:he.themeOptionHeader,children:[l.jsxs("span",{children:[l.jsx("span",{className:he.themeOptionLabel,children:u.label}),l.jsx("span",{className:he.themeOptionDesc,children:u.description})]}),d&&l.jsxs("span",{className:he.variantToggle,children:[l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantLightId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantLightId))},"aria-label":"Light variant","aria-pressed":m&&h,children:"☼"}),l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&!h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantDarkId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantDarkId))},"aria-label":"Dark variant","aria-pressed":m&&!h,children:"☾"})]})]}),u.swatches&&l.jsx("span",{className:he.themeSwatches,children:u.swatches.map((g,v)=>l.jsx("span",{className:he.themeSwatch,style:{background:g}},v))})]},u.id)})}),l.jsxs("label",{className:he.systemToggle,children:[l.jsx("input",{type:"checkbox",checked:o,onChange:u=>c(u.target.checked)}),l.jsx("span",{children:"Match system light/dark preference"})]}),l.jsx("p",{className:he.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),l.jsxs("p",{className:he.themeActive,children:["Active theme: ",l.jsx("strong",{children:s})]})]})}function LI({connected:n,environments:s,sessions:i}){const o=s.filter(d=>d.status==="connected").length,c=s.length,u=i.filter(d=>["running","idle"].includes(d.status)).length;return l.jsxs("section",{className:he.section,"data-testid":"about-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"About"}),l.jsx("p",{className:he.sectionDescription,children:"Connection status and application information."}),l.jsxs("div",{className:he.aboutGrid,children:[l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Connection"}),l.jsxs("span",{className:he.aboutValue,children:[l.jsx("span",{className:`${he.aboutDot} ${n?he.aboutDotConnected:he.aboutDotDisconnected}`}),n?"Connected":"Disconnected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Environments"}),l.jsxs("span",{className:he.aboutValue,children:[o,"/",c," connected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Active Sessions"}),l.jsx("span",{className:he.aboutValue,children:u})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Version"}),l.jsx("span",{className:he.aboutValue,children:"0.85.2"})]})]})]})}const UI="_container_cddyd_1",zI="_header_cddyd_8",PI="_headerTitle_cddyd_35",VI="_badge_cddyd_44",HI="_headerActions_cddyd_54",qI="_body_cddyd_61",GI="_formContent_cddyd_73",$I="_section_cddyd_85",FI="_label_cddyd_91",ZI="_titleInput_cddyd_98",KI="_descriptionTextarea_cddyd_131",YI="_parentContext_cddyd_167",JI="_parentLabel_cddyd_175",WI="_parentName_cddyd_182",XI="_personaSelect_cddyd_186",QI="_depList_cddyd_220",e5="_depItem_cddyd_226",t5="_depItemSelected_cddyd_248",n5="_noDeps_cddyd_252",s5="_btnPrimary_cddyd_258",a5="_btnGhost_cddyd_289",Oe={container:UI,header:zI,headerTitle:PI,badge:VI,headerActions:HI,body:qI,formContent:GI,section:$I,label:FI,titleInput:ZI,descriptionTextarea:KI,parentContext:YI,parentLabel:JI,parentName:WI,personaSelect:XI,depList:QI,depItem:e5,depItemSelected:t5,noDeps:n5,btnPrimary:s5,btnGhost:a5};function xx({mode:n,taskId:s,workspaceId:i,parentTaskId:o,environmentId:c,tasks:u,workspaces:d,personas:m,onCreateTask:h,onUpdateTask:g,onEditDone:v,onShowToast:b}){const _=St(),S=n==="edit",T=S&&s?u.find(me=>me.id===s):void 0,N=S?(T==null?void 0:T.workspaceId)??"":i??"",[j,w]=y.useState(N),C=N||j,A=d.find(me=>me.id===C),M=c??(A==null?void 0:A.environmentId),D=!S&&!i,E=S?(T==null?void 0:T.parentTaskId)??"":o??"",H=E?u.find(me=>me.id===E):void 0,[z,Z]=y.useState((T==null?void 0:T.title)??""),[F,Q]=y.useState((T==null?void 0:T.description)??""),[ae,pe]=y.useState((T==null?void 0:T.dependsOn)??[]),[oe,X]=y.useState((T==null?void 0:T.defaultPersonaId)??""),[B,$]=y.useState((T==null?void 0:T.canDecompose)??!1),[te,re]=y.useState(!1),de=y.useRef(!1);y.useEffect(()=>{S&&T&&!de.current&&(de.current=!0,Z(T.title),Q(T.description),pe(T.dependsOn),X(T.defaultPersonaId),$(T.canDecompose))},[S,T]);const $e=u.filter(me=>me.workspaceId===C&&(!S||me.id!==s)&&me.id!==E),we=z.trim().length>0&&(!S||T!==void 0)&&C.length>0,Se=me=>{pe(Ce=>Ce.includes(me)?Ce.filter(Ut=>Ut!==me):[...Ce,me])},Ie=()=>{!we||te||S&&T===void 0||(S&&s?(g(s,z.trim(),F,ae,oe),b==null||b("Task updated","success"),v?v():_(os(s,void 0,C,M),{replace:!0})):(re(!0),h(C,z.trim(),F,ae.length>0?ae:void 0,E||void 0,oe,B,()=>{b==null||b("Task created","success"),_(i?Wi(i,M):"/tasks",{replace:!0})},me=>{b==null||b(me,"error"),re(!1)})))},le=()=>{if(v){v();return}_(S&&s?os(s,void 0,C,M):i?Wi(i,M):"/tasks")},fe=S?"edit task":E?"child task":"new task";return l.jsxs("div",{className:Oe.container,children:[l.jsxs("div",{className:Oe.header,children:[l.jsxs("div",{className:Oe.headerTitle,children:[l.jsx("span",{className:Oe.badge,children:fe}),H&&l.jsxs("span",{className:Oe.parentContext,children:[l.jsx("span",{className:Oe.parentLabel,children:"Child of"}),l.jsx("span",{className:Oe.parentName,children:H.title})]})]}),l.jsxs("div",{className:Oe.headerActions,children:[l.jsx("button",{onClick:Ie,disabled:!we||te,className:Oe.btnPrimary,"data-testid":"task-edit-save",children:te?"Creating…":S?"Save Changes":"Create"}),l.jsx("button",{onClick:le,className:Oe.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:Oe.body,children:l.jsxs("div",{className:Oe.formContent,children:[D&&l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-workspace",children:"Workspace"}),l.jsxs("select",{id:"task-edit-workspace",value:j,onChange:me=>w(me.target.value),className:Oe.personaSelect,"data-testid":"task-edit-workspace",children:[l.jsx("option",{value:"",children:"Select a workspace..."}),d.map(me=>l.jsx("option",{value:me.id,children:me.name},me.id))]})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-title",children:"Title"}),l.jsx("input",{id:"task-edit-title",type:"text",value:z,onChange:me=>Z(me.target.value),placeholder:"Task title...",autoFocus:!0,className:Oe.titleInput,"data-testid":"task-edit-title",onKeyDown:me=>{me.key==="Enter"&&we&&Ie()}})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-description",children:"Description"}),l.jsx("textarea",{id:"task-edit-description",value:F,onChange:me=>Q(me.target.value),placeholder:"Describe the task... (markdown supported)",className:Oe.descriptionTextarea,"data-testid":"task-edit-description",rows:8})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-persona",children:"Default Persona"}),l.jsxs("select",{id:"task-edit-persona",value:oe,onChange:me=>X(me.target.value),className:Oe.personaSelect,"data-testid":"task-edit-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),m.map(me=>l.jsx("option",{value:me.id,children:me.name},me.id))]})]}),!S&&l.jsx("div",{className:Oe.section,children:l.jsxs("label",{className:Oe.depItem,"data-testid":"task-edit-can-decompose",children:[l.jsx("input",{type:"checkbox",checked:B,onChange:me=>$(me.target.checked)}),"Can spawn subtasks"]})}),l.jsxs("div",{className:Oe.section,children:[l.jsx("div",{className:Oe.label,children:"Dependencies"}),$e.length===0?l.jsx("div",{className:Oe.noDeps,children:"No other tasks in this workspace"}):l.jsx("div",{className:Oe.depList,children:$e.map(me=>{const Ce=ae.includes(me.id);return l.jsxs("label",{className:`${Oe.depItem} ${Ce?Oe.depItemSelected:""}`,"data-testid":`dep-option-${me.id}`,children:[l.jsx("input",{type:"checkbox",checked:Ce,onChange:()=>Se(me.id)}),me.title,l.jsxs("span",{style:{opacity:.5,fontSize:"11px",marginLeft:"4px"},children:["(",me.status,")"]})]},me.id)})})]})]})})]})}const i5="_container_legrg_1",o5="_header_legrg_8",r5="_headerTitle_legrg_35",l5="_badge_legrg_44",c5="_headerActions_legrg_54",u5="_body_legrg_61",d5="_formContent_legrg_73",f5="_section_legrg_85",p5="_label_legrg_91",m5="_nameInput_legrg_98",h5="_fieldInput_legrg_131",g5="_adapterSelect_legrg_164",v5="_readOnlyValue_legrg_198",y5="_codespaceSection_legrg_204",b5="_codespaceActions_legrg_210",_5="_creatingHint_legrg_216",x5="_errorHint_legrg_222",S5="_btnPrimary_legrg_235",T5="_btnGhost_legrg_266",ne={container:i5,header:o5,headerTitle:r5,badge:l5,headerActions:c5,body:u5,formContent:d5,section:f5,label:p5,nameInput:m5,fieldInput:h5,adapterSelect:g5,readOnlyValue:v5,codespaceSection:y5,codespaceActions:b5,creatingHint:_5,errorHint:x5,btnPrimary:S5,btnGhost:T5},hc=1,gc=65535;function jf(n){if(!n.trim())return!0;const s=Number(n);return Number.isInteger(s)&&s>=hc&&s<=gc}function Cf(n){try{const s=JSON.parse(n);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}catch{}return{}}function k5({codespaceName:n,onCodespaceNameChange:s,envName:i,onEnvNameChange:o,codespaces:c,codespaceError:u,codespaceListError:d,codespaceCreating:m,onCreateCodespace:h}){const[g,v]=y.useState("pick"),[b,_]=y.useState(""),[S,T]=y.useState("");return g==="create"?l.jsxs("div",{className:ne.codespaceSection,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Repository"}),l.jsx("input",{type:"text",value:b,onChange:N=>_(N.target.value),placeholder:"owner/repo",className:ne.fieldInput,"data-testid":"env-codespace-repo"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Machine Type"}),l.jsx("input",{type:"text",value:S,onChange:N=>T(N.target.value),placeholder:"Machine type (optional)...",className:ne.fieldInput,"data-testid":"env-codespace-machine"})]}),l.jsxs("div",{className:ne.codespaceActions,children:[l.jsx("button",{onClick:()=>{b.trim()&&(h(b.trim(),S.trim()||void 0),v("pick"),_(""),T(""))},disabled:!b.trim(),className:ne.btnPrimary,children:"Create"}),l.jsx("button",{onClick:()=>{v("pick"),_(""),T("")},className:ne.btnGhost,children:"Cancel"})]})]}):l.jsx("div",{className:ne.codespaceSection,children:l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Codespace"}),!d&&l.jsxs("select",{value:n,onChange:N=>{N.target.value==="__create__"?(v("create"),s("")):(s(N.target.value),N.target.value&&!i.trim()&&o(N.target.value))},disabled:m,className:ne.adapterSelect,"data-testid":"env-codespace-select",children:[l.jsx("option",{value:"",children:"Select a codespace..."}),c.map(N=>l.jsxs("option",{value:N.name,children:[N.name," (",N.repository,") — ",N.state]},N.name)),l.jsx("option",{value:"__create__",children:"Create new from repo..."})]}),m&&l.jsx("span",{className:ne.creatingHint,children:"Creating codespace..."}),d&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ne.errorHint,children:d}),l.jsx("input",{type:"text",value:n,onChange:N=>s(N.target.value),placeholder:"Or enter codespace name manually...",className:ne.fieldInput,"data-testid":"env-codespace-manual"})]}),u&&!d&&l.jsx("span",{className:ne.errorHint,children:u})]})})}function Sx({mode:n,environmentId:s,environments:i,onAddEnvironment:o,onUpdateEnvironment:c,onListCodespaces:u,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v,onShowToast:b}){const _=St(),S=n==="edit",T=S&&s?i.find(le=>le.id===s):void 0,[N,j]=y.useState(""),[w,C]=y.useState("local"),[A,M]=y.useState(""),[D,E]=y.useState(""),[H,z]=y.useState(""),[Z,F]=y.useState(""),[Q,ae]=y.useState(""),[pe,oe]=y.useState(""),[X,B]=y.useState(""),[$,te]=y.useState(null),re=y.useCallback(()=>{const le={};if(w==="local"){if(A.trim()&&(le.host=A.trim()),D.trim()){const fe=Number(D);Number.isInteger(fe)&&(le.port=fe)}}else if(w==="ssh"){if(le.host=A.trim(),H.trim()&&(le.user=H.trim()),D.trim()){const fe=Number(D);Number.isInteger(fe)&&(le.sshPort=fe)}Z.trim()&&(le.identityFile=Z.trim())}else w==="docker"?(Q.trim()&&(le.image=Q.trim()),pe.trim()&&(le.repo=pe.trim())):w==="codespace"&&(le.codespaceName=X.trim());return le},[w,A,D,H,Z,Q,pe,X]),de=()=>!(!N.trim()||w==="ssh"&&!A.trim()||w==="codespace"&&!X.trim()||(w==="local"||w==="ssh")&&!jf(D)),$e=()=>{de()&&(o(N.trim(),w,re()),b==null||b("Environment added successfully","success"),_(Xi,{replace:!0}))},we=()=>{_(s?Qi(s):Xi)},Se=y.useCallback((le,fe)=>{if(!T||!s)return;const me=Cf(T.adapterConfig),Ce=fe.trim();Ce?me[le]=Ce:delete me[le],c(s,{adapterConfig:me})},[T,s,c]),Ie=y.useCallback((le,fe)=>{if(!T||!s)return;const me=Cf(T.adapterConfig);if(fe.trim()){const Ce=Number(fe);Number.isInteger(Ce)&&Ce>=hc&&Ce<=gc&&(me[le]=Ce)}else delete me[le];c(s,{adapterConfig:me})},[T,s,c]);if(S){if(!T)return l.jsxs("div",{className:ne.container,children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"edit environment"})}),l.jsx("div",{className:ne.headerActions,children:l.jsx("button",{onClick:we,className:ne.btnGhost,children:"Back"})})]}),l.jsx("div",{className:ne.body,children:l.jsx("div",{className:ne.formContent,children:l.jsx("span",{className:ne.readOnlyValue,children:"Environment not found"})})})]});const le=Cf(T.adapterConfig);return l.jsxs("div",{className:ne.container,"data-testid":"env-edit-panel",children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"edit environment"})}),l.jsx("div",{className:ne.headerActions,children:l.jsx("button",{onClick:we,className:ne.btnGhost,"data-testid":"env-edit-back",children:"Back"})})]}),l.jsx("div",{className:ne.body,children:l.jsxs("div",{className:ne.formContent,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Name"}),l.jsx(Yt,{value:T.displayName,onSave:fe=>{s&&c(s,{displayName:fe})},validate:fe=>fe.trim()===""?"Name cannot be empty":void 0,mode:"edit",fieldId:"name",activeFieldId:$,onActivate:te,placeholder:"Environment name",ariaLabel:"Environment name","data-testid":"env-edit-name"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Adapter Type"}),l.jsx("span",{className:ne.readOnlyValue,"data-testid":"env-edit-adapter-type",children:T.adapterType})]}),T.adapterType==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Host"}),l.jsx(Yt,{value:String(le.host??""),onSave:fe=>Se("host",fe),mode:"edit",fieldId:"host",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Port"}),l.jsx(Yt,{value:String(le.port??""),onSave:fe=>Ie("port",fe),validate:fe=>jf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"port",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Port","data-testid":"env-edit-port"})]})]}),T.adapterType==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Host"}),l.jsx(Yt,{value:String(le.host??""),onSave:fe=>Se("host",fe),validate:fe=>fe.trim()===""?"Host is required":void 0,mode:"edit",fieldId:"host",activeFieldId:$,onActivate:te,placeholder:"hostname or IP",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"User"}),l.jsx(Yt,{value:String(le.user??""),onSave:fe=>Se("user",fe),mode:"edit",fieldId:"user",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"User","data-testid":"env-edit-user"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"SSH Port"}),l.jsx(Yt,{value:String(le.sshPort??""),onSave:fe=>Ie("sshPort",fe),validate:fe=>jf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"sshPort",activeFieldId:$,onActivate:te,placeholder:"22",ariaLabel:"SSH Port","data-testid":"env-edit-ssh-port"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Identity File"}),l.jsx(Yt,{value:String(le.identityFile??""),onSave:fe=>Se("identityFile",fe),mode:"edit",fieldId:"identityFile",activeFieldId:$,onActivate:te,placeholder:"~/.ssh/id_rsa",ariaLabel:"Identity File","data-testid":"env-edit-identity-file"})]})]}),T.adapterType==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Image"}),l.jsx(Yt,{value:String(le.image??""),onSave:fe=>Se("image",fe),mode:"edit",fieldId:"image",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Image","data-testid":"env-edit-image"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Repo"}),l.jsx(Yt,{value:String(le.repo??""),onSave:fe=>Se("repo",fe),mode:"edit",fieldId:"repo",activeFieldId:$,onActivate:te,placeholder:"(none)",ariaLabel:"Repo","data-testid":"env-edit-repo"})]})]}),T.adapterType==="codespace"&&l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Codespace Name"}),l.jsx(Yt,{value:String(le.codespaceName??""),onSave:fe=>Se("codespaceName",fe),validate:fe=>fe.trim()===""?"Codespace name is required":void 0,mode:"edit",fieldId:"codespaceName",activeFieldId:$,onActivate:te,placeholder:"codespace-name",ariaLabel:"Codespace Name","data-testid":"env-edit-codespace-name"})]})]})})]})}return l.jsxs("div",{className:ne.container,"data-testid":"env-create-panel",children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"new environment"})}),l.jsxs("div",{className:ne.headerActions,children:[l.jsx("button",{onClick:$e,disabled:!de(),className:ne.btnPrimary,"data-testid":"env-create-submit",children:"Create"}),l.jsx("button",{onClick:we,className:ne.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:ne.body,children:l.jsxs("div",{className:ne.formContent,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-name",children:"Name"}),l.jsx("input",{id:"env-create-name",type:"text",value:N,onChange:le=>j(le.target.value),placeholder:"Environment name...",autoFocus:!0,className:ne.nameInput,"data-testid":"env-create-name",onKeyDown:le=>{le.key==="Enter"&&de()&&$e()}})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-adapter",children:"Adapter Type"}),l.jsxs("select",{id:"env-create-adapter",value:w,onChange:le=>{C(le.target.value),le.target.value==="codespace"&&u()},className:ne.adapterSelect,"data-testid":"env-create-adapter",children:[l.jsx("option",{value:"local",children:"local"}),l.jsx("option",{value:"ssh",children:"ssh"}),l.jsx("option",{value:"docker",children:"docker"}),l.jsx("option",{value:"codespace",children:"codespace"})]})]}),w==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:le=>M(le.target.value),placeholder:"Host (optional)...",className:ne.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-port",children:"Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:D,onChange:le=>E(le.target.value),placeholder:"Port (optional)...",className:ne.fieldInput,"data-testid":"env-create-port"})]})]}),w==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:le=>M(le.target.value),placeholder:"Host (required)...",className:ne.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-user",children:"User"}),l.jsx("input",{id:"env-create-user",type:"text",value:H,onChange:le=>z(le.target.value),placeholder:"User (optional)...",className:ne.fieldInput,"data-testid":"env-create-user"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-port",children:"SSH Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:D,onChange:le=>E(le.target.value),placeholder:"SSH port (optional)...",className:ne.fieldInput,"data-testid":"env-create-port"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-identity",children:"Identity File"}),l.jsx("input",{id:"env-create-identity",type:"text",value:Z,onChange:le=>F(le.target.value),placeholder:"Identity file (optional)...",className:ne.fieldInput,"data-testid":"env-create-identity"})]})]}),w==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-image",children:"Image"}),l.jsx("input",{id:"env-create-image",type:"text",value:Q,onChange:le=>ae(le.target.value),placeholder:"Image (optional)...",className:ne.fieldInput,"data-testid":"env-create-image"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-repo",children:"Repo"}),l.jsx("input",{id:"env-create-repo",type:"text",value:pe,onChange:le=>oe(le.target.value),placeholder:"Repo (optional)...",className:ne.fieldInput,"data-testid":"env-create-repo"})]})]}),w==="codespace"&&l.jsx(k5,{codespaceName:X,onCodespaceNameChange:B,envName:N,onEnvNameChange:j,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v})]})})]})}const w5="_group_1iprv_1",N5="_groupTitle_1iprv_8",j5="_shortcutList_1iprv_17",C5="_shortcutRow_1iprv_23",E5="_keys_1iprv_36",A5="_kbd_1iprv_43",D5="_description_1iprv_60",qa={group:w5,groupTitle:N5,shortcutList:j5,shortcutRow:C5,keys:E5,kbd:A5,description:D5},R5=[{title:"Global",shortcuts:[{keys:["?"],description:"Open keyboard shortcuts reference"},{keys:["N"],description:"Create a new task"},{keys:["Escape"],description:"Close dialog or cancel editing"}]},{title:"Task Page",shortcuts:[{keys:["1"],description:"Switch to Overview tab"},{keys:["2"],description:"Switch to Stream tab"},{keys:["3"],description:"Switch to Findings tab"}]},{title:"Workspace Page",shortcuts:[{keys:["1"],description:"Switch to Graph view"},{keys:["2"],description:"Switch to Board view"},{keys:["3"],description:"Switch to Tasks view"}]},{title:"Navigation Lists",shortcuts:[{keys:["←"],description:"Previous tab (horizontal nav)"},{keys:["→"],description:"Next tab (horizontal nav)"},{keys:["↑"],description:"Previous item (vertical nav)"},{keys:["↓"],description:"Next item (vertical nav)"},{keys:["J"],description:"Next item (alias for arrow down/right)"},{keys:["K"],description:"Previous item (alias for arrow up/left)"},{keys:["Home"],description:"Jump to first item"},{keys:["End"],description:"Jump to last item"}]},{title:"Editing",shortcuts:[{keys:["Enter"],description:"Activate / save inline edit"},{keys:["Space"],description:"Activate button or start editing"},{keys:["Escape"],description:"Cancel edit and discard changes"}]},{title:"Chat",shortcuts:[{keys:["Enter"],description:"Send message (when input is focused)"}]}];function M5(){return l.jsxs("section",{className:he.section,"data-testid":"keyboard-shortcuts-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"Keyboard Shortcuts"}),l.jsx("p",{className:he.sectionDescription,children:"Keyboard shortcuts for navigating and interacting with Grackle. Global shortcuts are suppressed while typing in text fields."}),R5.map(n=>l.jsxs("div",{className:qa.group,children:[l.jsx("h4",{className:qa.groupTitle,children:n.title}),l.jsx("div",{className:qa.shortcutList,children:n.shortcuts.map(s=>l.jsxs("div",{className:qa.shortcutRow,children:[l.jsx("span",{className:qa.keys,children:s.keys.map(i=>l.jsx("kbd",{className:qa.kbd,children:i},i))}),l.jsx("span",{className:qa.description,children:s.description})]},s.description))})]},n.title))]})}const O5="_workpadSection_y8nj9_1",I5="_workpadLabel_y8nj9_9",B5="_workpadStatus_y8nj9_17",L5="_workpadSummary_y8nj9_23",U5="_workpadExtra_y8nj9_29",ua={workpadSection:O5,workpadLabel:I5,workpadStatus:B5,workpadSummary:L5,workpadExtra:U5};function z5({workpad:n}){if(!n)return;let s;try{const i=JSON.parse(n);if(i==null||typeof i!="object"||Array.isArray(i))return;s=i}catch{return l.jsxs("div",{className:ua.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:ua.workpadLabel,children:"Workpad"}),l.jsx("div",{className:ua.workpadExtra,children:n})]})}if(!(!s.status&&!s.summary&&!s.extra))return l.jsxs("div",{className:ua.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:ua.workpadLabel,children:"Workpad"}),s.status&&l.jsx("div",{className:ua.workpadStatus,"data-testid":"workpad-status",children:s.status}),s.summary&&l.jsx("div",{className:ua.workpadSummary,"data-testid":"workpad-summary",children:s.summary}),s.extra&&Object.keys(s.extra).length>0&&l.jsx("div",{className:ua.workpadExtra,"data-testid":"workpad-extra",children:JSON.stringify(s.extra,null,2)})]})}const P5=[{key:"claude",label:"Claude",description:"Forward Claude credentials for AI agent access.",options:[{value:"off",label:"Off"},{value:"subscription",label:"Subscription"},{value:"api_key",label:"API Key"}]},{key:"github",label:"GitHub",description:"Forward GITHUB_TOKEN and GH_TOKEN for git operations.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"copilot",label:"Copilot",description:"Forward Copilot tokens (COPILOT_GITHUB_TOKEN, CLI config).",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"codex",label:"Codex",description:"Forward OPENAI_API_KEY for Codex/OpenAI access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"goose",label:"Goose",description:"Forward Goose config and API keys for Goose agent access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]}];function V5({credentialProviders:n,onUpdateCredentialProviders:s}){const i=(o,c)=>{const u={...n};o==="claude"?u.claude=c:u[o]=c,s(u)};return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Credential Providers"}),l.jsx("p",{className:he.sectionDescription,children:"Enable providers to automatically forward credentials to environments at task start. Credentials are read fresh from the host each time."}),l.jsx("div",{className:he.tokenList,children:P5.map(o=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenName,children:o.label}),l.jsx("span",{className:he.tokenTarget,children:o.description}),l.jsx("select",{className:he.select,value:n[o.key],onChange:c=>i(o.key,c.target.value),children:o.options.map(c=>l.jsx("option",{value:c.value,children:c.label},c.value))})]},o.key))})]})}const H5="_container_10efq_1",q5="_header_10efq_7",G5="_form_10efq_19",$5="_formActions_10efq_87",F5="_editableSection_10efq_94",Z5="_list_10efq_105",K5="_card_10efq_111",Y5="_cardHeader_10efq_125",J5="_cardTitle_10efq_135",W5="_defaultBadge_10efq_141",X5="_cardActions_10efq_155",Q5="_description_10efq_160",e4="_meta_10efq_166",t4="_empty_10efq_212",n4="_typeToggle_10efq_348",s4="_typeBadge_10efq_362",a4="_scriptEditor_10efq_376",i4="_optional_10efq_383",gt={container:H5,header:q5,form:G5,formActions:$5,editableSection:F5,list:Z5,card:K5,cardHeader:Y5,cardTitle:J5,defaultBadge:W5,cardActions:X5,description:Q5,meta:e4,empty:t4,typeToggle:n4,typeBadge:s4,scriptEditor:a4,optional:i4};function o4({personas:n,appDefaultPersonaId:s,onDeletePersona:i,onSetAppDefaultPersonaId:o,onNavigateToNew:c,onNavigateToPersona:u}){const[d,m]=y.useState(null),h=d?n.find(v=>v.id===d):void 0,g=async v=>{await i(v),m(null)};return l.jsxs("div",{className:gt.container,children:[l.jsxs("div",{className:gt.header,children:[l.jsx("h2",{children:"Personas"}),l.jsx(As,{variant:"primary",size:"md",onClick:c,"data-testid":"persona-new-button",children:"+ New Persona"})]}),n.length===0?l.jsx("p",{className:gt.empty,children:"No personas yet. Create one to get started."}):l.jsx("div",{className:gt.list,children:n.map(v=>{const b=s===v.id,_=v.type==="script";return l.jsxs("div",{className:gt.card,"data-testid":`persona-card-${v.id}`,onClick:()=>u(v.id),role:"button",tabIndex:0,onKeyDown:S=>{S.currentTarget===S.target&&(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),u(v.id))},children:[l.jsxs("div",{className:gt.cardHeader,children:[l.jsxs("span",{className:gt.cardTitle,children:[l.jsx("strong",{children:v.name}),l.jsx("span",{className:gt.typeBadge,"data-testid":`persona-type-badge-${v.id}`,children:_?"Script":"Agent"}),b&&l.jsx("span",{className:gt.defaultBadge,"data-testid":`persona-default-badge-${v.id}`,children:"App Default"})]}),l.jsxs("div",{className:gt.cardActions,onClick:S=>S.stopPropagation(),children:[!b&&l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>{o(v.id).catch(()=>{})},"data-testid":`persona-set-default-${v.id}`,title:"Set as app default persona",children:"Set Default"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>u(v.id),children:"Edit"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>m(v.id),"data-testid":`persona-delete-${v.id}`,children:"Delete"})]})]}),v.description&&l.jsx("p",{className:gt.description,children:v.description}),l.jsxs("div",{className:gt.meta,children:[v.runtime&&l.jsxs("span",{children:["Runtime: ",v.runtime]}),v.model&&l.jsxs("span",{children:["Model: ",v.model]}),v.maxTurns>0&&l.jsxs("span",{children:["Max turns: ",v.maxTurns]})]})]},v.id)})}),l.jsx(Ja,{isOpen:d!==null,title:"Delete Persona?",description:`"${(h==null?void 0:h.name)??""}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:()=>{d&&g(d).catch(()=>{})},onCancel:()=>m(null)})]})}const r4="_container_uy08i_1",l4="_header_uy08i_7",c4="_count_uy08i_13",u4="_presets_uy08i_18",d4="_presetButton_uy08i_24",f4="_filterInput_uy08i_41",p4="_groups_uy08i_53",m4="_group_uy08i_53",h4="_groupHeader_uy08i_68",g4="_groupName_uy08i_77",v4="_groupCount_uy08i_81",y4="_toolList_uy08i_87",b4="_toolItem_uy08i_95",_4="_toolName_uy08i_103",tn={container:r4,header:l4,count:c4,presets:u4,presetButton:d4,filterInput:f4,groups:p4,group:m4,groupHeader:h4,groupName:g4,groupCount:v4,toolList:y4,toolItem:b4,toolName:_4},x4=(()=>{const n=new Map;for(const s of ob){const i=s==="get_version_status"?"version":s.split("_")[0];n.has(i)||n.set(i,[]),n.get(i).push(s)}return[...n.entries()].sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>({group:s,tools:i.sort()}))})(),S4=[{name:"default",label:"Default",tools:rb},{name:"worker",label:"Worker",tools:rT},{name:"orchestrator",label:"Orchestrator",tools:lT},{name:"admin",label:"Admin",tools:cT}];function qy({selectedTools:n,onChange:s,disabled:i}){const[o,c]=y.useState(""),u=y.useMemo(()=>new Set(n),[n]),d=y.useCallback(v=>{if(i)return;const b=new Set(u);b.has(v)?b.delete(v):b.add(v),s([...b].sort())},[u,s,i]),m=y.useCallback((v,b)=>{if(i)return;const _=new Set(u);for(const S of v)b?_.delete(S):_.add(S);s([..._].sort())},[u,s,i]),h=y.useCallback(v=>{i||s([...v].sort())},[s,i]),g=o.toLowerCase();return l.jsxs("div",{className:tn.container,"data-testid":"mcp-tool-selector",children:[l.jsx("div",{className:tn.header,children:l.jsx("span",{className:tn.count,children:n.length===0?`Using default (${rb.length} tools)`:`${n.length} of ${ob.size} tools selected`})}),l.jsxs("div",{className:tn.presets,"data-testid":"mcp-tool-presets",children:[S4.map(v=>l.jsx("button",{type:"button",className:tn.presetButton,disabled:i,onClick:()=>h(v.tools),"data-testid":`preset-${v.name}`,children:v.label},v.name)),l.jsx("button",{type:"button",className:tn.presetButton,disabled:i,onClick:()=>s([]),"data-testid":"preset-clear",children:"Clear"})]}),l.jsx("input",{type:"text",className:tn.filterInput,placeholder:"Filter tools...",value:o,onChange:v=>c(v.target.value),disabled:i,"data-testid":"mcp-tool-filter"}),l.jsx("div",{className:tn.groups,children:x4.map(({group:v,tools:b})=>{const _=g?b.filter(T=>T.toLowerCase().includes(g)):b;if(_.length===0)return null;const S=_.every(T=>u.has(T));return l.jsxs("div",{className:tn.group,"data-testid":`tool-group-${v}`,children:[l.jsxs("label",{className:tn.groupHeader,children:[l.jsx("input",{type:"checkbox",checked:S,onChange:()=>m(_,S),disabled:i,"data-testid":`group-toggle-${v}`}),l.jsx("span",{className:tn.groupName,children:v}),l.jsxs("span",{className:tn.groupCount,children:["(",_.filter(T=>u.has(T)).length,"/",_.length,")"]})]}),l.jsx("div",{className:tn.toolList,children:_.map(T=>l.jsxs("label",{className:tn.toolItem,children:[l.jsx("input",{type:"checkbox",checked:u.has(T),onChange:()=>d(T),disabled:i,"data-testid":`tool-${T}`}),l.jsx("span",{className:tn.toolName,children:T})]},T))})]},v)})})]})}const T4="_nav_1bhou_1",k4="_tab_1bhou_24",w4="_tabIcon_1bhou_62",N4="_tabActive_1bhou_68",ac={nav:T4,tab:k4,tabIcon:w4,tabActive:N4},Es=[{path:"credentials",label:"Credentials",icon:"🔑"},{path:"personas",label:"Personas",icon:"👤"},{path:"appearance",label:"Appearance",icon:"🎨"},{path:"shortcuts",label:"Shortcuts",icon:"⌨️"},{path:"about",label:"About",icon:"ℹ️"}];function j4(){var d;const n=Lt(),s=St(),i=y.useRef(null),o=((d=Es.find(m=>{const h=`${Ji}/${m.path}`;return n.pathname===h||n.pathname.startsWith(`${h}/`)}))==null?void 0:d.path)??Es[0].path,c=y.useCallback(m=>{s(`${Ji}/${m}`)},[s]),u=y.useCallback(m=>{var S,T;const h=(S=i.current)==null?void 0:S.querySelectorAll('[role="tab"]');if(!h)return;const g=Array.from(h).findIndex(N=>N===document.activeElement),v=g>=0?g:Es.findIndex(N=>N.path===o);let b=v;if(m.key==="ArrowDown"||m.key==="j"||m.key==="J")m.preventDefault(),b=(v+1)%Es.length;else if(m.key==="ArrowUp"||m.key==="k"||m.key==="K")m.preventDefault(),b=(v-1+Es.length)%Es.length;else if(m.key==="Home")m.preventDefault(),b=0;else if(m.key==="End")m.preventDefault(),b=Es.length-1;else return;const _=Es[b].path;s(`${Ji}/${_}`),(T=h[b])==null||T.focus()},[o,s]);return l.jsx("nav",{className:ac.nav,ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Settings",onKeyDown:u,children:Es.map(m=>{const h=m.path===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":h,tabIndex:h?0:-1,className:`${ac.tab} ${h?ac.tabActive:""}`,onClick:()=>c(m.path),children:[l.jsx("span",{className:ac.tabIcon,"aria-hidden":"true",children:m.icon}),m.label]},m.path)})})}function C4({tasks:n,taskStatusById:s,sessionStatusByTaskId:i}){const o=new Map;for(const u of n)if(u.parentTaskId){const d=o.get(u.parentTaskId);d?d.push(u):o.set(u.parentTaskId,[u])}const c=new Map(u0.map(u=>[u,[]]));for(const u of n){const d=fp(u.status),m=u.dependsOn.length>0&&u.dependsOn.some(T=>s.get(T)!=="complete"),h=o.get(u.id)??[],g=h.length,v=h.filter(T=>T.status==="complete").length;let b;if(d==="paused"&&i){const T=i.get(u.id);T==="idle"?b="Needs input":T==="completed"&&(b="Ready to complete")}const _={task:u,isBlocked:m,childCount:g,doneChildCount:v,pausedSubBadge:b},S=c.get(d);S?S.push(_):c.get("not_started").push(_)}for(const u of c.values())u.sort((d,m)=>d.task.sortOrder-m.task.sortOrder);return u0.map(u=>{const d=ma(u);return{status:u,label:d.label,style:d,tasks:c.get(u)??[]}})}const E4="_boardContainer_1c4y1_1",A4="_column_1c4y1_17",D4="_columnHeader_1c4y1_34",R4="_columnIcon_1c4y1_47",M4="_columnLabel_1c4y1_52",O4="_columnCount_1c4y1_57",I4="_cardList_1c4y1_67",B4="_emptyPlaceholder_1c4y1_76",L4="_card_1c4y1_67",U4="_cardHeader_1c4y1_107",z4="_cardStatusIcon_1c4y1_113",P4="_cardTitle_1c4y1_119",V4="_cardBadges_1c4y1_127",H4="_badge_1c4y1_134",q4="_blockedBadge_1c4y1_146",G4="_childBadge_1c4y1_151",$4="_depBadge_1c4y1_155",F4="_parentBadge_1c4y1_159",Z4="_pausedSubBadge_1c4y1_166",K4="_personaBadge_1c4y1_170",Y4="_envBadge_1c4y1_174",J4="_emptyCta_1c4y1_178",W4="_ctaButton_1c4y1_188",X4="_ctaDescription_1c4y1_204",Xe={boardContainer:E4,column:A4,columnHeader:D4,columnIcon:R4,columnLabel:M4,columnCount:O4,cardList:I4,emptyPlaceholder:B4,card:L4,cardHeader:U4,cardStatusIcon:z4,cardTitle:P4,cardBadges:V4,badge:H4,blockedBadge:q4,childBadge:G4,depBadge:$4,parentBadge:F4,pausedSubBadge:Z4,personaBadge:K4,envBadge:Y4,emptyCta:J4,ctaButton:W4,ctaDescription:X4};function Q4({workspaceId:n,environmentId:s,tasks:i,sessions:o,personas:c,environments:u}){const d=St(),m=y.useMemo(()=>i.filter(_=>_.workspaceId===n),[i,n]),h=y.useMemo(()=>new Map(i.map(_=>[_.id,_.status])),[i]),g=y.useMemo(()=>new Map(m.map(_=>[_.id,_])),[m]),v=y.useMemo(()=>{const _=new Map(o.map(C=>[C.id,C])),S=new Map(c.map(C=>[C.id,C])),T=new Map(u.map(C=>[C.id,C])),N=new Map,j=new Map,w=new Map;for(const C of m)if(C.latestSessionId){const A=_.get(C.latestSessionId);if(A){if(N.set(C.id,A.endReason||A.status),A.personaId){const M=S.get(A.personaId);M&&j.set(C.id,M.name)}if(A.environmentId){const M=T.get(A.environmentId);M&&w.set(C.id,M.displayName)}}}return{sessionStatusByTaskId:N,personaNameByTaskId:j,environmentNameByTaskId:w}},[m,o,c,u]),b=y.useMemo(()=>C4({tasks:m,taskStatusById:h,sessionStatusByTaskId:v.sessionStatusByTaskId}),[m,h,v]);return m.length===0?l.jsxs("div",{className:Xe.emptyCta,"data-testid":"board-empty-cta",children:[l.jsx("button",{className:Xe.ctaButton,onClick:()=>d(ei(n,void 0,s)),children:"Create Task"}),l.jsx("div",{className:Xe.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}):l.jsx("div",{className:Xe.boardContainer,"data-testid":"board-container",children:b.map(_=>l.jsxs("section",{className:Xe.column,"data-testid":`board-column-${_.status}`,"aria-label":`${_.label}, ${_.tasks.length} ${_.tasks.length===1?"task":"tasks"}`,children:[l.jsxs("div",{className:Xe.columnHeader,children:[l.jsx("span",{className:Xe.columnIcon,style:{color:_.style.color},children:_.style.icon}),l.jsx("span",{className:Xe.columnLabel,children:_.label}),l.jsx("span",{className:Xe.columnCount,"data-testid":`board-count-${_.status}`,children:_.tasks.length})]}),l.jsx("div",{className:Xe.cardList,children:_.tasks.length===0?l.jsx("div",{className:Xe.emptyPlaceholder,children:"No tasks"}):l.jsx(rs,{mode:"popLayout",children:_.tasks.map(S=>l.jsx(Ot.div,{layout:!0,initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},children:l.jsx(eB,{boardTask:S,tasksById:g,personaName:v.personaNameByTaskId.get(S.task.id),envName:v.environmentNameByTaskId.get(S.task.id),onClick:()=>d(os(S.task.id,void 0,n,s))})},S.task.id))})})]},_.status))})}function eB({boardTask:n,tasksById:s,personaName:i,envName:o,onClick:c}){const{task:u,isBlocked:d,childCount:m,doneChildCount:h,pausedSubBadge:g}=n,v=ma(u.status),b=u.parentTaskId?s.get(u.parentTaskId):void 0;return l.jsxs("div",{className:Xe.card,tabIndex:0,role:"button","data-testid":`board-card-${u.id}`,onClick:c,onKeyDown:_=>{(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),c())},children:[l.jsxs("div",{className:Xe.cardHeader,children:[l.jsx("span",{className:Xe.cardStatusIcon,style:{color:v.color},children:v.icon}),l.jsx("span",{className:Xe.cardTitle,children:u.title})]}),l.jsxs("div",{className:Xe.cardBadges,children:[b&&l.jsx("span",{className:`${Xe.badge} ${Xe.parentBadge}`,title:b.title,children:b.title}),m>0&&l.jsxs("span",{className:`${Xe.badge} ${Xe.childBadge}`,children:[h,"/",m]}),d&&l.jsx("span",{className:`${Xe.badge} ${Xe.blockedBadge}`,children:"blocked"}),u.dependsOn.length>0&&!d&&l.jsx("span",{className:`${Xe.badge} ${Xe.depBadge}`,children:"dep"}),g&&l.jsx("span",{className:`${Xe.badge} ${Xe.pausedSubBadge}`,children:g}),i&&l.jsx("span",{className:`${Xe.badge} ${Xe.personaBadge}`,children:i}),o&&l.jsx("span",{className:`${Xe.badge} ${Xe.envBadge}`,children:o})]})]})}const tB="_formContent_ymnez_1",nB="_section_ymnez_13",sB="_label_ymnez_19",aB="_titleInput_ymnez_26",iB="_descriptionTextarea_ymnez_58",oB="_selectField_ymnez_94",rB="_checkboxRow_ymnez_128",lB="_checkboxLabel_ymnez_141",cB="_fieldError_ymnez_146",ut={formContent:tB,section:nB,label:sB,titleInput:aB,descriptionTextarea:iB,selectField:oB,checkboxRow:rB,checkboxLabel:lB,fieldError:cB};function uB(n,s){return{name:(n==null?void 0:n.name)??"",description:(n==null?void 0:n.description)??"",repoUrl:(n==null?void 0:n.repoUrl)??"",environmentId:(n==null?void 0:n.environmentId)??s??"",defaultPersonaId:(n==null?void 0:n.defaultPersonaId)??"",useWorktrees:(n==null?void 0:n.useWorktrees)??!0,workingDirectory:(n==null?void 0:n.workingDirectory)??""}}const dB=100;function fB({values:n,onChange:s,environments:i,personas:o,errors:c,disabled:u,autoFocusName:d}){const m=(h,g)=>{s({...n,[h]:g})};return l.jsxs("div",{className:ut.formContent,children:[l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-name",children:"Name"}),l.jsx("input",{id:"ws-name",className:ut.titleInput,type:"text",value:n.name,onChange:h=>m("name",h.target.value),placeholder:"Workspace name",maxLength:dB,autoFocus:d,disabled:u,"data-testid":"workspace-form-name"}),(c==null?void 0:c.name)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-name",children:c.name})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-description",children:"Description"}),l.jsx("textarea",{id:"ws-description",className:ut.descriptionTextarea,value:n.description,onChange:h=>m("description",h.target.value),placeholder:"Optional description (Markdown supported)",disabled:u,"data-testid":"workspace-form-description"})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-repo",children:"Repository URL"}),l.jsx("input",{id:"ws-repo",className:ut.titleInput,type:"text",value:n.repoUrl,onChange:h=>m("repoUrl",h.target.value),placeholder:"https://github.com/org/repo",disabled:u,"data-testid":"workspace-form-repo"}),(c==null?void 0:c.repoUrl)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-repoUrl",children:c.repoUrl})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-environment",children:"Environment"}),l.jsxs("select",{id:"ws-environment",className:ut.selectField,value:n.environmentId,onChange:h=>m("environmentId",h.target.value),disabled:u,"data-testid":"workspace-form-environment",children:[l.jsx("option",{value:"",children:"Select environment…"}),i.map(h=>l.jsx("option",{value:h.id,children:h.displayName||h.id},h.id))]}),(c==null?void 0:c.environmentId)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-environmentId",children:c.environmentId})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-persona",children:"Default Persona"}),l.jsxs("select",{id:"ws-persona",className:ut.selectField,value:n.defaultPersonaId,onChange:h=>m("defaultPersonaId",h.target.value),disabled:u,"data-testid":"workspace-form-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),o.map(h=>l.jsx("option",{value:h.id,children:h.name},h.id))]})]}),l.jsx("div",{className:ut.section,children:l.jsxs("label",{className:ut.checkboxRow,children:[l.jsx("input",{type:"checkbox",checked:n.useWorktrees,onChange:h=>m("useWorktrees",h.target.checked),disabled:u,"data-testid":"workspace-form-worktrees"}),l.jsx("span",{className:ut.checkboxLabel,children:"Enable worktree isolation"})]})}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-workdir",children:"Working Directory"}),l.jsx("input",{id:"ws-workdir",className:ut.titleInput,type:"text",value:n.workingDirectory,onChange:h=>m("workingDirectory",h.target.value),placeholder:"Default (server default)",disabled:u,"data-testid":"workspace-form-workdir"})]})]})}const Tx=y.createContext(void 0),pB=4e3;function mB({children:n}){const[s,i]=y.useState([]),o=y.useRef(0),c=y.useCallback(d=>{i(m=>m.filter(h=>h.id!==d))},[]),u=y.useCallback((d,m="info",h=pB)=>{const g=`toast-${++o.current}`;i(v=>[...v,{id:g,message:d,variant:m,duration:h}])},[]);return l.jsx(Tx.Provider,{value:{toasts:s,showToast:u,dismissToast:c},children:n})}function dn(){const n=y.useContext(Tx);if(!n)throw new Error("useToast must be used within ToastProvider");return n}const op="grackle-theme",kx="grackle-prefer-system",wx="(prefers-color-scheme: dark)";let fr=[],vc;function Ef(){vc=void 0;for(const n of fr)n()}function rp(){return typeof window>"u"?!1:window.matchMedia(wx).matches}function yr(){if(typeof localStorage>"u")return Hy;try{const n=localStorage.getItem(op);if(n!==null&&_x.has(n))return n}catch{}return Hy}function Cc(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(kx)==="true"}catch{return!1}}function lp(n){return Pc.find(s=>s.variantLightId===n||s.variantDarkId===n)}function Nx(n,s){const i=ip(n);if(i!=null&&i.variantDarkId)return s&&i.variantLightId?rp()?i.variantDarkId:i.variantLightId:i.variantDarkId;if(i!=null&&i.hidden&&s){const o=lp(n);if(o!=null&&o.variantLightId&&o.variantDarkId)return rp()?o.variantDarkId:o.variantLightId}return n}function qi(n,s,i=!1){i&&document.documentElement.classList.add("no-transitions"),document.documentElement.dataset.theme=Nx(n,s),i&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove("no-transitions")}))}typeof document<"u"&&qi(yr(),Cc());function hB(){return vc===void 0&&(vc={themeId:yr(),systemDark:rp(),preferSystem:Cc()}),vc}function gB(n){return fr=[...fr,n],()=>{fr=fr.filter(s=>s!==n)}}function vB(){const n=y.useSyncExternalStore(gB,hB),{themeId:s,preferSystem:i}=n,o=Nx(s,i),c=y.useCallback(d=>{if(_x.has(d)){try{localStorage.setItem(op,d)}catch{}qi(d,Cc(),!0),Ef()}},[]),u=y.useCallback(d=>{try{localStorage.setItem(kx,d?"true":"false")}catch{}if(d){const m=yr(),h=ip(m);if(h!=null&&h.hidden){const g=lp(m);if(g)try{localStorage.setItem(op,g.id)}catch{}}}qi(yr(),d,!0),Ef()},[]);return y.useEffect(()=>{qi(s,i)},[s,i]),y.useEffect(()=>{if(typeof window>"u")return;const d=window.matchMedia(wx),m=()=>{const h=yr(),g=Cc();if(g){const v=ip(h);if(v!=null&&v.variantDarkId&&v.variantLightId&&qi(h,g),v!=null&&v.hidden){const b=lp(h);b!=null&&b.variantDarkId&&b.variantLightId&&qi(h,g)}}Ef()};return d.addEventListener("change",m),()=>{d.removeEventListener("change",m)}},[]),{themeId:s,setTheme:c,resolvedThemeId:o,preferSystem:i,setPreferSystem:u}}const jx=y.createContext(void 0);function yB({children:n}){const s=vB();return l.jsx(jx.Provider,{value:s,children:n})}function Cx(){const n=y.useContext(jx);if(!n)throw new Error("useThemeContext must be used within ThemeProvider");return n}const Ex=y.createContext(void 0),Ax=y.createContext(void 0);function bB({children:n}){const[s,i]=y.useState(void 0),o=y.useCallback(c=>{i(c)},[]);return l.jsx(Ax.Provider,{value:o,children:l.jsx(Ex.Provider,{value:s,children:n})})}function _B(){return y.useContext(Ex)}function xB(){const n=y.useContext(Ax);if(n===void 0)throw new Error("useSidebarSetter must be used within a SidebarProvider");return n}const am=y.createContext(void 0);function pt(){const n=y.useContext(am);if(!n)throw new Error("useGrackle must be used within GrackleProvider");return n}function Dx(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Rx(n,s){return console.warn(`[ws] Malformed "${n}" message: ${s}`),!1}function SB(n){return Dx(n)&&typeof n.sessionId=="string"&&typeof n.eventType=="string"&&typeof n.timestamp=="string"&&typeof n.content=="string"&&(n.raw===void 0||typeof n.raw=="string")}const TB=new Set(["off","subscription","api_key"]),ic=new Set(["off","on"]);function kB(n){return Dx(n)&&TB.has(n.claude)&&ic.has(n.github)&&ic.has(n.copilot)&&ic.has(n.codex)&&ic.has(n.goose)}function Mx(n){switch(n){case"waiting_input":return"idle";case"completed":return"stopped";case"killed":return"stopped";case"failed":return"stopped";case"interrupted":return"stopped";case"terminated":return"stopped";default:return n}}function Ox(n){switch(n){case"completed":return"completed";case"killed":return"killed";case"failed":return"interrupted";case"interrupted":return"interrupted";case"terminated":return"terminated";default:return}}const Hi=5e3;function wB(n,s){const i=[];let o=n;const c=new Set;for(;o&&s.has(o)&&!c.has(o);){c.add(o);const u=s.get(o);i.unshift(u),o=u.parentTaskId||void 0}return i}const Wa={label:"Home",url:Ya};function NB(n){return n?[Wa,{label:"Settings",url:Ji},{label:n,url:void 0}]:[Wa,{label:"Settings",url:void 0}]}const Ix={label:"Environments",url:Xi};function jB(){return[Wa,{label:"Environments",url:void 0}]}function CB(){return[Wa,{label:"New Chat",url:void 0}]}function EB(n){return[Wa,{label:`Session ${n.slice(0,8)}`,url:void 0}]}function AB(n,s,i,o){const c=i.find(d=>d.id===n),u=o.find(d=>d.id===s);return[Wa,Ix,{label:(u==null?void 0:u.displayName)??"Environment",url:Qi(s)},{label:(c==null?void 0:c.name)??"Workspace",url:void 0}]}function DB(n,s,i,o,c){const u=wB(n,c),d=c.get(n),m=d==null?void 0:d.workspaceId,h=m?i.find(S=>S.id===m):void 0,g=s??(h==null?void 0:h.environmentId),v=g?o.find(S=>S.id===g):void 0,b=[Wa];v&&g&&(b.push(Ix),b.push({label:v.displayName,url:Qi(g)})),h&&g&&b.push({label:h.name,url:Wi(h.id,g)});for(let S=0;S<u.length-1;S++)b.push({label:u[S].title,url:os(u[S].id,void 0,m,g)});const _=u[u.length-1];return b.push({label:(_==null?void 0:_.title)??n,url:void 0}),b}function im(n){const s=[];for(const i of n){const o=s[s.length-1];i.eventType==="text"&&(o==null?void 0:o.eventType)==="text"?s[s.length-1]={...o,content:o.content+i.content}:s.push(i)}return s}function om(n){const s=new Map;for(const u of n)if(u.raw)try{s.set(u,JSON.parse(u.raw))}catch{}const i=new Map;for(const u of n){if(u.eventType!=="tool_use")continue;const d=s.get(u);if(!(!d||typeof d.id!="string"))try{const m=JSON.parse(u.content);i.set(d.id,{tool:m.tool,args:m.args})}catch{}}const o=new Set;return n.map(u=>{if(u.eventType!=="tool_result")return u;const d=s.get(u);if(!d||typeof d.tool_use_id!="string")return u;const m=i.get(d.tool_use_id);if(!m)return u;o.add(d.tool_use_id);let h;const g=u.content.trim();if(g.startsWith("{"))try{const v=JSON.parse(g);typeof v.detailedContent=="string"&&(h=v.detailedContent)}catch{}return{...u,toolUseCtx:{...m,detailedResult:h}}}).filter(u=>{if(u.eventType!=="tool_use")return!0;const d=s.get(u);return d&&typeof d.id=="string"?!o.has(d.id):!0})}function RB(n,s,i){const o=n.filter(h=>h.status==="running"||h.status==="idle"||h.status==="waiting").length,c=Bx(s),u=s.filter(h=>cp(h,c)).length,d=s.filter(h=>h.status==="paused"||h.status==="failed"||cp(h,c)).length,m=i.filter(h=>h.status==="disconnected"||h.status==="error").length;return{activeSessions:o,blockedTasks:u,attentionTasks:d,unhealthyEnvironments:m}}function Bx(n){const s=new Map;for(const i of n)s.set(i.id,i.status);return s}function cp(n,s){return n.dependsOn.some(i=>s.get(i)!=="complete")}function MB(n,s){var d;const i=new Map;for(const m of s)i.set(m.id,m);const o=Bx(n),c=[];for(const m of n){const h=m.workspaceId?((d=i.get(m.workspaceId))==null?void 0:d.name)??"Unknown":"Unknown";m.status==="failed"?c.push({task:m,reason:"failed",workspaceName:h}):cp(m,o)?c.push({task:m,reason:"blocked",workspaceName:h}):m.status==="paused"&&c.push({task:m,reason:"paused",workspaceName:h})}const u={failed:0,blocked:1,paused:2};return c.sort((m,h)=>(u[m.reason]??3)-(u[h.reason]??3)),c}function OB(n,s){const i=new Map;for(const o of s)i.set(o.id,o);return n.filter(o=>o.status==="running"||o.status==="idle"||o.status==="waiting").map(o=>{var c;return{session:o,environmentName:((c=i.get(o.environmentId))==null?void 0:c.displayName)??"Unknown"}})}function IB(n,s,i){const o=new Map;for(const c of s){if(!c.workspaceId)continue;let u=o.get(c.workspaceId);u||(u={totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0},o.set(c.workspaceId,u)),u.totalTasks+=1,c.status==="complete"?u.completedTasks+=1:c.status==="working"?u.workingTasks+=1:c.status==="failed"&&(u.failedTasks+=1)}return n.map(c=>{const u=o.get(c.id)??{totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0};return{workspace:c,totalTasks:u.totalTasks,completedTasks:u.completedTasks,workingTasks:u.workingTasks,failedTasks:u.failedTasks}})}const ns=[{id:"kn-auth-flow",label:"Authentication Flow",kind:"knowledge",category:"concept",content:"The application uses JWT Bearer tokens for stateless authentication. Access tokens expire after 24h. Refresh tokens are stored in the database and rotated on use. The auth middleware verifies tokens and attaches the decoded payload to req.user.",tags:["auth","jwt","security"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:30:00Z",updatedAt:"2026-02-27T08:15:00Z",val:5},{id:"kn-db-schema",label:"Database Schema",kind:"knowledge",category:"concept",content:"PostgreSQL database with tables: users, sessions, refresh_tokens, audit_log. Uses UUID primary keys, TIMESTAMPTZ for all timestamps, and JSONB for flexible metadata columns. Connection pooling via pg-pool with per-tenant isolation.",tags:["database","postgres","schema"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:00:00Z",updatedAt:"2026-02-26T22:45:00Z",val:4},{id:"kn-error-handling",label:"Error Response Pattern",kind:"knowledge",category:"concept",content:"All API errors follow the shape { error: string, code: string, details?: unknown }. HTTP status codes map to: 400 (validation), 401 (unauthenticated), 403 (forbidden), 404 (not found), 409 (conflict), 429 (rate limited), 500 (internal).",tags:["api","errors","patterns"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:17:00Z",updatedAt:"2026-02-27T08:17:00Z",val:3},{id:"kn-rate-limiting",label:"Rate Limiting Strategy",kind:"knowledge",category:"concept",content:"Token-bucket algorithm with in-memory state per client IP. Default rate: 100 requests/minute, burst: 20. Returns 429 with Retry-After header. Redis adapter available for multi-instance deployments.",tags:["api","rate-limiting","infrastructure"],workspaceId:"proj-alpha",createdAt:"2026-02-27T09:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:2},{id:"kn-etl-pipeline",label:"ETL Pipeline Architecture",kind:"knowledge",category:"concept",content:"Data pipelines follow an Extract-Transform-Load pattern with pluggable stages. Each stage reads from a source (Postgres, S3, API), transforms via configurable mappers, and loads into a target (Parquet, BigQuery, S3). Incremental loads use high-watermark tracking.",tags:["etl","pipeline","architecture"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:05:00Z",val:4},{id:"kn-parquet-format",label:"Parquet Output Format",kind:"knowledge",category:"concept",content:"Parquet files are written with row-group buffering (configurable batch size, default 10000 rows). Supports Snappy, ZSTD, and GZIP compression. Schema is derived from the internal column type system using Arrow type mapping.",tags:["parquet","data-format","compression"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:05:00Z",updatedAt:"2026-02-26T08:15:00Z",val:3},{id:"kn-jwt-over-session",label:"JWT over Session Auth",kind:"knowledge",category:"decision",content:"Chose JWT tokens over server-side sessions for stateless auth. Rationale: (1) no session store needed, (2) works across microservices without shared state, (3) supports mobile clients natively. Trade-off: tokens can't be revoked instantly (mitigated by short expiry + refresh rotation).",tags:["auth","decision","jwt"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-25T10:00:00Z",val:3},{id:"kn-pg-pool-decision",label:"pg-pool over Knex",kind:"knowledge",category:"decision",content:"Chose pg-pool over Knex for connection pooling. pg-pool gives direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool and adds query-building overhead we don't need since we write raw SQL with parameterized queries.",tags:["database","decision","postgres"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:30:00Z",updatedAt:"2026-02-23T11:30:00Z",val:2},{id:"kn-watermark-decision",label:"Local Watermark Storage",kind:"knowledge",category:"decision",content:"Currently using local SQLite for watermark storage. This works for single-worker pipelines but needs to move to a shared store (Redis or Postgres) for production multi-worker scenarios. Tracked as a follow-up task.",tags:["pipeline","decision","watermarks"],workspaceId:"proj-beta",createdAt:"2026-02-27T09:05:00Z",updatedAt:"2026-02-27T09:05:00Z",val:2},{id:"kn-jwt-middleware",label:"JWT Verify Middleware",kind:"knowledge",category:"snippet",content:`\`\`\`typescript
62
+ `),()=>{document.head.removeChild(v)}},[s]),l.jsx(Mj,{isPresent:s,childRef:o,sizeRef:c,children:y.cloneElement(n,{ref:o})})}const Ij=({children:n,initial:s,isPresent:i,onExitComplete:o,custom:c,presenceAffectsLayout:u,mode:d})=>{const m=Sp(Bj),h=y.useId(),g=y.useCallback(b=>{m.set(b,!0);for(const _ of m.values())if(!_)return;o&&o()},[m,o]),v=y.useMemo(()=>({id:h,initial:s,isPresent:i,custom:c,onExitComplete:g,register:b=>(m.set(b,!1),()=>m.delete(b))}),u?[Math.random(),g]:[i,g]);return y.useMemo(()=>{m.forEach((b,_)=>m.set(_,!1))},[i]),y.useEffect(()=>{!i&&!m.size&&o&&o()},[i]),d==="popLayout"&&(n=l.jsx(Oj,{isPresent:i,children:n})),l.jsx(Oc.Provider,{value:v,children:n})};function Bj(){return new Map}function Ob(n=!0){const s=y.useContext(Oc);if(s===null)return[!0,null];const{isPresent:i,onExitComplete:o,register:c}=s,u=y.useId();y.useEffect(()=>{n&&c(u)},[n]);const d=y.useCallback(()=>n&&o&&o(u),[u,o,n]);return!i&&o?[!1,d]:[!0]}const ec=n=>n.key||"";function S0(n){const s=[];return y.Children.forEach(n,i=>{y.isValidElement(i)&&s.push(i)}),s}const kp=typeof window<"u",Ib=kp?y.useLayoutEffect:y.useEffect,rs=({children:n,custom:s,initial:i=!0,onExitComplete:o,presenceAffectsLayout:c=!0,mode:u="sync",propagate:d=!1})=>{const[m,h]=Ob(d),g=y.useMemo(()=>S0(n),[n]),v=d&&!m?[]:g.map(ec),b=y.useRef(!0),_=y.useRef(g),S=Sp(()=>new Map),[T,N]=y.useState(g),[j,w]=y.useState(g);Ib(()=>{b.current=!1,_.current=g;for(let M=0;M<j.length;M++){const D=ec(j[M]);v.includes(D)?S.delete(D):S.get(D)!==!0&&S.set(D,!1)}},[j,v.length,v.join("-")]);const C=[];if(g!==T){let M=[...g];for(let D=0;D<j.length;D++){const E=j[D],H=ec(E);v.includes(H)||(M.splice(D,0,E),C.push(E))}u==="wait"&&C.length&&(M=C),w(S0(M)),N(g);return}const{forceRender:A}=y.useContext(xp);return l.jsx(l.Fragment,{children:j.map(M=>{const D=ec(M),E=d&&!m?!1:g===j||v.includes(D),H=()=>{if(S.has(D))S.set(D,!0);else return;let z=!0;S.forEach(Z=>{Z||(z=!1)}),z&&(A==null||A(),w(_.current),d&&(h==null||h()),o&&o())};return l.jsx(Ij,{isPresent:E,initial:!b.current||i?void 0:!1,custom:E?void 0:s,presenceAffectsLayout:c,mode:u,onExitComplete:E?void 0:H,children:M},D)})})},_n=n=>n;let Bb=_n;const Lj={useManualTiming:!1};function Uj(n){let s=new Set,i=new Set,o=!1,c=!1;const u=new WeakSet;let d={delta:0,timestamp:0,isProcessing:!1};function m(g){u.has(g)&&(h.schedule(g),n()),g(d)}const h={schedule:(g,v=!1,b=!1)=>{const S=b&&o?s:i;return v&&u.add(g),S.has(g)||S.add(g),g},cancel:g=>{i.delete(g),u.delete(g)},process:g=>{if(d=g,o){c=!0;return}o=!0,[s,i]=[i,s],s.forEach(m),s.clear(),o=!1,c&&(c=!1,h.process(g))}};return h}const tc=["read","resolveKeyframes","update","preRender","render","postRender"],zj=40;function Lb(n,s){let i=!1,o=!0;const c={delta:0,timestamp:0,isProcessing:!1},u=()=>i=!0,d=tc.reduce((w,C)=>(w[C]=Uj(u),w),{}),{read:m,resolveKeyframes:h,update:g,preRender:v,render:b,postRender:_}=d,S=()=>{const w=performance.now();i=!1,c.delta=o?1e3/60:Math.max(Math.min(w-c.timestamp,zj),1),c.timestamp=w,c.isProcessing=!0,m.process(c),h.process(c),g.process(c),v.process(c),b.process(c),_.process(c),c.isProcessing=!1,i&&s&&(o=!1,n(S))},T=()=>{i=!0,o=!0,c.isProcessing||n(S)};return{schedule:tc.reduce((w,C)=>{const A=d[C];return w[C]=(M,D=!1,E=!1)=>(i||T(),A.schedule(M,D,E)),w},{}),cancel:w=>{for(let C=0;C<tc.length;C++)d[tc[C]].cancel(w)},state:c,steps:d}}const{schedule:ft,cancel:ha,state:Kt,steps:mf}=Lb(typeof requestAnimationFrame<"u"?requestAnimationFrame:_n,!0),Ub=y.createContext({strict:!1}),T0={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"]},to={};for(const n in T0)to[n]={isEnabled:s=>T0[n].some(i=>!!s[i])};function Pj(n){for(const s in n)to[s]={...to[s],...n[s]}}const Vj=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function bc(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||Vj.has(n)}let zb=n=>!bc(n);function Hj(n){n&&(zb=s=>s.startsWith("on")?!bc(s):n(s))}try{Hj(require("@emotion/is-prop-valid").default)}catch{}function qj(n,s,i){const o={};for(const c in n)c==="values"&&typeof n.values=="object"||(zb(c)||i===!0&&bc(c)||!s&&!bc(c)||n.draggable&&c.startsWith("onDrag"))&&(o[c]=n[c]);return o}function Gj(n){if(typeof Proxy>"u")return n;const s=new Map,i=(...o)=>n(...o);return new Proxy(i,{get:(o,c)=>c==="create"?n:(s.has(c)||s.set(c,n(c)),s.get(c))})}const Ic=y.createContext({});function Tr(n){return typeof n=="string"||Array.isArray(n)}function Bc(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}const wp=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Np=["initial",...wp];function Lc(n){return Bc(n.animate)||Np.some(s=>Tr(n[s]))}function Pb(n){return!!(Lc(n)||n.variants)}function $j(n,s){if(Lc(n)){const{initial:i,animate:o}=n;return{initial:i===!1||Tr(i)?i:void 0,animate:Tr(o)?o:void 0}}return n.inherit!==!1?s:{}}function Fj(n){const{initial:s,animate:i}=$j(n,y.useContext(Ic));return y.useMemo(()=>({initial:s,animate:i}),[k0(s),k0(i)])}function k0(n){return Array.isArray(n)?n.join(" "):n}const Zj=Symbol.for("motionComponentSymbol");function Gi(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function Kj(n,s,i){return y.useCallback(o=>{o&&n.onMount&&n.onMount(o),s&&(o?s.mount(o):s.unmount()),i&&(typeof i=="function"?i(o):Gi(i)&&(i.current=o))},[s])}const jp=n=>n.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),Yj="framerAppearId",Vb="data-"+jp(Yj),{schedule:Cp}=Lb(queueMicrotask,!1),Hb=y.createContext({});function Jj(n,s,i,o,c){var u,d;const{visualElement:m}=y.useContext(Ic),h=y.useContext(Ub),g=y.useContext(Oc),v=y.useContext(Tp).reducedMotion,b=y.useRef(null);o=o||h.renderer,!b.current&&o&&(b.current=o(n,{visualState:s,parent:m,props:i,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:v}));const _=b.current,S=y.useContext(Hb);_&&!_.projection&&c&&(_.type==="html"||_.type==="svg")&&Wj(b.current,i,c,S);const T=y.useRef(!1);y.useInsertionEffect(()=>{_&&T.current&&_.update(i,g)});const N=i[Vb],j=y.useRef(!!N&&!(!((u=window.MotionHandoffIsComplete)===null||u===void 0)&&u.call(window,N))&&((d=window.MotionHasOptimisedAnimation)===null||d===void 0?void 0:d.call(window,N)));return Ib(()=>{_&&(T.current=!0,window.MotionIsMounted=!0,_.updateFeatures(),Cp.render(_.render),j.current&&_.animationState&&_.animationState.animateChanges())}),y.useEffect(()=>{_&&(!j.current&&_.animationState&&_.animationState.animateChanges(),j.current&&(queueMicrotask(()=>{var w;(w=window.MotionHandoffMarkAsComplete)===null||w===void 0||w.call(window,N)}),j.current=!1))}),_}function Wj(n,s,i,o){const{layoutId:c,layout:u,drag:d,dragConstraints:m,layoutScroll:h,layoutRoot:g}=s;n.projection=new i(n.latestValues,s["data-framer-portal-id"]?void 0:qb(n.parent)),n.projection.setOptions({layoutId:c,layout:u,alwaysMeasureLayout:!!d||m&&Gi(m),visualElement:n,animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:h,layoutRoot:g})}function qb(n){if(n)return n.options.allowProjection!==!1?n.projection:qb(n.parent)}function Xj({preloadedFeatures:n,createVisualElement:s,useRender:i,useVisualState:o,Component:c}){var u,d;n&&Pj(n);function m(g,v){let b;const _={...y.useContext(Tp),...g,layoutId:Qj(g)},{isStatic:S}=_,T=Fj(g),N=o(g,S);if(!S&&kp){eC();const j=tC(_);b=j.MeasureLayout,T.visualElement=Jj(c,N,_,s,j.ProjectionNode)}return l.jsxs(Ic.Provider,{value:T,children:[b&&T.visualElement?l.jsx(b,{visualElement:T.visualElement,..._}):null,i(c,g,Kj(N,T.visualElement,v),N,S,T.visualElement)]})}m.displayName=`motion.${typeof c=="string"?c:`create(${(d=(u=c.displayName)!==null&&u!==void 0?u:c.name)!==null&&d!==void 0?d:""})`}`;const h=y.forwardRef(m);return h[Zj]=c,h}function Qj({layoutId:n}){const s=y.useContext(xp).id;return s&&n!==void 0?s+"-"+n:n}function eC(n,s){y.useContext(Ub).strict}function tC(n){const{drag:s,layout:i}=to;if(!s&&!i)return{};const o={...s,...i};return{MeasureLayout:s!=null&&s.isEnabled(n)||i!=null&&i.isEnabled(n)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}const nC=["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 Ep(n){return typeof n!="string"||n.includes("-")?!1:!!(nC.indexOf(n)>-1||/[A-Z]/u.test(n))}function w0(n){const s=[{},{}];return n==null||n.values.forEach((i,o)=>{s[0][o]=i.get(),s[1][o]=i.getVelocity()}),s}function Ap(n,s,i,o){if(typeof s=="function"){const[c,u]=w0(o);s=s(i!==void 0?i:n.custom,c,u)}if(typeof s=="string"&&(s=n.variants&&n.variants[s]),typeof s=="function"){const[c,u]=w0(o);s=s(i!==void 0?i:n.custom,c,u)}return s}const qf=n=>Array.isArray(n),sC=n=>!!(n&&typeof n=="object"&&n.mix&&n.toValue),aC=n=>qf(n)?n[n.length-1]||0:n,Qt=n=>!!(n&&n.getVelocity);function fc(n){const s=Qt(n)?n.get():n;return sC(s)?s.toValue():s}function iC({scrapeMotionValuesFromProps:n,createRenderState:s,onUpdate:i},o,c,u){const d={latestValues:oC(o,c,u,n),renderState:s()};return i&&(d.onMount=m=>i({props:o,current:m,...d}),d.onUpdate=m=>i(m)),d}const Gb=n=>(s,i)=>{const o=y.useContext(Ic),c=y.useContext(Oc),u=()=>iC(n,s,o,c);return i?u():Sp(u)};function oC(n,s,i,o){const c={},u=o(n,{});for(const _ in u)c[_]=fc(u[_]);let{initial:d,animate:m}=n;const h=Lc(n),g=Pb(n);s&&g&&!h&&n.inherit!==!1&&(d===void 0&&(d=s.initial),m===void 0&&(m=s.animate));let v=i?i.initial===!1:!1;v=v||d===!1;const b=v?m:d;if(b&&typeof b!="boolean"&&!Bc(b)){const _=Array.isArray(b)?b:[b];for(let S=0;S<_.length;S++){const T=Ap(n,_[S]);if(T){const{transitionEnd:N,transition:j,...w}=T;for(const C in w){let A=w[C];if(Array.isArray(A)){const M=v?A.length-1:0;A=A[M]}A!==null&&(c[C]=A)}for(const C in N)c[C]=N[C]}}}return c}const oo=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ni=new Set(oo),$b=n=>s=>typeof s=="string"&&s.startsWith(n),Fb=$b("--"),rC=$b("var(--"),Dp=n=>rC(n)?lC.test(n.split("/*")[0].trim()):!1,lC=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Zb=(n,s)=>s&&typeof n=="number"?s.transform(n):n,Is=(n,s,i)=>i>s?s:i<n?n:i,ro={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},kr={...ro,transform:n=>Is(0,1,n)},nc={...ro,default:1},Ar=n=>({test:s=>typeof s=="string"&&s.endsWith(n)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${n}`}),pa=Ar("deg"),as=Ar("%"),Te=Ar("px"),cC=Ar("vh"),uC=Ar("vw"),N0={...as,parse:n=>as.parse(n)/100,transform:n=>as.transform(n*100)},dC={borderWidth:Te,borderTopWidth:Te,borderRightWidth:Te,borderBottomWidth:Te,borderLeftWidth:Te,borderRadius:Te,radius:Te,borderTopLeftRadius:Te,borderTopRightRadius:Te,borderBottomRightRadius:Te,borderBottomLeftRadius:Te,width:Te,maxWidth:Te,height:Te,maxHeight:Te,top:Te,right:Te,bottom:Te,left:Te,padding:Te,paddingTop:Te,paddingRight:Te,paddingBottom:Te,paddingLeft:Te,margin:Te,marginTop:Te,marginRight:Te,marginBottom:Te,marginLeft:Te,backgroundPositionX:Te,backgroundPositionY:Te},fC={rotate:pa,rotateX:pa,rotateY:pa,rotateZ:pa,scale:nc,scaleX:nc,scaleY:nc,scaleZ:nc,skew:pa,skewX:pa,skewY:pa,distance:Te,translateX:Te,translateY:Te,translateZ:Te,x:Te,y:Te,z:Te,perspective:Te,transformPerspective:Te,opacity:kr,originX:N0,originY:N0,originZ:Te},j0={...ro,transform:Math.round},Rp={...dC,...fC,zIndex:j0,size:Te,fillOpacity:kr,strokeOpacity:kr,numOctaves:j0},pC={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},mC=oo.length;function hC(n,s,i){let o="",c=!0;for(let u=0;u<mC;u++){const d=oo[u],m=n[d];if(m===void 0)continue;let h=!0;if(typeof m=="number"?h=m===(d.startsWith("scale")?1:0):h=parseFloat(m)===0,!h||i){const g=Zb(m,Rp[d]);if(!h){c=!1;const v=pC[d]||d;o+=`${v}(${g}) `}i&&(s[d]=g)}}return o=o.trim(),i?o=i(s,c?"":o):c&&(o="none"),o}function Mp(n,s,i){const{style:o,vars:c,transformOrigin:u}=n;let d=!1,m=!1;for(const h in s){const g=s[h];if(ni.has(h)){d=!0;continue}else if(Fb(h)){c[h]=g;continue}else{const v=Zb(g,Rp[h]);h.startsWith("origin")?(m=!0,u[h]=v):o[h]=v}}if(s.transform||(d||i?o.transform=hC(s,n.transform,i):o.transform&&(o.transform="none")),m){const{originX:h="50%",originY:g="50%",originZ:v=0}=u;o.transformOrigin=`${h} ${g} ${v}`}}const gC={offset:"stroke-dashoffset",array:"stroke-dasharray"},vC={offset:"strokeDashoffset",array:"strokeDasharray"};function yC(n,s,i=1,o=0,c=!0){n.pathLength=1;const u=c?gC:vC;n[u.offset]=Te.transform(-o);const d=Te.transform(s),m=Te.transform(i);n[u.array]=`${d} ${m}`}function C0(n,s,i){return typeof n=="string"?n:Te.transform(s+i*n)}function bC(n,s,i){const o=C0(s,n.x,n.width),c=C0(i,n.y,n.height);return`${o} ${c}`}function Op(n,{attrX:s,attrY:i,attrScale:o,originX:c,originY:u,pathLength:d,pathSpacing:m=1,pathOffset:h=0,...g},v,b){if(Mp(n,g,b),v){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:_,style:S,dimensions:T}=n;_.transform&&(T&&(S.transform=_.transform),delete _.transform),T&&(c!==void 0||u!==void 0||S.transform)&&(S.transformOrigin=bC(T,c!==void 0?c:.5,u!==void 0?u:.5)),s!==void 0&&(_.x=s),i!==void 0&&(_.y=i),o!==void 0&&(_.scale=o),d!==void 0&&yC(_,d,m,h,!1)}const Ip=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),Kb=()=>({...Ip(),attrs:{}}),Bp=n=>typeof n=="string"&&n.toLowerCase()==="svg";function Yb(n,{style:s,vars:i},o,c){Object.assign(n.style,s,c&&c.getProjectionStyles(o));for(const u in i)n.style.setProperty(u,i[u])}const Jb=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"]);function Wb(n,s,i,o){Yb(n,s,void 0,o);for(const c in s.attrs)n.setAttribute(Jb.has(c)?c:jp(c),s.attrs[c])}const _c={};function _C(n){Object.assign(_c,n)}function Xb(n,{layout:s,layoutId:i}){return ni.has(n)||n.startsWith("origin")||(s||i!==void 0)&&(!!_c[n]||n==="opacity")}function Lp(n,s,i){var o;const{style:c}=n,u={};for(const d in c)(Qt(c[d])||s.style&&Qt(s.style[d])||Xb(d,n)||((o=i==null?void 0:i.getValue(d))===null||o===void 0?void 0:o.liveStyle)!==void 0)&&(u[d]=c[d]);return u}function Qb(n,s,i){const o=Lp(n,s,i);for(const c in n)if(Qt(n[c])||Qt(s[c])){const u=oo.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;o[u]=n[c]}return o}function xC(n,s){try{s.dimensions=typeof n.getBBox=="function"?n.getBBox():n.getBoundingClientRect()}catch{s.dimensions={x:0,y:0,width:0,height:0}}}const E0=["x","y","width","height","cx","cy","r"],SC={useVisualState:Gb({scrapeMotionValuesFromProps:Qb,createRenderState:Kb,onUpdate:({props:n,prevProps:s,current:i,renderState:o,latestValues:c})=>{if(!i)return;let u=!!n.drag;if(!u){for(const m in c)if(ni.has(m)){u=!0;break}}if(!u)return;let d=!s;if(s)for(let m=0;m<E0.length;m++){const h=E0[m];n[h]!==s[h]&&(d=!0)}d&&ft.read(()=>{xC(i,o),ft.render(()=>{Op(o,c,Bp(i.tagName),n.transformTemplate),Wb(i,o)})})}})},TC={useVisualState:Gb({scrapeMotionValuesFromProps:Lp,createRenderState:Ip})};function e_(n,s,i){for(const o in s)!Qt(s[o])&&!Xb(o,i)&&(n[o]=s[o])}function kC({transformTemplate:n},s){return y.useMemo(()=>{const i=Ip();return Mp(i,s,n),Object.assign({},i.vars,i.style)},[s])}function wC(n,s){const i=n.style||{},o={};return e_(o,i,n),Object.assign(o,kC(n,s)),o}function NC(n,s){const i={},o=wC(n,s);return n.drag&&n.dragListener!==!1&&(i.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(i.tabIndex=0),i.style=o,i}function jC(n,s,i,o){const c=y.useMemo(()=>{const u=Kb();return Op(u,s,Bp(o),n.transformTemplate),{...u.attrs,style:{...u.style}}},[s]);if(n.style){const u={};e_(u,n.style,n),c.style={...u,...c.style}}return c}function CC(n=!1){return(i,o,c,{latestValues:u},d)=>{const h=(Ep(i)?jC:NC)(o,u,d,i),g=qj(o,typeof i=="string",n),v=i!==y.Fragment?{...g,...h,ref:c}:{},{children:b}=o,_=y.useMemo(()=>Qt(b)?b.get():b,[b]);return y.createElement(i,{...v,children:_})}}function EC(n,s){return function(o,{forwardMotionProps:c}={forwardMotionProps:!1}){const d={...Ep(o)?SC:TC,preloadedFeatures:n,useRender:CC(c),createVisualElement:s,Component:o};return Xj(d)}}function t_(n,s){if(!Array.isArray(s))return!1;const i=s.length;if(i!==n.length)return!1;for(let o=0;o<i;o++)if(s[o]!==n[o])return!1;return!0}function Uc(n,s,i){const o=n.getProps();return Ap(o,s,i!==void 0?i:o.custom,n)}function Up(n,s){return n?n[s]||n.default||n:void 0}const n_=new Set(["width","height","top","left","right","bottom",...oo]);let pc;function AC(){pc=void 0}const is={now:()=>(pc===void 0&&is.set(Kt.isProcessing||Lj.useManualTiming?Kt.timestamp:performance.now()),pc),set:n=>{pc=n,queueMicrotask(AC)}};function zp(n,s){n.indexOf(s)===-1&&n.push(s)}function Pp(n,s){const i=n.indexOf(s);i>-1&&n.splice(i,1)}class Vp{constructor(){this.subscriptions=[]}add(s){return zp(this.subscriptions,s),()=>Pp(this.subscriptions,s)}notify(s,i,o){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](s,i,o);else for(let u=0;u<c;u++){const d=this.subscriptions[u];d&&d(s,i,o)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function s_(n,s){return s?n*(1e3/s):0}const A0=30,DC=n=>!isNaN(parseFloat(n));class RC{constructor(s,i={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(o,c=!0)=>{const u=is.now();this.updatedAt!==u&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),c&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(s),this.owner=i.owner}setCurrent(s){this.current=s,this.updatedAt=is.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=DC(this.current))}setPrevFrameValue(s=this.current){this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt}onChange(s){return this.on("change",s)}on(s,i){this.events[s]||(this.events[s]=new Vp);const o=this.events[s].add(i);return s==="change"?()=>{o(),ft.read(()=>{this.events.change.getSize()||this.stop()})}:o}clearListeners(){for(const s in this.events)this.events[s].clear()}attach(s,i){this.passiveEffect=s,this.stopPassiveEffect=i}set(s,i=!0){!i||!this.passiveEffect?this.updateAndNotify(s,i):this.passiveEffect(s,this.updateAndNotify)}setWithVelocity(s,i,o){this.set(i),this.prev=void 0,this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt-o}jump(s,i=!0){this.updateAndNotify(s),this.prev=s,this.prevUpdatedAt=this.prevFrameValue=void 0,i&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const s=is.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>A0)return 0;const i=Math.min(this.updatedAt-this.prevUpdatedAt,A0);return s_(parseFloat(this.current)-parseFloat(this.prevFrameValue),i)}start(s){return this.stop(),new Promise(i=>{this.hasAnimated=!0,this.animation=s(i),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.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function wr(n,s){return new RC(n,s)}function MC(n,s,i){n.hasValue(s)?n.getValue(s).set(i):n.addValue(s,wr(i))}function OC(n,s){const i=Uc(n,s);let{transitionEnd:o={},transition:c={},...u}=i||{};u={...u,...o};for(const d in u){const m=aC(u[d]);MC(n,d,m)}}function IC(n){return!!(Qt(n)&&n.add)}function Gf(n,s){const i=n.getValue("willChange");if(IC(i))return i.add(s)}function a_(n){return n.props[Vb]}function Hp(n){let s;return()=>(s===void 0&&(s=n()),s)}const BC=Hp(()=>window.ScrollTimeline!==void 0);class LC{constructor(s){this.stop=()=>this.runAll("stop"),this.animations=s.filter(Boolean)}get finished(){return Promise.all(this.animations.map(s=>"finished"in s?s.finished:s))}getAll(s){return this.animations[0][s]}setAll(s,i){for(let o=0;o<this.animations.length;o++)this.animations[o][s]=i}attachTimeline(s,i){const o=this.animations.map(c=>{if(BC()&&c.attachTimeline)return c.attachTimeline(s);if(typeof i=="function")return i(c)});return()=>{o.forEach((c,u)=>{c&&c(),this.animations[u].stop()})}}get time(){return this.getAll("time")}set time(s){this.setAll("time",s)}get speed(){return this.getAll("speed")}set speed(s){this.setAll("speed",s)}get startTime(){return this.getAll("startTime")}get duration(){let s=0;for(let i=0;i<this.animations.length;i++)s=Math.max(s,this.animations[i].duration);return s}runAll(s){this.animations.forEach(i=>i[s]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class UC extends LC{then(s,i){return Promise.all(this.animations).then(s).catch(i)}}const Ds=n=>n*1e3,Rs=n=>n/1e3;function qp(n){return typeof n=="function"}function D0(n,s){n.timeline=s,n.onfinish=null}const Gp=n=>Array.isArray(n)&&typeof n[0]=="number",zC={linearEasing:void 0};function PC(n,s){const i=Hp(n);return()=>{var o;return(o=zC[s])!==null&&o!==void 0?o:i()}}const xc=PC(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),no=(n,s,i)=>{const o=s-n;return o===0?1:(i-n)/o},i_=(n,s,i=10)=>{let o="";const c=Math.max(Math.round(s/i),2);for(let u=0;u<c;u++)o+=n(no(0,c-1,u))+", ";return`linear(${o.substring(0,o.length-2)})`};function o_(n){return!!(typeof n=="function"&&xc()||!n||typeof n=="string"&&(n in $f||xc())||Gp(n)||Array.isArray(n)&&n.every(o_))}const cr=([n,s,i,o])=>`cubic-bezier(${n}, ${s}, ${i}, ${o})`,$f={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cr([0,.65,.55,1]),circOut:cr([.55,0,1,.45]),backIn:cr([.31,.01,.66,-.59]),backOut:cr([.33,1.53,.69,.99])};function r_(n,s){if(n)return typeof n=="function"&&xc()?i_(n,s):Gp(n)?cr(n):Array.isArray(n)?n.map(i=>r_(i,s)||$f.easeOut):$f[n]}const l_=(n,s,i)=>(((1-3*i+3*s)*n+(3*i-6*s))*n+3*s)*n,VC=1e-7,HC=12;function qC(n,s,i,o,c){let u,d,m=0;do d=s+(i-s)/2,u=l_(d,o,c)-n,u>0?i=d:s=d;while(Math.abs(u)>VC&&++m<HC);return d}function Dr(n,s,i,o){if(n===s&&i===o)return _n;const c=u=>qC(u,0,1,n,i);return u=>u===0||u===1?u:l_(c(u),s,o)}const c_=n=>s=>s<=.5?n(2*s)/2:(2-n(2*(1-s)))/2,u_=n=>s=>1-n(1-s),d_=Dr(.33,1.53,.69,.99),$p=u_(d_),f_=c_($p),p_=n=>(n*=2)<1?.5*$p(n):.5*(2-Math.pow(2,-10*(n-1))),Fp=n=>1-Math.sin(Math.acos(n)),m_=u_(Fp),h_=c_(Fp),g_=n=>/^0[^.\s]+$/u.test(n);function GC(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||g_(n):!0}const mr=n=>Math.round(n*1e5)/1e5,Zp=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $C(n){return n==null}const FC=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Kp=(n,s)=>i=>!!(typeof i=="string"&&FC.test(i)&&i.startsWith(n)||s&&!$C(i)&&Object.prototype.hasOwnProperty.call(i,s)),v_=(n,s,i)=>o=>{if(typeof o!="string")return o;const[c,u,d,m]=o.match(Zp);return{[n]:parseFloat(c),[s]:parseFloat(u),[i]:parseFloat(d),alpha:m!==void 0?parseFloat(m):1}},ZC=n=>Is(0,255,n),hf={...ro,transform:n=>Math.round(ZC(n))},Fa={test:Kp("rgb","red"),parse:v_("red","green","blue"),transform:({red:n,green:s,blue:i,alpha:o=1})=>"rgba("+hf.transform(n)+", "+hf.transform(s)+", "+hf.transform(i)+", "+mr(kr.transform(o))+")"};function KC(n){let s="",i="",o="",c="";return n.length>5?(s=n.substring(1,3),i=n.substring(3,5),o=n.substring(5,7),c=n.substring(7,9)):(s=n.substring(1,2),i=n.substring(2,3),o=n.substring(3,4),c=n.substring(4,5),s+=s,i+=i,o+=o,c+=c),{red:parseInt(s,16),green:parseInt(i,16),blue:parseInt(o,16),alpha:c?parseInt(c,16)/255:1}}const Ff={test:Kp("#"),parse:KC,transform:Fa.transform},$i={test:Kp("hsl","hue"),parse:v_("hue","saturation","lightness"),transform:({hue:n,saturation:s,lightness:i,alpha:o=1})=>"hsla("+Math.round(n)+", "+as.transform(mr(s))+", "+as.transform(mr(i))+", "+mr(kr.transform(o))+")"},Xt={test:n=>Fa.test(n)||Ff.test(n)||$i.test(n),parse:n=>Fa.test(n)?Fa.parse(n):$i.test(n)?$i.parse(n):Ff.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Fa.transform(n):$i.transform(n)},YC=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JC(n){var s,i;return isNaN(n)&&typeof n=="string"&&(((s=n.match(Zp))===null||s===void 0?void 0:s.length)||0)+(((i=n.match(YC))===null||i===void 0?void 0:i.length)||0)>0}const y_="number",b_="color",WC="var",XC="var(",R0="${}",QC=/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 Nr(n){const s=n.toString(),i=[],o={color:[],number:[],var:[]},c=[];let u=0;const m=s.replace(QC,h=>(Xt.test(h)?(o.color.push(u),c.push(b_),i.push(Xt.parse(h))):h.startsWith(XC)?(o.var.push(u),c.push(WC),i.push(h)):(o.number.push(u),c.push(y_),i.push(parseFloat(h))),++u,R0)).split(R0);return{values:i,split:m,indexes:o,types:c}}function __(n){return Nr(n).values}function x_(n){const{split:s,types:i}=Nr(n),o=s.length;return c=>{let u="";for(let d=0;d<o;d++)if(u+=s[d],c[d]!==void 0){const m=i[d];m===y_?u+=mr(c[d]):m===b_?u+=Xt.transform(c[d]):u+=c[d]}return u}}const eE=n=>typeof n=="number"?0:n;function tE(n){const s=__(n);return x_(n)(s.map(eE))}const ga={test:JC,parse:__,createTransformer:x_,getAnimatableNone:tE},nE=new Set(["brightness","contrast","saturate","opacity"]);function sE(n){const[s,i]=n.slice(0,-1).split("(");if(s==="drop-shadow")return n;const[o]=i.match(Zp)||[];if(!o)return n;const c=i.replace(o,"");let u=nE.has(s)?1:0;return o!==i&&(u*=100),s+"("+u+c+")"}const aE=/\b([a-z-]*)\(.*?\)/gu,Zf={...ga,getAnimatableNone:n=>{const s=n.match(aE);return s?s.map(sE).join(" "):n}},iE={...Rp,color:Xt,backgroundColor:Xt,outlineColor:Xt,fill:Xt,stroke:Xt,borderColor:Xt,borderTopColor:Xt,borderRightColor:Xt,borderBottomColor:Xt,borderLeftColor:Xt,filter:Zf,WebkitFilter:Zf},Yp=n=>iE[n];function S_(n,s){let i=Yp(n);return i!==Zf&&(i=ga),i.getAnimatableNone?i.getAnimatableNone(s):void 0}const oE=new Set(["auto","none","0"]);function rE(n,s,i){let o=0,c;for(;o<n.length&&!c;){const u=n[o];typeof u=="string"&&!oE.has(u)&&Nr(u).values.length&&(c=n[o]),o++}if(c&&i)for(const u of s)n[u]=S_(i,c)}const M0=n=>n===ro||n===Te,O0=(n,s)=>parseFloat(n.split(", ")[s]),I0=(n,s)=>(i,{transform:o})=>{if(o==="none"||!o)return 0;const c=o.match(/^matrix3d\((.+)\)$/u);if(c)return O0(c[1],s);{const u=o.match(/^matrix\((.+)\)$/u);return u?O0(u[1],n):0}},lE=new Set(["x","y","z"]),cE=oo.filter(n=>!lE.has(n));function uE(n){const s=[];return cE.forEach(i=>{const o=n.getValue(i);o!==void 0&&(s.push([i,o.get()]),o.set(i.startsWith("scale")?1:0))}),s}const so={width:({x:n},{paddingLeft:s="0",paddingRight:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),height:({y:n},{paddingTop:s="0",paddingBottom:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),top:(n,{top:s})=>parseFloat(s),left:(n,{left:s})=>parseFloat(s),bottom:({y:n},{top:s})=>parseFloat(s)+(n.max-n.min),right:({x:n},{left:s})=>parseFloat(s)+(n.max-n.min),x:I0(4,13),y:I0(5,14)};so.translateX=so.x;so.translateY=so.y;const Ka=new Set;let Kf=!1,Yf=!1;function T_(){if(Yf){const n=Array.from(Ka).filter(o=>o.needsMeasurement),s=new Set(n.map(o=>o.element)),i=new Map;s.forEach(o=>{const c=uE(o);c.length&&(i.set(o,c),o.render())}),n.forEach(o=>o.measureInitialState()),s.forEach(o=>{o.render();const c=i.get(o);c&&c.forEach(([u,d])=>{var m;(m=o.getValue(u))===null||m===void 0||m.set(d)})}),n.forEach(o=>o.measureEndState()),n.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}Yf=!1,Kf=!1,Ka.forEach(n=>n.complete()),Ka.clear()}function k_(){Ka.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Yf=!0)})}function dE(){k_(),T_()}class Jp{constructor(s,i,o,c,u,d=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...s],this.onComplete=i,this.name=o,this.motionValue=c,this.element=u,this.isAsync=d}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ka.add(this),Kf||(Kf=!0,ft.read(k_),ft.resolveKeyframes(T_))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:s,name:i,element:o,motionValue:c}=this;for(let u=0;u<s.length;u++)if(s[u]===null)if(u===0){const d=c==null?void 0:c.get(),m=s[s.length-1];if(d!==void 0)s[0]=d;else if(o&&i){const h=o.readValue(i,m);h!=null&&(s[0]=h)}s[0]===void 0&&(s[0]=m),c&&d===void 0&&c.set(s[0])}else s[u]=s[u-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Ka.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ka.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const w_=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n),fE=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function pE(n){const s=fE.exec(n);if(!s)return[,];const[,i,o,c]=s;return[`--${i??o}`,c]}function N_(n,s,i=1){const[o,c]=pE(n);if(!o)return;const u=window.getComputedStyle(s).getPropertyValue(o);if(u){const d=u.trim();return w_(d)?parseFloat(d):d}return Dp(c)?N_(c,s,i+1):c}const j_=n=>s=>s.test(n),mE={test:n=>n==="auto",parse:n=>n},C_=[ro,Te,as,pa,uC,cC,mE],B0=n=>C_.find(j_(n));class E_ extends Jp{constructor(s,i,o,c,u){super(s,i,o,c,u,!0)}readKeyframes(){const{unresolvedKeyframes:s,element:i,name:o}=this;if(!i||!i.current)return;super.readKeyframes();for(let h=0;h<s.length;h++){let g=s[h];if(typeof g=="string"&&(g=g.trim(),Dp(g))){const v=N_(g,i.current);v!==void 0&&(s[h]=v),h===s.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!n_.has(o)||s.length!==2)return;const[c,u]=s,d=B0(c),m=B0(u);if(d!==m)if(M0(d)&&M0(m))for(let h=0;h<s.length;h++){const g=s[h];typeof g=="string"&&(s[h]=parseFloat(g))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:s,name:i}=this,o=[];for(let c=0;c<s.length;c++)GC(s[c])&&o.push(c);o.length&&rE(s,o,i)}measureInitialState(){const{element:s,unresolvedKeyframes:i,name:o}=this;if(!s||!s.current)return;o==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=so[o](s.measureViewportBox(),window.getComputedStyle(s.current)),i[0]=this.measuredOrigin;const c=i[i.length-1];c!==void 0&&s.getValue(o,c).jump(c,!1)}measureEndState(){var s;const{element:i,name:o,unresolvedKeyframes:c}=this;if(!i||!i.current)return;const u=i.getValue(o);u&&u.jump(this.measuredOrigin,!1);const d=c.length-1,m=c[d];c[d]=so[o](i.measureViewportBox(),window.getComputedStyle(i.current)),m!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=m),!((s=this.removedTransforms)===null||s===void 0)&&s.length&&this.removedTransforms.forEach(([h,g])=>{i.getValue(h).set(g)}),this.resolveNoneKeyframes()}}const L0=(n,s)=>s==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(ga.test(n)||n==="0")&&!n.startsWith("url("));function hE(n){const s=n[0];if(n.length===1)return!0;for(let i=0;i<n.length;i++)if(n[i]!==s)return!0}function gE(n,s,i,o){const c=n[0];if(c===null)return!1;if(s==="display"||s==="visibility")return!0;const u=n[n.length-1],d=L0(c,s),m=L0(u,s);return!d||!m?!1:hE(n)||(i==="spring"||qp(i))&&o}const vE=n=>n!==null;function zc(n,{repeat:s,repeatType:i="loop"},o){const c=n.filter(vE),u=s&&i!=="loop"&&s%2===1?0:c.length-1;return!u||o===void 0?c[u]:o}const yE=40;class A_{constructor({autoplay:s=!0,delay:i=0,type:o="keyframes",repeat:c=0,repeatDelay:u=0,repeatType:d="loop",...m}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=is.now(),this.options={autoplay:s,delay:i,type:o,repeat:c,repeatDelay:u,repeatType:d,...m},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>yE?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dE(),this._resolved}onKeyframesResolved(s,i){this.resolvedAt=is.now(),this.hasAttemptedResolve=!0;const{name:o,type:c,velocity:u,delay:d,onComplete:m,onUpdate:h,isGenerator:g}=this.options;if(!g&&!gE(s,o,c,u))if(d)this.options.duration=0;else{h&&h(zc(s,this.options,i)),m&&m(),this.resolveFinishedPromise();return}const v=this.initPlayback(s,i);v!==!1&&(this._resolved={keyframes:s,finalKeyframe:i,...v},this.onPostResolved())}onPostResolved(){}then(s,i){return this.currentFinishedPromise.then(s,i)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(s=>{this.resolveFinishedPromise=s})}}const Jf=2e4;function D_(n){let s=0;const i=50;let o=n.next(s);for(;!o.done&&s<Jf;)s+=i,o=n.next(s);return s>=Jf?1/0:s}const vt=(n,s,i)=>n+(s-n)*i;function gf(n,s,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?n+(s-n)*6*i:i<1/2?s:i<2/3?n+(s-n)*(2/3-i)*6:n}function bE({hue:n,saturation:s,lightness:i,alpha:o}){n/=360,s/=100,i/=100;let c=0,u=0,d=0;if(!s)c=u=d=i;else{const m=i<.5?i*(1+s):i+s-i*s,h=2*i-m;c=gf(h,m,n+1/3),u=gf(h,m,n),d=gf(h,m,n-1/3)}return{red:Math.round(c*255),green:Math.round(u*255),blue:Math.round(d*255),alpha:o}}function Sc(n,s){return i=>i>0?s:n}const vf=(n,s,i)=>{const o=n*n,c=i*(s*s-o)+o;return c<0?0:Math.sqrt(c)},_E=[Ff,Fa,$i],xE=n=>_E.find(s=>s.test(n));function U0(n){const s=xE(n);if(!s)return!1;let i=s.parse(n);return s===$i&&(i=bE(i)),i}const z0=(n,s)=>{const i=U0(n),o=U0(s);if(!i||!o)return Sc(n,s);const c={...i};return u=>(c.red=vf(i.red,o.red,u),c.green=vf(i.green,o.green,u),c.blue=vf(i.blue,o.blue,u),c.alpha=vt(i.alpha,o.alpha,u),Fa.transform(c))},SE=(n,s)=>i=>s(n(i)),Rr=(...n)=>n.reduce(SE),Wf=new Set(["none","hidden"]);function TE(n,s){return Wf.has(n)?i=>i<=0?n:s:i=>i>=1?s:n}function kE(n,s){return i=>vt(n,s,i)}function Wp(n){return typeof n=="number"?kE:typeof n=="string"?Dp(n)?Sc:Xt.test(n)?z0:jE:Array.isArray(n)?R_:typeof n=="object"?Xt.test(n)?z0:wE:Sc}function R_(n,s){const i=[...n],o=i.length,c=n.map((u,d)=>Wp(u)(u,s[d]));return u=>{for(let d=0;d<o;d++)i[d]=c[d](u);return i}}function wE(n,s){const i={...n,...s},o={};for(const c in i)n[c]!==void 0&&s[c]!==void 0&&(o[c]=Wp(n[c])(n[c],s[c]));return c=>{for(const u in o)i[u]=o[u](c);return i}}function NE(n,s){var i;const o=[],c={color:0,var:0,number:0};for(let u=0;u<s.values.length;u++){const d=s.types[u],m=n.indexes[d][c[d]],h=(i=n.values[m])!==null&&i!==void 0?i:0;o[u]=h,c[d]++}return o}const jE=(n,s)=>{const i=ga.createTransformer(s),o=Nr(n),c=Nr(s);return o.indexes.var.length===c.indexes.var.length&&o.indexes.color.length===c.indexes.color.length&&o.indexes.number.length>=c.indexes.number.length?Wf.has(n)&&!c.values.length||Wf.has(s)&&!o.values.length?TE(n,s):Rr(R_(NE(o,c),c.values),i):Sc(n,s)};function M_(n,s,i){return typeof n=="number"&&typeof s=="number"&&typeof i=="number"?vt(n,s,i):Wp(n)(n,s)}const CE=5;function O_(n,s,i){const o=Math.max(s-CE,0);return s_(i-n(o),s-o)}const _t={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},yf=.001;function EE({duration:n=_t.duration,bounce:s=_t.bounce,velocity:i=_t.velocity,mass:o=_t.mass}){let c,u,d=1-s;d=Is(_t.minDamping,_t.maxDamping,d),n=Is(_t.minDuration,_t.maxDuration,Rs(n)),d<1?(c=g=>{const v=g*d,b=v*n,_=v-i,S=Xf(g,d),T=Math.exp(-b);return yf-_/S*T},u=g=>{const b=g*d*n,_=b*i+i,S=Math.pow(d,2)*Math.pow(g,2)*n,T=Math.exp(-b),N=Xf(Math.pow(g,2),d);return(-c(g)+yf>0?-1:1)*((_-S)*T)/N}):(c=g=>{const v=Math.exp(-g*n),b=(g-i)*n+1;return-yf+v*b},u=g=>{const v=Math.exp(-g*n),b=(i-g)*(n*n);return v*b});const m=5/n,h=DE(c,u,m);if(n=Ds(n),isNaN(h))return{stiffness:_t.stiffness,damping:_t.damping,duration:n};{const g=Math.pow(h,2)*o;return{stiffness:g,damping:d*2*Math.sqrt(o*g),duration:n}}}const AE=12;function DE(n,s,i){let o=i;for(let c=1;c<AE;c++)o=o-n(o)/s(o);return o}function Xf(n,s){return n*Math.sqrt(1-s*s)}const RE=["duration","bounce"],ME=["stiffness","damping","mass"];function P0(n,s){return s.some(i=>n[i]!==void 0)}function OE(n){let s={velocity:_t.velocity,stiffness:_t.stiffness,damping:_t.damping,mass:_t.mass,isResolvedFromDuration:!1,...n};if(!P0(n,ME)&&P0(n,RE))if(n.visualDuration){const i=n.visualDuration,o=2*Math.PI/(i*1.2),c=o*o,u=2*Is(.05,1,1-(n.bounce||0))*Math.sqrt(c);s={...s,mass:_t.mass,stiffness:c,damping:u}}else{const i=EE(n);s={...s,...i,mass:_t.mass},s.isResolvedFromDuration=!0}return s}function I_(n=_t.visualDuration,s=_t.bounce){const i=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:s}:n;let{restSpeed:o,restDelta:c}=i;const u=i.keyframes[0],d=i.keyframes[i.keyframes.length-1],m={done:!1,value:u},{stiffness:h,damping:g,mass:v,duration:b,velocity:_,isResolvedFromDuration:S}=OE({...i,velocity:-Rs(i.velocity||0)}),T=_||0,N=g/(2*Math.sqrt(h*v)),j=d-u,w=Rs(Math.sqrt(h/v)),C=Math.abs(j)<5;o||(o=C?_t.restSpeed.granular:_t.restSpeed.default),c||(c=C?_t.restDelta.granular:_t.restDelta.default);let A;if(N<1){const D=Xf(w,N);A=E=>{const H=Math.exp(-N*w*E);return d-H*((T+N*w*j)/D*Math.sin(D*E)+j*Math.cos(D*E))}}else if(N===1)A=D=>d-Math.exp(-w*D)*(j+(T+w*j)*D);else{const D=w*Math.sqrt(N*N-1);A=E=>{const H=Math.exp(-N*w*E),z=Math.min(D*E,300);return d-H*((T+N*w*j)*Math.sinh(z)+D*j*Math.cosh(z))/D}}const M={calculatedDuration:S&&b||null,next:D=>{const E=A(D);if(S)m.done=D>=b;else{let H=0;N<1&&(H=D===0?Ds(T):O_(A,D,E));const z=Math.abs(H)<=o,Z=Math.abs(d-E)<=c;m.done=z&&Z}return m.value=m.done?d:E,m},toString:()=>{const D=Math.min(D_(M),Jf),E=i_(H=>M.next(D*H).value,D,30);return D+"ms "+E}};return M}function V0({keyframes:n,velocity:s=0,power:i=.8,timeConstant:o=325,bounceDamping:c=10,bounceStiffness:u=500,modifyTarget:d,min:m,max:h,restDelta:g=.5,restSpeed:v}){const b=n[0],_={done:!1,value:b},S=z=>m!==void 0&&z<m||h!==void 0&&z>h,T=z=>m===void 0?h:h===void 0||Math.abs(m-z)<Math.abs(h-z)?m:h;let N=i*s;const j=b+N,w=d===void 0?j:d(j);w!==j&&(N=w-b);const C=z=>-N*Math.exp(-z/o),A=z=>w+C(z),M=z=>{const Z=C(z),F=A(z);_.done=Math.abs(Z)<=g,_.value=_.done?w:F};let D,E;const H=z=>{S(_.value)&&(D=z,E=I_({keyframes:[_.value,T(_.value)],velocity:O_(A,z,_.value),damping:c,stiffness:u,restDelta:g,restSpeed:v}))};return H(0),{calculatedDuration:null,next:z=>{let Z=!1;return!E&&D===void 0&&(Z=!0,M(z),H(z)),D!==void 0&&z>=D?E.next(z-D):(!Z&&M(z),_)}}}const IE=Dr(.42,0,1,1),BE=Dr(0,0,.58,1),B_=Dr(.42,0,.58,1),LE=n=>Array.isArray(n)&&typeof n[0]!="number",UE={linear:_n,easeIn:IE,easeInOut:B_,easeOut:BE,circIn:Fp,circInOut:h_,circOut:m_,backIn:$p,backInOut:f_,backOut:d_,anticipate:p_},H0=n=>{if(Gp(n)){Bb(n.length===4);const[s,i,o,c]=n;return Dr(s,i,o,c)}else if(typeof n=="string")return UE[n];return n};function zE(n,s,i){const o=[],c=i||M_,u=n.length-1;for(let d=0;d<u;d++){let m=c(n[d],n[d+1]);if(s){const h=Array.isArray(s)?s[d]||_n:s;m=Rr(h,m)}o.push(m)}return o}function PE(n,s,{clamp:i=!0,ease:o,mixer:c}={}){const u=n.length;if(Bb(u===s.length),u===1)return()=>s[0];if(u===2&&s[0]===s[1])return()=>s[1];const d=n[0]===n[1];n[0]>n[u-1]&&(n=[...n].reverse(),s=[...s].reverse());const m=zE(s,o,c),h=m.length,g=v=>{if(d&&v<n[0])return s[0];let b=0;if(h>1)for(;b<n.length-2&&!(v<n[b+1]);b++);const _=no(n[b],n[b+1],v);return m[b](_)};return i?v=>g(Is(n[0],n[u-1],v)):g}function VE(n,s){const i=n[n.length-1];for(let o=1;o<=s;o++){const c=no(0,s,o);n.push(vt(i,1,c))}}function HE(n){const s=[0];return VE(s,n.length-1),s}function qE(n,s){return n.map(i=>i*s)}function GE(n,s){return n.map(()=>s||B_).splice(0,n.length-1)}function Tc({duration:n=300,keyframes:s,times:i,ease:o="easeInOut"}){const c=LE(o)?o.map(H0):H0(o),u={done:!1,value:s[0]},d=qE(i&&i.length===s.length?i:HE(s),n),m=PE(d,s,{ease:Array.isArray(c)?c:GE(s,c)});return{calculatedDuration:n,next:h=>(u.value=m(h),u.done=h>=n,u)}}const $E=n=>{const s=({timestamp:i})=>n(i);return{start:()=>ft.update(s,!0),stop:()=>ha(s),now:()=>Kt.isProcessing?Kt.timestamp:is.now()}},FE={decay:V0,inertia:V0,tween:Tc,keyframes:Tc,spring:I_},ZE=n=>n/100;class Xp extends A_{constructor(s){super(s),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:h}=this.options;h&&h()};const{name:i,motionValue:o,element:c,keyframes:u}=this.options,d=(c==null?void 0:c.KeyframeResolver)||Jp,m=(h,g)=>this.onKeyframesResolved(h,g);this.resolver=new d(u,m,i,o,c),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(s){const{type:i="keyframes",repeat:o=0,repeatDelay:c=0,repeatType:u,velocity:d=0}=this.options,m=qp(i)?i:FE[i]||Tc;let h,g;m!==Tc&&typeof s[0]!="number"&&(h=Rr(ZE,M_(s[0],s[1])),s=[0,100]);const v=m({...this.options,keyframes:s});u==="mirror"&&(g=m({...this.options,keyframes:[...s].reverse(),velocity:-d})),v.calculatedDuration===null&&(v.calculatedDuration=D_(v));const{calculatedDuration:b}=v,_=b+c,S=_*(o+1)-c;return{generator:v,mirroredGenerator:g,mapPercentToKeyframes:h,calculatedDuration:b,resolvedDuration:_,totalDuration:S}}onPostResolved(){const{autoplay:s=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!s?this.pause():this.state=this.pendingPlayState}tick(s,i=!1){const{resolved:o}=this;if(!o){const{keyframes:z}=this.options;return{done:!0,value:z[z.length-1]}}const{finalKeyframe:c,generator:u,mirroredGenerator:d,mapPercentToKeyframes:m,keyframes:h,calculatedDuration:g,totalDuration:v,resolvedDuration:b}=o;if(this.startTime===null)return u.next(0);const{delay:_,repeat:S,repeatType:T,repeatDelay:N,onUpdate:j}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,s):this.speed<0&&(this.startTime=Math.min(s-v/this.speed,this.startTime)),i?this.currentTime=s:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(s-this.startTime)*this.speed;const w=this.currentTime-_*(this.speed>=0?1:-1),C=this.speed>=0?w<0:w>v;this.currentTime=Math.max(w,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=v);let A=this.currentTime,M=u;if(S){const z=Math.min(this.currentTime,v)/b;let Z=Math.floor(z),F=z%1;!F&&z>=1&&(F=1),F===1&&Z--,Z=Math.min(Z,S+1),!!(Z%2)&&(T==="reverse"?(F=1-F,N&&(F-=N/b)):T==="mirror"&&(M=d)),A=Is(0,1,F)*b}const D=C?{done:!1,value:h[0]}:M.next(A);m&&(D.value=m(D.value));let{done:E}=D;!C&&g!==null&&(E=this.speed>=0?this.currentTime>=v:this.currentTime<=0);const H=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return H&&c!==void 0&&(D.value=zc(h,this.options,c)),j&&j(D.value),H&&this.finish(),D}get duration(){const{resolved:s}=this;return s?Rs(s.calculatedDuration):0}get time(){return Rs(this.currentTime)}set time(s){s=Ds(s),this.currentTime=s,this.holdTime!==null||this.speed===0?this.holdTime=s:this.driver&&(this.startTime=this.driver.now()-s/this.speed)}get speed(){return this.playbackSpeed}set speed(s){const i=this.playbackSpeed!==s;this.playbackSpeed=s,i&&(this.time=Rs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:s=$E,onPlay:i,startTime:o}=this.options;this.driver||(this.driver=s(u=>this.tick(u))),i&&i();const c=this.driver.now();this.holdTime!==null?this.startTime=c-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=c):this.startTime=o??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var s;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(s=this.currentTime)!==null&&s!==void 0?s:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:s}=this.options;s&&s()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(s){return this.startTime=0,this.tick(s,!0)}}const KE=new Set(["opacity","clipPath","filter","transform"]);function YE(n,s,i,{delay:o=0,duration:c=300,repeat:u=0,repeatType:d="loop",ease:m="easeInOut",times:h}={}){const g={[s]:i};h&&(g.offset=h);const v=r_(m,c);return Array.isArray(v)&&(g.easing=v),n.animate(g,{delay:o,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:u+1,direction:d==="reverse"?"alternate":"normal"})}const JE=Hp(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),kc=10,WE=2e4;function XE(n){return qp(n.type)||n.type==="spring"||!o_(n.ease)}function QE(n,s){const i=new Xp({...s,keyframes:n,repeat:0,delay:0,isGenerator:!0});let o={done:!1,value:n[0]};const c=[];let u=0;for(;!o.done&&u<WE;)o=i.sample(u),c.push(o.value),u+=kc;return{times:void 0,keyframes:c,duration:u-kc,ease:"linear"}}const L_={anticipate:p_,backInOut:f_,circInOut:h_};function eA(n){return n in L_}class q0 extends A_{constructor(s){super(s);const{name:i,motionValue:o,element:c,keyframes:u}=this.options;this.resolver=new E_(u,(d,m)=>this.onKeyframesResolved(d,m),i,o,c),this.resolver.scheduleResolve()}initPlayback(s,i){let{duration:o=300,times:c,ease:u,type:d,motionValue:m,name:h,startTime:g}=this.options;if(!m.owner||!m.owner.current)return!1;if(typeof u=="string"&&xc()&&eA(u)&&(u=L_[u]),XE(this.options)){const{onComplete:b,onUpdate:_,motionValue:S,element:T,...N}=this.options,j=QE(s,N);s=j.keyframes,s.length===1&&(s[1]=s[0]),o=j.duration,c=j.times,u=j.ease,d="keyframes"}const v=YE(m.owner.current,h,s,{...this.options,duration:o,times:c,ease:u});return v.startTime=g??this.calcStartTime(),this.pendingTimeline?(D0(v,this.pendingTimeline),this.pendingTimeline=void 0):v.onfinish=()=>{const{onComplete:b}=this.options;m.set(zc(s,this.options,i)),b&&b(),this.cancel(),this.resolveFinishedPromise()},{animation:v,duration:o,times:c,type:d,ease:u,keyframes:s}}get duration(){const{resolved:s}=this;if(!s)return 0;const{duration:i}=s;return Rs(i)}get time(){const{resolved:s}=this;if(!s)return 0;const{animation:i}=s;return Rs(i.currentTime||0)}set time(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.currentTime=Ds(s)}get speed(){const{resolved:s}=this;if(!s)return 1;const{animation:i}=s;return i.playbackRate}set speed(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.playbackRate=s}get state(){const{resolved:s}=this;if(!s)return"idle";const{animation:i}=s;return i.playState}get startTime(){const{resolved:s}=this;if(!s)return null;const{animation:i}=s;return i.startTime}attachTimeline(s){if(!this._resolved)this.pendingTimeline=s;else{const{resolved:i}=this;if(!i)return _n;const{animation:o}=i;D0(o,s)}return _n}play(){if(this.isStopped)return;const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.playState==="finished"&&this.updateFinishedPromise(),i.play()}pause(){const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:s}=this;if(!s)return;const{animation:i,keyframes:o,duration:c,type:u,ease:d,times:m}=s;if(i.playState==="idle"||i.playState==="finished")return;if(this.time){const{motionValue:g,onUpdate:v,onComplete:b,element:_,...S}=this.options,T=new Xp({...S,keyframes:o,duration:c,type:u,ease:d,times:m,isGenerator:!0}),N=Ds(this.time);g.setWithVelocity(T.sample(N-kc).value,T.sample(N).value,kc)}const{onStop:h}=this.options;h&&h(),this.cancel()}complete(){const{resolved:s}=this;s&&s.animation.finish()}cancel(){const{resolved:s}=this;s&&s.animation.cancel()}static supports(s){const{motionValue:i,name:o,repeatDelay:c,repeatType:u,damping:d,type:m}=s;if(!i||!i.owner||!(i.owner.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:g}=i.owner.getProps();return JE()&&o&&KE.has(o)&&!h&&!g&&!c&&u!=="mirror"&&d!==0&&m!=="inertia"}}const tA={type:"spring",stiffness:500,damping:25,restSpeed:10},nA=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),sA={type:"keyframes",duration:.8},aA={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iA=(n,{keyframes:s})=>s.length>2?sA:ni.has(n)?n.startsWith("scale")?nA(s[1]):tA:aA;function oA({when:n,delay:s,delayChildren:i,staggerChildren:o,staggerDirection:c,repeat:u,repeatType:d,repeatDelay:m,from:h,elapsed:g,...v}){return!!Object.keys(v).length}const Qp=(n,s,i,o={},c,u)=>d=>{const m=Up(o,n)||{},h=m.delay||o.delay||0;let{elapsed:g=0}=o;g=g-Ds(h);let v={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:s.getVelocity(),...m,delay:-g,onUpdate:_=>{s.set(_),m.onUpdate&&m.onUpdate(_)},onComplete:()=>{d(),m.onComplete&&m.onComplete()},name:n,motionValue:s,element:u?void 0:c};oA(m)||(v={...v,...iA(n,v)}),v.duration&&(v.duration=Ds(v.duration)),v.repeatDelay&&(v.repeatDelay=Ds(v.repeatDelay)),v.from!==void 0&&(v.keyframes[0]=v.from);let b=!1;if((v.type===!1||v.duration===0&&!v.repeatDelay)&&(v.duration=0,v.delay===0&&(b=!0)),b&&!u&&s.get()!==void 0){const _=zc(v.keyframes,m);if(_!==void 0)return ft.update(()=>{v.onUpdate(_),v.onComplete()}),new UC([])}return!u&&q0.supports(v)?new q0(v):new Xp(v)};function rA({protectedKeys:n,needsAnimating:s},i){const o=n.hasOwnProperty(i)&&s[i]!==!0;return s[i]=!1,o}function U_(n,s,{delay:i=0,transitionOverride:o,type:c}={}){var u;let{transition:d=n.getDefaultTransition(),transitionEnd:m,...h}=s;o&&(d=o);const g=[],v=c&&n.animationState&&n.animationState.getState()[c];for(const b in h){const _=n.getValue(b,(u=n.latestValues[b])!==null&&u!==void 0?u:null),S=h[b];if(S===void 0||v&&rA(v,b))continue;const T={delay:i,...Up(d||{},b)};let N=!1;if(window.MotionHandoffAnimation){const w=a_(n);if(w){const C=window.MotionHandoffAnimation(w,b,ft);C!==null&&(T.startTime=C,N=!0)}}Gf(n,b),_.start(Qp(b,_,S,n.shouldReduceMotion&&n_.has(b)?{type:!1}:T,n,N));const j=_.animation;j&&g.push(j)}return m&&Promise.all(g).then(()=>{ft.update(()=>{m&&OC(n,m)})}),g}function Qf(n,s,i={}){var o;const c=Uc(n,s,i.type==="exit"?(o=n.presenceContext)===null||o===void 0?void 0:o.custom:void 0);let{transition:u=n.getDefaultTransition()||{}}=c||{};i.transitionOverride&&(u=i.transitionOverride);const d=c?()=>Promise.all(U_(n,c,i)):()=>Promise.resolve(),m=n.variantChildren&&n.variantChildren.size?(g=0)=>{const{delayChildren:v=0,staggerChildren:b,staggerDirection:_}=u;return lA(n,s,v+g,b,_,i)}:()=>Promise.resolve(),{when:h}=u;if(h){const[g,v]=h==="beforeChildren"?[d,m]:[m,d];return g().then(()=>v())}else return Promise.all([d(),m(i.delay)])}function lA(n,s,i=0,o=0,c=1,u){const d=[],m=(n.variantChildren.size-1)*o,h=c===1?(g=0)=>g*o:(g=0)=>m-g*o;return Array.from(n.variantChildren).sort(cA).forEach((g,v)=>{g.notify("AnimationStart",s),d.push(Qf(g,s,{...u,delay:i+h(v)}).then(()=>g.notify("AnimationComplete",s)))}),Promise.all(d)}function cA(n,s){return n.sortNodePosition(s)}function uA(n,s,i={}){n.notify("AnimationStart",s);let o;if(Array.isArray(s)){const c=s.map(u=>Qf(n,u,i));o=Promise.all(c)}else if(typeof s=="string")o=Qf(n,s,i);else{const c=typeof s=="function"?Uc(n,s,i.custom):s;o=Promise.all(U_(n,c,i))}return o.then(()=>{n.notify("AnimationComplete",s)})}const dA=Np.length;function z_(n){if(!n)return;if(!n.isControllingVariants){const i=n.parent?z_(n.parent)||{}:{};return n.props.initial!==void 0&&(i.initial=n.props.initial),i}const s={};for(let i=0;i<dA;i++){const o=Np[i],c=n.props[o];(Tr(c)||c===!1)&&(s[o]=c)}return s}const fA=[...wp].reverse(),pA=wp.length;function mA(n){return s=>Promise.all(s.map(({animation:i,options:o})=>uA(n,i,o)))}function hA(n){let s=mA(n),i=G0(),o=!0;const c=h=>(g,v)=>{var b;const _=Uc(n,v,h==="exit"?(b=n.presenceContext)===null||b===void 0?void 0:b.custom:void 0);if(_){const{transition:S,transitionEnd:T,...N}=_;g={...g,...N,...T}}return g};function u(h){s=h(n)}function d(h){const{props:g}=n,v=z_(n.parent)||{},b=[],_=new Set;let S={},T=1/0;for(let j=0;j<pA;j++){const w=fA[j],C=i[w],A=g[w]!==void 0?g[w]:v[w],M=Tr(A),D=w===h?C.isActive:null;D===!1&&(T=j);let E=A===v[w]&&A!==g[w]&&M;if(E&&o&&n.manuallyAnimateOnMount&&(E=!1),C.protectedKeys={...S},!C.isActive&&D===null||!A&&!C.prevProp||Bc(A)||typeof A=="boolean")continue;const H=gA(C.prevProp,A);let z=H||w===h&&C.isActive&&!E&&M||j>T&&M,Z=!1;const F=Array.isArray(A)?A:[A];let Q=F.reduce(c(w),{});D===!1&&(Q={});const{prevResolvedValues:ae={}}=C,pe={...ae,...Q},oe=$=>{z=!0,_.has($)&&(Z=!0,_.delete($)),C.needsAnimating[$]=!0;const te=n.getValue($);te&&(te.liveStyle=!1)};for(const $ in pe){const te=Q[$],re=ae[$];if(S.hasOwnProperty($))continue;let de=!1;qf(te)&&qf(re)?de=!t_(te,re):de=te!==re,de?te!=null?oe($):_.add($):te!==void 0&&_.has($)?oe($):C.protectedKeys[$]=!0}C.prevProp=A,C.prevResolvedValues=Q,C.isActive&&(S={...S,...Q}),o&&n.blockInitialAnimation&&(z=!1),z&&(!(E&&H)||Z)&&b.push(...F.map($=>({animation:$,options:{type:w}})))}if(_.size){const j={};_.forEach(w=>{const C=n.getBaseTarget(w),A=n.getValue(w);A&&(A.liveStyle=!0),j[w]=C??null}),b.push({animation:j})}let N=!!b.length;return o&&(g.initial===!1||g.initial===g.animate)&&!n.manuallyAnimateOnMount&&(N=!1),o=!1,N?s(b):Promise.resolve()}function m(h,g){var v;if(i[h].isActive===g)return Promise.resolve();(v=n.variantChildren)===null||v===void 0||v.forEach(_=>{var S;return(S=_.animationState)===null||S===void 0?void 0:S.setActive(h,g)}),i[h].isActive=g;const b=d(h);for(const _ in i)i[_].protectedKeys={};return b}return{animateChanges:d,setActive:m,setAnimateFunction:u,getState:()=>i,reset:()=>{i=G0(),o=!0}}}function gA(n,s){return typeof s=="string"?s!==n:Array.isArray(s)?!t_(s,n):!1}function za(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function G0(){return{animate:za(!0),whileInView:za(),whileHover:za(),whileTap:za(),whileDrag:za(),whileFocus:za(),exit:za()}}class ba{constructor(s){this.isMounted=!1,this.node=s}update(){}}class vA extends ba{constructor(s){super(s),s.animationState||(s.animationState=hA(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Bc(s)&&(this.unmountControls=s.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:s}=this.node.getProps(),{animate:i}=this.node.prevProps||{};s!==i&&this.updateAnimationControlsSubscription()}unmount(){var s;this.node.animationState.reset(),(s=this.unmountControls)===null||s===void 0||s.call(this)}}let yA=0;class bA extends ba{constructor(){super(...arguments),this.id=yA++}update(){if(!this.node.presenceContext)return;const{isPresent:s,onExitComplete:i}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||s===o)return;const c=this.node.animationState.setActive("exit",!s);i&&!s&&c.then(()=>i(this.id))}mount(){const{register:s}=this.node.presenceContext||{};s&&(this.unmount=s(this.id))}unmount(){}}const _A={animation:{Feature:vA},exit:{Feature:bA}},Zn={x:!1,y:!1};function P_(){return Zn.x||Zn.y}function xA(n){return n==="x"||n==="y"?Zn[n]?null:(Zn[n]=!0,()=>{Zn[n]=!1}):Zn.x||Zn.y?null:(Zn.x=Zn.y=!0,()=>{Zn.x=Zn.y=!1})}const em=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1;function jr(n,s,i,o={passive:!0}){return n.addEventListener(s,i,o),()=>n.removeEventListener(s,i)}function Mr(n){return{point:{x:n.pageX,y:n.pageY}}}const SA=n=>s=>em(s)&&n(s,Mr(s));function hr(n,s,i,o){return jr(n,s,SA(i),o)}const $0=(n,s)=>Math.abs(n-s);function TA(n,s){const i=$0(n.x,s.x),o=$0(n.y,s.y);return Math.sqrt(i**2+o**2)}class V_{constructor(s,i,{transformPagePoint:o,contextWindow:c,dragSnapToOrigin:u=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=_f(this.lastMoveEventInfo,this.history),_=this.startEvent!==null,S=TA(b.offset,{x:0,y:0})>=3;if(!_&&!S)return;const{point:T}=b,{timestamp:N}=Kt;this.history.push({...T,timestamp:N});const{onStart:j,onMove:w}=this.handlers;_||(j&&j(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),w&&w(this.lastMoveEvent,b)},this.handlePointerMove=(b,_)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=bf(_,this.transformPagePoint),ft.update(this.updatePoint,!0)},this.handlePointerUp=(b,_)=>{this.end();const{onEnd:S,onSessionEnd:T,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const j=_f(b.type==="pointercancel"?this.lastMoveEventInfo:bf(_,this.transformPagePoint),this.history);this.startEvent&&S&&S(b,j),T&&T(b,j)},!em(s))return;this.dragSnapToOrigin=u,this.handlers=i,this.transformPagePoint=o,this.contextWindow=c||window;const d=Mr(s),m=bf(d,this.transformPagePoint),{point:h}=m,{timestamp:g}=Kt;this.history=[{...h,timestamp:g}];const{onSessionStart:v}=i;v&&v(s,_f(m,this.history)),this.removeListeners=Rr(hr(this.contextWindow,"pointermove",this.handlePointerMove),hr(this.contextWindow,"pointerup",this.handlePointerUp),hr(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),ha(this.updatePoint)}}function bf(n,s){return s?{point:s(n.point)}:n}function F0(n,s){return{x:n.x-s.x,y:n.y-s.y}}function _f({point:n},s){return{point:n,delta:F0(n,H_(s)),offset:F0(n,kA(s)),velocity:wA(s,.1)}}function kA(n){return n[0]}function H_(n){return n[n.length-1]}function wA(n,s){if(n.length<2)return{x:0,y:0};let i=n.length-1,o=null;const c=H_(n);for(;i>=0&&(o=n[i],!(c.timestamp-o.timestamp>Ds(s)));)i--;if(!o)return{x:0,y:0};const u=Rs(c.timestamp-o.timestamp);if(u===0)return{x:0,y:0};const d={x:(c.x-o.x)/u,y:(c.y-o.y)/u};return d.x===1/0&&(d.x=0),d.y===1/0&&(d.y=0),d}const q_=1e-4,NA=1-q_,jA=1+q_,G_=.01,CA=0-G_,EA=0+G_;function xn(n){return n.max-n.min}function AA(n,s,i){return Math.abs(n-s)<=i}function Z0(n,s,i,o=.5){n.origin=o,n.originPoint=vt(s.min,s.max,n.origin),n.scale=xn(i)/xn(s),n.translate=vt(i.min,i.max,n.origin)-n.originPoint,(n.scale>=NA&&n.scale<=jA||isNaN(n.scale))&&(n.scale=1),(n.translate>=CA&&n.translate<=EA||isNaN(n.translate))&&(n.translate=0)}function gr(n,s,i,o){Z0(n.x,s.x,i.x,o?o.originX:void 0),Z0(n.y,s.y,i.y,o?o.originY:void 0)}function K0(n,s,i){n.min=i.min+s.min,n.max=n.min+xn(s)}function DA(n,s,i){K0(n.x,s.x,i.x),K0(n.y,s.y,i.y)}function Y0(n,s,i){n.min=s.min-i.min,n.max=n.min+xn(s)}function vr(n,s,i){Y0(n.x,s.x,i.x),Y0(n.y,s.y,i.y)}function RA(n,{min:s,max:i},o){return s!==void 0&&n<s?n=o?vt(s,n,o.min):Math.max(n,s):i!==void 0&&n>i&&(n=o?vt(i,n,o.max):Math.min(n,i)),n}function J0(n,s,i){return{min:s!==void 0?n.min+s:void 0,max:i!==void 0?n.max+i-(n.max-n.min):void 0}}function MA(n,{top:s,left:i,bottom:o,right:c}){return{x:J0(n.x,i,c),y:J0(n.y,s,o)}}function W0(n,s){let i=s.min-n.min,o=s.max-n.max;return s.max-s.min<n.max-n.min&&([i,o]=[o,i]),{min:i,max:o}}function OA(n,s){return{x:W0(n.x,s.x),y:W0(n.y,s.y)}}function IA(n,s){let i=.5;const o=xn(n),c=xn(s);return c>o?i=no(s.min,s.max-o,n.min):o>c&&(i=no(n.min,n.max-c,s.min)),Is(0,1,i)}function BA(n,s){const i={};return s.min!==void 0&&(i.min=s.min-n.min),s.max!==void 0&&(i.max=s.max-n.min),i}const ep=.35;function LA(n=ep){return n===!1?n=0:n===!0&&(n=ep),{x:X0(n,"left","right"),y:X0(n,"top","bottom")}}function X0(n,s,i){return{min:Q0(n,s),max:Q0(n,i)}}function Q0(n,s){return typeof n=="number"?n:n[s]||0}const ey=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fi=()=>({x:ey(),y:ey()}),ty=()=>({min:0,max:0}),jt=()=>({x:ty(),y:ty()});function Bn(n){return[n("x"),n("y")]}function $_({top:n,left:s,right:i,bottom:o}){return{x:{min:s,max:i},y:{min:n,max:o}}}function UA({x:n,y:s}){return{top:s.min,right:n.max,bottom:s.max,left:n.min}}function zA(n,s){if(!s)return n;const i=s({x:n.left,y:n.top}),o=s({x:n.right,y:n.bottom});return{top:i.y,left:i.x,bottom:o.y,right:o.x}}function xf(n){return n===void 0||n===1}function tp({scale:n,scaleX:s,scaleY:i}){return!xf(n)||!xf(s)||!xf(i)}function Ga(n){return tp(n)||F_(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function F_(n){return ny(n.x)||ny(n.y)}function ny(n){return n&&n!=="0%"}function wc(n,s,i){const o=n-i,c=s*o;return i+c}function sy(n,s,i,o,c){return c!==void 0&&(n=wc(n,c,o)),wc(n,i,o)+s}function np(n,s=0,i=1,o,c){n.min=sy(n.min,s,i,o,c),n.max=sy(n.max,s,i,o,c)}function Z_(n,{x:s,y:i}){np(n.x,s.translate,s.scale,s.originPoint),np(n.y,i.translate,i.scale,i.originPoint)}const ay=.999999999999,iy=1.0000000000001;function PA(n,s,i,o=!1){const c=i.length;if(!c)return;s.x=s.y=1;let u,d;for(let m=0;m<c;m++){u=i[m],d=u.projectionDelta;const{visualElement:h}=u.options;h&&h.props.style&&h.props.style.display==="contents"||(o&&u.options.layoutScroll&&u.scroll&&u!==u.root&&Ki(n,{x:-u.scroll.offset.x,y:-u.scroll.offset.y}),d&&(s.x*=d.x.scale,s.y*=d.y.scale,Z_(n,d)),o&&Ga(u.latestValues)&&Ki(n,u.latestValues))}s.x<iy&&s.x>ay&&(s.x=1),s.y<iy&&s.y>ay&&(s.y=1)}function Zi(n,s){n.min=n.min+s,n.max=n.max+s}function oy(n,s,i,o,c=.5){const u=vt(n.min,n.max,c);np(n,s,i,u,o)}function Ki(n,s){oy(n.x,s.x,s.scaleX,s.scale,s.originX),oy(n.y,s.y,s.scaleY,s.scale,s.originY)}function K_(n,s){return $_(zA(n.getBoundingClientRect(),s))}function VA(n,s,i){const o=K_(n,i),{scroll:c}=s;return c&&(Zi(o.x,c.offset.x),Zi(o.y,c.offset.y)),o}const Y_=({current:n})=>n?n.ownerDocument.defaultView:null,HA=new WeakMap;class qA{constructor(s){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=jt(),this.visualElement=s}start(s,{snapToCursor:i=!1}={}){const{presenceContext:o}=this.visualElement;if(o&&o.isPresent===!1)return;const c=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),i&&this.snapToCursor(Mr(v).point)},u=(v,b)=>{const{drag:_,dragPropagation:S,onDragStart:T}=this.getProps();if(_&&!S&&(this.openDragLock&&this.openDragLock(),this.openDragLock=xA(_),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Bn(j=>{let w=this.getAxisMotionValue(j).get()||0;if(as.test(w)){const{projection:C}=this.visualElement;if(C&&C.layout){const A=C.layout.layoutBox[j];A&&(w=xn(A)*(parseFloat(w)/100))}}this.originPoint[j]=w}),T&&ft.postRender(()=>T(v,b)),Gf(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},d=(v,b)=>{const{dragPropagation:_,dragDirectionLock:S,onDirectionLock:T,onDrag:N}=this.getProps();if(!_&&!this.openDragLock)return;const{offset:j}=b;if(S&&this.currentDirection===null){this.currentDirection=GA(j),this.currentDirection!==null&&T&&T(this.currentDirection);return}this.updateAxis("x",b.point,j),this.updateAxis("y",b.point,j),this.visualElement.render(),N&&N(v,b)},m=(v,b)=>this.stop(v,b),h=()=>Bn(v=>{var b;return this.getAnimationState(v)==="paused"&&((b=this.getAxisMotionValue(v).animation)===null||b===void 0?void 0:b.play())}),{dragSnapToOrigin:g}=this.getProps();this.panSession=new V_(s,{onSessionStart:c,onStart:u,onMove:d,onSessionEnd:m,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,contextWindow:Y_(this.visualElement)})}stop(s,i){const o=this.isDragging;if(this.cancel(),!o)return;const{velocity:c}=i;this.startAnimation(c);const{onDragEnd:u}=this.getProps();u&&ft.postRender(()=>u(s,i))}cancel(){this.isDragging=!1;const{projection:s,animationState:i}=this.visualElement;s&&(s.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:o}=this.getProps();!o&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),i&&i.setActive("whileDrag",!1)}updateAxis(s,i,o){const{drag:c}=this.getProps();if(!o||!sc(s,c,this.currentDirection))return;const u=this.getAxisMotionValue(s);let d=this.originPoint[s]+o[s];this.constraints&&this.constraints[s]&&(d=RA(d,this.constraints[s],this.elastic[s])),u.set(d)}resolveConstraints(){var s;const{dragConstraints:i,dragElastic:o}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)===null||s===void 0?void 0:s.layout,u=this.constraints;i&&Gi(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&c?this.constraints=MA(c.layoutBox,i):this.constraints=!1,this.elastic=LA(o),u!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&Bn(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=BA(c.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:i}=this.getProps();if(!s||!Gi(s))return!1;const o=s.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const u=VA(o,c.root,this.visualElement.getTransformPagePoint());let d=OA(c.layout.layoutBox,u);if(i){const m=i(UA(d));this.hasMutatedConstraints=!!m,m&&(d=$_(m))}return d}startAnimation(s){const{drag:i,dragMomentum:o,dragElastic:c,dragTransition:u,dragSnapToOrigin:d,onDragTransitionEnd:m}=this.getProps(),h=this.constraints||{},g=Bn(v=>{if(!sc(v,i,this.currentDirection))return;let b=h&&h[v]||{};d&&(b={min:0,max:0});const _=c?200:1e6,S=c?40:1e7,T={type:"inertia",velocity:o?s[v]:0,bounceStiffness:_,bounceDamping:S,timeConstant:750,restDelta:1,restSpeed:10,...u,...b};return this.startAxisValueAnimation(v,T)});return Promise.all(g).then(m)}startAxisValueAnimation(s,i){const o=this.getAxisMotionValue(s);return Gf(this.visualElement,s),o.start(Qp(s,o,0,i,this.visualElement,!1))}stopAnimation(){Bn(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){Bn(s=>{var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.pause()})}getAnimationState(s){var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.state}getAxisMotionValue(s){const i=`_drag${s.toUpperCase()}`,o=this.visualElement.getProps(),c=o[i];return c||this.visualElement.getValue(s,(o.initial?o.initial[s]:void 0)||0)}snapToCursor(s){Bn(i=>{const{drag:o}=this.getProps();if(!sc(i,o,this.currentDirection))return;const{projection:c}=this.visualElement,u=this.getAxisMotionValue(i);if(c&&c.layout){const{min:d,max:m}=c.layout.layoutBox[i];u.set(s[i]-vt(d,m,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:i}=this.getProps(),{projection:o}=this.visualElement;if(!Gi(i)||!o||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};Bn(d=>{const m=this.getAxisMotionValue(d);if(m&&this.constraints!==!1){const h=m.get();c[d]=IA({min:h,max:h},this.constraints[d])}});const{transformTemplate:u}=this.visualElement.getProps();this.visualElement.current.style.transform=u?u({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),Bn(d=>{if(!sc(d,s,null))return;const m=this.getAxisMotionValue(d),{min:h,max:g}=this.constraints[d];m.set(vt(h,g,c[d]))})}addListeners(){if(!this.visualElement.current)return;HA.set(this.visualElement,this);const s=this.visualElement.current,i=hr(s,"pointerdown",h=>{const{drag:g,dragListener:v=!0}=this.getProps();g&&v&&this.start(h)}),o=()=>{const{dragConstraints:h}=this.getProps();Gi(h)&&h.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,u=c.addEventListener("measure",o);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),ft.read(o);const d=jr(window,"resize",()=>this.scalePositionWithinConstraints()),m=c.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:g})=>{this.isDragging&&g&&(Bn(v=>{const b=this.getAxisMotionValue(v);b&&(this.originPoint[v]+=h[v].translate,b.set(b.get()+h[v].translate))}),this.visualElement.render())}));return()=>{d(),i(),u(),m&&m()}}getProps(){const s=this.visualElement.getProps(),{drag:i=!1,dragDirectionLock:o=!1,dragPropagation:c=!1,dragConstraints:u=!1,dragElastic:d=ep,dragMomentum:m=!0}=s;return{...s,drag:i,dragDirectionLock:o,dragPropagation:c,dragConstraints:u,dragElastic:d,dragMomentum:m}}}function sc(n,s,i){return(s===!0||s===n)&&(i===null||i===n)}function GA(n,s=10){let i=null;return Math.abs(n.y)>s?i="y":Math.abs(n.x)>s&&(i="x"),i}class $A extends ba{constructor(s){super(s),this.removeGroupControls=_n,this.removeListeners=_n,this.controls=new qA(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||_n}unmount(){this.removeGroupControls(),this.removeListeners()}}const ry=n=>(s,i)=>{n&&ft.postRender(()=>n(s,i))};class FA extends ba{constructor(){super(...arguments),this.removePointerDownListener=_n}onPointerDown(s){this.session=new V_(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Y_(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:i,onPan:o,onPanEnd:c}=this.node.getProps();return{onSessionStart:ry(s),onStart:ry(i),onMove:o,onEnd:(u,d)=>{delete this.session,c&&ft.postRender(()=>c(u,d))}}}mount(){this.removePointerDownListener=hr(this.node.current,"pointerdown",s=>this.onPointerDown(s))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ly(n,s){return s.max===s.min?0:n/(s.max-s.min)*100}const ir={correct:(n,s)=>{if(!s.target)return n;if(typeof n=="string")if(Te.test(n))n=parseFloat(n);else return n;const i=ly(n,s.target.x),o=ly(n,s.target.y);return`${i}% ${o}%`}},ZA={correct:(n,{treeScale:s,projectionDelta:i})=>{const o=n,c=ga.parse(n);if(c.length>5)return o;const u=ga.createTransformer(n),d=typeof c[0]!="number"?1:0,m=i.x.scale*s.x,h=i.y.scale*s.y;c[0+d]/=m,c[1+d]/=h;const g=vt(m,h,.5);return typeof c[2+d]=="number"&&(c[2+d]/=g),typeof c[3+d]=="number"&&(c[3+d]/=g),u(c)}};class KA extends y.Component{componentDidMount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o,layoutId:c}=this.props,{projection:u}=s;_C(YA),u&&(i.group&&i.group.add(u),o&&o.register&&c&&o.register(u),u.root.didUpdate(),u.addEventListener("animationComplete",()=>{this.safeToRemove()}),u.setOptions({...u.options,onExitComplete:()=>this.safeToRemove()})),mc.hasEverUpdated=!0}getSnapshotBeforeUpdate(s){const{layoutDependency:i,visualElement:o,drag:c,isPresent:u}=this.props,d=o.projection;return d&&(d.isPresent=u,c||s.layoutDependency!==i||i===void 0?d.willUpdate():this.safeToRemove(),s.isPresent!==u&&(u?d.promote():d.relegate()||ft.postRender(()=>{const m=d.getStack();(!m||!m.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Cp.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o}=this.props,{projection:c}=s;c&&(c.scheduleCheckAfterUnmount(),i&&i.group&&i.group.remove(c),o&&o.deregister&&o.deregister(c))}safeToRemove(){const{safeToRemove:s}=this.props;s&&s()}render(){return null}}function J_(n){const[s,i]=Ob(),o=y.useContext(xp);return l.jsx(KA,{...n,layoutGroup:o,switchLayoutGroup:y.useContext(Hb),isPresent:s,safeToRemove:i})}const YA={borderRadius:{...ir,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ir,borderTopRightRadius:ir,borderBottomLeftRadius:ir,borderBottomRightRadius:ir,boxShadow:ZA};function JA(n,s,i){const o=Qt(n)?n:wr(n);return o.start(Qp("",o,s,i)),o.animation}function WA(n){return n instanceof SVGElement&&n.tagName!=="svg"}const XA=(n,s)=>n.depth-s.depth;class QA{constructor(){this.children=[],this.isDirty=!1}add(s){zp(this.children,s),this.isDirty=!0}remove(s){Pp(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(XA),this.isDirty=!1,this.children.forEach(s)}}function eD(n,s){const i=is.now(),o=({timestamp:c})=>{const u=c-i;u>=s&&(ha(o),n(u-s))};return ft.read(o,!0),()=>ha(o)}const W_=["TopLeft","TopRight","BottomLeft","BottomRight"],tD=W_.length,cy=n=>typeof n=="string"?parseFloat(n):n,uy=n=>typeof n=="number"||Te.test(n);function nD(n,s,i,o,c,u){c?(n.opacity=vt(0,i.opacity!==void 0?i.opacity:1,sD(o)),n.opacityExit=vt(s.opacity!==void 0?s.opacity:1,0,aD(o))):u&&(n.opacity=vt(s.opacity!==void 0?s.opacity:1,i.opacity!==void 0?i.opacity:1,o));for(let d=0;d<tD;d++){const m=`border${W_[d]}Radius`;let h=dy(s,m),g=dy(i,m);if(h===void 0&&g===void 0)continue;h||(h=0),g||(g=0),h===0||g===0||uy(h)===uy(g)?(n[m]=Math.max(vt(cy(h),cy(g),o),0),(as.test(g)||as.test(h))&&(n[m]+="%")):n[m]=g}(s.rotate||i.rotate)&&(n.rotate=vt(s.rotate||0,i.rotate||0,o))}function dy(n,s){return n[s]!==void 0?n[s]:n.borderRadius}const sD=X_(0,.5,m_),aD=X_(.5,.95,_n);function X_(n,s,i){return o=>o<n?0:o>s?1:i(no(n,s,o))}function fy(n,s){n.min=s.min,n.max=s.max}function On(n,s){fy(n.x,s.x),fy(n.y,s.y)}function py(n,s){n.translate=s.translate,n.scale=s.scale,n.originPoint=s.originPoint,n.origin=s.origin}function my(n,s,i,o,c){return n-=s,n=wc(n,1/i,o),c!==void 0&&(n=wc(n,1/c,o)),n}function iD(n,s=0,i=1,o=.5,c,u=n,d=n){if(as.test(s)&&(s=parseFloat(s),s=vt(d.min,d.max,s/100)-d.min),typeof s!="number")return;let m=vt(u.min,u.max,o);n===u&&(m-=s),n.min=my(n.min,s,i,m,c),n.max=my(n.max,s,i,m,c)}function hy(n,s,[i,o,c],u,d){iD(n,s[i],s[o],s[c],s.scale,u,d)}const oD=["x","scaleX","originX"],rD=["y","scaleY","originY"];function gy(n,s,i,o){hy(n.x,s,oD,i?i.x:void 0,o?o.x:void 0),hy(n.y,s,rD,i?i.y:void 0,o?o.y:void 0)}function vy(n){return n.translate===0&&n.scale===1}function Q_(n){return vy(n.x)&&vy(n.y)}function yy(n,s){return n.min===s.min&&n.max===s.max}function lD(n,s){return yy(n.x,s.x)&&yy(n.y,s.y)}function by(n,s){return Math.round(n.min)===Math.round(s.min)&&Math.round(n.max)===Math.round(s.max)}function ex(n,s){return by(n.x,s.x)&&by(n.y,s.y)}function _y(n){return xn(n.x)/xn(n.y)}function xy(n,s){return n.translate===s.translate&&n.scale===s.scale&&n.originPoint===s.originPoint}class cD{constructor(){this.members=[]}add(s){zp(this.members,s),s.scheduleRender()}remove(s){if(Pp(this.members,s),s===this.prevLead&&(this.prevLead=void 0),s===this.lead){const i=this.members[this.members.length-1];i&&this.promote(i)}}relegate(s){const i=this.members.findIndex(c=>s===c);if(i===0)return!1;let o;for(let c=i;c>=0;c--){const u=this.members[c];if(u.isPresent!==!1){o=u;break}}return o?(this.promote(o),!0):!1}promote(s,i){const o=this.lead;if(s!==o&&(this.prevLead=o,this.lead=s,s.show(),o)){o.instance&&o.scheduleRender(),s.scheduleRender(),s.resumeFrom=o,i&&(s.resumeFrom.preserveOpacity=!0),o.snapshot&&(s.snapshot=o.snapshot,s.snapshot.latestValues=o.animationValues||o.latestValues),s.root&&s.root.isUpdating&&(s.isLayoutDirty=!0);const{crossfade:c}=s.options;c===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(s=>{const{options:i,resumingFrom:o}=s;i.onExitComplete&&i.onExitComplete(),o&&o.options.onExitComplete&&o.options.onExitComplete()})}scheduleRender(){this.members.forEach(s=>{s.instance&&s.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function uD(n,s,i){let o="";const c=n.x.translate/s.x,u=n.y.translate/s.y,d=(i==null?void 0:i.z)||0;if((c||u||d)&&(o=`translate3d(${c}px, ${u}px, ${d}px) `),(s.x!==1||s.y!==1)&&(o+=`scale(${1/s.x}, ${1/s.y}) `),i){const{transformPerspective:g,rotate:v,rotateX:b,rotateY:_,skewX:S,skewY:T}=i;g&&(o=`perspective(${g}px) ${o}`),v&&(o+=`rotate(${v}deg) `),b&&(o+=`rotateX(${b}deg) `),_&&(o+=`rotateY(${_}deg) `),S&&(o+=`skewX(${S}deg) `),T&&(o+=`skewY(${T}deg) `)}const m=n.x.scale*s.x,h=n.y.scale*s.y;return(m!==1||h!==1)&&(o+=`scale(${m}, ${h})`),o||"none"}const $a={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ur=typeof window<"u"&&window.MotionDebug!==void 0,Sf=["","X","Y","Z"],dD={visibility:"hidden"},Sy=1e3;let fD=0;function Tf(n,s,i,o){const{latestValues:c}=s;c[n]&&(i[n]=c[n],s.setStaticValue(n,0),o&&(o[n]=0))}function tx(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:s}=n.options;if(!s)return;const i=a_(s);if(window.MotionHasOptimisedAnimation(i,"transform")){const{layout:c,layoutId:u}=n.options;window.MotionCancelOptimisedAnimation(i,"transform",ft,!(c||u))}const{parent:o}=n;o&&!o.hasCheckedOptimisedAppear&&tx(o)}function nx({attachResizeListener:n,defaultParent:s,measureScroll:i,checkIsScrollRoot:o,resetTransform:c}){return class{constructor(d={},m=s==null?void 0:s()){this.id=fD++,this.animationId=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.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ur&&($a.totalNodes=$a.resolvedTargetDeltas=$a.recalculatedProjection=0),this.nodes.forEach(hD),this.nodes.forEach(_D),this.nodes.forEach(xD),this.nodes.forEach(gD),ur&&window.MotionDebug.record($a)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=d,this.root=m?m.root||m:this,this.path=m?[...m.path,m]:[],this.parent=m,this.depth=m?m.depth+1:0;for(let h=0;h<this.path.length;h++)this.path[h].shouldResetTransform=!0;this.root===this&&(this.nodes=new QA)}addEventListener(d,m){return this.eventHandlers.has(d)||this.eventHandlers.set(d,new Vp),this.eventHandlers.get(d).add(m)}notifyListeners(d,...m){const h=this.eventHandlers.get(d);h&&h.notify(...m)}hasListeners(d){return this.eventHandlers.has(d)}mount(d,m=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=WA(d),this.instance=d;const{layoutId:h,layout:g,visualElement:v}=this.options;if(v&&!v.current&&v.mount(d),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),m&&(g||h)&&(this.isLayoutDirty=!0),n){let b;const _=()=>this.root.updateBlockedByResize=!1;n(d,()=>{this.root.updateBlockedByResize=!0,b&&b(),b=eD(_,250),mc.hasAnimatedSinceResize&&(mc.hasAnimatedSinceResize=!1,this.nodes.forEach(ky))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&v&&(h||g)&&this.addEventListener("didUpdate",({delta:b,hasLayoutChanged:_,hasRelativeTargetChanged:S,layout:T})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const N=this.options.transition||v.getDefaultTransition()||ND,{onLayoutAnimationStart:j,onLayoutAnimationComplete:w}=v.getProps(),C=!this.targetLayout||!ex(this.targetLayout,T)||S,A=!_&&S;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||A||_&&(C||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(b,A);const M={...Up(N,"layout"),onPlay:j,onComplete:w};(v.shouldReduceMotion||this.options.layoutRoot)&&(M.delay=0,M.type=!1),this.startAnimation(M)}else _||ky(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=T})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const d=this.getStack();d&&d.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ha(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.forEach(SD),this.animationId++)}getTransformTemplate(){const{visualElement:d}=this.options;return d&&d.getProps().transformTemplate}willUpdate(d=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tx(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let v=0;v<this.path.length;v++){const b=this.path[v];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}const{layoutId:m,layout:h}=this.options;if(m===void 0&&!h)return;const g=this.getTransformTemplate();this.prevTransformTemplateValue=g?g(this.latestValues,""):void 0,this.updateSnapshot(),d&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Ty);return}this.isUpdating||this.nodes.forEach(yD),this.isUpdating=!1,this.nodes.forEach(bD),this.nodes.forEach(pD),this.nodes.forEach(mD),this.clearAllSnapshots();const m=is.now();Kt.delta=Is(0,1e3/60,m-Kt.timestamp),Kt.timestamp=m,Kt.isProcessing=!0,mf.update.process(Kt),mf.preRender.process(Kt),mf.render.process(Kt),Kt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Cp.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(vD),this.sharedNodes.forEach(TD)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ft.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ft.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h<this.path.length;h++)this.path[h].updateScroll();const d=this.layout;this.layout=this.measure(!1),this.layoutCorrected=jt(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:m}=this.options;m&&m.notify("LayoutMeasure",this.layout.layoutBox,d?d.layoutBox:void 0)}updateScroll(d="measure"){let m=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===d&&(m=!1),m){const h=o(this.instance);this.scroll={animationId:this.root.animationId,phase:d,isRoot:h,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:h}}}resetTransform(){if(!c)return;const d=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,m=this.projectionDelta&&!Q_(this.projectionDelta),h=this.getTransformTemplate(),g=h?h(this.latestValues,""):void 0,v=g!==this.prevTransformTemplateValue;d&&(m||Ga(this.latestValues)||v)&&(c(this.instance,g),this.shouldResetTransform=!1,this.scheduleRender())}measure(d=!0){const m=this.measurePageBox();let h=this.removeElementScroll(m);return d&&(h=this.removeTransform(h)),jD(h),{animationId:this.root.animationId,measuredBox:m,layoutBox:h,latestValues:{},source:this.id}}measurePageBox(){var d;const{visualElement:m}=this.options;if(!m)return jt();const h=m.measureViewportBox();if(!(((d=this.scroll)===null||d===void 0?void 0:d.wasRoot)||this.path.some(CD))){const{scroll:v}=this.root;v&&(Zi(h.x,v.offset.x),Zi(h.y,v.offset.y))}return h}removeElementScroll(d){var m;const h=jt();if(On(h,d),!((m=this.scroll)===null||m===void 0)&&m.wasRoot)return h;for(let g=0;g<this.path.length;g++){const v=this.path[g],{scroll:b,options:_}=v;v!==this.root&&b&&_.layoutScroll&&(b.wasRoot&&On(h,d),Zi(h.x,b.offset.x),Zi(h.y,b.offset.y))}return h}applyTransform(d,m=!1){const h=jt();On(h,d);for(let g=0;g<this.path.length;g++){const v=this.path[g];!m&&v.options.layoutScroll&&v.scroll&&v!==v.root&&Ki(h,{x:-v.scroll.offset.x,y:-v.scroll.offset.y}),Ga(v.latestValues)&&Ki(h,v.latestValues)}return Ga(this.latestValues)&&Ki(h,this.latestValues),h}removeTransform(d){const m=jt();On(m,d);for(let h=0;h<this.path.length;h++){const g=this.path[h];if(!g.instance||!Ga(g.latestValues))continue;tp(g.latestValues)&&g.updateSnapshot();const v=jt(),b=g.measurePageBox();On(v,b),gy(m,g.latestValues,g.snapshot?g.snapshot.layoutBox:void 0,v)}return Ga(this.latestValues)&&gy(m,this.latestValues),m}setTargetDelta(d){this.targetDelta=d,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(d){this.options={...this.options,...d,crossfade:d.crossfade!==void 0?d.crossfade:!0}}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!==Kt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(d=!1){var m;const h=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=h.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=h.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=h.isSharedProjectionDirty);const g=!!this.resumingFrom||this!==h;if(!(d||g&&this.isSharedProjectionDirty||this.isProjectionDirty||!((m=this.parent)===null||m===void 0)&&m.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:b,layoutId:_}=this.options;if(!(!this.layout||!(b||_))){if(this.resolvedRelativeTargetAt=Kt.timestamp,!this.targetDelta&&!this.relativeTarget){const S=this.getClosestProjectingParent();S&&S.layout&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=jt(),this.relativeTargetOrigin=jt(),vr(this.relativeTargetOrigin,this.layout.layoutBox,S.layout.layoutBox),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=jt(),this.targetWithTransforms=jt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),DA(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):On(this.target,this.layout.layoutBox),Z_(this.target,this.targetDelta)):On(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const S=this.getClosestProjectingParent();S&&!!S.resumingFrom==!!this.resumingFrom&&!S.options.layoutScroll&&S.target&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=jt(),this.relativeTargetOrigin=jt(),vr(this.relativeTargetOrigin,this.target,S.target),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}ur&&$a.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||tp(this.parent.latestValues)||F_(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var d;const m=this.getLead(),h=!!this.resumingFrom||this!==m;let g=!0;if((this.isProjectionDirty||!((d=this.parent)===null||d===void 0)&&d.isProjectionDirty)&&(g=!1),h&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(g=!1),this.resolvedRelativeTargetAt===Kt.timestamp&&(g=!1),g)return;const{layout:v,layoutId:b}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(v||b))return;On(this.layoutCorrected,this.layout.layoutBox);const _=this.treeScale.x,S=this.treeScale.y;PA(this.layoutCorrected,this.treeScale,this.path,h),m.layout&&!m.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(m.target=m.layout.layoutBox,m.targetWithTransforms=jt());const{target:T}=m;if(!T){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(py(this.prevProjectionDelta.x,this.projectionDelta.x),py(this.prevProjectionDelta.y,this.projectionDelta.y)),gr(this.projectionDelta,this.layoutCorrected,T,this.latestValues),(this.treeScale.x!==_||this.treeScale.y!==S||!xy(this.projectionDelta.x,this.prevProjectionDelta.x)||!xy(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",T)),ur&&$a.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(d=!0){var m;if((m=this.options.visualElement)===null||m===void 0||m.scheduleRender(),d){const h=this.getStack();h&&h.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Fi(),this.projectionDelta=Fi(),this.projectionDeltaWithTransform=Fi()}setAnimationOrigin(d,m=!1){const h=this.snapshot,g=h?h.latestValues:{},v={...this.latestValues},b=Fi();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!m;const _=jt(),S=h?h.source:void 0,T=this.layout?this.layout.source:void 0,N=S!==T,j=this.getStack(),w=!j||j.members.length<=1,C=!!(N&&!w&&this.options.crossfade===!0&&!this.path.some(wD));this.animationProgress=0;let A;this.mixTargetDelta=M=>{const D=M/1e3;wy(b.x,d.x,D),wy(b.y,d.y,D),this.setTargetDelta(b),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(vr(_,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kD(this.relativeTarget,this.relativeTargetOrigin,_,D),A&&lD(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=jt()),On(A,this.relativeTarget)),N&&(this.animationValues=v,nD(v,g,this.latestValues,D,C,w)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=D},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(d){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ha(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ft.update(()=>{mc.hasAnimatedSinceResize=!0,this.currentAnimation=JA(0,Sy,{...d,onUpdate:m=>{this.mixTargetDelta(m),d.onUpdate&&d.onUpdate(m)},onComplete:()=>{d.onComplete&&d.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const d=this.getStack();d&&d.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Sy),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const d=this.getLead();let{targetWithTransforms:m,target:h,layout:g,latestValues:v}=d;if(!(!m||!h||!g)){if(this!==d&&this.layout&&g&&sx(this.options.animationType,this.layout.layoutBox,g.layoutBox)){h=this.target||jt();const b=xn(this.layout.layoutBox.x);h.x.min=d.target.x.min,h.x.max=h.x.min+b;const _=xn(this.layout.layoutBox.y);h.y.min=d.target.y.min,h.y.max=h.y.min+_}On(m,h),Ki(m,v),gr(this.projectionDeltaWithTransform,this.layoutCorrected,m,v)}}registerSharedNode(d,m){this.sharedNodes.has(d)||this.sharedNodes.set(d,new cD),this.sharedNodes.get(d).add(m);const g=m.options.initialPromotionConfig;m.promote({transition:g?g.transition:void 0,preserveFollowOpacity:g&&g.shouldPreserveFollowOpacity?g.shouldPreserveFollowOpacity(m):void 0})}isLead(){const d=this.getStack();return d?d.lead===this:!0}getLead(){var d;const{layoutId:m}=this.options;return m?((d=this.getStack())===null||d===void 0?void 0:d.lead)||this:this}getPrevLead(){var d;const{layoutId:m}=this.options;return m?(d=this.getStack())===null||d===void 0?void 0:d.prevLead:void 0}getStack(){const{layoutId:d}=this.options;if(d)return this.root.sharedNodes.get(d)}promote({needsReset:d,transition:m,preserveFollowOpacity:h}={}){const g=this.getStack();g&&g.promote(this,h),d&&(this.projectionDelta=void 0,this.needsReset=!0),m&&this.setOptions({transition:m})}relegate(){const d=this.getStack();return d?d.relegate(this):!1}resetSkewAndRotation(){const{visualElement:d}=this.options;if(!d)return;let m=!1;const{latestValues:h}=d;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(m=!0),!m)return;const g={};h.z&&Tf("z",d,g,this.animationValues);for(let v=0;v<Sf.length;v++)Tf(`rotate${Sf[v]}`,d,g,this.animationValues),Tf(`skew${Sf[v]}`,d,g,this.animationValues);d.render();for(const v in g)d.setStaticValue(v,g[v]),this.animationValues&&(this.animationValues[v]=g[v]);d.scheduleRender()}getProjectionStyles(d){var m,h;if(!this.instance||this.isSVG)return;if(!this.isVisible)return dD;const g={visibility:""},v=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,g.opacity="",g.pointerEvents=fc(d==null?void 0:d.pointerEvents)||"",g.transform=v?v(this.latestValues,""):"none",g;const b=this.getLead();if(!this.projectionDelta||!this.layout||!b.target){const N={};return this.options.layoutId&&(N.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,N.pointerEvents=fc(d==null?void 0:d.pointerEvents)||""),this.hasProjected&&!Ga(this.latestValues)&&(N.transform=v?v({},""):"none",this.hasProjected=!1),N}const _=b.animationValues||b.latestValues;this.applyTransformsToTarget(),g.transform=uD(this.projectionDeltaWithTransform,this.treeScale,_),v&&(g.transform=v(_,g.transform));const{x:S,y:T}=this.projectionDelta;g.transformOrigin=`${S.origin*100}% ${T.origin*100}% 0`,b.animationValues?g.opacity=b===this?(h=(m=_.opacity)!==null&&m!==void 0?m:this.latestValues.opacity)!==null&&h!==void 0?h:1:this.preserveOpacity?this.latestValues.opacity:_.opacityExit:g.opacity=b===this?_.opacity!==void 0?_.opacity:"":_.opacityExit!==void 0?_.opacityExit:0;for(const N in _c){if(_[N]===void 0)continue;const{correct:j,applyTo:w}=_c[N],C=g.transform==="none"?_[N]:j(_[N],b);if(w){const A=w.length;for(let M=0;M<A;M++)g[w[M]]=C}else g[N]=C}return this.options.layoutId&&(g.pointerEvents=b===this?fc(d==null?void 0:d.pointerEvents)||"":"none"),g}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(d=>{var m;return(m=d.currentAnimation)===null||m===void 0?void 0:m.stop()}),this.root.nodes.forEach(Ty),this.root.sharedNodes.clear()}}}function pD(n){n.updateLayout()}function mD(n){var s;const i=((s=n.resumeFrom)===null||s===void 0?void 0:s.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&i&&n.hasListeners("didUpdate")){const{layoutBox:o,measuredBox:c}=n.layout,{animationType:u}=n.options,d=i.source!==n.layout.source;u==="size"?Bn(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(_);_.min=o[b].min,_.max=_.min+S}):sx(u,i.layoutBox,o)&&Bn(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(o[b]);_.max=_.min+S,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[b].max=n.relativeTarget[b].min+S)});const m=Fi();gr(m,o,i.layoutBox);const h=Fi();d?gr(h,n.applyTransform(c,!0),i.measuredBox):gr(h,o,i.layoutBox);const g=!Q_(m);let v=!1;if(!n.resumeFrom){const b=n.getClosestProjectingParent();if(b&&!b.resumeFrom){const{snapshot:_,layout:S}=b;if(_&&S){const T=jt();vr(T,i.layoutBox,_.layoutBox);const N=jt();vr(N,o,S.layoutBox),ex(T,N)||(v=!0),b.options.layoutRoot&&(n.relativeTarget=N,n.relativeTargetOrigin=T,n.relativeParent=b)}}}n.notifyListeners("didUpdate",{layout:o,snapshot:i,delta:h,layoutDelta:m,hasLayoutChanged:g,hasRelativeTargetChanged:v})}else if(n.isLead()){const{onExitComplete:o}=n.options;o&&o()}n.options.transition=void 0}function hD(n){ur&&$a.totalNodes++,n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function gD(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function vD(n){n.clearSnapshot()}function Ty(n){n.clearMeasurements()}function yD(n){n.isLayoutDirty=!1}function bD(n){const{visualElement:s}=n.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),n.resetTransform()}function ky(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function _D(n){n.resolveTargetDelta()}function xD(n){n.calcProjection()}function SD(n){n.resetSkewAndRotation()}function TD(n){n.removeLeadSnapshot()}function wy(n,s,i){n.translate=vt(s.translate,0,i),n.scale=vt(s.scale,1,i),n.origin=s.origin,n.originPoint=s.originPoint}function Ny(n,s,i,o){n.min=vt(s.min,i.min,o),n.max=vt(s.max,i.max,o)}function kD(n,s,i,o){Ny(n.x,s.x,i.x,o),Ny(n.y,s.y,i.y,o)}function wD(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const ND={duration:.45,ease:[.4,0,.1,1]},jy=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Cy=jy("applewebkit/")&&!jy("chrome/")?Math.round:_n;function Ey(n){n.min=Cy(n.min),n.max=Cy(n.max)}function jD(n){Ey(n.x),Ey(n.y)}function sx(n,s,i){return n==="position"||n==="preserve-aspect"&&!AA(_y(s),_y(i),.2)}function CD(n){var s;return n!==n.root&&((s=n.scroll)===null||s===void 0?void 0:s.wasRoot)}const ED=nx({attachResizeListener:(n,s)=>jr(n,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),kf={current:void 0},ax=nx({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!kf.current){const n=new ED({});n.mount(window),n.setOptions({layoutScroll:!0}),kf.current=n}return kf.current},resetTransform:(n,s)=>{n.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),AD={pan:{Feature:FA},drag:{Feature:$A,ProjectionNode:ax,MeasureLayout:J_}};function DD(n,s,i){var o;if(n instanceof Element)return[n];if(typeof n=="string"){let c=document;const u=(o=void 0)!==null&&o!==void 0?o:c.querySelectorAll(n);return u?Array.from(u):[]}return Array.from(n)}function ix(n,s){const i=DD(n),o=new AbortController,c={passive:!0,...s,signal:o.signal};return[i,c,()=>o.abort()]}function Ay(n){return s=>{s.pointerType==="touch"||P_()||n(s)}}function RD(n,s,i={}){const[o,c,u]=ix(n,i),d=Ay(m=>{const{target:h}=m,g=s(m);if(typeof g!="function"||!h)return;const v=Ay(b=>{g(b),h.removeEventListener("pointerleave",v)});h.addEventListener("pointerleave",v,c)});return o.forEach(m=>{m.addEventListener("pointerenter",d,c)}),u}function Dy(n,s,i){const{props:o}=n;n.animationState&&o.whileHover&&n.animationState.setActive("whileHover",i==="Start");const c="onHover"+i,u=o[c];u&&ft.postRender(()=>u(s,Mr(s)))}class MD extends ba{mount(){const{current:s}=this.node;s&&(this.unmount=RD(s,i=>(Dy(this.node,i,"Start"),o=>Dy(this.node,o,"End"))))}unmount(){}}class OD extends ba{constructor(){super(...arguments),this.isActive=!1}onFocus(){let s=!1;try{s=this.node.current.matches(":focus-visible")}catch{s=!0}!s||!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=Rr(jr(this.node.current,"focus",()=>this.onFocus()),jr(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const ox=(n,s)=>s?n===s?!0:ox(n,s.parentElement):!1,ID=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function BD(n){return ID.has(n.tagName)||n.tabIndex!==-1}const dr=new WeakSet;function Ry(n){return s=>{s.key==="Enter"&&n(s)}}function wf(n,s){n.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const LD=(n,s)=>{const i=n.currentTarget;if(!i)return;const o=Ry(()=>{if(dr.has(i))return;wf(i,"down");const c=Ry(()=>{wf(i,"up")}),u=()=>wf(i,"cancel");i.addEventListener("keyup",c,s),i.addEventListener("blur",u,s)});i.addEventListener("keydown",o,s),i.addEventListener("blur",()=>i.removeEventListener("keydown",o),s)};function My(n){return em(n)&&!P_()}function UD(n,s,i={}){const[o,c,u]=ix(n,i),d=m=>{const h=m.currentTarget;if(!My(m)||dr.has(h))return;dr.add(h);const g=s(m),v=(S,T)=>{window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",_),!(!My(S)||!dr.has(h))&&(dr.delete(h),typeof g=="function"&&g(S,{success:T}))},b=S=>{v(S,i.useGlobalTarget||ox(h,S.target))},_=S=>{v(S,!1)};window.addEventListener("pointerup",b,c),window.addEventListener("pointercancel",_,c)};return o.forEach(m=>{!BD(m)&&m.getAttribute("tabindex")===null&&(m.tabIndex=0),(i.useGlobalTarget?window:m).addEventListener("pointerdown",d,c),m.addEventListener("focus",g=>LD(g,c),c)}),u}function Oy(n,s,i){const{props:o}=n;n.animationState&&o.whileTap&&n.animationState.setActive("whileTap",i==="Start");const c="onTap"+(i==="End"?"":i),u=o[c];u&&ft.postRender(()=>u(s,Mr(s)))}class zD extends ba{mount(){const{current:s}=this.node;s&&(this.unmount=UD(s,i=>(Oy(this.node,i,"Start"),(o,{success:c})=>Oy(this.node,o,c?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const sp=new WeakMap,Nf=new WeakMap,PD=n=>{const s=sp.get(n.target);s&&s(n)},VD=n=>{n.forEach(PD)};function HD({root:n,...s}){const i=n||document;Nf.has(i)||Nf.set(i,{});const o=Nf.get(i),c=JSON.stringify(s);return o[c]||(o[c]=new IntersectionObserver(VD,{root:n,...s})),o[c]}function qD(n,s,i){const o=HD(s);return sp.set(n,i),o.observe(n),()=>{sp.delete(n),o.unobserve(n)}}const GD={some:0,all:1};class $D extends ba{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:s={}}=this.node.getProps(),{root:i,margin:o,amount:c="some",once:u}=s,d={root:i?i.current:void 0,rootMargin:o,threshold:typeof c=="number"?c:GD[c]},m=h=>{const{isIntersecting:g}=h;if(this.isInView===g||(this.isInView=g,u&&!g&&this.hasEnteredView))return;g&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",g);const{onViewportEnter:v,onViewportLeave:b}=this.node.getProps(),_=g?v:b;_&&_(h)};return qD(this.node.current,d,m)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:s,prevProps:i}=this.node;["amount","margin","root"].some(FD(s,i))&&this.startObserver()}unmount(){}}function FD({viewport:n={}},{viewport:s={}}={}){return i=>n[i]!==s[i]}const ZD={inView:{Feature:$D},tap:{Feature:zD},focus:{Feature:OD},hover:{Feature:MD}},KD={layout:{ProjectionNode:ax,MeasureLayout:J_}},Nc={current:null},tm={current:!1};function rx(){if(tm.current=!0,!!kp)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),s=()=>Nc.current=n.matches;n.addListener(s),s()}else Nc.current=!1}const YD=[...C_,Xt,ga],JD=n=>YD.find(j_(n)),Iy=new WeakMap;function WD(n,s,i){for(const o in s){const c=s[o],u=i[o];if(Qt(c))n.addValue(o,c);else if(Qt(u))n.addValue(o,wr(c,{owner:n}));else if(u!==c)if(n.hasValue(o)){const d=n.getValue(o);d.liveStyle===!0?d.jump(c):d.hasAnimated||d.set(c)}else{const d=n.getStaticValue(o);n.addValue(o,wr(d!==void 0?d:c,{owner:n}))}}for(const o in i)s[o]===void 0&&n.removeValue(o);return s}const By=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class XD{scrapeMotionValuesFromProps(s,i,o){return{}}constructor({parent:s,props:i,presenceContext:o,reducedMotionConfig:c,blockInitialAnimation:u,visualState:d},m={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Jp,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const S=is.now();this.renderScheduledAt<S&&(this.renderScheduledAt=S,ft.render(this.render,!1,!0))};const{latestValues:h,renderState:g,onUpdate:v}=d;this.onUpdate=v,this.latestValues=h,this.baseTarget={...h},this.initialValues=i.initial?{...h}:{},this.renderState=g,this.parent=s,this.props=i,this.presenceContext=o,this.depth=s?s.depth+1:0,this.reducedMotionConfig=c,this.options=m,this.blockInitialAnimation=!!u,this.isControllingVariants=Lc(i),this.isVariantNode=Pb(i),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:b,..._}=this.scrapeMotionValuesFromProps(i,{},this);for(const S in _){const T=_[S];h[S]!==void 0&&Qt(T)&&T.set(h[S],!1)}}mount(s){this.current=s,Iy.set(s,this),this.projection&&!this.projection.instance&&this.projection.mount(s),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((i,o)=>this.bindToMotionValue(o,i)),tm.current||rx(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Nc.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Iy.delete(this.current),this.projection&&this.projection.unmount(),ha(this.notifyUpdate),ha(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const i=this.features[s];i&&(i.unmount(),i.isMounted=!1)}this.current=null}bindToMotionValue(s,i){this.valueSubscriptions.has(s)&&this.valueSubscriptions.get(s)();const o=ni.has(s),c=i.on("change",m=>{this.latestValues[s]=m,this.props.onUpdate&&ft.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0)}),u=i.on("renderRequest",this.scheduleRender);let d;window.MotionCheckAppearSync&&(d=window.MotionCheckAppearSync(this,s,i)),this.valueSubscriptions.set(s,()=>{c(),u(),d&&d(),i.owner&&i.stop()})}sortNodePosition(s){return!this.current||!this.sortInstanceNodePosition||this.type!==s.type?0:this.sortInstanceNodePosition(this.current,s.current)}updateFeatures(){let s="animation";for(s in to){const i=to[s];if(!i)continue;const{isEnabled:o,Feature:c}=i;if(!this.features[s]&&c&&o(this.props)&&(this.features[s]=new c(this)),this.features[s]){const u=this.features[s];u.isMounted?u.update():(u.mount(),u.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):jt()}getStaticValue(s){return this.latestValues[s]}setStaticValue(s,i){this.latestValues[s]=i}update(s,i){(s.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=s,this.prevPresenceContext=this.presenceContext,this.presenceContext=i;for(let o=0;o<By.length;o++){const c=By[o];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);const u="on"+c,d=s[u];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=WD(this,this.scrapeMotionValuesFromProps(s,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(s){return this.props.variants?this.props.variants[s]: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(s){const i=this.getClosestVariantNode();if(i)return i.variantChildren&&i.variantChildren.add(s),()=>i.variantChildren.delete(s)}addValue(s,i){const o=this.values.get(s);i!==o&&(o&&this.removeValue(s),this.bindToMotionValue(s,i),this.values.set(s,i),this.latestValues[s]=i.get())}removeValue(s){this.values.delete(s);const i=this.valueSubscriptions.get(s);i&&(i(),this.valueSubscriptions.delete(s)),delete this.latestValues[s],this.removeValueFromRenderState(s,this.renderState)}hasValue(s){return this.values.has(s)}getValue(s,i){if(this.props.values&&this.props.values[s])return this.props.values[s];let o=this.values.get(s);return o===void 0&&i!==void 0&&(o=wr(i===null?void 0:i,{owner:this}),this.addValue(s,o)),o}readValue(s,i){var o;let c=this.latestValues[s]!==void 0||!this.current?this.latestValues[s]:(o=this.getBaseTargetFromProps(this.props,s))!==null&&o!==void 0?o:this.readValueFromInstance(this.current,s,this.options);return c!=null&&(typeof c=="string"&&(w_(c)||g_(c))?c=parseFloat(c):!JD(c)&&ga.test(i)&&(c=S_(s,i)),this.setBaseTarget(s,Qt(c)?c.get():c)),Qt(c)?c.get():c}setBaseTarget(s,i){this.baseTarget[s]=i}getBaseTarget(s){var i;const{initial:o}=this.props;let c;if(typeof o=="string"||typeof o=="object"){const d=Ap(this.props,o,(i=this.presenceContext)===null||i===void 0?void 0:i.custom);d&&(c=d[s])}if(o&&c!==void 0)return c;const u=this.getBaseTargetFromProps(this.props,s);return u!==void 0&&!Qt(u)?u:this.initialValues[s]!==void 0&&c===void 0?void 0:this.baseTarget[s]}on(s,i){return this.events[s]||(this.events[s]=new Vp),this.events[s].add(i)}notify(s,...i){this.events[s]&&this.events[s].notify(...i)}}class lx extends XD{constructor(){super(...arguments),this.KeyframeResolver=E_}sortInstanceNodePosition(s,i){return s.compareDocumentPosition(i)&2?1:-1}getBaseTargetFromProps(s,i){return s.style?s.style[i]:void 0}removeValueFromRenderState(s,{vars:i,style:o}){delete i[s],delete o[s]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:s}=this.props;Qt(s)&&(this.childSubscription=s.on("change",i=>{this.current&&(this.current.textContent=`${i}`)}))}}function QD(n){return window.getComputedStyle(n)}class eR extends lx{constructor(){super(...arguments),this.type="html",this.renderInstance=Yb}readValueFromInstance(s,i){if(ni.has(i)){const o=Yp(i);return o&&o.default||0}else{const o=QD(s),c=(Fb(i)?o.getPropertyValue(i):o[i])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(s,{transformPagePoint:i}){return K_(s,i)}build(s,i,o){Mp(s,i,o.transformTemplate)}scrapeMotionValuesFromProps(s,i,o){return Lp(s,i,o)}}class tR extends lx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=jt}getBaseTargetFromProps(s,i){return s[i]}readValueFromInstance(s,i){if(ni.has(i)){const o=Yp(i);return o&&o.default||0}return i=Jb.has(i)?i:jp(i),s.getAttribute(i)}scrapeMotionValuesFromProps(s,i,o){return Qb(s,i,o)}build(s,i,o){Op(s,i,this.isSVGTag,o.transformTemplate)}renderInstance(s,i,o,c){Wb(s,i,o,c)}mount(s){this.isSVGTag=Bp(s.tagName),super.mount(s)}}const nR=(n,s)=>Ep(n)?new tR(s):new eR(s,{allowProjection:n!==y.Fragment}),sR=EC({..._A,...ZD,...AD,...KD},nR),Ot=Gj(sR);function aR(){!tm.current&&rx();const[n]=y.useState(Nc.current);return n}const iR="_overlay_cmicx_1",oR="_dialog_cmicx_11",rR="_title_cmicx_30",lR="_description_cmicx_38",cR="_actions_cmicx_45",uR="_cancelButton_cmicx_52",dR="_confirmButton_cmicx_79",Pa={overlay:iR,dialog:oR,title:rR,description:lR,actions:cR,cancelButton:uR,confirmButton:dR};function Ja({isOpen:n,title:s,description:i,confirmLabel:o="Delete",onConfirm:c,onCancel:u}){const d=y.useId(),m=y.useId();return l.jsx(rs,{children:n&&l.jsx(Ot.div,{className:Pa.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:u,onKeyDown:h=>{h.key==="Escape"&&u()},role:"dialog","aria-modal":"true","aria-labelledby":d,"aria-describedby":i?m:void 0,children:l.jsxs(Ot.div,{className:Pa.dialog,initial:{opacity:0,scale:.93,y:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.93,y:-10},transition:{duration:.15,ease:[.16,1,.3,1]},onClick:h=>h.stopPropagation(),children:[l.jsx("h3",{id:d,className:Pa.title,children:s}),i&&l.jsx("p",{id:m,className:Pa.description,children:i}),l.jsxs("div",{className:Pa.actions,children:[l.jsx("button",{type:"button",className:Pa.cancelButton,onClick:u,autoFocus:!0,children:"Cancel"}),l.jsx("button",{type:"button",className:Pa.confirmButton,onClick:c,children:o})]})]})})})}const fR="_spinner_1uyt1_1",pR="_spin_1uyt1_1",mR="_sm_1uyt1_14",hR="_md_1uyt1_20",gR="_lg_1uyt1_26",vR="_xl_1uyt1_32",Ly={spinner:fR,spin:pR,sm:mR,md:hR,lg:gR,xl:vR};function cx({size:n="md",className:s,label:i="Loading",liveRegion:o=!1}){return l.jsx("span",{className:`${Ly.spinner} ${Ly[n]} ${s??""}`,role:o?"status":void 0,"aria-label":i,"aria-hidden":o?void 0:!0})}const yR="_splash_1bn1g_1",bR="_logo_1bn1g_11",Uy={splash:yR,logo:bR};function ux(){return l.jsxs("div",{className:Uy.splash,"data-testid":"splash-screen",children:[l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:Uy.logo}),l.jsx(cx,{size:"xl",label:"Loading Grackle",liveRegion:!0})]})}const dx=50;function _R(n,s,i,o,c=dx){return o?n<c:s-n-i<c}function xR(n,s){const i=s-n;return i>0?i:0}function SR({scrollRef:n,contentLength:s,isReversed:i}){const[o,c]=y.useState(!0),u=y.useRef(0),d=y.useRef(!1),m=y.useRef(0);y.useEffect(()=>{const g=n.current;if(!g)return;let v=!0;const b=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0;const _=_R(g.scrollTop,g.scrollHeight,g.clientHeight,i,dx);_!==v&&(v=_,c(_))}))};return g.addEventListener("scroll",b,{passive:!0}),()=>{g.removeEventListener("scroll",b),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[n,i]),y.useLayoutEffect(()=>{const g=n.current;!g||d.current||(d.current=!0,i?g.scrollTop=0:g.scrollTop=g.scrollHeight,c(!0))},[n,i]),y.useLayoutEffect(()=>{const g=n.current;if(g){if(i&&!o){const v=xR(u.current,g.scrollHeight);v>0&&(g.scrollTop+=v)}o&&(i?g.scrollTo({top:0,behavior:"smooth"}):g.scrollTo({top:g.scrollHeight,behavior:"smooth"})),u.current=g.scrollHeight}},[s,o,i,n]);const h=y.useCallback(()=>{const g=n.current;if(!g)return;const v=i?0:g.scrollHeight;g.scrollTo({top:v,behavior:"smooth"}),c(!0)},[n,i]);return{isAtAnchor:o,scrollToAnchor:h}}const TR="_panelContainer_1h5qd_1",kR="_emptyState_1h5qd_8",wR="_fadeIn_1h5qd_1",NR="_workspaceSummary_1h5qd_17",jR="_workspaceSummaryTitle_1h5qd_28",CR="_workspaceSummarySubtitle_1h5qd_32",ER="_header_1h5qd_36",AR="_headerInfo_1h5qd_71",DR="_killButton_1h5qd_77",RR="_headerTitle_1h5qd_106",MR="_headerActions_1h5qd_121",OR="_taskStatusBadge_1h5qd_128",IR="_taskBranch_1h5qd_137",BR="_taskBlockedBadge_1h5qd_143",LR="_btnPrimary_1h5qd_151",UR="_btnDanger_1h5qd_182",zR="_btnGhost_1h5qd_221",PR="_rejectInput_1h5qd_247",VR="_tabBar_1h5qd_277",HR="_tab_1h5qd_277",qR="_active_1h5qd_303",GR="_eventScroll_1h5qd_308",$R="_tabContent_1h5qd_314",FR="_noContext_1h5qd_319",ZR="_overviewContent_1h5qd_325",KR="_overviewDashboard_1h5qd_334",YR="_overviewHero_1h5qd_340",JR="_statusBadge_1h5qd_347",WR="_statusPending_1h5qd_359",XR="_statusAssigned_1h5qd_364",QR="_statusInProgress_1h5qd_369",eM="_statusReview_1h5qd_374",tM="_statusDone_1h5qd_379",nM="_statusFailed_1h5qd_384",sM="_statusWaitingInput_1h5qd_389",aM="_overviewBranchPill_1h5qd_394",iM="_branchLink_1h5qd_409",oM="_overviewSection_1h5qd_420",rM="_overviewLabel_1h5qd_426",lM="_overviewValue_1h5qd_433",cM="_overviewMuted_1h5qd_438",uM="_overviewMarkdown_1h5qd_444",dM="_envRow_1h5qd_513",fM="_envDot_1h5qd_519",pM="_envDotGreen_1h5qd_526",mM="_envDotYellow_1h5qd_530",hM="_envDotRed_1h5qd_534",gM="_envDotGray_1h5qd_538",vM="_depList_1h5qd_542",yM="_depItem_1h5qd_548",bM="_depBlocked_1h5qd_555",_M="_depDone_1h5qd_559",xM="_timeline_1h5qd_563",SM="_timelineRow_1h5qd_569",TM="_timelineKey_1h5qd_576",kM="_timelineValue_1h5qd_582",wM="_timelineDelta_1h5qd_586",NM="_reviewNotes_1h5qd_597",jM="_overviewDescription_1h5qd_608",CM="_waitingMessage_1h5qd_614",EM="_errorMessage_1h5qd_618",AM="_eventOverflowWarning_1h5qd_622",DM="_attemptSelector_1h5qd_636",RM="_attemptLabel_1h5qd_652",MM="_attemptButton_1h5qd_656",OM="_attemptActive_1h5qd_673",IM="_attemptStatus_1h5qd_679",BM="_emptyCta_1h5qd_685",LM="_ctaTitle_1h5qd_697",UM="_ctaDescription_1h5qd_703",zM="_ctaButton_1h5qd_710",PM="_ctaCreateForm_1h5qd_745",VM="_ctaCreateInput_1h5qd_751",HM="_ctaCreateOk_1h5qd_782",qM="_ctaLink_1h5qd_817",GM="_workspaceHeader_1h5qd_831",$M="_workspaceName_1h5qd_856",FM="_workspaceMeta_1h5qd_869",ZM="_metaRow_1h5qd_877",KM="_metaLabel_1h5qd_890",YM="_metaValue_1h5qd_905",JM="_archiveButton_1h5qd_915",WM="_repoLink_1h5qd_945",XM="_metaToggle_1h5qd_955",QM="_metaToggleArrow_1h5qd_976",e3="_metaToggleArrowOpen_1h5qd_981",t3="_progressBarContainer_1h5qd_985",n3="_progressBar_1h5qd_985",s3="_progressFill_1h5qd_1001",a3="_progressLabel_1h5qd_1008",i3="_metaTimestamps_1h5qd_1015",o3="_metaTimestamp_1h5qd_1015",U={panelContainer:TR,emptyState:kR,fadeIn:wR,workspaceSummary:NR,workspaceSummaryTitle:jR,workspaceSummarySubtitle:CR,header:ER,headerInfo:AR,killButton:DR,headerTitle:RR,headerActions:MR,taskStatusBadge:OR,taskBranch:IR,taskBlockedBadge:BR,btnPrimary:LR,btnDanger:UR,btnGhost:zR,rejectInput:PR,tabBar:VR,tab:HR,active:qR,eventScroll:GR,tabContent:$R,noContext:FR,overviewContent:ZR,overviewDashboard:KR,overviewHero:YR,statusBadge:JR,statusPending:WR,statusAssigned:XR,statusInProgress:QR,statusReview:eM,statusDone:tM,statusFailed:nM,statusWaitingInput:sM,overviewBranchPill:aM,branchLink:iM,overviewSection:oM,overviewLabel:rM,overviewValue:lM,overviewMuted:cM,overviewMarkdown:uM,envRow:dM,envDot:fM,envDotGreen:pM,envDotYellow:mM,envDotRed:hM,envDotGray:gM,depList:vM,depItem:yM,depBlocked:bM,depDone:_M,timeline:xM,timelineRow:SM,timelineKey:TM,timelineValue:kM,timelineDelta:wM,reviewNotes:NM,overviewDescription:jM,waitingMessage:CM,errorMessage:EM,eventOverflowWarning:AM,attemptSelector:DM,attemptLabel:RM,attemptButton:MM,attemptActive:OM,attemptStatus:IM,emptyCta:BM,ctaTitle:LM,ctaDescription:UM,ctaButton:zM,ctaCreateForm:PM,ctaCreateInput:VM,ctaCreateOk:HM,ctaLink:qM,workspaceHeader:GM,workspaceName:$M,workspaceMeta:FM,metaRow:ZM,metaLabel:KM,metaValue:YM,archiveButton:JM,repoLink:WM,metaToggle:XM,metaToggleArrow:QM,metaToggleArrowOpen:e3,progressBarContainer:t3,progressBar:n3,progressFill:s3,progressLabel:a3,metaTimestamps:i3,metaTimestamp:o3},r3="_wrapper_p24zt_1",l3="_scrollContainer_p24zt_9",c3="_toolbar_p24zt_15",u3="_directionToggle_p24zt_22",d3="_scrollToAnchor_p24zt_60",f3="_scrollToAnchorBottom_p24zt_84",p3="_scrollToAnchorTop_p24zt_88",Va={wrapper:r3,scrollContainer:l3,toolbar:c3,directionToggle:u3,scrollToAnchor:d3,scrollToAnchorBottom:f3,scrollToAnchorTop:p3},fx="grackle-stream-direction";function m3(){try{return localStorage.getItem(fx)==="reversed"}catch{return!1}}function h3({eventsDropped:n}){return n<=0?l.jsx(l.Fragment,{}):l.jsxs("div",{className:U.eventOverflowWarning,role:"alert",children:["⚠"," ",n.toLocaleString()," older event",n===1?"":"s"," were dropped — only the most recent 5,000 are shown. Full history is available in the session log."]})}function nm({events:n,eventsDropped:s,emptyState:i}){const o=y.useRef(null),[c,u]=y.useState(m3),d=aR(),m=y.useMemo(()=>c?[...n].reverse():n,[n,c]),{isAtAnchor:h,scrollToAnchor:g}=SR({scrollRef:o,contentLength:n.length,isReversed:c}),v=()=>{const S=!c;u(S);try{localStorage.setItem(fx,S?"reversed":"default")}catch{}},b=d?0:.2,_=c?-8:8;return l.jsxs("div",{className:Va.wrapper,children:[l.jsx("div",{className:Va.toolbar,children:l.jsx("button",{className:Va.directionToggle,onClick:v,title:c?"Showing newest first":"Showing oldest first","aria-label":c?"Switch to newest at bottom":"Switch to newest at top","data-testid":"direction-toggle",children:c?"↓":"↑"})}),l.jsxs("div",{ref:o,className:Va.scrollContainer,"data-testid":"event-stream-scroll",children:[n.length===0&&i,l.jsx(h3,{eventsDropped:s}),l.jsx(rs,{initial:!1,children:m.map((S,T)=>{const N=c?n.length-1-T:T;return l.jsx(Ot.div,{initial:{opacity:0,y:_},animate:{opacity:1,y:0},transition:{duration:b,ease:"easeOut"},children:l.jsx(Rj,{event:S,toolUseCtx:S.toolUseCtx})},`${S.sessionId}-${S.timestamp}-${N}`)})})]}),l.jsx(rs,{children:!h&&l.jsxs(Ot.button,{className:`${Va.scrollToAnchor} ${c?Va.scrollToAnchorTop:Va.scrollToAnchorBottom}`,onClick:g,initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15},"aria-label":"Scroll to latest","data-testid":"scroll-to-anchor",children:[c?"↑":"↓"," New events"]})})]})}function sm(n){const{value:s,onSave:i,validate:o,fieldId:c,activeFieldId:u,onActivate:d,enterToSave:m=!0,trimOnSave:h=!0}=n,[g,v]=y.useState(""),[b,_]=y.useState(""),S=y.useRef(!1),T=u===c,N=y.useCallback(H=>{v(H),_("")},[]),j=y.useCallback(()=>{_("")},[]),w=y.useCallback(()=>{S.current=!1,d==null||d(null),v(""),_("")},[d]),C=y.useCallback(()=>{const H=h?g.trim():g;if(o){const Z=o(g);if(Z){_(Z);return}}const z=h?s.trim():s;if(H===z){w();return}i(H),w()},[g,s,h,o,i,w]),A=y.useCallback(()=>{S.current=!0,d==null||d(c),v(s),_("")},[c,s,d]),M=y.useCallback(H=>{if(S.current){S.current=!1;return}H.relatedTarget instanceof HTMLElement&&H.relatedTarget.dataset.editAction===c||C()},[c,C]),D=y.useCallback(H=>{H.key==="Escape"?w():H.key==="Enter"&&m&&C()},[w,m,C]),E=(()=>{if(!T)return!1;const H=h?s.trim():s;return(h?g.trim():g)!==H})();return y.useEffect(()=>{!T&&(g!==""||b!=="")&&(v(""),_(""))},[T,g,b]),{isEditing:T,draft:g,error:b,isDirty:E,startEdit:A,cancelEdit:w,save:C,setDraft:N,clearError:j,handleBlur:M,handleKeyDown:D,ignoreInitialBlurRef:S}}const g3="_editFieldWrapper_yuzty_1",v3="_editInput_yuzty_10",y3="_editTextarea_yuzty_42",b3="_editSelect_yuzty_78",_3="_editError_yuzty_111",x3="_editInputInvalid_yuzty_118",S3="_editHint_yuzty_123",T3="_unsavedDot_yuzty_132",k3="_metaValueClickable_yuzty_140",w3="_editButton_yuzty_159",N3="_metaPlaceholder_yuzty_175",j3="_worktreeToggle_yuzty_180",Ye={editFieldWrapper:g3,editInput:v3,editTextarea:y3,editSelect:b3,editError:_3,editInputInvalid:x3,editHint:S3,unsavedDot:T3,metaValueClickable:k3,editButton:w3,metaPlaceholder:N3,worktreeToggle:j3};function Yt(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="text",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,maxLength:b,ariaLabel:_,"data-testid":S}=n,T=y.useRef(null),N=sm({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!0,trimOnSave:!0});if(y.useEffect(()=>{if(N.isEditing){const w=window.setTimeout(()=>{var C;(C=T.current)==null||C.focus()},0);return()=>window.clearTimeout(w)}},[N.isEditing]),c==="create"){const w=A=>{h==null||h(A.target.value)},C=o==null?void 0:o(s);return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("input",{className:`${Ye.editInput} ${C?Ye.editInputInvalid:""}`,value:s,onChange:w,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),C&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:C})]})}if(N.isEditing)return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("input",{ref:T,className:`${Ye.editInput} ${N.error?Ye.editInputInvalid:""}`,value:N.draft,onChange:w=>N.setDraft(w.target.value),onBlur:N.handleBlur,onKeyDown:N.handleKeyDown,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),N.isDirty&&l.jsx("span",{className:Ye.unsavedDot,title:"Unsaved changes"}),N.error&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:N.error}),l.jsx("span",{className:Ye.editHint,children:"Enter to save · Esc to cancel"})]});const j=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Ye.metaValueClickable,onClick:()=>N.startEdit(),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),N.startEdit())},title:"Click to edit","aria-label":_,"data-testid":S?`${S}-button`:void 0,children:[j!==void 0?j:s?l.jsx("span",{children:s}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function ap(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="textarea",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=sm({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});if(y.useEffect(()=>{if(T.isEditing){const j=window.setTimeout(()=>{var w;(w=S.current)==null||w.focus()},0);return()=>window.clearTimeout(j)}},[T.isEditing]),c==="create"){const j=C=>{h==null||h(C.target.value)},w=o==null?void 0:o(s);return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("textarea",{className:`${Ye.editTextarea} ${w?Ye.editInputInvalid:""}`,value:s,onChange:j,placeholder:v,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),w&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:w})]})}if(T.isEditing)return l.jsxs("div",{className:Ye.editFieldWrapper,children:[l.jsx("textarea",{ref:S,className:`${Ye.editTextarea} ${T.error?Ye.editInputInvalid:""}`,value:T.draft,onChange:j=>T.setDraft(j.target.value),onBlur:T.handleBlur,onKeyDown:T.handleKeyDown,title:b,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),T.isDirty&&l.jsx("span",{className:Ye.unsavedDot,title:"Unsaved changes"}),T.error&&l.jsx("span",{className:Ye.editError,"data-testid":"edit-error",children:T.error}),l.jsx("span",{className:Ye.editHint,children:"Tab to save · Esc to cancel"})]});const N=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Ye.metaValueClickable,onClick:()=>T.startEdit(),onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),T.startEdit())},title:"Click to edit","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[N!==void 0?N:s?l.jsx("span",{children:s}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function jc(n){var A;const{value:s,onSave:i,mode:o="edit",options:c,fieldId:u="select",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=sm({value:s,onSave:i,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});y.useEffect(()=>{if(T.isEditing){const M=window.setTimeout(()=>{var D;(D=S.current)==null||D.focus()},0);return()=>window.clearTimeout(M)}},[T.isEditing]);const N=y.useCallback(M=>{const D=M.target.value;T.ignoreInitialBlurRef.current=!1,D!==s&&i(D),T.cancelEdit()},[s,i,T]),j=y.useCallback(M=>{if(T.ignoreInitialBlurRef.current){T.ignoreInitialBlurRef.current=!1;return}M.relatedTarget instanceof HTMLElement&&M.relatedTarget.dataset.editAction===u||T.cancelEdit()},[u,T]);if(o==="create")return l.jsx("select",{className:Ye.editSelect,value:s,onChange:M=>h==null?void 0:h(M.target.value),"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))});if(T.isEditing)return l.jsx("select",{ref:S,className:Ye.editSelect,value:T.draft,onChange:N,onBlur:j,title:b,"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))});const w=g==null?void 0:g(s),C=(A=c.find(M=>M.value===s))==null?void 0:A.label;return l.jsxs("button",{type:"button",className:Ye.metaValueClickable,onClick:()=>T.startEdit(),title:"Click to change","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[w!==void 0?w:C?l.jsx("span",{children:C}):l.jsx("span",{className:Ye.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Ye.editButton,"aria-hidden":"true",children:"✏️"})]})}function C3(n){const{checked:s,onChange:i,label:o,ariaLabel:c,"data-testid":u}=n;return l.jsxs("label",{className:Ye.worktreeToggle,"data-testid":u,children:[l.jsx("input",{type:"checkbox",checked:s,onChange:d=>i(d.target.checked),"aria-label":c}),l.jsx("span",{children:o})]})}const E3="_envRow_1e1r5_1",A3="_envDot_1e1r5_7",D3="_envDotGreen_1e1r5_14",R3="_envDotYellow_1e1r5_18",M3="_envDotRed_1e1r5_22",O3="_envDotGray_1e1r5_26",Yi={envRow:E3,envDot:A3,envDotGreen:D3,envDotYellow:R3,envDotRed:M3,envDotGray:O3};function I3(n){const s=n.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?Yi.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?Yi.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?Yi.envDotRed:Yi.envDotGray}function B3(n){const{value:s,onSave:i,environments:o,allowNone:c=!1,fieldId:u="environment",activeFieldId:d,onActivate:m,placeholder:h="No environment",ariaLabel:g="Environment","data-testid":v}=n,b=o.find(T=>T.id===s),_=[...c?[{value:"",label:"None"}]:[],...o.map(T=>({value:T.id,label:T.displayName}))],S=()=>{if(b)return l.jsxs("span",{className:Yi.envRow,children:[l.jsx("span",{className:`${Yi.envDot} ${I3(b.status)}`}),b.displayName]})};return l.jsx(jc,{value:s,onSave:i,options:_,fieldId:u,activeFieldId:d,onActivate:m,renderDisplay:S,placeholder:h,ariaLabel:g,"data-testid":v})}const L3="_nav_1snmp_1",U3="_searchForm_1snmp_8",z3="_searchInput_1snmp_15",P3="_searchButton_1snmp_33",V3="_clearButton_1snmp_68",H3="_workspaceSelect_1snmp_85",q3="_listHeader_1snmp_99",G3="_nodeList_1snmp_108",$3="_nodeItem_1snmp_116",F3="_indicator_1snmp_129",Z3="_label_1snmp_136",K3="_badge_1snmp_145",In={nav:L3,searchForm:U3,searchInput:z3,searchButton:P3,clearButton:V3,workspaceSelect:H3,listHeader:q3,nodeList:G3,nodeItem:$3,indicator:F3,label:Z3,badge:K3};function Y3({nodes:n,workspaces:s,loading:i,searchQuery:o,onSearch:c,onClearSearch:u,onSelectNode:d,onWorkspaceChange:m}){const[h,g]=y.useState(""),v=y.useCallback(T=>{T.preventDefault(),h.trim()&&c(h.trim())},[h,c]),b=y.useCallback(()=>{g(""),u()},[u]),_=y.useCallback(T=>{d(T)},[d]),S=y.useCallback(T=>{g(""),m(T)},[m]);return l.jsxs("div",{className:In.nav,"data-testid":"knowledge-nav",children:[l.jsxs("form",{className:In.searchForm,onSubmit:v,children:[l.jsx("input",{className:In.searchInput,type:"text",placeholder:"Search...",value:h,onChange:T=>{g(T.target.value)},"data-testid":"knowledge-search-input"}),l.jsx("button",{type:"submit",className:In.searchButton,disabled:i,children:"Go"})]}),o&&l.jsx("button",{type:"button",className:In.clearButton,onClick:b,children:"Clear search"}),l.jsxs("select",{className:In.workspaceSelect,onChange:T=>{S(T.target.value)},"data-testid":"knowledge-workspace-filter",children:[l.jsx("option",{value:"",children:"All workspaces"}),s.map(T=>l.jsx("option",{value:T.id,children:T.name},T.id))]}),l.jsxs("div",{className:In.listHeader,children:["Nodes (",n.length,")"]}),l.jsx("ul",{className:In.nodeList,children:n.map(T=>l.jsxs("li",{className:In.nodeItem,onClick:()=>{_(T.id)},onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),_(T.id))},role:"button",tabIndex:0,children:[l.jsx("span",{className:In.indicator,style:{backgroundColor:T.kind==="reference"?"#4A9EFF":T.category==="decision"?"#22C55E":T.category==="concept"?"#A855F7":T.category==="snippet"?"#6B7280":"#EAB308"}}),l.jsx("span",{className:In.label,children:T.label}),l.jsx("span",{className:In.badge,children:T.kind==="reference"?T.sourceType:T.category})]},T.id))})]})}const J3="_container_1mq5u_1",W3="_hamburger_1mq5u_33",X3="_brand_1mq5u_49",Q3="_brandLogo_1mq5u_68",e6="_info_1mq5u_75",t6="_connectionLabel_1mq5u_90",n6="_connectionDot_1mq5u_103",s6="_connected_1mq5u_106",a6="_disconnected_1mq5u_110",Cs={container:J3,hamburger:W3,brand:X3,brandLogo:Q3,info:e6,connectionLabel:t6,connectionDot:n6,connected:s6,disconnected:a6};function i6({connected:n,environments:s,sessions:i,onToggleSidebar:o,sidebarOpen:c}){const u=St(),d=s.length,m=s.filter(g=>g.status==="connected").length,h=i.filter(g=>["running","idle"].includes(g.status)).length;return l.jsxs("div",{className:Cs.container,children:[o&&l.jsx("button",{type:"button",className:Cs.hamburger,onClick:o,"aria-label":"Toggle sidebar","aria-expanded":c,children:"☰"}),l.jsxs("button",{type:"button",className:Cs.brand,onClick:()=>u(Ya),title:"Home",children:[l.jsx("img",{src:"/icon-192x192.png",alt:"",className:Cs.brandLogo,"aria-hidden":"true","data-testid":"statusbar-logo"}),"Grackle"]}),l.jsxs("div",{className:Cs.info,children:[l.jsxs("span",{"aria-label":n?"Connected":"Disconnected",children:[l.jsx("span",{className:`${Cs.connectionDot} ${n?Cs.connected:Cs.disconnected}`,"aria-hidden":"true",children:"●"})," ",l.jsx("span",{className:Cs.connectionLabel,"aria-hidden":"true",children:n?"Connected":"Disconnected"})]}),l.jsxs("span",{children:[m,"/",d," env",d!==1?"s":""]}),l.jsxs("span",{children:[h," active"]})]})]})}const o6="_nav_13gkc_1",r6="_tab_13gkc_35",l6="_tabIcon_13gkc_68",c6="_tabLabel_13gkc_79",u6="_tabActive_13gkc_84",or={nav:o6,tab:r6,tabIcon:l6,tabLabel:c6,tabActive:u6},Ha=[{view:"dashboard",label:"Dashboard",icon:"🏠",route:Ya,testId:"sidebar-tab-dashboard"},{view:"chat",label:"Chat",icon:"💬",route:F2,testId:"sidebar-tab-chat"},{view:"tasks",label:"Tasks",icon:"📋",route:Z2,testId:"sidebar-tab-tasks"},{view:"environments",label:"Environments",icon:"🖥️",route:Xi,testId:"sidebar-tab-environments"},{view:"knowledge",label:"Knowledge",icon:"🧠",route:Db,testId:"sidebar-tab-knowledge"},{view:"settings",label:"Settings",icon:"⚙️",route:H2,testId:"sidebar-tab-settings"}];function d6(n){return n===Ya||n==="/"?"dashboard":n.startsWith("/chat")||n.startsWith("/sessions")?"chat":n.startsWith("/workspaces")||n.startsWith("/environments")?"environments":n.startsWith(Db)?"knowledge":n.startsWith(Ji)?"settings":"tasks"}function f6(){const n=Lt(),s=St(),i=y.useRef(null),o=d6(n.pathname),c=y.useCallback(d=>{s(d.route)},[s]),u=y.useCallback(d=>{var b,_;const m=(b=i.current)==null?void 0:b.querySelectorAll('[role="tab"]');if(!m)return;const h=Array.from(m).findIndex(S=>S===document.activeElement),g=h>=0?h:Ha.findIndex(S=>S.view===o);let v=g;if(d.key==="ArrowRight"||d.key==="j"||d.key==="J")d.preventDefault(),v=(g+1)%Ha.length;else if(d.key==="ArrowLeft"||d.key==="k"||d.key==="K")d.preventDefault(),v=(g-1+Ha.length)%Ha.length;else if(d.key==="Home")d.preventDefault(),v=0;else if(d.key==="End")d.preventDefault(),v=Ha.length-1;else return;s(Ha[v].route),(_=m[v])==null||_.focus()},[o,s]);return l.jsx("nav",{className:or.nav,ref:i,role:"tablist","aria-orientation":"horizontal","aria-label":"App navigation",onKeyDown:u,"data-testid":"sidebar-nav",children:Ha.map(d=>{const m=d.view===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":m,tabIndex:m?0:-1,className:`${or.tab} ${m?or.tabActive:""}`,onClick:()=>c(d),"data-testid":d.testId,title:d.label,"aria-label":d.label,children:[l.jsx("span",{className:or.tabIcon,"aria-hidden":"true",children:d.icon}),l.jsx("span",{className:or.tabLabel,children:d.label})]},d.view)})})}const p6="_container_pi6ii_1",m6="_content_pi6ii_66",zy={container:p6,content:m6},h6=320,px=220,mx=600,hx="grackle-sidebar-width";function g6(){try{const n=localStorage.getItem(hx);if(n!==null){const s=Number(n);if(Number.isFinite(s)&&s>=px&&s<=mx)return s}}catch{}return h6}function v6(n){try{localStorage.setItem(hx,String(n))}catch{}}function y6({content:n}){const[s]=y.useState(g6),i=y.useRef(null);if(y.useEffect(()=>{const o=i.current;if(!o)return;const c=new ResizeObserver(u=>{for(const d of u){const m=d.borderBoxSize[0];if(m){const h=Math.round(m.inlineSize);h>=px&&h<=mx&&v6(h)}}});return c.observe(o),()=>{c.disconnect()}},[]),n!==void 0)return l.jsx("div",{className:zy.container,ref:i,"data-testid":"sidebar",style:{width:s},children:l.jsx("div",{className:zy.content,children:n})})}const b6="_bar_tnfsh_1",_6="_btnPrimary_tnfsh_32",x6="_statusText_tnfsh_85",S6="_statusCompleted_tnfsh_90",T6="_statusFailed_tnfsh_94",k6="_statusBlocked_tnfsh_98",w6="_hintText_tnfsh_103",ht={bar:b6,btnPrimary:_6,statusText:x6,statusCompleted:S6,statusFailed:T6,statusBlocked:k6,hintText:w6};function N6({sessions:n,tasks:s,environments:i}){const o=St(),c=Lt(),u=Mt("/sessions/:sessionId"),d=Mt("/tasks/:taskId"),m=Mt("/tasks/:taskId/stream"),h=Mt("/tasks/:taskId/findings"),g=Mt("/tasks/:taskId/edit"),v=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId"),b=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream"),_=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings"),S=Mt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit"),T=Mt("/sessions/new"),N=Mt("/environments/:environmentId/workspaces/:workspaceId"),j=Mt("/tasks/new"),w=Mt("/chat"),C=Mt("/"),A=Mt("/settings/*"),M=u==null?void 0:u.params.sessionId,D=(d==null?void 0:d.params.taskId)??(m==null?void 0:m.params.taskId)??(h==null?void 0:h.params.taskId)??(v==null?void 0:v.params.taskId)??(b==null?void 0:b.params.taskId)??(_==null?void 0:_.params.taskId)??(S==null?void 0:S.params.taskId),E=v??b??_??S,H=(E==null?void 0:E.params.environmentId)??(N==null?void 0:N.params.environmentId),z=c.pathname.startsWith("/environments")&&!N&&!E,Z=!!w,F=!!T,Q=!!N&&!v&&!b&&!_&&!S,ae=!!j;if(!!C&&!F&&!Q&&!ae||!!A||(!!g||!!S)||ae||z||F)return l.jsx(l.Fragment,{});if(Z)return i.find($=>$.adapterType==="local"&&$.status==="connected")?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Add a local environment to start chatting"})});if(Q)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Select a task or click + to create one"})});if(D){const B=s.find(re=>re.id===D);if(!B)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})});const $=new Map(s.map(re=>[re.id,re])),te=B.dependsOn.some(re=>{const de=$.get(re);return de!==void 0&&de.status!=="complete"});if(B.status==="not_started"){const re=te?B.dependsOn.map(de=>$.get(de)).filter(de=>de&&de.status!=="complete").map(de=>de.title):[];return l.jsx("div",{className:ht.bar,children:te?l.jsxs("span",{className:ht.statusBlocked,children:["Blocked by: ",re.join(", ")]}):l.jsx("span",{className:ht.hintText,children:"Use the buttons above to start or manage this task"})})}if(B.status==="working"||B.status==="paused"){const re=B.latestSessionId||void 0,de=re?n.find(we=>we.id===re):void 0;return de&&de.status!=="stopped"?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Waiting for agent..."})})}if(B.status==="complete")return l.jsxs("div",{className:ht.bar,children:[l.jsx("span",{className:`${ht.statusText} ${ht.statusCompleted}`,children:"Task completed"}),l.jsx("button",{onClick:()=>o(ei(B.workspaceId,void 0,H)),className:ht.btnPrimary,children:"+ New Task"})]});if(B.status==="failed")return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:`${ht.statusText} ${ht.statusFailed}`,children:"Task failed"})})}if(M){const B=n.find(re=>re.id===M),$=(B==null?void 0:B.status)==="stopped";if(B!==void 0&&!$)return l.jsx(l.Fragment,{});if($)return l.jsxs("div",{className:ht.bar,children:[l.jsxs("span",{className:`${ht.statusText} ${ht.hintText}`,children:["Session ",B.endReason||B.status]}),l.jsx("button",{onClick:()=>o(Cb(B.environmentId)),className:ht.btnPrimary,children:"+ New Chat"})]})}return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})})}const j6="_nav_14i94_1",C6="_tab_14i94_24",E6="_tabActive_14i94_62",A6="_tabLabel_14i94_75",D6="_statusDot_14i94_81",R6="_pulse_14i94_87",M6="_addButton_14i94_99",O6="_empty_14i94_132",ca={nav:j6,tab:C6,tabActive:E6,tabLabel:A6,statusDot:D6,pulse:R6,addButton:M6,empty:O6},I6={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function B6({environments:n}){const s=St(),i=y.useRef(null),o=Mt("/environments/:environmentId"),c=Mt("/environments/:environmentId/edit"),u=Mt("/environments/:environmentId/workspaces/:workspaceId"),d=Mt("/environments/:environmentId/workspaces/:workspaceId/*"),m=(o==null?void 0:o.params.environmentId)??(c==null?void 0:c.params.environmentId)??(u==null?void 0:u.params.environmentId)??(d==null?void 0:d.params.environmentId),h=m==="new"?void 0:m,g=y.useCallback(_=>{s(Qi(_))},[s]),v=y.useCallback(_=>{var w;const S=(w=i.current)==null?void 0:w.querySelectorAll('[role="tab"]');if(!S||S.length===0)return;const T=Array.from(S).findIndex(C=>C===document.activeElement),N=T>=0?T:n.findIndex(C=>C.id===h);let j=N;if(_.key==="ArrowDown"||_.key==="j"||_.key==="J")_.preventDefault(),j=(N+1)%S.length;else if(_.key==="ArrowUp"||_.key==="k"||_.key==="K")_.preventDefault(),j=(N-1+S.length)%S.length;else if(_.key==="Home")_.preventDefault(),j=0;else if(_.key==="End")_.preventDefault(),j=S.length-1;else return;j<n.length&&s(Qi(n[j].id)),S[j].focus()},[h,n,s]),b=h??(n.length>0?n[0].id:void 0);return l.jsxs("div",{className:ca.nav,"data-testid":"environment-nav",children:[l.jsx("nav",{ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Environments",onKeyDown:v,children:n.map(_=>{const S=_.id===h,T=_.id===b,N=I6[_.status]||"var(--text-tertiary)",j=_.status==="connected";return l.jsxs("button",{role:"tab",type:"button","aria-selected":S,tabIndex:T?0:-1,className:`${ca.tab} ${S?ca.tabActive:""}`,onClick:()=>g(_.id),"data-testid":"env-nav-item",children:[l.jsx("span",{className:`${ca.statusDot} ${j?ca.pulse:""}`,style:{color:N},children:"●"}),l.jsx("span",{className:ca.tabLabel,title:_.displayName||_.id,children:_.displayName||_.id})]},_.id)})}),l.jsx("button",{type:"button",className:ca.addButton,onClick:()=>s(P2),title:"Add environment","data-testid":"env-nav-add",children:"+ Add Environment"}),n.length===0&&l.jsx("div",{className:ca.empty,children:"No environments yet."})]})}function L6(n){if(n.length===0)return[];const s=[...n].sort((o,c)=>o[0]-c[0]),i=[[s[0][0],s[0][1]]];for(let o=1;o<s.length;o++){const c=i[i.length-1],[u,d]=s[o];u<=c[1]+1?c[1]=Math.max(c[1],d):i.push([u,d])}return i}function gx({text:n,indices:s,highlightClass:i}){if(!s||s.length===0)return l.jsx(l.Fragment,{children:n});const o=L6(s),c=[];let u=0;for(const[d,m]of o)d>u&&c.push(l.jsx("span",{children:n.slice(u,d)},`p${u}`)),c.push(l.jsx("mark",{className:i,children:n.slice(d,m+1)},`m${d}`)),u=m+1;return u<n.length&&c.push(l.jsx("span",{children:n.slice(u)},`p${u}`)),l.jsx(l.Fragment,{children:c})}function U6(n){const s=new Map(n.map(o=>[o.id,{...o,children:[]}])),i=[];for(const o of s.values())o.parentTaskId&&s.has(o.parentTaskId)?s.get(o.parentTaskId).children.push(o):i.push(o);for(const o of s.values())o.children.sort((c,u)=>c.sortOrder-u.sortOrder);return i.sort((o,c)=>o.sortOrder-c.sortOrder)}function z6(n,s){const i=new Map;for(const u of n){const m=u.dependsOn.length>0&&u.dependsOn.some(g=>s.get(g)!=="complete")?"blocked":u.status,h=i.get(m);h?h.push(u):i.set(m,[u])}const o=[],c=new Set;for(const u of GT){c.add(u);const d=i.get(u);if(d&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ma(u);o.push({status:u,label:m.label,style:m,tasks:d})}}for(const[u,d]of i)if(!c.has(u)&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ma(u);o.push({status:u,label:m.label,style:m,tasks:d})}return o}const P6="_container_z4i38_1",V6="_header_z4i38_5",H6="_headerActions_z4i38_17",q6="_searchInput_z4i38_23",G6="_searchHighlight_z4i38_56",$6="_groupToggle_z4i38_62",F6="_groupToggleActive_z4i38_89",Z6="_addButton_z4i38_93",K6="_taskRow_z4i38_120",Y6="_selected_z4i38_140",J6="_expandArrow_z4i38_150",W6="_expanded_z4i38_157",X6="_leafSpacer_z4i38_161",Q6="_taskStatusIcon_z4i38_166",eO="_taskTitle_z4i38_170",tO="_workspaceBadge_z4i38_177",nO="_childCountBadge_z4i38_195",sO="_dependencyBadge_z4i38_208",aO="_blockedBadge_z4i38_220",iO="_addChildButton_z4i38_225",oO="_emptyState_z4i38_268",rO="_statusGroupHeader_z4i38_275",lO="_statusGroupIcon_z4i38_294",cO="_statusGroupLabel_z4i38_298",uO="_statusGroupCount_z4i38_303",Ge={container:P6,header:V6,headerActions:H6,searchInput:q6,searchHighlight:G6,groupToggle:$6,groupToggleActive:F6,addButton:Z6,taskRow:K6,selected:Y6,expandArrow:J6,expanded:W6,leafSpacer:X6,taskStatusIcon:Q6,taskTitle:eO,workspaceBadge:tO,childCountBadge:nO,dependencyBadge:sO,blockedBadge:aO,addChildButton:iO,emptyState:oO,statusGroupHeader:rO,statusGroupIcon:lO,statusGroupLabel:cO,statusGroupCount:uO},dO=[{name:"title",weight:2},{name:"description",weight:1}],vx=16,fO=16,yx="grackle-task-group-by-status";function Py(){try{return localStorage.getItem(yx)==="true"}catch{return!1}}function pO(n){try{localStorage.setItem(yx,String(n))}catch{}}function mO({group:n,isExpanded:s,onToggle:i,selectedTaskId:o,navigate:c,titleHighlights:u,workspaceNames:d}){return l.jsxs("div",{"data-testid":`status-group-${n.status}`,children:[l.jsxs("div",{className:Ge.statusGroupHeader,role:"button",tabIndex:0,"aria-expanded":s,onClick:i,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),i())},children:[l.jsx("span",{className:`${Ge.expandArrow} ${s?Ge.expanded:""}`,children:"▸"}),l.jsx("span",{className:Ge.statusGroupIcon,style:{color:n.style.color},children:n.style.icon}),l.jsx("span",{className:Ge.statusGroupLabel,children:n.label}),l.jsx("span",{className:Ge.statusGroupCount,children:n.tasks.length})]}),l.jsx(rs,{children:s&&l.jsx(Ot.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},style:{overflow:"hidden"},children:n.tasks.map(m=>{const h=ma(m.status),g=o===m.id,v=m.parentTaskId||!m.workspaceId?void 0:d.get(m.workspaceId);return l.jsxs("div",{onClick:()=>c(os(m.id)),className:`${Ge.taskRow} ${g?Ge.selected:""}`,style:{"--task-indent":`${vx}px`},"data-task-id":m.id,children:[l.jsx("span",{className:Ge.leafSpacer}),l.jsx("span",{className:Ge.taskStatusIcon,style:{color:h.color},children:h.icon}),l.jsx("span",{className:Ge.taskTitle,title:m.title,children:l.jsx(gx,{text:m.title,indices:u.get(m.id),highlightClass:Ge.searchHighlight})}),v&&l.jsx("span",{className:Ge.workspaceBadge,title:v,children:v})]},m.id)})})})]})}function bx({node:n,depth:s,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h}){const g=ma(n.status),v=n.dependsOn.length>0&&n.dependsOn.some(w=>d.get(w)!=="complete"),b=i.has(n.id),_=n.children.length>0,S=c===n.id,T=vx+s*fO,j=s===0&&!n.parentTaskId&&n.workspaceId?h.get(n.workspaceId):void 0;return l.jsxs(l.Fragment,{children:[l.jsxs("div",{onClick:()=>u(os(n.id)),className:`${Ge.taskRow} ${S?Ge.selected:""}`,style:{"--task-indent":`${T}px`},"data-task-id":n.id,children:[_&&l.jsx("span",{className:`${Ge.expandArrow} ${b?Ge.expanded:""}`,role:"button",tabIndex:0,"aria-label":b?"Collapse task":"Expand task",onClick:w=>{w.stopPropagation(),o(n.id)},onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),w.stopPropagation(),o(n.id))},children:"▸"}),!_&&l.jsx("span",{className:Ge.leafSpacer}),l.jsx("span",{className:Ge.taskStatusIcon,style:{color:g.color},children:g.icon}),l.jsx("span",{className:Ge.taskTitle,title:n.title,children:l.jsx(gx,{text:n.title,indices:m.get(n.id),highlightClass:Ge.searchHighlight})}),j&&l.jsx("span",{className:Ge.workspaceBadge,title:j,children:j}),_&&l.jsxs("span",{className:Ge.childCountBadge,children:[n.children.filter(w=>w.status==="complete").length,"/",n.children.length]}),n.dependsOn.length>0&&l.jsx("span",{className:`${Ge.dependencyBadge} ${v?Ge.blockedBadge:""}`,title:`Depends on: ${n.dependsOn.join(", ")}`,children:v?"blocked":"dep"}),s<oT&&l.jsx("button",{onClick:w=>{w.stopPropagation(),u(ei(n.workspaceId,n.id))},title:"Add child task","aria-label":"Add child task",className:Ge.addChildButton,children:"+"})]}),l.jsx(rs,{children:_&&b&&l.jsx(Ot.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.15},style:{overflow:"hidden"},children:n.children.map(w=>l.jsx(bx,{node:w,depth:s+1,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h},w.id))})})]})}function hO({workspaces:n,tasks:s}){const i=St(),[o,c]=y.useState(new Set),[u,d]=y.useState(new Set),[m,h]=y.useState(Py),[g,v]=y.useState(Py),[b,_]=y.useState(new Map),S=Mt("/tasks/:taskId/*"),T=(S==null?void 0:S.params.taskId)!=="new"?S==null?void 0:S.params.taskId:void 0,N=y.useMemo(()=>new Map(s.map(oe=>[oe.id,oe.status])),[s]),j=y.useMemo(()=>new Map(n.map(oe=>[oe.id,oe.name])),[n]),w=()=>{const oe=!m;pO(oe),h(oe),oe&&(v(!0),_(new Map))},C=oe=>{_(X=>{const B=new Map(X),$=B.has(oe)?B.get(oe):g;return B.set(oe,!$),B})},A=oe=>b.has(oe)?b.get(oe):g,M=oe=>{c(X=>{const B=new Set(X);return B.has(oe)?(B.delete(oe),d($=>new Set($).add(oe))):(B.add(oe),d($=>{const te=new Set($);return te.delete(oe),te})),B})};y.useEffect(()=>{const oe=new Set(s.filter(X=>X.parentTaskId).map(X=>X.parentTaskId));oe.size>0&&c(X=>{const B=new Set(X);for(const $ of oe)u.has($)||B.add($);return B})},[s,u]);const[D,E]=y.useState(""),{directMatchTaskIds:H,treeMatchTaskIds:z,titleHighlights:Z}=y.useMemo(()=>{if(!D.trim())return{directMatchTaskIds:null,treeMatchTaskIds:null,titleHighlights:new Map};const oe=iT(s,D,dO),X=new Set(oe.map(re=>re.item.id)),B=new Map;for(const re of oe){const de=re.matches.find($e=>$e.key==="title");de&&B.set(re.item.id,de.indices)}const $=new Set(X),te=new Map(s.map(re=>[re.id,re]));for(const re of[...X]){let de=te.get(re);for(;de!=null&&de.parentTaskId;)$.add(de.parentTaskId),de=te.get(de.parentTaskId)}return{directMatchTaskIds:X,treeMatchTaskIds:$,titleHighlights:B}},[D,s]),F=H!==null,Q=F?m?H:z:null,ae=Q?s.filter(oe=>Q.has(oe.id)):s,pe=m?[]:U6(ae);return l.jsxs("div",{className:Ge.container,children:[l.jsxs("div",{className:Ge.header,children:[l.jsx("span",{children:"Tasks"}),l.jsxs("div",{className:Ge.headerActions,children:[l.jsx("button",{className:`${Ge.groupToggle} ${m?Ge.groupToggleActive:""}`,onClick:w,"aria-label":m?"Switch to tree view":"Group tasks by status","aria-pressed":m,title:m?"Switch to tree view":"Group tasks by status","data-testid":"task-group-by-status-toggle",children:"≡"}),l.jsx("button",{className:Ge.addButton,onClick:()=>i(ei()),"aria-label":"New task",title:"New task","data-testid":"new-task-button",children:"+"})]})]}),s.length>0&&l.jsx("input",{type:"text",value:D,onChange:oe=>E(oe.target.value),placeholder:"Filter...","aria-label":"Filter tasks",className:Ge.searchInput,"data-testid":"sidebar-search"}),m?z6(ae,N).map(oe=>l.jsx(mO,{group:oe,isExpanded:A(oe.status),onToggle:()=>C(oe.status),selectedTaskId:T,navigate:i,titleHighlights:Z,workspaceNames:j},oe.status)):pe.map(oe=>l.jsx(bx,{node:oe,depth:0,expandedTasks:o,toggleTask:M,selectedTaskId:T,navigate:i,taskStatusById:N,titleHighlights:Z,workspaceNames:j},oe.id)),ae.length===0&&!F&&l.jsx("div",{className:Ge.emptyState,children:"No tasks yet. Click + to create one."}),ae.length===0&&F&&l.jsx("div",{className:Ge.emptyState,children:"No matching tasks"})]})}const gO="_toast_da8ll_1",vO="_success_da8ll_18",yO="_icon_da8ll_22",bO="_error_da8ll_25",_O="_warning_da8ll_32",xO="_info_da8ll_38",SO="_message_da8ll_53",TO="_close_da8ll_60",rr={toast:gO,success:vO,icon:yO,error:bO,warning:_O,info:xO,message:SO,close:TO},kO={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function wO({toast:n,onDismiss:s}){return y.useEffect(()=>{const i=setTimeout(()=>s(n.id),n.duration);return()=>clearTimeout(i)},[n.id,n.duration,s]),l.jsxs(Ot.div,{className:`${rr.toast} ${rr[n.variant]}`,role:"status",initial:{opacity:0,y:-16,scale:.94},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.94},transition:{duration:.2,ease:"easeOut"},layout:!0,children:[l.jsx("span",{className:rr.icon,"aria-hidden":"true",children:kO[n.variant]}),l.jsx("span",{className:rr.message,children:n.message}),l.jsx("button",{type:"button",className:rr.close,onClick:()=>s(n.id),"aria-label":"Dismiss notification",children:"×"})]})}const NO="_container_qqse2_1",jO={container:NO};function CO({toasts:n,onDismiss:s}){return l.jsx("div",{className:jO.container,"data-testid":"toast-container",children:l.jsx(rs,{children:n.map(i=>l.jsx(wO,{toast:i,onDismiss:s},i.id))})})}const EO="_callout_1jaue_1",AO="_success_1jaue_11",DO="_icon_1jaue_15",RO="_error_1jaue_18",MO="_warning_1jaue_25",OO="_info_1jaue_32",IO="_content_1jaue_48",BO="_close_1jaue_53",lr={callout:EO,success:AO,icon:DO,error:RO,warning:MO,info:OO,content:IO,close:BO},LO={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function UO({variant:n="info",children:s,dismissible:i=!1,className:o}){const[c,u]=y.useState(!1);return l.jsx(l.Fragment,{children:!c&&l.jsxs("div",{className:[lr.callout,lr[n],o].filter(Boolean).join(" "),role:n==="error"||n==="warning"?"alert":"status",children:[l.jsx("span",{className:lr.icon,"aria-hidden":"true",children:LO[n]}),l.jsx("span",{className:lr.content,children:s}),i&&l.jsx("button",{type:"button",className:lr.close,onClick:()=>u(!0),"aria-label":"Dismiss",children:"×"})]})})}function zO({currentVersion:n,latestVersion:s,updateAvailable:i,isDocker:o}){if(!i)return l.jsx(l.Fragment,{});const c=o?"docker pull ghcr.io/nick-pape/grackle:latest && docker restart grackle":`npm install -g @grackle-ai/cli@${s}`;return l.jsx("div",{"data-testid":"update-banner",children:l.jsxs(UO,{variant:"info",dismissible:!0,children:[l.jsxs("strong",{children:["Grackle v",s]})," is available (you have v",n,")."," ","Run: ",l.jsx("code",{children:c})]})})}const PO="_container_1pqxm_1",VO="_emptyState_1pqxm_8",HO="_card_1pqxm_14",qO="_cardHeader_1pqxm_34",GO="_categoryBadge_1pqxm_46",$O="_findingTitle_1pqxm_54",FO="_findingDate_1pqxm_60",ZO="_findingContent_1pqxm_72",KO="_tags_1pqxm_78",YO="_tag_1pqxm_78",ts={container:PO,emptyState:VO,card:HO,cardHeader:qO,categoryBadge:GO,findingTitle:$O,findingDate:FO,findingContent:ZO,tags:KO,tag:YO};function JO(n){const s=new Date(n),i=new Date,o=i.getTime()-s.getTime(),c=Math.floor(o/1e3),u=Math.floor(c/60),d=Math.floor(u/60),m=Math.floor(d/24);if(c<60)return"just now";if(u<60)return`${u}m ago`;if(d<24)return`${d}h ago`;if(m===1)return"yesterday";if(m<7)return`${m} days ago`;const h=s.getFullYear()===i.getFullYear(),g=s.toLocaleString("en-US",{month:"short"}),v=s.getDate();return h?`${g} ${v}`:`${g} ${v} ${s.getFullYear()}`}const Vy={architecture:{text:"var(--accent-blue)",bg:"var(--accent-blue-dim)"},api:{text:"var(--accent-green)",bg:"var(--accent-green-dim)"},bug:{text:"var(--accent-red)",bg:"var(--accent-red-dim)"},decision:{text:"var(--accent-yellow)",bg:"var(--accent-yellow-dim)"},dependency:{text:"var(--accent-purple)",bg:"var(--accent-purple-dim)"},pattern:{text:"var(--accent-cyan)",bg:"var(--accent-cyan-dim)"},general:{text:"var(--text-secondary)",bg:"var(--bg-elevated)"}};function WO({findings:n}){return n.length===0?l.jsx("div",{className:ts.emptyState,children:"No findings yet. Agents will post discoveries here."}):l.jsx("div",{className:ts.container,children:n.map((s,i)=>{const o=Vy[s.category]||Vy.general;return l.jsxs(Ot.div,{className:ts.card,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:i*.05,duration:.2},children:[l.jsxs("div",{className:ts.cardHeader,children:[l.jsx("span",{className:ts.categoryBadge,style:{background:o.bg,color:o.text},children:s.category}),l.jsx("span",{className:ts.findingTitle,children:s.title}),l.jsx("span",{className:ts.findingDate,title:s.createdAt,children:JO(s.createdAt)})]}),l.jsx("div",{className:ts.findingContent,children:s.content.length>300?s.content.slice(0,300)+"...":s.content}),s.tags.length>0&&l.jsx("div",{className:ts.tags,children:s.tags.map(c=>l.jsx("span",{className:ts.tag,style:{color:o.text,textShadow:`0 0 8px ${o.text}`},children:c},c))})]},s.id)})})}const XO="_section_1ingb_14",QO="_sectionTitle_1ingb_26",eI="_sectionDescription_1ingb_35",tI="_tokenList_1ingb_48",nI="_tokenRow_1ingb_55",sI="_tokenBadge_1ingb_68",aI="_tokenName_1ingb_83",iI="_tokenTarget_1ingb_90",oI="_deleteButton_1ingb_99",rI="_addForm_1ingb_113",lI="_formRow_1ingb_119",cI="_input_1ingb_125",uI="_select_1ingb_155",dI="_addButton_1ingb_187",fI="_emptyStateInfo_1ingb_221",pI="_themeOptions_1ingb_229",mI="_themeOption_1ingb_229",hI="_themeOptionSelected_1ingb_254",gI="_themeOptionHeader_1ingb_259",vI="_themeOptionLabel_1ingb_266",yI="_themeOptionDesc_1ingb_273",bI="_variantToggle_1ingb_279",_I="_variantButton_1ingb_286",xI="_variantActive_1ingb_305",SI="_themeSwatches_1ingb_311",TI="_themeSwatch_1ingb_311",kI="_systemToggle_1ingb_325",wI="_systemToggleHint_1ingb_341",NI="_themeActive_1ingb_348",jI="_aboutGrid_1ingb_354",CI="_aboutItem_1ingb_360",EI="_aboutLabel_1ingb_373",AI="_aboutValue_1ingb_379",DI="_aboutDot_1ingb_387",RI="_aboutDotConnected_1ingb_394",MI="_aboutDotDisconnected_1ingb_398",he={section:XO,sectionTitle:QO,sectionDescription:eI,tokenList:tI,tokenRow:nI,tokenBadge:sI,tokenName:aI,tokenTarget:iI,deleteButton:oI,addForm:rI,formRow:lI,input:cI,select:uI,addButton:dI,emptyStateInfo:fI,themeOptions:pI,themeOption:mI,themeOptionSelected:hI,themeOptionHeader:gI,themeOptionLabel:vI,themeOptionDesc:yI,variantToggle:bI,variantButton:_I,variantActive:xI,themeSwatches:SI,themeSwatch:TI,systemToggle:kI,systemToggleHint:wI,themeActive:NI,aboutGrid:jI,aboutItem:CI,aboutLabel:EI,aboutValue:AI,aboutDot:DI,aboutDotConnected:RI,aboutDotDisconnected:MI},OI=[{value:"env_var",label:"Environment Variable"},{value:"file",label:"File"}];function II({tokens:n,onSetToken:s,onDeleteToken:i,onShowToast:o}){const[c,u]=y.useState(""),[d,m]=y.useState(""),[h,g]=y.useState("env_var"),[v,b]=y.useState(""),[_,S]=y.useState(null),T=w=>{if(w.preventDefault(),!c||!d)return;const C=h==="env_var"?v||c.toUpperCase()+"_TOKEN":"";s(c,d,h,C,h==="file"?v:""),o==null||o("Token saved successfully","success"),u(""),m(""),b("")},N=w=>{S(w)},j=()=>{_&&(i(_),o==null||o("Token deleted","info")),S(null)};return l.jsxs(l.Fragment,{children:[l.jsx(Ja,{isOpen:_!==null,title:"Delete Token?",description:_?`"${_}" will be permanently removed.`:void 0,onConfirm:j,onCancel:()=>S(null)}),l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Tokens"}),l.jsx("p",{className:he.sectionDescription,children:"API tokens are auto-pushed to environments when set or updated. Values are write-only."}),n.length===0?l.jsx("div",{className:he.emptyStateInfo,children:"Add your first API token to enable service integrations."}):l.jsx("div",{className:he.tokenList,children:n.map(w=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenBadge,children:w.tokenType}),l.jsx("span",{className:he.tokenName,children:w.name}),l.jsx("span",{className:he.tokenTarget,children:w.tokenType==="env_var"?w.envVar:w.filePath}),l.jsx("button",{className:he.deleteButton,onClick:()=>N(w.name),title:`Delete ${w.name}`,children:"×"})]},w.name))}),l.jsxs("form",{className:he.addForm,onSubmit:T,children:[l.jsxs("div",{className:he.formRow,children:[l.jsx("input",{className:he.input,type:"text",placeholder:"Token name",value:c,onChange:w=>u(w.target.value)}),l.jsx("input",{className:he.input,type:"password",placeholder:"Value",value:d,onChange:w=>m(w.target.value)})]}),l.jsxs("div",{className:he.formRow,children:[l.jsx("select",{className:he.select,value:h,onChange:w=>g(w.target.value),children:OI.map(w=>l.jsx("option",{value:w.value,children:w.label},w.value))}),l.jsx("input",{className:he.input,type:"text",placeholder:h==="env_var"?"Env var name (e.g. API_TOKEN)":"File path (e.g. /home/user/.token)",value:v,onChange:w=>b(w.target.value)}),l.jsx("button",{className:he.addButton,type:"submit",children:"Add Token"})]})]})]})]})}const Pc=[{id:"grackle",label:"Grackle",description:"The default Grackle theme — iridescent purple on clean dark.",swatches:["#0e1218","#8b5cf6","#60a5fa","#e5e7eb","#34d399"],variantLightId:"grackle-light",variantDarkId:"grackle-dark"},{id:"grackle-light",label:"Grackle Light",description:"Light Grackle variant.",hidden:!0},{id:"grackle-dark",label:"Grackle Dark",description:"Dark Grackle variant.",hidden:!0},{id:"glass",label:"Glassmorphism",description:"Dark frosted-glass aesthetic with backdrop blur effects.",swatches:["#0a0c14","#4ecca3","#70a1ff","#e2e8f0","#a855f7"]},{id:"matrix",label:"Matrix",description:"Phosphor-green CRT terminal with scanlines and glow.",swatches:["#050505","#00ff41","#00bfff","#33ff77","#ffb000"]},{id:"brutalist",label:"Neubrutalism",description:"Thick borders, raw colors, bold type — ugly on purpose.",swatches:["#f5f0e8","#ff5757","#5ce1e6","#1a1a1a","#ffde59"],variantLightId:"brutalist-light",variantDarkId:"brutalist-dark"},{id:"brutalist-light",label:"Neubrutalism Light",description:"Light neubrutalism variant.",hidden:!0},{id:"brutalist-dark",label:"Neubrutalism Dark",description:"Dark neubrutalism variant.",hidden:!0},{id:"monokai",label:"Monokai",description:"Classic warm editor palette — pink, green, and purple.",swatches:["#272822","#f92672","#a6e22e","#f8f8f2","#ae81ff"],variantLightId:"monokai-light",variantDarkId:"monokai-dark"},{id:"monokai-dark",label:"Monokai Dark",description:"Dark Monokai variant.",hidden:!0},{id:"monokai-light",label:"Monokai Light",description:"Light Monokai variant.",hidden:!0},{id:"ubuntu",label:"Ubuntu",description:"Aubergine terminal with the GNOME Tango palette.",swatches:["#300a24","#8ae234","#ef2929","#eeeeec","#fce94f"]},{id:"sandstone",label:"Sandstone",description:"Warm terracotta accent on dark brown, in the style of Claude Code.",swatches:["#1a1815","#C15F3C","#6b8afd","#e8e6e3","#a78bfa"]},{id:"verdigris",label:"Verdigris",description:"Teal accent on charcoal, in the style of ChatGPT.",swatches:["#141414","#00a67e","#3b82f6","#ececec","#ab68ff"]},{id:"primer",label:"Primer",description:"Blue accent on ink-dark grey, in the style of GitHub.",swatches:["#0d1117","#58a6ff","#3fb950","#c9d1d9","#bc8cff"]}],_x=new Set(Pc.map(n=>n.id)),Hy="grackle";function ip(n){return Pc.find(s=>s.id===n)}function BI({themeId:n,resolvedThemeId:s,onSetTheme:i,preferSystem:o,onSetPreferSystem:c}){return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Appearance"}),l.jsx("p",{className:he.sectionDescription,children:"Choose how Grackle looks across the app."}),l.jsx("div",{className:he.themeOptions,children:Pc.filter(u=>!u.hidden).map(u=>{const d=!!(u.variantLightId&&u.variantDarkId),m=d?n===u.id||n===u.variantLightId||n===u.variantDarkId:n===u.id,h=d&&s===u.variantLightId;return l.jsxs("button",{type:"button",className:`${he.themeOption} ${m?he.themeOptionSelected:""}`,"aria-pressed":m,onClick:()=>i(u.id),children:[l.jsxs("span",{className:he.themeOptionHeader,children:[l.jsxs("span",{children:[l.jsx("span",{className:he.themeOptionLabel,children:u.label}),l.jsx("span",{className:he.themeOptionDesc,children:u.description})]}),d&&l.jsxs("span",{className:he.variantToggle,children:[l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantLightId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantLightId))},"aria-label":"Light variant","aria-pressed":m&&h,children:"☼"}),l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&!h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantDarkId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantDarkId))},"aria-label":"Dark variant","aria-pressed":m&&!h,children:"☾"})]})]}),u.swatches&&l.jsx("span",{className:he.themeSwatches,children:u.swatches.map((g,v)=>l.jsx("span",{className:he.themeSwatch,style:{background:g}},v))})]},u.id)})}),l.jsxs("label",{className:he.systemToggle,children:[l.jsx("input",{type:"checkbox",checked:o,onChange:u=>c(u.target.checked)}),l.jsx("span",{children:"Match system light/dark preference"})]}),l.jsx("p",{className:he.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),l.jsxs("p",{className:he.themeActive,children:["Active theme: ",l.jsx("strong",{children:s})]})]})}function LI({connected:n,environments:s,sessions:i}){const o=s.filter(d=>d.status==="connected").length,c=s.length,u=i.filter(d=>["running","idle"].includes(d.status)).length;return l.jsxs("section",{className:he.section,"data-testid":"about-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"About"}),l.jsx("p",{className:he.sectionDescription,children:"Connection status and application information."}),l.jsxs("div",{className:he.aboutGrid,children:[l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Connection"}),l.jsxs("span",{className:he.aboutValue,children:[l.jsx("span",{className:`${he.aboutDot} ${n?he.aboutDotConnected:he.aboutDotDisconnected}`}),n?"Connected":"Disconnected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Environments"}),l.jsxs("span",{className:he.aboutValue,children:[o,"/",c," connected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Active Sessions"}),l.jsx("span",{className:he.aboutValue,children:u})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Version"}),l.jsx("span",{className:he.aboutValue,children:"0.86.0"})]})]})]})}const UI="_container_cddyd_1",zI="_header_cddyd_8",PI="_headerTitle_cddyd_35",VI="_badge_cddyd_44",HI="_headerActions_cddyd_54",qI="_body_cddyd_61",GI="_formContent_cddyd_73",$I="_section_cddyd_85",FI="_label_cddyd_91",ZI="_titleInput_cddyd_98",KI="_descriptionTextarea_cddyd_131",YI="_parentContext_cddyd_167",JI="_parentLabel_cddyd_175",WI="_parentName_cddyd_182",XI="_personaSelect_cddyd_186",QI="_depList_cddyd_220",e5="_depItem_cddyd_226",t5="_depItemSelected_cddyd_248",n5="_noDeps_cddyd_252",s5="_btnPrimary_cddyd_258",a5="_btnGhost_cddyd_289",Oe={container:UI,header:zI,headerTitle:PI,badge:VI,headerActions:HI,body:qI,formContent:GI,section:$I,label:FI,titleInput:ZI,descriptionTextarea:KI,parentContext:YI,parentLabel:JI,parentName:WI,personaSelect:XI,depList:QI,depItem:e5,depItemSelected:t5,noDeps:n5,btnPrimary:s5,btnGhost:a5};function xx({mode:n,taskId:s,workspaceId:i,parentTaskId:o,environmentId:c,tasks:u,workspaces:d,personas:m,onCreateTask:h,onUpdateTask:g,onEditDone:v,onShowToast:b}){const _=St(),S=n==="edit",T=S&&s?u.find(me=>me.id===s):void 0,N=S?(T==null?void 0:T.workspaceId)??"":i??"",[j,w]=y.useState(N),C=N||j,A=d.find(me=>me.id===C),M=c??(A==null?void 0:A.environmentId),D=!S&&!i,E=S?(T==null?void 0:T.parentTaskId)??"":o??"",H=E?u.find(me=>me.id===E):void 0,[z,Z]=y.useState((T==null?void 0:T.title)??""),[F,Q]=y.useState((T==null?void 0:T.description)??""),[ae,pe]=y.useState((T==null?void 0:T.dependsOn)??[]),[oe,X]=y.useState((T==null?void 0:T.defaultPersonaId)??""),[B,$]=y.useState((T==null?void 0:T.canDecompose)??!1),[te,re]=y.useState(!1),de=y.useRef(!1);y.useEffect(()=>{S&&T&&!de.current&&(de.current=!0,Z(T.title),Q(T.description),pe(T.dependsOn),X(T.defaultPersonaId),$(T.canDecompose))},[S,T]);const $e=u.filter(me=>me.workspaceId===C&&(!S||me.id!==s)&&me.id!==E),we=z.trim().length>0&&(!S||T!==void 0)&&C.length>0,Se=me=>{pe(Ce=>Ce.includes(me)?Ce.filter(Ut=>Ut!==me):[...Ce,me])},Ie=()=>{!we||te||S&&T===void 0||(S&&s?(g(s,z.trim(),F,ae,oe),b==null||b("Task updated","success"),v?v():_(os(s,void 0,C,M),{replace:!0})):(re(!0),h(C,z.trim(),F,ae.length>0?ae:void 0,E||void 0,oe,B,()=>{b==null||b("Task created","success"),_(i?Wi(i,M):"/tasks",{replace:!0})},me=>{b==null||b(me,"error"),re(!1)})))},le=()=>{if(v){v();return}_(S&&s?os(s,void 0,C,M):i?Wi(i,M):"/tasks")},fe=S?"edit task":E?"child task":"new task";return l.jsxs("div",{className:Oe.container,children:[l.jsxs("div",{className:Oe.header,children:[l.jsxs("div",{className:Oe.headerTitle,children:[l.jsx("span",{className:Oe.badge,children:fe}),H&&l.jsxs("span",{className:Oe.parentContext,children:[l.jsx("span",{className:Oe.parentLabel,children:"Child of"}),l.jsx("span",{className:Oe.parentName,children:H.title})]})]}),l.jsxs("div",{className:Oe.headerActions,children:[l.jsx("button",{onClick:Ie,disabled:!we||te,className:Oe.btnPrimary,"data-testid":"task-edit-save",children:te?"Creating…":S?"Save Changes":"Create"}),l.jsx("button",{onClick:le,className:Oe.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:Oe.body,children:l.jsxs("div",{className:Oe.formContent,children:[D&&l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-workspace",children:"Workspace"}),l.jsxs("select",{id:"task-edit-workspace",value:j,onChange:me=>w(me.target.value),className:Oe.personaSelect,"data-testid":"task-edit-workspace",children:[l.jsx("option",{value:"",children:"Select a workspace..."}),d.map(me=>l.jsx("option",{value:me.id,children:me.name},me.id))]})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-title",children:"Title"}),l.jsx("input",{id:"task-edit-title",type:"text",value:z,onChange:me=>Z(me.target.value),placeholder:"Task title...",autoFocus:!0,className:Oe.titleInput,"data-testid":"task-edit-title",onKeyDown:me=>{me.key==="Enter"&&we&&Ie()}})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-description",children:"Description"}),l.jsx("textarea",{id:"task-edit-description",value:F,onChange:me=>Q(me.target.value),placeholder:"Describe the task... (markdown supported)",className:Oe.descriptionTextarea,"data-testid":"task-edit-description",rows:8})]}),l.jsxs("div",{className:Oe.section,children:[l.jsx("label",{className:Oe.label,htmlFor:"task-edit-persona",children:"Default Persona"}),l.jsxs("select",{id:"task-edit-persona",value:oe,onChange:me=>X(me.target.value),className:Oe.personaSelect,"data-testid":"task-edit-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),m.map(me=>l.jsx("option",{value:me.id,children:me.name},me.id))]})]}),!S&&l.jsx("div",{className:Oe.section,children:l.jsxs("label",{className:Oe.depItem,"data-testid":"task-edit-can-decompose",children:[l.jsx("input",{type:"checkbox",checked:B,onChange:me=>$(me.target.checked)}),"Can spawn subtasks"]})}),l.jsxs("div",{className:Oe.section,children:[l.jsx("div",{className:Oe.label,children:"Dependencies"}),$e.length===0?l.jsx("div",{className:Oe.noDeps,children:"No other tasks in this workspace"}):l.jsx("div",{className:Oe.depList,children:$e.map(me=>{const Ce=ae.includes(me.id);return l.jsxs("label",{className:`${Oe.depItem} ${Ce?Oe.depItemSelected:""}`,"data-testid":`dep-option-${me.id}`,children:[l.jsx("input",{type:"checkbox",checked:Ce,onChange:()=>Se(me.id)}),me.title,l.jsxs("span",{style:{opacity:.5,fontSize:"11px",marginLeft:"4px"},children:["(",me.status,")"]})]},me.id)})})]})]})})]})}const i5="_container_legrg_1",o5="_header_legrg_8",r5="_headerTitle_legrg_35",l5="_badge_legrg_44",c5="_headerActions_legrg_54",u5="_body_legrg_61",d5="_formContent_legrg_73",f5="_section_legrg_85",p5="_label_legrg_91",m5="_nameInput_legrg_98",h5="_fieldInput_legrg_131",g5="_adapterSelect_legrg_164",v5="_readOnlyValue_legrg_198",y5="_codespaceSection_legrg_204",b5="_codespaceActions_legrg_210",_5="_creatingHint_legrg_216",x5="_errorHint_legrg_222",S5="_btnPrimary_legrg_235",T5="_btnGhost_legrg_266",ne={container:i5,header:o5,headerTitle:r5,badge:l5,headerActions:c5,body:u5,formContent:d5,section:f5,label:p5,nameInput:m5,fieldInput:h5,adapterSelect:g5,readOnlyValue:v5,codespaceSection:y5,codespaceActions:b5,creatingHint:_5,errorHint:x5,btnPrimary:S5,btnGhost:T5},hc=1,gc=65535;function jf(n){if(!n.trim())return!0;const s=Number(n);return Number.isInteger(s)&&s>=hc&&s<=gc}function Cf(n){try{const s=JSON.parse(n);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}catch{}return{}}function k5({codespaceName:n,onCodespaceNameChange:s,envName:i,onEnvNameChange:o,codespaces:c,codespaceError:u,codespaceListError:d,codespaceCreating:m,onCreateCodespace:h}){const[g,v]=y.useState("pick"),[b,_]=y.useState(""),[S,T]=y.useState("");return g==="create"?l.jsxs("div",{className:ne.codespaceSection,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Repository"}),l.jsx("input",{type:"text",value:b,onChange:N=>_(N.target.value),placeholder:"owner/repo",className:ne.fieldInput,"data-testid":"env-codespace-repo"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Machine Type"}),l.jsx("input",{type:"text",value:S,onChange:N=>T(N.target.value),placeholder:"Machine type (optional)...",className:ne.fieldInput,"data-testid":"env-codespace-machine"})]}),l.jsxs("div",{className:ne.codespaceActions,children:[l.jsx("button",{onClick:()=>{b.trim()&&(h(b.trim(),S.trim()||void 0),v("pick"),_(""),T(""))},disabled:!b.trim(),className:ne.btnPrimary,children:"Create"}),l.jsx("button",{onClick:()=>{v("pick"),_(""),T("")},className:ne.btnGhost,children:"Cancel"})]})]}):l.jsx("div",{className:ne.codespaceSection,children:l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Codespace"}),!d&&l.jsxs("select",{value:n,onChange:N=>{N.target.value==="__create__"?(v("create"),s("")):(s(N.target.value),N.target.value&&!i.trim()&&o(N.target.value))},disabled:m,className:ne.adapterSelect,"data-testid":"env-codespace-select",children:[l.jsx("option",{value:"",children:"Select a codespace..."}),c.map(N=>l.jsxs("option",{value:N.name,children:[N.name," (",N.repository,") — ",N.state]},N.name)),l.jsx("option",{value:"__create__",children:"Create new from repo..."})]}),m&&l.jsx("span",{className:ne.creatingHint,children:"Creating codespace..."}),d&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ne.errorHint,children:d}),l.jsx("input",{type:"text",value:n,onChange:N=>s(N.target.value),placeholder:"Or enter codespace name manually...",className:ne.fieldInput,"data-testid":"env-codespace-manual"})]}),u&&!d&&l.jsx("span",{className:ne.errorHint,children:u})]})})}function Sx({mode:n,environmentId:s,environments:i,onAddEnvironment:o,onUpdateEnvironment:c,onListCodespaces:u,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v,onShowToast:b}){const _=St(),S=n==="edit",T=S&&s?i.find(le=>le.id===s):void 0,[N,j]=y.useState(""),[w,C]=y.useState("local"),[A,M]=y.useState(""),[D,E]=y.useState(""),[H,z]=y.useState(""),[Z,F]=y.useState(""),[Q,ae]=y.useState(""),[pe,oe]=y.useState(""),[X,B]=y.useState(""),[$,te]=y.useState(null),re=y.useCallback(()=>{const le={};if(w==="local"){if(A.trim()&&(le.host=A.trim()),D.trim()){const fe=Number(D);Number.isInteger(fe)&&(le.port=fe)}}else if(w==="ssh"){if(le.host=A.trim(),H.trim()&&(le.user=H.trim()),D.trim()){const fe=Number(D);Number.isInteger(fe)&&(le.sshPort=fe)}Z.trim()&&(le.identityFile=Z.trim())}else w==="docker"?(Q.trim()&&(le.image=Q.trim()),pe.trim()&&(le.repo=pe.trim())):w==="codespace"&&(le.codespaceName=X.trim());return le},[w,A,D,H,Z,Q,pe,X]),de=()=>!(!N.trim()||w==="ssh"&&!A.trim()||w==="codespace"&&!X.trim()||(w==="local"||w==="ssh")&&!jf(D)),$e=()=>{de()&&(o(N.trim(),w,re()),b==null||b("Environment added successfully","success"),_(Xi,{replace:!0}))},we=()=>{_(s?Qi(s):Xi)},Se=y.useCallback((le,fe)=>{if(!T||!s)return;const me=Cf(T.adapterConfig),Ce=fe.trim();Ce?me[le]=Ce:delete me[le],c(s,{adapterConfig:me})},[T,s,c]),Ie=y.useCallback((le,fe)=>{if(!T||!s)return;const me=Cf(T.adapterConfig);if(fe.trim()){const Ce=Number(fe);Number.isInteger(Ce)&&Ce>=hc&&Ce<=gc&&(me[le]=Ce)}else delete me[le];c(s,{adapterConfig:me})},[T,s,c]);if(S){if(!T)return l.jsxs("div",{className:ne.container,children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"edit environment"})}),l.jsx("div",{className:ne.headerActions,children:l.jsx("button",{onClick:we,className:ne.btnGhost,children:"Back"})})]}),l.jsx("div",{className:ne.body,children:l.jsx("div",{className:ne.formContent,children:l.jsx("span",{className:ne.readOnlyValue,children:"Environment not found"})})})]});const le=Cf(T.adapterConfig);return l.jsxs("div",{className:ne.container,"data-testid":"env-edit-panel",children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"edit environment"})}),l.jsx("div",{className:ne.headerActions,children:l.jsx("button",{onClick:we,className:ne.btnGhost,"data-testid":"env-edit-back",children:"Back"})})]}),l.jsx("div",{className:ne.body,children:l.jsxs("div",{className:ne.formContent,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Name"}),l.jsx(Yt,{value:T.displayName,onSave:fe=>{s&&c(s,{displayName:fe})},validate:fe=>fe.trim()===""?"Name cannot be empty":void 0,mode:"edit",fieldId:"name",activeFieldId:$,onActivate:te,placeholder:"Environment name",ariaLabel:"Environment name","data-testid":"env-edit-name"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Adapter Type"}),l.jsx("span",{className:ne.readOnlyValue,"data-testid":"env-edit-adapter-type",children:T.adapterType})]}),T.adapterType==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Host"}),l.jsx(Yt,{value:String(le.host??""),onSave:fe=>Se("host",fe),mode:"edit",fieldId:"host",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Port"}),l.jsx(Yt,{value:String(le.port??""),onSave:fe=>Ie("port",fe),validate:fe=>jf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"port",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Port","data-testid":"env-edit-port"})]})]}),T.adapterType==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Host"}),l.jsx(Yt,{value:String(le.host??""),onSave:fe=>Se("host",fe),validate:fe=>fe.trim()===""?"Host is required":void 0,mode:"edit",fieldId:"host",activeFieldId:$,onActivate:te,placeholder:"hostname or IP",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"User"}),l.jsx(Yt,{value:String(le.user??""),onSave:fe=>Se("user",fe),mode:"edit",fieldId:"user",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"User","data-testid":"env-edit-user"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"SSH Port"}),l.jsx(Yt,{value:String(le.sshPort??""),onSave:fe=>Ie("sshPort",fe),validate:fe=>jf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"sshPort",activeFieldId:$,onActivate:te,placeholder:"22",ariaLabel:"SSH Port","data-testid":"env-edit-ssh-port"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Identity File"}),l.jsx(Yt,{value:String(le.identityFile??""),onSave:fe=>Se("identityFile",fe),mode:"edit",fieldId:"identityFile",activeFieldId:$,onActivate:te,placeholder:"~/.ssh/id_rsa",ariaLabel:"Identity File","data-testid":"env-edit-identity-file"})]})]}),T.adapterType==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Image"}),l.jsx(Yt,{value:String(le.image??""),onSave:fe=>Se("image",fe),mode:"edit",fieldId:"image",activeFieldId:$,onActivate:te,placeholder:"(default)",ariaLabel:"Image","data-testid":"env-edit-image"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Repo"}),l.jsx(Yt,{value:String(le.repo??""),onSave:fe=>Se("repo",fe),mode:"edit",fieldId:"repo",activeFieldId:$,onActivate:te,placeholder:"(none)",ariaLabel:"Repo","data-testid":"env-edit-repo"})]})]}),T.adapterType==="codespace"&&l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,children:"Codespace Name"}),l.jsx(Yt,{value:String(le.codespaceName??""),onSave:fe=>Se("codespaceName",fe),validate:fe=>fe.trim()===""?"Codespace name is required":void 0,mode:"edit",fieldId:"codespaceName",activeFieldId:$,onActivate:te,placeholder:"codespace-name",ariaLabel:"Codespace Name","data-testid":"env-edit-codespace-name"})]})]})})]})}return l.jsxs("div",{className:ne.container,"data-testid":"env-create-panel",children:[l.jsxs("div",{className:ne.header,children:[l.jsx("div",{className:ne.headerTitle,children:l.jsx("span",{className:ne.badge,children:"new environment"})}),l.jsxs("div",{className:ne.headerActions,children:[l.jsx("button",{onClick:$e,disabled:!de(),className:ne.btnPrimary,"data-testid":"env-create-submit",children:"Create"}),l.jsx("button",{onClick:we,className:ne.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:ne.body,children:l.jsxs("div",{className:ne.formContent,children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-name",children:"Name"}),l.jsx("input",{id:"env-create-name",type:"text",value:N,onChange:le=>j(le.target.value),placeholder:"Environment name...",autoFocus:!0,className:ne.nameInput,"data-testid":"env-create-name",onKeyDown:le=>{le.key==="Enter"&&de()&&$e()}})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-adapter",children:"Adapter Type"}),l.jsxs("select",{id:"env-create-adapter",value:w,onChange:le=>{C(le.target.value),le.target.value==="codespace"&&u()},className:ne.adapterSelect,"data-testid":"env-create-adapter",children:[l.jsx("option",{value:"local",children:"local"}),l.jsx("option",{value:"ssh",children:"ssh"}),l.jsx("option",{value:"docker",children:"docker"}),l.jsx("option",{value:"codespace",children:"codespace"})]})]}),w==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:le=>M(le.target.value),placeholder:"Host (optional)...",className:ne.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-port",children:"Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:D,onChange:le=>E(le.target.value),placeholder:"Port (optional)...",className:ne.fieldInput,"data-testid":"env-create-port"})]})]}),w==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:le=>M(le.target.value),placeholder:"Host (required)...",className:ne.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-user",children:"User"}),l.jsx("input",{id:"env-create-user",type:"text",value:H,onChange:le=>z(le.target.value),placeholder:"User (optional)...",className:ne.fieldInput,"data-testid":"env-create-user"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-port",children:"SSH Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:D,onChange:le=>E(le.target.value),placeholder:"SSH port (optional)...",className:ne.fieldInput,"data-testid":"env-create-port"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-identity",children:"Identity File"}),l.jsx("input",{id:"env-create-identity",type:"text",value:Z,onChange:le=>F(le.target.value),placeholder:"Identity file (optional)...",className:ne.fieldInput,"data-testid":"env-create-identity"})]})]}),w==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-image",children:"Image"}),l.jsx("input",{id:"env-create-image",type:"text",value:Q,onChange:le=>ae(le.target.value),placeholder:"Image (optional)...",className:ne.fieldInput,"data-testid":"env-create-image"})]}),l.jsxs("div",{className:ne.section,children:[l.jsx("label",{className:ne.label,htmlFor:"env-create-repo",children:"Repo"}),l.jsx("input",{id:"env-create-repo",type:"text",value:pe,onChange:le=>oe(le.target.value),placeholder:"Repo (optional)...",className:ne.fieldInput,"data-testid":"env-create-repo"})]})]}),w==="codespace"&&l.jsx(k5,{codespaceName:X,onCodespaceNameChange:B,envName:N,onEnvNameChange:j,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v})]})})]})}const w5="_group_1iprv_1",N5="_groupTitle_1iprv_8",j5="_shortcutList_1iprv_17",C5="_shortcutRow_1iprv_23",E5="_keys_1iprv_36",A5="_kbd_1iprv_43",D5="_description_1iprv_60",qa={group:w5,groupTitle:N5,shortcutList:j5,shortcutRow:C5,keys:E5,kbd:A5,description:D5},R5=[{title:"Global",shortcuts:[{keys:["?"],description:"Open keyboard shortcuts reference"},{keys:["N"],description:"Create a new task"},{keys:["Escape"],description:"Close dialog or cancel editing"}]},{title:"Task Page",shortcuts:[{keys:["1"],description:"Switch to Overview tab"},{keys:["2"],description:"Switch to Stream tab"},{keys:["3"],description:"Switch to Findings tab"}]},{title:"Workspace Page",shortcuts:[{keys:["1"],description:"Switch to Graph view"},{keys:["2"],description:"Switch to Board view"},{keys:["3"],description:"Switch to Tasks view"}]},{title:"Navigation Lists",shortcuts:[{keys:["←"],description:"Previous tab (horizontal nav)"},{keys:["→"],description:"Next tab (horizontal nav)"},{keys:["↑"],description:"Previous item (vertical nav)"},{keys:["↓"],description:"Next item (vertical nav)"},{keys:["J"],description:"Next item (alias for arrow down/right)"},{keys:["K"],description:"Previous item (alias for arrow up/left)"},{keys:["Home"],description:"Jump to first item"},{keys:["End"],description:"Jump to last item"}]},{title:"Editing",shortcuts:[{keys:["Enter"],description:"Activate / save inline edit"},{keys:["Space"],description:"Activate button or start editing"},{keys:["Escape"],description:"Cancel edit and discard changes"}]},{title:"Chat",shortcuts:[{keys:["Enter"],description:"Send message (when input is focused)"}]}];function M5(){return l.jsxs("section",{className:he.section,"data-testid":"keyboard-shortcuts-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"Keyboard Shortcuts"}),l.jsx("p",{className:he.sectionDescription,children:"Keyboard shortcuts for navigating and interacting with Grackle. Global shortcuts are suppressed while typing in text fields."}),R5.map(n=>l.jsxs("div",{className:qa.group,children:[l.jsx("h4",{className:qa.groupTitle,children:n.title}),l.jsx("div",{className:qa.shortcutList,children:n.shortcuts.map(s=>l.jsxs("div",{className:qa.shortcutRow,children:[l.jsx("span",{className:qa.keys,children:s.keys.map(i=>l.jsx("kbd",{className:qa.kbd,children:i},i))}),l.jsx("span",{className:qa.description,children:s.description})]},s.description))})]},n.title))]})}const O5="_workpadSection_y8nj9_1",I5="_workpadLabel_y8nj9_9",B5="_workpadStatus_y8nj9_17",L5="_workpadSummary_y8nj9_23",U5="_workpadExtra_y8nj9_29",ua={workpadSection:O5,workpadLabel:I5,workpadStatus:B5,workpadSummary:L5,workpadExtra:U5};function z5({workpad:n}){if(!n)return;let s;try{const i=JSON.parse(n);if(i==null||typeof i!="object"||Array.isArray(i))return;s=i}catch{return l.jsxs("div",{className:ua.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:ua.workpadLabel,children:"Workpad"}),l.jsx("div",{className:ua.workpadExtra,children:n})]})}if(!(!s.status&&!s.summary&&!s.extra))return l.jsxs("div",{className:ua.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:ua.workpadLabel,children:"Workpad"}),s.status&&l.jsx("div",{className:ua.workpadStatus,"data-testid":"workpad-status",children:s.status}),s.summary&&l.jsx("div",{className:ua.workpadSummary,"data-testid":"workpad-summary",children:s.summary}),s.extra&&Object.keys(s.extra).length>0&&l.jsx("div",{className:ua.workpadExtra,"data-testid":"workpad-extra",children:JSON.stringify(s.extra,null,2)})]})}const P5=[{key:"claude",label:"Claude",description:"Forward Claude credentials for AI agent access.",options:[{value:"off",label:"Off"},{value:"subscription",label:"Subscription"},{value:"api_key",label:"API Key"}]},{key:"github",label:"GitHub",description:"Forward GITHUB_TOKEN and GH_TOKEN for git operations.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"copilot",label:"Copilot",description:"Forward Copilot tokens (COPILOT_GITHUB_TOKEN, CLI config).",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"codex",label:"Codex",description:"Forward OPENAI_API_KEY for Codex/OpenAI access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"goose",label:"Goose",description:"Forward Goose config and API keys for Goose agent access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]}];function V5({credentialProviders:n,onUpdateCredentialProviders:s}){const i=(o,c)=>{const u={...n};o==="claude"?u.claude=c:u[o]=c,s(u)};return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Credential Providers"}),l.jsx("p",{className:he.sectionDescription,children:"Enable providers to automatically forward credentials to environments at task start. Credentials are read fresh from the host each time."}),l.jsx("div",{className:he.tokenList,children:P5.map(o=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenName,children:o.label}),l.jsx("span",{className:he.tokenTarget,children:o.description}),l.jsx("select",{className:he.select,value:n[o.key],onChange:c=>i(o.key,c.target.value),children:o.options.map(c=>l.jsx("option",{value:c.value,children:c.label},c.value))})]},o.key))})]})}const H5="_container_10efq_1",q5="_header_10efq_7",G5="_form_10efq_19",$5="_formActions_10efq_87",F5="_editableSection_10efq_94",Z5="_list_10efq_105",K5="_card_10efq_111",Y5="_cardHeader_10efq_125",J5="_cardTitle_10efq_135",W5="_defaultBadge_10efq_141",X5="_cardActions_10efq_155",Q5="_description_10efq_160",e4="_meta_10efq_166",t4="_empty_10efq_212",n4="_typeToggle_10efq_348",s4="_typeBadge_10efq_362",a4="_scriptEditor_10efq_376",i4="_optional_10efq_383",gt={container:H5,header:q5,form:G5,formActions:$5,editableSection:F5,list:Z5,card:K5,cardHeader:Y5,cardTitle:J5,defaultBadge:W5,cardActions:X5,description:Q5,meta:e4,empty:t4,typeToggle:n4,typeBadge:s4,scriptEditor:a4,optional:i4};function o4({personas:n,appDefaultPersonaId:s,onDeletePersona:i,onSetAppDefaultPersonaId:o,onNavigateToNew:c,onNavigateToPersona:u}){const[d,m]=y.useState(null),h=d?n.find(v=>v.id===d):void 0,g=async v=>{await i(v),m(null)};return l.jsxs("div",{className:gt.container,children:[l.jsxs("div",{className:gt.header,children:[l.jsx("h2",{children:"Personas"}),l.jsx(As,{variant:"primary",size:"md",onClick:c,"data-testid":"persona-new-button",children:"+ New Persona"})]}),n.length===0?l.jsx("p",{className:gt.empty,children:"No personas yet. Create one to get started."}):l.jsx("div",{className:gt.list,children:n.map(v=>{const b=s===v.id,_=v.type==="script";return l.jsxs("div",{className:gt.card,"data-testid":`persona-card-${v.id}`,onClick:()=>u(v.id),role:"button",tabIndex:0,onKeyDown:S=>{S.currentTarget===S.target&&(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),u(v.id))},children:[l.jsxs("div",{className:gt.cardHeader,children:[l.jsxs("span",{className:gt.cardTitle,children:[l.jsx("strong",{children:v.name}),l.jsx("span",{className:gt.typeBadge,"data-testid":`persona-type-badge-${v.id}`,children:_?"Script":"Agent"}),b&&l.jsx("span",{className:gt.defaultBadge,"data-testid":`persona-default-badge-${v.id}`,children:"App Default"})]}),l.jsxs("div",{className:gt.cardActions,onClick:S=>S.stopPropagation(),children:[!b&&l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>{o(v.id).catch(()=>{})},"data-testid":`persona-set-default-${v.id}`,title:"Set as app default persona",children:"Set Default"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>u(v.id),children:"Edit"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>m(v.id),"data-testid":`persona-delete-${v.id}`,children:"Delete"})]})]}),v.description&&l.jsx("p",{className:gt.description,children:v.description}),l.jsxs("div",{className:gt.meta,children:[v.runtime&&l.jsxs("span",{children:["Runtime: ",v.runtime]}),v.model&&l.jsxs("span",{children:["Model: ",v.model]}),v.maxTurns>0&&l.jsxs("span",{children:["Max turns: ",v.maxTurns]})]})]},v.id)})}),l.jsx(Ja,{isOpen:d!==null,title:"Delete Persona?",description:`"${(h==null?void 0:h.name)??""}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:()=>{d&&g(d).catch(()=>{})},onCancel:()=>m(null)})]})}const r4="_container_uy08i_1",l4="_header_uy08i_7",c4="_count_uy08i_13",u4="_presets_uy08i_18",d4="_presetButton_uy08i_24",f4="_filterInput_uy08i_41",p4="_groups_uy08i_53",m4="_group_uy08i_53",h4="_groupHeader_uy08i_68",g4="_groupName_uy08i_77",v4="_groupCount_uy08i_81",y4="_toolList_uy08i_87",b4="_toolItem_uy08i_95",_4="_toolName_uy08i_103",tn={container:r4,header:l4,count:c4,presets:u4,presetButton:d4,filterInput:f4,groups:p4,group:m4,groupHeader:h4,groupName:g4,groupCount:v4,toolList:y4,toolItem:b4,toolName:_4},x4=(()=>{const n=new Map;for(const s of ob){const i=s==="get_version_status"?"version":s.split("_")[0];n.has(i)||n.set(i,[]),n.get(i).push(s)}return[...n.entries()].sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>({group:s,tools:i.sort()}))})(),S4=[{name:"default",label:"Default",tools:rb},{name:"worker",label:"Worker",tools:rT},{name:"orchestrator",label:"Orchestrator",tools:lT},{name:"admin",label:"Admin",tools:cT}];function qy({selectedTools:n,onChange:s,disabled:i}){const[o,c]=y.useState(""),u=y.useMemo(()=>new Set(n),[n]),d=y.useCallback(v=>{if(i)return;const b=new Set(u);b.has(v)?b.delete(v):b.add(v),s([...b].sort())},[u,s,i]),m=y.useCallback((v,b)=>{if(i)return;const _=new Set(u);for(const S of v)b?_.delete(S):_.add(S);s([..._].sort())},[u,s,i]),h=y.useCallback(v=>{i||s([...v].sort())},[s,i]),g=o.toLowerCase();return l.jsxs("div",{className:tn.container,"data-testid":"mcp-tool-selector",children:[l.jsx("div",{className:tn.header,children:l.jsx("span",{className:tn.count,children:n.length===0?`Using default (${rb.length} tools)`:`${n.length} of ${ob.size} tools selected`})}),l.jsxs("div",{className:tn.presets,"data-testid":"mcp-tool-presets",children:[S4.map(v=>l.jsx("button",{type:"button",className:tn.presetButton,disabled:i,onClick:()=>h(v.tools),"data-testid":`preset-${v.name}`,children:v.label},v.name)),l.jsx("button",{type:"button",className:tn.presetButton,disabled:i,onClick:()=>s([]),"data-testid":"preset-clear",children:"Clear"})]}),l.jsx("input",{type:"text",className:tn.filterInput,placeholder:"Filter tools...",value:o,onChange:v=>c(v.target.value),disabled:i,"data-testid":"mcp-tool-filter"}),l.jsx("div",{className:tn.groups,children:x4.map(({group:v,tools:b})=>{const _=g?b.filter(T=>T.toLowerCase().includes(g)):b;if(_.length===0)return null;const S=_.every(T=>u.has(T));return l.jsxs("div",{className:tn.group,"data-testid":`tool-group-${v}`,children:[l.jsxs("label",{className:tn.groupHeader,children:[l.jsx("input",{type:"checkbox",checked:S,onChange:()=>m(_,S),disabled:i,"data-testid":`group-toggle-${v}`}),l.jsx("span",{className:tn.groupName,children:v}),l.jsxs("span",{className:tn.groupCount,children:["(",_.filter(T=>u.has(T)).length,"/",_.length,")"]})]}),l.jsx("div",{className:tn.toolList,children:_.map(T=>l.jsxs("label",{className:tn.toolItem,children:[l.jsx("input",{type:"checkbox",checked:u.has(T),onChange:()=>d(T),disabled:i,"data-testid":`tool-${T}`}),l.jsx("span",{className:tn.toolName,children:T})]},T))})]},v)})})]})}const T4="_nav_1bhou_1",k4="_tab_1bhou_24",w4="_tabIcon_1bhou_62",N4="_tabActive_1bhou_68",ac={nav:T4,tab:k4,tabIcon:w4,tabActive:N4},Es=[{path:"credentials",label:"Credentials",icon:"🔑"},{path:"personas",label:"Personas",icon:"👤"},{path:"appearance",label:"Appearance",icon:"🎨"},{path:"shortcuts",label:"Shortcuts",icon:"⌨️"},{path:"about",label:"About",icon:"ℹ️"}];function j4(){var d;const n=Lt(),s=St(),i=y.useRef(null),o=((d=Es.find(m=>{const h=`${Ji}/${m.path}`;return n.pathname===h||n.pathname.startsWith(`${h}/`)}))==null?void 0:d.path)??Es[0].path,c=y.useCallback(m=>{s(`${Ji}/${m}`)},[s]),u=y.useCallback(m=>{var S,T;const h=(S=i.current)==null?void 0:S.querySelectorAll('[role="tab"]');if(!h)return;const g=Array.from(h).findIndex(N=>N===document.activeElement),v=g>=0?g:Es.findIndex(N=>N.path===o);let b=v;if(m.key==="ArrowDown"||m.key==="j"||m.key==="J")m.preventDefault(),b=(v+1)%Es.length;else if(m.key==="ArrowUp"||m.key==="k"||m.key==="K")m.preventDefault(),b=(v-1+Es.length)%Es.length;else if(m.key==="Home")m.preventDefault(),b=0;else if(m.key==="End")m.preventDefault(),b=Es.length-1;else return;const _=Es[b].path;s(`${Ji}/${_}`),(T=h[b])==null||T.focus()},[o,s]);return l.jsx("nav",{className:ac.nav,ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Settings",onKeyDown:u,children:Es.map(m=>{const h=m.path===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":h,tabIndex:h?0:-1,className:`${ac.tab} ${h?ac.tabActive:""}`,onClick:()=>c(m.path),children:[l.jsx("span",{className:ac.tabIcon,"aria-hidden":"true",children:m.icon}),m.label]},m.path)})})}function C4({tasks:n,taskStatusById:s,sessionStatusByTaskId:i}){const o=new Map;for(const u of n)if(u.parentTaskId){const d=o.get(u.parentTaskId);d?d.push(u):o.set(u.parentTaskId,[u])}const c=new Map(u0.map(u=>[u,[]]));for(const u of n){const d=fp(u.status),m=u.dependsOn.length>0&&u.dependsOn.some(T=>s.get(T)!=="complete"),h=o.get(u.id)??[],g=h.length,v=h.filter(T=>T.status==="complete").length;let b;if(d==="paused"&&i){const T=i.get(u.id);T==="idle"?b="Needs input":T==="completed"&&(b="Ready to complete")}const _={task:u,isBlocked:m,childCount:g,doneChildCount:v,pausedSubBadge:b},S=c.get(d);S?S.push(_):c.get("not_started").push(_)}for(const u of c.values())u.sort((d,m)=>d.task.sortOrder-m.task.sortOrder);return u0.map(u=>{const d=ma(u);return{status:u,label:d.label,style:d,tasks:c.get(u)??[]}})}const E4="_boardContainer_1c4y1_1",A4="_column_1c4y1_17",D4="_columnHeader_1c4y1_34",R4="_columnIcon_1c4y1_47",M4="_columnLabel_1c4y1_52",O4="_columnCount_1c4y1_57",I4="_cardList_1c4y1_67",B4="_emptyPlaceholder_1c4y1_76",L4="_card_1c4y1_67",U4="_cardHeader_1c4y1_107",z4="_cardStatusIcon_1c4y1_113",P4="_cardTitle_1c4y1_119",V4="_cardBadges_1c4y1_127",H4="_badge_1c4y1_134",q4="_blockedBadge_1c4y1_146",G4="_childBadge_1c4y1_151",$4="_depBadge_1c4y1_155",F4="_parentBadge_1c4y1_159",Z4="_pausedSubBadge_1c4y1_166",K4="_personaBadge_1c4y1_170",Y4="_envBadge_1c4y1_174",J4="_emptyCta_1c4y1_178",W4="_ctaButton_1c4y1_188",X4="_ctaDescription_1c4y1_204",Xe={boardContainer:E4,column:A4,columnHeader:D4,columnIcon:R4,columnLabel:M4,columnCount:O4,cardList:I4,emptyPlaceholder:B4,card:L4,cardHeader:U4,cardStatusIcon:z4,cardTitle:P4,cardBadges:V4,badge:H4,blockedBadge:q4,childBadge:G4,depBadge:$4,parentBadge:F4,pausedSubBadge:Z4,personaBadge:K4,envBadge:Y4,emptyCta:J4,ctaButton:W4,ctaDescription:X4};function Q4({workspaceId:n,environmentId:s,tasks:i,sessions:o,personas:c,environments:u}){const d=St(),m=y.useMemo(()=>i.filter(_=>_.workspaceId===n),[i,n]),h=y.useMemo(()=>new Map(i.map(_=>[_.id,_.status])),[i]),g=y.useMemo(()=>new Map(m.map(_=>[_.id,_])),[m]),v=y.useMemo(()=>{const _=new Map(o.map(C=>[C.id,C])),S=new Map(c.map(C=>[C.id,C])),T=new Map(u.map(C=>[C.id,C])),N=new Map,j=new Map,w=new Map;for(const C of m)if(C.latestSessionId){const A=_.get(C.latestSessionId);if(A){if(N.set(C.id,A.endReason||A.status),A.personaId){const M=S.get(A.personaId);M&&j.set(C.id,M.name)}if(A.environmentId){const M=T.get(A.environmentId);M&&w.set(C.id,M.displayName)}}}return{sessionStatusByTaskId:N,personaNameByTaskId:j,environmentNameByTaskId:w}},[m,o,c,u]),b=y.useMemo(()=>C4({tasks:m,taskStatusById:h,sessionStatusByTaskId:v.sessionStatusByTaskId}),[m,h,v]);return m.length===0?l.jsxs("div",{className:Xe.emptyCta,"data-testid":"board-empty-cta",children:[l.jsx("button",{className:Xe.ctaButton,onClick:()=>d(ei(n,void 0,s)),children:"Create Task"}),l.jsx("div",{className:Xe.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}):l.jsx("div",{className:Xe.boardContainer,"data-testid":"board-container",children:b.map(_=>l.jsxs("section",{className:Xe.column,"data-testid":`board-column-${_.status}`,"aria-label":`${_.label}, ${_.tasks.length} ${_.tasks.length===1?"task":"tasks"}`,children:[l.jsxs("div",{className:Xe.columnHeader,children:[l.jsx("span",{className:Xe.columnIcon,style:{color:_.style.color},children:_.style.icon}),l.jsx("span",{className:Xe.columnLabel,children:_.label}),l.jsx("span",{className:Xe.columnCount,"data-testid":`board-count-${_.status}`,children:_.tasks.length})]}),l.jsx("div",{className:Xe.cardList,children:_.tasks.length===0?l.jsx("div",{className:Xe.emptyPlaceholder,children:"No tasks"}):l.jsx(rs,{mode:"popLayout",children:_.tasks.map(S=>l.jsx(Ot.div,{layout:!0,initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},children:l.jsx(eB,{boardTask:S,tasksById:g,personaName:v.personaNameByTaskId.get(S.task.id),envName:v.environmentNameByTaskId.get(S.task.id),onClick:()=>d(os(S.task.id,void 0,n,s))})},S.task.id))})})]},_.status))})}function eB({boardTask:n,tasksById:s,personaName:i,envName:o,onClick:c}){const{task:u,isBlocked:d,childCount:m,doneChildCount:h,pausedSubBadge:g}=n,v=ma(u.status),b=u.parentTaskId?s.get(u.parentTaskId):void 0;return l.jsxs("div",{className:Xe.card,tabIndex:0,role:"button","data-testid":`board-card-${u.id}`,onClick:c,onKeyDown:_=>{(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),c())},children:[l.jsxs("div",{className:Xe.cardHeader,children:[l.jsx("span",{className:Xe.cardStatusIcon,style:{color:v.color},children:v.icon}),l.jsx("span",{className:Xe.cardTitle,children:u.title})]}),l.jsxs("div",{className:Xe.cardBadges,children:[b&&l.jsx("span",{className:`${Xe.badge} ${Xe.parentBadge}`,title:b.title,children:b.title}),m>0&&l.jsxs("span",{className:`${Xe.badge} ${Xe.childBadge}`,children:[h,"/",m]}),d&&l.jsx("span",{className:`${Xe.badge} ${Xe.blockedBadge}`,children:"blocked"}),u.dependsOn.length>0&&!d&&l.jsx("span",{className:`${Xe.badge} ${Xe.depBadge}`,children:"dep"}),g&&l.jsx("span",{className:`${Xe.badge} ${Xe.pausedSubBadge}`,children:g}),i&&l.jsx("span",{className:`${Xe.badge} ${Xe.personaBadge}`,children:i}),o&&l.jsx("span",{className:`${Xe.badge} ${Xe.envBadge}`,children:o})]})]})}const tB="_formContent_ymnez_1",nB="_section_ymnez_13",sB="_label_ymnez_19",aB="_titleInput_ymnez_26",iB="_descriptionTextarea_ymnez_58",oB="_selectField_ymnez_94",rB="_checkboxRow_ymnez_128",lB="_checkboxLabel_ymnez_141",cB="_fieldError_ymnez_146",ut={formContent:tB,section:nB,label:sB,titleInput:aB,descriptionTextarea:iB,selectField:oB,checkboxRow:rB,checkboxLabel:lB,fieldError:cB};function uB(n,s){return{name:(n==null?void 0:n.name)??"",description:(n==null?void 0:n.description)??"",repoUrl:(n==null?void 0:n.repoUrl)??"",environmentId:(n==null?void 0:n.environmentId)??s??"",defaultPersonaId:(n==null?void 0:n.defaultPersonaId)??"",useWorktrees:(n==null?void 0:n.useWorktrees)??!0,workingDirectory:(n==null?void 0:n.workingDirectory)??""}}const dB=100;function fB({values:n,onChange:s,environments:i,personas:o,errors:c,disabled:u,autoFocusName:d}){const m=(h,g)=>{s({...n,[h]:g})};return l.jsxs("div",{className:ut.formContent,children:[l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-name",children:"Name"}),l.jsx("input",{id:"ws-name",className:ut.titleInput,type:"text",value:n.name,onChange:h=>m("name",h.target.value),placeholder:"Workspace name",maxLength:dB,autoFocus:d,disabled:u,"data-testid":"workspace-form-name"}),(c==null?void 0:c.name)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-name",children:c.name})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-description",children:"Description"}),l.jsx("textarea",{id:"ws-description",className:ut.descriptionTextarea,value:n.description,onChange:h=>m("description",h.target.value),placeholder:"Optional description (Markdown supported)",disabled:u,"data-testid":"workspace-form-description"})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-repo",children:"Repository URL"}),l.jsx("input",{id:"ws-repo",className:ut.titleInput,type:"text",value:n.repoUrl,onChange:h=>m("repoUrl",h.target.value),placeholder:"https://github.com/org/repo",disabled:u,"data-testid":"workspace-form-repo"}),(c==null?void 0:c.repoUrl)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-repoUrl",children:c.repoUrl})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-environment",children:"Environment"}),l.jsxs("select",{id:"ws-environment",className:ut.selectField,value:n.environmentId,onChange:h=>m("environmentId",h.target.value),disabled:u,"data-testid":"workspace-form-environment",children:[l.jsx("option",{value:"",children:"Select environment…"}),i.map(h=>l.jsx("option",{value:h.id,children:h.displayName||h.id},h.id))]}),(c==null?void 0:c.environmentId)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-environmentId",children:c.environmentId})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-persona",children:"Default Persona"}),l.jsxs("select",{id:"ws-persona",className:ut.selectField,value:n.defaultPersonaId,onChange:h=>m("defaultPersonaId",h.target.value),disabled:u,"data-testid":"workspace-form-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),o.map(h=>l.jsx("option",{value:h.id,children:h.name},h.id))]})]}),l.jsx("div",{className:ut.section,children:l.jsxs("label",{className:ut.checkboxRow,children:[l.jsx("input",{type:"checkbox",checked:n.useWorktrees,onChange:h=>m("useWorktrees",h.target.checked),disabled:u,"data-testid":"workspace-form-worktrees"}),l.jsx("span",{className:ut.checkboxLabel,children:"Enable worktree isolation"})]})}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-workdir",children:"Working Directory"}),l.jsx("input",{id:"ws-workdir",className:ut.titleInput,type:"text",value:n.workingDirectory,onChange:h=>m("workingDirectory",h.target.value),placeholder:"Default (server default)",disabled:u,"data-testid":"workspace-form-workdir"})]})]})}const Tx=y.createContext(void 0),pB=4e3;function mB({children:n}){const[s,i]=y.useState([]),o=y.useRef(0),c=y.useCallback(d=>{i(m=>m.filter(h=>h.id!==d))},[]),u=y.useCallback((d,m="info",h=pB)=>{const g=`toast-${++o.current}`;i(v=>[...v,{id:g,message:d,variant:m,duration:h}])},[]);return l.jsx(Tx.Provider,{value:{toasts:s,showToast:u,dismissToast:c},children:n})}function dn(){const n=y.useContext(Tx);if(!n)throw new Error("useToast must be used within ToastProvider");return n}const op="grackle-theme",kx="grackle-prefer-system",wx="(prefers-color-scheme: dark)";let fr=[],vc;function Ef(){vc=void 0;for(const n of fr)n()}function rp(){return typeof window>"u"?!1:window.matchMedia(wx).matches}function yr(){if(typeof localStorage>"u")return Hy;try{const n=localStorage.getItem(op);if(n!==null&&_x.has(n))return n}catch{}return Hy}function Cc(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(kx)==="true"}catch{return!1}}function lp(n){return Pc.find(s=>s.variantLightId===n||s.variantDarkId===n)}function Nx(n,s){const i=ip(n);if(i!=null&&i.variantDarkId)return s&&i.variantLightId?rp()?i.variantDarkId:i.variantLightId:i.variantDarkId;if(i!=null&&i.hidden&&s){const o=lp(n);if(o!=null&&o.variantLightId&&o.variantDarkId)return rp()?o.variantDarkId:o.variantLightId}return n}function qi(n,s,i=!1){i&&document.documentElement.classList.add("no-transitions"),document.documentElement.dataset.theme=Nx(n,s),i&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove("no-transitions")}))}typeof document<"u"&&qi(yr(),Cc());function hB(){return vc===void 0&&(vc={themeId:yr(),systemDark:rp(),preferSystem:Cc()}),vc}function gB(n){return fr=[...fr,n],()=>{fr=fr.filter(s=>s!==n)}}function vB(){const n=y.useSyncExternalStore(gB,hB),{themeId:s,preferSystem:i}=n,o=Nx(s,i),c=y.useCallback(d=>{if(_x.has(d)){try{localStorage.setItem(op,d)}catch{}qi(d,Cc(),!0),Ef()}},[]),u=y.useCallback(d=>{try{localStorage.setItem(kx,d?"true":"false")}catch{}if(d){const m=yr(),h=ip(m);if(h!=null&&h.hidden){const g=lp(m);if(g)try{localStorage.setItem(op,g.id)}catch{}}}qi(yr(),d,!0),Ef()},[]);return y.useEffect(()=>{qi(s,i)},[s,i]),y.useEffect(()=>{if(typeof window>"u")return;const d=window.matchMedia(wx),m=()=>{const h=yr(),g=Cc();if(g){const v=ip(h);if(v!=null&&v.variantDarkId&&v.variantLightId&&qi(h,g),v!=null&&v.hidden){const b=lp(h);b!=null&&b.variantDarkId&&b.variantLightId&&qi(h,g)}}Ef()};return d.addEventListener("change",m),()=>{d.removeEventListener("change",m)}},[]),{themeId:s,setTheme:c,resolvedThemeId:o,preferSystem:i,setPreferSystem:u}}const jx=y.createContext(void 0);function yB({children:n}){const s=vB();return l.jsx(jx.Provider,{value:s,children:n})}function Cx(){const n=y.useContext(jx);if(!n)throw new Error("useThemeContext must be used within ThemeProvider");return n}const Ex=y.createContext(void 0),Ax=y.createContext(void 0);function bB({children:n}){const[s,i]=y.useState(void 0),o=y.useCallback(c=>{i(c)},[]);return l.jsx(Ax.Provider,{value:o,children:l.jsx(Ex.Provider,{value:s,children:n})})}function _B(){return y.useContext(Ex)}function xB(){const n=y.useContext(Ax);if(n===void 0)throw new Error("useSidebarSetter must be used within a SidebarProvider");return n}const am=y.createContext(void 0);function pt(){const n=y.useContext(am);if(!n)throw new Error("useGrackle must be used within GrackleProvider");return n}function Dx(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Rx(n,s){return console.warn(`[ws] Malformed "${n}" message: ${s}`),!1}function SB(n){return Dx(n)&&typeof n.sessionId=="string"&&typeof n.eventType=="string"&&typeof n.timestamp=="string"&&typeof n.content=="string"&&(n.raw===void 0||typeof n.raw=="string")}const TB=new Set(["off","subscription","api_key"]),ic=new Set(["off","on"]);function kB(n){return Dx(n)&&TB.has(n.claude)&&ic.has(n.github)&&ic.has(n.copilot)&&ic.has(n.codex)&&ic.has(n.goose)}function Mx(n){switch(n){case"waiting_input":return"idle";case"completed":return"stopped";case"killed":return"stopped";case"failed":return"stopped";case"interrupted":return"stopped";case"terminated":return"stopped";default:return n}}function Ox(n){switch(n){case"completed":return"completed";case"killed":return"killed";case"failed":return"interrupted";case"interrupted":return"interrupted";case"terminated":return"terminated";default:return}}const Hi=5e3;function wB(n,s){const i=[];let o=n;const c=new Set;for(;o&&s.has(o)&&!c.has(o);){c.add(o);const u=s.get(o);i.unshift(u),o=u.parentTaskId||void 0}return i}const Wa={label:"Home",url:Ya};function NB(n){return n?[Wa,{label:"Settings",url:Ji},{label:n,url:void 0}]:[Wa,{label:"Settings",url:void 0}]}const Ix={label:"Environments",url:Xi};function jB(){return[Wa,{label:"Environments",url:void 0}]}function CB(){return[Wa,{label:"New Chat",url:void 0}]}function EB(n){return[Wa,{label:`Session ${n.slice(0,8)}`,url:void 0}]}function AB(n,s,i,o){const c=i.find(d=>d.id===n),u=o.find(d=>d.id===s);return[Wa,Ix,{label:(u==null?void 0:u.displayName)??"Environment",url:Qi(s)},{label:(c==null?void 0:c.name)??"Workspace",url:void 0}]}function DB(n,s,i,o,c){const u=wB(n,c),d=c.get(n),m=d==null?void 0:d.workspaceId,h=m?i.find(S=>S.id===m):void 0,g=s??(h==null?void 0:h.environmentId),v=g?o.find(S=>S.id===g):void 0,b=[Wa];v&&g&&(b.push(Ix),b.push({label:v.displayName,url:Qi(g)})),h&&g&&b.push({label:h.name,url:Wi(h.id,g)});for(let S=0;S<u.length-1;S++)b.push({label:u[S].title,url:os(u[S].id,void 0,m,g)});const _=u[u.length-1];return b.push({label:(_==null?void 0:_.title)??n,url:void 0}),b}function im(n){const s=[];for(const i of n){const o=s[s.length-1];i.eventType==="text"&&(o==null?void 0:o.eventType)==="text"?s[s.length-1]={...o,content:o.content+i.content}:s.push(i)}return s}function om(n){const s=new Map;for(const u of n)if(u.raw)try{s.set(u,JSON.parse(u.raw))}catch{}const i=new Map;for(const u of n){if(u.eventType!=="tool_use")continue;const d=s.get(u);if(!(!d||typeof d.id!="string"))try{const m=JSON.parse(u.content);i.set(d.id,{tool:m.tool,args:m.args})}catch{}}const o=new Set;return n.map(u=>{if(u.eventType!=="tool_result")return u;const d=s.get(u);if(!d||typeof d.tool_use_id!="string")return u;const m=i.get(d.tool_use_id);if(!m)return u;o.add(d.tool_use_id);let h;const g=u.content.trim();if(g.startsWith("{"))try{const v=JSON.parse(g);typeof v.detailedContent=="string"&&(h=v.detailedContent)}catch{}return{...u,toolUseCtx:{...m,detailedResult:h}}}).filter(u=>{if(u.eventType!=="tool_use")return!0;const d=s.get(u);return d&&typeof d.id=="string"?!o.has(d.id):!0})}function RB(n,s,i){const o=n.filter(h=>h.status==="running"||h.status==="idle"||h.status==="waiting").length,c=Bx(s),u=s.filter(h=>cp(h,c)).length,d=s.filter(h=>h.status==="paused"||h.status==="failed"||cp(h,c)).length,m=i.filter(h=>h.status==="disconnected"||h.status==="error").length;return{activeSessions:o,blockedTasks:u,attentionTasks:d,unhealthyEnvironments:m}}function Bx(n){const s=new Map;for(const i of n)s.set(i.id,i.status);return s}function cp(n,s){return n.dependsOn.some(i=>s.get(i)!=="complete")}function MB(n,s){var d;const i=new Map;for(const m of s)i.set(m.id,m);const o=Bx(n),c=[];for(const m of n){const h=m.workspaceId?((d=i.get(m.workspaceId))==null?void 0:d.name)??"Unknown":"Unknown";m.status==="failed"?c.push({task:m,reason:"failed",workspaceName:h}):cp(m,o)?c.push({task:m,reason:"blocked",workspaceName:h}):m.status==="paused"&&c.push({task:m,reason:"paused",workspaceName:h})}const u={failed:0,blocked:1,paused:2};return c.sort((m,h)=>(u[m.reason]??3)-(u[h.reason]??3)),c}function OB(n,s){const i=new Map;for(const o of s)i.set(o.id,o);return n.filter(o=>o.status==="running"||o.status==="idle"||o.status==="waiting").map(o=>{var c;return{session:o,environmentName:((c=i.get(o.environmentId))==null?void 0:c.displayName)??"Unknown"}})}function IB(n,s,i){const o=new Map;for(const c of s){if(!c.workspaceId)continue;let u=o.get(c.workspaceId);u||(u={totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0},o.set(c.workspaceId,u)),u.totalTasks+=1,c.status==="complete"?u.completedTasks+=1:c.status==="working"?u.workingTasks+=1:c.status==="failed"&&(u.failedTasks+=1)}return n.map(c=>{const u=o.get(c.id)??{totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0};return{workspace:c,totalTasks:u.totalTasks,completedTasks:u.completedTasks,workingTasks:u.workingTasks,failedTasks:u.failedTasks}})}const ns=[{id:"kn-auth-flow",label:"Authentication Flow",kind:"knowledge",category:"concept",content:"The application uses JWT Bearer tokens for stateless authentication. Access tokens expire after 24h. Refresh tokens are stored in the database and rotated on use. The auth middleware verifies tokens and attaches the decoded payload to req.user.",tags:["auth","jwt","security"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:30:00Z",updatedAt:"2026-02-27T08:15:00Z",val:5},{id:"kn-db-schema",label:"Database Schema",kind:"knowledge",category:"concept",content:"PostgreSQL database with tables: users, sessions, refresh_tokens, audit_log. Uses UUID primary keys, TIMESTAMPTZ for all timestamps, and JSONB for flexible metadata columns. Connection pooling via pg-pool with per-tenant isolation.",tags:["database","postgres","schema"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:00:00Z",updatedAt:"2026-02-26T22:45:00Z",val:4},{id:"kn-error-handling",label:"Error Response Pattern",kind:"knowledge",category:"concept",content:"All API errors follow the shape { error: string, code: string, details?: unknown }. HTTP status codes map to: 400 (validation), 401 (unauthenticated), 403 (forbidden), 404 (not found), 409 (conflict), 429 (rate limited), 500 (internal).",tags:["api","errors","patterns"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:17:00Z",updatedAt:"2026-02-27T08:17:00Z",val:3},{id:"kn-rate-limiting",label:"Rate Limiting Strategy",kind:"knowledge",category:"concept",content:"Token-bucket algorithm with in-memory state per client IP. Default rate: 100 requests/minute, burst: 20. Returns 429 with Retry-After header. Redis adapter available for multi-instance deployments.",tags:["api","rate-limiting","infrastructure"],workspaceId:"proj-alpha",createdAt:"2026-02-27T09:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:2},{id:"kn-etl-pipeline",label:"ETL Pipeline Architecture",kind:"knowledge",category:"concept",content:"Data pipelines follow an Extract-Transform-Load pattern with pluggable stages. Each stage reads from a source (Postgres, S3, API), transforms via configurable mappers, and loads into a target (Parquet, BigQuery, S3). Incremental loads use high-watermark tracking.",tags:["etl","pipeline","architecture"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:05:00Z",val:4},{id:"kn-parquet-format",label:"Parquet Output Format",kind:"knowledge",category:"concept",content:"Parquet files are written with row-group buffering (configurable batch size, default 10000 rows). Supports Snappy, ZSTD, and GZIP compression. Schema is derived from the internal column type system using Arrow type mapping.",tags:["parquet","data-format","compression"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:05:00Z",updatedAt:"2026-02-26T08:15:00Z",val:3},{id:"kn-jwt-over-session",label:"JWT over Session Auth",kind:"knowledge",category:"decision",content:"Chose JWT tokens over server-side sessions for stateless auth. Rationale: (1) no session store needed, (2) works across microservices without shared state, (3) supports mobile clients natively. Trade-off: tokens can't be revoked instantly (mitigated by short expiry + refresh rotation).",tags:["auth","decision","jwt"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-25T10:00:00Z",val:3},{id:"kn-pg-pool-decision",label:"pg-pool over Knex",kind:"knowledge",category:"decision",content:"Chose pg-pool over Knex for connection pooling. pg-pool gives direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool and adds query-building overhead we don't need since we write raw SQL with parameterized queries.",tags:["database","decision","postgres"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:30:00Z",updatedAt:"2026-02-23T11:30:00Z",val:2},{id:"kn-watermark-decision",label:"Local Watermark Storage",kind:"knowledge",category:"decision",content:"Currently using local SQLite for watermark storage. This works for single-worker pipelines but needs to move to a shared store (Redis or Postgres) for production multi-worker scenarios. Tracked as a follow-up task.",tags:["pipeline","decision","watermarks"],workspaceId:"proj-beta",createdAt:"2026-02-27T09:05:00Z",updatedAt:"2026-02-27T09:05:00Z",val:2},{id:"kn-jwt-middleware",label:"JWT Verify Middleware",kind:"knowledge",category:"snippet",content:`\`\`\`typescript
63
63
  export function verifyToken(req: Request, res: Response, next: NextFunction): void {
64
64
  const header = req.headers.authorization;
65
65
  if (!header?.startsWith("Bearer ")) {
@@ -500,4 +500,4 @@ const grackle = await host.mcpServer({
500
500
  url: env.vars.GRACKLE_MCP_URL,
501
501
  });
502
502
 
503
- $\`Summarize the current tasks.\`;`,ariaLabel:"Persona script","data-testid":"persona-script-editor"})]}),E==="agent"&&l.jsxs("div",{children:[l.jsx("label",{children:"Allowed MCP Tools"}),l.jsx(qy,{selectedTools:F,onChange:I=>{Q(I);const Ne=I.length===0?["__clear__"]:I;me(()=>c(n.id,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Ne),()=>{},"MCP tools updated","Failed to update MCP tools").catch(()=>{})}})]})]}),!Se&&!we&&l.jsx("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-tertiary)",marginTop:"var(--space-xs)"},children:"Only agent personas with a runtime and model can be set as app default."})]}):null,l.jsx(Ja,{isOpen:ae,title:"Delete Persona?",description:`"${n==null?void 0:n.name}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:fe,onCancel:()=>pe(!1)})]})}function gU(){const{themeId:n,resolvedThemeId:s,setTheme:i,preferSystem:o,setPreferSystem:c}=Cx();return l.jsx(BI,{themeId:n,resolvedThemeId:s,onSetTheme:i,preferSystem:o,onSetPreferSystem:c})}function vU(){const[n,s]=y.useState(void 0);return y.useEffect(()=>{let i=!1;return ke.getVersionStatus({}).then(o=>{i||s({currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker})},()=>{}),()=>{i=!0}},[]),n}function yU(){const{connected:n,environments:s,sessions:i}=pt(),o=vU();return l.jsxs(l.Fragment,{children:[o&&l.jsx(zO,{currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker}),l.jsx(LI,{connected:n,environments:s,sessions:i})]})}function bU(){return l.jsx(M5,{})}const ab=ei();function _U(){const n=St();return Ms({key:"?"},()=>{n(G2)}),Ms({key:"n"},()=>{n(ab)}),Ms({key:"N"},()=>{n(ab)}),l.jsx(l.Fragment,{})}function Vc(n){const s=xB();y.useLayoutEffect(()=>(s(n),()=>{s(void 0)}),[n,s])}function xU(){const{workspaces:n,tasks:s}=pt(),i=y.useMemo(()=>l.jsx(hO,{workspaces:n,tasks:s}),[n,s]);return Vc(i),l.jsx(Qa,{})}function SU(){const{environments:n}=pt(),s=y.useMemo(()=>l.jsx(B6,{environments:n}),[n]);return Vc(s),l.jsx(Qa,{})}function TU(){const n=y.useMemo(()=>l.jsx(j4,{}),[]);return Vc(n),l.jsx(Qa,{})}function kU(){const{knowledge:n,workspaces:s}=pt(),i=y.useCallback(m=>{n.search(m)},[n]),o=y.useCallback(()=>{n.clearSearch()},[n]),c=y.useCallback(m=>{n.selectNode(m)},[n]),u=y.useCallback(m=>{n.loadRecent(m||void 0)},[n]),d=y.useMemo(()=>l.jsx(Y3,{nodes:n.graphData.nodes,workspaces:s,loading:n.loading,searchQuery:n.searchQuery,onSearch:i,onClearSearch:o,onSelectNode:c,onWorkspaceChange:u}),[n,s,i,o,c,u]);return Vc(d),l.jsx(Qa,{})}const wU="_wizard_1260s_1",NU="_container_1260s_10",jU="_stepContent_1260s_19",CU="_logoArea_1260s_28",EU="_logoImage_1260s_32",AU="_heading_1260s_41",DU="_tagline_1260s_49",RU="_subtitle_1260s_56",MU="_featureList_1260s_64",OU="_runtimeGrid_1260s_89",IU="_runtimeCard_1260s_101",BU="_runtimeName_1260s_133",LU="_runtimeDescription_1260s_139",UU="_buttonRow_1260s_144",zU="_primaryButton_1260s_151",PU="_ghostButton_1260s_185",VU="_dots_1260s_213",HU="_dot_1260s_213",rt={wizard:wU,container:NU,stepContent:jU,logoArea:CU,logoImage:EU,heading:AU,tagline:DU,subtitle:RU,featureList:MU,runtimeGrid:OU,runtimeCard:IU,runtimeName:BU,runtimeDescription:LU,buttonRow:UU,primaryButton:zU,ghostButton:PU,dots:VU,dot:HU};function qU({onNext:n}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-welcome",children:[l.jsx("div",{className:rt.logoArea,children:l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:rt.logoImage})}),l.jsx("h1",{className:rt.heading,children:"Welcome to Grackle"}),l.jsx("p",{className:rt.tagline,children:"Multi-agent orchestration for software teams"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-get-started",children:"Get Started"})]})}function GU({onNext:n,onBack:s}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-about",children:[l.jsx("h2",{className:rt.heading,children:"What is Grackle?"}),l.jsxs("ul",{className:rt.featureList,children:[l.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),l.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),l.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),l.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),l.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:s,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-about-next",children:"Next"})]})]})}const $U=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function FU({currentRuntime:n,onFinish:s,onBack:i,finishDisabled:o}){const[c,u]=y.useState(n||"claude-code");return y.useEffect(()=>{n&&u(n)},[n]),l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-runtime",children:[l.jsx("h2",{className:rt.heading,children:"Choose Your Runtime"}),l.jsx("p",{className:rt.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),l.jsx("div",{className:rt.runtimeGrid,children:$U.map(d=>l.jsxs("button",{type:"button",className:rt.runtimeCard,"data-selected":c===d.id,"aria-pressed":c===d.id,"data-testid":`runtime-card-${d.id}`,onClick:()=>u(d.id),children:[l.jsx("span",{className:rt.runtimeName,children:d.name}),l.jsx("span",{className:rt.runtimeDescription,children:d.description})]},d.id))}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:i,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:()=>{s(c)},disabled:o,"data-testid":"setup-finish",children:"Finish"})]})]})}const ZU=3,ib={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function KU(){const{personas:n,updatePersona:s,completeOnboarding:i,onboardingCompleted:o}=pt(),{showToast:c}=dn(),u=St(),[d,m]=y.useState(0),[h,g]=y.useState(!1),v=n.find(_=>_.id==="claude-code"),b=y.useCallback(_=>{g(!0);const S=[];if(v&&_!==v.runtime){const N=ib[_]??"sonnet";S.push(s(v.id,void 0,void 0,void 0,_,N))}const T=n.find(N=>N.id===n0);if(T&&_!==T.runtime){const N=ib[_]??"sonnet";S.push(s(n0,void 0,void 0,void 0,_,N))}Promise.all(S).then(()=>i()).then(()=>{u("/",{replace:!0})},()=>{c("Failed to update runtime -- please try again","error"),g(!1)})},[v,n,s,i,u,c]);return o===!0?l.jsx(Kn,{to:"/",replace:!0}):l.jsx("div",{className:rt.wizard,"data-testid":"setup-wizard",children:l.jsxs("div",{className:rt.container,children:[l.jsx(rs,{mode:"wait",children:l.jsxs(Ot.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[d===0&&l.jsx(qU,{onNext:()=>m(1)}),d===1&&l.jsx(GU,{onNext:()=>m(2),onBack:()=>m(0)}),d===2&&l.jsx(FU,{currentRuntime:(v==null?void 0:v.runtime)??"claude-code",onFinish:b,onBack:()=>m(1),finishDisabled:!v||h})]},d)}),l.jsx("div",{className:rt.dots,children:Array.from({length:ZU},(_,S)=>l.jsx("span",{className:rt.dot,"data-active":S===d},S))})]})})}const YU="_root_zndgp_1",JU="_body_zndgp_7",WU="_main_zndgp_19",XU="_sidebarWrapper_zndgp_26",QU="_overlay_zndgp_51",pr={root:YU,body:JU,main:WU,sidebarWrapper:XU,overlay:QU},ez=y.lazy(()=>wT(()=>import("./KnowledgePage-BIcDgOZa.js"),__vite__mapDeps([0,1,2,3,4])).then(n=>({default:n.KnowledgePage}))),Lx=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function tz(){const{connected:n,environments:s,sessions:i,tasks:o}=pt(),{toasts:c,dismissToast:u}=dn(),d=Lt(),m=_B(),h=m!==void 0,[g,v]=y.useState(!1),b=y.useCallback(()=>v(_=>!_),[]);return y.useEffect(()=>{v(!1)},[d.pathname]),y.useEffect(()=>{if(!g)return;const _=S=>{S.key==="Escape"&&v(!1)};return document.addEventListener("keydown",_),()=>{document.removeEventListener("keydown",_)}},[g]),l.jsxs(l.Fragment,{children:[l.jsx(i6,{connected:n,environments:s,sessions:i,onToggleSidebar:h?b:void 0,sidebarOpen:g}),l.jsx(f6,{}),l.jsxs("div",{className:pr.body,children:[h&&l.jsx("div",{className:pr.sidebarWrapper,"data-sidebar-open":g,children:l.jsx(y6,{content:m})}),h&&g&&l.jsx("div",{className:pr.overlay,"data-testid":"drawer-overlay",onClick:()=>v(!1)}),l.jsxs("div",{className:pr.main,children:[l.jsx(Qa,{}),l.jsx(N6,{sessions:i,tasks:o,environments:s})]})]}),l.jsx(CO,{toasts:c,onDismiss:u}),l.jsx(_U,{})]})}function nz(){const{lastSpawnedId:n,environments:s,tasks:i,connected:o,onboardingCompleted:c}=pt(),{showToast:u}=dn();gL(s,u),_L(i,u);const d=St(),m=Lt();return y.useEffect(()=>{n&&!m.pathname.includes("/tasks/")&&d(jb(n),{replace:!0})},[n,d,m.pathname]),o&&c===!1?l.jsx(Kn,{to:"/setup",replace:!0}):l.jsx(bB,{children:l.jsxs("div",{className:pr.root,children:[Lx&&l.jsx(bw,{}),l.jsx(tz,{})]})})}function Bf(){const{workspaceId:n}=va(),{workspaces:s}=pt(),i=Lt(),o=s.find(h=>h.id===n);if(!(o!=null&&o.environmentId))return s.length===0?void 0:l.jsx(Kn,{to:"/environments",replace:!0});const c=encodeURIComponent(n),u=`/workspaces/${c}`,d=i.pathname.startsWith(u)?i.pathname.slice(u.length):"",m=`/environments/${encodeURIComponent(o.environmentId)}/workspaces/${c}${d}${i.search}${i.hash}`;return l.jsx(Kn,{to:m,replace:!0})}function sz(){return l.jsxs(i2,{children:[l.jsx(je,{path:"setup",element:l.jsx(KU,{})}),l.jsxs(je,{element:l.jsx(nz,{}),children:[l.jsx(je,{index:!0,element:l.jsx(i8,{})}),l.jsx(je,{path:"chat",element:l.jsx(m8,{})}),l.jsx(je,{path:"sessions/new",element:l.jsx(h8,{})}),l.jsx(je,{path:"sessions/:sessionId",element:l.jsx(y8,{})}),l.jsx(je,{element:l.jsx(kU,{}),children:l.jsx(je,{path:"knowledge",element:l.jsx(y.Suspense,{fallback:l.jsx(ux,{}),children:l.jsx(ez,{})})})}),l.jsxs(je,{element:l.jsx(xU,{}),children:[l.jsx(je,{path:"tasks",element:l.jsx(s8,{})}),l.jsx(je,{path:"tasks/new",element:l.jsx(Qy,{})}),l.jsx(je,{path:"tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/findings",element:l.jsx(fa,{})})]}),l.jsxs(je,{element:l.jsx(SU,{}),children:[l.jsx(je,{path:"workspaces",element:l.jsx(Kn,{to:"/environments",replace:!0})}),l.jsx(je,{path:"workspaces/new",element:l.jsx(k8,{})}),l.jsx(je,{path:"workspaces/:workspaceId",element:l.jsx(Bf,{})}),l.jsx(je,{path:"workspaces/:workspaceId/tasks/:taskId",element:l.jsx(Bf,{})}),l.jsx(je,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:l.jsx(Bf,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId",element:l.jsx(x8,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:l.jsx(Qy,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:l.jsx(fa,{})}),l.jsxs(je,{path:"environments",element:l.jsx(O8,{}),children:[l.jsx(je,{index:!0,element:l.jsx(a8,{})}),l.jsx(je,{path:"new",element:l.jsx(E8,{})}),l.jsx(je,{path:":environmentId",element:l.jsx(lU,{})}),l.jsx(je,{path:":environmentId/edit",element:l.jsx(A8,{})})]})]}),l.jsx(je,{element:l.jsx(TU,{}),children:l.jsxs(je,{path:"settings",element:l.jsx(dU,{}),children:[l.jsx(je,{index:!0,element:l.jsx(Kn,{to:"credentials",replace:!0})}),l.jsx(je,{path:"environments",element:l.jsx(Kn,{to:"/environments",replace:!0})}),l.jsx(je,{path:"credentials",element:l.jsx(fU,{})}),l.jsx(je,{path:"tokens",element:l.jsx(Kn,{to:"../credentials",replace:!0})}),l.jsx(je,{path:"personas",element:l.jsx(pU,{})}),l.jsx(je,{path:"personas/new",element:l.jsx(sb,{})}),l.jsx(je,{path:"personas/:personaId",element:l.jsx(sb,{})}),l.jsx(je,{path:"appearance",element:l.jsx(gU,{})}),l.jsx(je,{path:"shortcuts",element:l.jsx(bU,{})}),l.jsx(je,{path:"about",element:l.jsx(yU,{})})]})}),l.jsx(je,{path:"*",element:l.jsx(Kn,{to:"/",replace:!0})})]})]})}const az=1e4;function iz(){const{onboardingCompleted:n}=pt(),[s,i]=y.useState(!1);y.useEffect(()=>{if(n!==void 0)return;const c=setTimeout(()=>i(!0),az);return()=>clearTimeout(c)},[n]);const o=n===void 0&&!s;return l.jsx(rs,{mode:"wait",children:o?l.jsx(Ot.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:l.jsx(ux,{})},"splash"):l.jsx(Ot.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:l.jsx(A2,{basename:"/".replace(/\/$/,""),children:l.jsx(sz,{})})},"app")})}function oz(){const n=Lx?$B:hL;return l.jsx(yB,{children:l.jsx(mB,{children:l.jsx(n,{children:l.jsx(iz,{})})})})}ST.createRoot(document.getElementById("root")).render(l.jsx(y.StrictMode,{children:l.jsx(oz,{})}));export{ya as B,Db as K,pt as a,jb as s,os as t,St as u};
503
+ $\`Summarize the current tasks.\`;`,ariaLabel:"Persona script","data-testid":"persona-script-editor"})]}),E==="agent"&&l.jsxs("div",{children:[l.jsx("label",{children:"Allowed MCP Tools"}),l.jsx(qy,{selectedTools:F,onChange:I=>{Q(I);const Ne=I.length===0?["__clear__"]:I;me(()=>c(n.id,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Ne),()=>{},"MCP tools updated","Failed to update MCP tools").catch(()=>{})}})]})]}),!Se&&!we&&l.jsx("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-tertiary)",marginTop:"var(--space-xs)"},children:"Only agent personas with a runtime and model can be set as app default."})]}):null,l.jsx(Ja,{isOpen:ae,title:"Delete Persona?",description:`"${n==null?void 0:n.name}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:fe,onCancel:()=>pe(!1)})]})}function gU(){const{themeId:n,resolvedThemeId:s,setTheme:i,preferSystem:o,setPreferSystem:c}=Cx();return l.jsx(BI,{themeId:n,resolvedThemeId:s,onSetTheme:i,preferSystem:o,onSetPreferSystem:c})}function vU(){const[n,s]=y.useState(void 0);return y.useEffect(()=>{let i=!1;return ke.getVersionStatus({}).then(o=>{i||s({currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker})},()=>{}),()=>{i=!0}},[]),n}function yU(){const{connected:n,environments:s,sessions:i}=pt(),o=vU();return l.jsxs(l.Fragment,{children:[o&&l.jsx(zO,{currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker}),l.jsx(LI,{connected:n,environments:s,sessions:i})]})}function bU(){return l.jsx(M5,{})}const ab=ei();function _U(){const n=St();return Ms({key:"?"},()=>{n(G2)}),Ms({key:"n"},()=>{n(ab)}),Ms({key:"N"},()=>{n(ab)}),l.jsx(l.Fragment,{})}function Vc(n){const s=xB();y.useLayoutEffect(()=>(s(n),()=>{s(void 0)}),[n,s])}function xU(){const{workspaces:n,tasks:s}=pt(),i=y.useMemo(()=>l.jsx(hO,{workspaces:n,tasks:s}),[n,s]);return Vc(i),l.jsx(Qa,{})}function SU(){const{environments:n}=pt(),s=y.useMemo(()=>l.jsx(B6,{environments:n}),[n]);return Vc(s),l.jsx(Qa,{})}function TU(){const n=y.useMemo(()=>l.jsx(j4,{}),[]);return Vc(n),l.jsx(Qa,{})}function kU(){const{knowledge:n,workspaces:s}=pt(),i=y.useCallback(m=>{n.search(m)},[n]),o=y.useCallback(()=>{n.clearSearch()},[n]),c=y.useCallback(m=>{n.selectNode(m)},[n]),u=y.useCallback(m=>{n.loadRecent(m||void 0)},[n]),d=y.useMemo(()=>l.jsx(Y3,{nodes:n.graphData.nodes,workspaces:s,loading:n.loading,searchQuery:n.searchQuery,onSearch:i,onClearSearch:o,onSelectNode:c,onWorkspaceChange:u}),[n,s,i,o,c,u]);return Vc(d),l.jsx(Qa,{})}const wU="_wizard_1260s_1",NU="_container_1260s_10",jU="_stepContent_1260s_19",CU="_logoArea_1260s_28",EU="_logoImage_1260s_32",AU="_heading_1260s_41",DU="_tagline_1260s_49",RU="_subtitle_1260s_56",MU="_featureList_1260s_64",OU="_runtimeGrid_1260s_89",IU="_runtimeCard_1260s_101",BU="_runtimeName_1260s_133",LU="_runtimeDescription_1260s_139",UU="_buttonRow_1260s_144",zU="_primaryButton_1260s_151",PU="_ghostButton_1260s_185",VU="_dots_1260s_213",HU="_dot_1260s_213",rt={wizard:wU,container:NU,stepContent:jU,logoArea:CU,logoImage:EU,heading:AU,tagline:DU,subtitle:RU,featureList:MU,runtimeGrid:OU,runtimeCard:IU,runtimeName:BU,runtimeDescription:LU,buttonRow:UU,primaryButton:zU,ghostButton:PU,dots:VU,dot:HU};function qU({onNext:n}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-welcome",children:[l.jsx("div",{className:rt.logoArea,children:l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:rt.logoImage})}),l.jsx("h1",{className:rt.heading,children:"Welcome to Grackle"}),l.jsx("p",{className:rt.tagline,children:"Multi-agent orchestration for software teams"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-get-started",children:"Get Started"})]})}function GU({onNext:n,onBack:s}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-about",children:[l.jsx("h2",{className:rt.heading,children:"What is Grackle?"}),l.jsxs("ul",{className:rt.featureList,children:[l.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),l.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),l.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),l.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),l.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:s,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-about-next",children:"Next"})]})]})}const $U=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function FU({currentRuntime:n,onFinish:s,onBack:i,finishDisabled:o}){const[c,u]=y.useState(n||"claude-code");return y.useEffect(()=>{n&&u(n)},[n]),l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-runtime",children:[l.jsx("h2",{className:rt.heading,children:"Choose Your Runtime"}),l.jsx("p",{className:rt.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),l.jsx("div",{className:rt.runtimeGrid,children:$U.map(d=>l.jsxs("button",{type:"button",className:rt.runtimeCard,"data-selected":c===d.id,"aria-pressed":c===d.id,"data-testid":`runtime-card-${d.id}`,onClick:()=>u(d.id),children:[l.jsx("span",{className:rt.runtimeName,children:d.name}),l.jsx("span",{className:rt.runtimeDescription,children:d.description})]},d.id))}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:i,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:()=>{s(c)},disabled:o,"data-testid":"setup-finish",children:"Finish"})]})]})}const ZU=3,ib={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function KU(){const{personas:n,updatePersona:s,completeOnboarding:i,onboardingCompleted:o}=pt(),{showToast:c}=dn(),u=St(),[d,m]=y.useState(0),[h,g]=y.useState(!1),v=n.find(_=>_.id==="claude-code"),b=y.useCallback(_=>{g(!0);const S=[];if(v&&_!==v.runtime){const N=ib[_]??"sonnet";S.push(s(v.id,void 0,void 0,void 0,_,N))}const T=n.find(N=>N.id===n0);if(T&&_!==T.runtime){const N=ib[_]??"sonnet";S.push(s(n0,void 0,void 0,void 0,_,N))}Promise.all(S).then(()=>i()).then(()=>{u("/",{replace:!0})},()=>{c("Failed to update runtime -- please try again","error"),g(!1)})},[v,n,s,i,u,c]);return o===!0?l.jsx(Kn,{to:"/",replace:!0}):l.jsx("div",{className:rt.wizard,"data-testid":"setup-wizard",children:l.jsxs("div",{className:rt.container,children:[l.jsx(rs,{mode:"wait",children:l.jsxs(Ot.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[d===0&&l.jsx(qU,{onNext:()=>m(1)}),d===1&&l.jsx(GU,{onNext:()=>m(2),onBack:()=>m(0)}),d===2&&l.jsx(FU,{currentRuntime:(v==null?void 0:v.runtime)??"claude-code",onFinish:b,onBack:()=>m(1),finishDisabled:!v||h})]},d)}),l.jsx("div",{className:rt.dots,children:Array.from({length:ZU},(_,S)=>l.jsx("span",{className:rt.dot,"data-active":S===d},S))})]})})}const YU="_root_zndgp_1",JU="_body_zndgp_7",WU="_main_zndgp_19",XU="_sidebarWrapper_zndgp_26",QU="_overlay_zndgp_51",pr={root:YU,body:JU,main:WU,sidebarWrapper:XU,overlay:QU},ez=y.lazy(()=>wT(()=>import("./KnowledgePage-D2RhOFV4.js"),__vite__mapDeps([0,1,2,3,4])).then(n=>({default:n.KnowledgePage}))),Lx=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function tz(){const{connected:n,environments:s,sessions:i,tasks:o}=pt(),{toasts:c,dismissToast:u}=dn(),d=Lt(),m=_B(),h=m!==void 0,[g,v]=y.useState(!1),b=y.useCallback(()=>v(_=>!_),[]);return y.useEffect(()=>{v(!1)},[d.pathname]),y.useEffect(()=>{if(!g)return;const _=S=>{S.key==="Escape"&&v(!1)};return document.addEventListener("keydown",_),()=>{document.removeEventListener("keydown",_)}},[g]),l.jsxs(l.Fragment,{children:[l.jsx(i6,{connected:n,environments:s,sessions:i,onToggleSidebar:h?b:void 0,sidebarOpen:g}),l.jsx(f6,{}),l.jsxs("div",{className:pr.body,children:[h&&l.jsx("div",{className:pr.sidebarWrapper,"data-sidebar-open":g,children:l.jsx(y6,{content:m})}),h&&g&&l.jsx("div",{className:pr.overlay,"data-testid":"drawer-overlay",onClick:()=>v(!1)}),l.jsxs("div",{className:pr.main,children:[l.jsx(Qa,{}),l.jsx(N6,{sessions:i,tasks:o,environments:s})]})]}),l.jsx(CO,{toasts:c,onDismiss:u}),l.jsx(_U,{})]})}function nz(){const{lastSpawnedId:n,environments:s,tasks:i,connected:o,onboardingCompleted:c}=pt(),{showToast:u}=dn();gL(s,u),_L(i,u);const d=St(),m=Lt();return y.useEffect(()=>{n&&!m.pathname.includes("/tasks/")&&d(jb(n),{replace:!0})},[n,d,m.pathname]),o&&c===!1?l.jsx(Kn,{to:"/setup",replace:!0}):l.jsx(bB,{children:l.jsxs("div",{className:pr.root,children:[Lx&&l.jsx(bw,{}),l.jsx(tz,{})]})})}function Bf(){const{workspaceId:n}=va(),{workspaces:s}=pt(),i=Lt(),o=s.find(h=>h.id===n);if(!(o!=null&&o.environmentId))return s.length===0?void 0:l.jsx(Kn,{to:"/environments",replace:!0});const c=encodeURIComponent(n),u=`/workspaces/${c}`,d=i.pathname.startsWith(u)?i.pathname.slice(u.length):"",m=`/environments/${encodeURIComponent(o.environmentId)}/workspaces/${c}${d}${i.search}${i.hash}`;return l.jsx(Kn,{to:m,replace:!0})}function sz(){return l.jsxs(i2,{children:[l.jsx(je,{path:"setup",element:l.jsx(KU,{})}),l.jsxs(je,{element:l.jsx(nz,{}),children:[l.jsx(je,{index:!0,element:l.jsx(i8,{})}),l.jsx(je,{path:"chat",element:l.jsx(m8,{})}),l.jsx(je,{path:"sessions/new",element:l.jsx(h8,{})}),l.jsx(je,{path:"sessions/:sessionId",element:l.jsx(y8,{})}),l.jsx(je,{element:l.jsx(kU,{}),children:l.jsx(je,{path:"knowledge",element:l.jsx(y.Suspense,{fallback:l.jsx(ux,{}),children:l.jsx(ez,{})})})}),l.jsxs(je,{element:l.jsx(xU,{}),children:[l.jsx(je,{path:"tasks",element:l.jsx(s8,{})}),l.jsx(je,{path:"tasks/new",element:l.jsx(Qy,{})}),l.jsx(je,{path:"tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(je,{path:"tasks/:taskId/findings",element:l.jsx(fa,{})})]}),l.jsxs(je,{element:l.jsx(SU,{}),children:[l.jsx(je,{path:"workspaces",element:l.jsx(Kn,{to:"/environments",replace:!0})}),l.jsx(je,{path:"workspaces/new",element:l.jsx(k8,{})}),l.jsx(je,{path:"workspaces/:workspaceId",element:l.jsx(Bf,{})}),l.jsx(je,{path:"workspaces/:workspaceId/tasks/:taskId",element:l.jsx(Bf,{})}),l.jsx(je,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:l.jsx(Bf,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId",element:l.jsx(x8,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:l.jsx(Qy,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(je,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:l.jsx(fa,{})}),l.jsxs(je,{path:"environments",element:l.jsx(O8,{}),children:[l.jsx(je,{index:!0,element:l.jsx(a8,{})}),l.jsx(je,{path:"new",element:l.jsx(E8,{})}),l.jsx(je,{path:":environmentId",element:l.jsx(lU,{})}),l.jsx(je,{path:":environmentId/edit",element:l.jsx(A8,{})})]})]}),l.jsx(je,{element:l.jsx(TU,{}),children:l.jsxs(je,{path:"settings",element:l.jsx(dU,{}),children:[l.jsx(je,{index:!0,element:l.jsx(Kn,{to:"credentials",replace:!0})}),l.jsx(je,{path:"environments",element:l.jsx(Kn,{to:"/environments",replace:!0})}),l.jsx(je,{path:"credentials",element:l.jsx(fU,{})}),l.jsx(je,{path:"tokens",element:l.jsx(Kn,{to:"../credentials",replace:!0})}),l.jsx(je,{path:"personas",element:l.jsx(pU,{})}),l.jsx(je,{path:"personas/new",element:l.jsx(sb,{})}),l.jsx(je,{path:"personas/:personaId",element:l.jsx(sb,{})}),l.jsx(je,{path:"appearance",element:l.jsx(gU,{})}),l.jsx(je,{path:"shortcuts",element:l.jsx(bU,{})}),l.jsx(je,{path:"about",element:l.jsx(yU,{})})]})}),l.jsx(je,{path:"*",element:l.jsx(Kn,{to:"/",replace:!0})})]})]})}const az=1e4;function iz(){const{onboardingCompleted:n}=pt(),[s,i]=y.useState(!1);y.useEffect(()=>{if(n!==void 0)return;const c=setTimeout(()=>i(!0),az);return()=>clearTimeout(c)},[n]);const o=n===void 0&&!s;return l.jsx(rs,{mode:"wait",children:o?l.jsx(Ot.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:l.jsx(ux,{})},"splash"):l.jsx(Ot.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:l.jsx(A2,{basename:"/".replace(/\/$/,""),children:l.jsx(sz,{})})},"app")})}function oz(){const n=Lx?$B:hL;return l.jsx(yB,{children:l.jsx(mB,{children:l.jsx(n,{children:l.jsx(iz,{})})})})}ST.createRoot(document.getElementById("root")).render(l.jsx(y.StrictMode,{children:l.jsx(oz,{})}));export{ya as B,Db as K,pt as a,jb as s,os as t,St as u};