@ai-sdk/devtools 1.0.0-canary.21 → 1.0.0-canary.22

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.
@@ -178,4 +178,4 @@ If you want to hide the \`${l.titleName}\`, you can wrap it with our VisuallyHid
178
178
 
179
179
  For more information, see https://radix-ui.com/primitives/docs/components/${l.docsSlug}`;return w.useEffect(()=>{n&&(document.getElementById(n)||console.error(o))},[o,n]),null},xS="DialogDescriptionWarning",wS=({contentRef:n,descriptionId:l})=>{const s=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${bh(xS).contentName}}.`;return w.useEffect(()=>{var c;const u=(c=n.current)==null?void 0:c.getAttribute("aria-describedby");l&&u&&(document.getElementById(l)||console.warn(s))},[s,n,l]),null},SS=ch,bS=fh,CS=mh,kS=hh,ES=gh,NS=yh;function jS(n){if(typeof document>"u")return;let l=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",l.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}const Ch=oe.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),pl=()=>{const n=oe.useContext(Ch);if(!n)throw new Error("useDrawerContext must be used within a Drawer.Root");return n};jS(`[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(
180
180
  [data-state=closed]
181
- ){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}`);function RS(){const n=navigator.userAgent;return typeof window<"u"&&(/Firefox/.test(n)&&/Mobile/.test(n)||/FxiOS/.test(n))}function TS(){return qu(/^Mac/)}function PS(){return qu(/^iPhone/)}function Np(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function _S(){return qu(/^iPad/)||TS()&&navigator.maxTouchPoints>1}function kh(){return PS()||_S()}function qu(n){return typeof window<"u"&&window.navigator!=null?n.test(window.navigator.platform):void 0}const AS=24,OS=typeof window<"u"?w.useLayoutEffect:w.useEffect;function jp(...n){return(...l)=>{for(let o of n)typeof o=="function"&&o(...l)}}const du=typeof document<"u"&&window.visualViewport;function Rp(n){let l=window.getComputedStyle(n);return/(auto|scroll)/.test(l.overflow+l.overflowX+l.overflowY)}function Eh(n){for(Rp(n)&&(n=n.parentElement);n&&!Rp(n);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}const MS=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let Mi=0,fu;function DS(n={}){let{isDisabled:l}=n;OS(()=>{if(!l)return Mi++,Mi===1&&kh()&&(fu=LS()),()=>{Mi--,Mi===0&&(fu==null||fu())}},[l])}function LS(){let n,l=0,o=x=>{n=Eh(x.target),!(n===document.documentElement&&n===document.body)&&(l=x.changedTouches[0].pageY)},s=x=>{if(!n||n===document.documentElement||n===document.body){x.preventDefault();return}let S=x.changedTouches[0].pageY,C=n.scrollTop,P=n.scrollHeight-n.clientHeight;P!==0&&((C<=0&&S>l||C>=P&&S<l)&&x.preventDefault(),l=S)},u=x=>{let S=x.target;ku(S)&&S!==document.activeElement&&(x.preventDefault(),S.style.transform="translateY(-2000px)",S.focus(),requestAnimationFrame(()=>{S.style.transform=""}))},c=x=>{let S=x.target;ku(S)&&(S.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{S.style.transform="",du&&(du.height<window.innerHeight?requestAnimationFrame(()=>{Tp(S)}):du.addEventListener("resize",()=>Tp(S),{once:!0}))}))},p=()=>{window.scrollTo(0,0)},m=window.pageXOffset,h=window.pageYOffset,y=jp(zS(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`));window.scrollTo(0,0);let v=jp(nl(document,"touchstart",o,{passive:!1,capture:!0}),nl(document,"touchmove",s,{passive:!1,capture:!0}),nl(document,"touchend",u,{passive:!1,capture:!0}),nl(document,"focus",c,!0),nl(window,"scroll",p));return()=>{y(),v(),window.scrollTo(m,h)}}function zS(n,l,o){let s=n.style[l];return n.style[l]=o,()=>{n.style[l]=s}}function nl(n,l,o,s){return n.addEventListener(l,o,s),()=>{n.removeEventListener(l,o,s)}}function Tp(n){let l=document.scrollingElement||document.documentElement;for(;n&&n!==l;){let o=Eh(n);if(o!==document.documentElement&&o!==document.body&&o!==n){let s=o.getBoundingClientRect().top,u=n.getBoundingClientRect().top,c=n.getBoundingClientRect().bottom;const p=o.getBoundingClientRect().bottom+AS;c>p&&(o.scrollTop+=u-s)}n=o.parentElement}}function ku(n){return n instanceof HTMLInputElement&&!MS.has(n.type)||n instanceof HTMLTextAreaElement||n instanceof HTMLElement&&n.isContentEditable}function IS(n,l){typeof n=="function"?n(l):n!=null&&(n.current=l)}function $S(...n){return l=>n.forEach(o=>IS(o,l))}function Nh(...n){return w.useCallback($S(...n),n)}const jh=new WeakMap;function Ze(n,l,o=!1){if(!n||!(n instanceof HTMLElement))return;let s={};Object.entries(l).forEach(([u,c])=>{if(u.startsWith("--")){n.style.setProperty(u,c);return}s[u]=n.style[u],n.style[u]=c}),!o&&jh.set(n,s)}function FS(n,l){if(!n||!(n instanceof HTMLElement))return;let o=jh.get(n);o&&(n.style[l]=o[l])}const Xe=n=>{switch(n){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return n}};function Di(n,l){if(!n)return null;const o=window.getComputedStyle(n),s=o.transform||o.webkitTransform||o.mozTransform;let u=s.match(/^matrix3d\((.+)\)$/);return u?parseFloat(u[1].split(", ")[Xe(l)?13:12]):(u=s.match(/^matrix\((.+)\)$/),u?parseFloat(u[1].split(", ")[Xe(l)?5:4]):null)}function WS(n){return 8*(Math.log(n+1)-2)}function pu(n,l){if(!n)return()=>{};const o=n.style.cssText;return Object.assign(n.style,l),()=>{n.style.cssText=o}}function BS(...n){return(...l)=>{for(const o of n)typeof o=="function"&&o(...l)}}const Fe={DURATION:.5,EASE:[.32,.72,0,1]},Rh=.4,HS=.25,VS=100,Th=8,Li=16,Eu=26,mu="vaul-dragging";function Ph(n){const l=oe.useRef(n);return oe.useEffect(()=>{l.current=n}),oe.useMemo(()=>(...o)=>l.current==null?void 0:l.current.call(l,...o),[])}function US({defaultProp:n,onChange:l}){const o=oe.useState(n),[s]=o,u=oe.useRef(s),c=Ph(l);return oe.useEffect(()=>{u.current!==s&&(c(s),u.current=s)},[s,u,c]),o}function _h({prop:n,defaultProp:l,onChange:o=()=>{}}){const[s,u]=US({defaultProp:l,onChange:o}),c=n!==void 0,p=c?n:s,m=Ph(o),h=oe.useCallback(y=>{if(c){const x=typeof y=="function"?y(n):y;x!==n&&m(x)}else u(y)},[c,n,u,m]);return[p,h]}function YS({activeSnapPointProp:n,setActiveSnapPointProp:l,snapPoints:o,drawerRef:s,overlayRef:u,fadeFromIndex:c,onSnapPointChange:p,direction:m="bottom",container:h,snapToSequentialPoint:y}){const[v,x]=_h({prop:n,defaultProp:o==null?void 0:o[0],onChange:l}),[S,C]=oe.useState(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);oe.useEffect(()=>{function L(){C({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",L),()=>window.removeEventListener("resize",L)},[]);const P=oe.useMemo(()=>v===(o==null?void 0:o[o.length-1])||null,[o,v]),k=oe.useMemo(()=>{var L;return(L=o==null?void 0:o.findIndex(R=>R===v))!=null?L:null},[o,v]),E=o&&o.length>0&&(c||c===0)&&!Number.isNaN(c)&&o[c]===v||!o,A=oe.useMemo(()=>{const L=h?{width:h.getBoundingClientRect().width,height:h.getBoundingClientRect().height}:typeof window<"u"?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};var R;return(R=o==null?void 0:o.map(W=>{const Q=typeof W=="string";let ee=0;if(Q&&(ee=parseInt(W,10)),Xe(m)){const U=Q?ee:S?W*L.height:0;return S?m==="bottom"?L.height-U:-L.height+U:U}const ce=Q?ee:S?W*L.width:0;return S?m==="right"?L.width-ce:-L.width+ce:ce}))!=null?R:[]},[o,S,h]),D=oe.useMemo(()=>k!==null?A==null?void 0:A[k]:null,[A,k]),$=oe.useCallback(L=>{var R;const W=(R=A==null?void 0:A.findIndex(Q=>Q===L))!=null?R:null;p(W),Ze(s.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(m)?`translate3d(0, ${L}px, 0)`:`translate3d(${L}px, 0, 0)`}),A&&W!==A.length-1&&c!==void 0&&W!==c&&W<c?Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"0"}):Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"1"}),x(o==null?void 0:o[Math.max(W,0)])},[s.current,o,A,c,u,x]);oe.useEffect(()=>{if(v||n){var L;const R=(L=o==null?void 0:o.findIndex(W=>W===n||W===v))!=null?L:-1;A&&R!==-1&&typeof A[R]=="number"&&$(A[R])}},[v,n,o,A,$]);function N({draggedDistance:L,closeDrawer:R,velocity:W,dismissible:Q}){if(c===void 0)return;const ee=m==="bottom"||m==="right"?(D??0)-L:(D??0)+L,ce=k===c-1,U=k===0,q=L>0;if(ce&&Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`}),!y&&W>2&&!q){Q?R():$(A[0]);return}if(!y&&W>2&&q&&A&&o){$(A[o.length-1]);return}const te=A==null?void 0:A.reduce((ne,B)=>typeof ne!="number"||typeof B!="number"?ne:Math.abs(B-ee)<Math.abs(ne-ee)?B:ne),J=Xe(m)?window.innerHeight:window.innerWidth;if(W>Rh&&Math.abs(L)<J*.4){const ne=q?1:-1;if(ne>0&&P&&o){$(A[o.length-1]);return}if(U&&ne<0&&Q&&R(),k===null)return;$(A[k+ne]);return}$(te)}function F({draggedDistance:L}){if(D===null)return;const R=m==="bottom"||m==="right"?D-L:D+L;(m==="bottom"||m==="right")&&R<A[A.length-1]||(m==="top"||m==="left")&&R>A[A.length-1]||Ze(s.current,{transform:Xe(m)?`translate3d(0, ${R}px, 0)`:`translate3d(${R}px, 0, 0)`})}function V(L,R){if(!o||typeof k!="number"||!A||c===void 0)return null;const W=k===c-1;if(k>=c&&R)return 0;if(W&&!R)return 1;if(!E&&!W)return null;const ee=W?k+1:k-1,ce=W?A[ee]-A[ee-1]:A[ee+1]-A[ee],U=L/Math.abs(ce);return W?1-U:U}return{isLastSnapPoint:P,activeSnapPoint:v,shouldFade:E,getPercentageDragged:V,setActiveSnapPoint:x,activeSnapPointIndex:k,onRelease:N,onDrag:F,snapPointsOffset:A}}const XS=()=>()=>{};function QS(){const{direction:n,isOpen:l,shouldScaleBackground:o,setBackgroundColorOnScale:s,noBodyStyles:u}=pl(),c=oe.useRef(null),p=w.useMemo(()=>document.body.style.backgroundColor,[]);function m(){return(window.innerWidth-Eu)/window.innerWidth}oe.useEffect(()=>{if(l&&o){c.current&&clearTimeout(c.current);const h=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!h)return;BS(s&&!u?pu(document.body,{background:"black"}):XS,pu(h,{transformOrigin:Xe(n)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${Fe.DURATION}s`,transitionTimingFunction:`cubic-bezier(${Fe.EASE.join(",")})`}));const y=pu(h,{borderRadius:`${Th}px`,overflow:"hidden",...Xe(n)?{transform:`scale(${m()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${m()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{y(),c.current=window.setTimeout(()=>{p?document.body.style.background=p:document.body.style.removeProperty("background")},Fe.DURATION*1e3)}}},[l,o,p])}let rl=null;function GS({isOpen:n,modal:l,nested:o,hasBeenOpened:s,preventScrollRestoration:u,noBodyStyles:c}){const[p,m]=oe.useState(()=>typeof window<"u"?window.location.href:""),h=oe.useRef(0),y=oe.useCallback(()=>{if(Np()&&rl===null&&n&&!c){rl={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};const{scrollX:x,innerHeight:S}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-h.current}px`,left:`${-x}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{const C=S-window.innerHeight;C&&h.current>=S&&(document.body.style.top=`${-(h.current+C)}px`)}),300)}},[n]),v=oe.useCallback(()=>{if(Np()&&rl!==null&&!c){const x=-parseInt(document.body.style.top,10),S=-parseInt(document.body.style.left,10);Object.assign(document.body.style,rl),window.requestAnimationFrame(()=>{if(u&&p!==window.location.href){m(window.location.href);return}window.scrollTo(S,x)}),rl=null}},[p]);return oe.useEffect(()=>{function x(){h.current=window.scrollY}return x(),window.addEventListener("scroll",x),()=>{window.removeEventListener("scroll",x)}},[]),oe.useEffect(()=>{if(l)return()=>{typeof document>"u"||document.querySelector("[data-vaul-drawer]")||v()}},[l,v]),oe.useEffect(()=>{o||!s||(n?(!window.matchMedia("(display-mode: standalone)").matches&&y(),l||window.setTimeout(()=>{v()},500)):v())},[n,s,p,l,o,y,v]),{restorePositionSetting:v}}function KS({open:n,onOpenChange:l,children:o,onDrag:s,onRelease:u,snapPoints:c,shouldScaleBackground:p=!1,setBackgroundColorOnScale:m=!0,closeThreshold:h=HS,scrollLockTimeout:y=VS,dismissible:v=!0,handleOnly:x=!1,fadeFromIndex:S=c&&c.length-1,activeSnapPoint:C,setActiveSnapPoint:P,fixed:k,modal:E=!0,onClose:A,nested:D,noBodyStyles:$=!1,direction:N="bottom",defaultOpen:F=!1,disablePreventScroll:V=!0,snapToSequentialPoint:L=!1,preventScrollRestoration:R=!1,repositionInputs:W=!0,onAnimationEnd:Q,container:ee,autoFocus:ce=!1}){var U,q;const[te=!1,J]=_h({defaultProp:F,prop:n,onChange:ye=>{l==null||l(ye),!ye&&!D&&ho(),setTimeout(()=>{Q==null||Q(ye)},Fe.DURATION*1e3),ye&&!E&&typeof window<"u"&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),ye||(document.body.style.pointerEvents="auto")}}),[ne,B]=oe.useState(!1),[K,I]=oe.useState(!1),[_,H]=oe.useState(!1),fe=oe.useRef(null),we=oe.useRef(null),pe=oe.useRef(null),me=oe.useRef(null),Ce=oe.useRef(null),be=oe.useRef(!1),xe=oe.useRef(null),ze=oe.useRef(0),Qe=oe.useRef(!1),Ct=oe.useRef(!F),ot=oe.useRef(0),he=oe.useRef(null),ir=oe.useRef(((U=he.current)==null?void 0:U.getBoundingClientRect().height)||0),sr=oe.useRef(((q=he.current)==null?void 0:q.getBoundingClientRect().width)||0),hn=oe.useRef(0),Rr=oe.useCallback(ye=>{c&&ye===Tn.length-1&&(we.current=new Date)},[]),{activeSnapPoint:en,activeSnapPointIndex:_t,setActiveSnapPoint:gn,onRelease:po,snapPointsOffset:Tn,onDrag:ml,shouldFade:mo,getPercentageDragged:hl}=YS({snapPoints:c,activeSnapPointProp:C,setActiveSnapPointProp:P,drawerRef:he,fadeFromIndex:S,overlayRef:fe,onSnapPointChange:Rr,direction:N,container:ee,snapToSequentialPoint:L});DS({isDisabled:!te||K||!E||_||!ne||!W||!V});const{restorePositionSetting:ho}=GS({isOpen:te,modal:E,nested:D??!1,hasBeenOpened:ne,preventScrollRestoration:R,noBodyStyles:$});function vn(){return(window.innerWidth-Eu)/window.innerWidth}function gl(ye){var je,Re;!v&&!c||he.current&&!he.current.contains(ye.target)||(ir.current=((je=he.current)==null?void 0:je.getBoundingClientRect().height)||0,sr.current=((Re=he.current)==null?void 0:Re.getBoundingClientRect().width)||0,I(!0),pe.current=new Date,kh()&&window.addEventListener("touchend",()=>be.current=!1,{once:!0}),ye.target.setPointerCapture(ye.pointerId),ze.current=Xe(N)?ye.pageY:ye.pageX)}function Pn(ye,je){var Re;let ke=ye;const De=(Re=window.getSelection())==null?void 0:Re.toString(),lt=he.current?Di(he.current,N):null,Je=new Date;if(ke.tagName==="SELECT"||ke.hasAttribute("data-vaul-no-drag")||ke.closest("[data-vaul-no-drag]"))return!1;if(N==="right"||N==="left")return!0;if(we.current&&Je.getTime()-we.current.getTime()<500)return!1;if(lt!==null&&(N==="bottom"?lt>0:lt<0))return!0;if(De&&De.length>0)return!1;if(Ce.current&&Je.getTime()-Ce.current.getTime()<y&&lt===0||je)return Ce.current=Je,!1;for(;ke;){if(ke.scrollHeight>ke.clientHeight){if(ke.scrollTop!==0)return Ce.current=new Date,!1;if(ke.getAttribute("role")==="dialog")return!0}ke=ke.parentNode}return!0}function ar(ye){if(he.current&&K){const je=N==="bottom"||N==="right"?1:-1,Re=(ze.current-(Xe(N)?ye.pageY:ye.pageX))*je,ke=Re>0,De=c&&!v&&!ke;if(De&&_t===0)return;const lt=Math.abs(Re),Je=document.querySelector("[data-vaul-drawer-wrapper]"),Ft=N==="bottom"||N==="top"?ir.current:sr.current;let gt=lt/Ft;const Wt=hl(lt,ke);if(Wt!==null&&(gt=Wt),De&&gt>=1||!be.current&&!Pn(ye.target,ke))return;if(he.current.classList.add(mu),be.current=!0,Ze(he.current,{transition:"none"}),Ze(fe.current,{transition:"none"}),c&&ml({draggedDistance:Re}),ke&&!c){const at=WS(Re),_n=Math.min(at*-1,0)*je;Ze(he.current,{transform:Xe(N)?`translate3d(0, ${_n}px, 0)`:`translate3d(${_n}px, 0, 0)`});return}const Bt=1-gt;if((mo||S&&_t===S-1)&&(s==null||s(ye,gt),Ze(fe.current,{opacity:`${Bt}`,transition:"none"},!0)),Je&&fe.current&&p){const at=Math.min(vn()+gt*(1-vn()),1),_n=8-gt*8,An=Math.max(0,14-gt*14);Ze(Je,{borderRadius:`${_n}px`,transform:Xe(N)?`scale(${at}) translate3d(0, ${An}px, 0)`:`scale(${at}) translate3d(${An}px, 0, 0)`,transition:"none"},!0)}if(!c){const at=lt*je;Ze(he.current,{transform:Xe(N)?`translate3d(0, ${at}px, 0)`:`translate3d(${at}px, 0, 0)`})}}}oe.useEffect(()=>{window.requestAnimationFrame(()=>{Ct.current=!0})},[]),oe.useEffect(()=>{var ye;function je(){if(!he.current||!W)return;const Re=document.activeElement;if(ku(Re)||Qe.current){var ke;const De=((ke=window.visualViewport)==null?void 0:ke.height)||0,lt=window.innerHeight;let Je=lt-De;const Ft=he.current.getBoundingClientRect().height||0,gt=Ft>lt*.8;hn.current||(hn.current=Ft);const Wt=he.current.getBoundingClientRect().top;if(Math.abs(ot.current-Je)>60&&(Qe.current=!Qe.current),c&&c.length>0&&Tn&&_t){const Bt=Tn[_t]||0;Je+=Bt}if(ot.current=Je,Ft>De||Qe.current){const Bt=he.current.getBoundingClientRect().height;let at=Bt;Bt>De&&(at=De-(gt?Wt:Eu)),k?he.current.style.height=`${Bt-Math.max(Je,0)}px`:he.current.style.height=`${Math.max(at,De-Wt)}px`}else RS()||(he.current.style.height=`${hn.current}px`);c&&c.length>0&&!Qe.current?he.current.style.bottom="0px":he.current.style.bottom=`${Math.max(Je,0)}px`}}return(ye=window.visualViewport)==null||ye.addEventListener("resize",je),()=>{var Re;return(Re=window.visualViewport)==null?void 0:Re.removeEventListener("resize",je)}},[_t,c,Tn]);function ur(ye){vl(),A==null||A(),ye||J(!1),setTimeout(()=>{c&&gn(c[0])},Fe.DURATION*1e3)}function go(){if(!he.current)return;const ye=document.querySelector("[data-vaul-drawer-wrapper]"),je=Di(he.current,N);Ze(he.current,{transform:"translate3d(0, 0, 0)",transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`}),Ze(fe.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"1"}),p&&je&&je>0&&te&&Ze(ye,{borderRadius:`${Th}px`,overflow:"hidden",...Xe(N)?{transform:`scale(${vn()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${vn()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${Fe.DURATION}s`,transitionTimingFunction:`cubic-bezier(${Fe.EASE.join(",")})`},!0)}function vl(){!K||!he.current||(he.current.classList.remove(mu),be.current=!1,I(!1),me.current=new Date)}function ms(ye){if(!K||!he.current)return;he.current.classList.remove(mu),be.current=!1,I(!1),me.current=new Date;const je=Di(he.current,N);if(!ye||!Pn(ye.target,!1)||!je||Number.isNaN(je)||pe.current===null)return;const Re=me.current.getTime()-pe.current.getTime(),ke=ze.current-(Xe(N)?ye.pageY:ye.pageX),De=Math.abs(ke)/Re;if(De>.05&&(H(!0),setTimeout(()=>{H(!1)},200)),c){po({draggedDistance:ke*(N==="bottom"||N==="right"?1:-1),closeDrawer:ur,velocity:De,dismissible:v}),u==null||u(ye,!0);return}if(N==="bottom"||N==="right"?ke>0:ke<0){go(),u==null||u(ye,!0);return}if(De>Rh){ur(),u==null||u(ye,!1);return}var lt;const Je=Math.min((lt=he.current.getBoundingClientRect().height)!=null?lt:0,window.innerHeight);var Ft;const gt=Math.min((Ft=he.current.getBoundingClientRect().width)!=null?Ft:0,window.innerWidth),Wt=N==="left"||N==="right";if(Math.abs(je)>=(Wt?gt:Je)*h){ur(),u==null||u(ye,!1);return}u==null||u(ye,!0),go()}oe.useEffect(()=>(te&&(Ze(document.documentElement,{scrollBehavior:"auto"}),we.current=new Date),()=>{FS(document.documentElement,"scrollBehavior")}),[te]);function vo(ye){const je=ye?(window.innerWidth-Li)/window.innerWidth:1,Re=ye?-16:0;xe.current&&window.clearTimeout(xe.current),Ze(he.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(N)?`scale(${je}) translate3d(0, ${Re}px, 0)`:`scale(${je}) translate3d(${Re}px, 0, 0)`}),!ye&&he.current&&(xe.current=setTimeout(()=>{const ke=Di(he.current,N);Ze(he.current,{transition:"none",transform:Xe(N)?`translate3d(0, ${ke}px, 0)`:`translate3d(${ke}px, 0, 0)`})},500))}function yo(ye,je){if(je<0)return;const Re=(window.innerWidth-Li)/window.innerWidth,ke=Re+je*(1-Re),De=-16+je*Li;Ze(he.current,{transform:Xe(N)?`scale(${ke}) translate3d(0, ${De}px, 0)`:`scale(${ke}) translate3d(${De}px, 0, 0)`,transition:"none"})}function xo(ye,je){const Re=Xe(N)?window.innerHeight:window.innerWidth,ke=je?(Re-Li)/Re:1,De=je?-16:0;je&&Ze(he.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(N)?`scale(${ke}) translate3d(0, ${De}px, 0)`:`scale(${ke}) translate3d(${De}px, 0, 0)`})}return oe.useEffect(()=>{E||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[E]),oe.createElement(SS,{defaultOpen:F,onOpenChange:ye=>{!v&&!ye||(ye?B(!0):ur(!0),J(ye))},open:te},oe.createElement(Ch.Provider,{value:{activeSnapPoint:en,snapPoints:c,setActiveSnapPoint:gn,drawerRef:he,overlayRef:fe,onOpenChange:l,onPress:gl,onRelease:ms,onDrag:ar,dismissible:v,shouldAnimate:Ct,handleOnly:x,isOpen:te,isDragging:K,shouldFade:mo,closeDrawer:ur,onNestedDrag:yo,onNestedOpenChange:vo,onNestedRelease:xo,keyboardIsOpen:Qe,modal:E,snapPointsOffset:Tn,activeSnapPointIndex:_t,direction:N,shouldScaleBackground:p,setBackgroundColorOnScale:m,noBodyStyles:$,container:ee,autoFocus:ce}},o))}const Ah=oe.forwardRef(function({...n},l){const{overlayRef:o,snapPoints:s,onRelease:u,shouldFade:c,isOpen:p,modal:m,shouldAnimate:h}=pl(),y=Nh(l,o),v=s&&s.length>0;if(!m)return null;const x=oe.useCallback(S=>u(S),[u]);return oe.createElement(kS,{onMouseUp:x,ref:y,"data-vaul-overlay":"","data-vaul-snap-points":p&&v?"true":"false","data-vaul-snap-points-overlay":p&&c?"true":"false","data-vaul-animate":h!=null&&h.current?"true":"false",...n})});Ah.displayName="Drawer.Overlay";const Oh=oe.forwardRef(function({onPointerDownOutside:n,style:l,onOpenAutoFocus:o,...s},u){const{drawerRef:c,onPress:p,onRelease:m,onDrag:h,keyboardIsOpen:y,snapPointsOffset:v,activeSnapPointIndex:x,modal:S,isOpen:C,direction:P,snapPoints:k,container:E,handleOnly:A,shouldAnimate:D,autoFocus:$}=pl(),[N,F]=oe.useState(!1),V=Nh(u,c),L=oe.useRef(null),R=oe.useRef(null),W=oe.useRef(!1),Q=k&&k.length>0;QS();const ee=(U,q,te=0)=>{if(W.current)return!0;const J=Math.abs(U.y),ne=Math.abs(U.x),B=ne>J,K=["bottom","right"].includes(q)?1:-1;if(q==="left"||q==="right"){if(!(U.x*K<0)&&ne>=0&&ne<=te)return B}else if(!(U.y*K<0)&&J>=0&&J<=te)return!B;return W.current=!0,!0};oe.useEffect(()=>{Q&&window.requestAnimationFrame(()=>{F(!0)})},[]);function ce(U){L.current=null,W.current=!1,m(U)}return oe.createElement(ES,{"data-vaul-drawer-direction":P,"data-vaul-drawer":"","data-vaul-delayed-snap-points":N?"true":"false","data-vaul-snap-points":C&&Q?"true":"false","data-vaul-custom-container":E?"true":"false","data-vaul-animate":D!=null&&D.current?"true":"false",...s,ref:V,style:v&&v.length>0?{"--snap-point-height":`${v[x??0]}px`,...l}:l,onPointerDown:U=>{A||(s.onPointerDown==null||s.onPointerDown.call(s,U),L.current={x:U.pageX,y:U.pageY},p(U))},onOpenAutoFocus:U=>{o==null||o(U),$||U.preventDefault()},onPointerDownOutside:U=>{if(n==null||n(U),!S||U.defaultPrevented){U.preventDefault();return}y.current&&(y.current=!1)},onFocusOutside:U=>{if(!S){U.preventDefault();return}},onPointerMove:U=>{if(R.current=U,A||(s.onPointerMove==null||s.onPointerMove.call(s,U),!L.current))return;const q=U.pageY-L.current.y,te=U.pageX-L.current.x,J=U.pointerType==="touch"?10:2;ee({x:te,y:q},P,J)?h(U):(Math.abs(te)>J||Math.abs(q)>J)&&(L.current=null)},onPointerUp:U=>{s.onPointerUp==null||s.onPointerUp.call(s,U),L.current=null,W.current=!1,m(U)},onPointerOut:U=>{s.onPointerOut==null||s.onPointerOut.call(s,U),ce(R.current)},onContextMenu:U=>{s.onContextMenu==null||s.onContextMenu.call(s,U),R.current&&ce(R.current)}})});Oh.displayName="Drawer.Content";const qS=250,ZS=120,JS=oe.forwardRef(function({preventCycle:n=!1,children:l,...o},s){const{closeDrawer:u,isDragging:c,snapPoints:p,activeSnapPoint:m,setActiveSnapPoint:h,dismissible:y,handleOnly:v,isOpen:x,onPress:S,onDrag:C}=pl(),P=oe.useRef(null),k=oe.useRef(!1);function E(){if(k.current){$();return}window.setTimeout(()=>{A()},ZS)}function A(){if(c||n||k.current){$();return}if($(),!p||p.length===0){y||u();return}if(m===p[p.length-1]&&y){u();return}const F=p.findIndex(L=>L===m);if(F===-1)return;const V=p[F+1];h(V)}function D(){P.current=window.setTimeout(()=>{k.current=!0},qS)}function $(){P.current&&window.clearTimeout(P.current),k.current=!1}return oe.createElement("div",{onClick:E,onPointerCancel:$,onPointerDown:N=>{v&&S(N),D()},onPointerMove:N=>{v&&C(N)},ref:s,"data-vaul-drawer-visible":x?"true":"false","data-vaul-handle":"","aria-hidden":"true",...o},oe.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},l))});JS.displayName="Drawer.Handle";function eb(n){const l=pl(),{container:o=l.container,...s}=n;return oe.createElement(CS,{container:o,...s})}const fo={Root:KS,Content:Oh,Overlay:Ah,Trigger:bS,Portal:eb,Title:NS};function Fi({...n}){return f.jsx(fo.Root,{"data-slot":"drawer",...n})}function Wi({...n}){return f.jsx(fo.Trigger,{"data-slot":"drawer-trigger",...n})}function tb({...n}){return f.jsx(fo.Portal,{"data-slot":"drawer-portal",...n})}function nb({className:n,...l}){return f.jsx(fo.Overlay,{"data-slot":"drawer-overlay",className:fn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",n),...l})}function Bi({className:n,children:l,...o}){return f.jsxs(tb,{"data-slot":"drawer-portal",children:[f.jsx(nb,{}),f.jsxs(fo.Content,{"data-slot":"drawer-content",className:fn("group/drawer-content bg-background fixed z-50 flex h-auto flex-col","data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b","data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t","data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:border-l","data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",n),...o,children:[f.jsx("div",{className:"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block"}),l]})]})}function Hi({className:n,...l}){return f.jsx("div",{"data-slot":"drawer-header",className:fn("flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",n),...l})}function Vi({className:n,...l}){return f.jsx(fo.Title,{"data-slot":"drawer-title",className:fn("text-foreground font-semibold",n),...l})}function It({data:n,compact:l=!1,size:o="sm"}){const[s,u]=w.useState(!1),c=JSON.stringify(n,null,2),p=l&&c.length>200?JSON.stringify(n):c,m={sm:"text-xs",base:"text-sm",lg:"text-base"},h=async()=>{await navigator.clipboard.writeText(c),u(!0),setTimeout(()=>u(!1),2e3)};return f.jsxs("div",{className:"relative group",children:[f.jsx("button",{onClick:h,className:"absolute top-1.5 right-1.5 p-1.5 rounded-md border border-border bg-background opacity-0 group-hover:opacity-100 transition-opacity z-10",title:"Copy to clipboard",children:s?f.jsx(Op,{className:"size-3 text-success"}):f.jsx(Mp,{className:"size-3 text-muted-foreground"})}),f.jsx("pre",{className:`font-mono ${m[o]} text-muted-foreground whitespace-pre-wrap wrap-break-words bg-background rounded p-2 ${l?"overflow-hidden max-h-20":""}`,children:p})]})}function rb({rawRequest:n,rawResponse:l,rawChunks:o,isStream:s}){const[u,c]=w.useState(!1),[p,m]=w.useState("parsed");if(!n&&!l)return null;const h=s&&o;return f.jsxs("div",{className:"border-t border-border",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-4 py-2.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors",onClick:()=>c(!u),children:[f.jsx(or,{className:`size-3 transition-transform ${u?"rotate-90":""}`}),f.jsx("span",{className:"font-medium tracking-wider uppercase",children:"Request / Response"})]}),u&&f.jsxs("div",{className:"grid grid-cols-2 gap-4 px-4 pb-4",children:[n&&f.jsxs("div",{className:"flex flex-col",children:[f.jsx("div",{className:"flex items-end mb-2 h-7",children:f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:"Request"})}),f.jsx("div",{className:"max-h-[400px] overflow-auto rounded-md border border-border",children:f.jsx(It,{data:rr(n)})})]}),(l||o)&&f.jsxs("div",{className:"flex flex-col",children:[f.jsxs("div",{className:"flex justify-between items-end mb-2 h-7",children:[f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:s?"Stream":"Response"}),h&&f.jsxs("div",{className:"inline-flex rounded-md border border-border bg-muted/30 p-0.5",children:[f.jsx("button",{onClick:()=>m("parsed"),className:`px-2 py-0.5 text-[10px] font-medium rounded transition-colors ${p==="parsed"?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:"AI SDK"}),f.jsx("button",{onClick:()=>m("raw"),className:`px-2 py-0.5 text-[10px] font-medium rounded transition-colors ${p==="raw"?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:"Provider"})]})]}),f.jsx("div",{className:"max-h-[400px] overflow-auto rounded-md border border-border",children:f.jsx(It,{data:rr(h&&p==="raw"?o:l)})})]})]})]})}function ob({usage:n}){const l=Ji(n==null?void 0:n.inputTokens),o=es(n==null?void 0:n.outputTokens);return f.jsxs("div",{className:"space-y-6",children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsxs("div",{className:"p-4 rounded-lg border border-border bg-card",children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Input Tokens"}),f.jsx("div",{className:"text-2xl font-semibold",children:l.total}),(l.cacheRead!==void 0||l.cacheWrite!==void 0)&&f.jsxs("div",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:[l.cacheRead!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Cache read"}),f.jsx("span",{className:"font-mono",children:l.cacheRead})]}),l.cacheWrite!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Cache write"}),f.jsx("span",{className:"font-mono",children:l.cacheWrite})]}),l.noCache!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"No cache"}),f.jsx("span",{className:"font-mono",children:l.noCache})]})]})]}),f.jsxs("div",{className:"p-4 rounded-lg border border-border bg-card",children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Output Tokens"}),f.jsx("div",{className:"text-2xl font-semibold",children:o.total}),(o.text!==void 0||o.reasoning!==void 0)&&f.jsxs("div",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:[o.text!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Text"}),f.jsx("span",{className:"font-mono",children:o.text})]}),o.reasoning!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Reasoning"}),f.jsx("span",{className:"font-mono",children:o.reasoning})]})]})]})]}),(n==null?void 0:n.raw)!=null&&f.jsxs("div",{children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Raw Provider Usage"}),f.jsx(It,{data:n.raw,size:"sm"})]}),f.jsxs("div",{children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Full Usage Object"}),f.jsx(It,{data:n,size:"sm"})]})]})}function Mh({input:n,output:l,raw:o}){const s=n.noCache!==void 0||n.cacheRead!==void 0||n.cacheWrite!==void 0,u=l.text!==void 0||l.reasoning!==void 0;return s||u?f.jsxs("div",{className:"space-y-2 text-xs",children:[f.jsxs("div",{children:[f.jsxs("div",{className:"mb-1 font-medium",children:["Input: ",n.total]}),n.cacheRead!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Cache read: ",n.cacheRead]}),n.cacheWrite!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Cache write: ",n.cacheWrite]})]}),f.jsxs("div",{children:[f.jsxs("div",{className:"mb-1 font-medium",children:["Output: ",l.total]}),l.text!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Text: ",l.text]}),l.reasoning!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Reasoning: ",l.reasoning]})]}),o!==void 0&&f.jsx("div",{className:"pt-1 mt-1 border-t border-border",children:f.jsxs("div",{className:"text-muted-foreground/70 font-mono text-[10px] max-w-[200px] truncate",children:["Raw: ",JSON.stringify(o)]})})]}):f.jsxs("div",{className:"text-xs",children:[f.jsxs("div",{children:["Input: ",n.total]}),f.jsxs("div",{children:["Output: ",l.total]})]})}function Dh({content:n}){const[l,o]=w.useState(!1),s=n.length>200?n.slice(0,200)+"…":n;return f.jsxs("div",{className:"overflow-hidden rounded-md border border-amber-500/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-amber-500/10 hover:bg-amber-500/20",onClick:()=>o(!l),children:[f.jsx(or,{className:`size-3 text-amber-500 transition-transform shrink-0 ${l?"rotate-90":""}`}),f.jsx(ll,{className:"text-amber-500 size-3 shrink-0"}),f.jsx("span",{className:"text-xs font-medium text-amber-500",children:"Thinking"}),!l&&f.jsx("span",{className:"text-[11px] text-amber-500/70 truncate ml-1",children:s})]}),l&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-amber-500/30",children:f.jsx("div",{className:"text-xs leading-relaxed whitespace-pre-wrap text-foreground/80",children:n})})]})}function Lh({content:n,defaultExpanded:l=!1,isSystem:o=!1}){const[s,u]=w.useState(l),[c,p]=w.useState(!1),m=n.length>200?n.slice(0,200)+"…":n,h=o?"border-blue-500/30":"border-border",y=o?"bg-blue-500/10":"bg-muted/30",v=o?"hover:bg-blue-500/20":"hover:bg-muted/50",x=o?"text-blue-400":"text-muted-foreground",S=o?"text-blue-400":"text-foreground",C=async P=>{P.stopPropagation(),await navigator.clipboard.writeText(n),p(!0),setTimeout(()=>p(!1),2e3)};return f.jsxs("div",{className:`overflow-hidden rounded-md border ${h}`,children:[f.jsxs("button",{className:`flex gap-2 items-center px-3 py-2 w-full transition-colors ${y} ${v}`,onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 ${x} transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(lo,{className:`size-3 ${x} shrink-0`}),f.jsx("span",{className:`text-xs font-medium ${S}`,children:"Text"}),!s&&f.jsx("span",{className:`text-[11px] ${o?"text-blue-400/70":"text-muted-foreground"} truncate ml-1`,children:m})]}),s&&f.jsxs("div",{className:`relative p-3 border-t bg-card/50 ${h} group`,children:[f.jsx("button",{onClick:C,className:"absolute top-1.5 right-1.5 p-1.5 rounded-md border border-border bg-background opacity-0 group-hover:opacity-100 transition-opacity z-10",title:"Copy to clipboard",children:c?f.jsx(Op,{className:"size-3 text-success"}):f.jsx(Mp,{className:"size-3 text-muted-foreground"})}),f.jsx("div",{className:"overflow-y-auto max-h-60 text-xs leading-relaxed whitespace-pre-wrap text-foreground",children:n})]})]})}function lb({tool:n}){const[l,o]=w.useState(!1);return f.jsxs("div",{className:"overflow-hidden rounded-md border border-border bg-background",children:[f.jsxs("button",{className:"w-full flex items-center justify-between p-2.5 hover:bg-accent/50 transition-colors",onClick:()=>o(!l),children:[f.jsx("span",{className:"font-mono text-sm text-purple",children:n.name}),n.parameters&&f.jsx(or,{className:`size-3 text-muted-foreground transition-transform ${l?"rotate-90":""}`})]}),l&&n.parameters&&f.jsxs("div",{className:"px-2.5 pb-2.5 border-t border-border",children:[n.description&&f.jsx("p",{className:"pt-2 mb-2 text-xs text-muted-foreground",children:n.description}),f.jsx(It,{data:n.parameters,compact:!0})]}),!l&&n.description&&f.jsx("div",{className:"px-2.5 pb-2 -mt-1",children:f.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:n.description})})]})}function ib({toolName:n,toolCallId:l,data:o}){const[s,u]=w.useState(!1),c=typeof o=="string"?rr(o):o;return f.jsxs("div",{className:"overflow-hidden rounded-md border border-purple/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-purple/10 hover:bg-purple/20",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-purple transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(kr,{className:"size-3 text-purple shrink-0"}),f.jsx("span",{className:"font-mono text-xs font-medium text-purple",children:n}),!s&&c!=null&&typeof c=="object"&&!Array.isArray(c)&&f.jsx("span",{className:"text-[11px] font-mono text-purple/70 truncate",children:qm(c)}),l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/60 ml-auto shrink-0",children:l})]}),s&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-purple/30",children:f.jsx(It,{data:c})})]})}function sb({toolName:n,toolCallId:l,data:o}){const[s,u]=w.useState(!1);return f.jsxs("div",{className:"overflow-hidden rounded-md border border-success/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-success/10 hover:bg-success/20",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-success transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx("span",{className:"text-xs font-medium text-success",children:"Result"}),n&&f.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:n}),l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/60 ml-auto shrink-0",children:l})]}),s&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-success/30",children:f.jsx(It,{data:o})})]})}function ab({modelId:n,provider:l,input:o,providerOptions:s,usage:u}){var m,h;const c=((m=o==null?void 0:o.tools)==null?void 0:m.length)??0,p=[];if((o==null?void 0:o.temperature)!=null&&p.push({label:"temp",value:String(o.temperature)}),(o==null?void 0:o.maxOutputTokens)!=null&&p.push({label:"max tokens",value:String(o.maxOutputTokens)}),(o==null?void 0:o.topP)!=null&&p.push({label:"topP",value:String(o.topP)}),(o==null?void 0:o.topK)!=null&&p.push({label:"topK",value:String(o.topK)}),(o==null?void 0:o.toolChoice)!=null){const y=typeof o.toolChoice=="string"?o.toolChoice:o.toolChoice.type;p.push({label:"tool choice",value:y})}return f.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-muted/20 border-b border-border text-[11px] text-muted-foreground",children:[l&&f.jsx("span",{className:"px-1.5 py-0.5 rounded bg-sidebar-primary/10 text-sidebar-primary text-[10px] font-medium",children:l}),f.jsx("span",{className:"font-mono",children:n}),p.length>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),p.map((y,v)=>f.jsxs("span",{children:[y.label,": ",f.jsx("span",{className:"text-foreground",children:y.value}),v<p.length-1&&f.jsx("span",{className:"mx-1 text-muted-foreground/30",children:"·"})]},v))]}),c>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(kr,{className:"size-3"}),c," available ",c===1?"tool":"tools"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsxs(Vi,{children:["Available Tools (",c,")"]})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx("div",{className:"space-y-3",children:(h=o==null?void 0:o.tools)==null?void 0:h.map((y,v)=>f.jsx(lb,{tool:y},v))})})]})]})]}),s&&Object.keys(s).length>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(y0,{className:"size-3"}),"Provider options"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsx(Vi,{children:"Provider Options"})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx(It,{data:s,size:"lg"})})]})]})]}),u&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(o0,{className:"size-3"}),"Usage"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsx(Vi,{children:"Token Usage"})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx(ob,{usage:u})})]})]})]})]})}function zh({className:n,...l}){return f.jsx("div",{"data-slot":"card",className:fn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",n),...l})}var ps="Collapsible",[ub,Pb]=cl(ps),[cb,Zu]=ub(ps),Ih=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,open:s,defaultOpen:u,disabled:c,onOpenChange:p,...m}=n,[h,y]=Uu({prop:s,defaultProp:u??!1,onChange:p,caller:ps});return f.jsx(cb,{scope:o,disabled:c,contentId:ol(),open:h,onOpenToggle:w.useCallback(()=>y(v=>!v),[y]),children:f.jsx(He.div,{"data-state":ec(h),"data-disabled":c?"":void 0,...m,ref:l})})});Ih.displayName=ps;var $h="CollapsibleTrigger",Fh=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,...s}=n,u=Zu($h,o);return f.jsx(He.button,{type:"button","aria-controls":u.contentId,"aria-expanded":u.open||!1,"data-state":ec(u.open),"data-disabled":u.disabled?"":void 0,disabled:u.disabled,...s,ref:l,onClick:Be(n.onClick,u.onOpenToggle)})});Fh.displayName=$h;var Ju="CollapsibleContent",Wh=w.forwardRef((n,l)=>{const{forceMount:o,...s}=n,u=Zu(Ju,n.__scopeCollapsible);return f.jsx(Zt,{present:o||u.open,children:({present:c})=>f.jsx(db,{...s,ref:l,present:c})})});Wh.displayName=Ju;var db=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,present:s,children:u,...c}=n,p=Zu(Ju,o),[m,h]=w.useState(s),y=w.useRef(null),v=rt(l,y),x=w.useRef(0),S=x.current,C=w.useRef(0),P=C.current,k=p.open||m,E=w.useRef(k),A=w.useRef(void 0);return w.useEffect(()=>{const D=requestAnimationFrame(()=>E.current=!1);return()=>cancelAnimationFrame(D)},[]),cn(()=>{const D=y.current;if(D){A.current=A.current||{transitionDuration:D.style.transitionDuration,animationName:D.style.animationName},D.style.transitionDuration="0s",D.style.animationName="none";const $=D.getBoundingClientRect();x.current=$.height,C.current=$.width,E.current||(D.style.transitionDuration=A.current.transitionDuration,D.style.animationName=A.current.animationName),h(s)}},[p.open,s]),f.jsx(He.div,{"data-state":ec(p.open),"data-disabled":p.disabled?"":void 0,id:p.contentId,hidden:!k,...c,ref:v,style:{"--radix-collapsible-content-height":S?`${S}px`:void 0,"--radix-collapsible-content-width":P?`${P}px`:void 0,...n.style},children:k&&u})});function ec(n){return n?"open":"closed"}var fb=Ih;function pb({...n}){return f.jsx(fb,{"data-slot":"collapsible",...n})}function mb({...n}){return f.jsx(Fh,{"data-slot":"collapsible-trigger",...n})}function hb({...n}){return f.jsx(Wh,{"data-slot":"collapsible-content",...n})}function gb({input:n}){const l=(n==null?void 0:n.prompt)??[],o=l.length,s=l.slice(-2),u=Math.max(0,o-2);return f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"w-full h-full text-left p-4 hover:bg-accent/30 transition-colors cursor-pointer flex flex-col justify-start",children:[f.jsx("h3",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-3",children:"Input"}),f.jsxs("div",{className:"space-y-3",children:[u>0&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60 text-center py-1.5 rounded-md bg-muted/30",children:["+ ",u," previous"," ",u===1?"message":"messages"]}),s.map((c,p)=>f.jsx(vb,{message:c,index:u+p+1},p)),o===0&&f.jsx("p",{className:"text-sm text-muted-foreground",children:"No messages"})]})]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsxs(Vi,{children:["All Messages (",o,")"]})}),f.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:f.jsx("div",{className:"space-y-3",children:l.map((c,p)=>f.jsx(yb,{message:c,index:p+1},p))})})]})]})}function Bh(n){return typeof n=="string"?n:Array.isArray(n)?n.filter(l=>l.type==="text").map(l=>l.text).join(""):""}function Hh(n){return Array.isArray(n)?n.filter(l=>l.type==="tool-call"):[]}function Vh(n){return Array.isArray(n)?n.filter(l=>l.type==="tool-result"):[]}function Uh(n){return Array.isArray(n)?n.filter(l=>l.type==="thinking"||l.type==="reasoning").map(l=>l.thinking||l.text||l.reasoning||"").join(""):""}function vb({message:n,index:l}){const{role:o,content:s}=n,u={user:"User",assistant:"Assistant",system:"System",tool:"Tool"},c=Bh(s),p=Hh(s),m=Vh(s),h=Uh(s),y=(c?1:0)+(h?1:0)+p.length+m.length;return f.jsxs("div",{className:"rounded-md border border-border/50 bg-background/50 p-2.5 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/50",children:l}),f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:u[o]||o}),y>1&&f.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:[y," parts"]})]}),h&&f.jsx("div",{className:"text-xs text-amber-500/60",children:"[thinking]"}),c&&f.jsx("div",{className:"text-xs text-foreground/90 line-clamp-3",children:c}),p.length>0&&f.jsxs("div",{className:"space-y-1",children:[p.slice(0,3).map((v,x)=>{const S=v.args??v.input,C=typeof S=="string"?rr(S):S??{};return f.jsxs("div",{className:"text-[11px] font-mono text-muted-foreground truncate",children:[v.toolName,"(",d1(C),")"]},x)}),p.length>3&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60",children:["+",p.length-3," more tool"," ",p.length-3===1?"call":"calls"]})]}),m.length>0&&f.jsxs("div",{className:"space-y-1",children:[m.slice(0,3).map((v,x)=>{const S=v.result??v.output??v,C=f1(S);return f.jsxs("div",{className:"text-[11px] font-mono text-muted-foreground truncate",children:[v.toolName||"tool","(…) => ",C]},x)}),m.length>3&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60",children:["+",m.length-3," more tool"," ",m.length-3===1?"result":"results"]})]}),!c&&!h&&p.length===0&&m.length===0&&f.jsx("div",{className:"text-[11px] text-muted-foreground italic",children:"Empty message"})]})}function yb({message:n,index:l}){const{role:o,content:s}=n,u={user:"User",assistant:"Assistant",system:"System",tool:"Tool"},c=Bh(s),p=Hh(s),m=Vh(s),h=Uh(s),y=(c?1:0)+(h?1:0)+p.length+m.length;return f.jsxs("div",{className:"rounded-md border border-border/50 bg-background/50 p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/50",children:l}),f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:u[o]||o}),y>1&&f.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:[y," parts"]})]}),h&&f.jsx(Dh,{content:h}),c&&f.jsx(Lh,{content:c,defaultExpanded:!h&&p.length===0&&m.length===0,isSystem:o==="system"}),p.length>0&&f.jsx("div",{className:"space-y-2",children:p.map((v,x)=>f.jsx(ib,{toolName:v.toolName,toolCallId:v.toolCallId,data:v.args??v.input},x))}),m.length>0&&f.jsx("div",{className:"space-y-2",children:m.map((v,x)=>f.jsx(sb,{toolName:v.toolName,toolCallId:v.toolCallId,data:v.result??v.output??v},x))}),!c&&!h&&p.length===0&&m.length===0&&f.jsx("div",{className:"text-[11px] text-muted-foreground italic",children:"Empty message"})]})}function xb({output:n,toolResults:l=[]}){var y,v,x;const o=S=>l.find(C=>C.type==="tool-result"&&"toolCallId"in C&&C.toolCallId===S),s=(n==null?void 0:n.toolCalls)||(((y=n==null?void 0:n.content)==null?void 0:y.filter(S=>S.type==="tool-call"))??[]),u=(n==null?void 0:n.textParts)||(((v=n==null?void 0:n.content)==null?void 0:v.filter(S=>S.type==="text"))??[]),c=(n==null?void 0:n.reasoningParts)||(((x=n==null?void 0:n.content)==null?void 0:x.filter(S=>S.type==="thinking"||S.type==="reasoning"))??[]),p=u.map(S=>S.text).join(""),m=c.map(S=>S.text||S.thinking||S.reasoning||"").join(""),h=p&&!m&&s.length===0;return f.jsxs("div",{className:"space-y-3",children:[m&&f.jsx(Dh,{content:m}),p&&f.jsx(Lh,{content:p,defaultExpanded:!!h}),s.map((S,C)=>{const P=S.toolCallId?o(S.toolCallId):void 0;return f.jsx(wb,{toolName:S.toolName,args:S.args??S.input,result:(P==null?void 0:P.output)??(P==null?void 0:P.result)},C)})]})}function wb({toolName:n,args:l,result:o}){const[s,u]=w.useState(!1),c=typeof l=="string"?rr(l):l,p=typeof o=="string"?rr(o):o;return f.jsxs("div",{className:"rounded-md border border-purple/30 overflow-hidden",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-3 py-2 bg-purple/10 hover:bg-purple/20 transition-colors",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-purple transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(kr,{className:"size-3 text-purple shrink-0"}),f.jsx("span",{className:"text-xs font-mono font-medium text-purple",children:n}),!s&&c&&typeof c=="object"&&!Array.isArray(c)&&f.jsx("span",{className:"text-[11px] font-mono text-purple/70 truncate",children:qm(c)})]}),s&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"p-3 bg-card/50 border-t border-purple/30",children:[f.jsx("div",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-2",children:"Input"}),f.jsx(It,{data:c})]}),p!=null&&f.jsxs("div",{className:"p-3 border-t border-border bg-success/5",children:[f.jsx("div",{className:"text-[10px] font-medium uppercase tracking-wider text-success mb-2",children:"Output"}),f.jsx(It,{data:p})]})]})]})}function Yh({step:n,index:l,steps:o,isRunInProgress:s,expandedSteps:u,toggleStep:c,parseJson:p,formatDuration:m,childRuns:h,depth:y}){const v=u.has(n.id),S=l===o.length-1&&s,C=p(n.input),P=p(n.output),k=p(n.usage),E=c1(P,n.error),D=u1(C,l===0);return f.jsx(pb,{open:v,onOpenChange:()=>c(n.id),children:f.jsxs(zh,{className:`overflow-hidden py-0 gap-0 ${S?"ring-2 ring-blue-500/50 ring-offset-1 ring-offset-background":""}`,children:[f.jsx(mb,{asChild:!0,children:f.jsxs("button",{className:`w-full flex items-center justify-between px-4 py-3 text-left transition-colors hover:bg-accent/50 ${v?"border-b border-border":""}`,children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("span",{className:"text-xs text-muted-foreground font-mono w-4",children:n.step_number}),f.jsxs("div",{className:"flex items-center gap-2",children:[D&&f.jsxs(f.Fragment,{children:[D.type==="user"?f.jsx(lo,{className:"size-3.5 text-muted-foreground"}):f.jsx(kr,{className:"size-3.5 text-muted-foreground"}),D.fullText||D.toolDetails?f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("span",{className:`text-sm text-muted-foreground ${D.type==="tool"?"font-mono":""}`,children:D.label})}),f.jsx(ro,{side:"bottom",className:"max-w-sm max-h-40 overflow-hidden",children:f.jsx("span",{className:"line-clamp-6",children:D.fullText||D.toolDetails})})]}):f.jsx("span",{className:`text-sm text-muted-foreground ${D.type==="tool"?"font-mono":""}`,children:D.label}),f.jsx("span",{className:"text-muted-foreground/50 mx-1",children:"→"})]}),E.icon==="wrench"&&f.jsx(kr,{className:"size-3.5 text-muted-foreground"}),E.icon==="message"&&f.jsx(lo,{className:"size-3.5 text-muted-foreground"}),E.icon==="alert"&&f.jsx(ns,{className:"size-3.5 text-destructive"}),E.toolDetails?f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("span",{className:"text-sm font-medium font-mono",children:E.label})}),f.jsx(ro,{children:E.toolDetails})]}):f.jsx("span",{className:`text-sm font-medium ${E.icon==="wrench"?"font-mono":""}`,children:E.label})]})]}),f.jsxs("div",{className:"flex items-center gap-4",children:[S?f.jsxs("span",{className:"text-[11px] text-blue-400 font-medium flex items-center gap-1.5",children:[f.jsx(il,{className:"size-3 animate-spin"}),"streaming"]}):f.jsx("span",{className:"text-[11px] text-muted-foreground font-mono",children:m(n.duration_ms)}),k&&f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground cursor-help",children:[Gm(Ji(k.inputTokens))," ",f.jsx("span",{className:"text-muted-foreground/50",children:"→"})," ",Km(es(k.outputTokens))]})}),f.jsx(ro,{children:f.jsx(Mh,{input:Ji(k.inputTokens),output:es(k.outputTokens),raw:k.raw})})]}),f.jsx(u0,{className:`size-4 text-muted-foreground transition-transform ${v?"rotate-180":""}`})]})]})}),f.jsx(hb,{children:f.jsx(Xh,{step:n,index:l,steps:o,isRunInProgress:s,parseJson:p,formatDuration:m,childRuns:h,expandedSteps:u,toggleStep:c,depth:y})})]})})}function Xh({step:n,index:l,steps:o,isRunInProgress:s,parseJson:u,formatDuration:c,childRuns:p,expandedSteps:m,toggleStep:h,depth:y}){var D,$;const x=l===o.length-1&&s,S=u(n.input),C=u(n.output),P=u(n.usage),k=o[l+1],E=k?u(k.input):null,A=(($=(D=E==null?void 0:E.prompt)==null?void 0:D.filter(N=>N.role==="tool"))==null?void 0:$.flatMap(N=>Array.isArray(N.content)?N.content:[]))??[];return f.jsxs(f.Fragment,{children:[f.jsx(ab,{modelId:n.model_id,provider:n.provider,input:S,providerOptions:u(n.provider_options),usage:P}),f.jsxs("div",{className:"grid grid-cols-2 divide-x divide-border",children:[f.jsx("div",{className:"bg-card/50",children:f.jsx(gb,{input:S})}),f.jsxs("div",{className:"p-4 bg-background min-h-full",children:[f.jsx("h3",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-3",children:"Output"}),n.error?f.jsx("div",{className:"p-3 rounded-md bg-destructive/10 border border-destructive/30 text-sm text-destructive-foreground font-mono",children:n.error}):C?f.jsx(xb,{output:C,toolResults:A}):x?f.jsxs("div",{className:"flex items-center gap-2 text-sm text-blue-400",children:[f.jsx(il,{className:"size-4 animate-spin"}),f.jsx("span",{children:"Waiting for response..."})]}):f.jsx("p",{className:"text-sm text-muted-foreground",children:"No output"})]})]}),p.length>0&&m&&h&&f.jsx(Sb,{childRuns:p,expandedSteps:m,toggleStep:h,parseJson:u,formatDuration:c,depth:y}),f.jsx(rb,{rawRequest:n.raw_request,rawResponse:n.raw_response,rawChunks:n.raw_chunks,isStream:n.type==="stream"})]})}function Sb({childRuns:n,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c}){return f.jsxs("div",{className:"border-t border-border bg-muted/10",children:[f.jsxs("div",{className:"px-4 py-2 flex items-center gap-2",children:[f.jsx("div",{className:"h-px flex-1 bg-border"}),f.jsxs("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground shrink-0",children:["Sub-agent ",n.length===1?"call":"calls"," (",n.length,")"]}),f.jsx("div",{className:"h-px flex-1 bg-border"})]}),f.jsx("div",{className:"px-4 pb-3 flex flex-col gap-2",children:n.map(p=>f.jsx(bb,{childRun:p,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c+1},p.run.id))})]})}function bb({childRun:n,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c}){var k;const[p,m]=w.useState(!1),h=n.steps[0],y=h?s(h.input):null,x=[...(y==null?void 0:y.prompt)??[]].reverse().find(E=>E.role==="user");let S="Sub-agent call";if(x){const E=typeof x.content=="string"?x.content:Array.isArray(x.content)&&((k=x.content.find(A=>A.type==="text"))==null?void 0:k.text)||"";S=E.length>60?E.slice(0,60)+"...":E}const C=n.steps.reduce((E,A)=>E+(A.duration_ms||0),0),P=h==null?void 0:h.model_id;return f.jsxs("div",{className:"rounded-md border border-cyan-500/30 overflow-hidden",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-3 py-2 bg-cyan-500/10 hover:bg-cyan-500/15 transition-colors",onClick:()=>m(!p),children:[f.jsx(or,{className:`size-3 text-cyan-400 transition-transform shrink-0 ${p?"rotate-90":""}`}),f.jsx(ll,{className:"size-3 text-cyan-400 shrink-0"}),f.jsx("span",{className:"text-xs font-medium text-cyan-400 truncate",children:S}),f.jsxs("span",{className:"ml-auto flex items-center gap-3 shrink-0",children:[P&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:P}),f.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[n.steps.length," ",n.steps.length===1?"step":"steps"]}),f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:u(C)}),n.run.isInProgress&&f.jsx(il,{className:"size-3 text-blue-400 animate-spin"})]})]}),p&&f.jsx("div",{className:"border-t border-cyan-500/20 bg-background/50 p-3 flex flex-col gap-2",children:n.steps.map((E,A)=>{const D=(n.childRuns??[]).filter($=>$.run.parent_step_id===E.id);return f.jsx(Yh,{step:E,index:A,steps:n.steps,isRunInProgress:n.run.isInProgress??!1,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,childRuns:D,depth:c},E.id)})})]})}function Cb({runDetail:n,parseJson:l,formatDuration:o}){const[s,u]=w.useState(null),[c,p]=w.useState(280),m=w.useRef(!1),h=w.useMemo(()=>h1(n,l),[n,l]),y=w.useMemo(()=>{const R=[];function W(Q,ee){R.push(...Q);for(const ce of ee)W(ce.steps,ce.childRuns??[])}return W(n.steps,n.childRuns??[]),R},[n]),v=w.useMemo(()=>{const R=[];function W(Q){for(const ee of Q)R.push(ee),W(ee.childRuns??[])}return W(n.childRuns??[]),R},[n]),x=w.useCallback(R=>{R.preventDefault(),R.stopPropagation(),m.current=!0;const W=R.clientX,Q=c,ee=U=>{if(!m.current)return;const q=Math.min(Math.max(Q+(U.clientX-W),120),600);p(q)},ce=()=>{m.current=!1,document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",ce),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",ee),document.addEventListener("mouseup",ce),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[c]);if(h.length===0)return null;const S=Math.max(...h.map(R=>R.startMs+R.durationMs),1),C=5,P=Array.from({length:C+1},(R,W)=>{const Q=S/C*W;return{ms:Q,label:Q<1e3?`${Math.round(Q)}ms`:`${(Q/1e3).toFixed(1)}s`}}),k=28,E=R=>{u(W=>W===R?null:R)},A=s?h.find(R=>R.id===s):null,D=(A==null?void 0:A.stepId)??s,$=D?y.find(R=>R.id===D):null,N=$?(()=>{if(n.steps.find(W=>W.id===$.id))return n.steps.findIndex(W=>W.id===$.id);const R=v.find(W=>W.steps.some(Q=>Q.id===$.id));return(R==null?void 0:R.steps.findIndex(W=>W.id===$.id))??0})():0,F=$?(()=>{if(n.steps.find(W=>W.id===$.id))return n.steps;const R=v.find(W=>W.steps.some(Q=>Q.id===$.id));return(R==null?void 0:R.steps)??n.steps})():n.steps,V=$?v.filter(R=>R.run.parent_step_id===$.id):[],L=R=>{switch(R){case"child-run":return f.jsx(ll,{className:"size-3 text-cyan-400 shrink-0"});case"thinking":return f.jsx(ll,{className:"size-3 text-amber-500 shrink-0"});case"tool-call":return f.jsx(kr,{className:"size-3 text-purple-400 shrink-0"});case"text":return f.jsx(lo,{className:"size-3 text-emerald-400 shrink-0"});case"error":return f.jsx(ns,{className:"size-3 text-red-400 shrink-0"});default:return f.jsx(Dp,{className:"size-3 text-blue-400 shrink-0"})}};return f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"rounded-lg border border-border bg-card overflow-hidden",children:[f.jsxs("div",{className:"px-4 py-2 border-b border-border bg-muted/20 flex items-center justify-between",children:[f.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Trace Timeline"}),f.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:o(S)})]}),f.jsx("div",{className:"overflow-x-auto",children:f.jsxs("div",{style:{minWidth:c+400},children:[f.jsxs("div",{className:"flex border-b border-border/50",style:{height:22},children:[f.jsx("div",{style:{width:c,minWidth:c},className:"shrink-0"}),f.jsx("div",{className:"w-1 shrink-0 cursor-col-resize hover:bg-primary/30",onMouseDown:x}),f.jsx("div",{className:"flex-1 relative",children:P.map((R,W)=>f.jsx("span",{className:"absolute text-[9px] font-mono text-muted-foreground/60 -translate-x-1/2",style:{left:`${R.ms/S*100}%`,top:5},children:R.label},W))})]}),h.map(R=>{const W=R.startMs/S*100,Q=Math.max(R.durationMs/S*100,.3),ee=s===R.id;return f.jsxs("div",{className:`flex items-center border-b border-border/30 transition-colors cursor-pointer ${ee?"bg-accent":"hover:bg-accent/30"}`,style:{height:k},onClick:()=>E(R.id),children:[f.jsxs("div",{className:"shrink-0 flex items-center gap-1.5 px-2 overflow-hidden",style:{width:c,minWidth:c,paddingLeft:8+R.depth*16},children:[L(R.kind),f.jsx("span",{className:"text-[11px] font-mono text-foreground truncate",children:R.label}),R.sublabel&&f.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:R.sublabel}),f.jsx("span",{className:"ml-auto text-[10px] font-mono text-muted-foreground shrink-0 pl-1",children:o(R.durationMs||null)}),R.tokens&&f.jsxs("span",{className:"text-[9px] font-mono text-muted-foreground/60 shrink-0",children:[R.tokens.input,"→",R.tokens.output]})]}),f.jsx("div",{className:"w-1 shrink-0 cursor-col-resize hover:bg-primary/30 self-stretch",onMouseDown:x}),f.jsxs("div",{className:"flex-1 relative h-full",children:[P.map((ce,U)=>f.jsx("div",{className:"absolute top-0 bottom-0 border-l border-border/20",style:{left:`${ce.ms/S*100}%`}},U)),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("div",{className:"absolute top-1 bottom-1 flex items-center cursor-pointer",style:{left:`${W}%`,width:`${Q}%`,minWidth:3},children:f.jsx("div",{className:`h-full w-full rounded-sm ${ee?"ring-2 ring-foreground/50 ring-offset-1 ring-offset-background":""} ${R.isInProgress?`${m1[R.kind]} animate-pulse`:p1[R.kind]}`})})}),f.jsx(ro,{side:"top",className:"max-w-xs",children:f.jsxs("div",{className:"text-xs space-y-1",children:[f.jsx("div",{className:"font-medium",children:R.label}),R.sublabel&&f.jsx("div",{className:"text-muted-foreground",children:R.sublabel}),R.modelId&&R.modelId!==R.label&&f.jsx("div",{className:"text-muted-foreground font-mono",children:R.modelId}),f.jsxs("div",{className:"text-muted-foreground font-mono",children:[o(R.durationMs||null),R.tokens&&f.jsxs("span",{className:"ml-2",children:[R.tokens.input," in → ",R.tokens.output," ","out"]})]}),f.jsxs("div",{className:"text-muted-foreground/60 pt-0.5",children:["Click to ",ee?"deselect":"view details"]})]})})]})]})]},R.id)})]})})]}),$&&A&&f.jsxs(zh,{className:"overflow-hidden py-0 gap-0",children:[f.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[L(A.kind),f.jsxs("span",{className:"text-xs text-muted-foreground font-mono",children:["Step ",N+1]}),A.kind!=="step"&&f.jsx(gu,{variant:"secondary",className:"text-[10px] h-5 capitalize",children:A.kind}),f.jsx("span",{className:"text-xs font-medium font-mono",children:A.label}),$.provider&&f.jsx("span",{className:"px-1.5 py-0.5 rounded bg-sidebar-primary/10 text-sidebar-primary text-[10px] font-medium",children:$.provider})]}),f.jsx("button",{onClick:()=>u(null),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Deselect"})]}),f.jsx(kb,{span:A,step:$,stepIndex:N,steps:F,runDetail:n,parseJson:l,formatDuration:o,childRuns:V})]})]})}function kb({span:n,step:l,stepIndex:o,steps:s,runDetail:u,parseJson:c,formatDuration:p,childRuns:m}){const h=c(l.output),y=(h==null?void 0:h.content)??[];if(n.kind==="tool-call"&&n.toolCallId){const v=y.find(E=>E.type==="tool-call"&&"toolCallId"in E&&E.toolCallId===n.toolCallId),x=y.find(E=>E.type==="tool-result"&&"toolCallId"in E&&E.toolCallId===n.toolCallId),S=(v==null?void 0:v.input)??(v==null?void 0:v.args),C=typeof S=="string"?rr(S):S,P=(x==null?void 0:x.output)??(x==null?void 0:x.result),k=typeof P=="string"?rr(P):P;return f.jsxs("div",{className:"p-4 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(kr,{className:"size-4 text-purple-400"}),f.jsx("span",{className:"text-sm font-mono font-medium text-purple-400",children:n.label})]}),C!=null&&f.jsxs("div",{children:[f.jsx("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-2",children:"Input"}),f.jsx(It,{data:C})]}),k!=null&&f.jsxs("div",{children:[f.jsx("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-success mb-2",children:"Output"}),f.jsx(It,{data:k})]}),!C&&!k&&f.jsx("p",{className:"text-sm text-muted-foreground",children:"No data available for this tool call."})]})}return n.kind==="thinking"&&n.thinkingText?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(ll,{className:"size-4 text-amber-500"}),f.jsx("span",{className:"text-sm font-medium text-amber-500",children:"Thinking"})]}),f.jsx("div",{className:"text-sm text-foreground/80 leading-relaxed whitespace-pre-wrap rounded-md border border-amber-500/20 bg-amber-500/5 p-3",children:n.thinkingText})]}):n.kind==="text"&&n.textContent?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(lo,{className:"size-4 text-emerald-400"}),f.jsx("span",{className:"text-sm font-medium text-emerald-400",children:"Text Response"})]}),f.jsx("div",{className:"text-sm text-foreground/80 leading-relaxed whitespace-pre-wrap rounded-md border border-border bg-background p-3",children:n.textContent})]}):n.kind==="error"?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(ns,{className:"size-4 text-red-400"}),f.jsx("span",{className:"text-sm font-medium text-red-400",children:"Error"})]}),f.jsx("div",{className:"text-sm text-destructive-foreground font-mono whitespace-pre-wrap rounded-md border border-destructive/30 bg-destructive/10 p-3",children:l.error})]}):f.jsx(Xh,{step:l,index:o,steps:s,isRunInProgress:u.run.isInProgress??!1,parseJson:c,formatDuration:p,childRuns:m,depth:0})}function Eb(){const[n,l]=w.useState([]),[o,s]=w.useState(null),[u,c]=w.useState(new Set),[p,m]=w.useState(!0),[h,y]=w.useState(!1),v=async()=>{try{const F=await(await fetch("/api/runs")).json();l(F)}catch(N){console.error("Failed to fetch runs:",N)}finally{m(!1)}},x=async()=>{await fetch("/api/clear",{method:"POST"}),l([]),s(null)};w.useEffect(()=>{v()},[]),w.useEffect(()=>{let N=null,F=null;const V=()=>{N=new EventSource("/api/events"),N.addEventListener("connected",()=>{console.log("[DevTools] Connected to real-time updates")}),N.addEventListener("update",()=>{v(),o&&fetch(`/api/runs/${o.run.id}`).then(L=>L.json()).then(L=>{L&&!L.error&&s(L)}).catch(()=>{})}),N.addEventListener("heartbeat",()=>{}),N.onerror=()=>{console.log("[DevTools] SSE connection lost, reconnecting..."),N==null||N.close(),F=setTimeout(V,2e3)}};return V(),()=>{N==null||N.close(),F&&clearTimeout(F)}},[o==null?void 0:o.run.id]);const S=async N=>{const V=await(await fetch(`/api/runs/${N}`)).json();s(V),c(new Set)},C=N=>{c(F=>{const V=new Set(F);return V.has(N)?V.delete(N):V.add(N),V})},P=N=>N===null?"-":N<1e3?`${N}ms`:`${(N/1e3).toFixed(2)}s`,k=N=>{if(!N)return null;try{return JSON.parse(N)}catch{return N}},E=N=>{var R,W;const F=N[0];if(!F)return"Empty run";const V=k(F.input),L=(R=V==null?void 0:V.prompt)==null?void 0:R.find(Q=>Q.role==="user");if(L){const Q=typeof L.content=="string"?L.content:Array.isArray(L.content)&&((W=L.content.find(ee=>ee.type==="text"))==null?void 0:W.text)||"";return Q.slice(0,50)+(Q.length>50?"...":"")}return"No user message"},A=N=>N.some(F=>F.error),D=N=>N.reduce((F,V)=>F+(V.duration_ms||0),0),$=N=>N.reduce((F,V)=>{const L=k(V.usage),R=Ji(L==null?void 0:L.inputTokens),W=es(L==null?void 0:L.outputTokens),Q={total:F.input.total+R.total};(F.input.noCache!==void 0||R.noCache!==void 0)&&(Q.noCache=(F.input.noCache??0)+(R.noCache??0)),(F.input.cacheRead!==void 0||R.cacheRead!==void 0)&&(Q.cacheRead=(F.input.cacheRead??0)+(R.cacheRead??0)),(F.input.cacheWrite!==void 0||R.cacheWrite!==void 0)&&(Q.cacheWrite=(F.input.cacheWrite??0)+(R.cacheWrite??0));const ee={total:F.output.total+W.total};return(F.output.text!==void 0||W.text!==void 0)&&(ee.text=(F.output.text??0)+(W.text??0)),(F.output.reasoning!==void 0||W.reasoning!==void 0)&&(ee.reasoning=(F.output.reasoning??0)+(W.reasoning??0)),{input:Q,output:ee}},{input:{total:0},output:{total:0}});return f.jsxs("div",{className:"flex flex-col h-screen bg-background",children:[f.jsxs("header",{className:"flex justify-between items-center px-5 py-3 border-b border-border bg-card",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(C0,{}),f.jsx("span",{className:"text-base font-medium text-muted-foreground",children:"DevTools"})]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsxs(Zf,{variant:"ghost",size:"sm",onClick:v,className:"h-8 px-3 text-xs",children:[f.jsx(g0,{className:"size-3.5"}),"Refresh"]}),f.jsxs(Zf,{variant:"ghost",size:"sm",onClick:x,className:"h-8 px-3 text-xs text-destructive-foreground hover:bg-destructive/20",children:[f.jsx(w0,{className:"size-3.5"}),"Clear"]})]})]}),f.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[f.jsxs("aside",{className:"w-[300px] border-r border-border bg-sidebar flex flex-col",children:[f.jsx("div",{className:"px-4 py-3 border-b border-border",children:f.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Runs"})}),f.jsx(ep,{className:"flex-1 overflow-hidden",children:p?f.jsx("p",{className:"p-4 text-muted-foreground text-sm",children:"Loading..."}):n.length===0?f.jsx("p",{className:"p-4 text-muted-foreground text-sm",children:"No runs yet"}):f.jsx("div",{children:n.map(N=>{const F=(o==null?void 0:o.run.id)===N.id;return f.jsxs("button",{className:`w-full text-left px-4 py-3 border-b border-border/50 transition-colors ${F?"bg-accent":"hover:bg-accent/50"}`,onClick:()=>S(N.id),children:[f.jsxs("div",{className:"flex items-start gap-2 mb-1.5 min-w-0",children:[N.isInProgress?f.jsx(il,{className:"size-3.5 text-blue-400 mt-0.5 shrink-0 animate-spin"}):N.hasError?f.jsx(ns,{className:"size-3.5 text-destructive-foreground mt-0.5 shrink-0"}):f.jsx(lo,{className:"size-3.5 text-muted-foreground mt-0.5 shrink-0"}),f.jsxs("div",{className:"min-w-0",children:[N.function_id&&f.jsx("span",{className:"text-[11px] font-mono text-sidebar-primary block truncate",children:N.function_id}),f.jsx("span",{className:"text-[13px] text-foreground leading-tight line-clamp-1 break-all",children:N.firstMessage||"Loading..."})]})]}),f.jsxs("div",{className:"flex items-center gap-2 ml-5.5 text-[11px] text-muted-foreground",children:[N.type&&f.jsxs("span",{className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium ${N.type==="stream"?"bg-blue-500/15 text-blue-400":"bg-emerald-500/15 text-emerald-400"}`,children:[N.type==="stream"&&f.jsx(Dp,{className:"size-2.5"}),N.type]}),f.jsxs("span",{children:[N.stepCount," ",N.stepCount===1?"step":"steps"]}),f.jsx("span",{children:"·"}),f.jsx("span",{className:"font-mono",children:new Date(N.started_at).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})]},N.id)})})})]}),f.jsx("main",{className:"flex-1 overflow-hidden",children:f.jsx(ep,{className:"h-full",children:o?f.jsxs("div",{className:"p-5",children:[f.jsxs("div",{className:"flex items-center justify-between mb-5",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("h2",{className:"text-sm font-medium text-foreground",children:E(o.steps)}),o.run.isInProgress&&f.jsxs(gu,{variant:"secondary",className:"text-[10px] h-5 gap-1.5 bg-blue-500/15 text-blue-400 border-blue-500/30",children:[f.jsx(il,{className:"size-3 animate-spin"}),"In Progress"]}),A(o.steps)&&f.jsx(gu,{variant:"destructive",className:"text-[10px] h-5",children:"Error"})]}),f.jsxs("div",{className:"flex items-center text-xs text-muted-foreground",children:[f.jsxs("span",{children:[o.steps.length," steps"]}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsx("span",{className:"font-mono",children:P(D(o.steps))}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("span",{className:"font-mono cursor-help",children:["input:"," ",Gm($(o.steps).input)," ",f.jsx("span",{className:"text-muted-foreground/50",children:"→"})," ","output:"," ",Km($(o.steps).output)]})}),f.jsx(ro,{children:f.jsx(Mh,{input:$(o.steps).input,output:$(o.steps).output})})]}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsx("span",{children:new Date(o.run.started_at).toLocaleString()}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("button",{onClick:()=>y(N=>!N),className:`inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-[11px] font-medium transition-colors ${h?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent/50"}`,children:[f.jsx(i0,{className:"size-3.5"}),"Timeline"]})}),f.jsx(ro,{children:h?"Switch to steps view":"Switch to timeline view"})]})]})]}),h?f.jsx(Cb,{runDetail:o,parseJson:k,formatDuration:P}):f.jsx("div",{className:"flex flex-col gap-3",children:o.steps.map((N,F)=>{const V=(o.childRuns??[]).filter(L=>L.run.parent_step_id===N.id);return f.jsx(Yh,{step:N,index:F,steps:o.steps,isRunInProgress:o.run.isInProgress??!1,expandedSteps:u,toggleStep:C,parseJson:k,formatDuration:P,childRuns:V,depth:0},N.id)})})]}):f.jsx("div",{className:"flex items-center justify-center min-h-[calc(100vh-57px)] text-muted-foreground",children:f.jsx("p",{className:"text-sm",children:"Select a run to view details"})})})})]})]})}Kv.createRoot(document.getElementById("root")).render(f.jsx(Eb,{}));
181
+ ){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}`);function RS(){const n=navigator.userAgent;return typeof window<"u"&&(/Firefox/.test(n)&&/Mobile/.test(n)||/FxiOS/.test(n))}function TS(){return qu(/^Mac/)}function PS(){return qu(/^iPhone/)}function Np(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function _S(){return qu(/^iPad/)||TS()&&navigator.maxTouchPoints>1}function kh(){return PS()||_S()}function qu(n){return typeof window<"u"&&window.navigator!=null?n.test(window.navigator.platform):void 0}const AS=24,OS=typeof window<"u"?w.useLayoutEffect:w.useEffect;function jp(...n){return(...l)=>{for(let o of n)typeof o=="function"&&o(...l)}}const du=typeof document<"u"&&window.visualViewport;function Rp(n){let l=window.getComputedStyle(n);return/(auto|scroll)/.test(l.overflow+l.overflowX+l.overflowY)}function Eh(n){for(Rp(n)&&(n=n.parentElement);n&&!Rp(n);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}const MS=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let Mi=0,fu;function DS(n={}){let{isDisabled:l}=n;OS(()=>{if(!l)return Mi++,Mi===1&&kh()&&(fu=LS()),()=>{Mi--,Mi===0&&(fu==null||fu())}},[l])}function LS(){let n,l=0,o=x=>{n=Eh(x.target),!(n===document.documentElement&&n===document.body)&&(l=x.changedTouches[0].pageY)},s=x=>{if(!n||n===document.documentElement||n===document.body){x.preventDefault();return}let S=x.changedTouches[0].pageY,C=n.scrollTop,P=n.scrollHeight-n.clientHeight;P!==0&&((C<=0&&S>l||C>=P&&S<l)&&x.preventDefault(),l=S)},u=x=>{let S=x.target;ku(S)&&S!==document.activeElement&&(x.preventDefault(),S.style.transform="translateY(-2000px)",S.focus(),requestAnimationFrame(()=>{S.style.transform=""}))},c=x=>{let S=x.target;ku(S)&&(S.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{S.style.transform="",du&&(du.height<window.innerHeight?requestAnimationFrame(()=>{Tp(S)}):du.addEventListener("resize",()=>Tp(S),{once:!0}))}))},p=()=>{window.scrollTo(0,0)},m=window.pageXOffset,h=window.pageYOffset,y=jp(zS(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`));window.scrollTo(0,0);let v=jp(nl(document,"touchstart",o,{passive:!1,capture:!0}),nl(document,"touchmove",s,{passive:!1,capture:!0}),nl(document,"touchend",u,{passive:!1,capture:!0}),nl(document,"focus",c,!0),nl(window,"scroll",p));return()=>{y(),v(),window.scrollTo(m,h)}}function zS(n,l,o){let s=n.style[l];return n.style[l]=o,()=>{n.style[l]=s}}function nl(n,l,o,s){return n.addEventListener(l,o,s),()=>{n.removeEventListener(l,o,s)}}function Tp(n){let l=document.scrollingElement||document.documentElement;for(;n&&n!==l;){let o=Eh(n);if(o!==document.documentElement&&o!==document.body&&o!==n){let s=o.getBoundingClientRect().top,u=n.getBoundingClientRect().top,c=n.getBoundingClientRect().bottom;const p=o.getBoundingClientRect().bottom+AS;c>p&&(o.scrollTop+=u-s)}n=o.parentElement}}function ku(n){return n instanceof HTMLInputElement&&!MS.has(n.type)||n instanceof HTMLTextAreaElement||n instanceof HTMLElement&&n.isContentEditable}function IS(n,l){typeof n=="function"?n(l):n!=null&&(n.current=l)}function $S(...n){return l=>n.forEach(o=>IS(o,l))}function Nh(...n){return w.useCallback($S(...n),n)}const jh=new WeakMap;function Ze(n,l,o=!1){if(!n||!(n instanceof HTMLElement))return;let s={};Object.entries(l).forEach(([u,c])=>{if(u.startsWith("--")){n.style.setProperty(u,c);return}s[u]=n.style[u],n.style[u]=c}),!o&&jh.set(n,s)}function FS(n,l){if(!n||!(n instanceof HTMLElement))return;let o=jh.get(n);o&&(n.style[l]=o[l])}const Xe=n=>{switch(n){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return n}};function Di(n,l){if(!n)return null;const o=window.getComputedStyle(n),s=o.transform||o.webkitTransform||o.mozTransform;let u=s.match(/^matrix3d\((.+)\)$/);return u?parseFloat(u[1].split(", ")[Xe(l)?13:12]):(u=s.match(/^matrix\((.+)\)$/),u?parseFloat(u[1].split(", ")[Xe(l)?5:4]):null)}function WS(n){return 8*(Math.log(n+1)-2)}function pu(n,l){if(!n)return()=>{};const o=n.style.cssText;return Object.assign(n.style,l),()=>{n.style.cssText=o}}function BS(...n){return(...l)=>{for(const o of n)typeof o=="function"&&o(...l)}}const Fe={DURATION:.5,EASE:[.32,.72,0,1]},Rh=.4,HS=.25,VS=100,Th=8,Li=16,Eu=26,mu="vaul-dragging";function Ph(n){const l=oe.useRef(n);return oe.useEffect(()=>{l.current=n}),oe.useMemo(()=>(...o)=>l.current==null?void 0:l.current.call(l,...o),[])}function US({defaultProp:n,onChange:l}){const o=oe.useState(n),[s]=o,u=oe.useRef(s),c=Ph(l);return oe.useEffect(()=>{u.current!==s&&(c(s),u.current=s)},[s,u,c]),o}function _h({prop:n,defaultProp:l,onChange:o=()=>{}}){const[s,u]=US({defaultProp:l,onChange:o}),c=n!==void 0,p=c?n:s,m=Ph(o),h=oe.useCallback(y=>{if(c){const x=typeof y=="function"?y(n):y;x!==n&&m(x)}else u(y)},[c,n,u,m]);return[p,h]}function YS({activeSnapPointProp:n,setActiveSnapPointProp:l,snapPoints:o,drawerRef:s,overlayRef:u,fadeFromIndex:c,onSnapPointChange:p,direction:m="bottom",container:h,snapToSequentialPoint:y}){const[v,x]=_h({prop:n,defaultProp:o==null?void 0:o[0],onChange:l}),[S,C]=oe.useState(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);oe.useEffect(()=>{function L(){C({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",L),()=>window.removeEventListener("resize",L)},[]);const P=oe.useMemo(()=>v===(o==null?void 0:o[o.length-1])||null,[o,v]),k=oe.useMemo(()=>{var L;return(L=o==null?void 0:o.findIndex(R=>R===v))!=null?L:null},[o,v]),E=o&&o.length>0&&(c||c===0)&&!Number.isNaN(c)&&o[c]===v||!o,A=oe.useMemo(()=>{const L=h?{width:h.getBoundingClientRect().width,height:h.getBoundingClientRect().height}:typeof window<"u"?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};var R;return(R=o==null?void 0:o.map(W=>{const Q=typeof W=="string";let ee=0;if(Q&&(ee=parseInt(W,10)),Xe(m)){const U=Q?ee:S?W*L.height:0;return S?m==="bottom"?L.height-U:-L.height+U:U}const ce=Q?ee:S?W*L.width:0;return S?m==="right"?L.width-ce:-L.width+ce:ce}))!=null?R:[]},[o,S,h]),D=oe.useMemo(()=>k!==null?A==null?void 0:A[k]:null,[A,k]),$=oe.useCallback(L=>{var R;const W=(R=A==null?void 0:A.findIndex(Q=>Q===L))!=null?R:null;p(W),Ze(s.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(m)?`translate3d(0, ${L}px, 0)`:`translate3d(${L}px, 0, 0)`}),A&&W!==A.length-1&&c!==void 0&&W!==c&&W<c?Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"0"}):Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"1"}),x(o==null?void 0:o[Math.max(W,0)])},[s.current,o,A,c,u,x]);oe.useEffect(()=>{if(v||n){var L;const R=(L=o==null?void 0:o.findIndex(W=>W===n||W===v))!=null?L:-1;A&&R!==-1&&typeof A[R]=="number"&&$(A[R])}},[v,n,o,A,$]);function N({draggedDistance:L,closeDrawer:R,velocity:W,dismissible:Q}){if(c===void 0)return;const ee=m==="bottom"||m==="right"?(D??0)-L:(D??0)+L,ce=k===c-1,U=k===0,q=L>0;if(ce&&Ze(u.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`}),!y&&W>2&&!q){Q?R():$(A[0]);return}if(!y&&W>2&&q&&A&&o){$(A[o.length-1]);return}const te=A==null?void 0:A.reduce((ne,B)=>typeof ne!="number"||typeof B!="number"?ne:Math.abs(B-ee)<Math.abs(ne-ee)?B:ne),J=Xe(m)?window.innerHeight:window.innerWidth;if(W>Rh&&Math.abs(L)<J*.4){const ne=q?1:-1;if(ne>0&&P&&o){$(A[o.length-1]);return}if(U&&ne<0&&Q&&R(),k===null)return;$(A[k+ne]);return}$(te)}function F({draggedDistance:L}){if(D===null)return;const R=m==="bottom"||m==="right"?D-L:D+L;(m==="bottom"||m==="right")&&R<A[A.length-1]||(m==="top"||m==="left")&&R>A[A.length-1]||Ze(s.current,{transform:Xe(m)?`translate3d(0, ${R}px, 0)`:`translate3d(${R}px, 0, 0)`})}function V(L,R){if(!o||typeof k!="number"||!A||c===void 0)return null;const W=k===c-1;if(k>=c&&R)return 0;if(W&&!R)return 1;if(!E&&!W)return null;const ee=W?k+1:k-1,ce=W?A[ee]-A[ee-1]:A[ee+1]-A[ee],U=L/Math.abs(ce);return W?1-U:U}return{isLastSnapPoint:P,activeSnapPoint:v,shouldFade:E,getPercentageDragged:V,setActiveSnapPoint:x,activeSnapPointIndex:k,onRelease:N,onDrag:F,snapPointsOffset:A}}const XS=()=>()=>{};function QS(){const{direction:n,isOpen:l,shouldScaleBackground:o,setBackgroundColorOnScale:s,noBodyStyles:u}=pl(),c=oe.useRef(null),p=w.useMemo(()=>document.body.style.backgroundColor,[]);function m(){return(window.innerWidth-Eu)/window.innerWidth}oe.useEffect(()=>{if(l&&o){c.current&&clearTimeout(c.current);const h=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!h)return;BS(s&&!u?pu(document.body,{background:"black"}):XS,pu(h,{transformOrigin:Xe(n)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${Fe.DURATION}s`,transitionTimingFunction:`cubic-bezier(${Fe.EASE.join(",")})`}));const y=pu(h,{borderRadius:`${Th}px`,overflow:"hidden",...Xe(n)?{transform:`scale(${m()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${m()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{y(),c.current=window.setTimeout(()=>{p?document.body.style.background=p:document.body.style.removeProperty("background")},Fe.DURATION*1e3)}}},[l,o,p])}let rl=null;function GS({isOpen:n,modal:l,nested:o,hasBeenOpened:s,preventScrollRestoration:u,noBodyStyles:c}){const[p,m]=oe.useState(()=>typeof window<"u"?window.location.href:""),h=oe.useRef(0),y=oe.useCallback(()=>{if(Np()&&rl===null&&n&&!c){rl={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};const{scrollX:x,innerHeight:S}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-h.current}px`,left:`${-x}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{const C=S-window.innerHeight;C&&h.current>=S&&(document.body.style.top=`${-(h.current+C)}px`)}),300)}},[n]),v=oe.useCallback(()=>{if(Np()&&rl!==null&&!c){const x=-parseInt(document.body.style.top,10),S=-parseInt(document.body.style.left,10);Object.assign(document.body.style,rl),window.requestAnimationFrame(()=>{if(u&&p!==window.location.href){m(window.location.href);return}window.scrollTo(S,x)}),rl=null}},[p]);return oe.useEffect(()=>{function x(){h.current=window.scrollY}return x(),window.addEventListener("scroll",x),()=>{window.removeEventListener("scroll",x)}},[]),oe.useEffect(()=>{if(l)return()=>{typeof document>"u"||document.querySelector("[data-vaul-drawer]")||v()}},[l,v]),oe.useEffect(()=>{o||!s||(n?(!window.matchMedia("(display-mode: standalone)").matches&&y(),l||window.setTimeout(()=>{v()},500)):v())},[n,s,p,l,o,y,v]),{restorePositionSetting:v}}function KS({open:n,onOpenChange:l,children:o,onDrag:s,onRelease:u,snapPoints:c,shouldScaleBackground:p=!1,setBackgroundColorOnScale:m=!0,closeThreshold:h=HS,scrollLockTimeout:y=VS,dismissible:v=!0,handleOnly:x=!1,fadeFromIndex:S=c&&c.length-1,activeSnapPoint:C,setActiveSnapPoint:P,fixed:k,modal:E=!0,onClose:A,nested:D,noBodyStyles:$=!1,direction:N="bottom",defaultOpen:F=!1,disablePreventScroll:V=!0,snapToSequentialPoint:L=!1,preventScrollRestoration:R=!1,repositionInputs:W=!0,onAnimationEnd:Q,container:ee,autoFocus:ce=!1}){var U,q;const[te=!1,J]=_h({defaultProp:F,prop:n,onChange:ye=>{l==null||l(ye),!ye&&!D&&ho(),setTimeout(()=>{Q==null||Q(ye)},Fe.DURATION*1e3),ye&&!E&&typeof window<"u"&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),ye||(document.body.style.pointerEvents="auto")}}),[ne,B]=oe.useState(!1),[K,I]=oe.useState(!1),[_,H]=oe.useState(!1),fe=oe.useRef(null),we=oe.useRef(null),pe=oe.useRef(null),me=oe.useRef(null),Ce=oe.useRef(null),be=oe.useRef(!1),xe=oe.useRef(null),ze=oe.useRef(0),Qe=oe.useRef(!1),Ct=oe.useRef(!F),ot=oe.useRef(0),he=oe.useRef(null),ir=oe.useRef(((U=he.current)==null?void 0:U.getBoundingClientRect().height)||0),sr=oe.useRef(((q=he.current)==null?void 0:q.getBoundingClientRect().width)||0),hn=oe.useRef(0),Rr=oe.useCallback(ye=>{c&&ye===Tn.length-1&&(we.current=new Date)},[]),{activeSnapPoint:en,activeSnapPointIndex:_t,setActiveSnapPoint:gn,onRelease:po,snapPointsOffset:Tn,onDrag:ml,shouldFade:mo,getPercentageDragged:hl}=YS({snapPoints:c,activeSnapPointProp:C,setActiveSnapPointProp:P,drawerRef:he,fadeFromIndex:S,overlayRef:fe,onSnapPointChange:Rr,direction:N,container:ee,snapToSequentialPoint:L});DS({isDisabled:!te||K||!E||_||!ne||!W||!V});const{restorePositionSetting:ho}=GS({isOpen:te,modal:E,nested:D??!1,hasBeenOpened:ne,preventScrollRestoration:R,noBodyStyles:$});function vn(){return(window.innerWidth-Eu)/window.innerWidth}function gl(ye){var je,Re;!v&&!c||he.current&&!he.current.contains(ye.target)||(ir.current=((je=he.current)==null?void 0:je.getBoundingClientRect().height)||0,sr.current=((Re=he.current)==null?void 0:Re.getBoundingClientRect().width)||0,I(!0),pe.current=new Date,kh()&&window.addEventListener("touchend",()=>be.current=!1,{once:!0}),ye.target.setPointerCapture(ye.pointerId),ze.current=Xe(N)?ye.pageY:ye.pageX)}function Pn(ye,je){var Re;let ke=ye;const De=(Re=window.getSelection())==null?void 0:Re.toString(),lt=he.current?Di(he.current,N):null,Je=new Date;if(ke.tagName==="SELECT"||ke.hasAttribute("data-vaul-no-drag")||ke.closest("[data-vaul-no-drag]"))return!1;if(N==="right"||N==="left")return!0;if(we.current&&Je.getTime()-we.current.getTime()<500)return!1;if(lt!==null&&(N==="bottom"?lt>0:lt<0))return!0;if(De&&De.length>0)return!1;if(Ce.current&&Je.getTime()-Ce.current.getTime()<y&&lt===0||je)return Ce.current=Je,!1;for(;ke;){if(ke.scrollHeight>ke.clientHeight){if(ke.scrollTop!==0)return Ce.current=new Date,!1;if(ke.getAttribute("role")==="dialog")return!0}ke=ke.parentNode}return!0}function ar(ye){if(he.current&&K){const je=N==="bottom"||N==="right"?1:-1,Re=(ze.current-(Xe(N)?ye.pageY:ye.pageX))*je,ke=Re>0,De=c&&!v&&!ke;if(De&&_t===0)return;const lt=Math.abs(Re),Je=document.querySelector("[data-vaul-drawer-wrapper]"),Ft=N==="bottom"||N==="top"?ir.current:sr.current;let gt=lt/Ft;const Wt=hl(lt,ke);if(Wt!==null&&(gt=Wt),De&&gt>=1||!be.current&&!Pn(ye.target,ke))return;if(he.current.classList.add(mu),be.current=!0,Ze(he.current,{transition:"none"}),Ze(fe.current,{transition:"none"}),c&&ml({draggedDistance:Re}),ke&&!c){const at=WS(Re),_n=Math.min(at*-1,0)*je;Ze(he.current,{transform:Xe(N)?`translate3d(0, ${_n}px, 0)`:`translate3d(${_n}px, 0, 0)`});return}const Bt=1-gt;if((mo||S&&_t===S-1)&&(s==null||s(ye,gt),Ze(fe.current,{opacity:`${Bt}`,transition:"none"},!0)),Je&&fe.current&&p){const at=Math.min(vn()+gt*(1-vn()),1),_n=8-gt*8,An=Math.max(0,14-gt*14);Ze(Je,{borderRadius:`${_n}px`,transform:Xe(N)?`scale(${at}) translate3d(0, ${An}px, 0)`:`scale(${at}) translate3d(${An}px, 0, 0)`,transition:"none"},!0)}if(!c){const at=lt*je;Ze(he.current,{transform:Xe(N)?`translate3d(0, ${at}px, 0)`:`translate3d(${at}px, 0, 0)`})}}}oe.useEffect(()=>{window.requestAnimationFrame(()=>{Ct.current=!0})},[]),oe.useEffect(()=>{var ye;function je(){if(!he.current||!W)return;const Re=document.activeElement;if(ku(Re)||Qe.current){var ke;const De=((ke=window.visualViewport)==null?void 0:ke.height)||0,lt=window.innerHeight;let Je=lt-De;const Ft=he.current.getBoundingClientRect().height||0,gt=Ft>lt*.8;hn.current||(hn.current=Ft);const Wt=he.current.getBoundingClientRect().top;if(Math.abs(ot.current-Je)>60&&(Qe.current=!Qe.current),c&&c.length>0&&Tn&&_t){const Bt=Tn[_t]||0;Je+=Bt}if(ot.current=Je,Ft>De||Qe.current){const Bt=he.current.getBoundingClientRect().height;let at=Bt;Bt>De&&(at=De-(gt?Wt:Eu)),k?he.current.style.height=`${Bt-Math.max(Je,0)}px`:he.current.style.height=`${Math.max(at,De-Wt)}px`}else RS()||(he.current.style.height=`${hn.current}px`);c&&c.length>0&&!Qe.current?he.current.style.bottom="0px":he.current.style.bottom=`${Math.max(Je,0)}px`}}return(ye=window.visualViewport)==null||ye.addEventListener("resize",je),()=>{var Re;return(Re=window.visualViewport)==null?void 0:Re.removeEventListener("resize",je)}},[_t,c,Tn]);function ur(ye){vl(),A==null||A(),ye||J(!1),setTimeout(()=>{c&&gn(c[0])},Fe.DURATION*1e3)}function go(){if(!he.current)return;const ye=document.querySelector("[data-vaul-drawer-wrapper]"),je=Di(he.current,N);Ze(he.current,{transform:"translate3d(0, 0, 0)",transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`}),Ze(fe.current,{transition:`opacity ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,opacity:"1"}),p&&je&&je>0&&te&&Ze(ye,{borderRadius:`${Th}px`,overflow:"hidden",...Xe(N)?{transform:`scale(${vn()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${vn()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${Fe.DURATION}s`,transitionTimingFunction:`cubic-bezier(${Fe.EASE.join(",")})`},!0)}function vl(){!K||!he.current||(he.current.classList.remove(mu),be.current=!1,I(!1),me.current=new Date)}function ms(ye){if(!K||!he.current)return;he.current.classList.remove(mu),be.current=!1,I(!1),me.current=new Date;const je=Di(he.current,N);if(!ye||!Pn(ye.target,!1)||!je||Number.isNaN(je)||pe.current===null)return;const Re=me.current.getTime()-pe.current.getTime(),ke=ze.current-(Xe(N)?ye.pageY:ye.pageX),De=Math.abs(ke)/Re;if(De>.05&&(H(!0),setTimeout(()=>{H(!1)},200)),c){po({draggedDistance:ke*(N==="bottom"||N==="right"?1:-1),closeDrawer:ur,velocity:De,dismissible:v}),u==null||u(ye,!0);return}if(N==="bottom"||N==="right"?ke>0:ke<0){go(),u==null||u(ye,!0);return}if(De>Rh){ur(),u==null||u(ye,!1);return}var lt;const Je=Math.min((lt=he.current.getBoundingClientRect().height)!=null?lt:0,window.innerHeight);var Ft;const gt=Math.min((Ft=he.current.getBoundingClientRect().width)!=null?Ft:0,window.innerWidth),Wt=N==="left"||N==="right";if(Math.abs(je)>=(Wt?gt:Je)*h){ur(),u==null||u(ye,!1);return}u==null||u(ye,!0),go()}oe.useEffect(()=>(te&&(Ze(document.documentElement,{scrollBehavior:"auto"}),we.current=new Date),()=>{FS(document.documentElement,"scrollBehavior")}),[te]);function vo(ye){const je=ye?(window.innerWidth-Li)/window.innerWidth:1,Re=ye?-16:0;xe.current&&window.clearTimeout(xe.current),Ze(he.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(N)?`scale(${je}) translate3d(0, ${Re}px, 0)`:`scale(${je}) translate3d(${Re}px, 0, 0)`}),!ye&&he.current&&(xe.current=setTimeout(()=>{const ke=Di(he.current,N);Ze(he.current,{transition:"none",transform:Xe(N)?`translate3d(0, ${ke}px, 0)`:`translate3d(${ke}px, 0, 0)`})},500))}function yo(ye,je){if(je<0)return;const Re=(window.innerWidth-Li)/window.innerWidth,ke=Re+je*(1-Re),De=-16+je*Li;Ze(he.current,{transform:Xe(N)?`scale(${ke}) translate3d(0, ${De}px, 0)`:`scale(${ke}) translate3d(${De}px, 0, 0)`,transition:"none"})}function xo(ye,je){const Re=Xe(N)?window.innerHeight:window.innerWidth,ke=je?(Re-Li)/Re:1,De=je?-16:0;je&&Ze(he.current,{transition:`transform ${Fe.DURATION}s cubic-bezier(${Fe.EASE.join(",")})`,transform:Xe(N)?`scale(${ke}) translate3d(0, ${De}px, 0)`:`scale(${ke}) translate3d(${De}px, 0, 0)`})}return oe.useEffect(()=>{E||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[E]),oe.createElement(SS,{defaultOpen:F,onOpenChange:ye=>{!v&&!ye||(ye?B(!0):ur(!0),J(ye))},open:te},oe.createElement(Ch.Provider,{value:{activeSnapPoint:en,snapPoints:c,setActiveSnapPoint:gn,drawerRef:he,overlayRef:fe,onOpenChange:l,onPress:gl,onRelease:ms,onDrag:ar,dismissible:v,shouldAnimate:Ct,handleOnly:x,isOpen:te,isDragging:K,shouldFade:mo,closeDrawer:ur,onNestedDrag:yo,onNestedOpenChange:vo,onNestedRelease:xo,keyboardIsOpen:Qe,modal:E,snapPointsOffset:Tn,activeSnapPointIndex:_t,direction:N,shouldScaleBackground:p,setBackgroundColorOnScale:m,noBodyStyles:$,container:ee,autoFocus:ce}},o))}const Ah=oe.forwardRef(function({...n},l){const{overlayRef:o,snapPoints:s,onRelease:u,shouldFade:c,isOpen:p,modal:m,shouldAnimate:h}=pl(),y=Nh(l,o),v=s&&s.length>0;if(!m)return null;const x=oe.useCallback(S=>u(S),[u]);return oe.createElement(kS,{onMouseUp:x,ref:y,"data-vaul-overlay":"","data-vaul-snap-points":p&&v?"true":"false","data-vaul-snap-points-overlay":p&&c?"true":"false","data-vaul-animate":h!=null&&h.current?"true":"false",...n})});Ah.displayName="Drawer.Overlay";const Oh=oe.forwardRef(function({onPointerDownOutside:n,style:l,onOpenAutoFocus:o,...s},u){const{drawerRef:c,onPress:p,onRelease:m,onDrag:h,keyboardIsOpen:y,snapPointsOffset:v,activeSnapPointIndex:x,modal:S,isOpen:C,direction:P,snapPoints:k,container:E,handleOnly:A,shouldAnimate:D,autoFocus:$}=pl(),[N,F]=oe.useState(!1),V=Nh(u,c),L=oe.useRef(null),R=oe.useRef(null),W=oe.useRef(!1),Q=k&&k.length>0;QS();const ee=(U,q,te=0)=>{if(W.current)return!0;const J=Math.abs(U.y),ne=Math.abs(U.x),B=ne>J,K=["bottom","right"].includes(q)?1:-1;if(q==="left"||q==="right"){if(!(U.x*K<0)&&ne>=0&&ne<=te)return B}else if(!(U.y*K<0)&&J>=0&&J<=te)return!B;return W.current=!0,!0};oe.useEffect(()=>{Q&&window.requestAnimationFrame(()=>{F(!0)})},[]);function ce(U){L.current=null,W.current=!1,m(U)}return oe.createElement(ES,{"data-vaul-drawer-direction":P,"data-vaul-drawer":"","data-vaul-delayed-snap-points":N?"true":"false","data-vaul-snap-points":C&&Q?"true":"false","data-vaul-custom-container":E?"true":"false","data-vaul-animate":D!=null&&D.current?"true":"false",...s,ref:V,style:v&&v.length>0?{"--snap-point-height":`${v[x??0]}px`,...l}:l,onPointerDown:U=>{A||(s.onPointerDown==null||s.onPointerDown.call(s,U),L.current={x:U.pageX,y:U.pageY},p(U))},onOpenAutoFocus:U=>{o==null||o(U),$||U.preventDefault()},onPointerDownOutside:U=>{if(n==null||n(U),!S||U.defaultPrevented){U.preventDefault();return}y.current&&(y.current=!1)},onFocusOutside:U=>{if(!S){U.preventDefault();return}},onPointerMove:U=>{if(R.current=U,A||(s.onPointerMove==null||s.onPointerMove.call(s,U),!L.current))return;const q=U.pageY-L.current.y,te=U.pageX-L.current.x,J=U.pointerType==="touch"?10:2;ee({x:te,y:q},P,J)?h(U):(Math.abs(te)>J||Math.abs(q)>J)&&(L.current=null)},onPointerUp:U=>{s.onPointerUp==null||s.onPointerUp.call(s,U),L.current=null,W.current=!1,m(U)},onPointerOut:U=>{s.onPointerOut==null||s.onPointerOut.call(s,U),ce(R.current)},onContextMenu:U=>{s.onContextMenu==null||s.onContextMenu.call(s,U),R.current&&ce(R.current)}})});Oh.displayName="Drawer.Content";const qS=250,ZS=120,JS=oe.forwardRef(function({preventCycle:n=!1,children:l,...o},s){const{closeDrawer:u,isDragging:c,snapPoints:p,activeSnapPoint:m,setActiveSnapPoint:h,dismissible:y,handleOnly:v,isOpen:x,onPress:S,onDrag:C}=pl(),P=oe.useRef(null),k=oe.useRef(!1);function E(){if(k.current){$();return}window.setTimeout(()=>{A()},ZS)}function A(){if(c||n||k.current){$();return}if($(),!p||p.length===0){y||u();return}if(m===p[p.length-1]&&y){u();return}const F=p.findIndex(L=>L===m);if(F===-1)return;const V=p[F+1];h(V)}function D(){P.current=window.setTimeout(()=>{k.current=!0},qS)}function $(){P.current&&window.clearTimeout(P.current),k.current=!1}return oe.createElement("div",{onClick:E,onPointerCancel:$,onPointerDown:N=>{v&&S(N),D()},onPointerMove:N=>{v&&C(N)},ref:s,"data-vaul-drawer-visible":x?"true":"false","data-vaul-handle":"","aria-hidden":"true",...o},oe.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},l))});JS.displayName="Drawer.Handle";function eb(n){const l=pl(),{container:o=l.container,...s}=n;return oe.createElement(CS,{container:o,...s})}const fo={Root:KS,Content:Oh,Overlay:Ah,Trigger:bS,Portal:eb,Title:NS};function Fi({...n}){return f.jsx(fo.Root,{"data-slot":"drawer",...n})}function Wi({...n}){return f.jsx(fo.Trigger,{"data-slot":"drawer-trigger",...n})}function tb({...n}){return f.jsx(fo.Portal,{"data-slot":"drawer-portal",...n})}function nb({className:n,...l}){return f.jsx(fo.Overlay,{"data-slot":"drawer-overlay",className:fn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",n),...l})}function Bi({className:n,children:l,...o}){return f.jsxs(tb,{"data-slot":"drawer-portal",children:[f.jsx(nb,{}),f.jsxs(fo.Content,{"data-slot":"drawer-content",className:fn("group/drawer-content bg-background fixed z-50 flex h-auto flex-col","data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b","data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t","data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:border-l","data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",n),...o,children:[f.jsx("div",{className:"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block"}),l]})]})}function Hi({className:n,...l}){return f.jsx("div",{"data-slot":"drawer-header",className:fn("flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",n),...l})}function Vi({className:n,...l}){return f.jsx(fo.Title,{"data-slot":"drawer-title",className:fn("text-foreground font-semibold",n),...l})}function It({data:n,compact:l=!1,size:o="sm"}){const[s,u]=w.useState(!1),c=JSON.stringify(n,null,2),p=l&&c.length>200?JSON.stringify(n):c,m={sm:"text-xs",base:"text-sm",lg:"text-base"},h=async()=>{await navigator.clipboard.writeText(c),u(!0),setTimeout(()=>u(!1),2e3)};return f.jsxs("div",{className:"relative group",children:[f.jsx("button",{onClick:h,className:"absolute top-1.5 right-1.5 p-1.5 rounded-md border border-border bg-background opacity-0 group-hover:opacity-100 transition-opacity z-10",title:"Copy to clipboard",children:s?f.jsx(Op,{className:"size-3 text-success"}):f.jsx(Mp,{className:"size-3 text-muted-foreground"})}),f.jsx("pre",{className:`font-mono ${m[o]} text-muted-foreground whitespace-pre-wrap wrap-break-words bg-background rounded p-2 ${l?"overflow-hidden max-h-20":""}`,children:p})]})}function rb({rawRequest:n,rawResponse:l,rawChunks:o,isStream:s}){const[u,c]=w.useState(!1),[p,m]=w.useState("parsed");if(!n&&!l)return null;const h=s&&o;return f.jsxs("div",{className:"border-t border-border",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-4 py-2.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors",onClick:()=>c(!u),children:[f.jsx(or,{className:`size-3 transition-transform ${u?"rotate-90":""}`}),f.jsx("span",{className:"font-medium tracking-wider uppercase",children:"Request / Response"})]}),u&&f.jsxs("div",{className:"grid grid-cols-2 gap-4 px-4 pb-4",children:[n&&f.jsxs("div",{className:"flex flex-col",children:[f.jsx("div",{className:"flex items-end mb-2 h-7",children:f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:"Request"})}),f.jsx("div",{className:"max-h-[400px] overflow-auto rounded-md border border-border",children:f.jsx(It,{data:rr(n)})})]}),(l||o)&&f.jsxs("div",{className:"flex flex-col",children:[f.jsxs("div",{className:"flex justify-between items-end mb-2 h-7",children:[f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:s?"Stream":"Response"}),h&&f.jsxs("div",{className:"inline-flex rounded-md border border-border bg-muted/30 p-0.5",children:[f.jsx("button",{onClick:()=>m("parsed"),className:`px-2 py-0.5 text-[10px] font-medium rounded transition-colors ${p==="parsed"?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:"AI SDK"}),f.jsx("button",{onClick:()=>m("raw"),className:`px-2 py-0.5 text-[10px] font-medium rounded transition-colors ${p==="raw"?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:"Provider"})]})]}),f.jsx("div",{className:"max-h-[400px] overflow-auto rounded-md border border-border",children:f.jsx(It,{data:rr(h&&p==="raw"?o:l)})})]})]})]})}function ob({usage:n}){const l=Ji(n==null?void 0:n.inputTokens),o=es(n==null?void 0:n.outputTokens);return f.jsxs("div",{className:"space-y-6",children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsxs("div",{className:"p-4 rounded-lg border border-border bg-card",children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Input Tokens"}),f.jsx("div",{className:"text-2xl font-semibold",children:l.total}),(l.cacheRead!==void 0||l.cacheWrite!==void 0)&&f.jsxs("div",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:[l.cacheRead!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Cache read"}),f.jsx("span",{className:"font-mono",children:l.cacheRead})]}),l.cacheWrite!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Cache write"}),f.jsx("span",{className:"font-mono",children:l.cacheWrite})]}),l.noCache!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"No cache"}),f.jsx("span",{className:"font-mono",children:l.noCache})]})]})]}),f.jsxs("div",{className:"p-4 rounded-lg border border-border bg-card",children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Output Tokens"}),f.jsx("div",{className:"text-2xl font-semibold",children:o.total}),(o.text!==void 0||o.reasoning!==void 0)&&f.jsxs("div",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:[o.text!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Text"}),f.jsx("span",{className:"font-mono",children:o.text})]}),o.reasoning!==void 0&&f.jsxs("div",{className:"flex justify-between",children:[f.jsx("span",{children:"Reasoning"}),f.jsx("span",{className:"font-mono",children:o.reasoning})]})]})]})]}),(n==null?void 0:n.raw)!=null&&f.jsxs("div",{children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Raw Provider Usage"}),f.jsx(It,{data:n.raw,size:"sm"})]}),f.jsxs("div",{children:[f.jsx("div",{className:"mb-2 text-xs font-medium tracking-wider uppercase text-muted-foreground",children:"Full Usage Object"}),f.jsx(It,{data:n,size:"sm"})]})]})}function Mh({input:n,output:l,raw:o}){const s=n.noCache!==void 0||n.cacheRead!==void 0||n.cacheWrite!==void 0,u=l.text!==void 0||l.reasoning!==void 0;return s||u?f.jsxs("div",{className:"space-y-2 text-xs",children:[f.jsxs("div",{children:[f.jsxs("div",{className:"mb-1 font-medium",children:["Input: ",n.total]}),n.cacheRead!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Cache read: ",n.cacheRead]}),n.cacheWrite!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Cache write: ",n.cacheWrite]})]}),f.jsxs("div",{children:[f.jsxs("div",{className:"mb-1 font-medium",children:["Output: ",l.total]}),l.text!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Text: ",l.text]}),l.reasoning!==void 0&&f.jsxs("div",{className:"ml-2 text-muted-foreground",children:["Reasoning: ",l.reasoning]})]}),o!==void 0&&f.jsx("div",{className:"pt-1 mt-1 border-t border-border",children:f.jsxs("div",{className:"text-muted-foreground/70 font-mono text-[10px] max-w-[200px] truncate",children:["Raw: ",JSON.stringify(o)]})})]}):f.jsxs("div",{className:"text-xs",children:[f.jsxs("div",{children:["Input: ",n.total]}),f.jsxs("div",{children:["Output: ",l.total]})]})}function Dh({content:n}){const[l,o]=w.useState(!1),s=n.length>200?n.slice(0,200)+"…":n;return f.jsxs("div",{className:"overflow-hidden rounded-md border border-amber-500/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-amber-500/10 hover:bg-amber-500/20",onClick:()=>o(!l),children:[f.jsx(or,{className:`size-3 text-amber-500 transition-transform shrink-0 ${l?"rotate-90":""}`}),f.jsx(ll,{className:"text-amber-500 size-3 shrink-0"}),f.jsx("span",{className:"text-xs font-medium text-amber-500",children:"Thinking"}),!l&&f.jsx("span",{className:"text-[11px] text-amber-500/70 truncate ml-1",children:s})]}),l&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-amber-500/30",children:f.jsx("div",{className:"text-xs leading-relaxed whitespace-pre-wrap text-foreground/80",children:n})})]})}function Lh({content:n,defaultExpanded:l=!1,isSystem:o=!1}){const[s,u]=w.useState(l),[c,p]=w.useState(!1),m=n.length>200?n.slice(0,200)+"…":n,h=o?"border-blue-500/30":"border-border",y=o?"bg-blue-500/10":"bg-muted/30",v=o?"hover:bg-blue-500/20":"hover:bg-muted/50",x=o?"text-blue-400":"text-muted-foreground",S=o?"text-blue-400":"text-foreground",C=async P=>{P.stopPropagation(),await navigator.clipboard.writeText(n),p(!0),setTimeout(()=>p(!1),2e3)};return f.jsxs("div",{className:`overflow-hidden rounded-md border ${h}`,children:[f.jsxs("button",{className:`flex gap-2 items-center px-3 py-2 w-full transition-colors ${y} ${v}`,onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 ${x} transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(lo,{className:`size-3 ${x} shrink-0`}),f.jsx("span",{className:`text-xs font-medium ${S}`,children:"Text"}),!s&&f.jsx("span",{className:`text-[11px] ${o?"text-blue-400/70":"text-muted-foreground"} truncate ml-1`,children:m})]}),s&&f.jsxs("div",{className:`relative p-3 border-t bg-card/50 ${h} group`,children:[f.jsx("button",{onClick:C,className:"absolute top-1.5 right-1.5 p-1.5 rounded-md border border-border bg-background opacity-0 group-hover:opacity-100 transition-opacity z-10",title:"Copy to clipboard",children:c?f.jsx(Op,{className:"size-3 text-success"}):f.jsx(Mp,{className:"size-3 text-muted-foreground"})}),f.jsx("div",{className:"overflow-y-auto max-h-60 text-xs leading-relaxed whitespace-pre-wrap text-foreground",children:n})]})]})}function lb({tool:n}){const[l,o]=w.useState(!1),s=n.parameters||n.description;return f.jsxs("div",{className:"overflow-hidden rounded-md border border-border bg-background",children:[f.jsxs("button",{className:"w-full flex items-center justify-between p-2.5 hover:bg-accent/50 transition-colors",onClick:()=>o(!l),children:[f.jsx("span",{className:"font-mono text-sm text-purple",children:n.name}),s&&f.jsx(or,{className:`size-3 text-muted-foreground transition-transform ${l?"rotate-90":""}`})]}),!l&&n.description&&f.jsx("div",{className:"px-2.5 pb-2",children:f.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:n.description})}),l&&s&&f.jsxs("div",{className:"px-2.5 pb-2.5 border-t border-border",children:[n.description&&f.jsx("p",{className:`pt-2 text-xs text-muted-foreground ${n.parameters?"mb-2":""}`,children:n.description}),n.parameters&&f.jsx(It,{data:n.parameters,compact:!0})]})]})}function ib({toolName:n,toolCallId:l,data:o}){const[s,u]=w.useState(!1),c=typeof o=="string"?rr(o):o;return f.jsxs("div",{className:"overflow-hidden rounded-md border border-purple/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-purple/10 hover:bg-purple/20",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-purple transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(kr,{className:"size-3 text-purple shrink-0"}),f.jsx("span",{className:"font-mono text-xs font-medium text-purple",children:n}),!s&&c!=null&&typeof c=="object"&&!Array.isArray(c)&&f.jsx("span",{className:"text-[11px] font-mono text-purple/70 truncate",children:qm(c)}),l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/60 ml-auto shrink-0",children:l})]}),s&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-purple/30",children:f.jsx(It,{data:c})})]})}function sb({toolName:n,toolCallId:l,data:o}){const[s,u]=w.useState(!1);return f.jsxs("div",{className:"overflow-hidden rounded-md border border-success/30",children:[f.jsxs("button",{className:"flex gap-2 items-center px-3 py-2 w-full transition-colors bg-success/10 hover:bg-success/20",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-success transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx("span",{className:"text-xs font-medium text-success",children:"Result"}),n&&f.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:n}),l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/60 ml-auto shrink-0",children:l})]}),s&&f.jsx("div",{className:"p-3 border-t bg-card/50 border-success/30",children:f.jsx(It,{data:o})})]})}function ab({modelId:n,provider:l,input:o,providerOptions:s,usage:u}){var m,h;const c=((m=o==null?void 0:o.tools)==null?void 0:m.length)??0,p=[];if((o==null?void 0:o.temperature)!=null&&p.push({label:"temp",value:String(o.temperature)}),(o==null?void 0:o.maxOutputTokens)!=null&&p.push({label:"max tokens",value:String(o.maxOutputTokens)}),(o==null?void 0:o.topP)!=null&&p.push({label:"topP",value:String(o.topP)}),(o==null?void 0:o.topK)!=null&&p.push({label:"topK",value:String(o.topK)}),(o==null?void 0:o.toolChoice)!=null){const y=typeof o.toolChoice=="string"?o.toolChoice:o.toolChoice.type;p.push({label:"tool choice",value:y})}return f.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-muted/20 border-b border-border text-[11px] text-muted-foreground",children:[l&&f.jsx("span",{className:"px-1.5 py-0.5 rounded bg-sidebar-primary/10 text-sidebar-primary text-[10px] font-medium",children:l}),f.jsx("span",{className:"font-mono",children:n}),p.length>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),p.map((y,v)=>f.jsxs("span",{children:[y.label,": ",f.jsx("span",{className:"text-foreground",children:y.value}),v<p.length-1&&f.jsx("span",{className:"mx-1 text-muted-foreground/30",children:"·"})]},v))]}),c>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(kr,{className:"size-3"}),c," available ",c===1?"tool":"tools"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsxs(Vi,{children:["Available Tools (",c,")"]})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx("div",{className:"space-y-3",children:(h=o==null?void 0:o.tools)==null?void 0:h.map((y,v)=>f.jsx(lb,{tool:y},v))})})]})]})]}),s&&Object.keys(s).length>0&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(y0,{className:"size-3"}),"Provider options"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsx(Vi,{children:"Provider Options"})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx(It,{data:s,size:"lg"})})]})]})]}),u&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-muted-foreground/30",children:"·"}),f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"inline-flex gap-1 items-center transition-colors cursor-pointer hover:text-foreground",children:[f.jsx(o0,{className:"size-3"}),"Usage"]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsx(Vi,{children:"Token Usage"})}),f.jsx("div",{className:"overflow-y-auto flex-1 p-4",children:f.jsx(ob,{usage:u})})]})]})]})]})}function zh({className:n,...l}){return f.jsx("div",{"data-slot":"card",className:fn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",n),...l})}var ps="Collapsible",[ub,Pb]=cl(ps),[cb,Zu]=ub(ps),Ih=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,open:s,defaultOpen:u,disabled:c,onOpenChange:p,...m}=n,[h,y]=Uu({prop:s,defaultProp:u??!1,onChange:p,caller:ps});return f.jsx(cb,{scope:o,disabled:c,contentId:ol(),open:h,onOpenToggle:w.useCallback(()=>y(v=>!v),[y]),children:f.jsx(He.div,{"data-state":ec(h),"data-disabled":c?"":void 0,...m,ref:l})})});Ih.displayName=ps;var $h="CollapsibleTrigger",Fh=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,...s}=n,u=Zu($h,o);return f.jsx(He.button,{type:"button","aria-controls":u.contentId,"aria-expanded":u.open||!1,"data-state":ec(u.open),"data-disabled":u.disabled?"":void 0,disabled:u.disabled,...s,ref:l,onClick:Be(n.onClick,u.onOpenToggle)})});Fh.displayName=$h;var Ju="CollapsibleContent",Wh=w.forwardRef((n,l)=>{const{forceMount:o,...s}=n,u=Zu(Ju,n.__scopeCollapsible);return f.jsx(Zt,{present:o||u.open,children:({present:c})=>f.jsx(db,{...s,ref:l,present:c})})});Wh.displayName=Ju;var db=w.forwardRef((n,l)=>{const{__scopeCollapsible:o,present:s,children:u,...c}=n,p=Zu(Ju,o),[m,h]=w.useState(s),y=w.useRef(null),v=rt(l,y),x=w.useRef(0),S=x.current,C=w.useRef(0),P=C.current,k=p.open||m,E=w.useRef(k),A=w.useRef(void 0);return w.useEffect(()=>{const D=requestAnimationFrame(()=>E.current=!1);return()=>cancelAnimationFrame(D)},[]),cn(()=>{const D=y.current;if(D){A.current=A.current||{transitionDuration:D.style.transitionDuration,animationName:D.style.animationName},D.style.transitionDuration="0s",D.style.animationName="none";const $=D.getBoundingClientRect();x.current=$.height,C.current=$.width,E.current||(D.style.transitionDuration=A.current.transitionDuration,D.style.animationName=A.current.animationName),h(s)}},[p.open,s]),f.jsx(He.div,{"data-state":ec(p.open),"data-disabled":p.disabled?"":void 0,id:p.contentId,hidden:!k,...c,ref:v,style:{"--radix-collapsible-content-height":S?`${S}px`:void 0,"--radix-collapsible-content-width":P?`${P}px`:void 0,...n.style},children:k&&u})});function ec(n){return n?"open":"closed"}var fb=Ih;function pb({...n}){return f.jsx(fb,{"data-slot":"collapsible",...n})}function mb({...n}){return f.jsx(Fh,{"data-slot":"collapsible-trigger",...n})}function hb({...n}){return f.jsx(Wh,{"data-slot":"collapsible-content",...n})}function gb({input:n}){const l=(n==null?void 0:n.prompt)??[],o=l.length,s=l.slice(-2),u=Math.max(0,o-2);return f.jsxs(Fi,{direction:"right",children:[f.jsx(Wi,{asChild:!0,children:f.jsxs("button",{className:"w-full h-full text-left p-4 hover:bg-accent/30 transition-colors cursor-pointer flex flex-col justify-start",children:[f.jsx("h3",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-3",children:"Input"}),f.jsxs("div",{className:"space-y-3",children:[u>0&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60 text-center py-1.5 rounded-md bg-muted/30",children:["+ ",u," previous"," ",u===1?"message":"messages"]}),s.map((c,p)=>f.jsx(vb,{message:c,index:u+p+1},p)),o===0&&f.jsx("p",{className:"text-sm text-muted-foreground",children:"No messages"})]})]})}),f.jsxs(Bi,{className:"h-full w-[800px] sm:max-w-[800px] overflow-hidden",children:[f.jsx(Hi,{className:"border-b border-border shrink-0",children:f.jsxs(Vi,{children:["All Messages (",o,")"]})}),f.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:f.jsx("div",{className:"space-y-3",children:l.map((c,p)=>f.jsx(yb,{message:c,index:p+1},p))})})]})]})}function Bh(n){return typeof n=="string"?n:Array.isArray(n)?n.filter(l=>l.type==="text").map(l=>l.text).join(""):""}function Hh(n){return Array.isArray(n)?n.filter(l=>l.type==="tool-call"):[]}function Vh(n){return Array.isArray(n)?n.filter(l=>l.type==="tool-result"):[]}function Uh(n){return Array.isArray(n)?n.filter(l=>l.type==="thinking"||l.type==="reasoning").map(l=>l.thinking||l.text||l.reasoning||"").join(""):""}function vb({message:n,index:l}){const{role:o,content:s}=n,u={user:"User",assistant:"Assistant",system:"System",tool:"Tool"},c=Bh(s),p=Hh(s),m=Vh(s),h=Uh(s),y=(c?1:0)+(h?1:0)+p.length+m.length;return f.jsxs("div",{className:"rounded-md border border-border/50 bg-background/50 p-2.5 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/50",children:l}),f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:u[o]||o}),y>1&&f.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:[y," parts"]})]}),h&&f.jsx("div",{className:"text-xs text-amber-500/60",children:"[thinking]"}),c&&f.jsx("div",{className:"text-xs text-foreground/90 line-clamp-3",children:c}),p.length>0&&f.jsxs("div",{className:"space-y-1",children:[p.slice(0,3).map((v,x)=>{const S=v.args??v.input,C=typeof S=="string"?rr(S):S??{};return f.jsxs("div",{className:"text-[11px] font-mono text-muted-foreground truncate",children:[v.toolName,"(",d1(C),")"]},x)}),p.length>3&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60",children:["+",p.length-3," more tool"," ",p.length-3===1?"call":"calls"]})]}),m.length>0&&f.jsxs("div",{className:"space-y-1",children:[m.slice(0,3).map((v,x)=>{const S=v.result??v.output??v,C=f1(S);return f.jsxs("div",{className:"text-[11px] font-mono text-muted-foreground truncate",children:[v.toolName||"tool","(…) => ",C]},x)}),m.length>3&&f.jsxs("div",{className:"text-[11px] text-muted-foreground/60",children:["+",m.length-3," more tool"," ",m.length-3===1?"result":"results"]})]}),!c&&!h&&p.length===0&&m.length===0&&f.jsx("div",{className:"text-[11px] text-muted-foreground italic",children:"Empty message"})]})}function yb({message:n,index:l}){const{role:o,content:s}=n,u={user:"User",assistant:"Assistant",system:"System",tool:"Tool"},c=Bh(s),p=Hh(s),m=Vh(s),h=Uh(s),y=(c?1:0)+(h?1:0)+p.length+m.length;return f.jsxs("div",{className:"rounded-md border border-border/50 bg-background/50 p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[l&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/50",children:l}),f.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:u[o]||o}),y>1&&f.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:[y," parts"]})]}),h&&f.jsx(Dh,{content:h}),c&&f.jsx(Lh,{content:c,defaultExpanded:!h&&p.length===0&&m.length===0,isSystem:o==="system"}),p.length>0&&f.jsx("div",{className:"space-y-2",children:p.map((v,x)=>f.jsx(ib,{toolName:v.toolName,toolCallId:v.toolCallId,data:v.args??v.input},x))}),m.length>0&&f.jsx("div",{className:"space-y-2",children:m.map((v,x)=>f.jsx(sb,{toolName:v.toolName,toolCallId:v.toolCallId,data:v.result??v.output??v},x))}),!c&&!h&&p.length===0&&m.length===0&&f.jsx("div",{className:"text-[11px] text-muted-foreground italic",children:"Empty message"})]})}function xb({output:n,toolResults:l=[]}){var y,v,x;const o=S=>l.find(C=>C.type==="tool-result"&&"toolCallId"in C&&C.toolCallId===S),s=(n==null?void 0:n.toolCalls)||(((y=n==null?void 0:n.content)==null?void 0:y.filter(S=>S.type==="tool-call"))??[]),u=(n==null?void 0:n.textParts)||(((v=n==null?void 0:n.content)==null?void 0:v.filter(S=>S.type==="text"))??[]),c=(n==null?void 0:n.reasoningParts)||(((x=n==null?void 0:n.content)==null?void 0:x.filter(S=>S.type==="thinking"||S.type==="reasoning"))??[]),p=u.map(S=>S.text).join(""),m=c.map(S=>S.text||S.thinking||S.reasoning||"").join(""),h=p&&!m&&s.length===0;return f.jsxs("div",{className:"space-y-3",children:[m&&f.jsx(Dh,{content:m}),p&&f.jsx(Lh,{content:p,defaultExpanded:!!h}),s.map((S,C)=>{const P=S.toolCallId?o(S.toolCallId):void 0;return f.jsx(wb,{toolName:S.toolName,args:S.args??S.input,result:(P==null?void 0:P.output)??(P==null?void 0:P.result)},C)})]})}function wb({toolName:n,args:l,result:o}){const[s,u]=w.useState(!1),c=typeof l=="string"?rr(l):l,p=typeof o=="string"?rr(o):o;return f.jsxs("div",{className:"rounded-md border border-purple/30 overflow-hidden",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-3 py-2 bg-purple/10 hover:bg-purple/20 transition-colors",onClick:()=>u(!s),children:[f.jsx(or,{className:`size-3 text-purple transition-transform shrink-0 ${s?"rotate-90":""}`}),f.jsx(kr,{className:"size-3 text-purple shrink-0"}),f.jsx("span",{className:"text-xs font-mono font-medium text-purple",children:n}),!s&&c&&typeof c=="object"&&!Array.isArray(c)&&f.jsx("span",{className:"text-[11px] font-mono text-purple/70 truncate",children:qm(c)})]}),s&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"p-3 bg-card/50 border-t border-purple/30",children:[f.jsx("div",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-2",children:"Input"}),f.jsx(It,{data:c})]}),p!=null&&f.jsxs("div",{className:"p-3 border-t border-border bg-success/5",children:[f.jsx("div",{className:"text-[10px] font-medium uppercase tracking-wider text-success mb-2",children:"Output"}),f.jsx(It,{data:p})]})]})]})}function Yh({step:n,index:l,steps:o,isRunInProgress:s,expandedSteps:u,toggleStep:c,parseJson:p,formatDuration:m,childRuns:h,depth:y}){const v=u.has(n.id),S=l===o.length-1&&s,C=p(n.input),P=p(n.output),k=p(n.usage),E=c1(P,n.error),D=u1(C,l===0);return f.jsx(pb,{open:v,onOpenChange:()=>c(n.id),children:f.jsxs(zh,{className:`overflow-hidden py-0 gap-0 ${S?"ring-2 ring-blue-500/50 ring-offset-1 ring-offset-background":""}`,children:[f.jsx(mb,{asChild:!0,children:f.jsxs("button",{className:`w-full flex items-center justify-between px-4 py-3 text-left transition-colors hover:bg-accent/50 ${v?"border-b border-border":""}`,children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("span",{className:"text-xs text-muted-foreground font-mono w-4",children:n.step_number}),f.jsxs("div",{className:"flex items-center gap-2",children:[D&&f.jsxs(f.Fragment,{children:[D.type==="user"?f.jsx(lo,{className:"size-3.5 text-muted-foreground"}):f.jsx(kr,{className:"size-3.5 text-muted-foreground"}),D.fullText||D.toolDetails?f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("span",{className:`text-sm text-muted-foreground ${D.type==="tool"?"font-mono":""}`,children:D.label})}),f.jsx(ro,{side:"bottom",className:"max-w-sm max-h-40 overflow-hidden",children:f.jsx("span",{className:"line-clamp-6",children:D.fullText||D.toolDetails})})]}):f.jsx("span",{className:`text-sm text-muted-foreground ${D.type==="tool"?"font-mono":""}`,children:D.label}),f.jsx("span",{className:"text-muted-foreground/50 mx-1",children:"→"})]}),E.icon==="wrench"&&f.jsx(kr,{className:"size-3.5 text-muted-foreground"}),E.icon==="message"&&f.jsx(lo,{className:"size-3.5 text-muted-foreground"}),E.icon==="alert"&&f.jsx(ns,{className:"size-3.5 text-destructive"}),E.toolDetails?f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("span",{className:"text-sm font-medium font-mono",children:E.label})}),f.jsx(ro,{children:E.toolDetails})]}):f.jsx("span",{className:`text-sm font-medium ${E.icon==="wrench"?"font-mono":""}`,children:E.label})]})]}),f.jsxs("div",{className:"flex items-center gap-4",children:[S?f.jsxs("span",{className:"text-[11px] text-blue-400 font-medium flex items-center gap-1.5",children:[f.jsx(il,{className:"size-3 animate-spin"}),"streaming"]}):f.jsx("span",{className:"text-[11px] text-muted-foreground font-mono",children:m(n.duration_ms)}),k&&f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground cursor-help",children:[Gm(Ji(k.inputTokens))," ",f.jsx("span",{className:"text-muted-foreground/50",children:"→"})," ",Km(es(k.outputTokens))]})}),f.jsx(ro,{children:f.jsx(Mh,{input:Ji(k.inputTokens),output:es(k.outputTokens),raw:k.raw})})]}),f.jsx(u0,{className:`size-4 text-muted-foreground transition-transform ${v?"rotate-180":""}`})]})]})}),f.jsx(hb,{children:f.jsx(Xh,{step:n,index:l,steps:o,isRunInProgress:s,parseJson:p,formatDuration:m,childRuns:h,expandedSteps:u,toggleStep:c,depth:y})})]})})}function Xh({step:n,index:l,steps:o,isRunInProgress:s,parseJson:u,formatDuration:c,childRuns:p,expandedSteps:m,toggleStep:h,depth:y}){var D,$;const x=l===o.length-1&&s,S=u(n.input),C=u(n.output),P=u(n.usage),k=o[l+1],E=k?u(k.input):null,A=(($=(D=E==null?void 0:E.prompt)==null?void 0:D.filter(N=>N.role==="tool"))==null?void 0:$.flatMap(N=>Array.isArray(N.content)?N.content:[]))??[];return f.jsxs(f.Fragment,{children:[f.jsx(ab,{modelId:n.model_id,provider:n.provider,input:S,providerOptions:u(n.provider_options),usage:P}),f.jsxs("div",{className:"grid grid-cols-2 divide-x divide-border",children:[f.jsx("div",{className:"bg-card/50",children:f.jsx(gb,{input:S})}),f.jsxs("div",{className:"p-4 bg-background min-h-full",children:[f.jsx("h3",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-3",children:"Output"}),n.error?f.jsx("div",{className:"p-3 rounded-md bg-destructive/10 border border-destructive/30 text-sm text-destructive-foreground font-mono",children:n.error}):C?f.jsx(xb,{output:C,toolResults:A}):x?f.jsxs("div",{className:"flex items-center gap-2 text-sm text-blue-400",children:[f.jsx(il,{className:"size-4 animate-spin"}),f.jsx("span",{children:"Waiting for response..."})]}):f.jsx("p",{className:"text-sm text-muted-foreground",children:"No output"})]})]}),p.length>0&&m&&h&&f.jsx(Sb,{childRuns:p,expandedSteps:m,toggleStep:h,parseJson:u,formatDuration:c,depth:y}),f.jsx(rb,{rawRequest:n.raw_request,rawResponse:n.raw_response,rawChunks:n.raw_chunks,isStream:n.type==="stream"})]})}function Sb({childRuns:n,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c}){return f.jsxs("div",{className:"border-t border-border bg-muted/10",children:[f.jsxs("div",{className:"px-4 py-2 flex items-center gap-2",children:[f.jsx("div",{className:"h-px flex-1 bg-border"}),f.jsxs("span",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground shrink-0",children:["Sub-agent ",n.length===1?"call":"calls"," (",n.length,")"]}),f.jsx("div",{className:"h-px flex-1 bg-border"})]}),f.jsx("div",{className:"px-4 pb-3 flex flex-col gap-2",children:n.map(p=>f.jsx(bb,{childRun:p,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c+1},p.run.id))})]})}function bb({childRun:n,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,depth:c}){var k;const[p,m]=w.useState(!1),h=n.steps[0],y=h?s(h.input):null,x=[...(y==null?void 0:y.prompt)??[]].reverse().find(E=>E.role==="user");let S="Sub-agent call";if(x){const E=typeof x.content=="string"?x.content:Array.isArray(x.content)&&((k=x.content.find(A=>A.type==="text"))==null?void 0:k.text)||"";S=E.length>60?E.slice(0,60)+"...":E}const C=n.steps.reduce((E,A)=>E+(A.duration_ms||0),0),P=h==null?void 0:h.model_id;return f.jsxs("div",{className:"rounded-md border border-cyan-500/30 overflow-hidden",children:[f.jsxs("button",{className:"w-full flex items-center gap-2 px-3 py-2 bg-cyan-500/10 hover:bg-cyan-500/15 transition-colors",onClick:()=>m(!p),children:[f.jsx(or,{className:`size-3 text-cyan-400 transition-transform shrink-0 ${p?"rotate-90":""}`}),f.jsx(ll,{className:"size-3 text-cyan-400 shrink-0"}),f.jsx("span",{className:"text-xs font-medium text-cyan-400 truncate",children:S}),f.jsxs("span",{className:"ml-auto flex items-center gap-3 shrink-0",children:[P&&f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:P}),f.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[n.steps.length," ",n.steps.length===1?"step":"steps"]}),f.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:u(C)}),n.run.isInProgress&&f.jsx(il,{className:"size-3 text-blue-400 animate-spin"})]})]}),p&&f.jsx("div",{className:"border-t border-cyan-500/20 bg-background/50 p-3 flex flex-col gap-2",children:n.steps.map((E,A)=>{const D=(n.childRuns??[]).filter($=>$.run.parent_step_id===E.id);return f.jsx(Yh,{step:E,index:A,steps:n.steps,isRunInProgress:n.run.isInProgress??!1,expandedSteps:l,toggleStep:o,parseJson:s,formatDuration:u,childRuns:D,depth:c},E.id)})})]})}function Cb({runDetail:n,parseJson:l,formatDuration:o}){const[s,u]=w.useState(null),[c,p]=w.useState(280),m=w.useRef(!1),h=w.useMemo(()=>h1(n,l),[n,l]),y=w.useMemo(()=>{const R=[];function W(Q,ee){R.push(...Q);for(const ce of ee)W(ce.steps,ce.childRuns??[])}return W(n.steps,n.childRuns??[]),R},[n]),v=w.useMemo(()=>{const R=[];function W(Q){for(const ee of Q)R.push(ee),W(ee.childRuns??[])}return W(n.childRuns??[]),R},[n]),x=w.useCallback(R=>{R.preventDefault(),R.stopPropagation(),m.current=!0;const W=R.clientX,Q=c,ee=U=>{if(!m.current)return;const q=Math.min(Math.max(Q+(U.clientX-W),120),600);p(q)},ce=()=>{m.current=!1,document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",ce),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",ee),document.addEventListener("mouseup",ce),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[c]);if(h.length===0)return null;const S=Math.max(...h.map(R=>R.startMs+R.durationMs),1),C=5,P=Array.from({length:C+1},(R,W)=>{const Q=S/C*W;return{ms:Q,label:Q<1e3?`${Math.round(Q)}ms`:`${(Q/1e3).toFixed(1)}s`}}),k=28,E=R=>{u(W=>W===R?null:R)},A=s?h.find(R=>R.id===s):null,D=(A==null?void 0:A.stepId)??s,$=D?y.find(R=>R.id===D):null,N=$?(()=>{if(n.steps.find(W=>W.id===$.id))return n.steps.findIndex(W=>W.id===$.id);const R=v.find(W=>W.steps.some(Q=>Q.id===$.id));return(R==null?void 0:R.steps.findIndex(W=>W.id===$.id))??0})():0,F=$?(()=>{if(n.steps.find(W=>W.id===$.id))return n.steps;const R=v.find(W=>W.steps.some(Q=>Q.id===$.id));return(R==null?void 0:R.steps)??n.steps})():n.steps,V=$?v.filter(R=>R.run.parent_step_id===$.id):[],L=R=>{switch(R){case"child-run":return f.jsx(ll,{className:"size-3 text-cyan-400 shrink-0"});case"thinking":return f.jsx(ll,{className:"size-3 text-amber-500 shrink-0"});case"tool-call":return f.jsx(kr,{className:"size-3 text-purple-400 shrink-0"});case"text":return f.jsx(lo,{className:"size-3 text-emerald-400 shrink-0"});case"error":return f.jsx(ns,{className:"size-3 text-red-400 shrink-0"});default:return f.jsx(Dp,{className:"size-3 text-blue-400 shrink-0"})}};return f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"rounded-lg border border-border bg-card overflow-hidden",children:[f.jsxs("div",{className:"px-4 py-2 border-b border-border bg-muted/20 flex items-center justify-between",children:[f.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Trace Timeline"}),f.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:o(S)})]}),f.jsx("div",{className:"overflow-x-auto",children:f.jsxs("div",{style:{minWidth:c+400},children:[f.jsxs("div",{className:"flex border-b border-border/50",style:{height:22},children:[f.jsx("div",{style:{width:c,minWidth:c},className:"shrink-0"}),f.jsx("div",{className:"w-1 shrink-0 cursor-col-resize hover:bg-primary/30",onMouseDown:x}),f.jsx("div",{className:"flex-1 relative",children:P.map((R,W)=>f.jsx("span",{className:"absolute text-[9px] font-mono text-muted-foreground/60 -translate-x-1/2",style:{left:`${R.ms/S*100}%`,top:5},children:R.label},W))})]}),h.map(R=>{const W=R.startMs/S*100,Q=Math.max(R.durationMs/S*100,.3),ee=s===R.id;return f.jsxs("div",{className:`flex items-center border-b border-border/30 transition-colors cursor-pointer ${ee?"bg-accent":"hover:bg-accent/30"}`,style:{height:k},onClick:()=>E(R.id),children:[f.jsxs("div",{className:"shrink-0 flex items-center gap-1.5 px-2 overflow-hidden",style:{width:c,minWidth:c,paddingLeft:8+R.depth*16},children:[L(R.kind),f.jsx("span",{className:"text-[11px] font-mono text-foreground truncate",children:R.label}),R.sublabel&&f.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:R.sublabel}),f.jsx("span",{className:"ml-auto text-[10px] font-mono text-muted-foreground shrink-0 pl-1",children:o(R.durationMs||null)}),R.tokens&&f.jsxs("span",{className:"text-[9px] font-mono text-muted-foreground/60 shrink-0",children:[R.tokens.input,"→",R.tokens.output]})]}),f.jsx("div",{className:"w-1 shrink-0 cursor-col-resize hover:bg-primary/30 self-stretch",onMouseDown:x}),f.jsxs("div",{className:"flex-1 relative h-full",children:[P.map((ce,U)=>f.jsx("div",{className:"absolute top-0 bottom-0 border-l border-border/20",style:{left:`${ce.ms/S*100}%`}},U)),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsx("div",{className:"absolute top-1 bottom-1 flex items-center cursor-pointer",style:{left:`${W}%`,width:`${Q}%`,minWidth:3},children:f.jsx("div",{className:`h-full w-full rounded-sm ${ee?"ring-2 ring-foreground/50 ring-offset-1 ring-offset-background":""} ${R.isInProgress?`${m1[R.kind]} animate-pulse`:p1[R.kind]}`})})}),f.jsx(ro,{side:"top",className:"max-w-xs",children:f.jsxs("div",{className:"text-xs space-y-1",children:[f.jsx("div",{className:"font-medium",children:R.label}),R.sublabel&&f.jsx("div",{className:"text-muted-foreground",children:R.sublabel}),R.modelId&&R.modelId!==R.label&&f.jsx("div",{className:"text-muted-foreground font-mono",children:R.modelId}),f.jsxs("div",{className:"text-muted-foreground font-mono",children:[o(R.durationMs||null),R.tokens&&f.jsxs("span",{className:"ml-2",children:[R.tokens.input," in → ",R.tokens.output," ","out"]})]}),f.jsxs("div",{className:"text-muted-foreground/60 pt-0.5",children:["Click to ",ee?"deselect":"view details"]})]})})]})]})]},R.id)})]})})]}),$&&A&&f.jsxs(zh,{className:"overflow-hidden py-0 gap-0",children:[f.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[L(A.kind),f.jsxs("span",{className:"text-xs text-muted-foreground font-mono",children:["Step ",N+1]}),A.kind!=="step"&&f.jsx(gu,{variant:"secondary",className:"text-[10px] h-5 capitalize",children:A.kind}),f.jsx("span",{className:"text-xs font-medium font-mono",children:A.label}),$.provider&&f.jsx("span",{className:"px-1.5 py-0.5 rounded bg-sidebar-primary/10 text-sidebar-primary text-[10px] font-medium",children:$.provider})]}),f.jsx("button",{onClick:()=>u(null),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Deselect"})]}),f.jsx(kb,{span:A,step:$,stepIndex:N,steps:F,runDetail:n,parseJson:l,formatDuration:o,childRuns:V})]})]})}function kb({span:n,step:l,stepIndex:o,steps:s,runDetail:u,parseJson:c,formatDuration:p,childRuns:m}){const h=c(l.output),y=(h==null?void 0:h.content)??[];if(n.kind==="tool-call"&&n.toolCallId){const v=y.find(E=>E.type==="tool-call"&&"toolCallId"in E&&E.toolCallId===n.toolCallId),x=y.find(E=>E.type==="tool-result"&&"toolCallId"in E&&E.toolCallId===n.toolCallId),S=(v==null?void 0:v.input)??(v==null?void 0:v.args),C=typeof S=="string"?rr(S):S,P=(x==null?void 0:x.output)??(x==null?void 0:x.result),k=typeof P=="string"?rr(P):P;return f.jsxs("div",{className:"p-4 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(kr,{className:"size-4 text-purple-400"}),f.jsx("span",{className:"text-sm font-mono font-medium text-purple-400",children:n.label})]}),C!=null&&f.jsxs("div",{children:[f.jsx("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground mb-2",children:"Input"}),f.jsx(It,{data:C})]}),k!=null&&f.jsxs("div",{children:[f.jsx("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-success mb-2",children:"Output"}),f.jsx(It,{data:k})]}),!C&&!k&&f.jsx("p",{className:"text-sm text-muted-foreground",children:"No data available for this tool call."})]})}return n.kind==="thinking"&&n.thinkingText?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(ll,{className:"size-4 text-amber-500"}),f.jsx("span",{className:"text-sm font-medium text-amber-500",children:"Thinking"})]}),f.jsx("div",{className:"text-sm text-foreground/80 leading-relaxed whitespace-pre-wrap rounded-md border border-amber-500/20 bg-amber-500/5 p-3",children:n.thinkingText})]}):n.kind==="text"&&n.textContent?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(lo,{className:"size-4 text-emerald-400"}),f.jsx("span",{className:"text-sm font-medium text-emerald-400",children:"Text Response"})]}),f.jsx("div",{className:"text-sm text-foreground/80 leading-relaxed whitespace-pre-wrap rounded-md border border-border bg-background p-3",children:n.textContent})]}):n.kind==="error"?f.jsxs("div",{className:"p-4 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx(ns,{className:"size-4 text-red-400"}),f.jsx("span",{className:"text-sm font-medium text-red-400",children:"Error"})]}),f.jsx("div",{className:"text-sm text-destructive-foreground font-mono whitespace-pre-wrap rounded-md border border-destructive/30 bg-destructive/10 p-3",children:l.error})]}):f.jsx(Xh,{step:l,index:o,steps:s,isRunInProgress:u.run.isInProgress??!1,parseJson:c,formatDuration:p,childRuns:m,depth:0})}function Eb(){const[n,l]=w.useState([]),[o,s]=w.useState(null),[u,c]=w.useState(new Set),[p,m]=w.useState(!0),[h,y]=w.useState(!1),v=async()=>{try{const F=await(await fetch("/api/runs")).json();l(F)}catch(N){console.error("Failed to fetch runs:",N)}finally{m(!1)}},x=async()=>{await fetch("/api/clear",{method:"POST"}),l([]),s(null)};w.useEffect(()=>{v()},[]),w.useEffect(()=>{let N=null,F=null;const V=()=>{N=new EventSource("/api/events"),N.addEventListener("connected",()=>{console.log("[DevTools] Connected to real-time updates")}),N.addEventListener("update",()=>{v(),o&&fetch(`/api/runs/${o.run.id}`).then(L=>L.json()).then(L=>{L&&!L.error&&s(L)}).catch(()=>{})}),N.addEventListener("heartbeat",()=>{}),N.onerror=()=>{console.log("[DevTools] SSE connection lost, reconnecting..."),N==null||N.close(),F=setTimeout(V,2e3)}};return V(),()=>{N==null||N.close(),F&&clearTimeout(F)}},[o==null?void 0:o.run.id]);const S=async N=>{const V=await(await fetch(`/api/runs/${N}`)).json();s(V),c(new Set)},C=N=>{c(F=>{const V=new Set(F);return V.has(N)?V.delete(N):V.add(N),V})},P=N=>N===null?"-":N<1e3?`${N}ms`:`${(N/1e3).toFixed(2)}s`,k=N=>{if(!N)return null;try{return JSON.parse(N)}catch{return N}},E=N=>{var R,W;const F=N[0];if(!F)return"Empty run";const V=k(F.input),L=(R=V==null?void 0:V.prompt)==null?void 0:R.find(Q=>Q.role==="user");if(L){const Q=typeof L.content=="string"?L.content:Array.isArray(L.content)&&((W=L.content.find(ee=>ee.type==="text"))==null?void 0:W.text)||"";return Q.slice(0,50)+(Q.length>50?"...":"")}return"No user message"},A=N=>N.some(F=>F.error),D=N=>N.reduce((F,V)=>F+(V.duration_ms||0),0),$=N=>N.reduce((F,V)=>{const L=k(V.usage),R=Ji(L==null?void 0:L.inputTokens),W=es(L==null?void 0:L.outputTokens),Q={total:F.input.total+R.total};(F.input.noCache!==void 0||R.noCache!==void 0)&&(Q.noCache=(F.input.noCache??0)+(R.noCache??0)),(F.input.cacheRead!==void 0||R.cacheRead!==void 0)&&(Q.cacheRead=(F.input.cacheRead??0)+(R.cacheRead??0)),(F.input.cacheWrite!==void 0||R.cacheWrite!==void 0)&&(Q.cacheWrite=(F.input.cacheWrite??0)+(R.cacheWrite??0));const ee={total:F.output.total+W.total};return(F.output.text!==void 0||W.text!==void 0)&&(ee.text=(F.output.text??0)+(W.text??0)),(F.output.reasoning!==void 0||W.reasoning!==void 0)&&(ee.reasoning=(F.output.reasoning??0)+(W.reasoning??0)),{input:Q,output:ee}},{input:{total:0},output:{total:0}});return f.jsxs("div",{className:"flex flex-col h-screen bg-background",children:[f.jsxs("header",{className:"flex justify-between items-center px-5 py-3 border-b border-border bg-card",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(C0,{}),f.jsx("span",{className:"text-base font-medium text-muted-foreground",children:"DevTools"})]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsxs(Zf,{variant:"ghost",size:"sm",onClick:v,className:"h-8 px-3 text-xs",children:[f.jsx(g0,{className:"size-3.5"}),"Refresh"]}),f.jsxs(Zf,{variant:"ghost",size:"sm",onClick:x,className:"h-8 px-3 text-xs text-destructive-foreground hover:bg-destructive/20",children:[f.jsx(w0,{className:"size-3.5"}),"Clear"]})]})]}),f.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[f.jsxs("aside",{className:"w-[300px] border-r border-border bg-sidebar flex flex-col",children:[f.jsx("div",{className:"px-4 py-3 border-b border-border",children:f.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Runs"})}),f.jsx(ep,{className:"flex-1 overflow-hidden",children:p?f.jsx("p",{className:"p-4 text-muted-foreground text-sm",children:"Loading..."}):n.length===0?f.jsx("p",{className:"p-4 text-muted-foreground text-sm",children:"No runs yet"}):f.jsx("div",{children:n.map(N=>{const F=(o==null?void 0:o.run.id)===N.id;return f.jsxs("button",{className:`w-full text-left px-4 py-3 border-b border-border/50 transition-colors ${F?"bg-accent":"hover:bg-accent/50"}`,onClick:()=>S(N.id),children:[f.jsxs("div",{className:"flex items-start gap-2 mb-1.5 min-w-0",children:[N.isInProgress?f.jsx(il,{className:"size-3.5 text-blue-400 mt-0.5 shrink-0 animate-spin"}):N.hasError?f.jsx(ns,{className:"size-3.5 text-destructive-foreground mt-0.5 shrink-0"}):f.jsx(lo,{className:"size-3.5 text-muted-foreground mt-0.5 shrink-0"}),f.jsxs("div",{className:"min-w-0",children:[N.function_id&&f.jsx("span",{className:"text-[11px] font-mono text-sidebar-primary block truncate",children:N.function_id}),f.jsx("span",{className:"text-[13px] text-foreground leading-tight line-clamp-1 break-all",children:N.firstMessage||"Loading..."})]})]}),f.jsxs("div",{className:"flex items-center gap-2 ml-5.5 text-[11px] text-muted-foreground",children:[N.type&&f.jsxs("span",{className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium ${N.type==="stream"?"bg-blue-500/15 text-blue-400":"bg-emerald-500/15 text-emerald-400"}`,children:[N.type==="stream"&&f.jsx(Dp,{className:"size-2.5"}),N.type]}),f.jsxs("span",{children:[N.stepCount," ",N.stepCount===1?"step":"steps"]}),f.jsx("span",{children:"·"}),f.jsx("span",{className:"font-mono",children:new Date(N.started_at).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})]},N.id)})})})]}),f.jsx("main",{className:"flex-1 overflow-hidden",children:f.jsx(ep,{className:"h-full",children:o?f.jsxs("div",{className:"p-5",children:[f.jsxs("div",{className:"flex items-center justify-between mb-5",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("h2",{className:"text-sm font-medium text-foreground",children:E(o.steps)}),o.run.isInProgress&&f.jsxs(gu,{variant:"secondary",className:"text-[10px] h-5 gap-1.5 bg-blue-500/15 text-blue-400 border-blue-500/30",children:[f.jsx(il,{className:"size-3 animate-spin"}),"In Progress"]}),A(o.steps)&&f.jsx(gu,{variant:"destructive",className:"text-[10px] h-5",children:"Error"})]}),f.jsxs("div",{className:"flex items-center text-xs text-muted-foreground",children:[f.jsxs("span",{children:[o.steps.length," steps"]}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsx("span",{className:"font-mono",children:P(D(o.steps))}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("span",{className:"font-mono cursor-help",children:["input:"," ",Gm($(o.steps).input)," ",f.jsx("span",{className:"text-muted-foreground/50",children:"→"})," ","output:"," ",Km($(o.steps).output)]})}),f.jsx(ro,{children:f.jsx(Mh,{input:$(o.steps).input,output:$(o.steps).output})})]}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsx("span",{children:new Date(o.run.started_at).toLocaleString()}),f.jsx("span",{className:"px-3 text-muted-foreground/30",children:"·"}),f.jsxs(to,{children:[f.jsx(no,{asChild:!0,children:f.jsxs("button",{onClick:()=>y(N=>!N),className:`inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-[11px] font-medium transition-colors ${h?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent/50"}`,children:[f.jsx(i0,{className:"size-3.5"}),"Timeline"]})}),f.jsx(ro,{children:h?"Switch to steps view":"Switch to timeline view"})]})]})]}),h?f.jsx(Cb,{runDetail:o,parseJson:k,formatDuration:P}):f.jsx("div",{className:"flex flex-col gap-3",children:o.steps.map((N,F)=>{const V=(o.childRuns??[]).filter(L=>L.run.parent_step_id===N.id);return f.jsx(Yh,{step:N,index:F,steps:o.steps,isRunInProgress:o.run.isInProgress??!1,expandedSteps:u,toggleStep:C,parseJson:k,formatDuration:P,childRuns:V,depth:0},N.id)})})]}):f.jsx("div",{className:"flex items-center justify-center min-h-[calc(100vh-57px)] text-muted-foreground",children:f.jsx("p",{className:"text-sm",children:"Select a run to view details"})})})})]})]})}Kv.createRoot(document.getElementById("root")).render(f.jsx(Eb,{}));
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--default-mono-font-family:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);font-family:Geist Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}code,pre,kbd{font-family:Geist Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:var(--muted-foreground)}::-webkit-scrollbar-corner{background:0 0}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.z-10{z-index:10}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5\.5{margin-left:calc(var(--spacing) * 5.5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-20{max-height:calc(var(--spacing) * 20)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[400px\]{max-height:400px}.min-h-\[calc\(100vh-57px\)\]{min-height:calc(100vh - 57px)}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing) * 1)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-\[100px\]{width:100px}.w-\[300px\]{width:300px}.w-\[800px\]{width:800px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/20{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,var(--border) 20%,transparent)}}.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--border) 30%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/20{border-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.border-purple\/30{border-color:#a855f74d}.border-success\/30{border-color:#22c55e4d}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,var(--background) 50%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card) 50%,transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/20{background-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-muted,.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--muted) 10%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted) 20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-purple\/10{background-color:#a855f71a}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-primary\/10{background-color:var(--sidebar-primary)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-primary\/10{background-color:color-mix(in oklab,var(--sidebar-primary) 10%,transparent)}}.bg-success\/5{background-color:#22c55e0d}.bg-success\/10{background-color:#22c55e1a}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-px{padding:1px}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-500\/60{color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.text-amber-500\/60{color:color-mix(in oklab,var(--color-amber-500) 60%,transparent)}}.text-amber-500\/70{color:#f99c00b3}@supports (color:color-mix(in lab,red,red)){.text-amber-500\/70{color:color-mix(in oklab,var(--color-amber-500) 70%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-blue-400\/70{color:#54a2ffb3}@supports (color:color-mix(in lab,red,red)){.text-blue-400\/70{color:color-mix(in oklab,var(--color-blue-400) 70%,transparent)}}.text-card-foreground{color:var(--card-foreground)}.text-cyan-400{color:var(--color-cyan-400)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.text-muted-foreground,.text-muted-foreground\/30{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--muted-foreground) 30%,transparent)}}.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground) 60%,transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple{color:#a855f7}.text-purple-400{color:var(--color-purple-400)}.text-purple\/70{color:#a855f7b3}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-primary{color:var(--sidebar-primary)}.text-success{color:#22c55e}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-500\/50{--tw-ring-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.ring-blue-500\/50{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.ring-foreground\/50{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/50{--tw-ring-color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *),.group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}@media (hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--accent) 30%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-blue-500\/20:hover{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-500\/20:hover{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.hover\:bg-cyan-500\/15:hover{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.hover\:bg-cyan-500\/15:hover{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/30:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/30:hover{background-color:color-mix(in oklab,var(--primary) 30%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-purple\/20:hover{background-color:#a855f733}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-success\/20:hover{background-color:#22c55e33}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media (min-width:40rem){.sm\:max-w-\[800px\]{max-width:800px}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left]{max-width:var(--container-sm)}}@media (min-width:48rem){.md\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.md\:text-left{text-align:left}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(17% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(14.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(98.5% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(39.6% .141 25.723);--destructive-foreground:oklch(63.7% .237 25.331);--border:oklch(26.9% 0 0);--input:oklch(26.9% 0 0);--ring:oklch(43.9% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--radius:.625rem;--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(26.9% 0 0);--sidebar-ring:oklch(43.9% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
@@ -10,8 +10,8 @@
10
10
  href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600;700&display=swap"
11
11
  rel="stylesheet"
12
12
  />
13
- <script type="module" crossorigin src="/assets/index-DYruJ8X0.js"></script>
14
- <link rel="stylesheet" crossorigin href="/assets/index-B1quREL_.css">
13
+ <script type="module" crossorigin src="/assets/index-BYl4b0-J.js"></script>
14
+ <link rel="stylesheet" crossorigin href="/assets/index-DGv_Z9xV.css">
15
15
  </head>
16
16
  <body>
17
17
  <div id="root"></div>
package/dist/index.js CHANGED
@@ -673,9 +673,9 @@ function DevToolsTelemetry() {
673
673
  });
674
674
  state.stepStates.delete(stepResult.stepNumber);
675
675
  },
676
- onFinish: async (event) => {
677
- const finishEvent = event;
678
- callStates.delete(finishEvent.callId);
676
+ onEnd: async (event) => {
677
+ const endEvent = event;
678
+ callStates.delete(endEvent.callId);
679
679
  },
680
680
  onError: async (error) => {
681
681
  const errorObj = error;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/devtools",
3
- "version": "1.0.0-canary.21",
3
+ "version": "1.0.0-canary.22",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "vaul": "^1.1.2",
57
57
  "vite": "^6.0.3",
58
58
  "zod": "3.25.76",
59
- "ai": "7.0.0-canary.120"
59
+ "ai": "7.0.0-canary.134"
60
60
  },
61
61
  "publishConfig": {
62
62
  "access": "public",
@@ -451,9 +451,9 @@ export function DevToolsTelemetry(): Telemetry {
451
451
  state.stepStates.delete(stepResult.stepNumber);
452
452
  },
453
453
 
454
- onFinish: async event => {
455
- const finishEvent = event as { callId: string };
456
- callStates.delete(finishEvent.callId);
454
+ onEnd: async event => {
455
+ const endEvent = event as { callId: string };
456
+ callStates.delete(endEvent.callId);
457
457
  },
458
458
 
459
459
  onError: async error => {
@@ -433,6 +433,8 @@ export function TextBlock({
433
433
  export function ToolItem({ tool }: { tool: ToolDefinition }) {
434
434
  const [expanded, setExpanded] = useState(false);
435
435
 
436
+ const hasExpandableContent = tool.parameters || tool.description;
437
+
436
438
  return (
437
439
  <div className="overflow-hidden rounded-md border border-border bg-background">
438
440
  <button
@@ -440,7 +442,7 @@ export function ToolItem({ tool }: { tool: ToolDefinition }) {
440
442
  onClick={() => setExpanded(!expanded)}
441
443
  >
442
444
  <span className="font-mono text-sm text-purple">{tool.name}</span>
443
- {tool.parameters && (
445
+ {hasExpandableContent && (
444
446
  <ChevronRight
445
447
  className={`size-3 text-muted-foreground transition-transform ${
446
448
  expanded ? 'rotate-90' : ''
@@ -448,21 +450,23 @@ export function ToolItem({ tool }: { tool: ToolDefinition }) {
448
450
  />
449
451
  )}
450
452
  </button>
451
- {expanded && tool.parameters && (
453
+ {!expanded && tool.description && (
454
+ <div className="px-2.5 pb-2">
455
+ <p className="text-[11px] text-muted-foreground truncate">
456
+ {tool.description}
457
+ </p>
458
+ </div>
459
+ )}
460
+ {expanded && hasExpandableContent && (
452
461
  <div className="px-2.5 pb-2.5 border-t border-border">
453
462
  {tool.description && (
454
- <p className="pt-2 mb-2 text-xs text-muted-foreground">
463
+ <p
464
+ className={`pt-2 text-xs text-muted-foreground ${tool.parameters ? 'mb-2' : ''}`}
465
+ >
455
466
  {tool.description}
456
467
  </p>
457
468
  )}
458
- <JsonBlock data={tool.parameters} compact />
459
- </div>
460
- )}
461
- {!expanded && tool.description && (
462
- <div className="px-2.5 pb-2 -mt-1">
463
- <p className="text-[11px] text-muted-foreground truncate">
464
- {tool.description}
465
- </p>
469
+ {tool.parameters && <JsonBlock data={tool.parameters} compact />}
466
470
  </div>
467
471
  )}
468
472
  </div>
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--default-mono-font-family:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);font-family:Geist Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}code,pre,kbd{font-family:Geist Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:var(--muted-foreground)}::-webkit-scrollbar-corner{background:0 0}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.z-10{z-index:10}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5\.5{margin-left:calc(var(--spacing) * 5.5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-20{max-height:calc(var(--spacing) * 20)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[400px\]{max-height:400px}.min-h-\[calc\(100vh-57px\)\]{min-height:calc(100vh - 57px)}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing) * 1)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-\[100px\]{width:100px}.w-\[300px\]{width:300px}.w-\[800px\]{width:800px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/20{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,var(--border) 20%,transparent)}}.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--border) 30%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/20{border-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.border-purple\/30{border-color:#a855f74d}.border-success\/30{border-color:#22c55e4d}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,var(--background) 50%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card) 50%,transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/20{background-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-muted,.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--muted) 10%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted) 20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-purple\/10{background-color:#a855f71a}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-primary\/10{background-color:var(--sidebar-primary)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-primary\/10{background-color:color-mix(in oklab,var(--sidebar-primary) 10%,transparent)}}.bg-success\/5{background-color:#22c55e0d}.bg-success\/10{background-color:#22c55e1a}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-px{padding:1px}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-500\/60{color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.text-amber-500\/60{color:color-mix(in oklab,var(--color-amber-500) 60%,transparent)}}.text-amber-500\/70{color:#f99c00b3}@supports (color:color-mix(in lab,red,red)){.text-amber-500\/70{color:color-mix(in oklab,var(--color-amber-500) 70%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-blue-400\/70{color:#54a2ffb3}@supports (color:color-mix(in lab,red,red)){.text-blue-400\/70{color:color-mix(in oklab,var(--color-blue-400) 70%,transparent)}}.text-card-foreground{color:var(--card-foreground)}.text-cyan-400{color:var(--color-cyan-400)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.text-muted-foreground,.text-muted-foreground\/30{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--muted-foreground) 30%,transparent)}}.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground) 60%,transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple{color:#a855f7}.text-purple-400{color:var(--color-purple-400)}.text-purple\/70{color:#a855f7b3}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-primary{color:var(--sidebar-primary)}.text-success{color:#22c55e}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-500\/50{--tw-ring-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.ring-blue-500\/50{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.ring-foreground\/50{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/50{--tw-ring-color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *),.group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}@media (hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--accent) 30%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-blue-500\/20:hover{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-500\/20:hover{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.hover\:bg-cyan-500\/15:hover{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.hover\:bg-cyan-500\/15:hover{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/30:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/30:hover{background-color:color-mix(in oklab,var(--primary) 30%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-purple\/20:hover{background-color:#a855f733}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-success\/20:hover{background-color:#22c55e33}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media (min-width:40rem){.sm\:max-w-\[800px\]{max-width:800px}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left]{max-width:var(--container-sm)}}@media (min-width:48rem){.md\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.md\:text-left{text-align:left}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(17% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(14.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(98.5% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(39.6% .141 25.723);--destructive-foreground:oklch(63.7% .237 25.331);--border:oklch(26.9% 0 0);--input:oklch(26.9% 0 0);--ring:oklch(43.9% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--radius:.625rem;--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(26.9% 0 0);--sidebar-ring:oklch(43.9% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}